@sunbird-cb/itsm-chatbot 0.0.3-ang-17-20
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/README.md +24 -0
- package/fesm2022/sunbird-cb-itsm-chatbot.mjs +1429 -0
- package/fesm2022/sunbird-cb-itsm-chatbot.mjs.map +1 -0
- package/index.d.ts +206 -0
- package/index.d.ts.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sunbird-cb-itsm-chatbot.mjs","sources":["../../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/chatbot.service.ts","../../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/support-ai.service.ts","../../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/support-ai.component.ts","../../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/support-ai.component.html","../../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/socket.service.ts","../../../../library/sunbird-cb/itsm-chatbot/src/lib/itsm-chatbot.module.ts","../../../../library/sunbird-cb/itsm-chatbot/src/sunbird-cb-itsm-chatbot.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\nimport { BehaviorSubject, Observable, throwError } from 'rxjs'\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\nimport { catchError } from 'rxjs/operators'\n\nconst PROXY_CREATE_V8 = '/apis/proxies/v8'\n\nconst API_END_POINTS = {\n CREATE_USER_API: `${PROXY_CREATE_V8}/discussion/user/v1/create`,\n LANGUAGES: '/api/faq/v1/assistant/available/language',\n CONFIG: '/api/faq/v1/assistant/configs/language',\n AI_GLOBAL_SEARCH: `${PROXY_CREATE_V8}/chatbot/v3/search`,\n AI_CHAT_FEEDBACK:`${PROXY_CREATE_V8}/chatbot/v3/feedbacks/save`,\n AI_GLOBAL_INTERNET_SEARCH: `${PROXY_CREATE_V8}/chatbot/v3/global/search`,\n SUPPORT_AI_START_CHAT: `${PROXY_CREATE_V8}/support/ai/chat/start`,\n SUPPORT_AI_SEND_CHAT: `${PROXY_CREATE_V8}/support/ai/chat/send`,\n}\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChatbotService {\n\n LANGUAGES = '/api/faq/v1/assistant/available/language'\n CONFIG = '/api/faq/v1/assistant/configs/language'\n\n\n// getLangugages(): Observable<any> {\n// return this.http.get<any>(`${this.LANGUAGES}`)\n// }\n\n// getChatData(tabType: any): any {\n// return this.http.post<any>(`${this.CONFIG}`, tabType)\n// }\n\n openSupportAIChatbot = new BehaviorSubject<boolean>(false)\n showNavbarDisplay$ = new BehaviorSubject<boolean>(true)\n discussionCnfig: any\n iGOTAIChatHistory:any\n constructor(\n private http: HttpClient,\n ) { }\n\n createUser(request: any): Observable<any> {\n return this.http.post<any>(API_END_POINTS.CREATE_USER_API, request)\n }\n\n setDiscussionConfig(config: any) {\n this.discussionCnfig = config\n }\n getCookie(name: string) {\n const ca: string[] = document.cookie.split(';')\n const caLen: number = ca.length\n const cookieName = `${name}=`\n let c: string\n\n for (let i = 0; i < caLen; i += 1) {\n c = ca[i].replace(/^\\s+/g, '')\n if (c.indexOf(cookieName) === 0) {\n return c.substring(cookieName.length, c.length)\n }\n }\n return ''\n }\n deleteCookie(name: string) {\n this.setCookie(name, '', -1)\n }\n\n setCookie(name: string, value: string, expireDays: number, path: string = '') {\n const d = new Date()\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000)\n const expires = `expires=${d.toUTCString()}`\n const cpath = path ? `; path=${path}` : ''\n document.cookie = `${name}=${value}; ${expires}${cpath}`\n }\n getChatData(tabType: any): any {\n return this.http.post<any>(`${API_END_POINTS.CONFIG}`, tabType)\n }\n\n getLangugages(): Observable<any> {\n return this.http.get<any>(`${API_END_POINTS.LANGUAGES}`)\n }\n\n aiGlobalSearch(requestBody:any, chatId:any, userID:any): Observable<any> {\n return this.http.post<any>(`${API_END_POINTS.AI_GLOBAL_SEARCH}?chatID=${chatId}&userID=${userID}`, requestBody).pipe(\n catchError(error => {\n if (error.status === 502) {\n console.error('502 Bad Gateway from aiGlobalSearch')\n } else if (error.status === 500) {\n console.error('500 Internal Server Error from aiGlobalSearch')\n } else {\n console.error(`Unhandled error (${error.status}):`, error.message)\n }\n return throwError(() => error)\n })\n )\n }\n\n saveAIChatPositiveContentRating(requestBody:any, chatId:any, userID:any) {\n console.log('chatId=', chatId, 'userID=', userID)\n return this.http.post<any>(`${API_END_POINTS.AI_CHAT_FEEDBACK}?chatID=${chatId}&userID=${userID}`, requestBody)\n }\n\n shareAIFeedback(requestBody:any, chatId:any, userID:any) {\n return this.http.post<any>(`${API_END_POINTS.AI_CHAT_FEEDBACK}?chatID=${chatId}&userID=${userID}`, requestBody)\n }\n\n aiGlobalSearchFromInternet(requestBody:any, chatId:any, userID:any) {\n return this.http.post<any>(`${API_END_POINTS.AI_GLOBAL_INTERNET_SEARCH}?chatID=${chatId}&user_id=${userID}`, requestBody)\n }\n\n aiStartChathForSupport(requestBody:any, userID:any): Observable<any> {\n const headers = new HttpHeaders()\n .set('user-id', userID)\n return this.http.post<any>(`${API_END_POINTS.SUPPORT_AI_START_CHAT}`, requestBody, {\n headers,\n\n })\n }\n\n aiSendChathForSupport(requestBody:any, userID:any): Observable<any> {\n const headers = new HttpHeaders()\n .set('user-id', userID)\n return this.http.post<any>(`${API_END_POINTS.SUPPORT_AI_SEND_CHAT}`, requestBody, {\n headers,\n })\n }\n}\n","import { HttpClient } from \"@angular/common/http\"\r\nimport { Injectable } from \"@angular/core\"\r\n\r\nexport interface ChatMessage {\r\n sender: 'bot' | 'user'\r\n text?: string\r\n activity?: any\r\n}\r\n\r\nexport interface ChatResponse {\r\n session_id: string\r\n activities: any[]\r\n status: string\r\n flow_id?: string\r\n ticket_id?: string\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n\r\n\r\nexport class SupportAiService {\r\n private SUPPORT_AI_API = {\r\n LIST_SESSION:\r\n '/apis/proxies/v8/ai/chatbot/v1/sessions/list',\r\n\r\n CREATE_SESSION:\r\n '/apis/proxies/v8/ai/chatbot/v1/sessions/create',\r\n\r\n GET_HISTORY: (sessionId: string) =>\r\n `/apis/proxies/v8/ai/chatbot/v1/sessions/history/${sessionId}`,\r\n\r\n SEND_TURN: (sessionId: string) =>\r\n `/apis/proxies/v8/ai/chatbot/v1/sessions/turn/${sessionId}`\r\n }\r\n // private baseUrl = 'apis/proxies/v8';\r\n constructor(\r\n private http: HttpClient\r\n ) { }\r\n\r\n listSessions() {\r\n return this.http.get(\r\n this.SUPPORT_AI_API.LIST_SESSION\r\n )\r\n }\r\n\r\n createSession() {\r\n return this.http.post(\r\n this.SUPPORT_AI_API.CREATE_SESSION,\r\n {\r\n channel: 'web',\r\n language: 'en'\r\n }\r\n )\r\n }\r\n\r\n getHistory(sessionId: string) {\r\n return this.http.get(\r\n this.SUPPORT_AI_API.GET_HISTORY(sessionId)\r\n )\r\n }\r\n\r\n sendTurn(\r\n sessionId: string,\r\n payload: any\r\n ) {\r\n return this.http.post(\r\n this.SUPPORT_AI_API.SEND_TURN(sessionId),\r\n payload\r\n )\r\n }\r\n}","import { AfterViewChecked, AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewChild } from '@angular/core'\r\nimport { Router, NavigationEnd } from '@angular/router'\r\nimport { ConfigurationsService, EventService, WsEvents } from '@sunbird-cb/utils-v2'\r\n// import { RootService } from '../root/root.service'\r\n// import { environment } from '../../../environments/environment'\r\n// import { NonReleventFeedbackDialogComponent } from '@sunbird-cb/collection'\r\n// import { MatDialog } from '@angular/material/dialog'\r\nimport { MatSnackBar as MatSnackbarNew } from '@angular/material/snack-bar'\r\n// import cloneDeep from 'lodash/cloneDeep'\r\nimport { SupportAiService } from './support-ai.service'\r\nimport { ChatbotService } from './chatbot.service'\r\n\r\n\r\n@Component({\r\n selector: 'ws-app-support-ai',\r\n templateUrl: './support-ai.component.html',\r\n styleUrls: ['./support-ai.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportAIComponent implements OnInit, OnChanges, AfterViewInit, AfterViewChecked, OnDestroy {\r\n @Input() from = ''\r\n @Input() userJourney = []\r\n @Input() chatId = ''\r\n @Input() userId = ''\r\n @Input() fullScreenChatFlag = false\r\n @Input() activeLaguage = 'en'\r\n @Output() scrollToBottomEvent = new EventEmitter()\r\n showIcon = true\r\n categories: any[] = []\r\n language: any[] = []\r\n currentFilter = 'information'\r\n selectedLaguage = 'en'\r\n\r\n responseData: any\r\n userInfo: any\r\n recomendedQns: any = {}\r\n questionsAndAns: any = {}\r\n userIcon = ''\r\n more = false\r\n chatInformation: any = []\r\n chatIssues: any = []\r\n displayLoader = false\r\n expanded = false\r\n callText = ''\r\n emailText = ''\r\n searchQuery: any\r\n initials: any\r\n copiedIndex = -1\r\n public circleColor!: string\r\n random = Math.random().toString(36).slice(2)\r\n iGOTAISearchResultArr: any = []\r\n // public initials!: string\r\n resultFetch = false\r\n searchAPIResponseInProgress = false\r\n private colors = [\r\n '#EB7181', // red\r\n '#306933', // green\r\n '#000000', // black\r\n '#3670B2', // blue\r\n '#4E9E87',\r\n '#7E4C8D',\r\n ]\r\n\r\n private randomcolors = [\r\n '#EB7181', // red\r\n '#006400', // green\r\n '#000000', // black\r\n '#3670B2', // blue\r\n '#4E9E87',\r\n '#7E4C8D',\r\n ]\r\n\r\n // tslint:disable\r\n localization: any = {\r\n 'en': {\r\n 'Hi': 'Namaste',\r\n 'information': 'Information',\r\n 'issue': 'Issues',\r\n 'categories': 'Show All Categories',\r\n 'showmore': 'Show More'\r\n },\r\n 'hi': {\r\n 'Hi': 'नमस्ते',\r\n 'information': 'जानकारी',\r\n 'issue': 'समस्या',\r\n 'categories': 'सभी कैटगोरी दिखायें',\r\n 'showmore': 'और दिखाओ'\r\n\r\n }\r\n }\r\n\r\n aiSearchResult: any = {}\r\n\r\n aiSearchResultArr: any = []\r\n cloneSearchQuery = ''\r\n displayedText = '';\r\n startNewChat = false\r\n initiateSupportNewChat = false\r\n // tslint: enable\r\n @ViewChild('scrollMe') private myScrollContainer: ElementRef | undefined\r\n isHubEnable!: boolean\r\n @ViewChild('autoResizeTextarea') textArea!: ElementRef<HTMLTextAreaElement>\r\n containerHeight = 36;\r\n sessionId = '';\r\n\r\n chatActivities: any[] = [];\r\n\r\n loadingSupportAI = false;\r\n\r\n conversationEnded = false;\r\n isInputEnabled = false;\r\n showRetry = false;\r\nretryCallback: (() => void) | null = null;\r\n\r\n // course picker var\r\n currentPicker: any = null;\r\n\r\npickerSearch = '';\r\n\r\nfilteredPickerItems: any[] = [];\r\n\r\nselectedPickerItem: any = null;\r\n\r\npickerOpened = false;\r\nshowAllPlans = false;\r\n\r\nexpandedCourseLists: { [planId: string]: boolean } = {};\r\n\r\n // nested picker state\r\n expandedPlanIds: { [key: string]: boolean } = {};\r\n constructor(\r\n private configSvc: ConfigurationsService,\r\n private eventSvc: EventService,\r\n private renderer: Renderer2,\r\n private chatbotService: ChatbotService,\r\n // private dialog: MatDialog,\r\n private matSnackBarNew: MatSnackbarNew,\r\n private supportAiService: SupportAiService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationEnd) {\r\n //certificate link check\r\n this.isHubEnable = (event.url.includes('/certs') || event.url.includes('/public/certs')) ? false : true\r\n }\r\n })\r\n this.userInfo = this.configSvc && this.configSvc.userProfile\r\n // this.aiGlobalSearch()\r\n // this.startNewSupportAISearch()\r\n this.checkForApiCalls()\r\n this.enableScroll()\r\n // tslint:disable-next-line: max-line-length\r\n this.userIcon = this.userInfo && this.userInfo.profileImageUrl ? this.userInfo.profileImageUrl : ''\r\n if (!this.userInfo.profileImageUrl && this.userInfo && this.userInfo.firstName) {\r\n this.createInititals(this.userInfo.firstName)\r\n }\r\n\r\n const email = 'mission.karmayogi@gov.in'\r\n this.callText = `<a class='hint-text' target='_blank' href='https://bit.ly/44MJlo4'>Teams Call</a> `\r\n this.emailText = `<a class='hint-text' target='_blank' href='mailto:${email}'>${email}.</a>`\r\n\r\n this.initializeSupportAI()\r\n\r\n }\r\n initializeSupportAI() {\r\n this.loadingSupportAI = true\r\n\r\n this.supportAiService.listSessions().subscribe({\r\n next: (res: any) => {\r\n this.initiateSupportNewChat = true\r\n if (res?.session_id) {\r\n this.sessionId = res.session_id\r\n this.loadHistory()\r\n } else {\r\n this.createSession()\r\n }\r\n },\r\n error: () => {\r\n this.loadingSupportAI = false;\r\n this.setRetry(() => this.initializeSupportAI());\r\n}\r\n })\r\n }\r\n private setRetry(callback: () => void) {\r\n this.showRetry = true;\r\n this.retryCallback = callback;\r\n}\r\n\r\nretryApi() {\r\n this.showRetry = false;\r\n\r\n if (this.retryCallback) {\r\n this.retryCallback();\r\n }\r\n}\r\n createSession() {\r\n\r\n this.supportAiService.createSession().subscribe({\r\n next: (res: any) => {\r\n this.sessionId = res.session_id;\r\n this.chatActivities = [];\r\n this.renderActivities(res.activities);\r\n this.loadingSupportAI = false;\r\n this.showRetry = false;\r\n },\r\n error: () => {\r\n this.loadingSupportAI = false;\r\n this.setRetry(() => this.createSession());\r\n }\r\n});\r\n }\r\nrenderActivities(activities: any[]) {\r\n\r\n activities.forEach((activity, index) => {\r\n\r\n const isLast = index === activities.length - 1;\r\n\r\n this.chatActivities.push({\r\n sender: 'bot',\r\n activity,\r\n showTimestamp: isLast,\r\n timestamp: isLast ? new Date() : null,\r\n showAllChoices: false\r\n\r\n });\r\n\r\n if (activity.disable_input !== undefined) {\r\n this.isInputEnabled = !activity.disable_input;\r\n }\r\n\r\n if (activity.type === 'picker') {\r\n this.currentPicker = activity;\r\n this.filteredPickerItems = [...activity.items];\r\n this.pickerSearch = '';\r\n }\r\n\r\nif (activity.type === 'nested_picker') {\r\n this.currentPicker = activity;\r\n this.expandedPlanIds = {};\r\n\r\n activity.items?.forEach((plan: any) => {\r\n plan.showAllCourses = false;\r\n });\r\n}\r\n\r\n });\r\n setTimeout(() => {\r\n\r\n this.scrollToBottomEvent.emit()\r\n }, 100);\r\n}\r\nfilterPickerItems() {\r\n\r\n const search = this.pickerSearch.toLowerCase();\r\n\r\n this.filteredPickerItems =\r\n this.currentPicker.items.filter((item: any) =>\r\n item.label.toLowerCase().includes(search)\r\n );\r\n\r\n}\r\n\r\nselectPickerItem(item: any) {\r\n\r\n this.selectedPickerItem = item;\r\n\r\n this.pickerOpened = false;\r\n\r\n this.chatActivities.push({\r\n sender: 'user',\r\n text: item.label,\r\n timestamp: new Date()\r\n });\r\n\r\n this.sendTurn({\r\n action: 'pick_item',\r\n picker_id: this.currentPicker.picker_id,\r\n item_id: item.id\r\n });\r\n\r\n}\r\n\r\n sendTurn(payload: any) {\r\n\r\n this.loadingSupportAI = true\r\n\r\n this.supportAiService.sendTurn(this.sessionId, payload)\r\n .subscribe({\r\n next: (res: any) => {\r\n\r\n this.renderActivities(res.activities)\r\n\r\n if (res.activities?.some((a: any) => a.type === 'end')) {\r\n this.conversationEnded = true\r\n }\r\n\r\n this.loadingSupportAI = false\r\n this.showRetry = false;\r\n },\r\n error: () => {\r\n this.loadingSupportAI = false;\r\n this.setRetry(() => this.sendTurn(payload));\r\n}\r\n })\r\n }\r\n selectChoice(choice: any) {\r\n\r\n this.chatActivities.push({\r\n sender: 'user',\r\n text: choice.label,\r\n icon: choice.icon,\r\n timestamp: new Date()\r\n })\r\n\r\n this.sendTurn({\r\n action: 'select_choice',\r\n choice_id: choice.id\r\n })\r\n }\r\n\r\n startNewConversation() {\r\n this.chatActivities = []\r\n this.sessionId = ''\r\n this.isInputEnabled = false\r\n this.createSession()\r\n }\r\n loadHistory() {\r\n\r\n this.supportAiService\r\n .getHistory(this.sessionId)\r\n .subscribe({\r\n next: (res: any) => {\r\n\r\n this.showRetry = false; // hide retry after success\r\n\r\n this.chatActivities = [];\r\n console.log('res', res);\r\n\r\n if (res?.messages?.length) {\r\n\r\n res.messages.forEach((msg: any) => {\r\n\r\n if (msg.role === 'bot') {\r\n\r\n msg.activities.forEach(\r\n (activity: any, idx: number) => {\r\n\r\n const isLast = idx === msg.activities.length - 1\r\n this.chatActivities.push({\r\n sender: 'bot',\r\n activity,\r\n showTimestamp: isLast,\r\n timestamp: isLast ? new Date(msg.timestamp || Date.now()) : null\r\n })\r\n\r\n if (activity.disable_input !== undefined) {\r\n this.isInputEnabled = !activity.disable_input;\r\n}\r\n\r\nif (activity.type === 'picker') {\r\n this.currentPicker = activity;\r\n this.filteredPickerItems = [...activity.items];\r\n this.pickerSearch = '';\r\n}\r\n\r\nif (activity.type === 'nested_picker') {\r\n this.currentPicker = activity;\r\n this.expandedPlanIds = {};\r\n\r\n activity.items?.forEach((plan: any) => {\r\n plan.showAllCourses = false;\r\n });\r\n}\r\n }\r\n )\r\n }\r\n\r\n if (msg.role === 'user') {\r\n\r\n this.chatActivities.push({\r\n sender: 'user',\r\n text: msg.text,\r\n timestamp: new Date(msg.timestamp || Date.now())\r\n })\r\n }\r\n })\r\n }\r\n\r\n this.loadingSupportAI = false\r\n },\r\n error: () => {\r\n this.loadingSupportAI = false;\r\n this.setRetry(() => this.loadHistory());\r\n }\r\n })\r\n setTimeout(() => {\r\n \r\n this.scrollToBottomEvent.emit()\r\n }, 200);\r\n }\r\n\r\n\r\n // APIS called till history Eighth change: Add sendTurn left\r\n\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['chatId']) {\r\n const prev = changes['chatId'].previousValue\r\n const current = changes['chatId'].currentValue\r\n\r\n if (prev !== current) {\r\n console.log(`'chatId' changed from '${prev}' to '${current}'`)\r\n this.startNewChat = true\r\n // this.startNewSupportAISearch()\r\n }\r\n }\r\n\r\n }\r\n\r\n greetings() {\r\n return this.localization[this.selectedLaguage]['Hi'] || 'Hi'\r\n }\r\n\r\n getInfoText(label: string) {\r\n return this.localization[this.selectedLaguage][label] || label\r\n }\r\n\r\n showMore() {\r\n return this.localization[this.selectedLaguage]['showmore'] || 'Show More'\r\n }\r\n\r\n getData() {\r\n const lang: any = {\r\n information: 'IN',\r\n issue: 'IS'\r\n }\r\n const tabType: any = {\r\n lang: this.selectedLaguage,\r\n config_type: lang[this.currentFilter]\r\n }\r\n this.displayLoader = true\r\n this.chatbotService.getChatData(tabType).subscribe((res: any) => {\r\n if (res && res.payload && res.payload.config) {\r\n this.setDataToLocalStorage(res.payload.config)\r\n this.checkForApiCalls()\r\n // this.initData(res.payload.config)\r\n this.displayLoader = false\r\n }\r\n })\r\n }\r\n setDataToLocalStorage(data: any) {\r\n let localObject: any = {}\r\n localObject = JSON.parse(localStorage.getItem('faq') || '{}')\r\n localObject[this.selectedLaguage] = { ...localObject[this.selectedLaguage], [this.currentFilter]: data }\r\n localStorage.setItem('faq', JSON.stringify(localObject))\r\n this.toggleFilter(this.currentFilter === 'information' ? 'information' : this.currentFilter)\r\n }\r\n\r\n initData(_getData: any) {\r\n // tslint:disable-next-line\r\n // console.log(getData)\r\n this.userJourney = []\r\n let userDetails: any = {\r\n type: 'incoming',\r\n message: '', //` Hi ${this.userInfo && this.userInfo.firstName || ''}, I'm KarmaSahayogi - Digital Assistant, I'm here to help you.`,\r\n recommendedQues: this.getPriorityQuestion(1),\r\n selectedValue: '',\r\n title: '',//'Here are the most frequently asked questions users have looked for',\r\n tab: 'information',\r\n }\r\n\r\n this.pushData(userDetails)\r\n // this.pushData(userDetailsForIssues)\r\n this.getQns()\r\n }\r\n getQns() {\r\n this.responseData.quesMap.map((q: any) => {\r\n this.questionsAndAns[q.quesId] = q\r\n })\r\n }\r\n\r\n selectLaguage(event: any) {\r\n this.selectedLaguage = event.target.value\r\n localStorage.setItem('selectedLanguage', event.target.value)\r\n this.chatInformation = []\r\n this.chatIssues = []\r\n this.checkForApiCalls()\r\n }\r\n\r\n readFromLocalStorage() {\r\n let localStg: any = localStorage.getItem('result')\r\n if (localStg) {\r\n if (this.currentFilter === 'information') {\r\n this.responseData = JSON.parse(localStg)[this.selectedLaguage].information\r\n } else {\r\n this.responseData = JSON.parse(localStg)[this.selectedLaguage].issue\r\n }\r\n }\r\n }\r\n\r\n goToBottom() {\r\n window.scrollTo(0, document.body.scrollHeight)\r\n }\r\n\r\n iconClick(type: string) {\r\n this.showIcon = !this.showIcon\r\n this.currentFilter = 'information'\r\n this.expanded = false\r\n if (type === 'start') {\r\n this.disableScroll()\r\n this.raiseChatStartTelemetry()\r\n // this.toggleFilter(this.currentFilter)\r\n } else {\r\n this.raiseChatEndTelemetry()\r\n this.userJourney = []\r\n this.chatInformation = []\r\n this.chatIssues = []\r\n this.selectedLaguage = 'en'\r\n this.currentFilter = 'information'\r\n this.checkForApiCalls()\r\n this.more = false\r\n this.enableScroll()\r\n }\r\n }\r\n\r\n toggleFilter(tab: string) {\r\n this.currentFilter = tab\r\n this.checkForApiCalls()\r\n this.more = false\r\n }\r\n\r\n selectedQuestion(question: any, data: any) {\r\n data.selectedValue = question.quesID\r\n const sendMsg = {\r\n type: 'sendMsg',\r\n question: this.questionsAndAns[question.quesID].quesValue,\r\n tab: this.currentFilter,\r\n }\r\n\r\n const incomingMsg = {\r\n type: 'incoming',\r\n // tslint:disable-next-line:max-line-length\r\n message: this.questionsAndAns[question.quesID].ansVal.replace('<teams_call_link>', this.callText).replace('<email_configuration>', this.emailText),\r\n recommendedQues: question.recommendedQues || [],\r\n title: '', // 'Questions related to',\r\n relatedQes: 'above Question',\r\n tab: this.currentFilter,\r\n }\r\n this.pushData(sendMsg)\r\n this.pushData(incomingMsg)\r\n this.raiseTemeletyInterat(question.quesID)\r\n }\r\n\r\n pushData(msg: any) {\r\n this.userJourney = []\r\n if (this.currentFilter === 'information') {\r\n this.chatInformation.push(msg)\r\n this.userJourney = this.chatInformation\r\n } else {\r\n this.chatIssues.push(msg)\r\n this.userJourney = this.chatIssues\r\n }\r\n }\r\n\r\n getuserjourney(tab: string) {\r\n return this.userJourney.filter((j: any) => j.tab === tab)\r\n }\r\n\r\n getPriorityQuestion(priority: any) {\r\n const recommendedQues: any[] = []\r\n const isLogedIn: string = this.userInfo ? 'Logged-In' : 'Not Logged-In'\r\n this.responseData.recommendationMap.map((question: any) => {\r\n question.recommendedQues.map((ques: any) => {\r\n if (ques.priority === priority && (question.categoryType === isLogedIn || question.categoryType === 'Both')) {\r\n recommendedQues.push(ques)\r\n }\r\n })\r\n })\r\n return recommendedQues\r\n }\r\n\r\n showMoreQuestion() {\r\n const showMoreQes: any = {\r\n type: 'incoming',\r\n message: '',\r\n recommendedQues: this.getPriorityQuestion(1),\r\n selectedValue: '',\r\n title: '', //'Showing more questions',\r\n }\r\n this.pushData(showMoreQes)\r\n }\r\n\r\n showCategory(catItem: any) {\r\n let incomingMsg = {\r\n type: 'category',\r\n message: '',\r\n recommendedQues: [],\r\n title: '', //' What do you want to know under',\r\n relatedQes: `${catItem.catName}?`,\r\n tab: this.currentFilter,\r\n }\r\n this.more = false\r\n if (catItem.catId === 'all') {\r\n incomingMsg.title = '', // 'Here is the list of all the topics'\r\n incomingMsg.relatedQes = ''\r\n incomingMsg.recommendedQues = this.sortCategory()\r\n } else {\r\n this.responseData.recommendationMap.forEach((element: any) => {\r\n if (catItem.catId === element.catId) {\r\n incomingMsg.type = 'incoming',\r\n incomingMsg.recommendedQues = element.recommendedQues\r\n }\r\n })\r\n this.raiseCategotyTelemetry(catItem.catId)\r\n }\r\n const sendMsg = {\r\n type: 'sendMsg',\r\n question: catItem.catName,\r\n }\r\n this.pushData(sendMsg)\r\n this.pushData(incomingMsg)\r\n }\r\n\r\n raiseCategotyTelemetry(catItem: string) {\r\n const event = {\r\n eventType: WsEvents.WsEventType.Telemetry,\r\n eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n data: {\r\n edata: { type: 'click', id: catItem },\r\n object: { id: catItem, type: 'Category' },\r\n state: WsEvents.EnumTelemetrySubType.Interact,\r\n eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n mode: 'view',\r\n },\r\n pageContext: { pageId: '/chatbot', module: 'Assistant' },\r\n from: '',\r\n to: 'Telemetry',\r\n }\r\n this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n }\r\n\r\n raiseChatStartTelemetry() {\r\n const event = {\r\n eventType: WsEvents.WsEventType.Telemetry,\r\n eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n data: {\r\n edata: { type: '' },\r\n object: { type: 'zse', id: 'asd' },\r\n state: WsEvents.EnumTelemetrySubType.Loaded,\r\n eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n type: 'session',\r\n mode: 'view',\r\n },\r\n pageContext: { pageId: '/chatbot', module: 'Assistant' },\r\n from: '',\r\n to: 'Telemetry',\r\n }\r\n this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n }\r\n\r\n raiseChatEndTelemetry() {\r\n const event = {\r\n eventType: WsEvents.WsEventType.Telemetry,\r\n eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n data: {\r\n edata: { type: '' },\r\n object: {},\r\n state: WsEvents.EnumTelemetrySubType.Unloaded,\r\n eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n type: 'session',\r\n mode: 'view',\r\n },\r\n pageContext: { pageId: '/chatbot', module: 'Assistant' },\r\n from: '',\r\n to: 'Telemetry',\r\n }\r\n this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n }\r\n\r\n raiseTemeletyInterat(idn: string) {\r\n const event = {\r\n eventType: WsEvents.WsEventType.Telemetry,\r\n eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n data: {\r\n edata: { type: 'click', id: idn },\r\n object: { id: idn, type: this.currentFilter.charAt(0).toUpperCase() + this.currentFilter.slice(1) },\r\n state: WsEvents.EnumTelemetrySubType.Interact,\r\n eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n mode: 'view'\r\n },\r\n pageContext: { pageId: '/chatbot', module: 'Assistant' },\r\n from: '',\r\n to: 'Telemetry',\r\n }\r\n this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n }\r\n\r\n checkForAIQuestionResponse() {\r\n\r\n }\r\n\r\n checkForApiCalls() {\r\n this.selectedLaguage = localStorage.getItem('selectedLanguage') || 'en'\r\n let localStg: any = JSON.parse(localStorage.getItem('faq') || '{}')\r\n let languageStg: any = JSON.parse(localStorage.getItem('faq-languages') || '{}')\r\n if (languageStg.length > 0) {\r\n this.language = languageStg\r\n } else {\r\n this.getLanguages()\r\n }\r\n\r\n if (localStg && languageStg) {\r\n if (localStg[this.selectedLaguage] && localStg[this.selectedLaguage][this.currentFilter]) {\r\n const localStorageData = localStg[this.selectedLaguage][this.currentFilter]\r\n this.userJourney = []\r\n if (this.currentFilter === 'information') {\r\n if (this.chatInformation.length === 0) {\r\n this.responseData = localStorageData\r\n this.initData(localStorageData)\r\n } else {\r\n this.responseData = localStorageData\r\n this.userJourney = this.chatInformation\r\n }\r\n } else {\r\n if (this.chatIssues.length === 0) {\r\n this.responseData = localStorageData\r\n this.initData(localStorageData)\r\n } else {\r\n this.responseData = localStorageData\r\n this.userJourney = this.chatIssues\r\n }\r\n }\r\n this.getQns()\r\n this.getCategories()\r\n } else {\r\n this.getLanguages()\r\n // this.getData()\r\n }\r\n }\r\n }\r\n getCategories() {\r\n this.categories = [{ catId: 'all', catName: this.localization[this.selectedLaguage]['categories'], priority: 0 }]\r\n const categories: any = []\r\n const isLogedIn: string = this.userInfo ? 'Logged-In' : 'Not Logged-In'\r\n this.responseData.recommendationMap.map((catandques: any) => {\r\n this.responseData.categoryMap.map((cat: any) => {\r\n if (catandques.catId === cat.catId && (catandques.categoryType === isLogedIn || catandques.categoryType === 'Both')) {\r\n const category = {\r\n catId: cat.catId,\r\n catName: cat.catName,\r\n priority: catandques.priority,\r\n categoryType: catandques.categoryType,\r\n }\r\n categories.push(category)\r\n }\r\n })\r\n })\r\n if (categories.length < 6) {\r\n this.categories = categories\r\n } else {\r\n this.categories = [...this.categories, ...categories]\r\n }\r\n }\r\n sortCategory(): any {\r\n // tslint:disable-next-line: max-line-length\r\n return this.categories.sort((a: any, b: any) => a['priority'] > b['priority'] ? 1 : a['priority'] === b['priority'] ? 0 : -1)\r\n }\r\n\r\n getLanguages() {\r\n this.displayLoader = true\r\n this.chatbotService.getLangugages().subscribe((resp: any) => {\r\n if (resp && resp.status && resp.status.code === 200) {\r\n this.language = resp.payload.languages\r\n localStorage.setItem('faq-languages', JSON.stringify(resp.payload.languages))\r\n localStorage.setItem('selectedLanguage', this.selectedLaguage)\r\n this.getData()\r\n this.displayLoader = false\r\n }\r\n })\r\n }\r\n\r\n ngAfterViewChecked() {\r\n //this.scrollToBottom()\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n this.resizeTextarea(this.textArea.nativeElement, '')\r\n\r\n setTimeout(() => {\r\n \r\n this.scrollToBottomEvent.emit()\r\n }, 200);\r\n }\r\n\r\n scrollToBottom(): void {\r\n try {\r\n if (this.myScrollContainer) {\r\n this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight\r\n }\r\n } catch (err) { }\r\n }\r\n clickOutside() {\r\n this.iconClick('end')\r\n }\r\n private disableScroll() {\r\n this.renderer.addClass(document.body, 'disable-scroll')\r\n }\r\n\r\n private enableScroll() {\r\n this.renderer.removeClass(document.body, 'disable-scroll')\r\n }\r\n\r\n submitSearchQuery(textArea: HTMLTextAreaElement, event: any) {\r\n\r\n if (!this.isInputEnabled) {\r\n return\r\n }\r\n\r\n if (!this.searchQuery?.trim()) {\r\n event.preventDefault()\r\n return\r\n }\r\n\r\n const message = this.searchQuery.trim()\r\n\r\n // Show user message\r\n this.chatActivities.push({\r\n sender: 'user',\r\n text: message,\r\n timestamp: new Date(),\r\n showAllChoices: false\r\n\r\n })\r\n setTimeout(() => {\r\n \r\n this.scrollToBottomEvent.emit()\r\n }, 100);\r\n // Send to chatbot\r\n this.sendTurn({\r\n action: 'send_message', // Verify this with backend if needed\r\n text: message\r\n })\r\n\r\n this.searchQuery = ''\r\n this.resetTextAreaHeight(textArea)\r\n }\r\n\r\n // startNewSupportAISearch() {\r\n // this.iGOTAISearchResultArr = []\r\n // let requestBody: any = {\r\n // \"channel_id\": \"web\",\r\n // // \"session_id\": this.chatId,\r\n // \"text\": this.cloneSearchQuery,\r\n // \"audio\": \"\",\r\n // \"language\": this.activeLaguage\r\n // }\r\n // console.log('requestBody--', requestBody)\r\n // if (this.startNewChat) {\r\n // this.chatbotService.aiStartChathForSupport(requestBody, this.userId).subscribe((data) => {\r\n // console.log('data---', data)\r\n // this.resultFetch = true\r\n // if (data && data.message) {\r\n // this.initiateSupportNewChat = true\r\n // this.aiSearchResultArr.push(\r\n // { type: 'incoming', tab: 'support-ai', answer: `Hi ${this.userInfo?.firstName}! 👋`, newMessage: 'Hi Manasvi! 👋', showBot: true },\r\n // { type: 'incoming', tab: 'support-ai', answer: \"I'm your iGOT Support Assistant 🤖 — here to guide you with anything related to the iGOT platform.\", newMessage: \"I'm your iGOT Support Assistant 🤖 — here to guide you with anything related to the iGOT platform.\", showBot: false },\r\n // { type: 'incoming', tab: 'support-ai', answer: \"How can I assist you today?\", newMessage: 'How can I assist you today?', showBot: false }\r\n // )\r\n // } else {\r\n // this.initiateSupportNewChat = false\r\n // }\r\n\r\n\r\n\r\n // })\r\n\r\n // const event = {\r\n // eventType: WsEvents.WsEventType.Telemetry,\r\n // eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n // data: {\r\n // edata: { type: 'click', \"id\": \"support-ai-global-search\", \"pageid\": \"/page/home\" },\r\n // object: {},\r\n // state: WsEvents.EnumTelemetrySubType.Interact,\r\n // eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n // mode: 'view',\r\n // },\r\n // pageContext: { pageId: '/page/home', module: 'Home' },\r\n // from: '',\r\n // to: 'Telemetry',\r\n // }\r\n // this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n // }\r\n // }\r\n\r\n\r\n\r\n\r\n // supportAISearch() {\r\n // console.log('this.initiateSupportNewChat--', this.initiateSupportNewChat)\r\n // if (this.initiateSupportNewChat) {\r\n // let requestBody: any = {\r\n // \"channel_id\": \"web\",\r\n // // \"session_id\": this.chatId,\r\n // \"text\": this.cloneSearchQuery,\r\n // \"audio\": \"\",\r\n // \"language\": this.activeLaguage\r\n // }\r\n // this.chatbotService.aiSendChathForSupport(requestBody, this.userId).subscribe((data) => {\r\n // this.resultFetch = true\r\n // this.aiSearchResult = data\r\n\r\n // //let arr:any = []\r\n // // this.aiSearchResult.RetrievedChunks && this.aiSearchResult.RetrievedChunks.map((item:any)=>{\r\n // // let startTime = 0\r\n // // let endTime = 0\r\n // // let pageNumber:any = 1\r\n // // if(item && item?.contentStart) {\r\n // // startTime = item?.contentStart\r\n // // pageNumber= item?.contentStart\r\n // // }\r\n // // if(item && item?.ContentEnd) {\r\n // // endTime = item?.ContentEnd\r\n // // pageNumber= item?.ContentEnd\r\n // // }\r\n // // pageNumber = pageNumber !== \" \" ? pageNumber : 1\r\n\r\n // // let resultObj = {\r\n // // message: item.Name,\r\n // // recommendedQues: '',\r\n // // selectedValue: '',\r\n // // title: item.Name,\r\n // // content: item,\r\n // // mimeType: item.mimeType,\r\n // // contentType: item.ContentType,\r\n // // artifactUrl: item.ArtifactURL,\r\n // // description: item.Description,\r\n // // identifier: item.Identifier,\r\n // // contentStart: startTime,\r\n // // contentEnd: endTime,\r\n // // pageNumber: pageNumber,\r\n // // query: this.aiSearchResult.query,\r\n // // query_id: this.aiSearchResult.query_id,\r\n // // feedback: '',\r\n // // resourceLink : item.mimeType === 'application/pdf'? `https://portal.igotkarmayogi.gov.in/app/amrit-gyaan-kosh/player/pdf/${item.Identifier}?primaryCategory=Learning Resource&from=globalSearch&playerPreview=true&pn=${pageNumber}`: `https://portal.igotkarmayogi.gov.in/app/amrit-gyaan-kosh/player/video/${item.Identifier}?primaryCategory=Learning Resource&from=globalSearch&playerPreview=true&st=${startTime}&et=${endTime}`\r\n // // }\r\n\r\n // // // arr.push(resultObj)\r\n // // this.iGOTAISearchResultArr.push(resultObj)\r\n\r\n // // })\r\n // let answer = this.aiSearchResult.text ? this.aiSearchResult.text.trim().replace(/\\n/g, '<br>') : \"\"\r\n // let shortAnswer = this.splitParagraphByWords(answer)\r\n // this.aiSearchResultArr.push({ showBot: true, wordsCount: answer.trim().split(/\\s+/).length, showLess: answer.trim().split(/\\s+/).length > 30 ? true : false, answer: answer, shortAnswer: shortAnswer, result: this.iGOTAISearchResultArr, type: 'incoming', tab: 'support-ai', reterivedChunks: this.aiSearchResult.RetrievedChunks, showFromInternet: (!(this.aiSearchResult.answer) && !(this.aiSearchResult.RetrievedChunks)) ? true : false })\r\n // this.aiSearchResultArr.map((item: any, index: any) => {\r\n // if (item && (item.newMessage === '')) {\r\n // // delete this.aiSearchResultArr[index]\r\n // this.aiSearchResultArr.splice(index, 1)\r\n // }\r\n // })\r\n // // setTimeout(()=>{\r\n // // this.scrollToBottomEvent.emit()\r\n // // },0)\r\n\r\n // })\r\n\r\n // const event = {\r\n // eventType: WsEvents.WsEventType.Telemetry,\r\n // eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n // data: {\r\n // edata: { type: 'click', \"id\": \"support-ai-global-search\", \"pageid\": \"/page/home\" },\r\n // object: {},\r\n // state: WsEvents.EnumTelemetrySubType.Interact,\r\n // eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n // mode: 'view',\r\n // },\r\n // pageContext: { pageId: '/page/home', module: 'Home' },\r\n // from: '',\r\n // to: 'Telemetry',\r\n // }\r\n // this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n // }\r\n\r\n\r\n\r\n\r\n // }\r\n\r\n sharePositiveContentRating(item: any, index: any, cindex: any) {\r\n let requestBody: any = {\r\n \"query_id\": item?.query_id,\r\n // \"response\": item?.description,\r\n \"comments\": \"accurate\",\r\n \"is_liked\": true,\r\n \"rating\": \"5\"\r\n\r\n }\r\n\r\n //this.matSnackBar.open('Unable to fetch content data, due to some error!')\r\n this.chatbotService.saveAIChatPositiveContentRating(requestBody, this.chatId, this.userId).subscribe((data: any) => {\r\n if (data && data.status === 'success') {\r\n // this.matSnackBar.openFromComponent(SnackbarComponent, {\r\n // data: {\r\n // message: 'Thank you for your feedback.', type: 'success',\r\n // }, duration: 5000, panelClass: 'course-success-snackbar',\r\n // })\r\n // console.log(this.aiSearchResultArr, index, this.aiSearchResultArr[index])\r\n if (this.aiSearchResultArr && this.aiSearchResultArr.length && this.aiSearchResultArr[index]) {\r\n if (this.aiSearchResultArr[index].result && this.aiSearchResultArr[index].result[cindex])\r\n this.aiSearchResultArr[index].result[cindex]['feedback'] = 'up'\r\n }\r\n this.matSnackBarNew.open(\r\n 'Thank you for your feedback.', 'X',\r\n { duration: 5000, panelClass: ['success'] }\r\n )\r\n\r\n } else {\r\n this.matSnackBarNew.open(\r\n 'Something is wrong. Please try again later.', 'X',\r\n { duration: 5000, panelClass: ['error'] }\r\n )\r\n }\r\n\r\n })\r\n }\r\n\r\n openAIFeedbackPopup(item: any, index: any, cindex: any) {\r\n console.log('item, cindex', item, cindex)\r\n if (this.aiSearchResultArr && this.aiSearchResultArr.length && this.aiSearchResultArr[index] && this.aiSearchResultArr[index]) {\r\n // if (this.aiSearchResultArr[index].result && this.aiSearchResultArr[index].result[cindex] && this.aiSearchResultArr[index].result[cindex]['feedback'] !== 'down') {\r\n // const dialogRef = this.dialog.open(NonReleventFeedbackDialogComponent, {\r\n // disableClose: true,\r\n // width: '502px',\r\n // panelClass: ['relevent-feedback-dialog'],\r\n // })\r\n // dialogRef.afterClosed().subscribe((result: any) => {\r\n // if (result) {\r\n // this.shareAIFeedback(item, result, index, cindex)\r\n // dialogRef.close()\r\n // } else {\r\n // dialogRef.close()\r\n // }\r\n // })\r\n // } else {\r\n // this.matSnackBarNew.open(\r\n // 'You have already submitted feedback', 'X',\r\n // { duration: 5000, panelClass: ['error'] }\r\n // )\r\n // }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n shareAIFeedback(item: any, result: any, index: any, cindex: any) {\r\n\r\n let requestBody: any = {\r\n \"query_id\": item?.query_id,\r\n // \"response\": item?.description,\r\n \"comments\": result,\r\n \"is_liked\": false,\r\n \"rating\": \"0\"\r\n\r\n }\r\n this.chatbotService.shareAIFeedback(requestBody, this.chatId, this.userId).subscribe((data: any) => {\r\n if (data && data.status === 'success') {\r\n if (this.aiSearchResultArr && this.aiSearchResultArr.length && this.aiSearchResultArr[index]) {\r\n if (this.aiSearchResultArr[index].result && this.aiSearchResultArr[index].result[cindex])\r\n this.aiSearchResultArr[index].result[cindex]['feedback'] = 'down'\r\n }\r\n this.matSnackBarNew.open(\r\n 'Thank you for your feedback.', 'X',\r\n { duration: 5000, panelClass: ['success'] }\r\n )\r\n } else {\r\n this.matSnackBarNew.open(\r\n 'Something is wrong. Please try again later.', 'X',\r\n { duration: 5000, panelClass: ['error'] }\r\n )\r\n }\r\n })\r\n }\r\n\r\n callFromInternet(item: any, index: any) {\r\n this.resultFetch = false\r\n this.aiSearchResultArr.push({ showBot: true, type: 'incoming', tab: 'support-ai', answer: '', newMessage: '' })\r\n if (this.aiSearchResultArr[index] && this.aiSearchResultArr[index]['showFromInternet']) {\r\n this.aiSearchResultArr[index]['showFromInternet'] = false\r\n }\r\n\r\n if (item && !item.answer) {\r\n\r\n let internetGlobalSearchRequest = {\r\n \"query\": this.cloneSearchQuery,\r\n \"designation\": this.userInfo?.professionalDetails && this.userInfo?.professionalDetails.length ? this.userInfo?.professionalDetails[0].designation : '',\r\n \"department\": this.userInfo?.departmentName ? this.userInfo?.departmentName : '',\r\n }\r\n this.chatbotService.aiGlobalSearchFromInternet(internetGlobalSearchRequest, this.chatId, this.userId).subscribe((idata: any) => {\r\n this.resultFetch = true\r\n this.aiSearchResultArr.map((item: any, index: any) => {\r\n if (item && (item.newMessage === '')) {\r\n // delete this.aiSearchResultArr[index]\r\n this.aiSearchResultArr.splice(index, 1)\r\n }\r\n })\r\n let resultObj = {\r\n message: idata.answer,\r\n recommendedQues: '',\r\n selectedValue: '',\r\n title: idata.answer,\r\n content: idata,\r\n mimeType: idata,\r\n contentType: idata,\r\n artifactUrl: idata,\r\n description: idata.answer,\r\n identifier: idata,\r\n contentStart: idata,\r\n contentEnd: idata,\r\n pageNumber: idata,\r\n query: this.cloneSearchQuery,\r\n query_id: idata.query_id,\r\n resourceLink: '',\r\n fromInternet: true,\r\n feedback: ''\r\n }\r\n\r\n this.iGOTAISearchResultArr.push(resultObj)\r\n let answer = idata.answer ? idata.answer.trim().replace(/\\n/g, '<br>') : \"\"\r\n let shortAnswer = this.splitParagraphByWords(answer)\r\n this.aiSearchResultArr.push({ showBot: true, wordsCount: answer.trim().split(/\\s+/).length, showLess: answer.trim().split(/\\s+/).length > 30 ? true : false, answer: answer, shortAnswer: shortAnswer, result: this.iGOTAISearchResultArr, type: 'incoming', tab: 'support-ai', reterivedChunks: this.aiSearchResult.RetrievedChunks, showFromInternet: false })\r\n this.aiSearchResultArr.map((item: any, index: any) => {\r\n if (item && (item.newMessage === '')) {\r\n // delete this.aiSearchResultArr[index]\r\n this.aiSearchResultArr.splice(index, 1)\r\n }\r\n })\r\n // setTimeout(()=>{\r\n // this.scrollToBottomEvent.emit()\r\n // },0)\r\n })\r\n }\r\n }\r\n\r\n rejectFromInternet(index: any) {\r\n if (this.aiSearchResultArr[index] && this.aiSearchResultArr[index]['showFromInternet']) {\r\n this.aiSearchResultArr[index]['showFromInternet'] = false\r\n }\r\n this.resultFetch = true\r\n this.aiSearchResultArr.map((item: any, index: any) => {\r\n if (item && (item.newMessage === '')) {\r\n // delete this.aiSearchResultArr[index]\r\n this.aiSearchResultArr.splice(index, 1)\r\n }\r\n })\r\n }\r\n\r\n copyPath(item: any, cindex: any) {\r\n const selBox = document.createElement('textarea')\r\n selBox.style.position = 'fixed'\r\n selBox.style.left = '0'\r\n selBox.style.top = '0'\r\n selBox.style.opacity = '0'\r\n selBox.value = item.mimeType === 'application/pdf' ? `https://portal.igotkarmayogi.gov.in/app/amrit-gyaan-kosh/player/pdf/${item.identifier}?primaryCategory=Learning Resource&from=globalSearch&playerPreview=true&pn=${item.pageNumber}` : `https://portal.igotkarmayogi.gov.in/app/amrit-gyaan-kosh/player/video/${item.identifier}?primaryCategory=Learning Resource&from=globalSearch&playerPreview=true&st=${item?.contentStart}&et=${item?.contentEnd}`\r\n document.body.appendChild(selBox)\r\n selBox.focus()\r\n selBox.select()\r\n document.execCommand('copy')\r\n document.body.removeChild(selBox)\r\n this.copiedIndex = cindex\r\n setTimeout(() => {\r\n this.copiedIndex = -1\r\n }, 1000)\r\n\r\n }\r\n\r\n redirectToResource(item: any) {\r\n let path = (item.mimeType) === 'application/pdf' ? `https://portal.igotkarmayogi.gov.in/app/amrit-gyaan-kosh/player/pdf/${item.identifier}?primaryCategory=Learning Resource&from=globalSearch&playerPreview=true&pn=${item.pageNumber}` : `https://portal.igotkarmayogi.gov.in/app/amrit-gyaan-kosh/player/video/${item.identifier}?primaryCategory=Learning Resource&from=globalSearch&playerPreview=true&st=${item?.contentStart}&et=${item?.contentEnd}`\r\n window.open(path, '_blank')\r\n }\r\n\r\n redirectToToc(chat: any) {\r\n const event = {\r\n eventType: WsEvents.WsEventType.Telemetry,\r\n eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n data: {\r\n edata: { type: 'click', \"id\": \"card-content\", \"pageid\": \"/page/home\" },\r\n object: { id: chat?.identifier, type: chat?.contentType },\r\n state: WsEvents.EnumTelemetrySubType.Interact,\r\n eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n mode: 'view',\r\n },\r\n pageContext: { pageId: '/page/home', module: 'Home' },\r\n from: '',\r\n to: 'Telemetry',\r\n }\r\n this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n let path = `https://portal.igotkarmayogi.gov.in/app/toc/${chat?.identifier}/overview`\r\n window.open(path, '_blank')\r\n }\r\n\r\n splitParagraphByWords(paragraph: any, wordsPerChunk = 30) {\r\n const words = paragraph.trim().split(/\\s+/)\r\n const chunks = []\r\n\r\n for (let i = 0; i < wordsPerChunk; i++) {\r\n chunks.push(words[i])\r\n }\r\n\r\n return chunks.join(' ')\r\n }\r\n\r\n toggleShow(index: any, showType: any) {\r\n if (showType === 'less') {\r\n this.aiSearchResultArr[index]['showLess'] = true\r\n } else {\r\n this.aiSearchResultArr[index]['showLess'] = false\r\n }\r\n\r\n }\r\n\r\n get userInitials() {\r\n return this.initials\r\n }\r\n private createInititals(name: any): void {\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length))\r\n this.circleColor = this.colors[randomIndex]\r\n if (this.randomcolors) {\r\n const randomIndex1 = Math.floor(Math.random() * Math.floor(this.randomcolors.length))\r\n this.circleColor = this.randomcolors[randomIndex1]\r\n }\r\n let initials = ''\r\n const array = `${name} `.toString().split(' ')\r\n if (array[0] !== 'undefined' && typeof array[1] !== 'undefined') {\r\n initials += array[0].charAt(0)\r\n initials += array[1].charAt(0)\r\n } else {\r\n for (let i = 0; i < name.length; i += 1) {\r\n if (name.charAt(i) === ' ') {\r\n continue\r\n }\r\n\r\n if (name.charAt(i) === name.charAt(i)) {\r\n initials += name.charAt(i)\r\n\r\n if (initials.length === 2) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n this.initials = initials.toUpperCase()\r\n }\r\n\r\n raiseTelemetryForResource(item: any) {\r\n const event = {\r\n eventType: WsEvents.WsEventType.Telemetry,\r\n eventLogLevel: WsEvents.WsEventLogLevel.Info,\r\n data: {\r\n edata: { type: 'click', \"id\": \"card-content\", \"pageid\": \"/page/home\" },\r\n object: { id: item?.identifier, type: item?.contentType },\r\n state: WsEvents.EnumTelemetrySubType.Interact,\r\n eventSubType: WsEvents.EnumTelemetrySubType.Chatbot,\r\n mode: 'view',\r\n },\r\n pageContext: { pageId: '/page/home', module: 'Home' },\r\n from: '',\r\n to: 'Telemetry',\r\n }\r\n this.eventSvc.dispatchChatbotEvent<WsEvents.IWsEventTelemetryInteract>(event)\r\n }\r\n\r\n resizeTextarea(textArea: HTMLTextAreaElement, _fromInput: any): void {\r\n if (textArea) {\r\n textArea.style.height = 'auto' // Reset height first\r\n requestAnimationFrame(() => {\r\n textArea.style.height = textArea.scrollHeight + 'px'\r\n\r\n const computed = getComputedStyle(textArea)\r\n const paddingTop = parseFloat(computed.paddingTop) || 0\r\n const paddingBottom = parseFloat(computed.paddingBottom) || 0\r\n const marginExtra = 0\r\n this.containerHeight = textArea.scrollHeight + paddingTop + paddingBottom + marginExtra\r\n })\r\n }\r\n }\r\n\r\n resetTextAreaHeight(_textArea: HTMLTextAreaElement) {\r\n if (this.textArea.nativeElement && this.textArea.nativeElement.style && this.textArea.nativeElement.style.height) {\r\n setTimeout(() => {\r\n this.searchQuery = this.searchQuery.trim()\r\n this.textArea.nativeElement.style.height = 'auto'\r\n this.textArea.nativeElement.style.height = '30px'\r\n const computed = getComputedStyle(this.textArea.nativeElement)\r\n const paddingTop = parseFloat(computed.paddingTop) || 0\r\n const paddingBottom = parseFloat(computed.paddingBottom) || 0\r\n const marginExtra = 0\r\n this.containerHeight = 30 + paddingTop + paddingBottom + marginExtra\r\n })\r\n }\r\n\r\n }\r\n\r\n toggleNestedItem(planId: string) {\r\n this.expandedPlanIds[planId] = !this.expandedPlanIds[planId];\r\n }\r\n\r\n formatPlanMeta(meta: string): string {\r\n if (!meta) return '';\r\n return meta.replace('Ends:', 'Due');\r\n }\r\n\r\n getCourseStatusClass(meta: string): string {\r\n console.log('meta', meta)\r\n if (!meta) return 'status-not-started';\r\n const lower = meta.toLowerCase();\r\n if (lower.includes('completed')) return 'status-completed';\r\n if (lower.includes('in progress')) return 'status-in-progress';\r\n return 'status-not-started';\r\n }\r\n\r\n selectNestedPickerItem(activity: any, child: any) {\r\n this.chatActivities.push({\r\n sender: 'user',\r\n text: child.label,\r\n timestamp: new Date()\r\n });\r\n this.sendTurn({\r\n action: 'pick_item',\r\n picker_id: activity.picker_id,\r\n item_id: child.id\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n }\r\n}","<div class=\"igot-ai-container\" id=\"igot-ai-container\">\r\n <div class=\"message-container\" id=\"message-container\">\r\n\r\n <div [ngClass]=\"fullScreenChatFlag ? 'message-container-full' : 'message-container'\" id=\"message-container\">\r\n <!-- <ng-container *ngIf=\"aiSearchResultArr?.length === 0\"> -->\r\n <!-- <div [ngClass]=\"fullScreenChatFlag ? 'start-chat-full':'start-chat'\"> -->\r\n <!-- <h2 class=\"hey\">Hey<span *ngIf=\"userInfo?.firstName\">, {{userInfo?.firstName}}</span> </h2>\r\n <p>Welcome to Support AI, Your dedicated support assistant for instant help, step-by-step guidance, and\r\n personalized support tailored to your needs.</p> -->\r\n <!-- </div> -->\r\n <!-- </ng-container> -->\r\n <ng-container>\r\n <div class=\"flex row-start incoming-msg margin-bottom-s text-center justify-around mt-2\">\r\n <div class=\"loading-bar-icon flex flex-row vertical-middle\">\r\n <!-- <div class=\"mt-2\"><span class=\"blue-color\">Initializing Support AI</span></div> -->\r\n <div>\r\n <!-- <div>\r\n <img alt=\"ai-icon\" class=\"blue-loader-animation\" height=\"18\" width=\"18\" src=\"/assets/ai-tutor/blue-loader.png\">\r\n </div> -->\r\n\r\n </div>\r\n <div class=\"support-ai-chat-container\">\r\n <div *ngFor=\"let item of chatActivities\">\r\n\r\n <!-- user message -->\r\n <div *ngIf=\"item.sender === 'user'\">\r\n <div class=\"flex width-1-1 row-end padding-top-l padding-bottom-m\">\r\n <div class=\"user-seleted-question padding-xs\">\r\n <mat-icon *ngIf=\"item.icon\" class=\"user-msg-icon\">{{item.icon}}</mat-icon>\r\n {{ item.text }}\r\n\r\n </div>\r\n\r\n <div class=\"user-icon\" *ngIf=\"userIcon\">\r\n <img [src]=\"userIcon\">\r\n </div>\r\n\r\n <div class=\"circle-s user-icon\" *ngIf=\"!userIcon\" [ngStyle]=\"{'background-color': circleColor}\">\r\n\r\n {{ userInitials }}\r\n\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"item.timestamp\" class=\"user-msg-timestamp\">\r\n Sarthi {{item.timestamp | date:'h:mm a'}}\r\n </div>\r\n <div *ngIf=\"loadingSupportAI\">\r\n Please Wait...\r\n </div>\r\n </div>\r\n <!-- bot markdown message -->\r\n <div *ngIf=\"item.activity?.type === 'markdown'\">\r\n <div class=\"flex row-start\">\r\n <div class=\"system-icon\">\r\n <div class=\"bot-avatar-circle\">\r\n <!-- <mat-icon>smart_toy</mat-icon>\r\n -->\r\n <img src=\"/assets/ai-tutor/roboicon.svg\" alt=\"\" srcset=\"\">\r\n </div>\r\n </div>\r\n <div class=\"system-msg padding-xs\">\r\n <markdown [data]=\"item.activity.content\">\r\n </markdown>\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.showTimestamp\" class=\"msg-timestamp bot-msg-timestamp\">\r\n Sarthi {{item.timestamp | date:'h:mm a'}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"item.activity?.type === 'picker'\" class=\"picker-container\">\r\n\r\n <!-- Dropdown Header -->\r\n\r\n <div class=\"picker-header\" (click)=\"pickerOpened = !pickerOpened\">\r\n <img class=\"vectorIcon\" src=\"/assets/ai-tutor/Vector.svg\" alt=\"\"> <span\r\n class=\"selectcoursetext startconv\">Select the course</span>\r\n\r\n\r\n <mat-icon>\r\n {{ pickerOpened ? 'expand_less' : 'expand_more' }}\r\n </mat-icon>\r\n\r\n </div>\r\n\r\n <!-- Dropdown -->\r\n\r\n <div *ngIf=\"pickerOpened\" class=\"picker-dropdown\">\r\n <input type=\"text\" [(ngModel)]=\"pickerSearch\" (input)=\"filterPickerItems()\" placeholder=\"Search\" />\r\n\r\n <div *ngFor=\"let course of filteredPickerItems\" class=\"picker-item\"\r\n (click)=\"selectPickerItem(course)\">\r\n\r\n {{ course.label }}\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- nested picker (training plans with expandable courses) -->\r\n <div *ngIf=\"item.activity?.type === 'nested_picker'\" class=\"nested-picker-wrapper\">\r\n <div *ngFor=\"\r\n let plan of (\r\n showAllPlans\r\n ? item.activity.items\r\n : (item.activity.items | slice:0:3)\r\n )\r\n \" class=\"nested-plan-item\">\r\n\r\n\r\n <!-- Plan Row -->\r\n <div class=\"nested-plan-row\" (click)=\"toggleNestedItem(plan.id)\">\r\n <span class=\"nested-plan-name\">{{plan.label}}</span>\r\n <span class=\"nested-plan-meta\">{{formatPlanMeta(plan.meta)}}</span>\r\n <span class=\"nested-plan-toggle\">\r\n <mat-icon class=\"toggle-icon\">{{ expandedPlanIds[plan.id] ? 'remove' : 'add' }}</mat-icon>\r\n </span>\r\n </div>\r\n\r\n <!-- Expanded Courses -->\r\n <!-- <div *ngIf=\"expandedPlanIds[plan.id]\" class=\"nested-courses\">\r\n <div *ngFor=\"let course of plan.children\" class=\"nested-course-row\"\r\n (click)=\"selectNestedPickerItem(item.activity, course)\">\r\n <span class=\"nested-course-name\">{{course.label}}</span>\r\n <span class=\"nested-course-status\" [ngClass]=\"getCourseStatusClass(course.meta)\"></span>\r\n </div>\r\n </div> -->\r\n <div *ngIf=\"expandedPlanIds[plan.id]\" class=\"nested-courses\">\r\n\r\n <div *ngFor=\"\r\n let course of (\r\n plan.showAllCourses\r\n ? plan.children\r\n : (plan.children | slice:0:3)\r\n )\r\n \" class=\"nested-course-row\" (click)=\"selectNestedPickerItem(item.activity, course)\">\r\n\r\n <span class=\"nested-course-name\">{{ course.label }}</span>\r\n <span class=\"nested-course-status\" [ngClass]=\"getCourseStatusClass(course?.progress?.status)\">\r\n </span>\r\n\r\n </div>\r\n <button *ngIf=\"!plan.showAllCourses && plan.children?.length > 3\" class=\"view-more-btn\"\r\n (click)=\"plan.showAllCourses = true; $event.stopPropagation()\">\r\n\r\n View More ({{ plan.children.length - 3 }})\r\n\r\n </button>\r\n<div class=\"course-status-legend\">\r\n <div class=\"legend-item\">\r\n <span class=\"nested-course-status status-completed\"></span>\r\n <span>Completed</span>\r\n </div>\r\n\r\n <div class=\"legend-item\">\r\n <span class=\"nested-course-status status-in-progress\"></span>\r\n <span>In progress</span>\r\n </div>\r\n\r\n <div class=\"legend-item\">\r\n <span class=\"nested-course-status status-not-started\"></span>\r\n <span>Not started</span>\r\n </div>\r\n</div>\r\n\r\n\r\n <!-- Optional -->\r\n <!--\r\n <button\r\n *ngIf=\"plan.showAllCourses && plan.children?.length > 3\"\r\n class=\"view-more-btn\"\r\n (click)=\"plan.showAllCourses = false; $event.stopPropagation()\">\r\n\r\n View Less\r\n\r\n </button>\r\n -->\r\n\r\n </div>\r\n </div>\r\n <button *ngIf=\"!showAllPlans && item.activity.items?.length > 3\" class=\"view-more-btn\"\r\n (click)=\"showAllPlans = true\">\r\n\r\n View More ({{ item.activity.items.length - 3 }})\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- quick replies -->\r\n\r\n <div *ngIf=\"item.activity?.type === 'quick_replies'\">\r\n\r\n <div class=\"quick-replies-container\">\r\n\r\n <button *ngFor=\"\r\n let choice of (\r\n item.showAllChoices\r\n ? item.activity.choices\r\n : (item.activity.choices | slice:0:3)\r\n )\r\n \" (click)=\"selectChoice(choice)\" class=\"quick-reply-btn\">\r\n <mat-icon class=\"quick-reply-icon\">{{choice.icon || 'help_outline'}}</mat-icon>\r\n <span class=\"quick-reply-label\">{{choice.label}}</span>\r\n <mat-icon class=\"quick-reply-chevron\">navigate_next</mat-icon>\r\n </button>\r\n\r\n <button *ngIf=\"!item.showAllChoices && item.activity.choices?.length > 3\" class=\"view-more-btn flex\"\r\n (click)=\"item.showAllChoices = true\">\r\n\r\n View More ({{ item.activity.choices.length - 3 }})\r\n\r\n </button>\r\n\r\n <!-- <button\r\n *ngIf=\"item.showAllChoices && item.activity.choices?.length > 3\"\r\n class=\"view-more-btn\"\r\n (click)=\"item.showAllChoices = false\">\r\n\r\n View Less\r\n\r\n</button> -->\r\n\r\n </div>\r\n\r\n <!-- <div *ngIf=\"item.showTimestamp\" class=\"msg-timestamp bot-msg-timestamp\">\r\n Sarthi {{item.timestamp | date:'h:mm a'}}\r\n </div> -->\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"start-new-conv-container\">\r\n <button class=\"start-new-conv-btn\" (click)=\"startNewConversation()\">\r\n <mat-icon class=\"start-new-conv-icon\">chevron_left</mat-icon>\r\n <span class=\"startconv\">Start new conversation...</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"showRetry\" class=\"retry-container\">\r\n <button class=\"retry-btn start-new-conv-btn\" (click)=\"retryApi()\">\r\n Retry\r\n </button>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n\r\n </div>\r\n <div [ngClass]=\"fullScreenChatFlag ? 'control-container-full':'control-container'\">\r\n <div [class]=\"isInputEnabled ? 'border-gradient-rounded' : 'disabledinputcl border-gradient-rounded'\"\r\n [style.height.px]=\"containerHeight\">\r\n <div class=\"flex flex-row ml-5 mr-1 justify-between\">\r\n\r\n <div class=\"query-box\">\r\n <!-- <input class=\"width-500\" type=\"text\" placeholder=\"Ask anything...\" [(ngModel)]=\"searchQuery\" (keydown.enter)=\"submitSearchQuery()\"/> -->\r\n <textarea #autoResizeTextarea class=\"width-500\" [disabled]=\"!isInputEnabled\" placeholder=\"Ask Anything...\"\r\n (input)=\"resizeTextarea(autoResizeTextarea, 'fromInput')\" [(ngModel)]=\"searchQuery\"\r\n (keydown.enter)=\"submitSearchQuery(autoResizeTextarea, $event)\" rows=\"1\">\r\n </textarea>\r\n </div>\r\n\r\n <div class=\"mt-1\">\r\n <button type=\"button\" class=\"flex-auto-display send-btn\"\r\n [disabled]=\"!isInputEnabled || !searchQuery?.trim()\"\r\n (click)=\"submitSearchQuery(autoResizeTextarea,$event)\"\r\n [disabled]=\"!searchQuery || !initiateSupportNewChat\">\r\n <mat-icon class=\"send-btn-icon\">send</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>","import { Injectable } from '@angular/core'\r\nimport { Observable, Subject } from 'rxjs'\r\nimport { share } from 'rxjs/operators'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WebSocketService {\r\n\r\n private socket: WebSocket | undefined\r\n private messageSubject: Subject<any> = new Subject<any>()\r\n\r\n constructor() {}\r\n\r\n // Establish a connection to the WebSocket\r\n connect(url: string): void {\r\n this.socket = new WebSocket(url)\r\n console.log('this.socket', this.socket)\r\n this.socket.onopen = () => {\r\n console.log('WebSocket connection established')\r\n }\r\n\r\n this.socket.onmessage = event => {\r\n console.log('event', event)\r\n this.messageSubject.next(event.data)\r\n }\r\n\r\n this.socket.onerror = error => {\r\n console.error('WebSocket error:', error)\r\n }\r\n\r\n this.socket.onclose = () => {\r\n console.log('WebSocket connection closed')\r\n }\r\n }\r\n\r\n // Send message to the WebSocket server\r\n sendMessage(message: string): void {\r\n // console.log(message)\r\n // console.log(this.socket)\r\n if (this.socket && this.socket.readyState === WebSocket.OPEN) {\r\n this.socket.send(message)\r\n } else {\r\n console.error('WebSocket is not open')\r\n }\r\n }\r\n\r\n // Observable for receiving messages from WebSocket\r\n getMessages(): Observable<any> {\r\n return this.messageSubject.asObservable().pipe(share())\r\n }\r\n\r\n // Close the WebSocket connection\r\n closeConnection(): void {\r\n if (this.socket) {\r\n this.socket.close()\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core'\r\nimport { CommonModule } from '@angular/common'\r\nimport { SupportAIComponent } from './support-ai/support-ai.component'\r\nimport { WebSocketService } from './support-ai/socket.service'\r\nimport { SupportAiService } from './support-ai/support-ai.service'\r\nimport { FormsModule } from '@angular/forms'\r\nimport { MatIconModule } from '@angular/material/icon'\r\nimport { MatTooltipModule } from '@angular/material/tooltip'\r\nimport { MarkdownModule } from 'ngx-markdown'\r\nimport { PipeDurationTransformModule } from '@sunbird-cb/utils-v2'\r\nimport { ScrollingModule } from '@angular/cdk/scrolling'\r\n\r\n@NgModule({\r\n declarations: [\r\n SupportAIComponent\r\n ],\r\n imports: [CommonModule,\r\nFormsModule,\r\nMatIconModule,\r\nMatTooltipModule,\r\nScrollingModule,\r\n MarkdownModule,\r\n PipeDurationTransformModule],\r\n exports: [SupportAIComponent],\r\n providers: [WebSocketService, SupportAiService]\r\n})\r\nexport class ItsmChatModule {\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.ChatbotService","i4.SupportAiService"],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { OnInit, OnChanges, AfterViewInit, AfterViewChecked, OnDestroy, EventEmitter, ElementRef, Renderer2, SimpleChanges } from '@angular/core';
|
|
3
|
+
import { Router } from '@angular/router';
|
|
4
|
+
import * as i8 from '@sunbird-cb/utils-v2';
|
|
5
|
+
import { ConfigurationsService, EventService } from '@sunbird-cb/utils-v2';
|
|
6
|
+
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
7
|
+
import * as rxjs from 'rxjs';
|
|
8
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
9
|
+
import { HttpClient } from '@angular/common/http';
|
|
10
|
+
import * as i2 from '@angular/common';
|
|
11
|
+
import * as i3 from '@angular/forms';
|
|
12
|
+
import * as i4 from '@angular/material/icon';
|
|
13
|
+
import * as i5 from '@angular/material/tooltip';
|
|
14
|
+
import * as i6 from '@angular/cdk/scrolling';
|
|
15
|
+
import * as i7 from 'ngx-markdown';
|
|
16
|
+
|
|
17
|
+
declare class SupportAiService {
|
|
18
|
+
private http;
|
|
19
|
+
private SUPPORT_AI_API;
|
|
20
|
+
constructor(http: HttpClient);
|
|
21
|
+
listSessions(): rxjs.Observable<Object>;
|
|
22
|
+
createSession(): rxjs.Observable<Object>;
|
|
23
|
+
getHistory(sessionId: string): rxjs.Observable<Object>;
|
|
24
|
+
sendTurn(sessionId: string, payload: any): rxjs.Observable<Object>;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SupportAiService, never>;
|
|
26
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SupportAiService>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare class ChatbotService {
|
|
30
|
+
private http;
|
|
31
|
+
LANGUAGES: string;
|
|
32
|
+
CONFIG: string;
|
|
33
|
+
openSupportAIChatbot: BehaviorSubject<boolean>;
|
|
34
|
+
showNavbarDisplay$: BehaviorSubject<boolean>;
|
|
35
|
+
discussionCnfig: any;
|
|
36
|
+
iGOTAIChatHistory: any;
|
|
37
|
+
constructor(http: HttpClient);
|
|
38
|
+
createUser(request: any): Observable<any>;
|
|
39
|
+
setDiscussionConfig(config: any): void;
|
|
40
|
+
getCookie(name: string): string;
|
|
41
|
+
deleteCookie(name: string): void;
|
|
42
|
+
setCookie(name: string, value: string, expireDays: number, path?: string): void;
|
|
43
|
+
getChatData(tabType: any): any;
|
|
44
|
+
getLangugages(): Observable<any>;
|
|
45
|
+
aiGlobalSearch(requestBody: any, chatId: any, userID: any): Observable<any>;
|
|
46
|
+
saveAIChatPositiveContentRating(requestBody: any, chatId: any, userID: any): Observable<any>;
|
|
47
|
+
shareAIFeedback(requestBody: any, chatId: any, userID: any): Observable<any>;
|
|
48
|
+
aiGlobalSearchFromInternet(requestBody: any, chatId: any, userID: any): Observable<any>;
|
|
49
|
+
aiStartChathForSupport(requestBody: any, userID: any): Observable<any>;
|
|
50
|
+
aiSendChathForSupport(requestBody: any, userID: any): Observable<any>;
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotService, never>;
|
|
52
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotService>;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare class SupportAIComponent implements OnInit, OnChanges, AfterViewInit, AfterViewChecked, OnDestroy {
|
|
56
|
+
private configSvc;
|
|
57
|
+
private eventSvc;
|
|
58
|
+
private renderer;
|
|
59
|
+
private chatbotService;
|
|
60
|
+
private matSnackBarNew;
|
|
61
|
+
private supportAiService;
|
|
62
|
+
private router;
|
|
63
|
+
from: string;
|
|
64
|
+
userJourney: never[];
|
|
65
|
+
chatId: string;
|
|
66
|
+
userId: string;
|
|
67
|
+
fullScreenChatFlag: boolean;
|
|
68
|
+
activeLaguage: string;
|
|
69
|
+
scrollToBottomEvent: EventEmitter<any>;
|
|
70
|
+
showIcon: boolean;
|
|
71
|
+
categories: any[];
|
|
72
|
+
language: any[];
|
|
73
|
+
currentFilter: string;
|
|
74
|
+
selectedLaguage: string;
|
|
75
|
+
responseData: any;
|
|
76
|
+
userInfo: any;
|
|
77
|
+
recomendedQns: any;
|
|
78
|
+
questionsAndAns: any;
|
|
79
|
+
userIcon: string;
|
|
80
|
+
more: boolean;
|
|
81
|
+
chatInformation: any;
|
|
82
|
+
chatIssues: any;
|
|
83
|
+
displayLoader: boolean;
|
|
84
|
+
expanded: boolean;
|
|
85
|
+
callText: string;
|
|
86
|
+
emailText: string;
|
|
87
|
+
searchQuery: any;
|
|
88
|
+
initials: any;
|
|
89
|
+
copiedIndex: number;
|
|
90
|
+
circleColor: string;
|
|
91
|
+
random: string;
|
|
92
|
+
iGOTAISearchResultArr: any;
|
|
93
|
+
resultFetch: boolean;
|
|
94
|
+
searchAPIResponseInProgress: boolean;
|
|
95
|
+
private colors;
|
|
96
|
+
private randomcolors;
|
|
97
|
+
localization: any;
|
|
98
|
+
aiSearchResult: any;
|
|
99
|
+
aiSearchResultArr: any;
|
|
100
|
+
cloneSearchQuery: string;
|
|
101
|
+
displayedText: string;
|
|
102
|
+
startNewChat: boolean;
|
|
103
|
+
initiateSupportNewChat: boolean;
|
|
104
|
+
private myScrollContainer;
|
|
105
|
+
isHubEnable: boolean;
|
|
106
|
+
textArea: ElementRef<HTMLTextAreaElement>;
|
|
107
|
+
containerHeight: number;
|
|
108
|
+
sessionId: string;
|
|
109
|
+
chatActivities: any[];
|
|
110
|
+
loadingSupportAI: boolean;
|
|
111
|
+
conversationEnded: boolean;
|
|
112
|
+
isInputEnabled: boolean;
|
|
113
|
+
showRetry: boolean;
|
|
114
|
+
retryCallback: (() => void) | null;
|
|
115
|
+
currentPicker: any;
|
|
116
|
+
pickerSearch: string;
|
|
117
|
+
filteredPickerItems: any[];
|
|
118
|
+
selectedPickerItem: any;
|
|
119
|
+
pickerOpened: boolean;
|
|
120
|
+
showAllPlans: boolean;
|
|
121
|
+
expandedCourseLists: {
|
|
122
|
+
[planId: string]: boolean;
|
|
123
|
+
};
|
|
124
|
+
expandedPlanIds: {
|
|
125
|
+
[key: string]: boolean;
|
|
126
|
+
};
|
|
127
|
+
constructor(configSvc: ConfigurationsService, eventSvc: EventService, renderer: Renderer2, chatbotService: ChatbotService, matSnackBarNew: MatSnackBar, supportAiService: SupportAiService, router: Router);
|
|
128
|
+
ngOnInit(): void;
|
|
129
|
+
initializeSupportAI(): void;
|
|
130
|
+
private setRetry;
|
|
131
|
+
retryApi(): void;
|
|
132
|
+
createSession(): void;
|
|
133
|
+
renderActivities(activities: any[]): void;
|
|
134
|
+
filterPickerItems(): void;
|
|
135
|
+
selectPickerItem(item: any): void;
|
|
136
|
+
sendTurn(payload: any): void;
|
|
137
|
+
selectChoice(choice: any): void;
|
|
138
|
+
startNewConversation(): void;
|
|
139
|
+
loadHistory(): void;
|
|
140
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
141
|
+
greetings(): any;
|
|
142
|
+
getInfoText(label: string): any;
|
|
143
|
+
showMore(): any;
|
|
144
|
+
getData(): void;
|
|
145
|
+
setDataToLocalStorage(data: any): void;
|
|
146
|
+
initData(_getData: any): void;
|
|
147
|
+
getQns(): void;
|
|
148
|
+
selectLaguage(event: any): void;
|
|
149
|
+
readFromLocalStorage(): void;
|
|
150
|
+
goToBottom(): void;
|
|
151
|
+
iconClick(type: string): void;
|
|
152
|
+
toggleFilter(tab: string): void;
|
|
153
|
+
selectedQuestion(question: any, data: any): void;
|
|
154
|
+
pushData(msg: any): void;
|
|
155
|
+
getuserjourney(tab: string): never[];
|
|
156
|
+
getPriorityQuestion(priority: any): any[];
|
|
157
|
+
showMoreQuestion(): void;
|
|
158
|
+
showCategory(catItem: any): void;
|
|
159
|
+
raiseCategotyTelemetry(catItem: string): void;
|
|
160
|
+
raiseChatStartTelemetry(): void;
|
|
161
|
+
raiseChatEndTelemetry(): void;
|
|
162
|
+
raiseTemeletyInterat(idn: string): void;
|
|
163
|
+
checkForAIQuestionResponse(): void;
|
|
164
|
+
checkForApiCalls(): void;
|
|
165
|
+
getCategories(): void;
|
|
166
|
+
sortCategory(): any;
|
|
167
|
+
getLanguages(): void;
|
|
168
|
+
ngAfterViewChecked(): void;
|
|
169
|
+
ngAfterViewInit(): void;
|
|
170
|
+
scrollToBottom(): void;
|
|
171
|
+
clickOutside(): void;
|
|
172
|
+
private disableScroll;
|
|
173
|
+
private enableScroll;
|
|
174
|
+
submitSearchQuery(textArea: HTMLTextAreaElement, event: any): void;
|
|
175
|
+
sharePositiveContentRating(item: any, index: any, cindex: any): void;
|
|
176
|
+
openAIFeedbackPopup(item: any, index: any, cindex: any): void;
|
|
177
|
+
shareAIFeedback(item: any, result: any, index: any, cindex: any): void;
|
|
178
|
+
callFromInternet(item: any, index: any): void;
|
|
179
|
+
rejectFromInternet(index: any): void;
|
|
180
|
+
copyPath(item: any, cindex: any): void;
|
|
181
|
+
redirectToResource(item: any): void;
|
|
182
|
+
redirectToToc(chat: any): void;
|
|
183
|
+
splitParagraphByWords(paragraph: any, wordsPerChunk?: number): string;
|
|
184
|
+
toggleShow(index: any, showType: any): void;
|
|
185
|
+
get userInitials(): any;
|
|
186
|
+
private createInititals;
|
|
187
|
+
raiseTelemetryForResource(item: any): void;
|
|
188
|
+
resizeTextarea(textArea: HTMLTextAreaElement, _fromInput: any): void;
|
|
189
|
+
resetTextAreaHeight(_textArea: HTMLTextAreaElement): void;
|
|
190
|
+
toggleNestedItem(planId: string): void;
|
|
191
|
+
formatPlanMeta(meta: string): string;
|
|
192
|
+
getCourseStatusClass(meta: string): string;
|
|
193
|
+
selectNestedPickerItem(activity: any, child: any): void;
|
|
194
|
+
ngOnDestroy(): void;
|
|
195
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SupportAIComponent, never>;
|
|
196
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SupportAIComponent, "ws-app-support-ai", never, { "from": { "alias": "from"; "required": false; }; "userJourney": { "alias": "userJourney"; "required": false; }; "chatId": { "alias": "chatId"; "required": false; }; "userId": { "alias": "userId"; "required": false; }; "fullScreenChatFlag": { "alias": "fullScreenChatFlag"; "required": false; }; "activeLaguage": { "alias": "activeLaguage"; "required": false; }; }, { "scrollToBottomEvent": "scrollToBottomEvent"; }, never, never, false, never>;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
declare class ItsmChatModule {
|
|
200
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ItsmChatModule, never>;
|
|
201
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ItsmChatModule, [typeof SupportAIComponent], [typeof i2.CommonModule, typeof i3.FormsModule, typeof i4.MatIconModule, typeof i5.MatTooltipModule, typeof i6.ScrollingModule, typeof i7.MarkdownModule, typeof i8.PipeDurationTransformModule], [typeof SupportAIComponent]>;
|
|
202
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ItsmChatModule>;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export { ItsmChatModule, SupportAIComponent };
|
|
206
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/support-ai.service.ts","../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/chatbot.service.ts","../../../library/sunbird-cb/itsm-chatbot/src/lib/support-ai/support-ai.component.ts","../../../library/sunbird-cb/itsm-chatbot/src/lib/itsm-chatbot.module.ts"],"mappings":";;;;;;;;;;;;;;;;AAsCI,cAAQ,gBAAI;;AAAJ;sBAGE,UAAA;oBAMC,IAAA,CAAA,UAAA,CAAA,MAAA;qBAUF,IAAS,CAAE,UAAM,CAAA,MAAA;AAM5B,mCAEE,IAAO,WAAK,CAAA,MAAA;+CA3CH,IAAA,CAAA,UAAgB,CAAA,MAAA;yDAAhB;AAkDZ,kBAAA,EAAA,CAAA,uBAAA,CAAA,gBAAA;;;ACrDD,cAAA,cAGa;AAmBT;AAjBF;AACA;AAWC,0BAAoB,eAAA;AACrB,wBAAkB,eAAA;;;AAIR,sBAAM,UAAU;8BAGA,UAAU;;;;AAyBpC;AAOA;AAIA,qBAAiB,UAAU;AAI3B,gEAAyD,UAAU;iFAeI,UAAA;iEAKhB,UAAA;4EAIW,UAAA;AAIlE,2DAAqD,UAAU;AAS/D,0DAAoD,UAAU;yCAnGnD,cAAc;6CAAd,cAAc;AA0G1B;;ACnHD,cAAA,kBAMa,YAAmB,MAAA,EAAW,SAAQ,EAAA,aAAW,EAAA,gBAAe,EAAA,SAAkB;AAgH3F;AACA;AACA;AACA;AAEA;AACA;AACA;AAtHO;AACA;AACA;AACA;AACA;AACA;AACC,yBAAmB,YAAA;AAC7B;;;AAGA;AACA;;;;;AAMA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAGA;AACA;;;;;;AAyCA;AACA;AACA;AACA;;;AAIiC,cAAW,UAAU,CAAC,mBAAmB;AAC1E;AACA;;AAIA;AAEA;AACA;AACA;AACF;;AAKA;;;AAMA;AACA;AAEA;AAAuB;;AAGrB;AAAmB;;2BAEE,qBAAqB,YACtB,YAAY,YACZ,SAAS,kBACH,cAAc,kBAEdA,WAAc,oBACZ,gBAAgB,UAC1B,MAAM;;;AA8CxB;;;AA4BF;;;;;;;AAmME,yBAAqB,aAAa;;;;;;;;;;;;;AA8HlC;;;;;;;;;;;;;AAwOA;;;AAuBA;AASA;;AAUA;AAIA;AAIA,gCAA4B,mBAAmB;;;AAkP/C;AA6BA;;AAyEA;;;AA4CA;AAWA;AASA;AAGA;;6BAgDyB,mBAAmB;mCAeb,mBAAmB;;AAoBlD;AAKA;AASA;AAaA;yCAryCW,kBAAkB;2CAAlB,kBAAkB;AAwyC9B;;AC/yCD,cAAA,cAca;yCAAA,cAAc;0CAAd,cAAc,UAAAC,kBAAA,WAAA,EAAA,CAAA,YAAA,SAAA,EAAA,CAAA,WAAA,SAAA,EAAA,CAAA,aAAA,SAAA,EAAA,CAAA,gBAAA,SAAA,EAAA,CAAA,eAAA,SAAA,EAAA,CAAA,cAAA,SAAA,EAAA,CAAA,2BAAA,WAAAA,kBAAA;0CAAd,cAAc;AAE1B;;;;","names":["MatSnackbarNew","i1.SupportAIComponent"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sunbird-cb/itsm-chatbot",
|
|
3
|
+
"version": "0.0.3-ang-17-20",
|
|
4
|
+
"main": "src/public-api.ts",
|
|
5
|
+
"dependencies": {
|
|
6
|
+
"tslib": "^2.0.0"
|
|
7
|
+
},
|
|
8
|
+
"peerDependencies": {
|
|
9
|
+
"@angular/animations": "^20.3.16",
|
|
10
|
+
"@angular/cdk": "^20.2.14",
|
|
11
|
+
"@angular/common": "^20.3.16",
|
|
12
|
+
"@angular/compiler": "^20.3.16",
|
|
13
|
+
"@angular/core": "^20.3.16",
|
|
14
|
+
"@angular/forms": "^20.3.16",
|
|
15
|
+
"@angular/material": "^20.2.14",
|
|
16
|
+
"@angular/platform-browser": "^20.3.16",
|
|
17
|
+
"@angular/platform-browser-dynamic": "^20.3.16",
|
|
18
|
+
"@angular/router": "^20.3.16"
|
|
19
|
+
},
|
|
20
|
+
"module": "fesm2022/sunbird-cb-itsm-chatbot.mjs",
|
|
21
|
+
"typings": "index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
"./package.json": {
|
|
24
|
+
"default": "./package.json"
|
|
25
|
+
},
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./index.d.ts",
|
|
28
|
+
"default": "./fesm2022/sunbird-cb-itsm-chatbot.mjs"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"sideEffects": false
|
|
32
|
+
}
|