{"version":3,"sources":["node_modules/ngx-typed-writer/fesm2022/ngx-typed-writer.mjs","src/app/shared/components/chat/chat.component.ts","src/app/shared/components/chat/chat.component.html"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { viewChild, model, input, booleanAttribute, output, PLATFORM_ID, Component, ChangeDetectionStrategy, Inject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n/* name of class with animation fade out */\nconst _c0 = [\"typedText\"];\nconst _c1 = [\"cursorRef\"];\nfunction NgxTypedWriterComponent_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 2, 1);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\"\", ctx_r0.cursorChar(), \" \");\n }\n}\nconst FADE_OUT_CLASS = 'typed-fade-out';\n\n/**\n * The function `typeHtmlChars` is used to skip over HTML characters in a string if the `isHTML` flag\n * is set to true.\n * @param {boolean} isHTML - A boolean value indicating whether the current string contains HTML\n * characters.\n * @param {string} currentString - The current string that needs to be processed. It can contain HTML\n * characters that need to be skipped over.\n * @param {number} currentStringPosition - The current position in the string that is being processed.\n * @returns the updated value of `currentStringPosition`.\n */\nfunction typeHtmlChars(isHTML, currentString, currentStringPosition) {\n if (!isHTML) return currentStringPosition;\n const currentCharacter = currentString.substring(currentStringPosition).charAt(0);\n if (currentCharacter === '<' || currentCharacter === '&') {\n let endTag = '';\n if (currentCharacter === '<') {\n endTag = '>';\n } else {\n endTag = ';';\n }\n while (currentString.substring(currentStringPosition + 1).charAt(0) !== endTag) {\n currentStringPosition++;\n if (currentStringPosition + 1 > currentString.length) {\n break;\n }\n }\n currentStringPosition++;\n }\n return currentStringPosition;\n}\n/**\n * The function `backSpaceHtmlChars` is a function that takes in a boolean `isHTML`, a\n * string `currentString`, and a number `currentStringPosition`, and returns a new number representing\n * the updated `currentStringPosition` after removing HTML characters.\n * @param {boolean} isHTML - A boolean value indicating whether the current string contains HTML\n * characters or not.\n * @param {string} currentString - The `currentString` parameter is a string that represents the\n * current text or HTML content.\n * @param {number} currentStringPosition - The current position within the current string.\n * @returns the updated value of `currentStringPosition`.\n */\nfunction backSpaceHtmlChars(isHTML, currentString, currentStringPosition) {\n if (!isHTML) return currentStringPosition;\n const currentCharacter = currentString.substring(currentStringPosition).charAt(0);\n if (currentCharacter === '>' || currentCharacter === ';') {\n let endTag = '';\n if (currentCharacter === '>') {\n endTag = '<';\n } else {\n endTag = '&';\n }\n while (currentString.substring(currentStringPosition - 1).charAt(0) !== endTag) {\n currentStringPosition--;\n if (currentStringPosition < 0) {\n break;\n }\n }\n currentStringPosition--;\n }\n return currentStringPosition;\n}\n/**\n * The function `shuffleStringsIfNeeded` shuffles an array of strings if a boolean flag is set to true,\n * otherwise it returns the original array.\n * @param {boolean} shuffle - A boolean value indicating whether the strings should be shuffled or not.\n * @param {string[]} strings - An array of strings that need to be shuffled if the `shuffle` parameter\n * is set to `true`.\n * @returns an array of strings. If the `shuffle` parameter is `false`, it returns the original\n * `strings` array. If `shuffle` is `true`, it returns a shuffled version of the `strings` array.\n */\nfunction shuffleStringsIfNeeded(shuffle, strings) {\n if (!shuffle) return strings;\n return strings.sort(() => Math.random() - 0.5);\n}\nlet NgxTypedWriterComponent = /*#__PURE__*/(() => {\n class NgxTypedWriterComponent {\n constructor(platformId, renderer2) {\n this.platformId = platformId;\n this.renderer2 = renderer2;\n this.typedTextRef = viewChild('typedText');\n this.cursor = viewChild('cursorRef');\n this.strings = model([]);\n this.typeSpeed = input(40);\n this.startDelay = input(0);\n this.backSpeed = input(40);\n this.smartBackspace = input(false, {\n transform: booleanAttribute\n });\n this.shuffle = input(false, {\n transform: booleanAttribute\n });\n this.backDelay = input(1000);\n this.isHTML = input(false, {\n transform: booleanAttribute\n });\n this.fadeOut = input(false, {\n transform: booleanAttribute\n });\n this.loop = input(true, {\n transform: booleanAttribute\n });\n this.showCursor = input(true, {\n transform: booleanAttribute\n });\n this.cursorChar = input('|');\n this.fadeOutDelay = input(500);\n this.currentStringIndex = 0;\n this.currentString = '';\n this.currentStringPosition = 0;\n this.isTypingPaused = false;\n this.stopNum = 0;\n this.destroy = output();\n this.initTyped = output();\n this.completeLoop = output();\n }\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.init();\n }\n }\n ngOnDestroy() {\n clearTimeout(this.timeout);\n this.destroy.emit();\n }\n init() {\n this.strings.set(shuffleStringsIfNeeded(this.shuffle(), this.strings()));\n this.currentString = this.strings()[this.currentStringIndex];\n this.timeout = setTimeout(() => {\n this.typeString();\n this.initTyped.emit();\n }, this.startDelay());\n }\n typeString() {\n if (this.isTypingPaused) return;\n if (this.fadeOut()) {\n const typedElement = this.typedTextRef()?.nativeElement;\n this.renderer2.removeClass(typedElement, FADE_OUT_CLASS);\n if (this.showCursor()) {\n const cursorElement = this.cursor()?.nativeElement;\n this.renderer2.removeClass(cursorElement, FADE_OUT_CLASS);\n }\n }\n if (this.currentStringPosition < this.currentString.length) {\n this.typeCharacter();\n } else {\n this.isTypingPaused = true;\n this.timeout = setTimeout(() => {\n this.isTypingPaused = false;\n this.timeout = setTimeout(() => {\n this.backspaceString();\n }, this.backDelay());\n }, this.typeSpeed());\n }\n }\n typeCharacter() {\n this.timeout = setTimeout(() => {\n this.currentStringPosition = typeHtmlChars(this.isHTML(), this.currentString, this.currentStringPosition);\n const nextString = this.currentString.substring(0, this.currentStringPosition + 1);\n const lastItem = this.strings().at(-1);\n this.typedTextRef().nativeElement.innerHTML = nextString;\n this.currentStringPosition++;\n if (nextString === lastItem && !this.loop()) {\n this.completeLoop.emit();\n return;\n }\n this.typeString();\n }, this.typeSpeed());\n }\n backspaceString() {\n if (this.isTypingPaused) return;\n if (this.fadeOut()) {\n this.initFadeOut();\n return;\n }\n if (this.currentStringPosition > this.stopNum) {\n this.backspaceCharacter();\n } else {\n this.isTypingPaused = true;\n this.timeout = setTimeout(() => {\n this.isTypingPaused = false;\n this.currentStringIndex++;\n if (this.currentStringIndex >= this.strings().length) {\n if (this.loop()) {\n this.currentStringIndex = 0;\n // this.typeString();\n } else {\n return; // Finished typing all strings\n }\n }\n this.currentString = this.strings()[this.currentStringIndex];\n this.timeout = setTimeout(() => {\n this.typeString();\n }, this.typeSpeed());\n }, this.typeSpeed());\n }\n }\n backspaceCharacter() {\n const currentString = this.typedTextRef()?.nativeElement.innerHTML;\n this.currentStringPosition = backSpaceHtmlChars(this.isHTML(), this.currentString, this.currentStringPosition);\n const curStringAtPosition = currentString.substring(0, this.currentStringPosition);\n this.typedTextRef().nativeElement.innerHTML = curStringAtPosition;\n this.timeout = setTimeout(() => {\n // if smartBack is enabled\n if (this.smartBackspace()) {\n // the remaining part of the current string is equal of the same part of the new string\n const nextStringPartial = this.strings()[this.currentStringIndex + 1];\n const compare = curStringAtPosition === nextStringPartial?.substring(0, this.currentStringPosition);\n if (nextStringPartial && compare) {\n this.stopNum = this.currentStringPosition - 1;\n } else {\n this.stopNum = 0;\n }\n }\n if (this.currentStringPosition > this.stopNum) {\n // subtract characters one by one\n this.currentStringPosition--;\n // loop the function\n this.backspaceString();\n } else if (this.currentStringPosition <= this.stopNum) {\n // if the stop number has been reached, increase\n // array position to next string\n this.currentStringIndex++;\n // When looping, begin at the beginning after backspace complete\n if (this.currentStringIndex === this.strings.length) {\n this.currentStringIndex = 0;\n }\n this.typeString();\n }\n }, this.backSpeed());\n }\n initFadeOut() {\n const typedElement = this.typedTextRef()?.nativeElement;\n this.renderer2.addClass(typedElement, FADE_OUT_CLASS);\n if (this.showCursor()) {\n const cursorElement = this.cursor()?.nativeElement;\n this.renderer2.addClass(cursorElement, FADE_OUT_CLASS);\n }\n this.timeout = setTimeout(() => {\n this.currentStringIndex++;\n typedElement.innerHTML = '';\n // Resets current string if end of loop reached\n if (this.strings().length > this.currentStringIndex) {\n this.currentStringPosition = 0;\n this.currentString = this.strings()[this.currentStringIndex];\n this.typeString();\n } else {\n this.currentStringPosition = 0;\n this.currentStringIndex = 0;\n this.currentString = this.strings()[this.currentStringIndex];\n this.typeString(); // this.currentStringIndex++;\n }\n }, this.fadeOutDelay());\n }\n static {\n this.ɵfac = function NgxTypedWriterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxTypedWriterComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxTypedWriterComponent,\n selectors: [[\"ngx-typed-writer\"]],\n viewQuery: function NgxTypedWriterComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuerySignal(ctx.typedTextRef, _c0, 5);\n i0.ɵɵviewQuerySignal(ctx.cursor, _c1, 5);\n }\n if (rf & 2) {\n i0.ɵɵqueryAdvance(2);\n }\n },\n inputs: {\n strings: [1, \"strings\"],\n typeSpeed: [1, \"typeSpeed\"],\n startDelay: [1, \"startDelay\"],\n backSpeed: [1, \"backSpeed\"],\n smartBackspace: [1, \"smartBackspace\"],\n shuffle: [1, \"shuffle\"],\n backDelay: [1, \"backDelay\"],\n isHTML: [1, \"isHTML\"],\n fadeOut: [1, \"fadeOut\"],\n loop: [1, \"loop\"],\n showCursor: [1, \"showCursor\"],\n cursorChar: [1, \"cursorChar\"],\n fadeOutDelay: [1, \"fadeOutDelay\"]\n },\n outputs: {\n strings: \"stringsChange\",\n destroy: \"destroy\",\n initTyped: \"initTyped\",\n completeLoop: \"completeLoop\"\n },\n decls: 3,\n vars: 1,\n consts: [[\"typedText\", \"\"], [\"cursorRef\", \"\"], [1, \"typing-cursor\"]],\n template: function NgxTypedWriterComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", null, 0);\n i0.ɵɵtemplate(2, NgxTypedWriterComponent_Conditional_2_Template, 3, 1, \"span\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx.showCursor() ? 2 : -1);\n }\n },\n styles: [\".typing-cursor[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_blink .7s infinite;display:inline-block;opacity:1;animation:_ngcontent-%COMP%_blink .7s infinite}@keyframes _ngcontent-%COMP%_blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.typed-fade-out[_ngcontent-%COMP%]{opacity:0;transition:opacity .25s}\"],\n changeDetection: 0\n });\n }\n }\n return NgxTypedWriterComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxTypedWriterModule = /*#__PURE__*/(() => {\n class NgxTypedWriterModule {\n static {\n this.ɵfac = function NgxTypedWriterModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxTypedWriterModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxTypedWriterModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return NgxTypedWriterModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NgxTypedWriterComponent, NgxTypedWriterModule };\n","import { DatePipe, KeyValuePipe, TitleCasePipe } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Input, OnInit, ViewChild } from '@angular/core'\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms'\nimport { NgbDropdownModule, NgbPopoverModule, NgbProgressbarModule } from '@ng-bootstrap/ng-bootstrap'\nimport { parse } from 'date-fns'\nimport { IconNamesEnum, NgxBootstrapIconsModule } from 'ngx-bootstrap-icons'\nimport { NgScrollbar, NgScrollbarModule } from 'ngx-scrollbar'\nimport { NgxTypedWriterModule } from 'ngx-typed-writer'\nimport { SafePipe } from 'safe-pipe'\nimport { BackEndService } from 'src/app/services/backend.service'\n\nenum SenderType {\n ChatBot = 'ChatBot',\n User = 'User'\n}\n\ninterface ChatMessage {\n sender: SenderType\n status: string\n content: string\n destination?: string\n timestamp: Date\n token?: string\n showTyping: boolean\n area?: string\n references?: string\n docketNumbers?: number[]\n}\n\ninterface Docket {\n docketid: number\n description: string\n pubDate: string\n visible?: boolean\n}\n\n@Component({\n selector: 'app-chat',\n imports: [\n DatePipe,\n TitleCasePipe,\n ReactiveFormsModule,\n FormsModule,\n NgxBootstrapIconsModule,\n NgbDropdownModule,\n KeyValuePipe,\n NgxTypedWriterModule,\n SafePipe,\n NgbPopoverModule,\n NgScrollbarModule,\n NgbProgressbarModule\n ],\n templateUrl: './chat.component.html',\n styleUrl: './chat.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChatComponent implements OnInit {\n public nodelsConfig: { [key: string]: any } = {\n 'gpt-4o-mini': {\n name: 'Chat GPT-4o Mini',\n enabled: true,\n },\n 'gpt-4o': {\n name: 'Chat GPT-4o',\n enabled: true,\n },\n 'gpt-4': {\n name: 'Chat GPT-4',\n enabled: true,\n },\n 'gemini': {\n name: 'Gemini',\n enabled: true,\n },\n 'grok-2-1212': {\n name: 'Grok',\n enabled: true,\n },\n 'claude': {\n name: 'Claude',\n enabled: true,\n },\n }\n\n @ViewChild('messageContentInput') messageContentTextInput!: ElementRef\n @ViewChild('docketContentInput') docketContentInput!: ElementRef\n\n @Input() articleID: number = 0\n @Input() area: string = 'all'\n @Input() set visible(visible: boolean) {\n if (visible) {\n this.scrollToBottom()\n this.messageContentTextInput?.nativeElement.focus()\n }\n }\n\n @Input() scrollable: NgScrollbar = {} as NgScrollbar\n\n public iconNames = IconNamesEnum\n public messages: ChatMessage[] = []\n\n public messageContent: string = ''\n\n public agentInUse = 'gpt-4o-mini'\n\n private backgroundIntervalTimer = 0\n private messagesInFlight: { [key: string]: ChatMessage } = {}\n\n private backend = inject(BackEndService)\n private changeDetector = inject(ChangeDetectorRef)\n\n public docketNumbers: any[] = []\n\n public docketsForSearch: Docket[] = []\n public docketsForSearchLoading = true\n public docketSearchContent = ''\n\n public ngOnInit() {\n this.backend.loadChatHistory({\n articleID: this.articleID,\n area: this.area\n }).subscribe((response) => {\n this.messages = response.chatHistory\n this.changeDetector.detectChanges()\n })\n }\n\n public onMessageClick(message: ChatMessage) {\n console.log('Message clicked:', message)\n }\n\n public loadBackIntoPrompt(message: ChatMessage) {\n this.messageContent = message.content\n this.messageContentTextInput.nativeElement.focus()\n this.scrollToBottom()\n }\n\n private scrollToBottom() {\n setTimeout(() => this.scrollable?.scrollTo({ bottom: 0 }), 10)\n }\n\n public sendMessage() {\n if (this.messageContent.trim().length > 10) {\n const requestMessage: ChatMessage = {\n sender: SenderType.User,\n status: 'Sending',\n content: this.messageContent,\n timestamp: new Date(),\n showTyping: false,\n area: this.area,\n destination: this.agentInUse,\n docketNumbers: this.docketNumbers\n }\n this.messageContent = ''\n this.messages.push(requestMessage)\n\n this.scrollToBottom()\n\n this.backend.startAIProcess({\n area: this.area,\n message: {\n ...requestMessage,\n status: 'Sent'\n },\n articleID: this.articleID\n }).subscribe((response) => {\n requestMessage.status = 'Sent'\n\n const reply = {\n sender: SenderType.ChatBot,\n status: 'waiting',\n timestamp: new Date(),\n content: 'Typing...',\n token: response.token,\n showTyping: false,\n destination: this.agentInUse,\n }\n this.messages.push(reply)\n this.messagesInFlight[response.token] = reply\n this.startBackgroundProcess()\n this.changeDetector.detectChanges()\n this.scrollToBottom()\n })\n }\n }\n\n public requestAutoResponse() {\n console.log('Requesting auto response')\n }\n\n public clearChatHistory() {\n this.backend.clearChatHistory({\n articleID: this.articleID,\n area: this.area\n }).subscribe(() => {\n this.messages = []\n this.changeDetector.detectChanges()\n })\n }\n\n private startBackgroundProcess() {\n if (this.backgroundIntervalTimer) {\n window.clearInterval(this.backgroundIntervalTimer)\n }\n this.backgroundIntervalTimer = window.setInterval(() => this.checkBackgoundProcess(), 5000)\n }\n\n private checkBackgoundProcess() {\n this.backend.checkAIProcesses(Object.keys(this.messagesInFlight)).subscribe((response) => {\n for (const job of response.jobs) {\n let message = this.messagesInFlight[job.token]\n if (message) {\n if (job.status === 'completed') {\n message.status = 'Delivered'\n let content = job.result.replace(/\\\\n/g, '').replace((/^\"/), '').replace((/\"$/), '')\n\n const matches = content.match(/(.*)(
.*<\\/details>)/)\n if (matches) {\n message.content = matches[1]\n message.references = matches[2]\n } else {\n message.content = content\n }\n message.showTyping = true\n delete this.messagesInFlight[job.token]\n }\n }\n }\n if (Object.keys(this.messagesInFlight).length === 0) {\n window.clearInterval(this.backgroundIntervalTimer)\n }\n this.changeDetector.detectChanges()\n this.scrollToBottom()\n })\n }\n\n public openDocketSearch() {\n if (this.docketsForSearch.length === 0) {\n this.backend.getDockets(this.articleID).subscribe((response: any) => {\n this.docketsForSearch = response.dockets.map((docket: any) => {\n return {\n ...docket,\n visible: true\n }\n })\n this.docketContentInput?.nativeElement.focus()\n this.docketsForSearchLoading = false\n this.changeDetector.detectChanges()\n })\n }\n }\n\n public onDocketSelected(docket: any) {\n if (this.docketNumbers.filter(d => d.docketid === docket.docketid).length === 0) {\n this.docketNumbers.push(docket)\n this.changeDetector.detectChanges()\n }\n }\n\n public removeDocket(docketid: number) {\n this.docketNumbers = this.docketNumbers.filter(d => d.docketid !== docketid)\n this.changeDetector.detectChanges()\n }\n\n public onTypingFinish(message: ChatMessage) {\n message.showTyping = false\n this.scrollToBottom()\n this.changeDetector.detectChanges()\n }\n\n public docketSearch() {\n if (this.docketSearchContent.length > 0) {\n const docketNumber = parseInt(this.docketSearchContent)\n\n if (isNaN(docketNumber)) {\n this.docketsForSearch = this.docketsForSearch.map(docket => {\n docket.visible = docket.description.toLowerCase().includes(this.docketSearchContent.toLowerCase())\n return docket\n })\n } else {\n this.docketsForSearch = this.docketsForSearch.map(docket => {\n docket.visible = docket.docketid === docketNumber\n return docket\n })\n }\n } else {\n this.docketsForSearch.forEach(docket => {\n docket.visible = true\n })\n }\n this.changeDetector.detectChanges()\n }\n}\n","@if (messages.length > 0) {\n\n}\n
\n @for (message of messages; track message; let i = $index) {\n
\n @if (message.sender == 'ChatBot') {\n
\n
\n
\n\n
\n
\n
\n {{ nodelsConfig[ message.destination! ]?.name || 'AI' }}\n \n
\n
\n
\n
\n @if (message.status == 'waiting') {\n
\n
\n
\n } @else {\n @if (message.showTyping) {\n
\n
\n \n
\n
\n } @else {\n
\n }\n }\n
\n
\n
\n
\n }\n @if (message.sender === 'User') {\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n {{ message.content }}\n
\n
\n \n
\n }\n
\n }\n
\n
\n\n
\n
\n @if (articleID > 0) {\n \n @if (docketNumbers.length > 0) {\n @for (docket of docketNumbers; track docket.docketid) {\n
\n \n
\n }\n }\n }\n \n \n
\n @for (model of nodelsConfig | keyvalue; track model.key) {\n @if (model.value.enabled) {\n \n } @else {\n \n }\n }\n
\n \n
\n
\n\n\n
\n
{{docket.docketid}}
\n
{{docket.pubDate}}
\n
\n
\n\n\n
{{docket.description}}
\n
\n\n\n
\n
Search
\n
\n @if (!docketsForSearchLoading) {\n {{docketsForSearch.length}} dockets\n }\n
\n
\n
\n\n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n @if (docketsForSearchLoading) {\n \n } @else {\n \n \n @for (docket of docketsForSearch; track docket.docketid) {\n @if (docket.visible) {\n \n
\n
{{ docket.docketid }} - {{ docket.pubDate }}
\n
{{ docket.description }}
\n
\n \n }\n }\n \n
\n }\n
\n
\n
\n
"],"names":["_c0","_c1","NgxTypedWriterComponent_Conditional_2_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate1","FADE_OUT_CLASS","typeHtmlChars","isHTML","currentString","currentStringPosition","currentCharacter","endTag","backSpaceHtmlChars","shuffleStringsIfNeeded","shuffle","strings","NgxTypedWriterComponent","platformId","renderer2","viewChild","model","input","booleanAttribute","output","isPlatformBrowser","typedElement","cursorElement","nextString","lastItem","curStringAtPosition","nextStringPartial","compare","__ngFactoryType__","ɵɵdirectiveInject","PLATFORM_ID","Renderer2","ɵɵdefineComponent","ɵɵviewQuerySignal","ɵɵqueryAdvance","ɵɵelement","ɵɵtemplate","ɵɵconditional","NgxTypedWriterModule","ɵɵdefineNgModule","ɵɵdefineInjector","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","clearChatHistory","ɵɵtext","ɵɵelementEnd","ɵɵelement","_r6","message_r5","$implicit","onTypingFinish","ɵɵadvance","ɵɵproperty","ɵɵpipeBind2","content","ɵɵsanitizeHtml","ɵɵpureFunction1","_c2","tmp_24_0","references","undefined","tmp_20_0","ɵɵtemplate","ChatComponent_For_3_Conditional_1_Conditional_12_Conditional_0_Template","ChatComponent_For_3_Conditional_1_Conditional_12_Conditional_1_Template","ɵɵconditional","showTyping","_r4","onMessageClick","ChatComponent_For_3_Conditional_1_Conditional_11_Template","ChatComponent_For_3_Conditional_1_Conditional_12_Template","ɵɵtextInterpolate1","nodelsConfig","destination","name","ɵɵtextInterpolate","ɵɵpipeBind1","timestamp","status","_r7","loadBackIntoPrompt","ChatComponent_For_3_Conditional_1_Template","ChatComponent_For_3_Conditional_2_Template","sender","docket_r10","_r9","removeDocket","docketid","iconNames","InfoCircle","docketPopBodyContent_r12","docketPopTitleContent_r11","_c3","X","ɵɵrepeaterCreate","ChatComponent_Conditional_8_Conditional_3_For_1_Template","_forTrack1","ɵɵrepeater","docketNumbers","_r8","openDocketSearch","ChatComponent_Conditional_8_Conditional_3_Template","docketSearchBodyContent_r14","docketSearchTitleContent_r13","Search","length","_r15","model_r16","agentInUse","key","value","ChatComponent_For_15_Conditional_0_Template","ChatComponent_For_15_Conditional_1_Template","enabled","docket_r17","pubDate","docket_r18","description","docketsForSearch","ChatComponent_ng_template_23_Conditional_4_Template","docketsForSearchLoading","_r20","docket_r21","onDocketSelected","ɵɵtextInterpolate2","ChatComponent_ng_template_25_Conditional_12_For_3_Conditional_0_Template","visible","ChatComponent_ng_template_25_Conditional_12_For_3_Template","ɵɵtwoWayListener","$event","_r19","i0","ɵɵtwoWayBindingSet","docketSearchContent","docketSearch","ChatComponent_ng_template_25_Conditional_11_Template","ChatComponent_ng_template_25_Conditional_12_Template","ɵɵtwoWayProperty","SenderType","ChatComponent","messageContentTextInput","docketContentInput","articleID","area","scrollToBottom","nativeElement","focus","scrollable","IconNamesEnum","messages","messageContent","backgroundIntervalTimer","messagesInFlight","backend","inject","BackEndService","changeDetector","ChangeDetectorRef","ngOnInit","loadChatHistory","subscribe","response","chatHistory","detectChanges","message","console","log","setTimeout","scrollTo","bottom","sendMessage","trim","requestMessage","User","Date","push","startAIProcess","__spreadProps","__spreadValues","reply","ChatBot","token","startBackgroundProcess","requestAutoResponse","window","clearInterval","setInterval","checkBackgoundProcess","checkAIProcesses","Object","keys","job","jobs","result","replace","matches","match","getDockets","dockets","map","docket","filter","d","docketNumber","parseInt","isNaN","toLowerCase","includes","forEach","selectors","viewQuery","rf","ctx","ChatComponent_Conditional_0_Template","ChatComponent_For_3_Template","ɵɵrepeaterTrackByIdentity","ChatComponent_Conditional_8_Template","_r1","ChatComponent_For_15_Template","_forTrack0","ChatComponent_ng_template_19_Template","ɵɵtemplateRefExtractor","ChatComponent_ng_template_21_Template","ChatComponent_ng_template_23_Template","ChatComponent_ng_template_25_Template","SendCheck","DatePipe","TitleCasePipe","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormsModule","NgModel","NgxBootstrapIconsModule","NgxBootstrapIconsLibComponent","NgbDropdownModule","NgbDropdown","NgbDropdownToggle","NgbDropdownMenu","NgbDropdownItem","NgbDropdownButtonItem","KeyValuePipe","NgxTypedWriterModule","NgxTypedWriterComponent","SafePipe","NgbPopoverModule","NgbPopover","NgScrollbarModule","NgScrollbar","NgbProgressbarModule","NgbProgressbar","styles","changeDetection"],"mappings":"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","debug_id":"7d8ab0d3-c664-5945-80be-5659302888bd"}