{"version":3,"file":"main.fe3fc87e289d20ba.js","mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/Directives/dragdropfile.directive.ts","./src/app/Services/LoadingService.ts","./src/app/Services/agent.service.ts","./src/app/Services/appcomponentservice.ts","./src/app/Services/chat.service.ts","./src/app/Services/con-history.service.ts","./src/app/Services/deloitte-voice.service.ts","./src/app/Services/document-upload.service.ts","./src/app/Services/feedback.service.ts","./src/app/Services/language-service.service.ts","./src/app/Services/recent-agent.service.ts","./src/app/Services/reset-blob-storage.service.ts","./src/app/Services/reset-chat.service.ts","./src/app/Services/sharingmessage.service.ts","./src/app/agent-central/agent-central.component.ts","./src/app/agent-central/agent-central.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/componenets/file-display/file-display.component.ts","./src/app/componenets/file-display/file-display.component.html","./src/app/componenets/file-download-card/file-download-card.component.ts","./src/app/componenets/file-download-card/file-download-card.component.html","./src/app/componenets/file-upload/file-upload.component.ts","./src/app/componenets/file-upload/file-upload.component.html","./src/app/componenets/select-dropdown/select-dropdown.component.ts","./src/app/componenets/select-dropdown/select-dropdown.component.html","./src/app/deloitte-voice/componenets/deloitte-voice-completed/deloitte-voice-completed.component.ts","./src/app/deloitte-voice/componenets/deloitte-voice-completed/deloitte-voice-completed.component.html","./src/app/deloitte-voice/componenets/deloitte-voice-error/deloitte-voice-error.component.ts","./src/app/deloitte-voice/componenets/deloitte-voice-error/deloitte-voice-error.component.html","./src/app/deloitte-voice/componenets/deloitte-voice-processing/deloitte-voice-processing.component.ts","./src/app/deloitte-voice/componenets/deloitte-voice-processing/deloitte-voice-processing.component.html","./src/app/deloitte-voice/deloitte-voice-create/deloitte-voice-create.component.ts","./src/app/deloitte-voice/deloitte-voice-create/deloitte-voice-create.component.html","./src/app/deloitte-voice/deloitte-voice-flow/deloitte-voice-flow.component.ts","./src/app/deloitte-voice/deloitte-voice-flow/deloitte-voice-flow.component.html","./src/app/deloitte-voice/deloitte-voice-revise/deloitte-voice-revise.component.ts","./src/app/deloitte-voice/deloitte-voice-revise/deloitte-voice-revise.component.html","./src/app/deloitte-voice/deloitte-voice-stage.enum.ts","./src/app/deloitte-voice/deloitte-voice.component.ts","./src/app/deloitte-voice/deloitte-voice.component.html","./src/app/deloitte-voice/task-status.enum.ts","./src/app/document-analyzer/document-analyzer.component.ts","./src/app/document-analyzer/document-analyzer.component.html","./src/app/efs/efs.component.ts","./src/app/efs/efs.component.html","./src/app/environments/environment.prod.ts","./src/app/error/error.component.ts","./src/app/error/error.component.html","./src/app/feedback-dis-like/feedback-dis-like.component.ts","./src/app/feedback-dis-like/feedback-dis-like.component.html","./src/app/feedback-like/feedback-like.component.ts","./src/app/feedback-like/feedback-like.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/preview-popup/preview-popup.component.ts","./src/app/preview-popup/preview-popup.component.html","./src/app/recent-agents/recent-agents.component.ts","./src/app/recent-agents/recent-agents.component.html","./src/app/systemsettings/systemsettings.component.ts","./src/app/systemsettings/systemsettings.component.html","./src/app/whatsnew/whatsnew.component.ts","./src/app/whatsnew/whatsnew.component.html","./src/auth-config.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { Directive, HostListener, HostBinding, EventEmitter, Output, Input } from '@angular/core';\r\nimport { SharingmessageService } from '../Services/sharingmessage.service';\r\n \r\n@Directive({\r\n selector: '[appDragdropfile]'\r\n})\r\nexport class DragdropfileDirective {\r\n @Input() isDragDropEnabled: boolean = true;\r\n \r\n constructor(private sharingService: SharingmessageService) {}\r\n \r\n @HostBinding('class.fileover') fileOver: boolean;\r\n \r\n @Output() filesDropped: EventEmitter = new EventEmitter();\r\n \r\n @HostListener('dragover', ['$event'])\r\n onDragover(evt: any): void {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (this.isDragDropEnabled) {\r\n this.fileOver = true;\r\n }\r\n }\r\n \r\n @HostListener('dragleave', ['$event'])\r\n onDragLeave(evt: any): void {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (this.isDragDropEnabled) {\r\n this.fileOver = false;\r\n }\r\n }\r\n \r\n @HostListener('drop', ['$event'])\r\n onDrop(evt: any): void {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n if (this.isDragDropEnabled) {\r\n const files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.filesDropped.emit(Array.from(files));\r\n }\r\n this.sharingService.setFileData(files);\r\n }\r\n }\r\n \r\n setIsDragDropEnabled(enabled: boolean): void {\r\n this.isDragDropEnabled = enabled;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingService {\r\n isLoading: boolean = false;\r\n usermessageService: any;\r\n deletechat: boolean =false;\r\n stopstreaming: boolean;\r\n setLoadingState(state: boolean) {\r\n this.isLoading = state;\r\n }\r\n setUserMessage(state: any) {\r\n this.usermessageService = state;\r\n }\r\n setdeleteConv(state: boolean) {\r\n this.deletechat = state;\r\n }\r\n setstopstreaming(state:boolean) {\r\n this.stopstreaming = state;\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { Agent } from \"../model/agent.model\";\r\nimport { AppComponentService } from \"./appcomponentservice\";\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AgentsService {\r\n constructor(private appComponentService: AppComponentService) {}\r\n private agents: Agent[] = [\r\n {\r\n id: 1,\r\n name: { en: \"Document Analyzer\", fr: \"Analyseur de Documents\" },\r\n version: \"\",\r\n warning: {\r\n en: \"\",\r\n fr: \"\"\r\n },\r\n description: {\r\n en: \"I'm your data interpreter, parsing your uploaded files into detailed summaries and facilitating interactive chats with the processed information.\",\r\n fr: \"Je suis votre interprète de données. En celà, j'analyse vos fichiers téléchargés en résumés détaillés. Aussi, je facilite des discussions interactives avec les informations traitées.\"\r\n },\r\n isTooltipDisabled: true,\r\n path: \"/document-analyzer\",\r\n disabled: false\r\n },\r\n {\r\n id: 2,\r\n name: { en: \"Deloitte Voice\", fr: \"La Voix Deloitte\" },\r\n version: \"(beta)\",\r\n warning: {\r\n en: \"*Access limited to selected testers. Release to all practitioners soon.\",\r\n fr: \"*L'accès est limité aux testeurs sélectionnés. Disponible bientôt pour tous les praticiens.\"\r\n },\r\n description: {\r\n en: \"Your content curator for Deloitte-style content creation and refinement.\",\r\n fr: \"Votre curateur de contenu pour la création et l'affinement de contenu en phase avec le style Deloitte.\"\r\n },\r\n isTooltipDisabled: false,\r\n path: \"/deloitte-voice\",\r\n disabled: true\r\n },\r\n {\r\n id: 3,\r\n name: { en: \"EFS Chat\", fr: \"Chat EFS\" },\r\n version: \"(beta)\",\r\n warning: {\r\n en: \"*Access limited to selected testers. Release to all practitioners soon.\",\r\n fr: \"*L'accès est limité aux testeurs sélectionnés. Disponible bientôt pour tous les praticiens.\"\r\n },\r\n description: {\r\n en: \"Your financial insights guide to answer Engagement Financial Services queries.\",\r\n fr: \"Votre guide des perspectives financières pour répondre aux questions des Services Financiers en matière de mandats.\"\r\n },\r\n isTooltipDisabled: true,\r\n path: \"/efs\",\r\n disabled: false\r\n },\r\n // {\r\n // id: 4,\r\n // name: { en: \"Web Crawler\", fr: \"Explorateur Web\" },\r\n // description: {\r\n // en: \"I'm your content extractor, pulling and cleaning content from any website URL you provide, delivering a streamlined and organized output.\",\r\n // fr: \"Je suis votre extracteur de contenu, récupérant et nettoyant le contenu de tout URL de site web que vous fournissez, offrant un résultat simplifié et organisé.\"\r\n // },\r\n // isTooltipDisabled: false,\r\n // path: \"/web-crawler\",\r\n // disabled: true\r\n // },\r\n // {\r\n // id: 5,\r\n // name: { en: \"WBS Code Finder\", fr: \"Rechercheur de codes WBS\" },\r\n // description: {\r\n // en: \"I'm your code navigator, assisting Deloitte employees in identifying the correct WBS code based on the provided work description.\",\r\n // fr: \"Je suis votre navigateur de codes de facturation, aidant les employés de Deloitte à identifier le code WBS correct en fonction de la description du travail fournie.\"\r\n // },\r\n // isTooltipDisabled: false,\r\n // path: \"/wbs-code-finder\",\r\n // disabled: true\r\n // },\r\n // {\r\n // id: 6,\r\n // name: { en: \"Firm Policy Helpdesk\", fr: \"Centre d'assistance des politiques de l'entreprise\" },\r\n // description: {\r\n // en: \"I'm your policy guide, searching the company policy database based on your query and returning precise answers with source file links.\",\r\n // fr: \"Je suis votre guide des politiques de l'entreprise, recherchant dans la base de données des politiques en fonction de votre requête et renvoyant des réponses précises avec des liens vers les fichiers sources.\"\r\n\r\n // },\r\n // isTooltipDisabled: false,\r\n // path: \"/firm-policy-helpdesk\",\r\n // disabled: true\r\n // }\r\n ];\r\n\r\n getAgents(): Observable {\r\n return of(this.agents);\r\n }\r\n\r\n getAgentById(id: number): Observable {\r\n return of(this.agents.find(agent => agent.id === id));\r\n }\r\n\r\n getAgentByPath(path: string): Observable {\r\n return of(this.agents.find(agent => agent.path === path));\r\n }\r\n\r\n updateAgentDisabledStatus(): void {\r\n // debugger;\r\n const isEFSUser = this.appComponentService.isEFSUser; // Access isEFSUser from AppComponentService\r\n const efsAgent = this.agents.find(agent => agent.id === 3);\r\n if (efsAgent) {\r\n efsAgent.disabled = !isEFSUser; // If isEFSUser is true, it enables; otherwise, disables\r\n // efsAgent.isTooltipDisabled = isEFSUser;\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { valueAccessor } from '@usitsdasdesign/dds-ng/core/common-behaviors';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppComponentService {\r\n isLoading: boolean = false;\r\n isNewChatVisible: boolean = true;\r\n systemSettings: any;\r\n systemModel: string;\r\n isMainContentDisables: boolean = false; // Flag to disable the main content\r\n isModelOpen: boolean = false; // Flag to check if the model is open\r\n isPinChecked: boolean = false; // Flag to check if the pin is checked\r\n private triggerNewChatFunction = new Subject();\r\n triggerNewChatFunction$ = this.triggerNewChatFunction.asObservable();\r\n isSendButtonDisabled: boolean = false; // Flag to disable the send button\r\n conversationData: any;\r\n private conversationDataSubject = new Subject();\r\n conversationData$ = this.conversationDataSubject.asObservable();\r\n private triggerdeleteFunction = new Subject();\r\n triggerdeleteFunction$ = this.triggerdeleteFunction.asObservable();\r\n isEFSUser: boolean = true;\r\n\r\n\r\n // Props for New Task\r\n private newTaskSubject = new Subject();\r\n newTask$ = this.newTaskSubject.asObservable();\r\n isNewTaskDisabled: boolean = true; \r\n \r\n setConversationId(data: any) {\r\n this.conversationData = data;\r\n this.conversationDataSubject.next(data);\r\n }\r\n \r\n setLoadingState(state: boolean) {\r\n this.isLoading = state;\r\n }\r\n setSystemSettings(obj: any) {\r\n this.systemSettings = obj;\r\n // set system settings\r\n }\r\n setSystemModel(model: string) {\r\n this.systemModel = model;\r\n } \r\n // Method to trigger the function\r\n NewChatFunction() {\r\n this.triggerNewChatFunction.next(); // Emit the event\r\n }\r\n deleteconvFunc() {\r\n this.triggerdeleteFunction.next(); // Emit the event\r\n }\r\n // Method to set isModelOpen flag\r\n setIsModelOpen(value: boolean) {\r\n this.isModelOpen = value;\r\n }\r\n\r\n setIsPinChecked(value:boolean) {\r\n this.isPinChecked = value;\r\n }\r\n setIsSendButtonDisabled(value: boolean) {\r\n this.isSendButtonDisabled = value;\r\n }\r\n setIsNewChatVisible(value: boolean): void {\r\n this.isNewChatVisible = value;\r\n }\r\n\r\n setIsEFSSUser(value: boolean): void {\r\n this.isEFSUser = value;\r\n }\r\n \r\n // Methods for New Task\r\n disableNewTaskButton() {\r\n this.isNewTaskDisabled = true;\r\n }\r\n\r\n enableNewTaskButton() {\r\n this.isNewTaskDisabled = false;\r\n }\r\n\r\n triggerNewTask() {\r\n this.newTaskSubject.next();\r\n }\r\n \r\n \r\n \r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { map, Observable, Subject } from 'rxjs';\r\nimport { HttpClient, HttpParams} from '@angular/common/http';\r\nimport { protectedResources } from '../../auth-config';\r\n import {HttpHeaders} from '@angular/common/http';\r\n import { HeaderOptions, HeaderElmnts } from '@usitsdasdesign/dds-ng/header';\r\n import { ProfileOptions } from '@usitsdasdesign/dds-ng/profile';\r\nimport { environment } from '../environments/environment';\r\nimport { MsalService } from '@azure/msal-angular';\r\n const GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChatService {\r\n gptModel: any;\r\n userQuery: any; \r\n switch_value: boolean = false;\r\n private chatGptUrl: string = 'https://botacsapidev-openapipoc.azcactniprdase01.appserviceenvironment.net/OpenAPI/OpenAPIResults?userQuery=';\r\n constructor(private httpClient: HttpClient,private https: HttpClient, private http: HttpClient,private msalService: MsalService) { }\r\n apiurl = protectedResources.apiDBot.endpoint;\r\n summaryApiUrl = protectedResources.searchSummaryDocument.endpoint;\r\n orangeApiUrl = protectedResources.orange.endpoint;\r\n verifyApiUrl = protectedResources.verifyuser.endpoint; \r\n //efsURL=protectedResources.efs.endpoint\r\n responsivePriority: HeaderElmnts[] = [\r\n HeaderElmnts.profile\r\n ];\r\n toggle_button(){\r\n this.switch_value = !this.switch_value;\r\n if(this.switch_value == true){\r\n this.gptModel = \"gpt4o\";\r\n } \r\n else{\r\n this.gptModel = \"gpt3.5\"; \r\n } \r\n }\r\n toggle_analyzer(){\r\n this.switch_value = false;\r\n }\r\n toggle_value(){\r\n return this.switch_value; \r\n }\r\n getSearchResult(search:any,Model:any,temp:any,topP:any,fpenalty:any,ppenalty:any,sysmessage:any,convid:any): Observable { \r\n const headers = new HttpHeaders();\r\n headers.set('access-control-allow-origin',[\"*\"]);\r\n headers.set('content-type','application/json');\r\n headers.set('Accept', 'application/json;charset=UTF-8');\r\n headers.set('responseType','text');\r\n headers.set('Authorization','Bearer');\r\n const params = new HttpParams();\r\n params.append('responseType','text');\r\n params.append('observe','response');\r\n const options ={\r\n headers : 'headers',\r\n params : 'params'\r\n }\r\n return this.httpClient.post(this.apiurl+\"OpenAPI/OpenAPIResults\",{\"userQuery\":search,\"convId\":convid,\"gptModel\":Model,\"temperature\":temp,\"topP\":topP,\"frequencyPenalty\":fpenalty,\"presencePenalty\":ppenalty,\"systemMessage\":sysmessage}); \r\n}\r\n getMarkdownContent(search: any, Model: any, temp: any, topP: any, fpenalty: any, ppenalty: any, sysmessage: any, convid: any, regenerateFlag:any): Observable {\r\n const headers = new HttpHeaders();\r\n headers.set('access-control-allow-origin',[\"*\"]);\r\n headers.set('content-type','application/json');\r\n headers.set('Accept', 'application/json;charset=UTF-8');\r\n headers.set('responseType','text');\r\n headers.set('Authorization','Bearer');\r\n const params = new HttpParams();\r\n params.append('responseType','text');\r\n params.append('observe','response');\r\n const options ={\r\n headers : 'headers',\r\n params : 'params'\r\n }\r\n return this.httpClient.post(this.apiurl+\"OpenAPI/OpenAPIResults\",{\"userQuery\":search,\"convId\":convid,\"gptModel\":Model,\"temperature\":temp,\"topP\":topP,\"frequencyPenalty\":fpenalty,\"presencePenalty\":ppenalty,\"regenerateFlag\":regenerateFlag,\"systemMessage\":sysmessage}\r\n ).pipe(\r\n map(response => response)\r\n );\r\n }\r\n async getStreaming1(\r\n search: any,\r\n Model: any,\r\n temp: any,\r\n topP: any,\r\n fpenalty: any,\r\n ppenalty: any,\r\n sysmessage: any,\r\n convid: any,\r\n regenerateFlag: any\r\n ): Promise> {\r\n var url=this.apiurl+\"OpenAPI/OpenAPIResultsStreaming\";\r\n return new Promise>((resolve, reject) => {\r\n const account = this.msalService.instance.getAllAccounts()[0];\r\n this.msalService\r\n .acquireTokenSilent({\r\n account: account,\r\n scopes: [...protectedResources.apiDBot.scopes.write],\r\n })\r\n .toPromise()\r\n .then((token) => {\r\n fetch(url, {\r\n method: 'POST',\r\n headers: {\r\n Authorization: `Bearer ${token?.accessToken}`,\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n userQuery: search,\r\n convId: convid,\r\n gptModel: Model,\r\n temperature: temp,\r\n topP: topP,\r\n frequencyPenalty: fpenalty,\r\n presencePenalty: ppenalty,\r\n regenerateFlag: regenerateFlag,\r\n systemMessage: sysmessage,\r\n }),\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n if (response.body === null) {\r\n reject(new Error('Response body is null'));\r\n } else {\r\n resolve(response.body.getReader()); // Return the reader\r\n }\r\n } else {\r\n reject(new Error('Not possible in current scenario'));\r\n }\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n async getStreaming(search: any, Model: any, temp: any, topP: any, fpenalty: any, ppenalty: any, sysmessage: any, convid: any, regenerateFlag:any): Promise{\r\n return new Promise((resolve, reject) => {\r\n const account = this.msalService.instance.getAllAccounts()[0];\r\n this.msalService.acquireTokenSilent({\r\n account: account,\r\n scopes: [...protectedResources.apiDBot.scopes.write]\r\n }).toPromise().then(token => {\r\n fetch(this.apiurl + 'OpenAPI/OpenAPIResultsStreaming', {\r\n method : 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${token?.accessToken}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n userQuery: search,\r\n convId: convid,\r\n gptModel: Model,\r\n temperature: temp,\r\n topP: topP,\r\n frequencyPenalty: fpenalty,\r\n presencePenalty: ppenalty,\r\n regenerateFlag: regenerateFlag,\r\n systemMessage: sysmessage,\r\n })\r\n }).then(response => {\r\n if(response.ok){\r\n if (response.body === null) {\r\n reject(new Error('Response body is null'));\r\n } else {\r\n resolve(response.body);\r\n console.log(response);\r\n }\r\n }\r\n else{\r\n reject(new Error('Not possible in current scenario'));\r\n }\r\n }).catch(error => {\r\n reject(error);\r\n });\r\n }).catch(error => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n getSearchRes(search:any,Model:any,sysmessage:any,temp:any,convid:any, regenerateFlag:any, responseLength:any): Observable { \r\n const headers = new HttpHeaders();\r\n headers.set('access-control-allow-origin',[\"*\"]);\r\n headers.set('content-type','application/json');\r\n headers.set('Accept', 'application/json;charset=UTF-8');\r\n headers.set('responseType','text');\r\n headers.set('Authorization','Bearer');\r\n const params = new HttpParams();\r\n params.append('responseType','text');\r\n params.append('observe','response');\r\n const options ={\r\n headers : 'headers',\r\n params : 'params'\r\n }\r\n console.log(\"response\", this.apiurl+\"OpenAPI/OpenAPIResults\",{\"userQuery\":search,\"convId\":convid,\"gptModel\":Model,\"temperature\":temp,\"systemMessage\":sysmessage, \"regenerateFlag\":regenerateFlag, \"responseLength\":responseLength})\r\n return this.httpClient.post(this.apiurl+\"OpenAPI/OpenAPIResults\",{\"userQuery\":search,\"convId\":convid,\"gptModel\":Model,\"temperature\":temp,\"systemMessage\":sysmessage, \"regenerateFlag\":regenerateFlag, \"responseLength\":responseLength}); \r\n\r\n // return this.httpClient.post(this.apiurl+\"OpenAPI/OpenAPIResults\",{\"userQuery\":search,\"convId\":convid,\"gptModel\":Model,\"temperature\":temp,\"topP\":topP,\"frequencyPenalty\":fpenalty,\"presencePenalty\":ppenalty,\"regenerateFlag\":regenerateFlag,\"systemMessage\":sysmessage}); \r\n}\r\n getOrangeResult(search:any): Observable{\r\n let headers3 = new HttpHeaders({\r\n 'content-Type' : 'application/json', \r\n 'access-control-allow-origin': [\"*\"],\r\n });\r\n return this.httpClient.post(this.orangeApiUrl,{\"prompt\":search},{headers: headers3}); \r\n }\r\n getDocumentResult(search:any): Observable { \r\n let headers2 = new HttpHeaders({\r\n 'content-Type': 'application/json',\r\n 'access-control-allow-origin': [\"*\"],\r\n });\r\n \r\n const body = {\r\n prompt: search\r\n \r\n };\r\n return this.http.post(\r\n this.summaryApiUrl, {\r\n prompt: search\r\n \r\n } , {headers : headers2})\r\n}\r\n\r\n // getEFSData(search: any): Observable {\r\n// var URL=this.getEFSData\r\n// return this.http.get(\r\n// this.efsURL + search, {\r\n// })\r\n// }\r\n \r\ngetEFSData(search: any): Observable {\r\n let headers2 = new HttpHeaders({\r\n 'content-Type': 'application/json',\r\n 'access-control-allow-origin': [\"*\"],\r\n });\r\n\r\n const body = {\r\n prompt: search\r\n\r\n };\r\n return this.http.post(\r\n this.apiurl+\"/OpenAPI/GetEFSData\", {\r\n prompt: search\r\n\r\n }, { headers: headers2 })\r\n}\r\n\r\n verifyPreviewUser():Observable{\r\n let headers3 = new HttpHeaders({\r\n 'content-Type': 'application/json',\r\n 'access-control-allow-origin': [\"*\"],\r\n });\r\n return this.httpClient.post(this.apiurl + \"OpenAPI/VerifyPreviewUser\",{},{headers : headers3});\r\n }\r\n downloadDocument(fileName: string) {\r\n return this.httpClient.get(this.apiurl + \"api/Onboarding/DownloadDocument?fileName=\"+fileName, {\r\n reportProgress: true,\r\n observe: 'events',\r\n responseType: 'blob'\r\n })\r\n }\r\n\r\n verifyEFSUser():Observable{ \r\n return this.httpClient.get(this.apiurl + \"OpenAPI/VerifyEFSUser\",{});\r\n }\r\n\r\n getKBChecks():Observable{\r\n return this.httpClient.get(this.apiurl + \"OpenAPI/GetKBChecks\",{});\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { protectedResources } from '../../auth-config';\r\n import { HeaderOptions, HeaderElmnts } from '@usitsdasdesign/dds-ng/header';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConHistoryService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n apiurl = protectedResources.apiDBot.endpoint;\r\n getconversationId(): Observable{\r\n return this.httpClient.get(this.apiurl + \"OpenAPI/GetConversationIds\"); \r\n }\r\n\r\n chatHistoryId(convId:any): Observable{\r\n return this.httpClient.get(this.apiurl + \"OpenAPI/GetConversationHistory?ConvId=\"+convId); \r\n }\r\n\r\n RenameLabel(convId:any, newLabel:any): Observable{\r\n return this.httpClient.post(this.apiurl + \"OpenAPI/RenameLabel?ConvId=\"+convId+\"&newLabel=\"+newLabel, {}); \r\n }\r\n\r\n deleteConvId(convId:any): Observable{\r\n return this.httpClient.delete(this.apiurl + \"OpenAPI/DeleteConversation?ConvId=\"+convId); \r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { protectedResources } from '../../auth-config';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeloitteVoiceService {\r\n constructor(private httpClient: HttpClient) { }\r\n baseUrl = protectedResources.apiDBot.endpoint;\r\n\r\nuploadDocument(formData: FormData): any {\r\n const url = `${this.baseUrl}api/DeloitteVoice/UploadDocument`;\r\n const headers = new HttpHeaders({\r\n 'access-control-allow-origin': '*',\r\n 'content-type': 'multipart/form-data'\r\n });\r\n\r\n return this.httpClient.post( \r\n url, \r\n formData \r\n );\r\n }\r\n\r\n downloadFile(fileName: string): Observable {\r\n const url = `${this.baseUrl}api/DeloitteVoice/DownloadDocument?fileName=${fileName}`;\r\n return this.httpClient.get(url, { responseType: 'blob' });\r\n}\r\n\r\nreviseDocument(request: DeloitteVoiceReviseRequest): Observable {\r\n const url = `${this.baseUrl}api/DeloitteVoice/revise`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.httpClient.post(url, request, { headers });\r\n}\r\n\r\ngetStatus(taskId: string): Observable {\r\n const url = `${this.baseUrl}api/DeloitteVoice/status/${taskId}`;\r\n return this.httpClient.get(url);\r\n}\r\n\r\n\r\n}\r\n\r\nexport interface DeloitteVoiceReviseRequest {\r\n contentFormat: string;\r\n contentInput: string;\r\n additionalInstructions: string;\r\n fileName: string;\r\n}\r\n\r\nexport interface DeloitteVoiceReviseResponse {\r\n taskId: string;\r\n}\r\n\r\nexport interface DeloitteVoiceFileTrackerResponseDto {\r\n taskId: string; \r\n status: string;\r\n outputFileName?: string; \r\n errorMessage?: string; \r\n lastUpdatedDateTime: Date;\r\n userId: string;\r\n}\r\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { protectedResources } from '../../auth-config';\r\nimport { HeaderElmnts } from '@usitsdasdesign/dds-ng/header';\r\nimport { Observable } from 'rxjs';\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentUploadService {\r\n gptModel: any;\r\n userQuery: any; \r\n switch_value: boolean = false;\r\n constructor(private httpClient: HttpClient,private https: HttpClient) { }\r\n blobUrl = protectedResources.uploadDocument.endpoint;\r\n docupUrl = protectedResources.processUploadedDocument.endpoint;\r\n baseUrl = protectedResources.apiDBot.endpoint;\r\nuploadDocument(formData: FormData): any {\r\n const headers = new HttpHeaders({\r\n 'access-control-allow-origin': '*',\r\n 'content-type': 'multipart/form-data'\r\n });\r\n\r\n return this.httpClient.post( \r\n this.blobUrl, \r\n formData \r\n );\r\n }\r\n ProcessDocuments(): Observable {\r\n return this.httpClient.post( \r\n this.docupUrl+\"ProcessDocuments\",{});\r\n }\r\n\r\n GenerateEmbeddings(): Observable{\r\n return this.httpClient.post(this.docupUrl+\"GenerateEmbeddings\", {}); \r\n }\r\n\r\n ShowSummary(): Observable {\r\n return this.httpClient.post( \r\n this.docupUrl+\"ShowSummary\",{});\r\n }\r\n\r\n downloadFile(fileName: string): Observable {\r\n const url = `${this.baseUrl}/api/Blob/DownloadDocument?fileName=${fileName}`;\r\n return this.httpClient.get(url, { responseType: 'blob' });\r\n}\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { protectedResources } from '../../auth-config';\r\nimport { environment } from '../environments/environment';\r\n const GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeedbackService {\r\n \r\n\r\n constructor(private httpClient: HttpClient) { }\r\n apiurl = protectedResources.apiDBot.endpoint;\r\n \r\n submitFeedbackData(data:any){\r\n return this.httpClient.post(environment.feedbackURL,data);\r\n }\r\n\r\n submitDocFeedbackData(data:any){\r\n return this.httpClient.post(environment.docfeedbackURL,data);\r\n }\r\n\r\n submitEFSFeedbackData(data:any){\r\n // return this.httpClient.post(environment.EFSfeedbackURL,data);\r\n return this.httpClient.post(this.apiurl+\"OpenAPI/SubmitEFSFeedBack\",data)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageServiceService {\r\n\r\n constructor() { }\r\n private currentLanguage = new BehaviorSubject('EN');\r\n\r\n setCurrentLanguage(language: string) {\r\n this.currentLanguage.next(language);\r\n }\r\n\r\n getCurrentLanguage() {\r\n return this.currentLanguage.asObservable();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RecentAgentsService {\r\n private readonly MAX_RECENT_PATHS = 3;\r\n private recentPathsSubject = new BehaviorSubject([\r\n '/document-analyzer',\r\n '/deloitte-voice',\r\n '/efs'\r\n ]);\r\n recentPaths$ = this.recentPathsSubject.asObservable();\r\n\r\n addRecentPath(path: string) {\r\n const currentPaths = this.recentPathsSubject.value;\r\n const filteredPaths = currentPaths.filter(p => p !== path);\r\n const newPaths = [path, ...filteredPaths].slice(0, this.MAX_RECENT_PATHS);\r\n this.recentPathsSubject.next(newPaths);\r\n }\r\n}","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { protectedResources } from '../../auth-config';\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResetBlobStorageService {\r\n user_id: any;\r\n constructor(private httpClient: HttpClient) { }\r\n refresBlobUrl = protectedResources.resetUploadedDocument.endpoint;\r\nresetUploadedDocument(): any {\r\n const headers = new HttpHeaders({\r\n 'access-control-allow-origin': '*',\r\n 'content-type': 'multipart/form-data'\r\n });\r\n\r\n return this.httpClient.get( \r\n this.refresBlobUrl, {headers : headers}\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ResetChatService {\r\n // Subject to emit a reset signal\r\n private resetSubject = new Subject();\r\n\r\n // Observable to subscribe to the reset signal\r\n reset$ = this.resetSubject.asObservable();\r\n\r\n // Method to trigger the reset\r\n triggerReset() {\r\n this.resetSubject.next();\r\n }\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharingmessageService {\r\n\r\n constructor() { }\r\n \r\n private data:any = \"\";\r\n private fileData:any[] =[];\r\n private isPinned: boolean = false;\r\n\r\n private bs = new BehaviorSubject(this.data);\r\n private bs2 = new BehaviorSubject(this.fileData);\r\n private isPinnedSubject = new BehaviorSubject(this.isPinned);\r\n \r\n obs = this.bs.asObservable();\r\n obs2 = this.bs2.asObservable();\r\n isPinnedObs = this.isPinnedSubject.asObservable();\r\n \r\n changeData(editedData: any) {\r\n\r\n this.bs.next(editedData);\r\n\r\n }\r\n setData(data:any){\r\n this.data = data; \r\n }\r\n\r\n getData():any{\r\n return this.data;\r\n }\r\n setFileData(fileData:any){\r\n this.bs2.next(fileData);\r\n }\r\n getFileData(): any {\r\n return this.fileData;\r\n }\r\n\r\n setIsPinned(isPinned: boolean) {\r\n this.isPinned = isPinned;\r\n this.isPinnedSubject.next(isPinned);\r\n }\r\n \r\n getIsPinned(): boolean {\r\n return this.isPinned;\r\n }\r\n}","import { Component, inject } from '@angular/core';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { I18nService } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { Agent } from '../model/agent.model';\r\nimport { RecentAgentsService } from '../Services/recent-agent.service';\r\nimport { AgentsService } from '../Services/agent.service';\r\nimport { ChatService } from '../Services/chat.service';\r\nimport { AppComponent } from '../app.component';\r\nimport { LoadingService } from '../Services/LoadingService';\r\n \r\n@Component({\r\n selector: 'app-agent-central',\r\n templateUrl: './agent-central.component.html',\r\n styleUrls: ['./agent-central.component.css']\r\n})\r\nexport class AgentCentralComponent {\r\n language: string = 'en'\r\n searchTerm: string = '';\r\n searchDisabled: boolean = false;\r\n selectedCategory: string = '';\r\n searchResultsVisible: boolean = false; \r\n currentIndex: number = 0; \r\n private destroy = new Subject(); \r\n // Labels\r\n lblPageTitle: string;\r\n lblPageDescriptionPart1: string;\r\n // lblPageDescriptionPart1: string =\"Welcome to Agent Central, your go-to platform for a growing collection of specialized AI agents designed to streamline your daily tasks. Our intuitive interface helps you quickly find the right agent, empowering you to work smarter and achieve more. Explore our library and unlock new levels of efficiency and innovation in your professional life. Check out our \"\r\n lblPageDescriptionPart2: string = \" for a detailed introduction.\"\r\n tutorialLink: string = \"#\";\r\n tutorialLinkDescription: string = \"Tutorial Video\";\r\n lblPopularAgents:string;\r\n lblAllAgents: string;\r\n ComingSoontext: string = \"Coming Soon!\"\r\n allAgents: Agent[] = [];\r\n filteredAgents: Agent[] = this.allAgents;\r\n\r\n constructor(public appComponentService: AppComponentService,\r\n private agentService : AgentsService,\r\n private router: Router,\r\n public loadingService: LoadingService,\r\n private i18n: I18nService, private chatservice:ChatService) {}\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.language = 'fr'\r\n this.lblPageTitle = \"Explorer les agents IA\";\r\n this.lblPopularAgents = \"FR - Popular Agents\"\r\n this.lblAllAgents = \"Tous les agents\"\r\n this.lblPageDescriptionPart1 = \"Bienvenue à Agent Central, votre plateforme de référence pour une collection croissante d'agents IA spécialisés qui sont conçus pour simplifier vos tâches quotidiennes. Notre interface intuitive vous aide à trouver rapidement le bon agent, vous permettant de travailler plus intelligemment et d'accomplir davantage. Explorez nos fonctionalités et débloquez de nouveaux niveaux d'efficacité et d'innovation dans votre vie professionnelle.\"\r\n this.ComingSoontext = \"Prochainement!\"\r\n break;\r\n default:\r\n this.language = 'en'\r\n this.lblPageTitle = \"Explore AI Agents\";\r\n this.lblPopularAgents = \"Popular Agents\"\r\n this.lblAllAgents = \"All Agents\"\r\n this.lblPageDescriptionPart1 =\"Welcome to Agent Central, your go-to platform for a growing collection of specialized AI agents designed to streamline your daily tasks. Our intuitive interface helps you quickly find the right agent, empowering you to work smarter and achieve more. Explore our library and unlock new levels of efficiency and innovation in your professional life.\"\r\n this.ComingSoontext = \"Coming Soon!\"\r\n break;\r\n }\r\n });\r\n } \r\n \r\n ngOnInit(): void {\r\n this.appComponentService.setIsNewChatVisible(false);\r\n this.agentService.getAgents().subscribe((result: Agent[])=>{\r\n this.allAgents = result;\r\n });\r\n this.manageLocale();\r\n this.loadingService.setLoadingState(false);\r\n this.loadingService.setstopstreaming(false);\r\n this.chatservice.verifyEFSUser().subscribe((response: any) => {\r\n if (response.result == \"Failure\") {\r\n this.appComponentService.setIsEFSSUser(false);\r\n this.agentService.updateAgentDisabledStatus()\r\n \r\n }\r\n else \r\n this.appComponentService.setIsEFSSUser(true);\r\n \r\n })\r\n }\r\n \r\n updateDisplayedAgents(): Agent[] {\r\n return this.filteredAgents.slice(this.currentIndex, this.currentIndex + 6); \r\n }\r\n \r\n prevAgents() {\r\n if (this.currentIndex > 0) {\r\n this.currentIndex -= 6;\r\n }\r\n }\r\n \r\n nextAgents() {\r\n if (this.currentIndex + 6 < this.filteredAgents.length) {\r\n this.currentIndex += 6; \r\n }\r\n }\r\n\r\n navigateTo(agent: Agent){\r\n \r\n \r\n // debugger;\r\n if(!agent.disabled){\r\n this.router.navigate([agent.path]);\r\n }\r\n }\r\n\r\n \r\n\r\n}","
\r\n
\r\n
\r\n

{{lblPageTitle}}

\r\n

\r\n {{lblPageDescriptionPart1}}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

{{lblAllAgents}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ agent.name[this.language] }} {{agent.version}}

\r\n

{{ agent.description[this.language] }}

\r\n

{{agent.warning[this.language]}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { BrowserUtils } from '@azure/msal-browser';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { DocumentAnalyzerComponent } from './document-analyzer/document-analyzer.component';\r\nimport { AgentCentralComponent } from './agent-central/agent-central.component';\r\nimport { EfsComponent } from './efs/efs.component';\r\nimport { DeloitteVoiceComponent } from './deloitte-voice/deloitte-voice.component';\r\nimport { DeloitteVoiceFlowComponent } from './deloitte-voice/deloitte-voice-flow/deloitte-voice-flow.component';\r\nimport { DeloitteVoiceCreateComponent } from './deloitte-voice/deloitte-voice-create/deloitte-voice-create.component';\r\nimport { DeloitteVoiceReviseComponent } from './deloitte-voice/deloitte-voice-revise/deloitte-voice-revise.component';\r\nimport { ErrorComponent } from './error/error.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: HomeComponent, canActivate: [MsalGuard] },\r\n { path: 'document-analyzer', component: DocumentAnalyzerComponent, canActivate: [MsalGuard] },\r\n { path: 'agent-central', component: AgentCentralComponent, canActivate: [MsalGuard] },\r\n { path: 'efs', component: EfsComponent, canActivate: [MsalGuard] },\r\n { path: 'error', component: ErrorComponent, canActivate: [MsalGuard] },\r\n {path: '', component:HomeComponent,canActivate: [MsalGuard] }, \r\n {path:\"document-analyzer\",component:DocumentAnalyzerComponent,canActivate: [MsalGuard]},\r\n // {\r\n // path: 'deloitte-voice',\r\n // component: DeloitteVoiceComponent,\r\n // canActivate: [MsalGuard],\r\n // children: [\r\n // { path: '', component: DeloitteVoiceFlowComponent },\r\n // { path: 'create', component: DeloitteVoiceCreateComponent },\r\n // { path: 'revise', component: DeloitteVoiceReviseComponent },\r\n // { path: '**', redirectTo: '' }\r\n // ]\r\n // },\r\n {path:\"agent-central\",component:AgentCentralComponent,canActivate: [MsalGuard]},\r\n {path:\"efs\",component: EfsComponent, canActivate: [MsalGuard]},\r\n { path: 'error', component: ErrorComponent, canActivate: [MsalGuard] },\r\n { path: \"**\", redirectTo: '' }\r\n\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n initialNavigation: !BrowserUtils.isInIframe() && !BrowserUtils.isInPopup() ? 'enabledNonBlocking' : 'disabled' // Set to enabledBlocking to use Angular Universal\r\n })],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }","import { Component, OnInit, OnDestroy, Inject, ElementRef, Renderer2, AfterContentChecked, AfterViewInit, enableProdMode, ViewChild, HostListener } from '@angular/core';\r\nimport { CardOptions } from '@usitsdasdesign/dds-ng/cards';\r\nimport { WidthState, Themes, Size, ButtonKind, LabelPosition, ErrorState, TabThemeType } from '@usitsdasdesign/dds-ng/shared';\r\nimport { HeaderOptions, HeaderElmnts } from '@usitsdasdesign/dds-ng/header';\r\nimport { ProfileOptions } from '@usitsdasdesign/dds-ng/profile';\r\nimport { ButtonOptions } from '@usitsdasdesign/dds-ng/button';\r\nimport { SelectOptions, SelectItemOptions } from '@usitsdasdesign/dds-ng/select';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { environment } from './environments/environment';\r\nimport { MsalService, MsalBroadcastService, MSAL_GUARD_CONFIG, MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { InteractionStatus, RedirectRequest } from '@azure/msal-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SharingmessageService } from './Services/sharingmessage.service';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { LanguageServiceService } from './Services/language-service.service';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { ChatService } from './Services/chat.service';\r\nimport { TabsOptions, TabOptions, TabComponent } from '@usitsdasdesign/dds-ng/tabs';\r\nimport { WizardOptions, WizardThemes, WizardItemOptions, WizardItemComponent } from '@usitsdasdesign/dds-ng/wizard';\r\nimport { VerticalTabsOptions, VerticalTabOptions, VerticalTabComponent } from '@usitsdasdesign/dds-ng/vertical-tabs';\r\nimport { ErrorComponent } from './error/error.component';\r\nimport { LoadingService } from './Services/LoadingService';\r\nimport { AppComponentService } from './Services/appcomponentservice';\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { SystemsettingsComponent } from './systemsettings/systemsettings.component';\r\nimport { PreviewPopupComponent } from './preview-popup/preview-popup.component';\r\nimport { ResetChatService } from './Services/reset-chat.service';\r\nimport { TooltipOptions } from '@usitsdasdesign/dds-ng/tooltip';\r\nimport { ConHistoryService } from './Services/con-history.service';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { WhatsnewComponent } from './whatsnew/whatsnew.component';\r\nimport { AgentsService } from './Services/agent.service';\r\n\r\n\r\n// declare var bootstrap: any;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit, AfterContentChecked {\r\n title = 'Gen-D';\r\n private destroy = new Subject();\r\n private teamsChannelUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921';\r\n //private privacy_URL: string = \"https://mydeloitte.portal.deloitte.ca/sites/resources/ActiveFR/Internal/QualityandRiskManagement/Privacy/Documents/AI%20Guidelines%20Approved%20AI%20Systems_FR.pdf\";\r\n private report_Bug: string = \"https://deloittecan.service-now.com/mysupport?id=sc_cat_item&sys_id=3f1dd0320a0a0b99000a53f7604a2ef9&topic=null\";\r\n private globalClickListener: () => void;\r\n isSystemSettingsModalOpen: boolean = false;\r\n currentPath: string;\r\n text: string = \"Token Limit: 13000\\nSpeed: High\\nReasoning: High\\nTraining Upto: Oct 2023\";\r\n selectedLanguage: string = 'EN';\r\n lblChat: string;\r\n lblChatHistory: string;\r\n lblRecent10Conversations: string;\r\n lblChatHistoryRename: string;\r\n lblChatHistoryDelete: string;\r\n lblSettings: string;\r\n lblUserCommunity: string;\r\n lblChatSettings: string;\r\n lblNewChat: string;\r\n lblNewTask: string;\r\n lblWhatsNew: string;\r\n verifyPreviewvalue: boolean = true;\r\n conversationsList: any = [];\r\n tooltipVisible: boolean = true;\r\n txtTooltipHeader: string = 'Usage Limit';\r\n txtTooltipBody: string = 'Your daily usage limit for the more advanced GPT-4o model is set to 50k tokens, which is roughly 40 pages (~300 words/page). The limit resets for your account every 24 hours. We suggest to use the 4o model only for complex reasoning and other advanced use cases.';\r\n convTooltipBody: string = 'jhihihi';\r\n hidemodelSelect: boolean = true;\r\n isShownconv: boolean;\r\n isEdit: boolean[];\r\n editIndex: number | null = null;\r\n showload: boolean = false;\r\n hisIsLoading: boolean = false;\r\n showNewButton: boolean;\r\n editedLabel1: any = false;\r\n isShown: boolean = false;\r\n chatConvId: any;\r\n dropdownIndex: number | null = null;\r\n selectedChatIndex: number | null = null;\r\n newchatclicked: boolean = true;\r\n convidstore: any;\r\n newchatcount: number = 0;\r\n isEditing: boolean = false;\r\n originalLabels: string[] = [];\r\n disableconversations: boolean;\r\n editedconvlabel: any;\r\n tooltipDisabled: boolean = false;\r\n privacy_URL: string;\r\n lblprivacy_URL: string;\r\n lblReportBug: string;\r\n constructor(\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private authService: MsalService,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private https: HttpClient, private sharingService: SharingmessageService,\r\n private i18n: I18nService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private chatService: ChatService,\r\n private elRef: ElementRef, private renderer: Renderer2,\r\n public loadingService: LoadingService,\r\n public appcomponentservice: AppComponentService,\r\n private modalService: ModalService,\r\n private languageService: LanguageServiceService,\r\n private resetChatService: ResetChatService, private appComponentService: AppComponentService,\r\n private sharingmessageService: SharingmessageService, private conHistoryService: ConHistoryService,\r\n private agentService : AgentsService,\r\n ) {\r\n // this.guid = uuidv4();\r\n // this.router.events.pipe(\r\n // filter(event => event instanceof NavigationEnd)\r\n // ).subscribe(() => {\r\n // // Access the current path using ActivatedRoute\r\n // this.currentPath = this.router.url; // Get the current URL\r\n // });\r\n }\r\n @ViewChild('sidebar') sidebar: ElementRef | undefined;\r\n @ViewChild('mainContent') mainContent: ElementRef | undefined;\r\n // @ViewChild('chatinput') chatInput: ElementRef | undefined;\r\n // @ViewChild('dynamicContent') dynamicContent: ElementRef | undefined;\r\n @ViewChild('pinIcon', { static: true }) pinIcon!: ElementRef;\r\n @ViewChild('unpinIcon', { static: true }) unpinIcon!: ElementRef;\r\n\r\n isPinned = true;\r\n systemModel: string;\r\n\r\n // get tooltipContent(): string {\r\n // return `
${this.txtTooltipHeader}
${this.txtTooltipBody}
`;\r\n // }\r\n\r\n openWhatsNewModel() {\r\n if (this.appcomponentservice.isModelOpen) {\r\n this.modalService.close();\r\n this.appcomponentservice.setIsModelOpen(false);\r\n }\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.modalService.open(WhatsnewComponent, { lstoptionDislike: WhatsnewComponent }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n });\r\n }\r\n\r\n serviceFuncSetIsPinned() {\r\n this.sharingmessageService.setIsPinned(this.isPinned);\r\n }\r\n\r\n\r\n showTooltip() {\r\n this.tooltipVisible = true;\r\n }\r\n\r\n hideTooltip() {\r\n this.tooltipVisible = false;\r\n }\r\n\r\n isSelected(path: string): boolean {\r\n //console.log(path, this.router.url)\r\n return this.router.url === path;\r\n }\r\n\r\n pinSidebar() {\r\n // Adjust CSS classes\r\n if (this.pinIcon != undefined) {\r\n this.renderer.removeClass(this.pinIcon.nativeElement, 'hide');\r\n this.renderer.removeClass(this.pinIcon.nativeElement, 'hidePin');\r\n this.renderer.addClass(this.unpinIcon.nativeElement, 'hideUnPin');\r\n\r\n // Set isPinned to true\r\n this.isPinned = true;\r\n\r\n }\r\n }\r\n\r\n togglePin() {\r\n setTimeout(() => {\r\n const pinIcon = document.getElementById('pin-icon');\r\n const unpinIcon = document.getElementById('unpin-icon');\r\n\r\n pinIcon?.classList.remove(\"hide\");\r\n unpinIcon?.classList.remove(\"hideUnPin\");\r\n pinIcon?.classList.add(\"hidePin\");\r\n this.isPinned = !this.isPinned;\r\n\r\n if (this.sidebar?.nativeElement.classList.contains('show')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n } else {\r\n this.appcomponentservice.setIsPinChecked(false);\r\n }\r\n }, 10); // 10ms delay\r\n\r\n\r\n }\r\n toggleUnPin() {\r\n\r\n setTimeout(() => {\r\n const pinIcon = document.getElementById('pin-icon');\r\n const unpinIcon = document.getElementById('unpin-icon');\r\n\r\n pinIcon?.classList.remove(\"hide\");\r\n pinIcon?.classList.remove(\"hidePin\");\r\n unpinIcon?.classList.add(\"hideUnPin\");\r\n this.isPinned = !this.isPinned;\r\n\r\n if (this.sidebar?.nativeElement.classList.contains('show')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n } else {\r\n this.appcomponentservice.setIsPinChecked(false);\r\n }\r\n }, 10); // 10ms delay\r\n }\r\n\r\n handleMouseLeave() {\r\n if (this.verifyPreviewvalue) {\r\n const chatInput = document.getElementById(\"chatinput\")\r\n const dynamicContent = document.getElementById(\"dynamicContent\")\r\n const chatMainContainer = document.getElementById(\"chatMainContainer\");\r\n const sidebar = this.sidebar?.nativeElement;\r\n const mainContent = this.mainContent?.nativeElement;\r\n //const dynamicContent = this.dynamicContent?.nativeElement;\r\n //const chatInput = this.chatInput?.nativeElement;\r\n if (!this.isPinned) {\r\n sidebar.classList.add('hidden');\r\n sidebar.classList.remove('show');\r\n mainContent?.classList.add('main-content-expand');\r\n dynamicContent?.classList.add('dynamic-content-expand');\r\n chatInput?.classList.add('chat-input-expand');\r\n chatMainContainer?.classList.add('chat-main-container-expand');\r\n } else {\r\n sidebar.classList.add('show');\r\n sidebar.classList.remove('hidden');\r\n mainContent?.classList.remove('main-content-expand');\r\n dynamicContent?.classList.remove('dynamic-content-expand');\r\n chatInput?.classList.remove('chat-input-expand');\r\n chatMainContainer?.classList.remove('chat-main-container-expand');\r\n }\r\n if (this.sidebar?.nativeElement.classList.contains('show')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentservice.setIsPinChecked(false);\r\n }\r\n }\r\n else return;\r\n }\r\n\r\n openUserCommunityLink(): void {\r\n window.open(this.teamsChannelUrl, '_blank');\r\n }\r\n openPrivacyPolicyink(): void {\r\n window.open(this.privacy_URL, '_blank');\r\n }\r\n openReportbugLink(): void {\r\n window.open(this.report_Bug, '_blank');\r\n }\r\n openSystemSettingsModal(event: Event) {\r\n if (this.appcomponentservice.isModelOpen) {\r\n this.modalService.close();\r\n this.appcomponentservice.setIsModelOpen(false);\r\n }\r\n\r\n if (this.isSystemSettingsModalOpen) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n if (this.isSelected('/document-analyzer') || this.isSelected('/efs') || this.isSelected('/deloitte-voice')) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n this.isSystemSettingsModalOpen = true;\r\n this.appcomponentservice.setIsModelOpen(true);\r\n let modalRef = this.modalService.open(\r\n SystemsettingsComponent, { isFooter: true, size: 'lg', isPinned: this.isPinned }).onClosed().subscribe(\r\n res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n this.isSystemSettingsModalOpen = false;\r\n if (res != undefined) {\r\n this.appcomponentservice.setSystemSettings({\r\n \"systemMessage\": res.systemprompt,\r\n \"responseStyle\": res.personality,\r\n \"userQueryLength\": res.responselength\r\n });\r\n }\r\n });\r\n }\r\n @HostListener('document:mousemove', ['$event'])\r\n // @HostListener('document:click', ['$event'])\r\n // onDocumentClick(event: MouseEvent) {\r\n // const target = event.target as HTMLElement;\r\n // if (!target.closest('.dropup')) {\r\n // this.dropdownIndex = null;\r\n // }\r\n // }\r\n handleMainContentMouseLeave(event: MouseEvent) {\r\n if (this.isPinned) return;\r\n\r\n if (event.clientX <= 20) { // Adjust threshold if needed\r\n const chatInput = document.getElementById(\"chatinput\")\r\n const dynamicContent = document.getElementById(\"dynamicContent\")\r\n const chatMainContainer = document.getElementById(\"chatMainContainer\");\r\n if (this.isPinned) {\r\n this.sidebar?.nativeElement.classList.add('hidden');\r\n this.sidebar?.nativeElement.classList.remove('show');\r\n this.mainContent?.nativeElement.classList.add('main-content-expand');\r\n dynamicContent?.classList.add('dynamic-content-expand');\r\n chatInput?.classList.add('chat-input-expand');\r\n chatMainContainer?.classList.add('chat-main-container-expand');\r\n\r\n } else {\r\n this.sidebar?.nativeElement.classList.add('show');\r\n this.sidebar?.nativeElement.classList.remove('hidden');\r\n this.mainContent?.nativeElement.classList.remove('main-content-expand');\r\n dynamicContent?.classList.remove('dynamic-content-expand');\r\n chatInput?.classList.remove('chat-input-expand');\r\n chatMainContainer?.classList.remove('chat-main-container-expand');\r\n\r\n }\r\n if (this.sidebar?.nativeElement.classList.contains('show')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentservice.setIsPinChecked(false);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n // // Initialize Bootstrap tooltip\r\n // const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle=\"tooltip\"]'));\r\n // tooltipTriggerList.map(function (tooltipTriggerEl) {\r\n // return new (window as any).bootstrap.Tooltip(tooltipTriggerEl, {\r\n // html: true\r\n // });\r\n // });\r\n\r\n const sidebar = this.sidebar?.nativeElement;\r\n sidebar?.addEventListener('mouseleave', this.handleMouseLeave.bind(this));\r\n\r\n // const mainContent = this.mainContent?.nativeElement;\r\n // mainContent?.addEventListener('mouseleave', this.handleMainContentMouseLeave.bind(this));\r\n }\r\n ngAfterContentChecked(): void {\r\n\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblChat = \"Conversation\";\r\n this.lblChatHistory = \"Historique du chat\"\r\n this.lblRecent10Conversations = \"Seulement les dix dernières sessions sont disponibles \";\r\n this.lblChatHistoryRename = \"Renommer\"\r\n this.lblChatHistoryDelete = \"Supprimer\"\r\n this.lblSettings = \"Liens utiles\";\r\n this.lblUserCommunity = \"Communauté d'utilisateurs\";\r\n this.lblChatSettings = \"Paramètres de Chat\";\r\n this.lblNewChat = \"Nouvelle conversation\";\r\n this.lblWhatsNew = \"Quoi de neuf ?\";\r\n this.lblNewTask = \"Nouvelle tâche\";\r\n this.privacy_URL = \"https://mydeloitte.portal.deloitte.ca/sites/resources/ActiveFR/Internal/QualityandRiskManagement/Privacy/Documents/AI%20Guidelines%20Approved%20AI%20Systems_FR.pdf\";\r\n this.lblprivacy_URL = \"Politique de Confidentialité\";\r\n this.lblReportBug = \"Signaler un bug\";\r\n break;\r\n\r\n default:\r\n this.lblChat = \"Chat\";\r\n this.lblChatHistory = \"Chat History\";\r\n this.lblRecent10Conversations = \"Only the most recent 10 sessions will be available for revisit and resume.\";\r\n this.lblChatHistoryRename = \"Rename\"\r\n this.lblChatHistoryDelete = \"Delete\"\r\n this.lblSettings = \"Useful Links\";\r\n this.lblUserCommunity = \"User Community\";\r\n this.lblChatSettings = \"Chat Settings\";\r\n this.lblNewChat = \"New Chat\";\r\n this.lblWhatsNew = \"What's New?\";\r\n this.lblNewTask = \"New Task\";\r\n this.privacy_URL = \"https://mydeloitte.portal.deloitte.ca/sites/resources/ActiveEN/Internal/QualityandRiskManagement/Privacy/Documents/AI%20Guidelines%20Approved%20AI%20Systems_EN.pdf\";\r\n this.lblprivacy_URL =\"Privacy Policy\";\r\n this.lblReportBug = \"Report Bug\";\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.verifyEFSUser();\r\n //this.getConvList();\r\n this.appcomponentservice.setIsModelOpen(true);\r\n\r\n this.serviceFuncSetIsPinned();\r\n this.verifyPreviewUSer();\r\n\r\n // this.pinSidebar();\r\n this.manageLocale();\r\n this.systemModel = \"gpt4o\"\r\n this.appcomponentservice.setSystemModel(this.systemModel);\r\n this.appcomponentservice.setSystemSettings({ \"systemMessage\": \"\", \"responseStyle\": 0, \"userQueryLength\": \"\" });\r\n if (this.selectedLanguage == 'FR')\r\n this.https.get('assets/i18n/fr.json').subscribe((data: ITranslation) => this.i18n.setLocale('FR', data));\r\n else\r\n this.https.get('assets/i18n/en.json').subscribe((data: ITranslation) => this.i18n.setLocale('en', data));\r\n\r\n }\r\n verifyEFSUser() {\r\n const path: string = window.location.pathname; \r\n this.chatService.verifyEFSUser().subscribe((response: any) => {\r\n \r\n if (response.result == \"Failure\") {\r\n if(path == \"/agent-central\"){\r\n this.appComponentService.setIsEFSSUser(false);\r\n this.agentService.updateAgentDisabledStatus()\r\n }\r\n else if(path == \"/efs\"){\r\n this.appComponentService.setIsEFSSUser(false);\r\n\r\n this.router.navigate(['/error'])\r\n }\r\n else{\r\n this.appComponentService.setIsEFSSUser(true);\r\n }\r\n\r\n }\r\n else \r\n this.appComponentService.setIsEFSSUser(true);\r\n \r\n })\r\n if ((this.appComponentService.isEFSUser == false && this.router.navigate(['/agent-central'])) ){\r\n this.agentService.updateAgentDisabledStatus()\r\n }\r\n else if ((this.appComponentService.isEFSUser == false && path == \"/agent-central\")){\r\n this.agentService.updateAgentDisabledStatus()\r\n }\r\n else if (this.appComponentService.isEFSUser == false && this.router.navigate(['/efs'])){\r\n \r\n }\r\n\r\n }\r\n\r\n verifyPreviewUSer() {\r\n this.verifyPreviewvalue = true;\r\n this.appcomponentservice.setIsModelOpen(false);\r\n this.pinSidebar();\r\n return;\r\n this.chatService.verifyPreviewUser()\r\n .subscribe((response: any) => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n if (response.result == \"Success\") {\r\n this.verifyPreviewvalue = true;\r\n // if (this.appcomponentservice.isModelOpen){\r\n // this.modalService.close();\r\n // this.appcomponentservice.setIsModelOpen(false);\r\n // }\r\n this.appcomponentservice.setIsModelOpen(false);\r\n this.pinSidebar();\r\n\r\n // this.modalService.open(PreviewPopupComponent).onClosed().subscribe(res => {\r\n // this.appcomponentservice.setIsModelOpen(false);\r\n // });\r\n }\r\n else {\r\n this.verifyPreviewvalue = false;\r\n this.appcomponentservice.setIsModelOpen(false);\r\n\r\n }\r\n }),\r\n (error: any) => {\r\n console.log(\"error\", error);\r\n }\r\n }\r\n\r\n\r\n\r\n documentAnalyzerRedirect() {\r\n this.router.navigate(['/document-analyzer']);\r\n this.hidemodelSelect = false;\r\n }\r\n gendchatRedirect() {\r\n this.router.navigate(['/']);\r\n this.hidemodelSelect = true;\r\n\r\n }\r\n\r\n\r\n onLanguageChange(event: any) {\r\n // this.selectedLanguage = event.target.checked ? 'FR' : 'EN';\r\n // const selectElement = event.target as HTMLSelectElement;\r\n // this.selectedLanguage = selectElement.value;\r\n this.selectedLanguage = event.target.value;\r\n // You can use a service to share this value across components\r\n this.languageService.setCurrentLanguage(this.selectedLanguage);\r\n this.i18n.setLocale(this.selectedLanguage, EN);\r\n if (this.selectedLanguage == 'FR')\r\n this.https.get('assets/i18n/fr.json').subscribe((data: ITranslation) => this.i18n.setLocale('FR', data));\r\n else\r\n this.https.get('assets/i18n/en.json').subscribe((data: ITranslation) => this.i18n.setLocale('en', data));\r\n\r\n if (this.systemModel == \"gpt4o\") {\r\n this.selectedLanguage == \"EN\" ? this.text = \"Token Limit: 13000\\nSpeed: High\\nReasoning: High\\nTraining Upto: Oct 2023\" : this.text = \"Limite de jetons: 13000\\nVitesse: Élevée\\nRaisonnement: Élevé\\nFormation jusqu'à: Oct 2023\";\r\n }\r\n else {\r\n this.selectedLanguage == \"EN\" ? this.text = \"Token Limit: 13000\\nSpeed: High\\nReasoning: Medium\\nTraining Upto: Sep 2021\" : this.text = \"Limite de jetons: 13000\\nVitesse: Élevée\\nRaisonnement: Moyen\\nFormation jusqu'à: Sep 2021\";\r\n }\r\n }\r\n\r\n onClickSystemModel(event: any) {\r\n event.stopPropagation();\r\n }\r\n\r\n\r\n changeSystemModel() {\r\n console.log(this.systemModel)\r\n this.appcomponentservice.setSystemModel(this.systemModel);\r\n\r\n if (this.systemModel == \"gpt4o\") {\r\n this.selectedLanguage == \"EN\" ? this.text = \"Token Limit: 13000\\nSpeed: High\\nReasoning: High\\nTraining Upto: Oct 2023\" : this.text = \"Limite de jetons: 13000\\nVitesse: Élevée\\nRaisonnement: Élevé\\nFormation jusqu'à: Oct 2023\";\r\n }\r\n else {\r\n this.selectedLanguage == \"EN\" ? this.text = \"Token Limit: 13000\\nSpeed: High\\nReasoning: Medium\\nTraining Upto: Sep 2021\" : this.text = \"Limite de jetons: 13000\\nVitesse: Élevée\\nRaisonnement: Moyen\\nFormation jusqu'à: Sep 2021\";\r\n }\r\n }\r\n\r\n newTask() {\r\n if(!this.appcomponentservice.isNewTaskDisabled){\r\n this.appcomponentservice.triggerNewTask(); \r\n }\r\n }\r\n\r\n showNewTaskButton(): boolean{\r\n return this.router.url.startsWith('/deloitte-voice')\r\n }\r\n \r\n newChatchat() {\r\n \r\n this.appComponentService.setConversationId('');\r\n this.convidstore = null;\r\n if (this.isEditing && this.editIndex !== -1 && this.conversationsList[this.editIndex].label === \"\") {\r\n this.editIndex = null;\r\n this.isEditing = false;\r\n //this.getConvList();\r\n }\r\n this.newchatcount = this.newchatcount + 1;\r\n // Reset edit index and selected chat index\r\n this.editIndex = null;\r\n this.selectedChatIndex = null;\r\n this.isEditing = false;\r\n this.appcomponentservice.NewChatFunction();\r\n // Trigger the reset event\r\n this.newchatclicked = true;\r\n this.resetChatService.triggerReset();\r\n if (this.newchatcount > 0) {\r\n if (this.loadingService.usermessageService === \"\" || this.loadingService.usermessageService === undefined) {\r\n return;\r\n } else {\r\n if (this.loadingService.stopstreaming) {\r\n return;\r\n }\r\n //this.getConvList();\r\n this.loadingService.setUserMessage(\"\");\r\n }\r\n }\r\n }\r\n newChat() {\r\n \r\n this.convidstore = null;\r\n if (this.isEditing && this.editIndex !== -1 && this.conversationsList[this.editIndex].label === \"\") {\r\n this.editIndex = null;\r\n this.isEditing = false;\r\n //this.getConvList();\r\n }\r\n \r\n this.newchatcount = this.newchatcount + 1;\r\n // Reset edit index and selected chat index\r\n this.editIndex = null;\r\n this.selectedChatIndex = null;\r\n this.isEditing = false;\r\n this.appcomponentservice.NewChatFunction();\r\n // Trigger the reset event\r\n this.newchatclicked = true;\r\n this.resetChatService.triggerReset();\r\n if (this.newchatcount > 0) {\r\n if (this.loadingService.usermessageService === \"\" || this.loadingService.usermessageService === undefined) {\r\n return;\r\n } else {\r\n if (this.loadingService.stopstreaming) {\r\n return;\r\n }\r\n // this.getConvList();\r\n this.loadingService.setUserMessage(\"\");\r\n }\r\n }\r\n }\r\n newChatroute() {\r\n if (this.isEditing && this.editIndex !== -1 && this.conversationsList[this.editIndex].label === \"\") {\r\n this.editIndex = null;\r\n this.isEditing = false;\r\n //this.getConvList();\r\n }\r\n this.newchatcount = this.newchatcount + 1;\r\n // Reset edit index and selected chat index\r\n this.editIndex = null;\r\n this.selectedChatIndex = null;\r\n this.isEditing = false;\r\n this.appcomponentservice.NewChatFunction();\r\n // Trigger the reset event\r\n this.newchatclicked = true;\r\n this.resetChatService.triggerReset();\r\n if (this.newchatcount > 0) {\r\n if (this.loadingService.usermessageService === \"\" || this.loadingService.usermessageService === undefined) {\r\n } else {\r\n if (this.loadingService.stopstreaming) {\r\n return;\r\n }\r\n //this.getConvList();\r\n this.loadingService.setUserMessage(\"\");\r\n }\r\n }\r\n\r\n }\r\n\r\n \r\n\r\n getConvList() { \r\n this.agentService.updateAgentDisabledStatus();\r\n this.conversationsList = [];\r\n this.isShownconv = true;\r\n this.conHistoryService.getconversationId()\r\n .subscribe(res => {\r\n this.isShownconv = false;\r\n this.isEdit = Array(this.conversationsList.length).fill(false);\r\n this.conversationsList = res.result;\r\n // this.conversationsList = Object.keys(res.result).map(day => ({\r\n // day,\r\n // items: res.result.days[day]\r\n // }));\r\n },\r\n (error) => {\r\n this.isShownconv = false;\r\n // this.appendMessage(this.botName, this.botImg, \"left\", this.fault, this.usermessage1, \"error\", \" \");\r\n });\r\n }\r\n async chathistoryclick(convId: any, index: any) {\r\n //this.tooltipDisabled = true;\r\n // this.tooltipVisible = false;\r\n // this.hideTooltip();\r\n if (this.newchatclicked == true && this.loadingService.usermessageService) {\r\n //this.getConvList();\r\n }\r\n if (convId == this.convidstore) {\r\n return;\r\n } else {\r\n if (this.isEditing && this.editIndex !== -1 && this.conversationsList[this.editIndex].label === \"\") {\r\n return;\r\n }\r\n this.convidstore = convId;\r\n this.editIndex = -1;\r\n this.dropdownIndex = null;\r\n this.selectedChatIndex = convId;\r\n this.appComponentService.setConversationId(convId);\r\n this.newchatclicked = false;\r\n }\r\n }\r\n\r\n saveEditedlabel(convId: any, index: any, editedLabel: any): void {\r\n if (editedLabel === \"\") {\r\n return\r\n }\r\n this.isEdit[index] = false;\r\n this.editIndex = -1;\r\n\r\n if (this.showload) {\r\n this.conversationsList = [];\r\n this.hisIsLoading = true;\r\n this.showNewButton = true;\r\n }\r\n this.conHistoryService.RenameLabel(convId, editedLabel)\r\n .subscribe(res => {\r\n this.editedLabel1 = true;\r\n //this.getConvList();\r\n\r\n },\r\n (error) => {\r\n this.editedLabel1 = false;\r\n this.isShown = !this.isShown;\r\n this.hisIsLoading = false;\r\n this.showNewButton = false;\r\n });\r\n }\r\n startEdit(index: number, label: string) {\r\n this.originalLabels[index] = label;\r\n this.isEdit[index] = true;\r\n this.editIndex = index;\r\n }\r\n\r\n cancelEdit(index: number, originalLabel: any) {\r\n // this.conversationsList[index].label = this.originalLabels[index];\r\n this.isEdit[index] = false;\r\n this.editIndex = -1;\r\n // this.editedconvlabel = originalLabel; \r\n }\r\n deleteConv(convId: any) {\r\n if (this.chatConvId == convId) {\r\n this.isShown = true;\r\n }\r\n if (this.showload) {\r\n this.conversationsList = [];\r\n this.hisIsLoading = true;\r\n this.showNewButton = true;\r\n }\r\n this.conHistoryService.deleteConvId(convId)\r\n .subscribe(res => {\r\n //this.getConvList();\r\n this.isShown = false;\r\n this.dropdownIndex = null; // Close the dropup menu\r\n this.removeGlobalClickListener(); // Ensure the global click listener is removed\r\n this.newChat();\r\n },\r\n (error) => {\r\n this.isShown = false;\r\n this.hisIsLoading = false;\r\n this.showNewButton = false;\r\n });\r\n }\r\n\r\n onRename(index: number, label: any): void {\r\n this.editedconvlabel = label;\r\n this.editIndex = index;\r\n this.dropdownIndex = null;\r\n this.isEditing = true;\r\n }\r\n toggleDropdown(index: number) {\r\n this.dropdownIndex = this.dropdownIndex === index ? null : index;\r\n }\r\n agentcentral() {\r\n \r\n this.loadingService.setLoadingState(false);\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n const dropdown = document.getElementById(`dropdown-${this.dropdownIndex}`);\r\n const target = event.target as HTMLElement;\r\n\r\n // Check if the clicked target is outside\r\n if (this.dropdownIndex !== null && dropdown && !dropdown.contains(target) && !target.classList.contains('sidebar-item-dots')) {\r\n this.dropdownIndex = null;\r\n }\r\n }\r\n\r\n private addGlobalClickListener() {\r\n this.globalClickListener = this.renderer.listen('document', 'click', (event: MouseEvent) => {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.dropup')) {\r\n this.dropdownIndex = null;\r\n this.removeGlobalClickListener();\r\n }\r\n });\r\n }\r\n\r\n private removeGlobalClickListener() {\r\n if (this.globalClickListener) {\r\n this.globalClickListener();\r\n this.globalClickListener = null;\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.removeGlobalClickListener();\r\n }\r\n options: TooltipOptions = {\r\n tooltipInvokeType: 'hover',\r\n tooltipPosition: 'right-top',\r\n tooltipIndent: 35,\r\n tooltipIsOutsideClick: false,\r\n tooltipHasBeak: true,\r\n tooltipIsDisabled: false,\r\n tooltipIsInverse: false,\r\n tooltipIsDynamic: false,\r\n tooltipCustomClass: 'tooltipclass',\r\n tooltipType: 'regular',\r\n tooltipSize: 'md',\r\n tooltipShowDelay: 0,\r\n tooltipHideDelay: 0,\r\n tooltipTheme: Themes.dark\r\n };\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Gen-D\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{lblChat}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Agent Central\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {{lblSettings}}\r\n
\r\n
\r\n {{lblUserCommunity}}\r\n
\r\n
\r\n {{lblReportBug}} \r\n
\r\n
\r\n {{lblprivacy_URL}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n   Gen-D\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { ButtonModule } from '@usitsdasdesign/dds-ng/button';\r\nimport { AccordionModule } from '@usitsdasdesign/dds-ng/accordion';\r\nimport { DatepickerModule } from '@usitsdasdesign/dds-ng/datepicker';\r\n// import ExpandableRowModule to be able to use ddsExpandableRow directive\r\nimport { ExpandableRowModule } from '@usitsdasdesign/dds-ng/shared/expandable-row';\r\n// import FilterModule to be able to use filter component\r\nimport { FilterModule } from '@usitsdasdesign/dds-ng/filter';\r\n// import SortByModule to be able to use sort pipe\r\nimport { SortByModule } from '@usitsdasdesign/dds-ng/shared/sort-by';\r\n// import HighlightModule to be able to use highlight pipe\r\n// import FocusHandlerModule to be able to use focus directive\r\n\r\nimport { VerticalTabsModule } from '@usitsdasdesign/dds-ng/vertical-tabs';\r\nimport { FocusHandlerModule } from '@usitsdasdesign/dds-ng/core/focus-handler';\r\nimport { InputModule } from '@usitsdasdesign/dds-ng/input';\r\nimport { SelectModule } from '@usitsdasdesign/dds-ng/select';\r\nimport { CardModule } from '@usitsdasdesign/dds-ng/cards';\r\nimport { ProfileModule } from '@usitsdasdesign/dds-ng/profile';\r\nimport { HeaderModule } from '@usitsdasdesign/dds-ng/header';\r\nimport { ModalModule } from '@usitsdasdesign/dds-ng/modal';\r\nimport { ResizeHandlerModule } from '@usitsdasdesign/dds-ng/shared/resize-handler';\r\nimport { UploaderModule } from '@usitsdasdesign/dds-ng/uploader';\r\nimport { CheckboxModule } from '@usitsdasdesign/dds-ng/checkbox';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { TabsModule } from '@usitsdasdesign/dds-ng/tabs';\r\nimport { TextareaModule } from '@usitsdasdesign/dds-ng/textarea';\r\nimport { TooltipModule } from '@usitsdasdesign/dds-ng/tooltip';\r\nimport { ChatService } from './Services/chat.service';\r\nimport { SharingmessageService } from './Services/sharingmessage.service';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { I18nModule } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { WizardModule } from '@usitsdasdesign/dds-ng/wizard';\r\nimport { LogLevel, IPublicClientApplication, PublicClientApplication, BrowserCacheLocation, InteractionType } from '@azure/msal-browser';\r\nimport {\r\n MsalGuard, MsalInterceptor, MsalBroadcastService, MsalInterceptorConfiguration, MsalModule, MsalService,\r\n MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalGuardConfiguration, MsalRedirectComponent, ProtectedResourceScopes\r\n} from '@azure/msal-angular';\r\nimport { msalConfig, loginRequest, protectedResources } from '../auth-config';\r\nimport { ClipboardModule } from 'ngx-clipboard';\r\nimport { DragdropfileDirective } from './Directives/dragdropfile.directive';\r\nimport { ErrorComponent } from './error/error.component';\r\nimport { ToastModule } from '@usitsdasdesign/dds-ng/toast';\r\nimport { DropdownModule } from '@usitsdasdesign/dds-ng/dropdown';\r\nimport { FeedbackLikeComponent } from './feedback-like/feedback-like.component';\r\nimport { FeedbackDisLikeComponent } from './feedback-dis-like/feedback-dis-like.component';\r\nimport { MarkdownModule } from 'ngx-markdown';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { SystemsettingsComponent } from './systemsettings/systemsettings.component';\r\nimport { DocumentAnalyzerComponent } from './document-analyzer/document-analyzer.component';\r\nimport { TagsModule } from '@usitsdasdesign/dds-ng/tags';\r\nimport { PreviewPopupComponent } from './preview-popup/preview-popup.component';\r\nimport { WhatsnewComponent } from './whatsnew/whatsnew.component';\r\nimport { AgentCentralComponent } from './agent-central/agent-central.component';\r\nimport { RecentAgentsComponent } from \"./recent-agents/recent-agents.component\";\r\nimport { EfsComponent } from './efs/efs.component';\r\nimport { DeloitteVoiceComponent } from './deloitte-voice/deloitte-voice.component';\r\nimport { DeloitteVoiceFlowComponent } from './deloitte-voice/deloitte-voice-flow/deloitte-voice-flow.component';\r\nimport { DeloitteVoiceCreateComponent } from './deloitte-voice/deloitte-voice-create/deloitte-voice-create.component';\r\nimport { DeloitteVoiceReviseComponent } from './deloitte-voice/deloitte-voice-revise/deloitte-voice-revise.component';\r\nimport { SelectDropdownComponent } from './componenets/select-dropdown/select-dropdown.component';\r\nimport { FileUploadComponent } from './componenets/file-upload/file-upload.component';\r\nimport { FileDownloadCardComponent } from './componenets/file-download-card/file-download-card.component';\r\nimport { DeloitteVoiceProcessingComponent } from './deloitte-voice/componenets/deloitte-voice-processing/deloitte-voice-processing.component';\r\nimport { DeloitteVoiceCompletedComponent } from './deloitte-voice/componenets/deloitte-voice-completed/deloitte-voice-completed.component';\r\nimport { DeloitteVoiceErrorComponent } from './deloitte-voice/componenets/deloitte-voice-error/deloitte-voice-error.component';\r\nimport { FileDisplayComponent } from './componenets/file-display/file-display.component';\r\n\r\n\r\nconst isIE = window.navigator.userAgent.indexOf(\"MSIE \") > -1 || window.navigator.userAgent.indexOf(\"Trident/\") > -1; // Remove this line to use Angular Universal\r\n\r\nexport function loggerCallback(logLevel: LogLevel, message: string) {\r\n console.log(\"message\", message);\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication(msalConfig);\r\n}\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map | null>();\r\n protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);\r\n protectedResourceMap.set(protectedResources.apiDBot.endpoint, [\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.apiDBot.scopes.write]\r\n },\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.apiDBot.scopes.write]\r\n },\r\n {\r\n httpMethod: 'GET',\r\n scopes: [...protectedResources.apiDBot.scopes.write]\r\n },\r\n {\r\n httpMethod: 'DELETE',\r\n scopes: [...protectedResources.apiDBot.scopes.write]\r\n },\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.apiDBot.scopes.write]\r\n },\r\n ]);\r\n protectedResourceMap.set(protectedResources.searchSummaryDocument.endpoint, [\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.searchSummaryDocument.scopes.write]\r\n }\r\n ]);\r\n protectedResourceMap.set(protectedResources.orange.endpoint,[\r\n {\r\n httpMethod: 'POST', \r\n scopes: [...protectedResources.orange.scopes.write]\r\n }\r\n ]);\r\n protectedResourceMap.set(protectedResources.verifyuser.endpoint,[\r\n {\r\n httpMethod: 'POST', \r\n scopes: [...protectedResources.verifyuser.scopes.write]\r\n }\r\n ]);\r\n protectedResourceMap.set(protectedResources.uploadDocument.endpoint,[\r\n {\r\n httpMethod: 'POST', \r\n scopes: [...protectedResources.uploadDocument.scopes.write] \r\n }\r\n ]);\r\n protectedResourceMap.set(protectedResources.processUploadedDocument.endpoint, [\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.processUploadedDocument.scopes.read]\r\n }\r\n ]);\r\n protectedResourceMap.set(protectedResources.resetUploadedDocument.endpoint, [\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.resetUploadedDocument.scopes.read]\r\n }\r\n ]);\r\n protectedResourceMap.set(protectedResources.conversationHistory.endpoint, [\r\n {\r\n httpMethod: 'POST',\r\n scopes: [...protectedResources.conversationHistory.scopes.write]\r\n },\r\n {\r\n httpMethod: 'DELETE',\r\n scopes: [...protectedResources.conversationHistory.scopes.write]\r\n }\r\n ]);\r\n return {\r\n interactionType:InteractionType.Redirect,\r\n protectedResourceMap,\r\n };\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: loginRequest\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n DocumentAnalyzerComponent,\r\n DragdropfileDirective,\r\n ErrorComponent ,\r\n FeedbackLikeComponent,\r\n FeedbackDisLikeComponent,\r\n HomeComponent,\r\n SystemsettingsComponent,\r\n PreviewPopupComponent,\r\n WhatsnewComponent,\r\n AgentCentralComponent,\r\n RecentAgentsComponent,\r\n EfsComponent,\r\n RecentAgentsComponent,\r\n DeloitteVoiceComponent,\r\n DeloitteVoiceCreateComponent,\r\n DeloitteVoiceFlowComponent,\r\n DeloitteVoiceReviseComponent,\r\n DeloitteVoiceProcessingComponent,\r\n DeloitteVoiceErrorComponent,\r\n DeloitteVoiceCompletedComponent,\r\n SelectDropdownComponent,\r\n FileUploadComponent,\r\n FileDownloadCardComponent,\r\n FileDisplayComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n FormsModule,\r\n CheckboxModule,\r\n AccordionModule,\r\n ButtonModule,\r\n ExpandableRowModule,\r\n FilterModule,\r\n SortByModule,\r\n FocusHandlerModule,\r\n DatepickerModule,\r\n InputModule,\r\n SelectModule,\r\n CardModule,\r\n ProfileModule,\r\n HeaderModule,\r\n TooltipModule,\r\n ModalModule,\r\n ResizeHandlerModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n TabsModule,\r\n TextareaModule,\r\n UploaderModule,\r\n HttpClientModule,\r\n MsalModule,\r\n ClipboardModule,\r\n I18nModule,\r\n WizardModule,\r\n VerticalTabsModule,\r\n ToastModule,\r\n DropdownModule,\r\n MarkdownModule.forRoot(),\r\n TagsModule \r\n],\r\n \r\n providers: [ChatService, SharingmessageService,AppComponent,\r\n \r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService\r\n ],\r\n bootstrap: [AppComponent,MsalRedirectComponent], \r\n })\r\nexport class AppModule { }","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-file-display',\r\n templateUrl: './file-display.component.html',\r\n styleUrls: ['./file-display.component.css']\r\n})\r\nexport class FileDisplayComponent {\r\n @Input() files: File[] = [];\r\n @Output() fileRemoved = new EventEmitter();\r\n\r\n removeFile(file: File): void {\r\n this.fileRemoved.emit(file);\r\n }\r\n}\r\n","
0\" class=\"file-output-container\">\r\n
\r\n {{ file.name }}\r\n \"Remove\r\n
\r\n
\r\n ","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n \r\n@Component({\r\n selector: 'app-file-download-card',\r\n templateUrl: './file-download-card.component.html',\r\n styleUrls: ['./file-download-card.component.css']\r\n})\r\nexport class FileDownloadCardComponent {\r\n @Input() isDisabled: boolean = false;\r\n @Input() fileName: string = '';\r\n @Output() fileClicked = new EventEmitter();\r\n \r\n onFileClick(event: MouseEvent) {\r\n // Prevent click from bubbling up to parent elements\r\n event.stopPropagation();\r\n if (!this.isDisabled) {\r\n this.fileClicked.emit(this.fileName);\r\n }\r\n }\r\n}","
\r\n
\r\n \r\n {{ fileName }}\r\n \r\n
\r\n
","import { Component, Input, Output, EventEmitter, forwardRef, ViewChild, ElementRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { I18nService } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => FileUploadComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class FileUploadComponent implements ControlValueAccessor {\r\n\r\n private destroy = new Subject();\r\n\r\n constructor(private i18n: I18nService) {}\r\n\r\n @Input() fileLimit: number = 1;\r\n @Input() maxFileSize: number = 1;\r\n @Input() acceptedFileTypes: string[] = ['pdf', 'docx', 'txt'];\r\n @Output() filesUploaded = new EventEmitter();\r\n\r\n files: File[] = [];\r\n dragOver: boolean = false;\r\n errorMessage: string = '';\r\n lblDragHere: string;\r\n lblUploadDocOne: string;\r\n lblUploadDocMultiple: string;\r\n lblSupportedFiles: string;\r\n acceptedFileTypesString : string;\r\n\r\n private onChange!: (files: File[]) => void;\r\n private onTouched!: () => void;\r\n\r\n @ViewChild('fileInput') fileInput!: ElementRef;\r\n\r\n onFilesAdded(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.files) {\r\n this.validateFiles(Array.from(input.files));\r\n }\r\n }\r\n\r\n onDragOver(event: DragEvent) {\r\n event.preventDefault();\r\n this.dragOver = true;\r\n }\r\n\r\n onDragLeave() {\r\n this.dragOver = false;\r\n this.errorMessage = '';\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblDragHere = \"Glissez ici ou cliquez pour télécharger\";\r\n this.lblUploadDocOne = `Vous pouvez télécharger un document d'une taille maximale de ${this.maxFileSize} Mo.`;\r\n this.lblUploadDocMultiple = `Vous pouvez télécharger jusqu'à ${this.fileLimit} documents ou un total de ${this.maxFileSize} Mo.`;\r\n this.lblSupportedFiles = `Format de fichier pris en charge: ${this.acceptedFileTypes.join(', ').toUpperCase()}`;\r\n break;\r\n \r\n default:\r\n this.lblDragHere = \"Drag Here or click to upload\";\r\n this.lblUploadDocOne = `You can upload a document up to ${this.maxFileSize} MB in size.`;\r\n this.lblUploadDocMultiple = `You can upload up to ${this.fileLimit} documents up to ${this.maxFileSize} MB in size.`;\r\n this.lblSupportedFiles = `Supported file format: ${this.acceptedFileTypes.join(', ').toUpperCase()}`;\r\n break;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.manageLocale();\r\n this.updateAcceptedFileTypesString();\r\n }\r\n\r\n ngOnChanges(): void {\r\n this.updateAcceptedFileTypesString();\r\n }\r\n\r\n updateAcceptedFileTypesString(): void {\r\n this.acceptedFileTypesString = this.acceptedFileTypes.map(ext => `.${ext.trim()}`).join(',');\r\n }\r\n\r\n onDrop(event: DragEvent) {\r\n event.preventDefault();\r\n this.dragOver = false;\r\n if (event.dataTransfer?.files) {\r\n this.validateFiles(Array.from(event.dataTransfer.files));\r\n }\r\n }\r\n\r\n validateFiles(files: File[]) {\r\n const validFiles: File[] = [];\r\n const currentFileCount = this.files.length;\r\n\r\n for (const file of files) {\r\n if (this.validateFileSize(file) && this.validateFileType(file)) {\r\n validFiles.push(file);\r\n }\r\n }\r\n\r\n if (currentFileCount + validFiles.length > this.fileLimit) {\r\n this.errorMessage = `You can upload a maximum of ${this.fileLimit} files.`;\r\n return;\r\n }\r\n\r\n this.files = [...this.files, ...validFiles];\r\n if (this.files.length > 0 && validFiles.length > 0) {\r\n this.errorMessage = '';\r\n }\r\n this.filesUploaded.emit(this.files);\r\n this.onChange(this.files);\r\n }\r\n\r\n validateFileSize(file: File): boolean {\r\n const sizeInMB = file.size / 1024 / 1024;\r\n if (sizeInMB > this.maxFileSize) {\r\n this.errorMessage = `File size of ${file.name} exceeds the limit of ${this.maxFileSize}MB.`;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n validateFileType(file: File): boolean {\r\n const fileExtension = file.name.split('.').pop()?.toLowerCase() ?? '';\r\n return this.acceptedFileTypes.includes(fileExtension);\r\n }\r\n\r\n writeValue(files: File[]): void {\r\n this.files = files || [];\r\n if (!this.files.length) {\r\n this.errorMessage = '';\r\n }\r\n }\r\n\r\n registerOnChange(fn: (files: File[]) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {}\r\n\r\n clearFiles() {\r\n this.files = [];\r\n this.onChange(this.files);\r\n this.filesUploaded.emit(this.files);\r\n this.errorMessage = '';\r\n }\r\n}\r\n","\r\n\r\n
\r\n\"Upload\r\n{{lblDragHere}}\r\n

\r\n {{ fileLimit === 1 ? lblUploadDocOne : lblUploadDocMultiple }}\r\n \r\n

\r\n

{{lblSupportedFiles}}

\r\n

{{ errorMessage }}

\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, forwardRef, HostListener, Output, ViewChild, ElementRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { LocalizedText } from 'src/app/model/agent.model';\r\nimport { I18nService } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n\r\n \r\nexport interface DropdownOption {\r\n label: LocalizedText;\r\n value: any;\r\n disabled?: boolean;\r\n}\r\n \r\n@Component({\r\n selector: 'app-select-dropdown',\r\n templateUrl: './select-dropdown.component.html',\r\n styleUrls: ['./select-dropdown.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectDropdownComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SelectDropdownComponent implements ControlValueAccessor, OnInit {\r\n @Input() placeholder: string = 'Select an option';\r\n @Input() disabled: boolean = false;\r\n @Input() options: DropdownOption[] = [];\r\n language: string = 'en';\r\n @Output() valueChange: EventEmitter = new EventEmitter(); \r\n private destroy = new Subject(); \r\n @ViewChild('dropdownContainer') dropdownContainer!: ElementRef;\r\n\r\n \r\n private _value: any = null;\r\n isOpen: boolean = false;\r\n selectedOption: DropdownOption | null = null;\r\n \r\n // Callbacks for the ControlValueAccessor\r\n private onChange: (value: any) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n \r\n ngOnInit() {\r\n // Initialize selectedOption based on the existing value\r\n this.selectedOption = this.options.find(opt => opt.value === this._value) || null;\r\n this.manageLocale();\r\n }\r\n\r\n constructor(private i18n: I18nService){}\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.language = 'fr'\r\n break;\r\n default:\r\n this.language = 'en'\r\n break;\r\n }\r\n });\r\n } \r\n\r\n writeValue(value: any): void {\r\n this._value = value;\r\n this.selectedOption = this.options.find(opt => opt.value === this._value) || null;\r\n }\r\n \r\n registerOnChange(fn: (value: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n toggleDropdown(): void {\r\n if (!this.disabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n \r\n selectOption(option: DropdownOption): void {\r\n if (option.disabled) {\r\n return;\r\n }\r\n \r\n this.selectedOption = option;\r\n this._value = option.value;\r\n this.onChange(this._value); // Notify Angular of the change\r\n this.valueChange.emit(this._value); // Emit the new value to the parent\r\n this.onTouched(); // Mark as touched\r\n this.isOpen = false; // Close the dropdown when an option is selected\r\n }\r\n \r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent): void {\r\n if (!this.dropdownContainer.nativeElement.contains(event.target)) {\r\n this.isOpen = false;\r\n }\r\n }\r\n \r\n}","
\r\n
\r\n {{ selectedOption?.label[language] || placeholder }}\r\n \r\n
\r\n \r\n @if (isOpen) {\r\n
\r\n @for (option of options; track option.value) {\r\n \r\n {{ option.label[language] }}\r\n
\r\n }\r\n
\r\n }\r\n ","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { DeloitteVoiceService } from 'src/app/Services/deloitte-voice.service';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-deloitte-voice-completed',\r\n templateUrl: './deloitte-voice-completed.component.html',\r\n styleUrls: ['./deloitte-voice-completed.component.css']\r\n})\r\nexport class DeloitteVoiceCompletedComponent {\r\n @Input() outputFileName!: string;\r\n @Input() lblFileReadyToDownload!: string;\r\n\r\n constructor(\r\n private documentUploadService: DeloitteVoiceService,\r\n ) {}\r\n onFileClick(fileName: string) {\r\n this.documentUploadService.downloadFile(fileName).subscribe((response: Blob) => {\r\n const blob = new Blob([response], { type: response.type });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n }, error => {\r\n console.error('Download error:', error);\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n {{ lblFileReadyToDownload }}\r\n
","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-deloitte-voice-error',\r\n templateUrl: './deloitte-voice-error.component.html',\r\n styleUrls: ['./deloitte-voice-error.component.css'],\r\n standalone: false\r\n})\r\nexport class DeloitteVoiceErrorComponent {\r\n @Input() lblErrorHeader!: string;\r\n @Input() lblErrorDetailsPart1!: string;\r\n @Input() lblErorrDetailsTeamsChannel!: string;\r\n @Input() lblErrorDetailsPart2!: string;\r\n @Input() lblErrorDetailsHere!: string;\r\n @Input() lblErrorDetailsPart3!: string;\r\n @Input() teamsChannelUrl!: string;\r\n @Input() serviceNowLink!: string;\r\n @Input() lblGoBack!: string;\r\n\r\n @Output() goBackEvent = new EventEmitter();\r\n\r\n goBack(): void {\r\n this.goBackEvent.emit(); // Emit the event\r\n }\r\n}\r\n","
\r\n
\r\n \"Error\r\n
\r\n {{ lblErrorHeader }}\r\n \r\n {{ lblErrorDetailsPart1 }}\r\n {{ lblErorrDetailsTeamsChannel }}\r\n {{ lblErrorDetailsPart2 }}\r\n {{ lblErrorDetailsHere }}\r\n {{ lblErrorDetailsPart3 }}\r\n \r\n
\r\n \r\n
\r\n
\r\n ","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-deloitte-voice-processing',\r\n templateUrl: './deloitte-voice-processing.component.html',\r\n styleUrls: ['./deloitte-voice-processing.component.css'],\r\n standalone: false\r\n})\r\nexport class DeloitteVoiceProcessingComponent {\r\n @Input() contentFormat!: string;\r\n @Input() inputFileName!: string;\r\n @Input() lblContentBeingRevised!: string;\r\n}","
\r\n \r\n {{ lblContentBeingRevised }}\r\n
\r\n ","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-deloitte-voice-create',\r\n templateUrl: './deloitte-voice-create.component.html',\r\n styleUrl: './deloitte-voice-create.component.css'\r\n})\r\nexport class DeloitteVoiceCreateComponent {\r\n\r\n}\r\n","

deloitte-voice-create works!

\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { I18nService } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { FlowOption } from 'src/app/model/agent.model';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LoadingService } from 'src/app/Services/LoadingService';\r\nimport { AppComponentService } from 'src/app/Services/appcomponentservice';\r\n\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n\r\n\r\n@Component({\r\n selector: 'app-deloitte-voice-flow',\r\n templateUrl: './deloitte-voice-flow.component.html',\r\n styleUrl: './deloitte-voice-flow.component.css'\r\n})\r\nexport class DeloitteVoiceFlowComponent implements OnInit {\r\n \r\n private destroy = new Subject(); \r\n language: string = 'en'\r\n lblNameGreeting: string;\r\n lblHelpGreeting: string; \r\n lblDescription: string;\r\n ComingSoontext: string = \"Coming Soon!\"\r\n flowOptions: FlowOption[] = [\r\n {\r\n title: {\r\n en: 'Create from scratch',\r\n fr: 'Créer à partir de zéro'\r\n },\r\n description: {\r\n en: 'Generate high-quality content based on your input, ensuring adherence to Deloitte\\'s content style guide.',\r\n fr: 'Générez du contenu de haute qualité en fonction de votre saisie, en veillant à respecter le guide stylistique de Deloitte.'\r\n },\r\n type: 'create',\r\n disabled: true\r\n },\r\n {\r\n title: {\r\n en: 'Revise drafted content',\r\n fr: 'Réviser le contenu rédigé'\r\n },\r\n description: {\r\n en: \"I'm your content curator, equipped with the latest company policies and style guides to help you refine existing content.\",\r\n fr: \"Je suis votre curateur de contenu, équipé des dernières politiques et guides stylistiques de l'entreprise pour vous aider à affiner le contenu existant.\"\r\n },\r\n type: 'revise',\r\n disabled: false\r\n }\r\n ];\r\n displayName: string;\r\n\r\n constructor(private router: Router,\r\n private i18n: I18nService,\r\n public loadingService: LoadingService,\r\n public appComponentService: AppComponentService, \r\n private https: HttpClient) {}\r\n\r\n \r\n ngOnInit(): void {\r\n this.manageLocale();\r\n this.getProfile();\r\n this.loadingService.setLoadingState(false);\r\n this.appComponentService.enableNewTaskButton();\r\n this.appComponentService.setIsNewChatVisible(false); \r\n }\r\n\r\n\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.language = 'fr'\r\n this.lblNameGreeting = \"Bonjour\";\r\n this.ComingSoontext = \"Prochainement!\"\r\n this.lblDescription = \"C'est parti ! Veuillez choisir le type de tâche sur laquelle vous souhaitez travailler…\"\r\n break;\r\n default:\r\n this.language = 'en'\r\n this.ComingSoontext = \"Coming Soon!\"\r\n this.lblNameGreeting = \"Hi\";\r\n this.lblDescription = \"Let's get started! Please choose the type of task you'd like to work on...\"\r\n break;\r\n }\r\n });\r\n } \r\n\r\n selectFlow(option: FlowOption) {\r\n if(!option.disabled){\r\n this.router.navigate([`/deloitte-voice/${option.type}`]);\r\n }\r\n }\r\n\r\n // getProfile() {\r\n // this.userService.profile$\r\n // .subscribe((profile: UserProfile) => {\r\n // this.displayName = profile.givenName;\r\n // })\r\n // }\r\n\r\n getProfile() {\r\n this.https.get(GRAPH_ENDPOINT)\r\n .subscribe((profile: any) => {\r\n this.displayName = profile.givenName;\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \"Rocket\"\r\n {{lblNameGreeting}}, {{displayName}}!\r\n
\r\n
{{lblDescription}}
\r\n
\r\n
\r\n
\r\n

{{ option.title[this.language] }}

\r\n

{{ option.description[this.language] }}

\r\n
\r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { DropdownOption } from 'src/app/componenets/select-dropdown/select-dropdown.component';\r\nimport { DeloitteVoiceStage } from '../deloitte-voice-stage.enum';\r\nimport { TaskStatus as DeloitteVoiceTaskStatus } from \"../task-status.enum\";\r\nimport { AppComponentService } from 'src/app/Services/appcomponentservice';\r\nimport { Subject, Observable, Subscription, takeUntil, switchMap, interval, takeWhile, tap, catchError, throwError } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { I18nService } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { LoadingService } from 'src/app/Services/LoadingService';\r\nimport { DeloitteVoiceFileTrackerResponseDto, DeloitteVoiceReviseRequest, DeloitteVoiceReviseResponse, DeloitteVoiceService } from 'src/app/Services/deloitte-voice.service';\r\n \r\n@Component({\r\n selector: 'app-deloitte-voice-revise',\r\n templateUrl: './deloitte-voice-revise.component.html',\r\n styleUrls: ['./deloitte-voice-revise.component.css']\r\n})\r\nexport class DeloitteVoiceReviseComponent implements OnInit, OnDestroy {\r\n dropdown: DropdownOption[] = [\r\n {label: {en: \"Manual input\", fr: \"Saisie manuelle\"}, value: \"M\"},\r\n {label: {en: \"File upload\", fr: \"Téléchargement de fichier\"}, value: \"F\"}\r\n ];\r\n private destroy = new Subject();\r\n form: FormGroup;\r\n uploadedFile: File | null = null;\r\n contentFormat: string = \"M\"; \r\n currentStage: DeloitteVoiceStage = DeloitteVoiceStage.STARTED;\r\n deloitteVoiceStage: typeof DeloitteVoiceStage = DeloitteVoiceStage;\r\n newTaskSubscription: Subscription;\r\n inputFileName: string;\r\n outputFileName: string;\r\n lblToolTips: string;\r\n lblToolTipsDesc: string;\r\n lblContentFormat: string;\r\n lblContentFormatDesc: string;\r\n lblContentRevision: string;\r\n lblContentRevisionDesc: string;\r\n lblAdditionalInstructions: string;\r\n lblAdditionalInstructionsDesc: string;\r\n lblStartProcessing: string;\r\n lblReset: string;\r\n lblContentBeingRevised: string;\r\n lblFileReadyToDownload: string;\r\n lblEnterContentHere: string;\r\n lblEnterAdditionalInstructions: string;\r\n lblErrorHeader: string;\r\n lblErrorDetailsPart1: string;\r\n lblErrorDetailsPart2: string;\r\n lblErrorDetailsPart3: string;\r\n lblErorrDetailsTeamsChannel: string;\r\n lblErorrDetailsHere: string;\r\n lblGoBack: string;\r\n private teamsChannelUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921';\r\n private serviceNowLink: string = \"https://deloittecan.service-now.com/mysupport?id=sc_cat_item&sys_id=3f1dd0320a0a0b99000a53f7604a2ef9&topic=null\"\r\n // Polling \r\n private pollingSubscription: Subscription;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private router: Router,\r\n public appComponentService: AppComponentService,\r\n private deloitteVoiceService: DeloitteVoiceService,\r\n public loadingService: LoadingService,\r\n private i18n: I18nService\r\n ) {\r\n this.form = this.fb.group({\r\n contentFormat: [this.contentFormat, Validators.required],\r\n files: [[]],\r\n manualInput: ['', [Validators.required, Validators.maxLength(3000000)]],\r\n additionalInstructions: ['', [Validators.maxLength(3000000)]]\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.newTaskSubscription.unsubscribe();\r\n this.stopPolling();\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblToolTips = \"Conseils sur les outils:\";\r\n this.lblToolTipsDesc = \"Toutes les directives de marque de l'entreprise sont déjà intégrées à Deloitte Voice. Il vous suffit de fournir votre texte, et l'outil l'ajustera pour assurer sa conformité. Utilisez le champ optionnel d'instructions supplémentaires pour préciser des directives non couvertes par les normes de l'entreprise (ex. : ton et voix, mots-clés à utiliser ou à éviter, contexte additionnel du texte fourni, etc.).\";\r\n this.lblContentFormat = \"Format du contenu\";\r\n this.lblContentFormatDesc = \"Veuillez choisir le format pour télécharger votre contenu.\";\r\n this.lblContentRevision = \"Saisie du contenu pour révision\";\r\n this.lblContentRevisionDesc = \"Veuillez entrer ou coller le contenu à réviser.\";\r\n this.lblAdditionalInstructions = \"Instructions supplémentaires facultatives\";\r\n this.lblAdditionalInstructionsDesc = \"Fournissez toutes instructions supplémentaires qui pourraient aider à clarifier vos exigences.\";\r\n this.lblStartProcessing = \"Commencer le traitement\";\r\n this.lblReset = \"Réinitialiser\";\r\n this.lblContentBeingRevised = \"Votre contenu est en cours de révision. Cela peut prendre jusqu'à 15 minutes. Une fois terminé, un lien de téléchargement de fichier vous sera fourni, vous permettant de récupérer le contenu généré conforme au guide de style de l'entreprise. Merci de votre patience.\";\r\n this.lblFileReadyToDownload = \"Votre fichier est prêt à être téléchargé ! Merci de votre patience. Cliquez sur la carte du fichier ci-dessus pour télécharger votre document révisé.\";\r\n this.lblEnterContentHere = \"Entrez le contenu ici...\";\r\n this.lblEnterAdditionalInstructions = \"Entrez les instructions supplémentaires ice...\"\r\n this.lblErrorHeader = \"Oups ! Quelque chose a mal tourné.\";\r\n this.lblErrorDetailsPart1 = \"Veuillez réessayer en cliquant sur le bouton « Retour ». Si le problème persiste, rendez-vous sur la \";\r\n this.lblErorrDetailsTeamsChannel = \"communauté des utilisateurs Gen-D\";\r\n this.lblErrorDetailsPart2 = \" pour signaler le problème et soumettre un rapport de bug \";\r\n this.lblErorrDetailsHere = \"ici\";\r\n this.lblErrorDetailsPart3 = \". Notre équipe s'en occupera dès que possible.\";\r\n this.lblGoBack = \"Retour\";\r\n break;\r\n \r\n default:\r\n this.lblToolTips = \"Tool Tips:\";\r\n this.lblToolTipsDesc = \"All company branding guidelines are already built into Deloitte Voice. Simply provide your copy, and the tool will align and revise it for compliance. Use the optional additional instructional input field to provide further instructions not covered by standard company guidelines (e.g., tone and voice, keywords to use or avoid, additional context about the copy provided, etc.).\";\r\n this.lblContentFormat = \"Content Format\";\r\n this.lblContentFormatDesc = \"Please choose the format for uploading your content.\";\r\n this.lblContentRevision = \"Content Input for Revision\";\r\n this.lblContentRevisionDesc = \"Please enter or paste the content that needs to be revised.\";\r\n this.lblAdditionalInstructions = \"Optional Additional Instructions\";\r\n this.lblAdditionalInstructionsDesc = \"Provide any extra instructions that may help clarify your requirements.\";\r\n this.lblStartProcessing = \"Start Processing\";\r\n this.lblReset = \"Reset\";\r\n this.lblContentBeingRevised = \"Your content is being revised. This can take up to 15 minutes. Once finished, a file download link will be provided, where you can retrieve the generated content adhering to the company's style guide. Thank you for your patience.\";\r\n this.lblFileReadyToDownload = \"Your file is ready for download! Thank you for your patience. Please click the file card above to download your revised document.\";\r\n this.lblEnterContentHere = \"Enter the content here...\";\r\n this.lblEnterAdditionalInstructions = \"Enter the additional instructions here...\";\r\n this.lblErrorHeader = \"Oops! Something went wrong.\";\r\n this.lblErrorDetailsPart1 = \"Please try again by clicking the 'Go Back' button. If the issue persists, visit the \";\r\n this.lblErorrDetailsTeamsChannel = \"Gen-D User Community\";\r\n this.lblErrorDetailsPart2 = \" to post about the problem and submit a bug report \";\r\n this.lblErorrDetailsHere = \"here\";\r\n this.lblErrorDetailsPart3 = \". Our team will address it as soon as possible.\";\r\n this.lblGoBack = \"Go Back\";\r\n break;\r\n }\r\n });\r\n }\r\n \r\n ngOnInit(): void {\r\n this.manageLocale();\r\n this.newTaskSubscription = this.appComponentService.newTask$.subscribe(()=>{\r\n this.router.navigate([`/deloitte-voice`]);\r\n })\r\n }\r\n \r\n onFormatChange(value: any) {\r\n this.contentFormat = value; \r\n }\r\n \r\n onFileChange(file: File | null) {\r\n this.uploadedFile = file; \r\n }\r\n \r\n\r\n \r\n reset() {\r\n this.form.reset();\r\n this.uploadedFile = null;\r\n this.contentFormat = 'M'; \r\n this.form.patchValue({ contentFormat: 'M' , files: [] }); \r\n }\r\n\r\n removeFile(file: File) {\r\n const currentFiles = this.form.get('files')?.value || [];\r\n const updatedFiles = currentFiles.filter((f: File) => f.name !== file.name);\r\n this.form.patchValue({ files: updatedFiles }); \r\n this.uploadedFile = updatedFiles.length ? updatedFiles[0] : null; \r\n}\r\n \r\n clearFiles() {\r\n this.form.patchValue({ files: [] }); \r\n }\r\n\r\n isFormValid(): boolean {\r\n const contentFormat = this.form.get('contentFormat')?.value;\r\n const files = this.form.get('files')?.value || [];\r\n const manualInput = this.form.get('manualInput')?.value || '';\r\n const additionalInstructionsControl = this.form.get('additionalInstructions');\r\n const isAdditionalInstructionsValid = additionalInstructionsControl?.valid ?? true;\r\n\r\n if (contentFormat === 'F') {\r\n return files.length > 0 && isAdditionalInstructionsValid;\r\n } else {\r\n return manualInput.trim().length > 0 && isAdditionalInstructionsValid;\r\n }\r\n }\r\n \r\n process(): void {\r\n this.outputFileName = \"\";\r\n this.appComponentService.disableNewTaskButton();\r\n this.currentStage = DeloitteVoiceStage.PROCESSING;\r\n this.loadingService.setLoadingState(true);\r\n \r\n if (this.contentFormat === 'F') {\r\n this.uploadDocument().subscribe({\r\n next: response => {\r\n this.processDocuments().subscribe({\r\n next: processResponse => {\r\n this.postProcessSuccess(processResponse);\r\n },\r\n error: error => {\r\n this.handleProcessError(error);\r\n }\r\n });\r\n },\r\n error: error => {\r\n this.handleProcessError(error);\r\n }\r\n });\r\n } else {\r\n this.processDocuments().subscribe({\r\n next: response => {\r\n this.postProcessSuccess(response);\r\n },\r\n error: error => {\r\n this.handleProcessError(error);\r\n }\r\n });\r\n }\r\n }\r\n \r\n private uploadDocument(): Observable {\r\n const files: File[] = this.form.get('files')?.value || [];\r\n const formData = new FormData();\r\n files.forEach(item => {\r\n formData.append('files', item, item.name);\r\n });\r\n formData.append('container', \"\");\r\n formData.append('folderName', \"\");\r\n this.inputFileName = files[0]?.name;\r\n \r\n return this.deloitteVoiceService.uploadDocument(formData);\r\n }\r\n \r\n \r\n private processDocuments(): Observable {\r\n const { manualInput = \"\", contentFormat = \"\", additionalInstructions ='', files = [] } = this.form.value\r\n const fileName = files?.[0]?.name ?? \"\";\r\n const request: DeloitteVoiceReviseRequest = {\r\n contentFormat: contentFormat,\r\n contentInput: manualInput,\r\n additionalInstructions: additionalInstructions,\r\n fileName\r\n };\r\n \r\n return this.deloitteVoiceService.reviseDocument(request);\r\n }\r\n\r\n\r\n private postProcessSuccess(response: DeloitteVoiceReviseResponse): void {\r\n this.startPolling(response.taskId); \r\n }\r\n \r\n private postPolling(fileName: string): void {\r\n this.loadingService.setLoadingState(false);\r\n this.appComponentService.enableNewTaskButton();\r\n this.outputFileName = fileName;\r\n this.currentStage = DeloitteVoiceStage.COMPLETED;\r\n }\r\n \r\n private handleProcessError(error: any): void {\r\n this.currentStage = DeloitteVoiceStage.FAILED;\r\n this.loadingService.setLoadingState(false);\r\n this.appComponentService.enableNewTaskButton();\r\n\r\n }\r\n\r\n goBack():void{\r\n this.currentStage = DeloitteVoiceStage.STARTED;\r\n }\r\n\r\n openUserCommunityLink(): void {\r\n window.open(this.teamsChannelUrl, '_blank');\r\n }\r\n\r\n startPolling(taskId: string): void {\r\n this.pollingSubscription = interval(30000) // Poll every 30 seconds\r\n .pipe(\r\n switchMap(() =>\r\n this.deloitteVoiceService.getStatus(taskId).pipe(\r\n catchError(error => {\r\n this.stopPolling();\r\n this.handleProcessError(error);\r\n return throwError(error);\r\n })\r\n )\r\n ),\r\n tap((response : DeloitteVoiceFileTrackerResponseDto) => {\r\n if (response.status === DeloitteVoiceTaskStatus.Completed) {\r\n this.postPolling(response.outputFileName);\r\n this.stopPolling();\r\n } else if (response.status === DeloitteVoiceTaskStatus.Failed) {\r\n this.handleProcessError(response);\r\n this.stopPolling();\r\n }\r\n }),\r\n takeWhile((response : DeloitteVoiceFileTrackerResponseDto) => \r\n response.status === DeloitteVoiceTaskStatus.Pending || \r\n response.status === DeloitteVoiceTaskStatus.InProgress)\r\n )\r\n .subscribe(\r\n response => {\r\n },\r\n error => {\r\n console.error('Polling error in subscribe:', error);\r\n }\r\n );\r\n }\r\n \r\n stopPolling(): void {\r\n if (this.pollingSubscription) {\r\n this.pollingSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n}","
\r\n
\r\n
\r\n
\r\n

{{lblToolTips}}

\r\n

{{lblToolTipsDesc}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{lblContentFormat}}

\r\n

{{lblContentFormatDesc}}

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

{{lblContentRevision}}

\r\n

{{lblContentRevisionDesc}}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{lblAdditionalInstructions}}

\r\n

{{lblAdditionalInstructionsDesc}}

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n ","export enum DeloitteVoiceStage {\r\n STARTED = 'Started',\r\n SUBMITTED = 'Submitted',\r\n PROCESSING = 'Processing',\r\n COMPLETED = 'Completed',\r\n FAILED = 'Failed'\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { RecentAgentsService } from '../Services/recent-agent.service';\r\n\r\n@Component({\r\n selector: 'app-deloitte-voice',\r\n templateUrl: './deloitte-voice.component.html',\r\n styleUrl: './deloitte-voice.component.css'\r\n})\r\nexport class DeloitteVoiceComponent implements OnInit {\r\n agentPath = \"/deloitte-voice\";\r\n constructor(\r\n private recentAgentsService: RecentAgentsService,\r\n public appComponentService: AppComponentService, \r\n\r\n ) {\r\n }\r\n \r\n ngOnInit(): void {\r\n this.appComponentService.enableNewTaskButton();\r\n this.appComponentService.setIsNewChatVisible(false); \r\n this.recentAgentsService.addRecentPath(this.agentPath); \r\n }\r\n}\r\n","
\r\n \r\n
\r\n","\r\nexport enum TaskStatus {\r\n Pending = 'Pending',\r\n InProgress = 'InProgress',\r\n Completed = 'Completed',\r\n Failed = 'Failed'\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, Renderer2, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject, Subject, Subscription, concatMap, delay, of, takeUntil } from 'rxjs';\r\nimport { ChatService } from '../Services/chat.service';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { LoadingService } from '../Services/LoadingService';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { DocumentUploadService } from '../Services/document-upload.service';\r\nimport { FeedbackDisLikeComponent } from '../feedback-dis-like/feedback-dis-like.component';\r\nimport { FeedbackLikeComponent } from '../feedback-like/feedback-like.component';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Themes, Size, WidthState, ButtonKind } from '@usitsdasdesign/dds-ng/shared';\r\nimport { ButtonOptions } from \"@usitsdasdesign/dds-ng/button\";\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { ResetBlobStorageService } from '../Services/reset-blob-storage.service';\r\nimport { ResetChatService } from '../Services/reset-chat.service';\r\nimport { RecentAgentsService } from '../Services/recent-agent.service';\r\nimport { Router } from '@angular/router';\r\n\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n@Component({\r\n selector: 'app-doc-analyzer',\r\n templateUrl: './document-analyzer.component.html',\r\n styleUrls: ['./document-analyzer.component.css']\r\n})\r\nexport class DocumentAnalyzerComponent {\r\n // New props\r\n @ViewChild('fileInput') fileInput : ElementRef;\r\n @ViewChild('fileInput2') fileInput2 : ElementRef;\r\n private resetSubscription: Subscription;\r\n // Conditional\r\n isProcessingCompleted: boolean =false; \r\n selectedFiles: File[] = [];\r\n isUploadLimitExceeded: boolean = false; // Flag for upload limit exceeded\r\n MAX_FILE_SIZE = 50 * 1024 * 1024; // Max total file size in bytes (50 MB)\r\n MAX_FILE_COUNT = 5; // Max number of files\r\n cancelButtonKind = ButtonKind.secondaryLoud;\r\n primaryButtonTheme = Themes.green;\r\n primaryButtonKind = ButtonKind.primaryLoud;\r\n allowedTypes: string[] = [\r\n 'application/pdf',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/plain',\r\n 'application/pptx',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n 'text/VTT','text/vtt',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.ms-excel',\r\n 'text/html'\r\n];\r\nprivate teamsChannelUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921'; \r\nprivate destroy = new Subject();\r\nlblNameGreeting: string;\r\nlblHelpGreeting: string;\r\nlblHiName: string;\r\ntxtUploadDocs: string;\r\nlblDragHere: string;\r\ntxtYouCanUpload: string;\r\nlblStartProcessing: string;\r\ntxtReachedUploadLimit: string;\r\nbtnStartProcessing: string;\r\nbtnReset: string;\r\nlblAskFirstQues: string;\r\n\r\n userName: any;\r\n feedbacklike: any;\r\n userQuery: string;\r\n isCopy: boolean;\r\n userResponse: string;\r\n isStreaming: boolean;\r\n dragDropElement: any;\r\n dragDropEnabled: any;\r\n FileNames: string[] = [];\r\n errorCount: any;\r\n gotSummaryResp: boolean;\r\n disableProcessing: boolean = false;\r\nerrorMesg: any;\r\n references: any;\r\n docerrorMessage: boolean = false;\r\n ErrorMessage: string;\r\ndocStatusMessage: any;\r\n StatusMessage: any;\r\n StatusMessageUpload: string;\r\n StatusMessageProcess: string;\r\n StatusMessagePrepare: string;\r\n loadmsgprc: any;\r\n loadmsgEmb: any;\r\n loadmsgSumry: any;\r\n resetDisabled: boolean = true;\r\n displayName: any;\r\n lblSorrySomething2: string;\r\n lblSorrySomething1: string;\r\n lblUserCommunity: string;\r\n copyIndex: any;\r\n typesToUpload: string;\r\n constructor(private modalService: ModalService, private chatService: ChatService, public loadingService: LoadingService,\r\n public appcomponentservice: AppComponentService, private render: Renderer2, private el: ElementRef, private cdr: ChangeDetectorRef,\r\n private https: HttpClient, private DocumentUploadService: DocumentUploadService, private i18n: I18nService,\r\n private ResetBlobStorageService:ResetBlobStorageService, private resetChatService:ResetChatService,\r\n private recentAgentsService: RecentAgentsService,\r\n private router: Router,) {\r\n \r\n }\r\n\r\n isLoading = false;\r\n disableSendButton = true;\r\n isDefaultText: boolean;\r\n userPrompt: string;\r\n systemModel = \"GPT 3.5\"\r\n systemMessage: string;\r\n responseStyle: string;\r\n guid = uuidv4()\r\n userId: string;\r\n regenerateFlag = false;\r\n userQueryLength;\r\n likedIndex: number = -1;\r\n dislikedIndex: number = -1;\r\n isLiked: boolean = false;\r\n isDisLiked: boolean = false;\r\n likedIndices: Set = new Set();\r\n dislikedIndices: Set = new Set();\r\n disabledLikeIndices = new Set();\r\n disabledDisLikeIndices = new Set();\r\n @ViewChild('chatContainer') chatContainer!: ElementRef;\r\n @ViewChild('dynamicTextarea') dynamicTextarea!: ElementRef;\r\n textareaRef: any;\r\n messages = new BehaviorSubject<{ user: string; text: string }[]>([\r\n ]);\r\n messages$ = this.messages.asObservable();\r\n private defaultHeight: number = 50.5;\r\n\r\n autoScrollEnabled: boolean = true;\r\n lastScrollTop: number = 0; \r\n showScrollToBottom: boolean = false;\r\n\r\n // New methods for file upload\r\n\r\n onDragOver(event: DragEvent){\r\n event.preventDefault();\r\n }\r\n onFileSelected(event: any) {\r\n const validFiles = this.getValidFiles(event.target.files);\r\n if (validFiles) {\r\n const nonDuplicateFiles = validFiles.filter((file: File) => \r\n !this.selectedFiles.some((selectedFile: File) => selectedFile.name === file.name)\r\n );\r\n if (nonDuplicateFiles.length > 0) {\r\n this.appendValidFiles(this.selectedFiles, nonDuplicateFiles);\r\n this.updateUploadLimitFlag();\r\n this.gotSummaryResp = false;\r\n }\r\n }\r\n if(this.selectedFiles.length > 0){\r\n this.isDefaultText = false;\r\n this.disableProcessing = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); \r\n this.messages.next([]);\r\n this.resetDisabled = true;}\r\n }\r\n onFileDropped(event: DragEvent){\r\n event.preventDefault();\r\n const validFiles = this.getValidFiles(event.dataTransfer.files)\r\n if (validFiles) {\r\n const nonDuplicateFiles = validFiles.filter((file: File) => \r\n !this.selectedFiles.some((selectedFile: File) => selectedFile.name === file.name)\r\n );\r\n if (nonDuplicateFiles.length > 0) {\r\n this.appendValidFiles(this.selectedFiles, nonDuplicateFiles);\r\n this.updateUploadLimitFlag();\r\n this.gotSummaryResp = false;\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n } if(this.selectedFiles.length > 0){\r\n\r\n this.isDefaultText = false;\r\n this.disableProcessing = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); \r\n this.messages.next([]);\r\n this.resetDisabled = true;}\r\n\r\n }\r\n\r\n removeFile(file: File): void {\r\n this.selectedFiles = this.selectedFiles.filter(f => f !== file); \r\n this.updateUploadLimitFlag();\r\n }\r\n\r\n triggerFileUpload(){\r\n this.fileInput.nativeElement.click();\r\n }\r\n triggerFileUpload2(){\r\n this.fileInput2.nativeElement.click();\r\n }\r\n\r\n onScroll(event: Event): void {\r\n const container = this.chatContainer.nativeElement;\r\n const currentScrollTop = container.scrollTop;\r\n const scrollHeight = container.scrollHeight;\r\n const clientHeight = container.clientHeight;\r\n\r\n // Check if user is scrolling down or up\r\n if (currentScrollTop < this.lastScrollTop) {\r\n this.autoScrollEnabled = false;\r\n } \r\n\r\n // Determine if the user is at the bottom\r\n const atBottom = scrollHeight - clientHeight <= currentScrollTop + 15;\r\n\r\n // Update the flag to show/hide the Scroll to Bottom button\r\n this.showScrollToBottom = !atBottom;\r\n\r\n if (atBottom) {\r\n this.autoScrollEnabled = true;\r\n }\r\n\r\n // Update the last scroll position\r\n this.lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; // For negative scrolling\r\n}\r\n\r\nOnScrollToBottom(){\r\n setTimeout(() => {\r\n this.autoScrollEnabled = true;\r\n }, 590);\r\n this.scrollToBottomSlow();\r\n }\r\n\r\n scrollToBottomSlow() {\r\n const container = this.chatContainer.nativeElement;\r\n const target = container.scrollHeight; // Total scrollable height\r\n const start = container.scrollTop; // Current scroll position\r\n const distance = target - start; // Distance to scroll\r\n const duration = 600; // Duration of the scroll in milliseconds\r\n\r\n let startTime: number | null = null;\r\n\r\n const animation = (currentTime: number) => {\r\n if (startTime === null) startTime = currentTime; // Initialize start time\r\n const timeElapsed = currentTime - startTime; // Time elapsed since start\r\n const progress = Math.min(timeElapsed / duration, 1); // Normalize progress (0 to 1)\r\n\r\n // Easing function for smooth scrolling\r\n const ease = easeInOutQuad(progress);\r\n container.scrollTop = start + distance * ease; // Update scroll position\r\n\r\n if (timeElapsed < duration) {\r\n requestAnimationFrame(animation); // Continue the animation\r\n } else {\r\n this.showScrollToBottom = false; // Hide the button after scrolling\r\n }\r\n };\r\n\r\n requestAnimationFrame(animation); // Start the animation\r\n\r\n // Easing function: ease in-out\r\n function easeInOutQuad(t: number) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n }\r\n}\r\n openFeedbackDislikeModel(index, botRes) {\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.isDisLiked = true;\r\n this.dislikedIndex = index;\r\n this.likedIndex = -1;\r\n this.dislikedIndices.add(index);\r\n this.likedIndices.delete(index);\r\n this.disabledDisLikeIndices.add(index);\r\n var FeedbackDisLike = {\r\n convid: this.guid,\r\n userid: this.userId,\r\n name: this.userName,\r\n userQuery: this.userQuery,\r\n apiResponse: botRes,\r\n gptModel: this.appcomponentservice.systemModel,\r\n isDocAnalyzerActive: true,\r\n document_Name: this.selectedFiles.map(file => file.name), \r\n };\r\n this.modalService.open(FeedbackDisLikeComponent, {lstoptionDislike: FeedbackDisLike, }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n });\r\n }\r\n\r\n doLiked(index: number): boolean {\r\n return this.likedIndices.has(index);\r\n }\r\n doDisliked(index: number): boolean {\r\n return this.dislikedIndices.has(index);\r\n }\r\n\r\n openFeedbackLikeModel(index: number, botRes: string){\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.isLiked = true;\r\n this.likedIndex = index;\r\n this.dislikedIndex = -1;\r\n this.likedIndices.add(index);\r\n this.dislikedIndices.delete(index);\r\n this.disabledLikeIndices.add(index);\r\n var FeedbackLike = {\r\n convid: this.guid,\r\n userid: this.userId,\r\n name: this.userName,\r\n userQuery: this.userQuery,\r\n apiResponse: botRes,\r\n gptModel: this.appcomponentservice.systemModel,\r\n isDocAnalyzerActive: true,\r\n document_Name: this.selectedFiles.map(file => file.name), \r\n };\r\n\r\n this.modalService.open(FeedbackLikeComponent, { lstlikeOptions: FeedbackLike }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n // const likeButton = document.querySelector('.likeButton');\r\n // if (likeButton) {\r\n // likeButton.classList.add('green-like');\r\n // }\r\n // const dislikeButton = document.querySelector('.dislikeButton');\r\n // Check if the likeButton element exists\r\n // if (dislikeButton) {\r\n // // Remove the likeButton element from the DOM\r\n // dislikeButton.remove();\r\n // }\r\n });\r\n }\r\n resetDocuments(){\r\n this.resetVariables();\r\n this.autoScrollEnabled = true;\r\n this.isProcessingCompleted = false;\r\n \r\n if(!this.gotSummaryResp){\r\n\r\n }\r\n else{\r\n if(this.selectedFiles.length != 0){\r\n this.ResetBlobStorageService.resetUploadedDocument().subscribe(\r\n (response: any) => {\r\n },\r\n (error : any) => {\r\n console.log('File upload failed.', error);\r\n });\r\n } }\r\n this.selectedFiles = [];\r\n this.resetTextareaHeight(); \r\n this.disableSendButton = true;\r\n this.isDefaultText = true;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); \r\n this.messages.next([]);\r\n this.resetDisabled = true;\r\n this.docerrorMessage = false;\r\n this.userPrompt = \"\";\r\n this.fileInput.nativeElement.value = '';\r\n this.isProcessingCompleted = false;\r\n}\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblNameGreeting = \"Bonjour\";\r\n this.lblHelpGreeting = \"Comment puis-je vous aider?\";\r\n this.lblHiName = \"Bonjour, Pradeep\";\r\n this.txtUploadDocs = \"Téléchargez des documents et je les analyserai pour vous !\";\r\n this.lblDragHere = \"Glissez ici ou cliquez pour télécharger\";\r\n this.txtYouCanUpload = \"Vous pouvez télécharger jusqu'à 5 documents ou un total de 50 Mo\";\r\n this.typesToUpload = \"Format de fichier pris en charge : PDF, DOCX, PPTX, TXT, XLSX, VTT, HTML\";\r\n this.lblStartProcessing = \"Téléchargez vos fichiers et cliquez sur 'Démarrer le traitement'. Nous nous occuperons du prétraitement en arrière-plan pendant environ 3 à 5 minutes. Une fois terminé, le champ de saisie du chat sera déverrouillé et vous pourrez commencer à discuter avec votre document.\";\r\n this.ErrorMessage = \"Désolé, une erreur s'est produite. Veuillez réessayer ultérieurement.\"; //Gen-D Translations above 1 and below 3 too\r\n this.StatusMessageUpload = \"Téléchargement des fichiers!\";\r\n this.StatusMessageProcess = \"Traitement des fichiers, veuillez patienter!\"; \r\n this.StatusMessagePrepare = \"Préparation du résumé, veuillez patienter!\";\r\n this.txtReachedUploadLimit = \"Vous avez atteint votre limite de téléchargement.\";\r\n this.btnStartProcessing = \"Commencer le traitement\";\r\n this.btnReset = \"Réinitialiser\";\r\n this.lblAskFirstQues = \"Posez votre première question sur vos fichiers traités pour commencer\";\r\n this.lblSorrySomething1 = \"Oops, quelque chose ne va pas. Veuillez réessayer. Si le problème persiste, veuillez vous rendre sur la \";\r\n this.lblSorrySomething2 = \" et publier votre problème dans le canal 'Discussion'. Notre équipe s'occupera de ce problème dès que possible.\";\r\n this.lblUserCommunity = \"Communauté d'utilisateurs\";\r\n break;\r\n \r\n default:\r\n this.lblNameGreeting = \"Hi\";\r\n this.lblHelpGreeting = \"How can I help you today?\";\r\n this.lblHiName = \"Hi, Pradeep!\";\r\n this.txtUploadDocs = \"Upload Documents and I’ll analyze it for you!\";\r\n this.lblDragHere = \"Drag Here or click to upload \";\r\n this.txtYouCanUpload = \"You can upload up to 5 documents or 50MB total in size\";\r\n this.typesToUpload = \"Supported file format: PDF, DOCX, PPTX, TXT, XLSX, VTT, HTML\";\r\n this.lblStartProcessing = \"Upload your files and click 'Start Processing'. We'll handle the preprocessing in the background for about 3-5 minutes. Once it's done, the chat input field will be unlocked, and you can start chatting with your document.\";\r\n this.ErrorMessage = \"Sorry, something went wrong. Please try again later.\";\r\n this.StatusMessageUpload = \"Uploading the Files!\";\r\n this.StatusMessageProcess = 'Processing the Files, Please wait!'; \r\n this.StatusMessagePrepare = \"Preparing the Summary, Please wait!\";\r\n this.txtReachedUploadLimit = \"You have reached your upload limit.\";\r\n this.btnStartProcessing = \"Start Processing\";\r\n this.btnReset = \"Reset\";\r\n this.lblAskFirstQues = \"Ask your first question about your Processed files to start\";\r\n this.lblSorrySomething1 = \"Oops, something is wrong. Please try again. If the issue persists, please head to the \";\r\n this.lblSorrySomething2 = \" and post your issue in the 'Discussion' channel. Our team will attend the issue asap.\";\r\n this.lblUserCommunity = \"User Community\";\r\n\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.recentAgentsService.addRecentPath(this.router.url);\r\n this.appcomponentservice.setIsNewChatVisible(true);\r\n this.manageLocale();\r\n this.isDefaultText = true;\r\n this.isProcessingCompleted = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); // Set loading to true\r\n // Subscribe to the service and call the function when the event is triggered\r\n this.resetSubscription = this.resetChatService.reset$.subscribe(() => {\r\n this.resetVariables();\r\n });\r\n this.appcomponentservice.triggerNewChatFunction$.subscribe(() => {\r\n this.newChat();\r\n });\r\n this.getProfile();\r\n }\r\n \r\n ngOnDestroy() {\r\n // Unsubscribe to prevent memory leaks\r\n if (this.resetSubscription) {\r\n this.resetSubscription.unsubscribe();\r\n this.loadingService.setLoadingState(false); \r\n }\r\n }\r\n resetVariables() {\r\n this.likedIndex = -1;\r\n this.dislikedIndex = -1;\r\n this.isLiked = false;\r\n this.isDisLiked = false;\r\n this.likedIndices = new Set();\r\n this.dislikedIndices = new Set();\r\n this.disabledLikeIndices = new Set();\r\n this.disabledDisLikeIndices = new Set();\r\n }\r\n defaultPrompt(msg) {\r\n this.userPrompt = msg;\r\n }\r\n\r\n async startProcessing(): Promise {\r\n this.resetDisabled = true;\r\n this.docStatusMessage = true;\r\n this.StatusMessage = this.StatusMessageUpload; \r\n this.disableProcessing = true;\r\n this.isStreaming = true;\r\n if(this.autoScrollEnabled){\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(true);\r\n this.loadingService.setLoadingState(true); \r\n this.FileNames = [];\r\n const formData = new FormData(); \r\n if(this.selectedFiles.length > 0){\r\n this.selectedFiles.forEach(item => {\r\n console.log(\"this.item selected\",item);\r\n formData.append('files', item, item.name);\r\n\r\n })\r\n } \r\n \r\n this.DocumentUploadService.uploadDocument(formData)\r\n .subscribe(\r\n (response :any) => {\r\n this.StatusMessage = this.StatusMessageProcess; \r\n this.DocumentUploadService.ProcessDocuments() \r\n .subscribe( \r\n async (response :any) => { \r\n this.StatusMessage = this.StatusMessagePrepare;\r\n this.DocumentUploadService.GenerateEmbeddings()\r\n .subscribe(\r\n (response :any) => { \r\n this.DocumentUploadService.ShowSummary()\r\n .subscribe(\r\n async (response :any) => {\r\n console.log(\"response.data\",response.data)\r\n this.gotSummaryResp = true;\r\n\r\n // if(response.data != [] ) {}\r\n\r\n // Track the files that were processed\r\n let processedFiles = new Set();\r\n\r\n // Process the response data\r\n if (response.data.length != 0) { \r\n let i = 0;\r\n while (i < response.data.length) {\r\n const item = response.data[i];\r\n const title = item.title;\r\n const summary = item.summary;\r\n this.docStatusMessage = false;\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n\r\n // Simulate streaming for the processed file\r\n await this.simulateStreaming(\"**\" + title + \"**\" + \" : \" + summary + '\\n \\n').then(() => {\r\n this.cdr.detectChanges();\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n });\r\n processedFiles.add(title);\r\n i++;\r\n }\r\n }\r\n if (this.selectedFiles.length ==0) {\r\n this.docStatusMessage = false;\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n await this.simulateStreaming(\"I apologize for the inconvenience, but I am unable to process the documents at the moment.\").then(() => { //this.customizeMarkdownTag();\r\n this.cdr.detectChanges();\r\n if(this.autoScrollEnabled){\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n });\r\n }\r\n // For files not included in the response\r\n let j = 0;\r\n while (j < this.selectedFiles.length) {\r\n const fileItem = this.selectedFiles[j];\r\n if (!processedFiles.has(fileItem.name)) {\r\n this.docStatusMessage = false;\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n await this.simulateStreaming(\"**\" + fileItem.name + \"** : I apologize for the inconvenience, but I am unable to process this file. \\n \\n\").then(() => {\r\n this.cdr.detectChanges();\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n });\r\n }\r\n j++;\r\n }\r\n this.gotSummaryResp = true;\r\n this.isProcessingCompleted = true;\r\n this.disableSendButton = false;\r\n this.resetDisabled = false;\r\n \r\n },\r\n (error : any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount+1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n this.docerrorMessage = true;\r\n this.resetDisabled = false;\r\n this.isProcessingCompleted = true;\r\n\r\n });\r\n },\r\n (error : any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount+1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n this.docerrorMessage = true;\r\n this.resetDisabled = false;\r\n this.isProcessingCompleted = true;\r\n\r\n }); \r\n },\r\n (error : any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount+1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); \r\n this.docerrorMessage = true;\r\n this.resetDisabled = false;\r\n this.isProcessingCompleted = true;\r\n\r\n });\r\n },\r\n \r\n (error: any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount+1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); \r\n this.docerrorMessage = true; \r\n this.isProcessingCompleted = true;\r\n \r\n }, \r\n ); \r\n }\r\n\r\n\r\n async sendMessage(regenerateFlag : boolean, responsetext : any) {\r\n var tempPrompt = this.userPrompt.trim();\r\n this.userQuery = this.userPrompt.trim();\r\n\r\n if (tempPrompt == undefined || tempPrompt.trim() == \"\") {\r\n return;\r\n }\r\n else{\r\n this.resetDisabled = true;\r\n this.isStreaming = true;\r\n this.disableSendButton = true;\r\n this.isDefaultText = false;\r\n this.userPrompt = \"\";\r\n // this.adjustTextareaHeight(this.textareaRef);\r\n this.resetTextareaHeight(); \r\n if(this.autoScrollEnabled){\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(true);\r\n this.loadingService.setLoadingState(true); // Set loading to true\r\n this.messages.next([...this.messages.value, { user: 'user', text: tempPrompt }]);\r\n // this.inputMessage = text + this.userQueryLength;;\r\n }\r\n \r\n this.chatService.getDocumentResult(tempPrompt.trim()).subscribe(async (response) => {\r\n console.log(\"response.content\",response);\r\n let fullMessage = response.output; \r\n if (response.references && response.references.length > 0) {\r\n this.references = response.references.map((reference: any) => {return ` ${reference}`; });\r\n fullMessage += \"\\n\\n **References:** \\n\\n\" + this.references.join('
');\r\n\r\n }\r\n this.loadingService.setLoadingState(false); // Set loading to false \r\n await this.simulateStreaming(fullMessage).then(() => {\r\n // this.customizeMarkdownTag();\r\n this.cdr.detectChanges(); // Ensure DOM updates are detected (optional)\r\n if(this.autoScrollEnabled){\r\n this.scrollToBottom();\r\n }\r\n this.disableSendButton = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n this.resetDisabled = false;\r\n })\r\n })\r\n}\r\n async simulateStreaming(message: string): Promise {\r\n return new Promise((resolve) => {\r\n const chunkSize = 10; // Adjust chunk size as needed\r\n let index = 0;\r\n\r\n const addChunk = () => {\r\n if (index < message.length) {\r\n const isBotMessage =\r\n this.messages.value.length > 0 &&\r\n this.messages.value[this.messages.value.length - 1].user === 'bot';\r\n\r\n this.messages.next(\r\n isBotMessage\r\n ? [\r\n ...this.messages.value.slice(0, -1),\r\n {\r\n ...this.messages.value[this.messages.value.length - 1],\r\n text:\r\n this.messages.value[this.messages.value.length - 1].text +\r\n message.substring(index, index + chunkSize),\r\n },\r\n ]\r\n : [\r\n ...this.messages.value,\r\n {\r\n user: 'bot',\r\n text: message.substring(index, index + chunkSize),\r\n },\r\n ]\r\n );\r\n\r\n // Call `ensurePreTagHeaders` after updating the message only once\r\n setTimeout(() => this.ensurePreTagHeaders(), 0);\r\n\r\n\r\n if(this.autoScrollEnabled){\r\n this.scrollToBottom();\r\n }\r\n\r\n index += chunkSize;\r\n\r\n of(null)\r\n .pipe(\r\n delay(50), // Adjust delay as needed\r\n concatMap(() => of(null))\r\n )\r\n .subscribe(addChunk);\r\n } else {\r\n resolve();\r\n }\r\n };\r\n\r\n addChunk();\r\n });\r\n }\r\n\r\n setUserMessage(text: string) {\r\n this.userResponse = text;\r\n }\r\n \r\n openUserCommunityLink(): void {\r\n window.open(this.teamsChannelUrl, '_blank');\r\n }\r\n ensurePreTagHeaders(): void {\r\n if(this.autoScrollEnabled){\r\n this.scrollToBottom();\r\n }\r\n console.log(\"ensurePreTagHeaders called\");\r\n\r\n const preTags = this.el.nativeElement.querySelectorAll('pre');\r\n\r\n preTags.forEach((preTag: HTMLElement) => {\r\n // Only add the header if it doesn't already exist\r\n const existingHeader = preTag.querySelector('.preTagHeader');\r\n if (!existingHeader) {\r\n const codeTag = preTag.querySelector('code');\r\n if (codeTag?.className) {\r\n const classSplit = codeTag.className.split('-');\r\n const langName =\r\n classSplit.length > 1 &&\r\n classSplit[1] &&\r\n classSplit[1] !== 'none' &&\r\n classSplit[1] !== 'undefined'\r\n ? classSplit[1]\r\n : 'Plain Text';\r\n\r\n const headerDiv = this.render.createElement('div');\r\n this.render.addClass(headerDiv, 'preTagHeader');\r\n\r\n const leftSpan = this.render.createElement('span');\r\n this.render.addClass(leftSpan, 'clsLanguage');\r\n this.render.addClass(leftSpan, 'text-left');\r\n const leftText = this.render.createText(langName);\r\n this.render.appendChild(leftSpan, leftText);\r\n\r\n const rightSpan = this.render.createElement('a');\r\n this.render.addClass(rightSpan, 'clsCopy');\r\n this.render.addClass(rightSpan, 'text-right');\r\n const icon = this.render.createElement('i');\r\n this.render.addClass(icon, 'fa');\r\n this.render.addClass(icon, 'fa-clone');\r\n this.render.appendChild(rightSpan, icon);\r\n\r\n this.render.appendChild(headerDiv, leftSpan);\r\n this.render.appendChild(headerDiv, rightSpan);\r\n\r\n this.render.insertBefore(preTag, headerDiv, codeTag);\r\n\r\n this.render.listen(rightSpan, 'click', () => this.copyCode(preTag));\r\n }\r\n }\r\n });\r\n }\r\n\r\n copyCode(preTag: HTMLElement) {\r\n // this.isCopy = true;\r\n // var codeTag = preTag.querySelector('code');\r\n // if (codeTag != null) {\r\n // const codeText = codeTag.innerText; // Extract the code text\r\n // navigator.clipboard.writeText(codeText).then(() => {\r\n // console.log('Message copied to clipboard');\r\n // }).catch(err => {\r\n // console.error('Could not copy text: ', err);\r\n // });\r\n // setTimeout(() => {\r\n // this.isCopy = false;\r\n // }, 3000);\r\n // }\r\n }\r\n\r\n\r\n copyToClipboard(text: any, index : any) {\r\n this.isCopy = true;\r\n this.copyIndex = index;\r\n\r\n // Remove all occurrences of \"**\"\r\n // let innerText = text.replace(/\\*\\*/g, '');\r\n let innerText = text.replace(/(\\*\\*|`)/g, '');\r\n\r\n // Find the position of the word \"References\"\r\n const referencesIndex = innerText.indexOf('References');\r\n if (referencesIndex !== -1) {\r\n // Split the text into two parts: before and after \"References\"\r\n const beforeReferences = innerText.substring(0, referencesIndex + 'References'.length);\r\n const afterReferences = innerText.substring(referencesIndex + 'References'.length);\r\n\r\n // Remove all
tags from the part after \"References\"\r\n const cleanedAfterReferences = afterReferences.replace(/
/g, '\\n');\r\n\r\n // Combine the two parts back together\r\n innerText = beforeReferences + cleanedAfterReferences;\r\n }\r\n\r\n \r\n navigator.clipboard.writeText(innerText).then(() => {\r\n console.log('Message copied to clipboard');\r\n }).catch(err => {\r\n console.error('Could not copy text: ', err);\r\n });\r\n setTimeout(() => {\r\n this.isCopy = false;\r\n }, 3000);\r\n }\r\n\r\n isAtBottom(container: HTMLElement): boolean {\r\n const scrollHeight = container.scrollHeight;\r\n const clientHeight = container.clientHeight;\r\n const currentScrollTop = container.scrollTop;\r\n\r\n // Check if the user is at the bottom, allowing for a small threshold (e.g., 15px)\r\n return scrollHeight - clientHeight <= currentScrollTop + 15;\r\n}\r\n\r\n adjustTextareaHeight(textarea: HTMLTextAreaElement): void {\r\n if (!textarea) return;\r\n\r\n const atBottom = this.isAtBottom(this.chatContainer.nativeElement);\r\n\r\n // Reset height to 'auto' so that the textarea can shrink\r\n textarea.style.height = 'auto';\r\n\r\n // Calculate the new height based on the content's scrollHeight\r\n const maxHeight = 100; // Max height for the textarea\r\n const newHeight = Math.min(textarea.scrollHeight + 1.5 , maxHeight); // Ensure we do not exceed the max height\r\n\r\n // Set the height to the new height\r\n textarea.style.height = `${newHeight}px`;\r\n\r\n if(atBottom){\r\n this.scrollToBottom();\r\n }\r\n }\r\n updateChatContainerHeight(messageBoxHeight: number): void {\r\n const wrapperHeight = window.innerHeight;\r\n const chatContainerHeight = wrapperHeight - messageBoxHeight - 50; // Adjusting for any extra space like margins or padding\r\n this.render.setStyle(this.chatContainer.nativeElement, 'height', `${chatContainerHeight}px`);\r\n }\r\n scrollToBottom(): void {\r\n try {\r\n setTimeout(() => {\r\n const chatContainer = this.chatContainer.nativeElement as HTMLElement;\r\n chatContainer.scrollTop = chatContainer.scrollHeight;\r\n }, 0);\r\n } catch (err) {\r\n console.error('Scroll to bottom failed:', err);\r\n }\r\n\r\n }\r\n getProfile() {\r\n this.https.get(GRAPH_ENDPOINT)\r\n .subscribe((profile: any) => {\r\n this.userName = profile.displayName;\r\n this.userId = profile.mail;\r\n this.displayName = profile.givenName;\r\n })\r\n }\r\n\r\n // Handle Enter and Shift + Enter key events\r\n // handleKeydown(event: KeyboardEvent, textarea: HTMLTextAreaElement): void {\r\n // if (event.key === 'Enter' && !event.shiftKey) {\r\n // // If Enter is pressed without Shift, call sendMessage function\r\n // if (this.disableSendButton)\r\n \r\n // this.sendMessage(false, \"\");\r\n // event.preventDefault(); // Prevent the default action of adding a newline\r\n // return;\r\n // }\r\n // // If Shift + Enter is pressed, allow the textarea to insert a new line\r\n // }\r\n\r\n handleKeydown(event: KeyboardEvent, textarea: HTMLTextAreaElement): void {\r\n if (event.key === 'Enter' && !event.shiftKey) {\r\n // If Enter is pressed without Shift, call sendMessage function\r\n if (this.userPrompt.trim() === \"\" || this.disableSendButton) {\r\n event.preventDefault(); // Prevent the default action of adding a newline\r\n return;\r\n }\r\n this.sendMessage(false, \"\");\r\n event.preventDefault(); // Prevent the default action of adding a newline\r\n }\r\n \r\n }\r\n\r\n newChat() {\r\n if(this.appcomponentservice.isSendButtonDisabled || this.loadingService.isLoading){\r\n return;\r\n }\r\n this.resetDocuments();\r\n \r\n this.isProcessingCompleted = false;\r\n \r\n }\r\n\r\n private isValidFile(file: File): boolean {\r\n return (file.type === \"\") ? file.name.includes('.vtt') : this.allowedTypes.includes(file.type);\r\n }\r\n\r\n // Method to get valid files from a FileList\r\n getValidFiles(fileList: FileList): File[] {\r\n const filesArray = Array.from(fileList); // Convert FileList to an array\r\n return filesArray.filter(file => this.isValidFile(file));\r\n }\r\n \r\n // Method to append valid files from one array to another\r\n appendValidFiles(toArray: File[], fromArray: File[]) {\r\n const validFiles = fromArray.filter(file => this.isValidFile(file));\r\n \r\n for (let i = 0; i < validFiles.length; i++) {\r\n toArray.push(validFiles[i]);\r\n }\r\n }\r\n\r\n private updateUploadLimitFlag(): void {\r\n const totalSize = this.getTotalSelectedFilesSize();\r\n // Check if file count exceeds the maximum limit\r\n if (this.selectedFiles.length > this.MAX_FILE_COUNT || totalSize > this.MAX_FILE_SIZE) {\r\n this.isUploadLimitExceeded = true; // Set the flag if exceeded\r\n } else {\r\n this.isUploadLimitExceeded = false; // Reset the flag if within limits\r\n }\r\n }\r\n \r\n // Helper method to get the total size of already selected files\r\n getTotalSelectedFilesSize(): number {\r\n return this.selectedFiles.reduce((sum, file) => sum + file.size, 0);\r\n }\r\n\r\n ngAfterViewInit() {\r\n const textarea = this.dynamicTextarea.nativeElement;\r\n // Ensure it starts with the correct height\r\n textarea.style.height = `${this.defaultHeight}px`;\r\n }\r\n\r\n resetTextareaHeight(): void {\r\n const textarea = this.dynamicTextarea.nativeElement;\r\n if (!textarea) return;\r\n\r\n // Reset height to the default height\r\n textarea.style.height = `${this.defaultHeight}px`;\r\n }\r\n\r\n }\r\n","
\r\n
\r\n
\r\n
\r\n \r\n {{lblNameGreeting}}, {{displayName}}!\r\n
\r\n
\r\n {{lblHelpGreeting}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{lblDragHere}}\r\n
\r\n
\r\n {{txtYouCanUpload}}\r\n
\r\n
\r\n {{typesToUpload}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{lblStartProcessing}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {{ message.text }}\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n {{ message.text }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{lblSorrySomething1}} \r\n {{lblUserCommunity}}{{lblSorrySomething2}}\r\n
\r\n
\r\n {{StatusMessage}}\r\n
\r\n
\r\n
\r\n
\r\n {{ file.name }} \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n {{txtReachedUploadLimit}}\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
","import { ChangeDetectorRef, Component, ElementRef, Renderer2, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject, Subject, Subscription, concatMap, delay, of, takeUntil } from 'rxjs';\r\nimport { ChatService } from '../Services/chat.service';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { LoadingService } from '../Services/LoadingService';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { DocumentUploadService } from '../Services/document-upload.service';\r\nimport { FeedbackDisLikeComponent } from '../feedback-dis-like/feedback-dis-like.component';\r\nimport { FeedbackLikeComponent } from '../feedback-like/feedback-like.component';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Themes, Size, WidthState, ButtonKind } from '@usitsdasdesign/dds-ng/shared';\r\nimport { ButtonOptions } from \"@usitsdasdesign/dds-ng/button\";\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { ResetBlobStorageService } from '../Services/reset-blob-storage.service';\r\nimport { ResetChatService } from '../Services/reset-chat.service';\r\nimport { RecentAgentsService } from '../Services/recent-agent.service';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from '../environments/environment';\r\nimport * as moment from 'moment';\r\n\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n@Component({\r\n selector: 'app-efs',\r\n templateUrl: './efs.component.html',\r\n styleUrls: ['./efs.component.css']\r\n})\r\nexport class EfsComponent {\r\n // New props\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n @ViewChild('fileInput2') fileInput2: ElementRef;\r\n private resetSubscription: Subscription;\r\n // Conditional\r\n isProcessingCompleted: boolean = false;\r\n selectedFiles: File[] = [];\r\n isUploadLimitExceeded: boolean = false; // Flag for upload limit exceeded\r\n MAX_FILE_SIZE = 50 * 1024 * 1024; // Max total file size in bytes (50 MB)\r\n MAX_FILE_COUNT = 5; // Max number of files\r\n cancelButtonKind = ButtonKind.secondaryLoud;\r\n primaryButtonTheme = Themes.green;\r\n primaryButtonKind = ButtonKind.primaryLoud;\r\n allowedTypes: string[] = [\r\n 'application/pdf',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/plain',\r\n 'application/pptx',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n 'text/VTT', 'text/vtt',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.ms-excel',\r\n 'text/html'\r\n ];\r\n private teamsChannelUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921';\r\n private destroy = new Subject();\r\n lblNameGreeting: string;\r\n lblHelpGreeting: string;\r\n lblHiName: string;\r\n lblGenDIntro1: string;\r\n lblGenDIntro2: string;\r\n lblEFS_01: string;\r\n KB_URL: string;\r\n lblAskQuestion: string;\r\n\r\n txtUploadDocs: string;\r\n lblDragHere: string;\r\n txtYouCanUpload: string;\r\n lblStartProcessing: string;\r\n txtReachedUploadLimit: string;\r\n btnStartProcessing: string;\r\n btnReset: string;\r\n lblAskFirstQues: string;\r\n\r\n userName: any;\r\n feedbacklike: any;\r\n userQuery: string;\r\n isCopy: boolean;\r\n userResponse: string;\r\n isStreaming: boolean;\r\n dragDropElement: any;\r\n dragDropEnabled: any;\r\n FileNames: string[] = [];\r\n errorCount: any;\r\n gotSummaryResp: boolean;\r\n disableProcessing: boolean = false;\r\n errorMesg: any;\r\n references: any;\r\n docerrorMessage: boolean = false;\r\n ErrorMessage: string;\r\n docStatusMessage: any;\r\n StatusMessage: any;\r\n StatusMessageUpload: string;\r\n StatusMessageProcess: string;\r\n StatusMessagePrepare: string;\r\n loadmsgprc: any;\r\n loadmsgEmb: any;\r\n loadmsgSumry: any;\r\n resetDisabled: boolean = true;\r\n displayName: any;\r\n lblSorrySomething2: string;\r\n lblSorrySomething1: string;\r\n lblUserCommunity: string;\r\n verifyEFSvalue: boolean = true;\r\n copyIndex: any;\r\n typesToUpload: string;\r\n constructor(private modalService: ModalService, private chatService: ChatService, public loadingService: LoadingService,\r\n public appcomponentservice: AppComponentService, private render: Renderer2, private el: ElementRef, private cdr: ChangeDetectorRef,\r\n private https: HttpClient, private DocumentUploadService: DocumentUploadService, private i18n: I18nService,\r\n private ResetBlobStorageService: ResetBlobStorageService, private resetChatService: ResetChatService, private recentAgentsService: RecentAgentsService, private router: Router,\r\n private chatservice: ChatService) {\r\n\r\n }\r\n\r\n isLoading = false;\r\n disableSendButton = false;\r\n isDefaultText: boolean;\r\n userPrompt: string;\r\n systemModel = \"GPT 3.5\"\r\n systemMessage: string;\r\n responseStyle: string;\r\n guid = uuidv4()\r\n userId: string;\r\n regenerateFlag = false;\r\n userQueryLength;\r\n likedIndex: number = -1;\r\n dislikedIndex: number = -1;\r\n isLiked: boolean = false;\r\n isDisLiked: boolean = false;\r\n likedIndices: Set = new Set();\r\n dislikedIndices: Set = new Set();\r\n disabledLikeIndices = new Set();\r\n disabledDisLikeIndices = new Set();\r\n @ViewChild('chatContainer') chatContainer!: ElementRef;\r\n @ViewChild('dynamicTextarea') dynamicTextarea!: ElementRef;\r\n textareaRef: any;\r\n messages = new BehaviorSubject<{ user: string; text: string }[]>([\r\n ]);\r\n messages$ = this.messages.asObservable();\r\n private defaultHeight: number = 50.5;\r\n\r\n autoScrollEnabled: boolean = true;\r\n lastScrollTop: number = 0;\r\n showScrollToBottom: boolean = false;\r\n lblIndexLastRefreshDate: string;\r\n // New methods for file upload\r\n\r\n onDragOver(event: DragEvent) {\r\n event.preventDefault();\r\n }\r\n onFileSelected(event: any) {\r\n const validFiles = this.getValidFiles(event.target.files);\r\n if (validFiles) {\r\n const nonDuplicateFiles = validFiles.filter((file: File) =>\r\n !this.selectedFiles.some((selectedFile: File) => selectedFile.name === file.name)\r\n );\r\n if (nonDuplicateFiles.length > 0) {\r\n this.appendValidFiles(this.selectedFiles, nonDuplicateFiles);\r\n this.updateUploadLimitFlag();\r\n this.gotSummaryResp = false;\r\n }\r\n }\r\n if (this.selectedFiles.length > 0) {\r\n this.isDefaultText = false;\r\n this.disableProcessing = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.messages.next([]);\r\n this.resetDisabled = true;\r\n }\r\n }\r\n onFileDropped(event: DragEvent) {\r\n event.preventDefault();\r\n const validFiles = this.getValidFiles(event.dataTransfer.files)\r\n if (validFiles) {\r\n const nonDuplicateFiles = validFiles.filter((file: File) =>\r\n !this.selectedFiles.some((selectedFile: File) => selectedFile.name === file.name)\r\n );\r\n if (nonDuplicateFiles.length > 0) {\r\n this.appendValidFiles(this.selectedFiles, nonDuplicateFiles);\r\n this.updateUploadLimitFlag();\r\n this.gotSummaryResp = false;\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n } if (this.selectedFiles.length > 0) {\r\n\r\n this.isDefaultText = false;\r\n this.disableProcessing = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.messages.next([]);\r\n this.resetDisabled = true;\r\n }\r\n\r\n }\r\n\r\n removeFile(file: File): void {\r\n this.selectedFiles = this.selectedFiles.filter(f => f !== file);\r\n this.updateUploadLimitFlag();\r\n }\r\n\r\n triggerFileUpload() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n triggerFileUpload2() {\r\n this.fileInput2.nativeElement.click();\r\n }\r\n\r\n onScroll(event: Event): void {\r\n const container = this.chatContainer.nativeElement;\r\n const currentScrollTop = container.scrollTop;\r\n const scrollHeight = container.scrollHeight;\r\n const clientHeight = container.clientHeight;\r\n\r\n // Check if user is scrolling down or up\r\n if (currentScrollTop < this.lastScrollTop) {\r\n this.autoScrollEnabled = false;\r\n }\r\n\r\n // Determine if the user is at the bottom\r\n const atBottom = scrollHeight - clientHeight <= currentScrollTop + 15;\r\n\r\n // Update the flag to show/hide the Scroll to Bottom button\r\n this.showScrollToBottom = !atBottom;\r\n\r\n if (atBottom) {\r\n this.autoScrollEnabled = true;\r\n }\r\n\r\n // Update the last scroll position\r\n this.lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; // For negative scrolling\r\n }\r\n\r\n OnScrollToBottom() {\r\n setTimeout(() => {\r\n this.autoScrollEnabled = true;\r\n }, 590);\r\n this.scrollToBottomSlow();\r\n }\r\n\r\n scrollToBottomSlow() {\r\n const container = this.chatContainer.nativeElement;\r\n const target = container.scrollHeight; // Total scrollable height\r\n const start = container.scrollTop; // Current scroll position\r\n const distance = target - start; // Distance to scroll\r\n const duration = 600; // Duration of the scroll in milliseconds\r\n\r\n let startTime: number | null = null;\r\n\r\n const animation = (currentTime: number) => {\r\n if (startTime === null) startTime = currentTime; // Initialize start time\r\n const timeElapsed = currentTime - startTime; // Time elapsed since start\r\n const progress = Math.min(timeElapsed / duration, 1); // Normalize progress (0 to 1)\r\n\r\n // Easing function for smooth scrolling\r\n const ease = easeInOutQuad(progress);\r\n container.scrollTop = start + distance * ease; // Update scroll position\r\n\r\n if (timeElapsed < duration) {\r\n requestAnimationFrame(animation); // Continue the animation\r\n } else {\r\n this.showScrollToBottom = false; // Hide the button after scrolling\r\n }\r\n };\r\n\r\n requestAnimationFrame(animation); // Start the animation\r\n\r\n // Easing function: ease in-out\r\n function easeInOutQuad(t: number) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n }\r\n }\r\n openFeedbackDislikeModel(index, botRes) {\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.isDisLiked = true;\r\n this.dislikedIndex = index;\r\n this.likedIndex = -1;\r\n this.dislikedIndices.add(index);\r\n this.likedIndices.delete(index);\r\n this.disabledDisLikeIndices.add(index);\r\n var FeedbackDisLike = {\r\n // convid: this.guid,\r\n userid: this.userId,\r\n name: this.userName,\r\n // document_Name: this.selectedFiles.map(file => file.name),\r\n kbName: \"efs-testing\",\r\n kbid: \"KM072\",\r\n indexId: \"b2a24078-25db-4cce-a9a0-1bb30ae74381\",\r\n apiResponse: botRes,\r\n userQuery: this.userQuery,\r\n // isDocAnalyzerActive: true,\r\n isEFSActive: true,\r\n };\r\n this.modalService.open(FeedbackDisLikeComponent, { lstoptionDislike: FeedbackDisLike, }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n });\r\n }\r\n\r\n doLiked(index: number): boolean {\r\n return this.likedIndices.has(index);\r\n }\r\n doDisliked(index: number): boolean {\r\n return this.dislikedIndices.has(index);\r\n }\r\n\r\n openFeedbackLikeModel(index: number, botRes: string) {\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.isLiked = true;\r\n this.likedIndex = index;\r\n this.dislikedIndex = -1;\r\n this.likedIndices.add(index);\r\n this.dislikedIndices.delete(index);\r\n this.disabledLikeIndices.add(index);\r\n var FeedbackLike = {\r\n // convid: this.guid,\r\n userid: this.userId,\r\n name: this.userName,\r\n // document_Name: this.selectedFiles.map(file => file.name),\r\n kbName: \"efs-testing\",\r\n kbid: \"KM072\",\r\n indexId: \"b2a24078-25db-4cce-a9a0-1bb30ae74381\",\r\n apiResponse: botRes,\r\n userQuery: this.userQuery,\r\n // isDocAnalyzerActive: true,\r\n isEFSActive: true,\r\n\r\n };\r\n\r\n this.modalService.open(FeedbackLikeComponent, { lstlikeOptions: FeedbackLike }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n // const likeButton = document.querySelector('.likeButton');\r\n // if (likeButton) {\r\n // likeButton.classList.add('green-like');\r\n // }\r\n // const dislikeButton = document.querySelector('.dislikeButton');\r\n // Check if the likeButton element exists\r\n // if (dislikeButton) {\r\n // // Remove the likeButton element from the DOM\r\n // dislikeButton.remove();\r\n // }\r\n });\r\n }\r\n resetDocuments() {\r\n this.resetVariables();\r\n this.autoScrollEnabled = true;\r\n\r\n if (!this.gotSummaryResp) {\r\n\r\n }\r\n else {\r\n if (this.selectedFiles.length != 0) {\r\n this.ResetBlobStorageService.resetUploadedDocument().subscribe(\r\n (response: any) => {\r\n },\r\n (error: any) => {\r\n console.log('File upload failed.', error);\r\n });\r\n }\r\n }\r\n this.selectedFiles = [];\r\n this.resetTextareaHeight();\r\n this.disableSendButton = true;\r\n this.isDefaultText = true;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.messages.next([]);\r\n this.resetDisabled = true;\r\n this.docerrorMessage = false;\r\n this.userPrompt = \"\";\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n this.getKBChecks();\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblNameGreeting = \"Bonjour\";\r\n this.lblHelpGreeting = \"Je suis l'agent EFS, votre expert pour tout ce qui a trait à EFS. Comment puis-je vous aider aujourd'hui?\";\r\n this.lblGenDIntro1 = \"FR Gen-D is an AI tool that helps you work faster. Ask me anything - I’ll do my best to help!\";\r\n this.lblGenDIntro2 = \"Conteneur de données mis à jour: \";\r\n this.lblEFS_01 = \"2 janvier 2025\";\r\n\r\n\r\n this.KB_URL = environment.DMSKBURL; //\"https://genai.deloitte.ca/km\";\r\n this.lblAskQuestion = \"Posez moi n'importe quelle question\";\r\n\r\n\r\n this.lblHiName = \"Bonjour, Pradeep\";\r\n this.txtUploadDocs = \"Téléchargez des documents et je les analyserai pour vous !\";\r\n this.lblDragHere = \"Glissez ici ou cliquez pour télécharger\";\r\n this.txtYouCanUpload = \"Vous pouvez télécharger jusqu'à 5 documents ou un total de 50 Mo\";\r\n this.typesToUpload = \"Format de fichier pris en charge : PDF, DOCX, PPTX, TXT, XLSX, VTT, HTML\";\r\n this.lblStartProcessing = \"Téléchargez vos fichiers et cliquez sur 'Démarrer le traitement'. Nous nous occuperons du prétraitement en arrière-plan pendant environ 3 à 5 minutes. Une fois terminé, le champ de saisie du chat sera déverrouillé et vous pourrez commencer à discuter avec votre document.\";\r\n this.ErrorMessage = \"Désolé, une erreur s'est produite. Veuillez réessayer ultérieurement.\"; //Gen-D Translations above 1 and below 3 too\r\n this.StatusMessageUpload = \"Téléchargement des fichiers!\";\r\n this.StatusMessageProcess = \"Traitement des fichiers, veuillez patienter!\";\r\n this.StatusMessagePrepare = \"Préparation du résumé, veuillez patienter!\";\r\n this.txtReachedUploadLimit = \"Vous avez atteint votre limite de téléchargement.\";\r\n this.btnStartProcessing = \"Commencer le traitement\";\r\n this.btnReset = \"Réinitialiser\";\r\n this.lblAskFirstQues = \"Posez votre première question sur vos fichiers téléchargés pour commencer\";\r\n this.lblSorrySomething1 = \"Oops, quelque chose ne va pas. Veuillez réessayer. Si le problème persiste, veuillez vous rendre sur la \";\r\n this.lblSorrySomething2 = \" et publier votre problème dans le canal 'Discussion'. Notre équipe s'occupera de ce problème dès que possible.\";\r\n this.lblUserCommunity = \"Communauté d'utilisateurs\";\r\n this.lblIndexLastRefreshDate = \"récupération...\"\r\n break;\r\n\r\n default:\r\n this.lblNameGreeting = \"Hi\";\r\n this.lblHelpGreeting = \"I am EFS agent, your EFS subject matter expert. How can I help you today?\";\r\n this.lblGenDIntro1 = \"Gen-D is an AI tool that helps you work faster. Ask me anything - I’ll do my best to help!\";\r\n this.lblGenDIntro2 = \"Data bucket updated: \";\r\n this.lblEFS_01 = \"January 2nd, 2025\";\r\n this.KB_URL = environment.DMSKBURL; //\"https://genai.deloitte.ca/km\";\r\n this.lblAskQuestion = \"Ask me any question...\";\r\n\r\n\r\n\r\n\r\n this.lblHiName = \"Hi, Pradeep!\";\r\n this.txtUploadDocs = \"Upload Documents and I’ll analyze it for you!\";\r\n this.lblDragHere = \"Drag Here or click to upload \";\r\n this.txtYouCanUpload = \"You can upload up to 5 documents or 50MB total in size\";\r\n this.typesToUpload = \"Supported file format: PDF, DOCX, PPTX, TXT, XLSX, VTT, HTML\";\r\n this.lblStartProcessing = \"Upload your files and click 'Start Processing'. We'll handle the preprocessing in the background for about 3-5 minutes. Once it's done, the chat input field will be unlocked, and you can start chatting with your document.\";\r\n this.ErrorMessage = \"Sorry, something went wrong. Please try again later.\";\r\n this.StatusMessageUpload = \"Uploading the Files!\";\r\n this.StatusMessageProcess = 'Processing the Files, Please wait!';\r\n this.StatusMessagePrepare = \"Preparing the Summary, Please wait!\";\r\n this.txtReachedUploadLimit = \"You have reached your upload limit.\";\r\n this.btnStartProcessing = \"Start Processing\";\r\n this.btnReset = \"Reset\";\r\n this.lblAskFirstQues = \"Ask your first question about your uploaded files to start\";\r\n this.lblSorrySomething1 = \"Oops, something is wrong. Please try again. If the issue persists, please head to the \";\r\n this.lblSorrySomething2 = \" and post your issue in the 'Discussion' channel. Our team will attend the issue asap.\";\r\n this.lblUserCommunity = \"User Community\";\r\n this.lblIndexLastRefreshDate = \"retrieving...\"\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.recentAgentsService.addRecentPath(this.router.url);\r\n this.appcomponentservice.setIsNewChatVisible(true);\r\n // this.verifyEFSUSer();\r\n this.manageLocale();\r\n this.chatservice.verifyEFSUser().subscribe((response: any) => {\r\n if (response.result == \"Failure\") {\r\n this.router.navigate(['/error'])\r\n\r\n }\r\n else\r\n this.appcomponentservice.setIsEFSSUser(true);\r\n\r\n })\r\n this.isDefaultText = true;\r\n this.isProcessingCompleted = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); // Set loading to true\r\n // Subscribe to the service and call the function when the event is triggered\r\n this.resetSubscription = this.resetChatService.reset$.subscribe(() => {\r\n this.resetVariables();\r\n });\r\n this.appcomponentservice.triggerNewChatFunction$.subscribe(() => {\r\n this.newChat();\r\n\r\n\r\n });\r\n this.getProfile();\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n // Unsubscribe to prevent memory leaks\r\n if (this.resetSubscription) {\r\n this.resetSubscription.unsubscribe();\r\n this.loadingService.setLoadingState(false);\r\n }\r\n }\r\n resetVariables() {\r\n this.likedIndex = -1;\r\n this.dislikedIndex = -1;\r\n this.isLiked = false;\r\n this.isDisLiked = false;\r\n this.likedIndices = new Set();\r\n this.dislikedIndices = new Set();\r\n this.disabledLikeIndices = new Set();\r\n this.disabledDisLikeIndices = new Set();\r\n }\r\n defaultPrompt(msg) {\r\n this.userPrompt = msg;\r\n setTimeout(() => {\r\n this.adjustTextareaHeight(this.dynamicTextarea.nativeElement);\r\n });\r\n }\r\n\r\n\r\n\r\n async startProcessing(): Promise {\r\n this.resetDisabled = true;\r\n this.docStatusMessage = true;\r\n this.StatusMessage = this.StatusMessageUpload;\r\n this.disableProcessing = true;\r\n this.isStreaming = true;\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(true);\r\n this.loadingService.setLoadingState(true);\r\n this.FileNames = [];\r\n const formData = new FormData();\r\n if (this.selectedFiles.length > 0) {\r\n this.selectedFiles.forEach(item => {\r\n console.log(\"this.item selected\", item);\r\n formData.append('files', item, item.name);\r\n\r\n })\r\n }\r\n\r\n this.DocumentUploadService.uploadDocument(formData)\r\n .subscribe(\r\n (response: any) => {\r\n this.StatusMessage = this.StatusMessageProcess;\r\n this.DocumentUploadService.ProcessDocuments()\r\n .subscribe(\r\n async (response: any) => {\r\n this.StatusMessage = this.StatusMessagePrepare;\r\n this.DocumentUploadService.GenerateEmbeddings()\r\n .subscribe(\r\n (response: any) => {\r\n this.DocumentUploadService.ShowSummary()\r\n .subscribe(\r\n async (response: any) => {\r\n console.log(\"response.data\", response.data)\r\n this.gotSummaryResp = true;\r\n // if(response.data != [] ) {}\r\n if (response.data.length != 0) {\r\n let i = 0;\r\n while (i < response.data.length) {\r\n const item = response.data[i];\r\n const title = item.title;\r\n const summary = item.summary;\r\n this.docStatusMessage = false;\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n await this.simulateStreaming(\"**\" + title + \"**\" + \" : \" + summary + '\\n \\n').then(() => { //this.customizeMarkdownTag();\r\n this.cdr.detectChanges();\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n });\r\n i++;\r\n\r\n }\r\n }\r\n else {\r\n this.docStatusMessage = false;\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n await this.simulateStreaming(\"I apologize for the inconvenience, but I am unable to process the documents at the moment.\").then(() => { //this.customizeMarkdownTag();\r\n this.cdr.detectChanges();\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n });\r\n }\r\n this.gotSummaryResp = true;\r\n this.isProcessingCompleted = true;\r\n this.disableSendButton = false;\r\n this.resetDisabled = false;\r\n\r\n },\r\n (error: any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount + 1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n this.docerrorMessage = true;\r\n this.resetDisabled = false;\r\n this.errorMesg = true;\r\n });\r\n },\r\n (error: any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount + 1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n this.docerrorMessage = true;\r\n this.resetDisabled = false;\r\n this.errorMesg = true;\r\n });\r\n },\r\n (error: any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount + 1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.docerrorMessage = true;\r\n this.resetDisabled = false;\r\n this.errorMesg = true;\r\n });\r\n },\r\n\r\n (error: any) => {\r\n this.docStatusMessage = false;\r\n this.errorCount = this.errorCount + 1;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.docerrorMessage = true;\r\n this.errorMesg = true;\r\n },\r\n );\r\n }\r\n\r\n\r\n async sendMessage(regenerateFlag: boolean, responsetext: any) {\r\n var tempPrompt = this.userPrompt.trim();\r\n this.userQuery = this.userPrompt.trim();\r\n\r\n if (tempPrompt == undefined || tempPrompt.trim() == \"\") {\r\n return;\r\n }\r\n else {\r\n this.resetDisabled = true;\r\n this.isStreaming = true;\r\n this.disableSendButton = true;\r\n this.isDefaultText = false;\r\n this.userPrompt = \"\";\r\n // this.adjustTextareaHeight(this.textareaRef);\r\n this.resetTextareaHeight();\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.appcomponentservice.setIsSendButtonDisabled(true);\r\n this.loadingService.setLoadingState(true); // Set loading to true\r\n this.messages.next([...this.messages.value, { user: 'user', text: tempPrompt }]);\r\n // this.inputMessage = text + this.userQueryLength;;\r\n }\r\n\r\n this.chatService.getEFSData(tempPrompt.trim()).subscribe(async (response) => {\r\n console.log(\"response.content\", response);\r\n let fullMessage = response.content;\r\n // if (response.references && response.references.length > 0) {\r\n // this.references = response.references.map((reference: any) => (reference));\r\n // fullMessage += '\\n\\nReferences: ' + this.references.join(', ');\r\n // }\r\n if (response.references && response.references.length > 0) {\r\n // Map over references and create a formatted string for each reference\r\n const uniqueSources = new Set(response.references.map((reference: any) => reference.source));\r\n\r\n // Convert the Set back to an array if you need to use it as an array\r\n this.references = Array.from(uniqueSources);\r\n // console.log(\"HEREEEE\", this.references)\r\n // this.references = response.references.map((reference: any) => {\r\n // // return `${reference.page_content} (Source: ${reference.source})`;\r\n // return `${reference.source}`; });\r\n this.references.forEach((reference: any) => {\r\n return ` ${reference}`; // This will return each reference object\r\n\r\n\r\n });\r\n\r\n // Append the references to the full message\r\n fullMessage += \"\\n\\n **References:** \\n\\n\" + this.references.join('
');\r\n }\r\n this.loadingService.setLoadingState(false); // Set loading to false \r\n await this.simulateStreaming(fullMessage).then(() => {\r\n // this.customizeMarkdownTag();\r\n this.cdr.detectChanges(); // Ensure DOM updates are detected (optional)\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.disableSendButton = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n this.resetDisabled = false;\r\n })\r\n },\r\n (error) => {\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.errorMesg = true;\r\n this.disableSendButton = false;\r\n this.loadingService.setstopstreaming(false);\r\n })\r\n }\r\n async simulateStreaming(message: string): Promise {\r\n return new Promise((resolve) => {\r\n const chunkSize = 10; // Adjust chunk size as needed\r\n let index = 0;\r\n\r\n const addChunk = () => {\r\n if (index < message.length) {\r\n const isBotMessage =\r\n this.messages.value.length > 0 &&\r\n this.messages.value[this.messages.value.length - 1].user === 'bot';\r\n\r\n this.messages.next(\r\n isBotMessage\r\n ? [\r\n ...this.messages.value.slice(0, -1),\r\n {\r\n ...this.messages.value[this.messages.value.length - 1],\r\n text:\r\n this.messages.value[this.messages.value.length - 1].text +\r\n message.substring(index, index + chunkSize),\r\n },\r\n ]\r\n : [\r\n ...this.messages.value,\r\n {\r\n user: 'bot',\r\n text: message.substring(index, index + chunkSize),\r\n },\r\n ]\r\n );\r\n\r\n // Call `ensurePreTagHeaders` after updating the message only once\r\n setTimeout(() => this.ensurePreTagHeaders(), 0);\r\n\r\n\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n\r\n index += chunkSize;\r\n\r\n of(null)\r\n .pipe(\r\n delay(50), // Adjust delay as needed\r\n concatMap(() => of(null))\r\n )\r\n .subscribe(addChunk);\r\n } else {\r\n resolve();\r\n }\r\n };\r\n\r\n addChunk();\r\n });\r\n }\r\n\r\n setUserMessage(text: string) {\r\n this.userResponse = text;\r\n }\r\n\r\n // verifyEFSUSer() {\r\n // debugger;\r\n // // this.verifyEFSvalue = true;\r\n // // this.appcomponentservice.setIsModelOpen(false);\r\n // // this.pinSidebar();\r\n // this.chatService.verifyEFSUser()\r\n // .subscribe((response: any) => {\r\n // this.appcomponentservice.setIsModelOpen(false);\r\n // if (response.result == \"Failure\") {\r\n // this.verifyEFSvalue= true;\r\n // // if (this.appcomponentservice.isModelOpen){\r\n // // this.modalService.close();\r\n // // this.appcomponentservice.setIsModelOpen(false);\r\n // // }\r\n // this.appcomponentservice.setIsModelOpen(false);\r\n // // this.pinSidebar();\r\n\r\n // // this.modalService.open(PreviewPopupComponent).onClosed().subscribe(res => {\r\n // // this.appcomponentservice.setIsModelOpen(false);\r\n // // });\r\n // }\r\n // else {\r\n // this.verifyEFSvalue = false;\r\n // this.appcomponentservice.setIsModelOpen(false);\r\n\r\n // }\r\n // }),\r\n // (error: any) => {\r\n // console.log(\"error\", error);\r\n // }\r\n // }\r\n\r\n openUserCommunityLink(): void {\r\n window.open(this.teamsChannelUrl, '_blank');\r\n }\r\n ensurePreTagHeaders(): void {\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n console.log(\"ensurePreTagHeaders called\");\r\n\r\n const preTags = this.el.nativeElement.querySelectorAll('pre');\r\n\r\n preTags.forEach((preTag: HTMLElement) => {\r\n // Only add the header if it doesn't already exist\r\n const existingHeader = preTag.querySelector('.preTagHeader');\r\n if (!existingHeader) {\r\n const codeTag = preTag.querySelector('code');\r\n if (codeTag?.className) {\r\n const classSplit = codeTag.className.split('-');\r\n const langName =\r\n classSplit.length > 1 &&\r\n classSplit[1] &&\r\n classSplit[1] !== 'none' &&\r\n classSplit[1] !== 'undefined'\r\n ? classSplit[1]\r\n : 'Plain Text';\r\n\r\n const headerDiv = this.render.createElement('div');\r\n this.render.addClass(headerDiv, 'preTagHeader');\r\n\r\n const leftSpan = this.render.createElement('span');\r\n this.render.addClass(leftSpan, 'clsLanguage');\r\n this.render.addClass(leftSpan, 'text-left');\r\n const leftText = this.render.createText(langName);\r\n this.render.appendChild(leftSpan, leftText);\r\n\r\n const rightSpan = this.render.createElement('a');\r\n this.render.addClass(rightSpan, 'clsCopy');\r\n this.render.addClass(rightSpan, 'text-right');\r\n const icon = this.render.createElement('i');\r\n this.render.addClass(icon, 'fa');\r\n this.render.addClass(icon, 'fa-clone');\r\n this.render.appendChild(rightSpan, icon);\r\n\r\n this.render.appendChild(headerDiv, leftSpan);\r\n this.render.appendChild(headerDiv, rightSpan);\r\n\r\n this.render.insertBefore(preTag, headerDiv, codeTag);\r\n\r\n this.render.listen(rightSpan, 'click', () => this.copyCode(preTag));\r\n }\r\n }\r\n });\r\n }\r\n\r\n copyCode(preTag: HTMLElement) {\r\n // this.isCopy = true;\r\n // var codeTag = preTag.querySelector('code');\r\n // if (codeTag != null) {\r\n // const codeText = codeTag.innerText; // Extract the code text\r\n // navigator.clipboard.writeText(codeText).then(() => {\r\n // console.log('Message copied to clipboard');\r\n // }).catch(err => {\r\n // console.error('Could not copy text: ', err);\r\n // });\r\n // setTimeout(() => {\r\n // this.isCopy = false;\r\n // }, 3000);\r\n // }\r\n }\r\n\r\n\r\n // copyToClipboard(text: any, index : any) {\r\n // this.isCopy = true;\r\n // this.copyIndex = index;\r\n // const innerText = text.replace(/\\*\\*/g, '');\r\n // navigator.clipboard.writeText(innerText).then(() => {\r\n // console.log('Message copied to clipboard');\r\n // }).catch(err => {\r\n // console.error('Could not copy text: ', err);\r\n // });\r\n // setTimeout(() => {\r\n // this.isCopy = false;\r\n // }, 3000);\r\n // }\r\n copyToClipboard(text: string, index: number) {\r\n this.isCopy = true;\r\n this.copyIndex = index;\r\n\r\n // Remove all occurrences of \"**\"\r\n // let innerText = text.replace(/\\*\\*/g, '');\r\n // let innerText = text.replace(/(\\*\\*|`)/g, '');\r\n let innerText = text.replace(/(\\\\|[\\*\\*`])/g, '');\r\n\r\n\r\n\r\n // Find the position of the word \"References\"\r\n const referencesIndex = innerText.indexOf('References');\r\n if (referencesIndex !== -1) {\r\n // Split the text into two parts: before and after \"References\"\r\n const beforeReferences = innerText.substring(0, referencesIndex + 'References'.length);\r\n const afterReferences = innerText.substring(referencesIndex + 'References'.length);\r\n\r\n // Remove all
tags from the part after \"References\"\r\n const cleanedAfterReferences = afterReferences.replace(/
/g, '\\n');\r\n\r\n // Combine the two parts back together\r\n innerText = beforeReferences + cleanedAfterReferences;\r\n }\r\n\r\n // Copy to clipboard\r\n navigator.clipboard.writeText(innerText).then(() => {\r\n console.log('Text copied to clipboard with formatting');\r\n }).catch(err => {\r\n console.error('Could not copy text: ', err);\r\n });\r\n\r\n setTimeout(() => {\r\n this.isCopy = false;\r\n }, 3000);\r\n }\r\n\r\n\r\n\r\n\r\n isAtBottom(container: HTMLElement): boolean {\r\n const scrollHeight = container.scrollHeight;\r\n const clientHeight = container.clientHeight;\r\n const currentScrollTop = container.scrollTop;\r\n\r\n // Check if the user is at the bottom, allowing for a small threshold (e.g., 15px)\r\n return scrollHeight - clientHeight <= currentScrollTop + 15;\r\n }\r\n\r\n adjustTextareaHeight(textarea: HTMLTextAreaElement): void {\r\n if (!textarea) return;\r\n\r\n const atBottom = this.isAtBottom(this.chatContainer.nativeElement);\r\n\r\n // Reset height to 'auto' so that the textarea can shrink\r\n textarea.style.height = 'auto';\r\n\r\n // Calculate the new height based on the content's scrollHeight\r\n const maxHeight = 100; // Max height for the textarea\r\n const newHeight = Math.min(textarea.scrollHeight + 1.5, maxHeight); // Ensure we do not exceed the max height\r\n\r\n // Set the height to the new height\r\n textarea.style.height = `${newHeight}px`;\r\n\r\n if (atBottom) {\r\n this.scrollToBottom();\r\n }\r\n }\r\n updateChatContainerHeight(messageBoxHeight: number): void {\r\n const wrapperHeight = window.innerHeight;\r\n const chatContainerHeight = wrapperHeight - messageBoxHeight - 50; // Adjusting for any extra space like margins or padding\r\n this.render.setStyle(this.chatContainer.nativeElement, 'height', `${chatContainerHeight}px`);\r\n }\r\n scrollToBottom(): void {\r\n try {\r\n setTimeout(() => {\r\n const chatContainer = this.chatContainer.nativeElement as HTMLElement;\r\n chatContainer.scrollTop = chatContainer.scrollHeight;\r\n }, 0);\r\n } catch (err) {\r\n console.error('Scroll to bottom failed:', err);\r\n }\r\n\r\n }\r\n getProfile() {\r\n this.https.get(GRAPH_ENDPOINT)\r\n .subscribe((profile: any) => {\r\n this.userName = profile.displayName;\r\n this.userId = profile.mail;\r\n this.displayName = profile.givenName;\r\n })\r\n }\r\n\r\n // Handle Enter and Shift + Enter key events\r\n // handleKeydown(event: KeyboardEvent, textarea: HTMLTextAreaElement): void {\r\n // if (event.key === 'Enter' && !event.shiftKey) {\r\n // // If Enter is pressed without Shift, call sendMessage function\r\n // if (this.disableSendButton)\r\n // return;\r\n // this.sendMessage(false, \"\");\r\n // event.preventDefault(); // Prevent the default action of adding a newline\r\n // }\r\n // // If Shift + Enter is pressed, allow the textarea to insert a new line\r\n // }\r\n\r\n handleKeydown(event: KeyboardEvent, textarea: HTMLTextAreaElement): void {\r\n if (event.key === 'Enter' && !event.shiftKey) {\r\n // If Enter is pressed without Shift, call sendMessage function\r\n if (this.userPrompt.trim() === \"\" || this.disableSendButton) {\r\n event.preventDefault(); // Prevent the default action of adding a newline\r\n return;\r\n }\r\n this.sendMessage(false, \"\");\r\n event.preventDefault(); // Prevent the default action of adding a newline\r\n }\r\n\r\n }\r\n\r\n newChat() {\r\n // if(this.appcomponentservice.isSendButtonDisabled || this.loadingService.isLoading){\r\n // return;\r\n // }\r\n // this.resetDocuments();\r\n // }\r\n if (this.disableSendButton || this.loadingService.isLoading) {\r\n return;\r\n }\r\n this.resetVariables();\r\n this.errorMesg = false;\r\n this.isDefaultText = true;\r\n this.autoScrollEnabled = true;\r\n this.messages.next([]);\r\n this.guid = uuidv4();\r\n this.userPrompt = \"\";\r\n this.resetTextareaHeight(); // Reset height after message send\r\n\r\n\r\n }\r\n\r\n private isValidFile(file: File): boolean {\r\n return (file.type === \"\") ? file.name.includes('.vtt') : this.allowedTypes.includes(file.type);\r\n }\r\n\r\n // Method to get valid files from a FileList\r\n getValidFiles(fileList: FileList): File[] {\r\n const filesArray = Array.from(fileList); // Convert FileList to an array\r\n return filesArray.filter(file => this.isValidFile(file));\r\n }\r\n\r\n // Method to append valid files from one array to another\r\n appendValidFiles(toArray: File[], fromArray: File[]) {\r\n const validFiles = fromArray.filter(file => this.isValidFile(file));\r\n\r\n for (let i = 0; i < validFiles.length; i++) {\r\n toArray.push(validFiles[i]);\r\n }\r\n }\r\n\r\n private updateUploadLimitFlag(): void {\r\n const totalSize = this.getTotalSelectedFilesSize();\r\n // Check if file count exceeds the maximum limit\r\n if (this.selectedFiles.length > this.MAX_FILE_COUNT || totalSize > this.MAX_FILE_SIZE) {\r\n this.isUploadLimitExceeded = true; // Set the flag if exceeded\r\n } else {\r\n this.isUploadLimitExceeded = false; // Reset the flag if within limits\r\n }\r\n }\r\n\r\n // Helper method to get the total size of already selected files\r\n getTotalSelectedFilesSize(): number {\r\n return this.selectedFiles.reduce((sum, file) => sum + file.size, 0);\r\n }\r\n\r\n ngAfterViewInit() {\r\n const textarea = this.dynamicTextarea.nativeElement;\r\n // Ensure it starts with the correct height\r\n textarea.style.height = `${this.defaultHeight}px`;\r\n }\r\n\r\n resetTextareaHeight(): void {\r\n const textarea = this.dynamicTextarea.nativeElement;\r\n if (!textarea) return;\r\n\r\n // Reset height to the default height\r\n textarea.style.height = `${this.defaultHeight}px`;\r\n }\r\n\r\n getKBChecks() {\r\n this.chatService.getKBChecks().subscribe({\r\n next: res => {\r\n if (res.result == null) {\r\n return;\r\n }\r\n //var tempDate = moment.utc(res.last_updated, \"DD-MMM-YYYY HH:mm\").local().format(\"DD-MMM-YYYY HH:mm z\");\r\n var tempDate = moment.utc(res.result.last_updated, \"DD-MMM-YYYY HH:mm\")\r\n .local()\r\n .format(\"MMM D, YYYY\"); // Format with month abbreviation, day, year, time, and time zone\r\n\r\n this.lblIndexLastRefreshDate = tempDate;\r\n },\r\n error: (error: any) => {\r\n console.error('Error fetching blobs:', error);\r\n },\r\n complete: () => {\r\n console.log('Completed fetching blobs');\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n {{lblNameGreeting}}, {{displayName}}!\r\n
\r\n
\r\n {{lblHelpGreeting}}\r\n
\r\n
\r\n \r\n {{lblGenDIntro2}}\r\n \r\n \r\n \r\n {{lblIndexLastRefreshDate}}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {{ message.text }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ message.text }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{lblSorrySomething1}} \r\n {{lblUserCommunity}}{{lblSorrySomething2}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n","export const environment = {\r\n production: true,\r\n APIBaseUrl:\"https://gendapi.deloitte.ca/\",\r\n clientId:\"f89cf4ee-b0e9-41e2-ad1e-709b09da6713\",\r\n tenentId:\"36da45f1-dd2c-4d1f-af13-5abe46b99921\",\r\n APIScopeURL:\"api://7ca624f5-8232-49fd-b747-25fcd3fe01ca/user_impersonation\",\r\n feedbackURL: \"https://gendapi.deloitte.ca/OpenAPI/SubmitFeedBack\",\r\n docfeedbackURL : \"https://gendapi.deloitte.ca/api/DocumentAnalyzer/SubmitFeedBack\",\r\n EFSFeedbackURL: \"https://gendapi.deloitte.ca/OpenAPI/SubmitEFSFeedBack\",\r\n uploadDocumentURL : \"https://gendapi.deloitte.ca/api/Blob/UploadDocument\",\r\n processDocumentURL : \"https://gendapi.deloitte.ca/api/DocumentAnalyzer/\",\r\n refreshDocumentURL : \"https://gendapi.deloitte.ca/api/Blob/RefreshBlobs\",\r\n summaryDocumentURL : \"https://gendapi.deloitte.ca/api/DocumentAnalyzer/DocumentAnalyzerResults\",\r\n orangeProjectURL : \"https://gendapi.deloitte.ca/api/Onboarding/OnboardingQuery\",\r\n orangefeedbackURL : \"https://gendapi.deloitte.ca/api/Onboarding/SubmitOnboardingFeedBack\",\r\n verifyUserURL : \"https://gendapi.deloitte.ca/api/Onboarding/VerifyUser\",\r\n verifyEFSUserURL : \"https://gendapi.deloitte.ca/OpenAPI/VerifyEFSUser\",\r\n downloadDocumentURL : \"https://gendapi.deloitte.ca/api/Onboarding/DownloadDocument\",\r\n previewGenDURL : \"https://gendbeta.deloitte.ca/\",\r\n efsURL: \"https://gendapi.deloitte.ca/\",\r\n DMSKBURL: \"https://genai.deloitte.ca/km\",\r\n defaultMsg1_En:\"Of course! I'd be happy to help you find information on any topic you need. Please provide me with the specific topic you would like information on, and I will do my best to assist you.\",\r\n defaultMsg1_Fr:\"Of course! I'd be happy to help you find information on any topic you need. Please provide me with the specific topic you would like information on, and I will do my best to assist you.\",\r\n defaultMsg2_En:\"Certainly! I'd be happy to help you find information on your desired topic. Please provide me with the specific topic you would like information on, and I'll do my best to assist you.\",\r\n defaultMsg2_Fr:\"Certainly! I'd be happy to help you find information on your desired topic. Please provide me with the specific topic you would like information on, and I'll do my best to assist you.\",\r\n defaultMsg3_En:\"Of course! I'd be happy to help you find information on any topic you need. Please provide me with the specific topic you would like information on, and I will do my best to assist you.\",\r\n defaultMsg3_Fr:\"Of course! I'd be happy to help you find information on any topic you need. Please provide me with the specific topic you would like information on, and I will do my best to assist you.\"\r\n \r\n };","import { Component } from '@angular/core';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ChatService } from '../Services/chat.service';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.css']\r\n})\r\nexport class ErrorComponent {\r\n private destroy = new Subject();\r\n constructor(private i18n: I18nService, private chatService: ChatService, private appComponentService: AppComponentService){}\r\n\r\n lblError: string;\r\n lblAccess: string;\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblError = \"Erreur\";\r\n this.lblAccess = \"Vous n'avez pas accès à cette page\";\r\n break;\r\n default:\r\n this.lblError = \"Error\";\r\n this.lblAccess = \"You don't have access to this page\";\r\n break;\r\n\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // debugger;\r\n // this.lstDislikeOptions = [\"AI hallucination: false information was provided\", \"AI did not understand the provided context correctly\", \"AI deviated from my instructions\", \"AI response too generic / irrelevant to the query\", \"Other (please specify in the comment below)\"]\r\n // console.log(this.lstDislikeOptions)\r\n this.manageLocale();\r\n this.chatService.verifyEFSUser().subscribe((response: any) => {\r\n if (response.result == \"Failure\") {\r\n this.appComponentService.setIsEFSSUser(false);\r\n // this.agentService.updateAgentDisabledStatus()\r\n \r\n }\r\n else \r\n this.appComponentService.setIsEFSSUser(true);\r\n \r\n })\r\n // const path: string = window.location.pathname; \r\n // if (this.appComponentService.isEFSUser == false && path === '/error') {\r\n // return; // Exit the method without performing any action\r\n // }\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n
\r\n

{{ lblAccess }}

\r\n
\r\n \r\n
","import { Component, Input } from '@angular/core';\r\nimport { CheckboxOptions, CheckboxGroupOptions } from '@usitsdasdesign/dds-ng/checkbox';\r\nimport { Themes, ErrorState } from '@usitsdasdesign/dds-ng/shared';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { FeedbackService } from '../Services/feedback.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { AppComponent } from '../app.component';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\n\r\n@Component({\r\n selector: 'app-feedback-dis-like',\r\n templateUrl: './feedback-dis-like.component.html',\r\n styleUrls: ['./feedback-dis-like.component.css']\r\n})\r\nexport class FeedbackDisLikeComponent {\r\n private destroy = new Subject();\r\n feedbackRes: any = \"\";\r\n updateCharacterCount() { }\r\n constructor(private modalService: ModalService,\r\n private apiService: FeedbackService, private http: HttpClient, private i18n: I18nService, public appcomponentService: AppComponentService) { }\r\n\r\n @Input() isFooter: boolean;\r\n @Input() size: string;\r\n @Input() isInverse: boolean;\r\n\r\n // open() {\r\n // this.modalService.open(CustomModal2Component);\r\n // }\r\n\r\n // close() {\r\n // this.modalService.close();\r\n // }\r\n\r\n lblFeedback: string;\r\n lblGoodResponse: string;\r\n lblCheckbox1: string;\r\n lblCheckbox2: string;\r\n lblCheckbox3: string;\r\n lblCheckbox4: string;\r\n lblCheckbox5: string;\r\n lblAdditionalComment: string;\r\n lblSubmit: string;\r\n lstSelectedOptions: any = [];\r\n txtFeedback: any = \"\";\r\n feedbackDisLike: boolean = false;\r\n checkboxState1: boolean = false;\r\n checkboxState2: boolean = false;\r\n checkboxState3: boolean = false;\r\n checkboxState4: boolean = false;\r\n checkboxState5: boolean = false;\r\n\r\n groupOptions: CheckboxGroupOptions = {\r\n title: 'Title',\r\n isRequired: false,\r\n isInverse: false,\r\n };\r\n @Input() lstoptionDislike: any;\r\n @Input() lstDislikeOptions: any;\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblFeedback = \"Commentaires\";\r\n this.lblGoodResponse = \"Pourquoi cette réponse n'était-elle pas bonne?\";\r\n this.lblCheckbox1 = \"Hallucination de l'IA : des informations fausses ont été fournies\";\r\n this.lblCheckbox2 = \"L'IA n'a pas compris correctement le contexte fourni\";\r\n this.lblCheckbox3 = \"L'IA a dévié de mes instructions\";\r\n this.lblCheckbox4 = \"Réponse de l'IA trop générique / non pertinente par rapport à la requête\";\r\n this.lblCheckbox5 = \"Autre (veuillez préciser dans le commentaire ci-dessous)\";\r\n this.lblAdditionalComment = \"Commentaire supplémentaire\";\r\n this.lblSubmit = \"Soumettre\";\r\n break;\r\n default:\r\n this.lblFeedback = \"Feedback\";\r\n this.lblGoodResponse = \"Why was this not a good response?\";\r\n this.lblCheckbox1 = \"AI hallucination: false information was provided\";\r\n this.lblCheckbox2 = \"AI did not understand the provided context correctly\";\r\n this.lblCheckbox3 = \"AI deviated from my instructions\";\r\n this.lblCheckbox4 = \"AI response too generic / irrelevant to the query\";\r\n this.lblCheckbox5 = \"Other (please specify in the comment below)\";\r\n this.lblAdditionalComment = \"Additional Comment\";\r\n this.lblSubmit = \"Submit\";\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // this.lstDislikeOptions = [\"AI hallucination: false information was provided\", \"AI did not understand the provided context correctly\", \"AI deviated from my instructions\", \"AI response too generic / irrelevant to the query\", \"Other (please specify in the comment below)\"]\r\n // console.log(this.lstDislikeOptions)\r\n //centering feedback dislike modal\r\n const sidebar = document.getElementById(\"sidebar\")\r\n if (!sidebar?.classList.contains('show') && !sidebar?.classList.contains('hidden')) { //if (!sidebar?.classList.contains('show') || !sidebar?.classList.contains('hidden')) {\r\n this.appcomponentService.setIsPinChecked(true);\r\n }\r\n else {\r\n if (sidebar?.classList.contains('show')) {\r\n this.appcomponentService.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentService.setIsPinChecked(false);\r\n }\r\n }\r\n this.manageLocale();\r\n }\r\n\r\n options: CheckboxOptions = {\r\n label: 'Label',\r\n theme: Themes.green,\r\n isIndeterminate: false,\r\n disabled: false,\r\n isError: false,\r\n isRequired: false,\r\n errorState: ErrorState.default,\r\n ariaLabel: '',\r\n customClass: ''\r\n };\r\n\r\n // stateChanged(state: boolean, item: string) {\r\n // var optionIdx = this.lstSelectedOptions.findIndex((x: any) => x == item);\r\n // if (optionIdx != -1) {\r\n // if (state)\r\n // this.lstSelectedOptions.push(item);\r\n // else\r\n // this.lstSelectedOptions = this.lstSelectedOptions.filter((x: any) => x !== item);\r\n // }\r\n // else {\r\n // this.lstSelectedOptions.push(item);\r\n // }\r\n\r\n // }\r\n\r\n stateChanged(state: boolean, item: string) {\r\n if (state) {\r\n if (!this.lstSelectedOptions.includes(item)) {\r\n this.lstSelectedOptions.push(item); // Add to list if checked\r\n }\r\n } else {\r\n this.lstSelectedOptions = this.lstSelectedOptions.filter(x => x !== item); // Remove from list if unchecked\r\n }\r\n console.log(this.lstSelectedOptions); // Log or use the updated lstSelectedOptions\r\n }\r\n\r\n close() {\r\n var model = {\r\n \"feedback\": \"negative\",\r\n \"feedbackType\": \"negative\",\r\n \"document_Name\": this.lstoptionDislike.documentNames || [],\r\n \"userQuery\": this.lstoptionDislike.userQuery,\r\n \"apiResponse\": this.lstoptionDislike.apiResponse,\r\n \"gptModel\": this.lstoptionDislike.gptModel,\r\n \"conversationId\": this.lstoptionDislike.convid,\r\n \"selectedOption\": this.lstSelectedOptions\r\n }\r\n var EFSmodel = {\r\n \"kbName\": \"efs-testing\",\r\n \"kbid\": \"KM072\",\r\n \"indexId\": \"b2a24078-25db-4cce-a9a0-1bb30ae74381\",\r\n \"selectedOption\": this.lstSelectedOptions,\r\n \"apiResponse\": this.lstoptionDislike.apiResponse,\r\n \"userQuery\": this.lstoptionDislike.userQuery,\r\n \"feedback\": \"negative\",\r\n \"feedbackType\": \"negative\"\r\n \r\n }\r\n if (this.lstoptionDislike.isEFSActive) {\r\n \r\n // if(this.lstlikeOptions.isEFSActive){\r\n console.log(\"submitting EFS Feedback model\", EFSmodel);\r\n // console.log(\"Document names being submitted:\", model.document_Name);\r\n // this.apiService.submitEFSFeedbackData(model)\r\n this.apiService.submitEFSFeedbackData(EFSmodel)\r\n .subscribe(res => {\r\n console.log(\"EFS Feedback response\", res);\r\n\r\n\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n console.log(\"EFS Feedback error\", err);\r\n console.log(\"Full error response:\", JSON.stringify(err, null, 2));\r\n console.log(\"Error details:\", err.error);\r\n this.modalService.close();\r\n }\r\n );\r\n }\r\n\r\n else{this.apiService.submitFeedbackData(model)\r\n .subscribe(res => {\r\n console.log(\"Feedback response\", res);\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n this.modalService.close();\r\n });\r\n this.feedbackDisLike = true;\r\n console.log(\"dislike res\", model);\r\n }\r\n }\r\n\r\n Submit() {\r\n console.log(\"lstoptiondislike:\", this.lstoptionDislike)\r\n var feedRes = (this.txtFeedback == null) || (this.txtFeedback.trim() == \"\") ? 'negative' : this.txtFeedback;\r\n var userQuery = this.lstoptionDislike.userQuery;\r\n if (!userQuery || userQuery.trim() === '') {\r\n userQuery = \"summary\";\r\n }\r\n var model = {\r\n \"feedback\": feedRes,\r\n \"feedbackType\": \"negative\",\r\n \"document_Name\": this.lstoptionDislike.document_Name || [],\r\n // \"document_Name\": [],\r\n \"userQuery\": userQuery,\r\n \"apiResponse\": this.lstoptionDislike.apiResponse,\r\n // \"apiResponse\":\"testing api response\",\r\n \"gptModel\": this.lstoptionDislike.gptModel,\r\n // \"gptModel\":\"testing gpt model\",\r\n \"conversationId\": this.lstoptionDislike.convid,\r\n // \"conversationId\":\"testing convid\",\r\n \"selectedOption\": this.lstSelectedOptions\r\n }\r\n var EFSmodel = {\r\n \"kbName\": \"efs-testing\",\r\n \"kbid\": \"KM072\",\r\n \"indexId\": \"b2a24078-25db-4cce-a9a0-1bb30ae74381\",\r\n \"selectedOption\": this.lstSelectedOptions,\r\n \"apiResponse\": this.lstoptionDislike.apiResponse,\r\n \"userQuery\": this.lstoptionDislike.userQuery,\r\n \"feedback\": feedRes,\r\n \"feedbackType\": \"negative\"\r\n \r\n }\r\n if (this.lstoptionDislike.isDocAnalyzerActive) {\r\n this.apiService.submitDocFeedbackData(model)\r\n .subscribe(res => {\r\n console.log(\"Doc Analyzer Feedback response\", res);\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n console.log(\" error Doc Analyzer Feedback response\", err);\r\n this.modalService.close();\r\n });\r\n }\r\n\r\n else if (this.lstoptionDislike.isEFSActive) {\r\n // this.apiService.submitEFSFeedbackData(model)\r\n this.apiService.submitEFSFeedbackData(EFSmodel)\r\n .subscribe(res => {\r\n console.log(\"EFS Feedback response\", res);\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n console.log(\" error EFS Feedback response\", err);\r\n this.modalService.close();\r\n });\r\n }\r\n\r\n else {\r\n\r\n this.apiService.submitFeedbackData(model)\r\n .subscribe(res => {\r\n console.log(\"Feedback response\", res);\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n this.modalService.close();\r\n });\r\n this.feedbackDisLike = true;\r\n\r\n }\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{lblFeedback}}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
{{lblGoodResponse}}
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
{{txtFeedback.length}}/1000
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
","import { Component, Input } from '@angular/core';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { FeedbackService } from '../Services/feedback.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { Size } from '@usitsdasdesign/dds-ng/shared';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\n\r\n@Component({\r\n selector: 'app-feedback-like',\r\n templateUrl: './feedback-like.component.html',\r\n styleUrls: ['./feedback-like.component.css']\r\n})\r\n\r\nexport class FeedbackLikeComponent {\r\n txtFeedback: any;\r\n feedbackRes: any = \"\";\r\n feedbackLike: boolean = false;\r\n private destroy = new Subject();\r\n selectedLanguage: string = 'EN';\r\n lblFeedback: string;\r\n lblLikedFeedbackInParticular: string;\r\n lblSubmit: string;\r\n\r\n updateCharacterCount() { }\r\n\r\n constructor(public modalService: ModalService,\r\n private apiService: FeedbackService, private http: HttpClient, private i18n: I18nService, public appcomponentService: AppComponentService) { }\r\n\r\n @Input() lstlikeOptions: any;\r\n @Input() FeedbackLike: any = [];\r\n @Input() isFooter: boolean;\r\n @Input() size: string;\r\n @Input() isInverse: boolean;\r\n\r\n\r\n close() {\r\n var model = {\r\n \"feedback\": \"positive\",\r\n \"feedbackType\": \"positive\",\r\n \"document_Name\": this.lstlikeOptions.documentNames || [],\r\n \"userQuery\": this.lstlikeOptions.userQuery,\r\n \"apiResponse\": this.lstlikeOptions.apiResponse,\r\n \"gptModel\": this.lstlikeOptions.gptModel,\r\n \"conversationId\": this.lstlikeOptions.convid,\r\n \"selectedOption\": []\r\n }\r\n var EFSmodel = {\r\n \"kbName\": \"efs-testing\",\r\n \"kbid\": \"KM072\",\r\n \"indexId\": \"b2a24078-25db-4cce-a9a0-1bb30ae74381\",\r\n \"selectedOption\": [],\r\n \"apiResponse\": this.lstlikeOptions.apiResponse,\r\n \"userQuery\": this.lstlikeOptions.userQuery,\r\n \"feedback\": \"positive\",\r\n \"feedbackType\": \"positive\",\r\n \r\n }\r\n console.log(\"Feedback model\", model);\r\n\r\n if (this.lstlikeOptions.isEFSActive) {\r\n \r\n // if(this.lstlikeOptions.isEFSActive){\r\n console.log(\"submitting EFS Feedback model\", EFSmodel);\r\n // console.log(\"Document names being submitted:\", model.document_Name);\r\n // this.apiService.submitEFSFeedbackData(model)\r\n this.apiService.submitEFSFeedbackData(EFSmodel)\r\n .subscribe(res => {\r\n console.log(\"EFS Feedback response\", res);\r\n\r\n\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n console.log(\"EFS Feedback error\", err);\r\n console.log(\"Full error response:\", JSON.stringify(err, null, 2));\r\n console.log(\"Error details:\", err.error);\r\n this.modalService.close();\r\n }\r\n );\r\n }\r\n\r\n else{this.apiService.submitFeedbackData(model)\r\n .subscribe(res => {\r\n console.log(\"Feedback response\", res);\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n this.modalService.close();\r\n });\r\n this.feedbackLike = true;\r\n console.log(\"like res\", model);\r\n }}\r\n\r\n Submit() {\r\n console.log(\"lstlikeOptions\", this.lstlikeOptions)\r\n var feedRes = (this.feedbackRes == null) || (this.feedbackRes.trim() == \"\") ? 'positive' : this.feedbackRes;\r\n var userQuery = this.lstlikeOptions.userQuery;\r\n\r\n if (!userQuery || userQuery.trim() === '') {\r\n userQuery = \"summary\";\r\n }\r\n\r\n var model = {\r\n \"feedback\": feedRes,\r\n \"feedbackType\": \"positive\",\r\n \"document_Name\": this.lstlikeOptions.document_Name || [],\r\n \"userQuery\": userQuery,\r\n \"apiResponse\": this.lstlikeOptions.apiResponse,\r\n \"gptModel\": this.lstlikeOptions.gptModel,\r\n \"conversationId\": this.lstlikeOptions.convid,\r\n \"selectedOption\": []\r\n }\r\n\r\n var EFSmodel = {\r\n \"kbName\": \"efs-testing\",\r\n \"kbid\": \"KM072\",\r\n \"indexId\": \"b2a24078-25db-4cce-a9a0-1bb30ae74381\",\r\n \"selectedOption\": [],\r\n \"apiResponse\": this.lstlikeOptions.apiResponse,\r\n \"userQuery\": this.lstlikeOptions.userQuery,\r\n \"feedback\": feedRes,\r\n \"feedbackType\": \"positive\",\r\n \r\n }\r\n\r\n console.log(\"Feedback model before submission:\", model);\r\n\r\n if (this.lstlikeOptions.isDocAnalyzerActive) {\r\n \r\n // if(this.lstlikeOptions.isDocAnalyzerActive){\r\n console.log(\"submitting Doc Analyzer Feedback model\", model);\r\n console.log(\"Document names being submitted:\", model.document_Name);\r\n this.apiService.submitDocFeedbackData(model)\r\n .subscribe(res => {\r\n console.log(\"Doc Analyzer Feedback response\", res);\r\n\r\n\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n console.log(\"Doc Analyzer Feedback error\", err);\r\n console.log(\"Full error response:\", JSON.stringify(err, null, 2));\r\n console.log(\"Error details:\", err.error);\r\n this.modalService.close();\r\n }\r\n );\r\n }\r\n\r\n else if (this.lstlikeOptions.isEFSActive) {\r\n \r\n // if(this.lstlikeOptions.isEFSActive){\r\n console.log(\"submitting EFS Feedback model\", EFSmodel);\r\n // console.log(\"Document names being submitted:\", model.document_Name);\r\n // this.apiService.submitEFSFeedbackData(model)\r\n this.apiService.submitEFSFeedbackData(EFSmodel)\r\n .subscribe(res => {\r\n console.log(\"EFS Feedback response\", res);\r\n\r\n\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n console.log(\"EFS Feedback error\", err);\r\n console.log(\"Full error response:\", JSON.stringify(err, null, 2));\r\n console.log(\"Error details:\", err.error);\r\n this.modalService.close();\r\n }\r\n );\r\n }\r\n\r\n else {\r\n console.log(\"Submitting general feedback\");\r\n this.apiService.submitFeedbackData(model)\r\n .subscribe(res => {\r\n console.log(\"Feedback response\", res);\r\n this.modalService.close();\r\n },\r\n (err) => {\r\n\r\n this.modalService.close();\r\n });\r\n this.feedbackLike = true;\r\n console.log(\"like res\", model);\r\n }\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblFeedback = \"Commentaires\";\r\n this.lblLikedFeedbackInParticular = \"Qu'avez-vous aimé dans cette réponse en particulier ?\";\r\n this.lblSubmit = \"Soumettre\";\r\n break;\r\n\r\n default:\r\n this.lblFeedback = \"Feedback\";\r\n this.lblLikedFeedbackInParticular = \"What did you like about this response in particular?\";\r\n this.lblSubmit = \"Submit\";\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n //centering feedback like modal\r\n const sidebar = document.getElementById(\"sidebar\")\r\n if (!sidebar?.classList.contains('show') && !sidebar?.classList.contains('hidden')) { //if (!sidebar?.classList.contains('show') || !sidebar?.classList.contains('hidden')) {\r\n this.appcomponentService.setIsPinChecked(true);\r\n }\r\n else {\r\n if (sidebar?.classList.contains('show')) {\r\n this.appcomponentService.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentService.setIsPinChecked(false);\r\n }\r\n }\r\n this.manageLocale();\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{lblFeedback}}\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
{{feedbackRes.length}}/1000
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { ChangeDetectorRef, Component, ElementRef, Renderer2, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject, concatMap, delay, of } from 'rxjs';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { ChatService } from '../Services/chat.service';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { LoadingService } from '../Services/LoadingService';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { FeedbackDisLikeComponent } from '../feedback-dis-like/feedback-dis-like.component';\r\nimport { FeedbackLikeComponent } from '../feedback-like/feedback-like.component';\r\nimport { ButtonComponent } from '@usitsdasdesign/dds-ng/button';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ResetChatService } from '../Services/reset-chat.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { MarkdownService } from 'ngx-markdown';\r\nimport {ConHistoryService} from '../Services/con-history.service';\r\nimport { AppComponent } from '../app.component';\r\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent {\r\n private teamsChannelUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921';\r\n\r\n private destroy = new Subject();\r\n tempCopiedText: string;\r\n @ViewChild('tempMarkDown') tempMarkDownElement!: ElementRef;\r\n userName: any;\r\n feedbacklike: any;\r\n userQuery: string;\r\n isCopy: boolean;\r\n userResponse: string;\r\n isStreaming: boolean;\r\n displayName: any;\r\n privacy_URL: string;\r\n errorMesg: boolean;\r\n lblSorrySomething1: string;\r\n lblSorrySomething2: string;\r\n private defaultHeight: number = 0;\r\n private resetSubscription: Subscription;\r\n copyIndex: any;\r\n convId: any;\r\n private routerSubscription: Subscription;\r\n private conversationSubscription: Subscription;\r\n newchat: boolean = false;\r\n stopStreaming: any = false;\r\n conversationmessages: boolean = false;\r\n\r\n constructor(private modalService: ModalService, private chatService: ChatService, public loadingService: LoadingService,\r\n public appcomponentservice: AppComponentService, private conHistoryService: ConHistoryService,private render: Renderer2, private el: ElementRef, private cdr: ChangeDetectorRef,\r\n private https: HttpClient, private i18n: I18nService, private router: Router, private resetChatService: ResetChatService, private markdownService: MarkdownService) {\r\n\r\n }\r\n genDVedio: string = \"https://share.synthesia.io/c6e5e768-bbcc-4910-8e9d-86b17d78b303\";\r\n lblNameGreeting: string;\r\n lblHelpGreeting: string;\r\n lblGenDIntro1: string;\r\n lblGenDIntro2: string;\r\n lblPrivacyPolicy: string;\r\n lblSamplePromptLine: string;\r\n lblSamplePrompt1: string;\r\n lblSamplePrompt2: string;\r\n lblSamplePrompt3: string;\r\n lblAskQuestion: string;\r\n lblUserCommunity: string;\r\n selectedLanguage: string = 'EN';\r\n isLoading = false;\r\n disableSendButton = false;\r\n isDefaultText: boolean;\r\n userPrompt: string;\r\n systemModel = \"GPT 3.5\"\r\n systemMessage: string;\r\n responseStyle: string;\r\n guid = uuidv4()\r\n userId: string;\r\n regenerateFlag = false;\r\n userQueryLength;\r\n likedIndex: number = -1;\r\n dislikedIndex: number = -1;\r\n isLiked: boolean = false;\r\n isDisLiked: boolean = false;\r\n likedIndices: Set = new Set();\r\n dislikedIndices: Set = new Set();\r\n disabledLikeIndices = new Set();\r\n disabledDisLikeIndices = new Set();\r\n @ViewChild('chatContainer') chatContainer!: ElementRef;\r\n textareaRef: any;\r\n messages = new BehaviorSubject<{ user: string; text: string }[]>([\r\n ]);\r\n messages$ = this.messages.asObservable();\r\n @ViewChild('dynamicTextarea') dynamicTextarea!: ElementRef;\r\n autoScrollEnabled: boolean = true;\r\n lastScrollTop: number = 0;\r\n showScrollToBottom: boolean = false;\r\n tempMessages = [];\r\n @ViewChild(AppComponent) appComponent!: AppComponent;\r\n\r\n openFeedbackDislikeModel(index, botRes) {\r\n if (this.appcomponentservice.isModelOpen) {\r\n this.modalService.close();\r\n this.appcomponentservice.setIsModelOpen(false);\r\n }\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.isDisLiked = true;\r\n this.dislikedIndex = index;\r\n this.likedIndex = -1;\r\n this.dislikedIndices.add(index);\r\n this.likedIndices.delete(index);\r\n this.disabledDisLikeIndices.add(index);\r\n var FeedbackDisLike = {\r\n convid: this.guid,\r\n userid: this.userId,\r\n name: this.userName,\r\n userQuery: this.userQuery,\r\n apiResponse: botRes,\r\n gptModel: this.appcomponentservice.systemModel,\r\n isDocAnalyzerActive: false,\r\n isEFSActive: false,\r\n document_Name: [],\r\n };\r\n this.modalService.open(FeedbackDisLikeComponent, { lstoptionDislike: FeedbackDisLike }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n // const dislikeButton = document.querySelector('.dislikeButton') as HTMLElement;\r\n // if (dislikeButton) {\r\n // // dislikeButton.classList.remove('green-dislike');\r\n // // void dislikeButton.offsetWidth;\r\n // // dislikeButton.classList.add('green-dislike');\r\n // dislikeButton.style.backgroundColor='green';\r\n // }\r\n // else {\r\n // }\r\n\r\n // const likeButton = document.querySelector('.likeButton');\r\n // if (likeButton) {\r\n // likeButton.remove();\r\n // }\r\n\r\n });\r\n }\r\n\r\n doLiked(index: number): boolean {\r\n return this.likedIndices.has(index);\r\n }\r\n doDisliked(index: number): boolean {\r\n return this.dislikedIndices.has(index);\r\n }\r\n\r\n onScroll(event: Event): void {\r\n const container = this.chatContainer.nativeElement;\r\n const currentScrollTop = container.scrollTop;\r\n const scrollHeight = container.scrollHeight;\r\n const clientHeight = container.clientHeight;\r\n\r\n // Check if user is scrolling down or up\r\n if (currentScrollTop < this.lastScrollTop) {\r\n this.autoScrollEnabled = false;\r\n }\r\n\r\n // Determine if the user is at the bottom\r\n const atBottom = scrollHeight - clientHeight <= currentScrollTop + 15;\r\n\r\n // Update the flag to show/hide the Scroll to Bottom button\r\n this.showScrollToBottom = !atBottom;\r\n\r\n if (atBottom) {\r\n this.autoScrollEnabled = true;\r\n }\r\n\r\n // Update the last scroll position\r\n this.lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; // For negative scrolling\r\n }\r\n\r\n OnScrollToBottom() {\r\n setTimeout(() => {\r\n this.autoScrollEnabled = true;\r\n }, 590);\r\n this.scrollToBottomSlow();\r\n }\r\n\r\n scrollToBottomSlow() {\r\n const container = this.chatContainer.nativeElement;\r\n const target = container.scrollHeight; // Total scrollable height\r\n const start = container.scrollTop; // Current scroll position\r\n const distance = target - start; // Distance to scroll\r\n const duration = 600; // Duration of the scroll in milliseconds\r\n\r\n let startTime: number | null = null;\r\n\r\n const animation = (currentTime: number) => {\r\n if (startTime === null) startTime = currentTime; // Initialize start time\r\n const timeElapsed = currentTime - startTime; // Time elapsed since start\r\n const progress = Math.min(timeElapsed / duration, 1); // Normalize progress (0 to 1)\r\n\r\n // Easing function for smooth scrolling\r\n const ease = easeInOutQuad(progress);\r\n container.scrollTop = start + distance * ease; // Update scroll position\r\n\r\n if (timeElapsed < duration) {\r\n requestAnimationFrame(animation); // Continue the animation\r\n } else {\r\n this.showScrollToBottom = false; // Hide the button after scrolling\r\n }\r\n };\r\n\r\n requestAnimationFrame(animation); // Start the animation\r\n\r\n // Easing function: ease in-out\r\n function easeInOutQuad(t: number) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n }\r\n }\r\n\r\n openFeedbackLikeModel(index: number, botRes: string) {\r\n if (this.appcomponentservice.isModelOpen) {\r\n this.modalService.close();\r\n this.appcomponentservice.setIsModelOpen(false);\r\n }\r\n this.appcomponentservice.setIsModelOpen(true);\r\n this.isLiked = true;\r\n this.likedIndex = index;\r\n this.dislikedIndex = -1;\r\n this.likedIndices.add(index);\r\n this.dislikedIndices.delete(index);\r\n this.disabledLikeIndices.add(index);\r\n var FeedbackLike = {\r\n convid: this.guid,\r\n userid: this.userId,\r\n name: this.userName,\r\n userQuery: this.userQuery,\r\n apiResponse: botRes,\r\n gptModel: this.appcomponentservice.systemModel,\r\n isDocAnalyzerActive: false,\r\n isEFSActive: false,\r\n document_Name: [],\r\n };\r\n\r\n this.modalService.open(FeedbackLikeComponent, { lstlikeOptions: FeedbackLike }).onClosed().subscribe(res => {\r\n this.appcomponentservice.setIsModelOpen(false);\r\n // const likeButton = document.querySelector('.likeButton');\r\n // if (likeButton) {\r\n // likeButton.classList.add('green-like');\r\n // }\r\n // const dislikeButton = document.querySelector('.dislikeButton');\r\n // Check if the likeButton element exists\r\n // if (dislikeButton) {\r\n // // Remove the likeButton element from the DOM\r\n // dislikeButton.remove();\r\n // }\r\n });\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblNameGreeting = \"Bonjour\";\r\n this.lblHelpGreeting = \"Je suis Gen-D, votre assistant IA de Deloitte. Comment puis-je vous aider?\";\r\n this.lblGenDIntro1 = \"Gen-D est un outil d'IA qui vous aide à travailler plus rapidement. Demandez-moi quoi que ce soit – je ferai de mon mieux pour vous aider!\";\r\n this.lblGenDIntro2 = \"Nouveau sur Gen-D? Consultez l'introduction\";\r\n this.lblPrivacyPolicy = \"ICI\";\r\n this.lblSamplePromptLine = \"Commencez avec une requête modèle\";\r\n this.lblSamplePrompt1 = \"Comparez Agile, SAFe et présentez votre réponse sous forme de tableau.\";\r\n this.lblSamplePrompt2 = \"Pouvez-vous fournir un exemple d'agrégation et de résumé de données à l'aide de requêtes SQL?\";\r\n this.lblSamplePrompt3 = \"Fournissez des lignes directrices pour rédiger une proposition de projet efficace, y compris les sections clés et la structure recommandée.\";\r\n this.lblAskQuestion = \"Posez moi une question...\";\r\n this.privacy_URL = \"https://mydeloitte.portal.deloitte.ca/sites/resources/ActiveFR/Internal/QualityandRiskManagement/Privacy/Documents/AI%20Guidelines%20Approved%20AI%20Systems_FR.pdf\";\r\n this.lblSorrySomething1 = \"Oops, quelque chose ne va pas. Veuillez mettre à jour votre demande et réessayer. Si le problème persiste, veuillez vous rendre sur la \";\r\n this.lblSorrySomething2 = \" et publier votre problème dans le canal 'Discussion'. Notre équipe s'occupera de ce problème dès que possible.\";\r\n this.lblUserCommunity = \"Communauté d'utilisateurs\";\r\n break;\r\n\r\n default:\r\n this.lblNameGreeting = \"Hi\";\r\n this.lblHelpGreeting = \"I am Gen-D, your Deloitte AI companion. How can I help you today?\";\r\n this.lblGenDIntro1 = \"Gen-D is an AI tool that helps you work faster. Ask me anything - I’ll do my best to help!\";\r\n this.lblGenDIntro2 = \"New to Gen-D? Check out the introduction\";\r\n this.lblPrivacyPolicy = \"HERE\";\r\n this.lblSamplePromptLine = \"Start with a sample prompt\";\r\n this.lblSamplePrompt1 = \"Compare Agile, SAFe and present your response in a tabular form.\";\r\n this.lblSamplePrompt2 = \"Can you provide an example of how to aggregate and summarize data using SQL queries?\";\r\n this.lblSamplePrompt3 = \"Provide guidelines for writing an effective project proposal, including key sections and recommended structure.\";\r\n this.lblAskQuestion = \"Ask me a question...\";\r\n this.privacy_URL = \"https://mydeloitte.portal.deloitte.ca/sites/resources/ActiveEN/Internal/QualityandRiskManagement/Privacy/Documents/AI%20Guidelines%20Approved%20AI%20Systems_EN.pdf\";\r\n this.lblSorrySomething1 = \"Oops, something is wrong. Please update your prompt and try again. If the issue persists, please head to the \";\r\n this.lblSorrySomething2 = \" and post your issue in the 'Discussion' channel. Our team will attend the issue asap.\";\r\n this.lblUserCommunity = \"User Community\";\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n openUserCommunityLink(): void {\r\n window.open(this.teamsChannelUrl, '_blank');\r\n }\r\n\r\n ngOnInit() {\r\n this.messages.next([]);\r\n this.loadingService.setLoadingState(false); // Set loading to true\r\n this.appcomponentservice.setIsNewChatVisible(true);\r\n this.loadingService.setstopstreaming(false);\r\n this.resetSubscription = this.resetChatService.reset$.subscribe(() => {\r\n this.resetVariables();\r\n });\r\n this.isDefaultText = true;\r\n // Subscribe to the service and call the function when the event is triggered\r\n this.appcomponentservice.triggerNewChatFunction$.subscribe(() => {\r\n this.newChat();\r\n });\r\n this.getProfile();\r\n this.manageLocale();\r\n this.convId = this.appcomponentservice.conversationData;\r\n if (this.appcomponentservice.conversationData) {\r\n this.convId = this.appcomponentservice.conversationData;\r\n this.guid = this.appcomponentservice.conversationData;\r\n this.fetchConversationData(this.convId);\r\n }\r\n \r\n this.conversationSubscription = this.appcomponentservice.conversationData$.subscribe(convId => {\r\n if (this.appcomponentservice.conversationData) {\r\n this.convId = this.appcomponentservice.conversationData;\r\n this.guid = this.appcomponentservice.conversationData;\r\n this.fetchConversationData(this.convId);\r\n }\r\n });\r\n\r\n // this.routerSubscription = this.router.events.subscribe(event => {\r\n // if (event instanceof NavigationEnd) {\r\n // this.convId = this.appcomponentservice.conversationData;\r\n // this.fetchConversationData(this.convId);\r\n // }\r\n // });\r\n }\r\n \r\n fetchConversationData(convId:any){\r\n if(convId){\r\n \r\n this.resetVariables();\r\n this.conversationmessages = true;\r\n // this.stopStreaming = true;\r\n this.loadingService.setLoadingState(false); \r\n this.messages.next([]);\r\n this.tempMessages = []\r\n this.isDefaultText = false; \r\n this.conHistoryService.chatHistoryId(convId)\r\n .subscribe(\r\n res => {\r\n console.log(\"res query assistant\", res)\r\n res.response.reverse().forEach((element) => {\r\n this.messages.next([...this.messages.value, { user: 'user', text: element.query }]);\r\n this.messages.next([...this.messages.value, { user: 'bot', text: element.assitant }]);\r\n this.tempMessages.push({ user: 'user', text: element.query });\r\n this.tempMessages.push({ user: 'user', text: element.assitant });\r\n\r\n });\r\n setTimeout(() => {\r\n this.ensurePreTagHeaders();\r\n }, 100);\r\n },\r\n (error) => {\r\n \r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.resetSubscription) {\r\n this.resetSubscription.unsubscribe();\r\n }\r\n if (this.routerSubscription) {\r\n this.routerSubscription.unsubscribe();\r\n }\r\n if (this.conversationSubscription) {\r\n this.conversationSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n // Method to reset all variables to their default values\r\n resetVariables() {\r\n this.likedIndex = -1;\r\n this.dislikedIndex = -1;\r\n this.isLiked = false;\r\n this.isDisLiked = false;\r\n this.likedIndices = new Set();\r\n this.dislikedIndices = new Set();\r\n this.disabledLikeIndices = new Set();\r\n this.disabledDisLikeIndices = new Set();\r\n }\r\n\r\n\r\n defaultPrompt(msg) {\r\n this.userPrompt = msg;\r\n setTimeout(() => {\r\n this.adjustTextareaHeight(this.dynamicTextarea.nativeElement);\r\n });\r\n\r\n }\r\n\r\n resetButtonStates(index: number) {\r\n this.likedIndices.delete(index);\r\n this.dislikedIndices.delete(index);\r\n }\r\n\r\n async sendMessage(regenerateFlag: boolean, responsetext: any) {\r\n if (!regenerateFlag) {\r\n if (this.userPrompt.trim() == \"\" || this.disableSendButton)\r\n return;\r\n }\r\n this.conversationmessages = false;\r\n this.stopStreaming = false;\r\n this.errorMesg = false;\r\n this.isStreaming = true;\r\n this.loadingService.setstopstreaming(true);\r\n this.disableSendButton = true;\r\n this.appcomponentservice.setIsSendButtonDisabled(true);\r\n this.loadingService.setLoadingState(true); // Set loading to true\r\n this.isDefaultText = false;\r\n var tempPrompt = this.userPrompt.trim();\r\n this.userQuery = this.userPrompt;\r\n this.userPrompt = \"\";\r\n const textarea = this.textareaRef;\r\n this.resetTextareaHeight(); // Reset height after message send\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n if (regenerateFlag) {\r\n // const messageToRemove = { user: 'bot', text: responsetext };\r\n // this.messages.next(this.messages.value.filter(message => !(message.user === messageToRemove.user && message.text === messageToRemove.text)));\r\n // tempPrompt = this.userResponse ;\r\n const messageToRemove = { user: 'bot', text: responsetext };\r\n\r\n // Find the index of the last occurrence of the message with the same user and text\r\n const lastIndex = this.messages.value\r\n .slice() // Create a copy of the array so we don't modify the original array during iteration\r\n .reverse() // Reverse the array to start looking from the end\r\n .findIndex(message => message.user === messageToRemove.user && message.text === messageToRemove.text);\r\n\r\n if (lastIndex !== -1) {\r\n // Get the actual index in the original array (since we reversed it)\r\n const actualIndex = this.messages.value.length - 1 - lastIndex;\r\n\r\n // Create a copy of the messages array and remove the message at the found index\r\n const updatedMessages = [...this.messages.value];\r\n updatedMessages.splice(actualIndex, 1); // Remove the message at the found index\r\n\r\n // Update the messages stream with the updated array\r\n this.messages.next(updatedMessages);\r\n }\r\n //find last message from tempMessages array in regenrate flag and removing it from the tempMessages array using splice\r\n const lastMessageIndex = this.tempMessages.length - 1;\r\n this.tempMessages.splice(lastMessageIndex, 1);\r\n // Update tempPrompt as required\r\n tempPrompt = this.userResponse;\r\n }\r\n else {\r\n if (tempPrompt == undefined || tempPrompt.trim() == \"\") {\r\n return;\r\n }\r\n else {\r\n this.messages.next([...this.messages.value, { user: 'user', text: tempPrompt }]);\r\n this.tempMessages.push({ user: 'user', text: tempPrompt });\r\n // this.inputMessage = text + this.userQueryLength;;\r\n }\r\n //return;\r\n }\r\n this.loadingService.setUserMessage(tempPrompt);\r\n\r\n this.chatService.getSearchRes(tempPrompt.trim(), this.appcomponentservice.systemModel, this.appcomponentservice.systemSettings.systemMessage,\r\n this.appcomponentservice.systemSettings.responseStyle, this.guid, regenerateFlag, this.appcomponentservice.systemSettings.userQueryLength)\r\n .subscribe((response) => {\r\n if(response.content === null || response.content === \"\"){\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.loadingService.setstopstreaming(false);\r\n this.errorMesg = true;\r\n this.disableSendButton = false;\r\n return;\r\n }\r\n else{\r\n this.loadingService.setLoadingState(false); // Set loading to false\r\n this.tempMessages.push({ user: 'bot', text: response.content }); // Add the bot response to the tempMessages array for copy functionality\r\n var parsedText = this.markdownService.parse(response.content);\r\n var customizedContent = this.customizeMarkDown(parsedText).then((res) => {\r\n this.simulateStreaming(res).then(() => {\r\n this.bindActionToCopyIcon();\r\n //this.customizeHyperlinks();\r\n if (this.autoScrollEnabled) {\r\n this.scrollToBottom();\r\n }\r\n this.disableSendButton = false;\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.isStreaming = false;\r\n this.loadingService.setstopstreaming(false);\r\n // this.appcomponentservice.setConversationId(this.guid);\r\n })\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.appcomponentservice.setIsSendButtonDisabled(false);\r\n this.loadingService.setLoadingState(false);\r\n this.errorMesg = true;\r\n this.disableSendButton = false;\r\n this.loadingService.setstopstreaming(false);\r\n })\r\n }\r\n async customizeMarkDown(htmlContent): Promise {\r\n // Parse the HTML string into a DOM\r\n const parser = new DOMParser();\r\n const resolvedHtmlContent = await (typeof htmlContent === 'string' ? htmlContent : await htmlContent);\r\n const doc = parser.parseFromString(resolvedHtmlContent, 'text/html');\r\n //const preTagRegex = /(.*?)<\\/pre>/gs; // Regular expression to match
 tags\r\n    const preTagRegex = /]*>.*?<\\/pre>/gs;\r\n    const preTags = [...htmlContent.matchAll(preTagRegex)];\r\n\r\n    // Step 1: Customize  tags using regex\r\n    const aTagRegex = /]*)href=\"([^\"]+)\"([^>]*)>/gi;\r\n    htmlContent = htmlContent.replace(aTagRegex, (match, beforeHref, href, afterHref) => {\r\n      const hasTarget = /target\\s*=\\s*\"_blank\"/i.test(match);\r\n      const hasRel = /rel\\s*=\\s*\".*?noopener.*?\"/i.test(match);\r\n\r\n      let newAttributes = `${beforeHref}href=\"${href}\"${afterHref}`;\r\n      if (!hasTarget) {\r\n        newAttributes += ` target=\"_blank\"`;\r\n      }\r\n      // if (!hasRel) {\r\n      //   newAttributes += ` rel=\"noopener noreferrer\"`;\r\n      // }\r\n\r\n      return ``;\r\n    });\r\n\r\n\r\n    // Iterate through each 
 match and insert the 
tag based on its index\r\n let updatedHtmlContent = htmlContent;\r\n\r\n preTags.forEach((match, index) => {\r\n const preContent = match[0]; // Full
 tag content\r\n      const codeTagClassRegex = /\r\n      const codeClassMatch = preContent.match(codeTagClassRegex);\r\n      const codeClass = codeClassMatch ? codeClassMatch[1] : \"\";\r\n      const classSplit = codeClass.split('-');\r\n      if (codeClass !== null && codeClass !== undefined && codeClass !== '') {\r\n        const langName =\r\n          classSplit.length > 1 &&\r\n            classSplit[1] &&\r\n            classSplit[1] !== 'none' &&\r\n            classSplit[1] !== 'undefined'\r\n            ? classSplit[1]\r\n            : 'Plain Text';\r\n\r\n        //  const newDivTag = ``;\r\n        // Insert the new 
tag\r\n const newDivTag = `
\r\n ${langName}\r\n \r\n
`;\r\n updatedHtmlContent = updatedHtmlContent.replace(match[0], (preMatch) => {\r\n // Insert the new
tag between
 and  tags\r\n          return preMatch.replace('
', `
${newDivTag}`);\r\n        });\r\n      }\r\n    });\r\n    return updatedHtmlContent;\r\n  }\r\n  bindActionToCopyIcon() {\r\n    setTimeout(() => {\r\n      const preTags = this.el.nativeElement.querySelectorAll('pre');\r\n      preTags.forEach((preTag: HTMLElement, idx: any) => {\r\n        // Only add the header if it doesn't already exist\r\n        const existingHeader = preTag.querySelector('.preTagHeader');\r\n        if (existingHeader) {\r\n          const copyTag = preTag.querySelector('.clsCopy');\r\n          if (copyTag) {\r\n            const copyIconTag = preTag.querySelector('.copyIconCustomized');\r\n            if (!copyIconTag) {\r\n              var copyFavIcon = copyTag.querySelector('i');\r\n              if (copyFavIcon)\r\n                this.render.addClass(copyFavIcon, 'clsCopyIcon' + idx)\r\n              this.render.addClass(copyTag, 'copyIconCustomized');\r\n              this.render.listen(copyTag, 'click', () => this.copyCodeBlock(preTag, idx));\r\n            }\r\n          }\r\n        }\r\n      });\r\n    }, 100);\r\n  }\r\n\r\n  customizeHyperlinks() {\r\n    // customize a tags for to target blank with in the markdown content\r\n    const markdownContent = this.el.nativeElement.querySelector('markdown');\r\n    if (markdownContent) {\r\n      const aTags = markdownContent.querySelectorAll('a'); // Get all  tags inside \r\n      aTags.forEach((aTag: HTMLAnchorElement) => {\r\n        const href = aTag.getAttribute('href'); // Check if the  tag has an href\r\n        const target = aTag.getAttribute('target'); // Check if target already exists\r\n\r\n        if (href) {\r\n          // Add target=\"_blank\" only if href exists and target is not already set\r\n          aTag.setAttribute('target', '_blank');\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  copyCodeBlock(preTag: HTMLElement, idx: number) {\r\n    var codeTag = preTag.querySelector('code');\r\n    if (codeTag != null) {\r\n      const codeText = codeTag.innerText; // Extract the code text\r\n      const textArea = document.createElement('textarea');\r\n      textArea.value = codeText;\r\n      textArea.style.position = 'fixed';  // Avoid page scroll\r\n      document.body.appendChild(textArea);\r\n      textArea.select();\r\n      textArea.setSelectionRange(0, 99999); // For mobile devices\r\n      const successful = document.execCommand('copy');\r\n      document.body.removeChild(textArea);\r\n\r\n      var copyIcon = document.querySelector('.clsCopyIcon' + idx) as HTMLElement;\r\n      if (copyIcon) {\r\n        copyIcon.classList.remove('fa-clone');\r\n        copyIcon.classList.add('fa-check');\r\n        copyIcon.classList.add('icontick');\r\n        setTimeout(() => {\r\n          copyIcon.classList.remove('fa-check');\r\n          copyIcon.classList.remove('icontick');\r\n          copyIcon.classList.add('fa-clone');\r\n        }, 5000);\r\n      }\r\n    }\r\n\r\n  }\r\n\r\n  simulateStreaming(message: string): Promise {\r\n    return new Promise((resolve) => {\r\n      const chunkSize = 10; // Adjust chunk size as needed\r\n      let index = 0;\r\n\r\n      const addChunk = () => {\r\n        if (index < message.length) {\r\n          const isBotMessage =\r\n            this.messages.value.length > 0 &&\r\n            this.messages.value[this.messages.value.length - 1].user === 'bot';\r\n\r\n          this.messages.next(\r\n            isBotMessage\r\n              ? [\r\n                ...this.messages.value.slice(0, -1),\r\n                {\r\n                  ...this.messages.value[this.messages.value.length - 1],\r\n                  text:\r\n                    this.messages.value[this.messages.value.length - 1].text +\r\n                    message.substring(index, index + chunkSize),\r\n                },\r\n              ]\r\n              : [\r\n                ...this.messages.value,\r\n                {\r\n                  user: 'bot',\r\n                  text: message.substring(index, index + chunkSize),\r\n                },\r\n              ]\r\n          );\r\n\r\n          // Call `ensurePreTagHeaders` after updating the message only once\r\n          // setTimeout(() => this.ensurePreTagHeaders(), 0);\r\n\r\n          // scroll to bottom\r\n          if (this.autoScrollEnabled) {\r\n            this.scrollToBottom();\r\n          }\r\n\r\n          index += chunkSize;\r\n\r\n          of(null)\r\n            .pipe(\r\n              delay(50), // Adjust delay as needed\r\n              concatMap(() => of(null))\r\n            )\r\n            .subscribe(addChunk);\r\n        } else {\r\n          resolve();\r\n        }\r\n      };\r\n\r\n      addChunk();\r\n    });\r\n  }\r\n\r\n  setUserMessage(text: string) {\r\n    this.userResponse = text;\r\n  }\r\n  ensurePreTagHeaders(): void {\r\n    // Scroll to the bottom if auto-scrolling is enabled\r\n    if (this.autoScrollEnabled) {\r\n      this.scrollToBottom();\r\n    }\r\n\r\n\r\n    const preTags = this.el.nativeElement.querySelectorAll('pre');\r\n\r\n    preTags.forEach((preTag: HTMLElement, idx: any) => {\r\n      // Only add the header if it doesn't already exist\r\n      const existingHeader = preTag.querySelector('.preTagHeader');\r\n      if (!existingHeader) {\r\n        const codeTag = preTag.querySelector('code');\r\n        if (codeTag?.className) {\r\n          const classSplit = codeTag.className.split('-');\r\n          const langName =\r\n            classSplit.length > 1 &&\r\n              classSplit[1] &&\r\n              classSplit[1] !== 'none' &&\r\n              classSplit[1] !== 'undefined'\r\n              ? classSplit[1]\r\n              : 'Plain Text';\r\n\r\n          const headerDiv = this.render.createElement('div');\r\n          this.render.addClass(headerDiv, 'preTagHeader');\r\n\r\n          const leftSpan = this.render.createElement('span');\r\n          this.render.addClass(leftSpan, 'clsLanguage');\r\n          this.render.addClass(leftSpan, 'text-left');\r\n          const leftText = this.render.createText(langName);\r\n          this.render.appendChild(leftSpan, leftText);\r\n\r\n          const rightSpan = this.render.createElement('a');\r\n          this.render.addClass(rightSpan, 'clsCopy');\r\n          this.render.addClass(rightSpan, 'text-right');\r\n          const icon = this.render.createElement('i');\r\n          this.render.addClass(icon, 'fa');\r\n          this.render.addClass(icon, 'fa-clone');\r\n          this.render.addClass(icon, 'clsCopyIcon' + idx);\r\n          this.render.appendChild(rightSpan, icon);\r\n\r\n\r\n          this.render.appendChild(headerDiv, leftSpan);\r\n          this.render.appendChild(headerDiv, rightSpan);\r\n\r\n          this.render.insertBefore(preTag, headerDiv, codeTag);\r\n\r\n          this.render.listen(rightSpan, 'click', () => this.copyCodeBlock(preTag, idx));\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n\r\n  copyToClipboard(text: string, index: any) {\r\n    this.isCopy = true;\r\n    this.copyIndex = index;\r\n    var plainText = this.tempMessages[index].text;\r\n    this.tempCopiedText = plainText;\r\n      setTimeout(() => {\r\n        var tempMarkDown = document.getElementById('tempMarkDown');\r\n        plainText = tempMarkDown.innerText;\r\n        const textArea = document.createElement('textarea');\r\n        textArea.value = plainText;\r\n        textArea.style.position = 'fixed';  // Avoid page scroll\r\n        document.body.appendChild(textArea);\r\n        textArea.select();\r\n        textArea.setSelectionRange(0, 99999); // For mobile devices\r\n        const successful = document.execCommand('copy');\r\n        document.body.removeChild(textArea);\r\n      }, 100);\r\n    setTimeout(() => {\r\n      this.isCopy = false;\r\n    }, 3000);\r\n  }\r\n  ngAfterViewInit() {\r\n    const textarea = this.dynamicTextarea.nativeElement;\r\n    this.defaultHeight = textarea.scrollHeight + 1.5; // Default height is based on initial content (before typing)\r\n    // Ensure it starts with the correct height\r\n    textarea.style.height = `${this.defaultHeight}px`;\r\n  }\r\n  resetTextareaHeight(): void {\r\n    const textarea = this.dynamicTextarea.nativeElement;\r\n    if (!textarea) return;\r\n\r\n    // Reset height to the default height\r\n    textarea.style.height = `${this.defaultHeight}px`;\r\n  }\r\n\r\n  isAtBottom(container: HTMLElement): boolean {\r\n    const scrollHeight = container.scrollHeight;\r\n    const clientHeight = container.clientHeight;\r\n    const currentScrollTop = container.scrollTop;\r\n\r\n    // Check if the user is at the bottom, allowing for a small threshold (e.g., 15px)\r\n    return scrollHeight - clientHeight <= currentScrollTop + 15;\r\n  }\r\n\r\n  adjustTextareaHeight(textarea: HTMLTextAreaElement): void {\r\n\r\n\r\n    if (!textarea) return;\r\n\r\n    const atBottom = this.isAtBottom(this.chatContainer.nativeElement);\r\n\r\n    // Reset height to 'auto' so that the textarea can shrink\r\n    textarea.style.height = 'auto';\r\n\r\n    // Calculate the new height based on the content's scrollHeight\r\n    const maxHeight = 100; // Max height for the textarea\r\n    const newHeight = Math.min(textarea.scrollHeight + 1.5, maxHeight); // Ensure we do not exceed the max height\r\n\r\n    // Set the height to the new height\r\n    textarea.style.height = `${newHeight}px`;\r\n\r\n    if (atBottom) {\r\n      this.scrollToBottom();\r\n    }\r\n  }\r\n\r\n  updateChatContainerHeight(messageBoxHeight: number): void {\r\n    const wrapperHeight = window.innerHeight;\r\n    const chatContainerHeight = wrapperHeight - messageBoxHeight - 50; // Adjusting for any extra space like margins or padding\r\n    this.render.setStyle(this.chatContainer.nativeElement, 'height', `${chatContainerHeight}px`);\r\n  }\r\n  scrollToBottom(): void {\r\n    try {\r\n      setTimeout(() => {\r\n        const chatContainer = this.chatContainer.nativeElement as HTMLElement;\r\n        chatContainer.scrollTop = chatContainer.scrollHeight;\r\n      }, 0);\r\n    } catch (err) {\r\n      console.error('Scroll to bottom failed:', err);\r\n    }\r\n\r\n  }\r\n\r\n  getProfile() {\r\n    this.https.get(GRAPH_ENDPOINT)\r\n      .subscribe((profile: any) => {\r\n        this.userName = profile.displayName;\r\n        this.userId = profile.mail;\r\n        this.displayName = profile.givenName;\r\n      })\r\n  }\r\n\r\n  // Handle Enter and Shift + Enter key events\r\n  handleKeydown(event: KeyboardEvent, textarea: HTMLTextAreaElement): void {\r\n    if (event.key === 'Enter' && !event.shiftKey) {\r\n      // If Enter is pressed without Shift, call sendMessage function\r\n      if (this.userPrompt.trim() === \"\" || this.disableSendButton) {\r\n        event.preventDefault(); // Prevent the default action of adding a newline\r\n        return;\r\n      }\r\n      this.sendMessage(false, \"\");\r\n      event.preventDefault(); // Prevent the default action of adding a newline\r\n    }\r\n    \r\n  }\r\n\r\n  newChat() {\r\n    // if(this.errorMesg || this.loadingService.isLoading){\r\n    //   if (this.disableSendButton)\r\n    //   return;\r\n    //   }\r\n   // this.loadingService.setUserMessage(this.userPrompt);\r\n   //this.stopStreaming = true;\r\n   // this.newchat = true;\r\n    if(this.disableSendButton || this.loadingService.isLoading){\r\n        return;\r\n    }\r\n    this.errorMesg = false;\r\n    this.isDefaultText = true;\r\n    this.autoScrollEnabled = true;\r\n    this.messages.next([]);\r\n    this.guid = uuidv4();\r\n    this.userPrompt = \"\";\r\n    this.resetTextareaHeight(); // Reset height after message send\r\n    this.tempMessages = [];\r\n   // this.loadingService.setUserMessage(this.userPrompt);\r\n\r\n    //this.loadingService.setLoadingState(false); \r\n  }\r\n}\r\n//test\r\n\r\n","
\r\n
\r\n
\r\n
\r\n \r\n {{lblNameGreeting}}, {{displayName}}!\r\n
\r\n
\r\n {{lblHelpGreeting}}\r\n
\r\n
\r\n
\r\n
\r\n {{lblSamplePromptLine}}\r\n
\r\n
\r\n
\r\n
\r\n {{lblSamplePrompt1}}\r\n
\r\n
\r\n
\r\n
\r\n {{lblSamplePrompt2}}\r\n
\r\n
\r\n
\r\n
\r\n {{lblSamplePrompt3}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {{ message.text }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ message.text }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{lblSorrySomething1}} \r\n {{lblUserCommunity}}{{lblSorrySomething2}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n ","import { Component } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { environment } from '../environments/environment';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\n\r\n@Component({\r\n selector: 'app-preview-popup',\r\n templateUrl: './preview-popup.component.html',\r\n styleUrls: ['./preview-popup.component.css']\r\n})\r\nexport class PreviewPopupComponent {\r\n switcpopup: boolean;\r\n route: any;\r\n label1: string;\r\n previewText: string;\r\n temp1: string;\r\n temp2: string;\r\n temp3: string;\r\n temp4: string;\r\n preview_option1: string;\r\n preview_option2: string;\r\n lang1: string;\r\n private destroy = new Subject();\r\n whatsNew: string;\r\n releaseNote: string;\r\n whatsnew1: string;\r\n userCommunityText: string;\r\n whatnew12: string;\r\n whatsnew2: string;\r\n whatsnew3: string;\r\n whatsnew4: string;\r\n whatsnew5: string;\r\n userCommunityUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921';\r\n\r\nconstructor( private modalService: ModalService,private i18n: I18nService,public appcomponentService:AppComponentService\r\n ) {}\r\n ngOnInit() {\r\n //centering feedback like modal\r\n const sidebar = document.getElementById(\"sidebar\")\r\n if (!sidebar?.classList.contains('show') && !sidebar?.classList.contains('hidden')) { //if (!sidebar?.classList.contains('show') || !sidebar?.classList.contains('hidden')) {\r\n this.appcomponentService.setIsPinChecked(true);\r\n }\r\n else {\r\n if (sidebar?.classList.contains('show')) {\r\n this.appcomponentService.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentService.setIsPinChecked(false);\r\n }\r\n }\r\n this.manageLocale();\r\n }\r\n closePreview(){\r\n this.modalService.close(); \r\n } \r\n openPreview(){\r\n window.open(environment.previewGenDURL,'_self');\r\n }\r\n \r\n manageLocale(){\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lang1 = 'en';\r\n this.label1 = \"Exemples de questions \"; \r\n this.previewText = \"En tant qu'utilisateur cible, vous êtes invité à explorer les dernières nouvelles fonctionnalités avec la version Beta de Gen-D. Cela vous tente ?\";\r\n this.temp1=\"Capacité de mettre à jour le message et les paramètres du système Gen-D pour refléter votre persona sur GPT\";\r\n this.temp2=\"Revoir et gérer votre historique de conversation\";\r\n this.temp3=\"Support étendu pour HTML, XLS et XLSX sur l'analyseur de documents.\";\r\n this.temp4=\"Recherche plus efficace sur les documents téléchargés.\";\r\n this.preview_option1 = \"Non, merci !\";\r\n this.preview_option2 = \"Oui, s’il vous plaît !\";\r\n this.whatsnew1 = 'Présentation de la';\r\n this.userCommunityText = \"Communauté des Utilisateurs de Gen-D\";\r\n this.whatnew12 = \"une communauté collaborative pour faire entendre votre voix\";\r\n this.whatsnew2 = \"Paramètres de discussion pour personnaliser le comportement de l'IA\";\r\n this.whatsnew3 = 'Nouvelle interface utilisateur et éléments visuels';\r\n this.whatsnew4 = \"Amélioration de l'expérience utilisateur et meilleure stabilité\";\r\n this.whatsnew5 = 'Optimisation des performances';\r\n break;\r\n default:\r\n this.lang1 = 'en';\r\n this.previewText = \"As a valued key user, you're invited to explore new features with Gen-D's Beta version. Interested?\";\r\n this.temp1=\"Ability to update Gen-D system message and settings to reflect your on GPT persona\";\r\n this.temp2=\"Review and manage with your conversation history\";\r\n this.temp3=\"Extended support to HTML, XLS and XLSX on document analyzer\";\r\n this.temp4=\"More efficient Search on uploaded documents\";\r\n this.preview_option1 = \"No, Thanks!\";\r\n this.preview_option2 = \"Yes, Please!\";\r\n this.whatsnew1 = 'Introducing';\r\n this.userCommunityText = \"Gen-D User Community\";\r\n this.whatnew12 = \": a collaborative community to get your voice heard\";\r\n this.whatsnew2 = 'Chat Settings to customize AI behavior ';\r\n this.whatsnew3 = 'Brand new UI and visual elements';\r\n this.whatsnew4 = 'Improved UX and product behavior ';\r\n this.whatsnew5 = 'Performance optimization';\r\n break;\r\n }\r\n });\r\n}\r\n\r\n \r\n}","
{{temp1}}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{previewText}}\r\n \r\n
    \r\n
  • {{whatsnew1}}\r\n {{ userCommunityText }} \r\n
  • \r\n
  • {{whatsnew2}}
  • \r\n
  • {{whatsnew3}}
  • \r\n
  • {{whatsnew4}}
  • \r\n
  • {{whatsnew5}}
  • \r\n
\r\n
\r\n \r\n
","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { Agent } from '../model/agent.model';\r\nimport { Router } from '@angular/router';\r\nimport { RecentAgentsService } from '../Services/recent-agent.service';\r\nimport { AgentsService } from '../Services/agent.service';\r\nimport { I18nService } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { LoadingService } from '../Services/LoadingService';\r\nimport { error } from 'jquery';\r\nimport { ErrorComponent } from '../error/error.component';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\nimport { ChatService } from '../Services/chat.service';\r\nimport { TooltipOptions } from '@usitsdasdesign/dds-ng/tooltip';\r\nimport { Themes } from '@usitsdasdesign/dds-ng/shared';\r\n\r\n@Component({\r\n selector: 'app-recent-agents',\r\n templateUrl: './recent-agents.component.html',\r\n styleUrls: ['./recent-agents.component.css']\r\n})\r\nexport class RecentAgentsComponent implements OnInit {\r\n recentPaths$ = this.recentAgentsService.recentPaths$;\r\n private agents: Agent[] = [];\r\n private destroy = new Subject(); \r\n language: string = 'en';\r\n lblRecentlyUsedAgents: string;\r\n @Output() agentClicked = new EventEmitter();\r\n ComingSoontext: string = \"Coming Soon!\"\r\n\r\n constructor(\r\n private recentAgentsService: RecentAgentsService,\r\n private agentsService: AgentsService,\r\n private router: Router,\r\n private i18n: I18nService, \r\n public loadingService: LoadingService,\r\n public appcomponentservice: AppComponentService,\r\n private appComponentService: AppComponentService,\r\n private chatservice:ChatService\r\n\r\n ) {}\r\n\r\n\r\n ngOnInit() {\r\n this.agentsService.getAgents().subscribe(agents => {\r\n this.agents = agents;\r\n });\r\n this.manageLocale();\r\n\r\n this.chatservice.verifyEFSUser().subscribe((response: any) => {\r\n if (response.result == \"Failure\") {\r\n this.appComponentService.setIsEFSSUser(false);\r\n // this.agentService.updateAgentDisabledStatus()\r\n \r\n }\r\n else \r\n this.appComponentService.setIsEFSSUser(true);\r\n \r\n })\r\n\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.language = 'fr'\r\n this.lblRecentlyUsedAgents = \"Agents utilisés récemment\";\r\n break;\r\n default:\r\n this.language = 'en'\r\n this.lblRecentlyUsedAgents = \"Recently Used Agents\";\r\n break;\r\n }\r\n });\r\n } \r\n\r\n navigateToPath(path: string) {\r\n if(path === \"/deloitte-voice\"){\r\n return;\r\n }\r\n // debugger;\r\n if (this.appComponentService.isEFSUser == false && path === '/efs') {\r\n return; // Exit the method without performing any action\r\n }\r\n else if (this.appComponentService.isEFSUser == false && path == \"/efs\" ){\r\n // this.agentsService.updateAgentDisabledStatus()\r\n this.router.navigate(['/error'])\r\n \r\n }\r\n else{\r\n if(path != \"/deloitte-voice\"){\r\n this.agentClicked.emit();\r\n }\r\n\r\n if (this.loadingService.stopstreaming) {\r\n return; // Exit the method if streaming is stopped\r\n }\r\n const agent = this.getAgent(path);\r\n if (agent && !agent.disabled && !this.isPathActive(agent.path)) {\r\n this.router.navigate([path]);\r\n }}\r\n }\r\n\r\n isPathActive(path: string): boolean {\r\n var exactMatch = this.router.url === path;\r\n return path ? this.router.url.startsWith(`${path}/`) || exactMatch : exactMatch;\r\n }\r\n \r\n\r\n getAgent(path: string): Agent | undefined {\r\n return this.agents.find(agent => agent.path === path);\r\n }\r\n\r\n options: TooltipOptions = {\r\n tooltipInvokeType: 'hover',\r\n tooltipPosition: 'right-top',\r\n tooltipIndent: 15,\r\n tooltipIsOutsideClick: false,\r\n tooltipHasBeak: true,\r\n tooltipIsDisabled: false,\r\n tooltipIsInverse: false,\r\n tooltipIsDynamic: false,\r\n tooltipCustomClass: 'tooltipclass',\r\n tooltipType: 'regular',\r\n tooltipSize: 'md',\r\n tooltipShowDelay: 0,\r\n tooltipHideDelay: 0,\r\n tooltipTheme: Themes.dark\r\n };\r\n}\r\n","
\r\n
{{lblRecentlyUsedAgents}}
\r\n
\r\n
\r\n \r\n \r\n {{agent.name[this.language]}}\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\n\r\nimport { LabelPosition, Size, ErrorState } from '@usitsdasdesign/dds-ng/shared';\r\nimport { TextareaOptions } from '@usitsdasdesign/dds-ng/textarea';\r\n\r\nimport { SelectOptions, SelectItemOptions } from '@usitsdasdesign/dds-ng/select';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { SharingmessageService } from '../Services/sharingmessage.service';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\n\r\n@Component({\r\n selector: 'app-systemsettings',\r\n templateUrl: './systemsettings.component.html',\r\n styleUrls: ['./systemsettings.component.css']\r\n})\r\nexport class SystemsettingsComponent implements OnInit {\r\n private destroy = new Subject();\r\n selectedLanguage: string = 'EN';\r\n lblChatSettings: string;\r\n btnClose: string;\r\n btnApply: string;\r\n lblPersonalityDesc: string;\r\n isSidebarPinned: boolean;\r\n\r\n constructor(public modalService: ModalService, private i18n: I18nService, private sharingmessageService: SharingmessageService\r\n , public appcomponentservice: AppComponentService\r\n ) { }\r\n @Input() isFooter: boolean;\r\n @Input() size: string;\r\n close() {\r\n this.modalService.close();\r\n }\r\n\r\n onApply() {\r\n this.modalService.close(this.systemSettingsData)\r\n\r\n }\r\n\r\n manageLocale(): void {\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lblChatSettings = \"Paramètres de Chat\";\r\n this.textareaOptions.placeholder = \"Vous êtes un assistant amical et éloquent qui communique avec un ton à la fois décontracté et professionnel. Vous donnez des réponses claires et concises, sans avertissements inutiles ni répétitions. Vous êtes direct mais chaleureux, comme un ami averti qui explique quelque chose autour d’un café. Vous utilisez un langage naturel et des tournures conversationnelles, en évitant un discours trop formel ou robotique. Lorsque c'est pertinent, vous incluez de brefs exemples pour illustrer vos propos. Vous êtes prêt à échanger quelques plaisanteries légères tout en restant concentré sur votre objectif de rester utile. Vous n’avez pas tendance à vous excuser inutilement ni à utiliser des politesses excessives.\";\r\n this.textareaOptions.label = \"Instructions supplémentaires\";\r\n this.personalitySelectOptions.label = \"Personnalité\";\r\n this.personalitySelectItems[0].heading = \"Droit au but\";\r\n this.personalitySelectItems[1].heading = \"Soigné et professionnel\";\r\n this.personalitySelectItems[2].heading = \"Créatif et amusant\";\r\n this.responseLengthSelectOptions.label = \"Longueur\";\r\n this.responseLengthSelectItems[0].heading = \"Concise\";\r\n this.responseLengthSelectItems[1].heading = \"Équilibré\";\r\n this.responseLengthSelectItems[2].heading = \"Détaillé\";\r\n this.btnClose = \"Fermer\";\r\n this.btnApply = \"Appliquer\";\r\n this.personalitySelectOptions.description= \"La personnalité vous permet de sélectionner le style général avec lequel le chatbot interagit avec vous.\";\r\n this.responseLengthSelectOptions.description = \"La longueur vous permet de contrôler le niveau de détail des réponses du chatbot.\";\r\n break;\r\n\r\n default:\r\n this.lblChatSettings = \"Chat Settings\";\r\n this.textareaOptions.placeholder = \"You are a friendly, articulate assistant who communicates in a casual yet professional tone. You give clear, concise responses without unnecessary disclaimers or repetition. You're direct but warm, like a knowledgeable friend explaining things over coffee. You use natural language and conversational phrases, avoiding overly formal or robotic speech. When relevant, you include brief examples to illustrate your points. You're willing to engage in light banter while staying focused on being helpful. You don't apologize unnecessarily or use excessive pleasantries.\";\r\n this.textareaOptions.label = \"Additional Instructions\";\r\n this.personalitySelectOptions.label = \"Personality\";\r\n this.personalitySelectItems[0].heading = \"Straight to the Point\";\r\n this.personalitySelectItems[1].heading = \"Polished and Professional\";\r\n this.personalitySelectItems[2].heading = \"Creative and Fun\";\r\n this.responseLengthSelectOptions.label = \"Length\";\r\n this.responseLengthSelectItems[0].heading = \"Concise\";\r\n this.responseLengthSelectItems[1].heading = \"Balanced\";\r\n this.responseLengthSelectItems[2].heading = \"Elaborate\";\r\n this.btnClose = \"Reset\";\r\n this.btnApply = \"Apply\";\r\n this.personalitySelectOptions.description= \"Personality allows you to select the overall style in which the chatbot interacts with you.\";\r\n this.responseLengthSelectOptions.description = \"Length enables you to control how detailed the chatbot's responses are.\";\r\n break;\r\n }\r\n // alert(locale)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n //centering chat settings modal\r\n const sidebar = document.getElementById(\"sidebar\")\r\n if (!sidebar?.classList.contains('show') && !sidebar?.classList.contains('hidden')) { //if (!sidebar?.classList.contains('show') || !sidebar?.classList.contains('hidden')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n }\r\n else {\r\n if (sidebar?.classList.contains('show')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentservice.setIsPinChecked(false);\r\n }\r\n }\r\n \r\n this.manageLocale();\r\n if (this.appcomponentservice.systemSettings.systemMessage == undefined || this.appcomponentservice.systemSettings.systemMessage == null || this.appcomponentservice.systemSettings.systemMessage == \"\")\r\n this.systemSettingsData.systemprompt = '';\r\n else\r\n this.systemSettingsData.systemprompt = this.appcomponentservice.systemSettings.systemMessage;\r\n\r\n if (this.appcomponentservice.systemSettings.responseStyle == undefined || this.appcomponentservice.systemSettings.responseStyle == null || this.appcomponentservice.systemSettings.responseStyle == 0)\r\n this.systemSettingsData.personality = 0.5;\r\n else\r\n this.systemSettingsData.personality = this.appcomponentservice.systemSettings.responseStyle;\r\n\r\n if (this.appcomponentservice.systemSettings.userQueryLength == undefined || this.appcomponentservice.systemSettings.userQueryLength == null || this.appcomponentservice.systemSettings.userQueryLength == \"\")\r\n this.systemSettingsData.responselength = '-provide medium length and balanced response';\r\n else\r\n this.systemSettingsData.responselength = this.appcomponentservice.systemSettings.userQueryLength;\r\n }\r\n systemSettingsData: any = {\r\n systemprompt: '',\r\n personality: '',\r\n responselength: ''\r\n }\r\n textareaOptions: TextareaOptions = {\r\n label: 'Additional Instructions',\r\n labelPosition: LabelPosition.external,\r\n placeholder: \"You are a friendly, articulate assistant who communicates in a casual yet professional tone. You give clear, concise responses without unnecessary disclaimers or repetition. You're direct but warm, like a knowledgeable friend explaining things over coffee. You use natural language and conversational phrases, avoiding overly formal or robotic speech. When relevant, you include brief examples to illustrate your points. You're willing to engage in light banter while staying focused on being helpful. You don't apologize unnecessarily or use excessive pleasantries.\",\r\n minHeight: 250,\r\n isRequired: false,\r\n isError: false,\r\n errorState: ErrorState.default,\r\n description: '',\r\n customClass: '',\r\n errorMessage: '',\r\n maxLength: 300,\r\n maxLengthPosition: 'bottom-right',\r\n size: Size.sm,\r\n disabled: false\r\n\r\n };\r\n\r\n personalitySelectOptions: SelectOptions = {\r\n label: 'Personality',\r\n labelPosition: LabelPosition.external,\r\n description: 'Personality allows you to select the overall style in which the chatbot interacts with you.',\r\n placeholder: 'Professional',\r\n size: Size.md,\r\n disabled: false,\r\n isResponsive: false,\r\n isRequired: false,\r\n isError: false,\r\n errorMessage: '',\r\n errorState: ErrorState.default,\r\n customClass: '',\r\n stickerWidth: 0,\r\n stickerShift: 0,\r\n stickerMaxHeight: \"\",\r\n stickerIsDisabled: false,\r\n stickerPosition: \"bottom-left\",\r\n stickerIndent: 0,\r\n stickerCustomClass: \"\"\r\n };\r\n\r\n personalitySelectItems: SelectItemOptions[] = [\r\n\r\n {\r\n heading: \"Deterministic\",\r\n value: 0.1 //set to 0 instead of 0 as 0 is considered as empty in dropdown\r\n },\r\n {\r\n heading: \"Professional\",\r\n value: 0.5\r\n },\r\n {\r\n heading: \"Creative\",\r\n value: 1\r\n }\r\n ];\r\n\r\n responseLengthSelectOptions: SelectOptions = {\r\n label: 'Response Length',\r\n labelPosition: LabelPosition.external,\r\n description: \"Length enables you to control how detailed the chatbot's responses are.\",\r\n placeholder: '',\r\n size: Size.md,\r\n disabled: false,\r\n isResponsive: false,\r\n isRequired: false,\r\n isError: false,\r\n errorMessage: '',\r\n errorState: ErrorState.default,\r\n customClass: '',\r\n stickerWidth: 0,\r\n stickerShift: 0,\r\n stickerMaxHeight: \"\",\r\n stickerIsDisabled: false,\r\n stickerPosition: \"bottom-left\",\r\n stickerIndent: 0,\r\n stickerCustomClass: \"\"\r\n };\r\n\r\n responseLengthSelectItems: SelectItemOptions[] = [\r\n\r\n {\r\n heading: 'Concise',\r\n value: '-provide very short length and precise with your response'\r\n },\r\n {\r\n heading: 'Balanced',\r\n value: '-provide medium length and balanced response'\r\n },\r\n {\r\n heading: 'Elaborate',\r\n value: '-provide very long length and elaborate with your response'\r\n }\r\n ];\r\n reset() {\r\n this.systemSettingsData = {};\r\n setTimeout(() => {\r\n this.systemSettingsData = {\r\n systemprompt: '',\r\n personality: 0.5,\r\n responselength: '-provide medium length and balanced response'\r\n };\r\n }, 100);\r\n\r\n // this.systemSettingsData.systemprompt='';\r\n // this.systemSettingsData.personality=0.5;\r\n // this.systemSettingsData.responselength='-provide medium length and balanced response';\r\n }\r\n setPersionality(event) {\r\n this.systemSettingsData.personality = event;\r\n }\r\n setResponseLength(event) {\r\n this.systemSettingsData.responselength = event;\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{lblChatSettings}}\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, DebugElement } from '@angular/core';\r\nimport { I18nService, EN, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { ModalService } from '@usitsdasdesign/dds-ng/modal';\r\nimport { AppComponentService } from '../Services/appcomponentservice';\r\n\r\n@Component({\r\n selector: 'app-whatsnew',\r\n templateUrl: './whatsnew.component.html',\r\n styleUrls: ['./whatsnew.component.css']\r\n})\r\nexport class WhatsnewComponent {\r\n lang1: string;\r\n private destroy = new Subject();\r\n // whatsnew1: string;\r\n // whatsnew2: string;\r\n // whatsnew3: string;\r\n // whatsnew4: string;\r\n // whatsnew5: string;\r\n // userCommunityUrl: string = 'https://teams.microsoft.com/l/team/19%3AFDYRcbgfOx7MpQhKkMEcwGIA0oJS7DainlCatWTAUjo1%40thread.tacv2/conversations?groupId=a9375551-e68a-4e03-a57b-54f04124fda7&tenantId=36da45f1-dd2c-4d1f-af13-5abe46b99921';\r\n // userCommunityText: string;\r\n // whatnew12: string;\r\n\r\n releaseNote: string;\r\n whatsNew: string;\r\n lblAgentCentral: string;\r\n descAgentCentral: string;\r\n lblEFSChat: string;\r\n descEFSChat: string;\r\n lblDeloitteVoice: string;\r\n descDeloitteVoice: string;\r\n lblGenDUpdates: string;\r\n descGenDUpdates1: string;\r\n descGenDUpdates2: string;\r\n descGenDUpdates3: string;\r\n lblGeneralImprovements: string;\r\n descGeneralImprovements: string;\r\n constructor( private modalService: ModalService, private i18n: I18nService,public appcomponentservice: AppComponentService\r\n ){}\r\n\r\n // @Input() isInverse: boolean;\r\n manageLocale(){\r\n this.i18n\r\n .getLocaleObs()\r\n .pipe(takeUntil(this.destroy))\r\n .subscribe((locale) => {\r\n switch (locale) {\r\n case \"FR\":\r\n this.lang1 = 'fr';\r\n this.whatsNew = \"Quoi de neuf ?\";\r\n this.releaseNote=\"Note de la version 2025-31-01:\";\r\n // this.whatsnew1 = 'Présentation de la';\r\n // this.userCommunityText = \"Communauté des Utilisateurs de Gen-D\";\r\n // this.whatnew12 = \"une communauté collaborative pour faire entendre votre voix\";\r\n // this.whatsnew2 = \"Ajout des paramètres de discussion pour un contrôle utilisateur granulaire\";\r\n // this.whatsnew3 = 'Nouvelle interface utilisateur et éléments visuels';\r\n // this.whatsnew4 = \"Amélioration de l'expérience utilisateur et meilleure stabilité\";\r\n // this.whatsnew5 = 'Optimisation des performances avec des interactions plus intuitives';\r\n this.lblAgentCentral =\"Agent Central\";\r\n this.descAgentCentral = \"Outils et ressources centralisés pour une productivité accrue.\";\r\n this.lblEFSChat =\"EFS Chat (Bêta)\";\r\n this.descEFSChat = \"Discussion avec une base de connaissances sélectionnée des Services Financiers d'Engagement.\";\r\n this.lblDeloitteVoice =\"Deloitte Voice - Révision (Bêta)\";\r\n this.descDeloitteVoice = \"Réviseur de conformité de marque à la demande.\";\r\n this.lblGenDUpdates = \"Mises à Jour de Gen-D\";\r\n this.descGenDUpdates1 = \"Historique de chat Gen-D : Accédez et reprenez les sessions de chat précédentes.\";\r\n this.descGenDUpdates2 = \"Paramètres de chat Gen-D mis à jour pour une meilleure convivialité.\";\r\n this.descGenDUpdates3 = \"Vidéo d'introduction à l'intégration de Gen-D.\";\r\n this.lblGeneralImprovements= \"Améliorations Générales\";\r\n this.descGeneralImprovements = \"Améliorations générales de l'interface utilisateur pour une meilleure convivialité.\";\r\n break;\r\n default:\r\n this.lang1 = 'en';\r\n this.whatsNew = \"What's New\";\r\n this.releaseNote=\"Release Note 2025-01-31:\";\r\n // this.whatsnew1 = 'Introducing';\r\n // this.userCommunityText = \"Gen-D User Community\";\r\n // this.whatnew12 = \": a collaborative community to get your voice heard\";\r\n // this.whatsnew2 = 'Added Chat Settings for granular user control';\r\n // this.whatsnew3 = 'Brand new UI and visual elements';\r\n // this.whatsnew4 = 'Improved UX and product behavior ';\r\n // this.whatsnew5 = 'Performance optimization along with more intuitive interaction';\r\n this.lblAgentCentral =\"Agent Central\";\r\n this.descAgentCentral = \"Centralized tools and resources for enhanced productivity.\";\r\n this.lblEFSChat =\"EFS Chat (Beta)\";\r\n this.descEFSChat = \"Chat with curated Engagement Financial Services knowledgebase.\";\r\n this.lblDeloitteVoice = \"Deloitte Voice - Revision (Beta)\";\r\n this.descDeloitteVoice = \"On-demand branding compliance revisor.\";\r\n this.lblGenDUpdates= \"Gen-D Updates\";\r\n this.descGenDUpdates1 = \"Gen-D chat history: Access and resume previous chat sessions.\";\r\n this.descGenDUpdates2 = \"Updated Gen-D chat settings for improved usability.\";\r\n this.descGenDUpdates3 = \"Gen-D onboarding intro video.\";\r\n this.lblGeneralImprovements=\"General Improvements\";\r\n this.descGeneralImprovements = \"General UI improvements for enhanced usability.\";\r\n break;\r\n }\r\n });\r\n}\r\n close() {\r\n this.modalService.close();\r\n }\r\n\r\n ngOnInit() {\r\n this.manageLocale();\r\n\r\n //centering chat settings modal\r\n const sidebar = document.getElementById(\"sidebar\")\r\n if (!sidebar?.classList.contains('show') && !sidebar?.classList.contains('hidden')) { //if (!sidebar?.classList.contains('show') || !sidebar?.classList.contains('hidden')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n }\r\n else {\r\n if (sidebar?.classList.contains('show')) {\r\n this.appcomponentservice.setIsPinChecked(true);\r\n }\r\n else {\r\n this.appcomponentservice.setIsPinChecked(false);\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{whatsNew}}\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

{{releaseNote}}

\r\n

\r\n

{{lblAgentCentral}}

\r\n
    \r\n
  • \r\n {{descAgentCentral}}\r\n
  • \r\n
\r\n

{{lblEFSChat}}

\r\n
    \r\n
  • \r\n {{descEFSChat}}\r\n
  • \r\n
\r\n

{{lblDeloitteVoice}}

\r\n
    \r\n
  • \r\n {{descDeloitteVoice}}\r\n
  • \r\n
\r\n

{{lblGenDUpdates}}

\r\n
    \r\n
  • \r\n {{descGenDUpdates1}}\r\n
  • \r\n
  • \r\n {{descGenDUpdates2}}\r\n
  • \r\n
  • \r\n {{descGenDUpdates3}}\r\n
  • \r\n
\r\n

{{lblGeneralImprovements}}

\r\n
    \r\n
  • \r\n {{descGeneralImprovements}}\r\n
  • \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
","import { LogLevel, Configuration, BrowserCacheLocation } from '@azure/msal-browser';\r\nimport { environment } from 'src/app/environments/environment';\r\n\r\nconst isIE = window.navigator.userAgent.indexOf(\"MSIE \") > -1 || window.navigator.userAgent.indexOf(\"Trident/\") > -1;\r\n\r\nexport const msalConfig: Configuration = { \r\n auth: {\r\n clientId:environment.clientId, \r\n authority: \"https://login.microsoftonline.com/\"+environment.tenentId, \r\n redirectUri: '/',\r\n postLogoutRedirectUri: '/', \r\n //clientCapabilities: ['CP1'] // This lets the resource server know that this client can handle claim challenges.\r\n },\r\n cache: {\r\n cacheLocation: BrowserCacheLocation.LocalStorage, \r\n storeAuthStateInCookie: isIE, \r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback(logLevel: LogLevel, message: string) {\r\n console.log(message);\r\n },\r\n logLevel: LogLevel.Verbose,\r\n piiLoggingEnabled: false\r\n }\r\n }\r\n}\r\nexport const protectedResources = {\r\n apiDBot: {\r\n endpoint:environment.APIBaseUrl, \r\n scopes: {\r\n write: [environment.APIScopeURL]\r\n }\r\n },\r\n uploadDocument: {\r\n endpoint: environment.uploadDocumentURL,\r\n scopes: {\r\n write: [environment.APIScopeURL]\r\n }\r\n },\r\n resetUploadedDocument: {\r\n endpoint: environment.refreshDocumentURL,\r\n scopes: {\r\n read: [environment.APIScopeURL]\r\n }\r\n },\r\n processUploadedDocument: {\r\n endpoint: environment.processDocumentURL,\r\n scopes: {\r\n read: [environment.APIScopeURL]\r\n }\r\n },\r\n searchSummaryDocument : {\r\n endpoint: environment.summaryDocumentURL,\r\n scopes: {\r\n write: [environment.APIScopeURL]\r\n }\r\n },\r\n conversationHistory : {\r\n endpoint: environment.summaryDocumentURL,\r\n scopes: {\r\n write: [environment.APIScopeURL]\r\n }\r\n },\r\n orange : {\r\n endpoint: environment.orangeProjectURL,\r\n scopes:{\r\n write: [environment.APIScopeURL]\r\n }\r\n },\r\n verifyuser : {\r\n endpoint: environment.verifyUserURL,\r\n scopes:{\r\n write: [environment.APIScopeURL] \r\n }\r\n }\r\n \r\n}\r\n\r\nexport const loginRequest = {\r\n scopes: []\r\n};","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\n\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 5637,\n\t\"./af.js\": 5637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 4508,\n\t\"./ar-dz.js\": 4508,\n\t\"./ar-kw\": 7504,\n\t\"./ar-kw.js\": 7504,\n\t\"./ar-ly\": 5373,\n\t\"./ar-ly.js\": 5373,\n\t\"./ar-ma\": 2412,\n\t\"./ar-ma.js\": 2412,\n\t\"./ar-ps\": 8823,\n\t\"./ar-ps.js\": 8823,\n\t\"./ar-sa\": 6670,\n\t\"./ar-sa.js\": 6670,\n\t\"./ar-tn\": 6448,\n\t\"./ar-tn.js\": 6448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 3009,\n\t\"./az.js\": 3009,\n\t\"./be\": 8299,\n\t\"./be.js\": 8299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 1171,\n\t\"./bm.js\": 1171,\n\t\"./bn\": 3590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 3590,\n\t\"./bo\": 4309,\n\t\"./bo.js\": 4309,\n\t\"./br\": 4130,\n\t\"./br.js\": 4130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 5294,\n\t\"./ca.js\": 5294,\n\t\"./cs\": 3028,\n\t\"./cs.js\": 3028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 342,\n\t\"./cy.js\": 342,\n\t\"./da\": 8269,\n\t\"./da.js\": 8269,\n\t\"./de\": 1489,\n\t\"./de-at\": 2123,\n\t\"./de-at.js\": 2123,\n\t\"./de-ch\": 7757,\n\t\"./de-ch.js\": 7757,\n\t\"./de.js\": 1489,\n\t\"./dv\": 8152,\n\t\"./dv.js\": 8152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 6668,\n\t\"./en-au.js\": 6668,\n\t\"./en-ca\": 6798,\n\t\"./en-ca.js\": 6798,\n\t\"./en-gb\": 3615,\n\t\"./en-gb.js\": 3615,\n\t\"./en-ie\": 1364,\n\t\"./en-ie.js\": 1364,\n\t\"./en-il\": 9907,\n\t\"./en-il.js\": 9907,\n\t\"./en-in\": 533,\n\t\"./en-in.js\": 533,\n\t\"./en-nz\": 3190,\n\t\"./en-nz.js\": 3190,\n\t\"./en-sg\": 1096,\n\t\"./en-sg.js\": 1096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 7726,\n\t\"./es-do\": 5010,\n\t\"./es-do.js\": 5010,\n\t\"./es-mx\": 3654,\n\t\"./es-mx.js\": 3654,\n\t\"./es-us\": 9043,\n\t\"./es-us.js\": 9043,\n\t\"./es.js\": 7726,\n\t\"./et\": 5343,\n\t\"./et.js\": 5343,\n\t\"./eu\": 728,\n\t\"./eu.js\": 728,\n\t\"./fa\": 787,\n\t\"./fa.js\": 787,\n\t\"./fi\": 1771,\n\t\"./fi.js\": 1771,\n\t\"./fil\": 5335,\n\t\"./fil.js\": 5335,\n\t\"./fo\": 9761,\n\t\"./fo.js\": 9761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 8991,\n\t\"./fr-ca.js\": 8991,\n\t\"./fr-ch\": 7280,\n\t\"./fr-ch.js\": 7280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 4203,\n\t\"./fy.js\": 4203,\n\t\"./ga\": 9858,\n\t\"./ga.js\": 9858,\n\t\"./gd\": 8605,\n\t\"./gd.js\": 8605,\n\t\"./gl\": 7365,\n\t\"./gl.js\": 7365,\n\t\"./gom-deva\": 3896,\n\t\"./gom-deva.js\": 3896,\n\t\"./gom-latn\": 5587,\n\t\"./gom-latn.js\": 5587,\n\t\"./gu\": 7950,\n\t\"./gu.js\": 7950,\n\t\"./he\": 2029,\n\t\"./he.js\": 2029,\n\t\"./hi\": 1897,\n\t\"./hi.js\": 1897,\n\t\"./hr\": 9816,\n\t\"./hr.js\": 9816,\n\t\"./hu\": 2253,\n\t\"./hu.js\": 2253,\n\t\"./hy-am\": 8196,\n\t\"./hy-am.js\": 8196,\n\t\"./id\": 1307,\n\t\"./id.js\": 1307,\n\t\"./is\": 5474,\n\t\"./is.js\": 5474,\n\t\"./it\": 3099,\n\t\"./it-ch\": 8188,\n\t\"./it-ch.js\": 8188,\n\t\"./it.js\": 3099,\n\t\"./ja\": 9127,\n\t\"./ja.js\": 9127,\n\t\"./jv\": 182,\n\t\"./jv.js\": 182,\n\t\"./ka\": 758,\n\t\"./ka.js\": 758,\n\t\"./kk\": 3444,\n\t\"./kk.js\": 3444,\n\t\"./km\": 2034,\n\t\"./km.js\": 2034,\n\t\"./kn\": 6223,\n\t\"./kn.js\": 6223,\n\t\"./ko\": 3064,\n\t\"./ko.js\": 3064,\n\t\"./ku\": 8714,\n\t\"./ku-kmr\": 961,\n\t\"./ku-kmr.js\": 961,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 2062,\n\t\"./ky.js\": 2062,\n\t\"./lb\": 4796,\n\t\"./lb.js\": 4796,\n\t\"./lo\": 9279,\n\t\"./lo.js\": 9279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 1840,\n\t\"./lv.js\": 1840,\n\t\"./me\": 2240,\n\t\"./me.js\": 2240,\n\t\"./mi\": 3588,\n\t\"./mi.js\": 3588,\n\t\"./mk\": 5518,\n\t\"./mk.js\": 5518,\n\t\"./ml\": 7823,\n\t\"./ml.js\": 7823,\n\t\"./mn\": 8657,\n\t\"./mn.js\": 8657,\n\t\"./mr\": 1285,\n\t\"./mr.js\": 1285,\n\t\"./ms\": 3014,\n\t\"./ms-my\": 6253,\n\t\"./ms-my.js\": 6253,\n\t\"./ms.js\": 3014,\n\t\"./mt\": 167,\n\t\"./mt.js\": 167,\n\t\"./my\": 7940,\n\t\"./my.js\": 7940,\n\t\"./nb\": 14,\n\t\"./nb.js\": 14,\n\t\"./ne\": 9023,\n\t\"./ne.js\": 9023,\n\t\"./nl\": 4208,\n\t\"./nl-be\": 1412,\n\t\"./nl-be.js\": 1412,\n\t\"./nl.js\": 4208,\n\t\"./nn\": 1354,\n\t\"./nn.js\": 1354,\n\t\"./oc-lnc\": 870,\n\t\"./oc-lnc.js\": 870,\n\t\"./pa-in\": 389,\n\t\"./pa-in.js\": 389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 4774,\n\t\"./pt-br\": 3003,\n\t\"./pt-br.js\": 3003,\n\t\"./pt.js\": 4774,\n\t\"./ro\": 5333,\n\t\"./ro.js\": 5333,\n\t\"./ru\": 3451,\n\t\"./ru.js\": 3451,\n\t\"./sd\": 3921,\n\t\"./sd.js\": 3921,\n\t\"./se\": 9682,\n\t\"./se.js\": 9682,\n\t\"./si\": 582,\n\t\"./si.js\": 582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 5337,\n\t\"./sl.js\": 5337,\n\t\"./sq\": 9358,\n\t\"./sq.js\": 9358,\n\t\"./sr\": 683,\n\t\"./sr-cyrl\": 9382,\n\t\"./sr-cyrl.js\": 9382,\n\t\"./sr.js\": 683,\n\t\"./ss\": 1156,\n\t\"./ss.js\": 1156,\n\t\"./sv\": 9855,\n\t\"./sv.js\": 9855,\n\t\"./sw\": 8536,\n\t\"./sw.js\": 8536,\n\t\"./ta\": 7754,\n\t\"./ta.js\": 7754,\n\t\"./te\": 7809,\n\t\"./te.js\": 7809,\n\t\"./tet\": 1297,\n\t\"./tet.js\": 1297,\n\t\"./tg\": 2527,\n\t\"./tg.js\": 2527,\n\t\"./th\": 5862,\n\t\"./th.js\": 5862,\n\t\"./tk\": 9331,\n\t\"./tk.js\": 9331,\n\t\"./tl-ph\": 4387,\n\t\"./tl-ph.js\": 4387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 9732,\n\t\"./tr.js\": 9732,\n\t\"./tzl\": 9570,\n\t\"./tzl.js\": 9570,\n\t\"./tzm\": 3553,\n\t\"./tzm-latn\": 7699,\n\t\"./tzm-latn.js\": 7699,\n\t\"./tzm.js\": 3553,\n\t\"./ug-cn\": 5674,\n\t\"./ug-cn.js\": 5674,\n\t\"./uk\": 9974,\n\t\"./uk.js\": 9974,\n\t\"./ur\": 5773,\n\t\"./ur.js\": 5773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 7135,\n\t\"./uz-latn.js\": 7135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 2424,\n\t\"./vi.js\": 2424,\n\t\"./x-pseudo\": 767,\n\t\"./x-pseudo.js\": 767,\n\t\"./yo\": 150,\n\t\"./yo.js\": 150,\n\t\"./zh-cn\": 1828,\n\t\"./zh-cn.js\": 1828,\n\t\"./zh-hk\": 6644,\n\t\"./zh-hk.js\": 6644,\n\t\"./zh-mo\": 9305,\n\t\"./zh-mo.js\": 9305,\n\t\"./zh-tw\": 1860,\n\t\"./zh-tw.js\": 1860\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5358;"],"names":["EventEmitter","DragdropfileDirective","constructor","sharingService","isDragDropEnabled","filesDropped","onDragover","evt","preventDefault","stopPropagation","fileOver","onDragLeave","onDrop","files","dataTransfer","length","emit","Array","from","setFileData","setIsDragDropEnabled","enabled","i0","ɵɵdirectiveInject","i1","SharingmessageService","selectors","hostVars","hostBindings","DragdropfileDirective_HostBindings","rf","ctx","ɵɵlistener","DragdropfileDirective_dragover_HostBindingHandler","$event","DragdropfileDirective_dragleave_HostBindingHandler","DragdropfileDirective_drop_HostBindingHandler","ɵɵclassProp","LoadingService","isLoading","deletechat","setLoadingState","state","setUserMessage","usermessageService","setdeleteConv","setstopstreaming","stopstreaming","factory","ɵfac","providedIn","of","AgentsService","appComponentService","agents","id","name","en","fr","version","warning","description","isTooltipDisabled","path","disabled","getAgents","getAgentById","find","agent","getAgentByPath","updateAgentDisabledStatus","isEFSUser","efsAgent","ɵɵinject","AppComponentService","Subject","isNewChatVisible","isMainContentDisables","isModelOpen","isPinChecked","triggerNewChatFunction","triggerNewChatFunction$","asObservable","isSendButtonDisabled","conversationDataSubject","conversationData$","triggerdeleteFunction","triggerdeleteFunction$","newTaskSubject","newTask$","isNewTaskDisabled","setConversationId","data","conversationData","next","setSystemSettings","obj","systemSettings","setSystemModel","model","systemModel","NewChatFunction","deleteconvFunc","setIsModelOpen","value","setIsPinChecked","setIsSendButtonDisabled","setIsNewChatVisible","setIsEFSSUser","disableNewTaskButton","enableNewTaskButton","triggerNewTask","map","HttpParams","protectedResources","HttpHeaders","HeaderElmnts","GRAPH_ENDPOINT","ChatService","httpClient","https","http","msalService","switch_value","chatGptUrl","apiurl","apiDBot","endpoint","summaryApiUrl","searchSummaryDocument","orangeApiUrl","orange","verifyApiUrl","verifyuser","responsivePriority","profile","toggle_button","gptModel","toggle_analyzer","toggle_value","getSearchResult","search","Model","temp","topP","fpenalty","ppenalty","sysmessage","convid","headers","set","params","append","options","post","getMarkdownContent","regenerateFlag","pipe","response","getStreaming1","_this","_asyncToGenerator","url","Promise","resolve","reject","account","instance","getAllAccounts","acquireTokenSilent","scopes","write","toPromise","then","token","fetch","method","Authorization","accessToken","body","JSON","stringify","userQuery","convId","temperature","frequencyPenalty","presencePenalty","systemMessage","ok","Error","getReader","catch","error","getStreaming","_this2","console","log","getSearchRes","responseLength","getOrangeResult","headers3","getDocumentResult","headers2","prompt","getEFSData","verifyPreviewUser","downloadDocument","fileName","get","reportProgress","observe","responseType","verifyEFSUser","getKBChecks","HttpClient","i2","MsalService","ConHistoryService","getconversationId","chatHistoryId","RenameLabel","newLabel","deleteConvId","delete","DeloitteVoiceService","baseUrl","uploadDocument","formData","downloadFile","reviseDocument","request","getStatus","taskId","DocumentUploadService","blobUrl","docupUrl","processUploadedDocument","ProcessDocuments","GenerateEmbeddings","ShowSummary","environment","FeedbackService","submitFeedbackData","feedbackURL","submitDocFeedbackData","docfeedbackURL","submitEFSFeedbackData","BehaviorSubject","LanguageServiceService","currentLanguage","setCurrentLanguage","language","getCurrentLanguage","RecentAgentsService","MAX_RECENT_PATHS","recentPathsSubject","recentPaths$","addRecentPath","currentPaths","filteredPaths","filter","p","newPaths","slice","ResetBlobStorageService","refresBlobUrl","resetUploadedDocument","ResetChatService","triggerReset","resetSubject","reset$","fileData","isPinned","bs","bs2","isPinnedSubject","obs","obs2","isPinnedObs","changeData","editedData","setData","getData","getFileData","setIsPinned","getIsPinned","takeUntil","ɵɵelementStart","AgentCentralComponent_div_12_Template_div_click_0_listener","agent_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","navigateTo","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵproperty","ComingSoontext","ɵɵpureFunction1","_c0","ɵɵadvance","ɵɵtextInterpolate1","ɵɵtextInterpolate","AgentCentralComponent","agentService","router","loadingService","i18n","chatservice","searchTerm","searchDisabled","selectedCategory","searchResultsVisible","currentIndex","destroy","lblPageDescriptionPart2","tutorialLink","tutorialLinkDescription","allAgents","filteredAgents","manageLocale","getLocaleObs","subscribe","locale","lblPageTitle","lblPopularAgents","lblAllAgents","lblPageDescriptionPart1","ngOnInit","result","updateDisplayedAgents","prevAgents","nextAgents","navigate","i3","Router","i4","i5","I18nService","i6","decls","vars","consts","template","AgentCentralComponent_Template","ɵɵtemplate","AgentCentralComponent_div_12_Template","RouterModule","MsalGuard","BrowserUtils","HomeComponent","DocumentAnalyzerComponent","EfsComponent","ErrorComponent","routes","component","canActivate","redirectTo","AppRoutingModule","forRoot","initialNavigation","isInIframe","isInPopup","imports","exports","Themes","MSAL_GUARD_CONFIG","EN","SystemsettingsComponent","WhatsnewComponent","AppComponent_div_0_div_61_Template_button_click_1_listener","_r3","ctx_r1","newChatchat","appcomponentservice","_c11","isSelected","lblNewChat","AppComponent_div_0_div_62_Template_button_click_1_listener","_r4","newTask","lblNewTask","AppComponent_div_0_div_63_Template_button_click_1_listener","_r5","openSystemSettingsModal","_c5","lblChatSettings","AppComponent_div_0_Template_div_click_6_listener","AppComponent_div_0_Template_span_click_11_listener","togglePin","AppComponent_div_0_Template_span_click_14_listener","toggleUnPin","AppComponent_div_0_Template_div_click_18_listener","AppComponent_div_0_Template_select_click_24_listener","onClickSystemModel","ɵɵtwoWayListener","AppComponent_div_0_Template_select_ngModelChange_24_listener","ɵɵtwoWayBindingSet","AppComponent_div_0_Template_select_change_24_listener","changeSystemModel","AppComponent_div_0_Template_select_mouseover_24_listener","showTooltip","AppComponent_div_0_Template_select_mouseout_24_listener","hideTooltip","AppComponent_div_0_Template_div_click_32_listener","AppComponent_div_0_Template_app_recent_agents_agentClicked_38_listener","AppComponent_div_0_Template_div_click_44_listener","openUserCommunityLink","AppComponent_div_0_Template_div_click_46_listener","openReportbugLink","AppComponent_div_0_Template_div_click_48_listener","openPrivacyPolicyink","AppComponent_div_0_Template_div_click_55_listener","AppComponent_div_0_div_61_Template","AppComponent_div_0_div_62_Template","AppComponent_div_0_div_63_Template","AppComponent_div_0_Template_button_click_66_listener","openWhatsNewModel","AppComponent_div_0_Template_select_change_71_listener","onLanguageChange","ɵɵpureFunction0","_c4","ɵɵpureFunction3","_c6","ɵɵsanitizeUrl","lblChat","text","tooltipInvokeType","tooltipType","tooltipSize","tooltipPosition","tooltipIndent","tooltipHasBeak","tooltipIsOutsideClick","tooltipIsDynamic","tooltipCustomClass","ɵɵtwoWayProperty","_c7","ɵɵpureFunction2","_c8","lblSettings","lblUserCommunity","lblReportBug","ɵɵpropertyInterpolate","privacy_URL","lblprivacy_URL","_c9","_c10","showNewTaskButton","lblWhatsNew","selectedLanguage","AppComponent","msalGuardConfig","authService","msalBroadcastService","route","chatService","elRef","renderer","modalService","languageService","resetChatService","sharingmessageService","conHistoryService","title","teamsChannelUrl","report_Bug","isSystemSettingsModalOpen","verifyPreviewvalue","conversationsList","tooltipVisible","txtTooltipHeader","txtTooltipBody","convTooltipBody","hidemodelSelect","editIndex","showload","hisIsLoading","editedLabel1","isShown","dropdownIndex","selectedChatIndex","newchatclicked","newchatcount","isEditing","originalLabels","tooltipDisabled","tooltipIsDisabled","tooltipIsInverse","tooltipShowDelay","tooltipHideDelay","tooltipTheme","dark","close","open","lstoptionDislike","onClosed","res","serviceFuncSetIsPinned","pinSidebar","pinIcon","undefined","removeClass","nativeElement","addClass","unpinIcon","setTimeout","document","getElementById","classList","remove","add","sidebar","contains","handleMouseLeave","chatInput","dynamicContent","chatMainContainer","mainContent","window","event","modalRef","isFooter","size","systemprompt","personality","responselength","handleMainContentMouseLeave","clientX","ngAfterViewInit","addEventListener","bind","ngAfterContentChecked","lblChatHistory","lblRecent10Conversations","lblChatHistoryRename","lblChatHistoryDelete","verifyPreviewUSer","setLocale","location","pathname","documentAnalyzerRedirect","gendchatRedirect","target","startsWith","convidstore","label","newChat","newChatroute","getConvList","isShownconv","isEdit","fill","chathistoryclick","index","saveEditedlabel","editedLabel","showNewButton","startEdit","cancelEdit","originalLabel","deleteConv","chatConvId","removeGlobalClickListener","onRename","editedconvlabel","toggleDropdown","agentcentral","onDocumentClick","dropdown","addGlobalClickListener","globalClickListener","listen","closest","ngOnDestroy","MsalBroadcastService","ActivatedRoute","ElementRef","Renderer2","i7","i8","i9","ModalService","i10","i11","i12","i13","viewQuery","AppComponent_Query","AppComponent_mousemove_HostBindingHandler","ɵɵresolveDocument","AppComponent_click_HostBindingHandler","AppComponent_div_0_Template","AppComponent_div_1_Template","BrowserModule","ButtonModule","AccordionModule","DatepickerModule","ExpandableRowModule","FilterModule","SortByModule","VerticalTabsModule","FocusHandlerModule","InputModule","SelectModule","CardModule","ProfileModule","HeaderModule","ModalModule","ResizeHandlerModule","UploaderModule","CheckboxModule","ReactiveFormsModule","FormsModule","TabsModule","TextareaModule","TooltipModule","HTTP_INTERCEPTORS","HttpClientModule","I18nModule","WizardModule","PublicClientApplication","InteractionType","MsalInterceptor","MsalModule","MSAL_INSTANCE","MSAL_INTERCEPTOR_CONFIG","MsalRedirectComponent","msalConfig","loginRequest","ClipboardModule","ToastModule","DropdownModule","FeedbackLikeComponent","FeedbackDisLikeComponent","MarkdownModule","TagsModule","PreviewPopupComponent","RecentAgentsComponent","DeloitteVoiceComponent","DeloitteVoiceFlowComponent","DeloitteVoiceCreateComponent","DeloitteVoiceReviseComponent","SelectDropdownComponent","FileUploadComponent","FileDownloadCardComponent","DeloitteVoiceProcessingComponent","DeloitteVoiceCompletedComponent","DeloitteVoiceErrorComponent","FileDisplayComponent","isIE","navigator","userAgent","indexOf","loggerCallback","logLevel","message","MSALInstanceFactory","MSALInterceptorConfigFactory","protectedResourceMap","Map","httpMethod","read","conversationHistory","interactionType","Redirect","MSALGuardConfigFactory","authRequest","AppModule","bootstrap","provide","useClass","multi","useFactory","declarations","FileDisplayComponent_div_0_div_1_Template_img_click_3_listener","file_r2","removeFile","FileDisplayComponent_div_0_div_1_Template","fileRemoved","file","inputs","outputs","FileDisplayComponent_Template","FileDisplayComponent_div_0_Template","isDisabled","fileClicked","onFileClick","FileDownloadCardComponent_Template","FileDownloadCardComponent_Template_div_click_1_listener","_c1","forwardRef","NG_VALUE_ACCESSOR","fileLimit","lblUploadDocOne","lblUploadDocMultiple","errorMessage","maxFileSize","acceptedFileTypes","filesUploaded","dragOver","onFilesAdded","input","validateFiles","onDragOver","lblDragHere","lblSupportedFiles","join","toUpperCase","updateAcceptedFileTypesString","ngOnChanges","acceptedFileTypesString","ext","trim","validFiles","currentFileCount","validateFileSize","validateFileType","push","onChange","sizeInMB","fileExtension","split","pop","toLowerCase","includes","writeValue","registerOnChange","fn","registerOnTouched","onTouched","setDisabledState","clearFiles","FileUploadComponent_Query","useExisting","ɵɵNgOnChangesFeature","FileUploadComponent_Template","FileUploadComponent_Template_div_dragover_0_listener","FileUploadComponent_Template_div_dragleave_0_listener","FileUploadComponent_Template_div_drop_0_listener","FileUploadComponent_Template_div_click_0_listener","fileInput_r2","ɵɵreference","click","FileUploadComponent_Template_input_change_1_listener","FileUploadComponent_p_7_Template","FileUploadComponent_p_10_Template","SelectDropdownComponent_Conditional_6_For_2_Template_div_click_0_listener","option_r3","_r2","ctx_r3","selectOption","ɵɵrepeaterCreate","SelectDropdownComponent_Conditional_6_For_2_Template","_forTrack0","ɵɵrepeater","selectedOption","opt","_value","placeholder","valueChange","isOpen","option","onClick","dropdownContainer","SelectDropdownComponent_Query","SelectDropdownComponent_click_HostBindingHandler","SelectDropdownComponent_Template","SelectDropdownComponent_Template_div_click_2_listener","SelectDropdownComponent_Conditional_6_Template","ɵɵconditional","documentUploadService","blob","Blob","type","URL","createObjectURL","a","createElement","href","download","appendChild","removeChild","revokeObjectURL","outputFileName","lblFileReadyToDownload","DeloitteVoiceCompletedComponent_Template","DeloitteVoiceCompletedComponent_Template_app_file_download_card_fileClicked_1_listener","goBackEvent","goBack","lblErrorHeader","lblErrorDetailsPart1","lblErorrDetailsTeamsChannel","lblErrorDetailsPart2","lblErrorDetailsHere","lblErrorDetailsPart3","serviceNowLink","lblGoBack","DeloitteVoiceErrorComponent_Template","DeloitteVoiceErrorComponent_Template_button_click_14_listener","ctx_r0","inputFileName","contentFormat","lblContentBeingRevised","DeloitteVoiceProcessingComponent_Template","DeloitteVoiceProcessingComponent_app_file_download_card_1_Template","DeloitteVoiceCreateComponent_Template","DeloitteVoiceFlowComponent_div_9_Template_div_click_0_listener","option_r2","selectFlow","flowOptions","getProfile","lblNameGreeting","lblDescription","displayName","givenName","DeloitteVoiceFlowComponent_Template","DeloitteVoiceFlowComponent_div_9_Template","ɵɵtextInterpolate2","Validators","DeloitteVoiceStage","TaskStatus","DeloitteVoiceTaskStatus","switchMap","interval","takeWhile","tap","catchError","throwError","lblContentRevision","lblContentRevisionDesc","lblEnterContentHere","DeloitteVoiceReviseComponent_form_0_div_16_Template_app_file_upload_filesUploaded_2_listener","onFileChange","uploadedFile","DeloitteVoiceReviseComponent_form_0_app_file_display_17_Template_app_file_display_fileRemoved_0_listener","tmp_2_0","form","DeloitteVoiceReviseComponent_form_0_Template_form_ngSubmit_0_listener","process","DeloitteVoiceReviseComponent_form_0_Template_app_select_dropdown_valueChange_14_listener","onFormatChange","DeloitteVoiceReviseComponent_form_0_div_15_Template","DeloitteVoiceReviseComponent_form_0_div_16_Template","DeloitteVoiceReviseComponent_form_0_app_file_display_17_Template","DeloitteVoiceReviseComponent_form_0_Template_button_click_28_listener","reset","lblToolTips","lblToolTipsDesc","lblContentFormat","lblContentFormatDesc","tmp_8_0","lblAdditionalInstructions","lblAdditionalInstructionsDesc","lblEnterAdditionalInstructions","isFormValid","lblStartProcessing","lblReset","DeloitteVoiceReviseComponent_app_deloitte_voice_completed_2_Template_app_deloitte_voice_completed_fileClicked_0_listener","DeloitteVoiceReviseComponent_app_deloitte_voice_error_3_Template_app_deloitte_voice_error_goBackEvent_0_listener","_r6","fb","deloitteVoiceService","currentStage","STARTED","deloitteVoiceStage","group","required","manualInput","maxLength","additionalInstructions","newTaskSubscription","unsubscribe","stopPolling","lblErorrDetailsHere","patchValue","currentFiles","updatedFiles","f","additionalInstructionsControl","isAdditionalInstructionsValid","valid","PROCESSING","processDocuments","processResponse","postProcessSuccess","handleProcessError","FormData","forEach","item","contentInput","startPolling","postPolling","COMPLETED","FAILED","pollingSubscription","status","Completed","Failed","Pending","InProgress","FormBuilder","DeloitteVoiceReviseComponent_Template","DeloitteVoiceReviseComponent_form_0_Template","DeloitteVoiceReviseComponent_app_deloitte_voice_processing_1_Template","DeloitteVoiceReviseComponent_app_deloitte_voice_completed_2_Template","DeloitteVoiceReviseComponent_app_deloitte_voice_error_3_Template","recentAgentsService","agentPath","DeloitteVoiceComponent_Template","concatMap","delay","v4","uuidv4","ButtonKind","ɵɵelementContainer","DocumentAnalyzerComponent_ng_container_23_div_1_ng_container_4_Template","message_r3","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_1_Template_img_click_0_listener","ctx_r4","i_r6","openFeedbackLikeModel","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_2_Template_img_click_0_listener","_r7","openFeedbackDislikeModel","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_5_Template_img_click_0_listener","_r8","copyToClipboard","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_1_Template","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_2_Template","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_3_Template","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_4_Template","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_5_Template","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_img_6_Template","dislikedIndices","has","likedIndices","isCopy","copyIndex","DocumentAnalyzerComponent_ng_container_23_div_2_div_6_Template","messages","isStreaming","ɵɵelementContainerStart","DocumentAnalyzerComponent_ng_container_23_div_1_Template","DocumentAnalyzerComponent_ng_container_23_div_2_Template","user","DocumentAnalyzerComponent_div_26_Template_span_click_2_listener","_r9","lblSorrySomething1","lblSorrySomething2","StatusMessage","DocumentAnalyzerComponent_div_30_Template_button_click_2_listener","file_r11","_r10","disableProcessing","txtReachedUploadLimit","render","el","cdr","isProcessingCompleted","selectedFiles","isUploadLimitExceeded","MAX_FILE_SIZE","MAX_FILE_COUNT","cancelButtonKind","secondaryLoud","primaryButtonTheme","green","primaryButtonKind","primaryLoud","allowedTypes","FileNames","docerrorMessage","resetDisabled","disableSendButton","guid","likedIndex","dislikedIndex","isLiked","isDisLiked","Set","disabledLikeIndices","disabledDisLikeIndices","messages$","defaultHeight","autoScrollEnabled","lastScrollTop","showScrollToBottom","onFileSelected","getValidFiles","nonDuplicateFiles","some","selectedFile","appendValidFiles","updateUploadLimitFlag","gotSummaryResp","isDefaultText","onFileDropped","fileInput","triggerFileUpload","triggerFileUpload2","fileInput2","onScroll","container","chatContainer","currentScrollTop","scrollTop","scrollHeight","clientHeight","atBottom","OnScrollToBottom","scrollToBottomSlow","start","distance","duration","startTime","animation","currentTime","timeElapsed","progress","Math","min","ease","easeInOutQuad","requestAnimationFrame","t","botRes","FeedbackDisLike","userid","userId","userName","apiResponse","isDocAnalyzerActive","document_Name","doLiked","doDisliked","FeedbackLike","lstlikeOptions","resetDocuments","resetVariables","resetTextareaHeight","userPrompt","lblHelpGreeting","lblHiName","txtUploadDocs","txtYouCanUpload","typesToUpload","ErrorMessage","StatusMessageUpload","StatusMessageProcess","StatusMessagePrepare","btnStartProcessing","btnReset","lblAskFirstQues","resetSubscription","defaultPrompt","msg","startProcessing","docStatusMessage","scrollToBottom","_ref","_ref2","processedFiles","i","summary","simulateStreaming","detectChanges","j","fileItem","_x2","apply","arguments","errorCount","_x","sendMessage","responsetext","tempPrompt","_ref3","fullMessage","output","references","reference","_x3","_this3","chunkSize","addChunk","isBotMessage","substring","ensurePreTagHeaders","userResponse","preTags","querySelectorAll","preTag","existingHeader","querySelector","codeTag","className","classSplit","langName","headerDiv","leftSpan","leftText","createText","rightSpan","icon","insertBefore","copyCode","innerText","replace","referencesIndex","beforeReferences","afterReferences","cleanedAfterReferences","clipboard","writeText","err","isAtBottom","adjustTextareaHeight","textarea","style","height","maxHeight","newHeight","updateChatContainerHeight","messageBoxHeight","wrapperHeight","innerHeight","chatContainerHeight","setStyle","mail","handleKeydown","key","shiftKey","isValidFile","fileList","filesArray","toArray","fromArray","totalSize","getTotalSelectedFilesSize","reduce","sum","dynamicTextarea","ChangeDetectorRef","DocumentAnalyzerComponent_Query","DocumentAnalyzerComponent_Template_div_scroll_1_listener","DocumentAnalyzerComponent_Template_div_drop_11_listener","DocumentAnalyzerComponent_Template_div_dragover_11_listener","DocumentAnalyzerComponent_Template_div_click_11_listener","DocumentAnalyzerComponent_Template_input_change_12_listener","DocumentAnalyzerComponent_div_20_Template","DocumentAnalyzerComponent_ng_container_23_Template","DocumentAnalyzerComponent_div_26_Template","DocumentAnalyzerComponent_div_27_Template","DocumentAnalyzerComponent_div_30_Template","DocumentAnalyzerComponent_Template_div_click_32_listener","DocumentAnalyzerComponent_span_34_Template","DocumentAnalyzerComponent_Template_input_change_35_listener","DocumentAnalyzerComponent_Template_button_click_37_listener","DocumentAnalyzerComponent_Template_button_click_39_listener","DocumentAnalyzerComponent_Template_textarea_ngModelChange_42_listener","DocumentAnalyzerComponent_Template_textarea_input_42_listener","dynamicTextarea_r12","DocumentAnalyzerComponent_Template_textarea_keydown_42_listener","DocumentAnalyzerComponent_Template_button_click_44_listener","DocumentAnalyzerComponent_Template_button_keyup_enter_44_listener","tmp_10_0","ɵɵpipeBind1","moment","EfsComponent_div_0_ng_container_17_div_1_ng_container_4_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_img_1_Template_img_click_0_listener","EfsComponent_div_0_ng_container_17_div_2_div_6_img_2_Template_img_click_0_listener","EfsComponent_div_0_ng_container_17_div_2_div_6_img_5_Template_img_click_0_listener","EfsComponent_div_0_ng_container_17_div_2_div_6_img_1_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_img_2_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_img_3_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_img_4_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_img_5_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_img_6_Template","EfsComponent_div_0_ng_container_17_div_2_div_6_Template","EfsComponent_div_0_ng_container_17_div_1_Template","EfsComponent_div_0_ng_container_17_div_2_Template","EfsComponent_div_0_div_20_Template_span_click_2_listener","EfsComponent_div_0_Template_div_scroll_1_listener","EfsComponent_div_0_ng_container_17_Template","EfsComponent_div_0_div_20_Template","EfsComponent_div_0_Template_textarea_ngModelChange_22_listener","EfsComponent_div_0_Template_textarea_input_22_listener","dynamicTextarea_r10","EfsComponent_div_0_Template_textarea_keydown_22_listener","EfsComponent_div_0_Template_button_click_24_listener","EfsComponent_div_0_Template_button_keyup_enter_24_listener","lblGenDIntro2","KB_URL","lblIndexLastRefreshDate","errorMesg","lblAskQuestion","verifyEFSvalue","kbName","kbid","indexId","isEFSActive","lblGenDIntro1","lblEFS_01","DMSKBURL","content","uniqueSources","source","tempDate","utc","last_updated","local","format","complete","EfsComponent_Query","EfsComponent_div_0_Template","EfsComponent_div_1_Template","production","APIBaseUrl","clientId","tenentId","APIScopeURL","EFSFeedbackURL","uploadDocumentURL","processDocumentURL","refreshDocumentURL","summaryDocumentURL","orangeProjectURL","orangefeedbackURL","verifyUserURL","verifyEFSUserURL","downloadDocumentURL","previewGenDURL","efsURL","defaultMsg1_En","defaultMsg1_Fr","defaultMsg2_En","defaultMsg2_Fr","defaultMsg3_En","defaultMsg3_Fr","lblError","lblAccess","ErrorComponent_Template","ErrorState","updateCharacterCount","apiService","appcomponentService","feedbackRes","lstSelectedOptions","txtFeedback","feedbackDisLike","checkboxState1","checkboxState2","checkboxState3","checkboxState4","checkboxState5","groupOptions","isRequired","isInverse","theme","isIndeterminate","isError","errorState","default","ariaLabel","customClass","lblFeedback","lblGoodResponse","lblCheckbox1","lblCheckbox2","lblCheckbox3","lblCheckbox4","lblCheckbox5","lblAdditionalComment","lblSubmit","stateChanged","x","documentNames","EFSmodel","Submit","feedRes","lstDislikeOptions","FeedbackDisLikeComponent_Template","FeedbackDisLikeComponent_Template_div_click_1_listener","FeedbackDisLikeComponent_Template_dds_button_clicked_7_listener","FeedbackDisLikeComponent_Template_input_ngModelChange_14_listener","FeedbackDisLikeComponent_Template_input_change_14_listener","FeedbackDisLikeComponent_Template_input_ngModelChange_18_listener","FeedbackDisLikeComponent_Template_input_change_18_listener","FeedbackDisLikeComponent_Template_input_ngModelChange_22_listener","FeedbackDisLikeComponent_Template_input_change_22_listener","FeedbackDisLikeComponent_Template_input_ngModelChange_26_listener","FeedbackDisLikeComponent_Template_input_change_26_listener","FeedbackDisLikeComponent_Template_input_ngModelChange_30_listener","FeedbackDisLikeComponent_Template_input_change_30_listener","FeedbackDisLikeComponent_Template_textarea_ngModelChange_37_listener","FeedbackDisLikeComponent_Template_textarea_input_37_listener","FeedbackDisLikeComponent_Template_button_click_43_listener","_c2","feedbackLike","lblLikedFeedbackInParticular","FeedbackLikeComponent_Template","FeedbackLikeComponent_Template_div_click_1_listener","FeedbackLikeComponent_Template_dds_button_clicked_7_listener","FeedbackLikeComponent_Template_textarea_ngModelChange_13_listener","FeedbackLikeComponent_Template_textarea_input_13_listener","FeedbackLikeComponent_Template_button_click_19_listener","HomeComponent_ng_container_30_div_1_ng_container_4_Template","message_r2","HomeComponent_ng_container_30_div_2_div_6_img_1_Template_img_click_0_listener","HomeComponent_ng_container_30_div_2_div_6_img_2_Template_img_click_0_listener","HomeComponent_ng_container_30_div_2_div_6_img_5_Template_img_click_0_listener","HomeComponent_ng_container_30_div_2_div_6_img_7_Template_img_click_0_listener","resetButtonStates","HomeComponent_ng_container_30_div_2_div_6_img_1_Template","HomeComponent_ng_container_30_div_2_div_6_img_2_Template","HomeComponent_ng_container_30_div_2_div_6_img_3_Template","HomeComponent_ng_container_30_div_2_div_6_img_4_Template","HomeComponent_ng_container_30_div_2_div_6_img_5_Template","HomeComponent_ng_container_30_div_2_div_6_img_6_Template","HomeComponent_ng_container_30_div_2_div_6_img_7_Template","conversationmessages","HomeComponent_ng_container_30_div_2_div_6_Template","HomeComponent_ng_container_30_div_1_Template","HomeComponent_ng_container_30_div_2_Template","HomeComponent_div_34_Template_span_click_2_listener","markdownService","newchat","stopStreaming","genDVedio","tempMessages","lblPrivacyPolicy","lblSamplePromptLine","lblSamplePrompt1","lblSamplePrompt2","lblSamplePrompt3","fetchConversationData","conversationSubscription","reverse","element","query","assitant","routerSubscription","textareaRef","messageToRemove","lastIndex","findIndex","actualIndex","updatedMessages","splice","lastMessageIndex","responseStyle","userQueryLength","parsedText","parse","customizedContent","customizeMarkDown","bindActionToCopyIcon","htmlContent","parser","DOMParser","resolvedHtmlContent","doc","parseFromString","preTagRegex","matchAll","aTagRegex","match","beforeHref","afterHref","hasTarget","test","hasRel","newAttributes","updatedHtmlContent","preContent","codeTagClassRegex","codeClassMatch","codeClass","newDivTag","preMatch","idx","copyTag","copyIconTag","copyFavIcon","copyCodeBlock","customizeHyperlinks","markdownContent","aTags","aTag","getAttribute","setAttribute","codeText","textArea","position","select","setSelectionRange","successful","execCommand","copyIcon","plainText","tempCopiedText","tempMarkDown","MarkdownService","HomeComponent_Query","HomeComponent_Template_div_scroll_1_listener","HomeComponent_Template_div_click_20_listener","HomeComponent_Template_div_click_23_listener","HomeComponent_Template_div_click_26_listener","HomeComponent_ng_container_30_Template","HomeComponent_div_34_Template","HomeComponent_Template_textarea_ngModelChange_36_listener","HomeComponent_Template_textarea_input_36_listener","dynamicTextarea_r11","HomeComponent_Template_textarea_keydown_36_listener","HomeComponent_Template_button_click_38_listener","HomeComponent_Template_button_keyup_enter_38_listener","_c3","userCommunityUrl","closePreview","openPreview","lang1","label1","previewText","temp1","temp2","temp3","temp4","preview_option1","preview_option2","whatsnew1","userCommunityText","whatnew12","whatsnew2","whatsnew3","whatsnew4","whatsnew5","PreviewPopupComponent_Template","PreviewPopupComponent_Template_div_click_3_listener","PreviewPopupComponent_Template_button_click_24_listener","agent_r4","path_r2","RecentAgentsComponent_div_4_Template_div_click_0_listener","navigateToPath","RecentAgentsComponent_div_4_ng_container_1_Template","isPathActive","getAgent","agentsService","agentClicked","lblRecentlyUsedAgents","exactMatch","RecentAgentsComponent_Template","RecentAgentsComponent_div_4_Template","LabelPosition","Size","item_r1","counter","heading","item_r2","SystemsettingsComponent_div_14_Template_dds_button_clicked_3_listener","SystemsettingsComponent_div_14_Template_dds_button_clicked_6_listener","onApply","btnClose","btnApply","systemSettingsData","textareaOptions","labelPosition","external","minHeight","maxLengthPosition","sm","personalitySelectOptions","md","isResponsive","stickerWidth","stickerShift","stickerMaxHeight","stickerIsDisabled","stickerPosition","stickerIndent","stickerCustomClass","personalitySelectItems","responseLengthSelectOptions","responseLengthSelectItems","setPersionality","setResponseLength","SystemsettingsComponent_Template","SystemsettingsComponent_Template_div_click_1_listener","SystemsettingsComponent_Template_dds_button_clicked_6_listener","SystemsettingsComponent_Template_dds_textarea_ngModelChange_8_listener","SystemsettingsComponent_Template_dds_select_valueChanged_9_listener","SystemsettingsComponent_dds_select_item_10_Template","SystemsettingsComponent_Template_dds_select_valueChanged_12_listener","SystemsettingsComponent_dds_select_item_13_Template","SystemsettingsComponent_div_14_Template","whatsNew","releaseNote","lblAgentCentral","descAgentCentral","lblEFSChat","descEFSChat","lblDeloitteVoice","descDeloitteVoice","lblGenDUpdates","descGenDUpdates1","descGenDUpdates2","descGenDUpdates3","lblGeneralImprovements","descGeneralImprovements","WhatsnewComponent_Template","WhatsnewComponent_Template_div_click_1_listener","WhatsnewComponent_Template_dds_button_clicked_7_listener","LogLevel","BrowserCacheLocation","auth","authority","redirectUri","postLogoutRedirectUri","cache","cacheLocation","LocalStorage","storeAuthStateInCookie","system","loggerOptions","Verbose","piiLoggingEnabled","__NgCli_bootstrap_1","platformBrowser","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[67]}