@aakash58/chatbot 1.0.13 β 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -644,7 +644,7 @@ class Doohbot extends DoohbotInput {
|
|
|
644
644
|
}
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
|
-
}, ...(ngDevMode ? [{ debugName: "markAsReadEffect" }] : []));
|
|
647
|
+
}, ...(ngDevMode ? [{ debugName: "markAsReadEffect", allowSignalWrites: true }] : [{ allowSignalWrites: true }]));
|
|
648
648
|
unreadCount = computed(() => {
|
|
649
649
|
// If chat is open, treat as all read
|
|
650
650
|
if (this.isChatOpen()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aakash58-chatbot.mjs","sources":["../../../projects/doohbot/src/lib/model/doohbot.intents.ts","../../../projects/doohbot/src/lib/services/messaging.service.ts","../../../projects/doohbot/src/lib/inputs/doohbot-input.ts","../../../projects/doohbot/src/lib/shared/snackbar/snackbar.component.ts","../../../projects/doohbot/src/lib/shared/snackbar/snackbar.component.html","../../../projects/doohbot/src/lib/shared/chips/chips.component.ts","../../../projects/doohbot/src/lib/shared/chips/chips.component.html","../../../projects/doohbot/src/lib/helpers/predefined_messages.ts","../../../projects/doohbot/src/lib/directives/draggable/draggable-dialog.directive.ts","../../../projects/doohbot/src/lib/directives/resizable/resizable-dialog.directive.ts","../../../projects/doohbot/src/lib/doohbot.component.ts","../../../projects/doohbot/src/lib/doohbot.component.html","../../../projects/doohbot/src/public-api.ts","../../../projects/doohbot/src/aakash58-chatbot.ts"],"sourcesContent":["import { ChatIntent } from './message';\r\n\r\nexport const CHAT_INTENTS: ChatIntent[] = [\r\n {\r\n patterns: ['hello', 'hi', 'hey', 'greetings', 'good morning', 'good afternoon', 'good evening'],\r\n response: 'πHello! How can I help you today?',\r\n },\r\n {\r\n patterns: ['how are you', 'how are you doing'],\r\n response: \"I'm just a bot, but I'm doing great! How about you?\",\r\n },\r\n {\r\n patterns: ['help', 'support', 'problem', 'about', 'issue', 'question', 'assist', 'Contact'],\r\n response: 'Sure! Please tell me your issue, and I will try to assist you.',\r\n },\r\n {\r\n patterns: ['bye', 'goodbye', 'see you', 'thanks', 'thank you', 'bye bye', 'see you later'],\r\n response: 'Goodbye! Have a nice day!',\r\n },\r\n {\r\n patterns: ['news and updates', 'updates', 'news', 'new'],\r\n response: 'Stay tuned for the latest news and updates from our team!',\r\n },\r\n];\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { Message } from '../model/message';\r\nimport { CHAT_INTENTS } from '../model/doohbot.intents';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MessageService {\r\n // private http = inject(HttpClient);\r\n // private apiUrl = inject(DOOHBOT_API_URL);\r\n public messages = signal<Message[]>([]);\r\n public audioUnlocked = false;\r\n\r\n clearMessages() {\r\n this.messages.set([]);\r\n }\r\n\r\n public addMessage(message: Message) {\r\n this.messages.update((msgs) => [...msgs, { ...message, timestamp: new Date() }]);\r\n if (message.sender === 'bot') {\r\n this.playBotSound();\r\n }\r\n }\r\n\r\n // Keep this returning string β no breaking change\r\n getBotReply(userText: string): string {\r\n const text = userText.toLowerCase();\r\n for (const intent of CHAT_INTENTS) {\r\n if (intent.patterns.some((pattern) => text.includes(pattern))) {\r\n return intent.response;\r\n }\r\n }\r\n return this.getFallbackReply();\r\n }\r\n\r\n // getBotReply(userText: string) {\r\n // return this.http.post<{ reply: string }>(this.apiUrl, { message: userText });\r\n // }\r\n\r\n getFallbackReply() {\r\n return \"I'm sorry π, I didn't understand that.\";\r\n }\r\n\r\n // method that tells you if it's a fallback\r\n isFallbackIntent(userText: string): boolean {\r\n const text = userText.toLowerCase();\r\n return !CHAT_INTENTS.some((intent) =>\r\n intent.patterns.some((pattern) => text.includes(pattern)),\r\n );\r\n }\r\n\r\n public unlockAudio() {\r\n if (this.audioUnlocked) return;\r\n const audio = new Audio();\r\n audio.volume = 1.0;\r\n audio\r\n .play()\r\n .then(() => (this.audioUnlocked = true))\r\n .catch(() => {});\r\n }\r\n\r\n public playBotSound() {\r\n if (!this.audioUnlocked) return;\r\n try {\r\n const audio = new Audio(\r\n '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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAD8RwIiKL66RhdwfAAf54GBLAkKIvvpKChhAAB/XgUgACcAAM+/l868T1FzTD3jdMCjbUqzJ7DDK5wDRBej3N6CuiStYizlj/q2GBR6YSLZn9QGuFqcRQJm1kWGeQPAaZzUJiCAxneuiae9R/BuDMmmXWnAYxorJVBPMYsPgxAACTC2DdMwAZoyDQxDE8McMOcKcw3hozH+RzNIY6Qwn276Am7gADN0z1IFpgoIDA2owhxNc2DEBET+1/jJ+az4uTTYhVCt/SixEu3KGPKynBLCOWYIISJhYkBmMOD0ZmrPBxFrtGA03YcmB6htsGXpiCmopmXGJgYVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//vUZAAD8L4HCqL74SgmQQAAfx4FA5geHwvvpGCTA8AB/XhMoATgAAMwjPVHpMpuGLBjDgdqAmQgEV54osRMa1V0nlKqAzIhAnMfI6oxtThzT/QMMIJ1g2TgiDIfV6OTYWTArAAZ9/ek5LEzAx0ye6MglfMFUrM7IMNhmHKztKLEW5dmI+iEZXuOOzCJB8MTUggxIAxTIyRIN0IYQyFyGDjAJ1TEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//vUZAAH8NsICqLg4BgoIQAAfz4FAFgCEg+AACCMA8AB/fgcgAMsAAMlaMy/EdTwMLsIAq0x+sT0j5Mj8wrghRYi5Y1pSIzjZuOLwwNANDDqH/NRkF01VUejMOI+M1wT0yRWBjbPWMK/v4rWItbqUI6ACMJNkdzCSU0KtMcwbczKAkzB/OdMYNJA1cmyUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//vUZAAP8BYAhIPgAAgCwBAAfAABAFgCEg+AACB7g8ABffgkK/v4rWIiv7+BixF1vKHRELCpiZ0QHtHh3bmZGGGSCHSYjo1ZivMTpiCmopmXGJgYKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAP8BYAhIPgAAgCwBAAfAABAFgCEg+AACALAEAB8AAEK/v4rWIiv7+K1iJMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAD8CAAhIPgAAgCwBAAfAABCogyFQ/7oWAOAEAB4AAEP8MABBaxQ1AgQ4GzHjNhaTBjsJSnOTQZ83I0ijSqWHMWlCgxOTeTKIK6MtwMgzCxBDKQH9Mv1DAw8EMzGwN+Nt1bAYum85OG168GezbmBbXGjLnm4yFAMByuDjXckXTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAP8BYAgAOAAAgBwBAAYAABAAABpAAAACAAADSAAAAEOC3AxsTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq',\r\n );\r\n audio.play();\r\n } catch (error) {\r\n console.error('Error playing bot sound:', error);\r\n }\r\n }\r\n}\r\n","export class DoohbotInput {\r\n // inputs\r\n userAvatarUrl: string = 'https://iili.io/KpEYoCP.png';\r\n\r\n // Application Constants Text\r\n readonly appTitle = 'DoohBot';\r\n readonly appSubtitle = 'Welcome to DoohBot';\r\n readonly welcomeDesc =\r\n 'We provide a powerful live chat platform to help businesses connect with their customers, offer support, and increase sales through real-time conversations.';\r\n readonly chatIcon = 'chat';\r\n readonly sendIcon = 'send';\r\n readonly closeIcon = 'close';\r\n readonly clear = 'clear_all';\r\n readonly minimizeIcon = 'remove';\r\n readonly moreIcon = 'more_vert';\r\n readonly fullscreenIcon = 'fullscreen';\r\n readonly fullscreenExitIcon = 'fullscreen_exit';\r\n readonly hintText = 'Please Enter Here';\r\n readonly errorMessage = 'The message you submitted was too long.';\r\n\r\n // Application Constants Images\r\n readonly appLogoUrl = 'https://iili.io/KmDhToN.md.png';\r\n readonly botAvatarUrl = 'https://iili.io/KpER0Ge.png';\r\n}\r\n","import { Component, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'app-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss'],\r\n standalone: true,\r\n imports: [MatIconModule],\r\n})\r\nexport class SnackBar implements OnInit, OnDestroy {\r\n @Input() message: string | null = null;\r\n @Input() autoDismiss: boolean = true;\r\n @Input() dismissDelay: number = 5000;\r\n @Input() show: boolean = false;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n public timeoutId: number | null = null;\r\n\r\n ngOnInit() {\r\n if (this.autoDismiss) {\r\n this.timeoutId = setTimeout(() => {\r\n this.close();\r\n }, this.dismissDelay) as any;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearTimeout();\r\n }\r\n\r\n close() {\r\n this.show = false;\r\n this.message = null;\r\n this.closed.emit();\r\n }\r\n public clearTimeout() {\r\n if (this.timeoutId) {\r\n clearTimeout(this.timeoutId);\r\n this.timeoutId = null;\r\n }\r\n }\r\n}\r\n","<div class=\"message-error\">\r\n <div class=\"error-content\">\r\n <mat-icon class=\"alert-icon\">warning</mat-icon>\r\n <span class=\"error-text\">{{ message }}</span>\r\n </div>\r\n <mat-icon class=\"close-icon\" (click)=\"close()\">close</mat-icon>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-chips',\r\n imports: [],\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.scss'],\r\n})\r\nexport class Chips {\r\n @Input() messages: string[] = []; // messages array\r\n @Input() disabled = false;\r\n @Output() click = new EventEmitter<string>(); // emit clicked chip\r\n\r\n onChipClick(msg: string) {\r\n if (this.disabled) return;\r\n this.click.emit(msg);\r\n }\r\n}\r\n","@if (messages.length > 0) {\r\n <div class=\"predefined-chips\">\r\n @for (msg of messages; track msg) {\r\n <button class=\"chip\" (click)=\"onChipClick(msg)\">\r\n {{ msg }}\r\n </button>\r\n }\r\n </div>\r\n}\r\n","export const PredefinedMessages = ['Hello!', 'I need help', 'Contact support', 'News and Updates'];\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[draggableDialog]',\r\n})\r\nexport class DraggableDialogDirective implements OnInit {\r\n private isDragging = false;\r\n private startX = 0;\r\n private startY = 0;\r\n private offsetX = 0;\r\n private offsetY = 0;\r\n\r\n @Input('dragHandle') dragHandleSelector: string | undefined;\r\n\r\n private dragHandle: HTMLElement | undefined;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.dragHandleSelector) {\r\n this.dragHandle = this.el.nativeElement.querySelector(this.dragHandleSelector);\r\n } else {\r\n this.dragHandle = this.el.nativeElement; // fallback\r\n }\r\n if (this.dragHandle) {\r\n this.renderer.setStyle(this.dragHandle, 'cursor', 'move');\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent) {\r\n if (!this.dragHandle || event.target !== this.dragHandle) return;\r\n\r\n this.isDragging = true;\r\n this.startX = event.clientX - this.offsetX;\r\n this.startY = event.clientY - this.offsetY;\r\n\r\n event.preventDefault();\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n onMouseMove(event: MouseEvent) {\r\n if (!this.isDragging) return;\r\n\r\n this.offsetX = event.clientX - this.startX;\r\n this.offsetY = event.clientY - this.startY;\r\n\r\n this.renderer.setStyle(\r\n this.el.nativeElement,\r\n 'transform',\r\n `translate(${this.offsetX}px, ${this.offsetY}px)`,\r\n );\r\n }\r\n\r\n @HostListener('document:mouseup', [])\r\n onMouseUp() {\r\n this.isDragging = false;\r\n }\r\n}\r\n","// resizable-dialog.directive.ts\r\nimport { Directive, ElementRef, Renderer2, OnInit, OnDestroy, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[resizableDialog]',\r\n})\r\nexport class ResizableDialogDirective implements OnInit, OnDestroy {\r\n private resizeHandles: HTMLElement[] = [];\r\n private activeHandle: string | null = null;\r\n private startX = 0;\r\n private startY = 0;\r\n private startWidth = 0;\r\n private startHeight = 0;\r\n private startLeft = 0;\r\n private startTop = 0;\r\n\r\n // Define resize directions\r\n private directions = ['n', 's', 'e', 'w', 'ne', 'nw', 'se', 'sw'];\r\n\r\n constructor(\r\n private el: ElementRef<HTMLElement>,\r\n private renderer: Renderer2,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.setStyle();\r\n this.createResizeHandles();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.removeResizeHandles();\r\n }\r\n\r\n private setStyle() {\r\n const element = this.el.nativeElement;\r\n this.renderer.setStyle(element, 'position', 'absolute');\r\n this.renderer.setStyle(element, 'overflow', 'hidden');\r\n this.renderer.setStyle(element, 'boxSizing', 'border-box');\r\n }\r\n\r\n private createResizeHandles() {\r\n this.directions.forEach((dir) => {\r\n const handle = this.renderer.createElement('div');\r\n this.renderer.setAttribute(handle, 'data-dir', dir);\r\n this.renderer.setStyle(handle, 'position', 'absolute');\r\n this.renderer.setStyle(handle, 'background', 'transparent');\r\n this.renderer.setStyle(handle, 'zIndex', '10');\r\n this.renderer.setStyle(handle, 'userSelect', 'none');\r\n\r\n // Set size and position based on direction\r\n if (dir.includes('e') || dir.includes('w')) {\r\n this.renderer.setStyle(handle, 'width', '10px');\r\n this.renderer.setStyle(handle, 'cursor', dir.includes('e') ? 'e-resize' : 'w-resize');\r\n this.renderer.setStyle(handle, 'top', '0');\r\n this.renderer.setStyle(handle, 'bottom', '0');\r\n this.renderer.setStyle(handle, 'right', dir.includes('e') ? '0' : null);\r\n this.renderer.setStyle(handle, 'left', dir.includes('w') ? '0' : null);\r\n }\r\n if (dir.includes('n') || dir.includes('s')) {\r\n this.renderer.setStyle(handle, 'height', '10px');\r\n this.renderer.setStyle(handle, 'cursor', dir.includes('s') ? 's-resize' : 'n-resize');\r\n this.renderer.setStyle(handle, 'left', '0');\r\n this.renderer.setStyle(handle, 'right', '0');\r\n this.renderer.setStyle(handle, 'bottom', dir.includes('s') ? '0' : null);\r\n this.renderer.setStyle(handle, 'top', dir.includes('n') ? '0' : null);\r\n }\r\n if (dir === 'ne' || dir === 'nw' || dir === 'se' || dir === 'sw') {\r\n this.renderer.setStyle(handle, 'width', '12px');\r\n this.renderer.setStyle(handle, 'height', '12px');\r\n this.renderer.setStyle(handle, 'borderRadius', '50%');\r\n this.renderer.setStyle(handle, 'cursor', `${dir}-resize`);\r\n this.renderer.setStyle(handle, 'top', dir.includes('n') ? '0' : null);\r\n this.renderer.setStyle(handle, 'bottom', dir.includes('s') ? '0' : null);\r\n this.renderer.setStyle(handle, 'left', dir.includes('w') ? '0' : null);\r\n this.renderer.setStyle(handle, 'right', dir.includes('e') ? '0' : null);\r\n }\r\n\r\n this.renderer.appendChild(this.el.nativeElement, handle);\r\n this.resizeHandles.push(handle);\r\n });\r\n }\r\n\r\n private removeResizeHandles() {\r\n this.resizeHandles.forEach((handle) => {\r\n this.renderer.removeChild(this.el.nativeElement, handle);\r\n });\r\n this.resizeHandles = [];\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n const dir = target.getAttribute('data-dir');\r\n if (!dir) return;\r\n\r\n event.preventDefault();\r\n\r\n this.activeHandle = dir;\r\n const rect = this.el.nativeElement.getBoundingClientRect();\r\n\r\n this.startX = event.clientX;\r\n this.startY = event.clientY;\r\n this.startWidth = parseFloat(this.getComputedStyleValue('width'));\r\n this.startHeight = parseFloat(this.getComputedStyleValue('height'));\r\n this.startLeft = parseFloat(this.getComputedStyleValue('left'));\r\n this.startTop = parseFloat(this.getComputedStyleValue('top'));\r\n\r\n // Prevent text selection during resize\r\n document.body.classList.add('no-select');\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n onMouseMove(event: MouseEvent) {\r\n if (!this.activeHandle) return;\r\n\r\n const dx = event.clientX - this.startX;\r\n const dy = event.clientY - this.startY;\r\n\r\n let newWidth = this.startWidth;\r\n let newHeight = this.startHeight;\r\n let newLeft = this.startLeft;\r\n let newTop = this.startTop;\r\n\r\n const minWidth = 150;\r\n const minHeight = 100;\r\n\r\n // Horizontal resize\r\n if (this.activeHandle.includes('e')) {\r\n newWidth = Math.max(this.startWidth + dx, minWidth);\r\n }\r\n if (this.activeHandle.includes('w')) {\r\n newWidth = Math.max(this.startWidth - dx, minWidth);\r\n newLeft = this.startLeft + (this.startWidth - newWidth);\r\n }\r\n\r\n // Vertical resize\r\n if (this.activeHandle.includes('s')) {\r\n newHeight = Math.max(this.startHeight + dy, minHeight);\r\n }\r\n if (this.activeHandle.includes('n')) {\r\n newHeight = Math.max(this.startHeight - dy, minHeight);\r\n newTop = this.startTop + (this.startHeight - newHeight);\r\n }\r\n\r\n // Apply changes\r\n this.renderer.setStyle(this.el.nativeElement, 'width', `${newWidth}px`);\r\n this.renderer.setStyle(this.el.nativeElement, 'height', `${newHeight}px`);\r\n this.renderer.setStyle(this.el.nativeElement, 'left', `${newLeft}px`);\r\n this.renderer.setStyle(this.el.nativeElement, 'top', `${newTop}px`);\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n onMouseUp() {\r\n if (this.activeHandle) {\r\n this.activeHandle = null;\r\n document.body.classList.remove('no-select');\r\n }\r\n }\r\n\r\n private getComputedStyleValue(property: string): string {\r\n return getComputedStyle(this.el.nativeElement).getPropertyValue(property) || '0';\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n ElementRef,\r\n inject,\r\n Input,\r\n Renderer2,\r\n signal,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n// Angular Material modules\r\nimport { MessageService } from './services/messaging.service';\r\nimport { Message } from './model/message';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { Observable } from 'rxjs';\r\nimport { DoohbotInput } from './inputs/doohbot-input';\r\nimport { SnackBar } from './shared/snackbar/snackbar.component';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { Chips } from './shared/chips/chips.component';\r\nimport { PredefinedMessages } from './helpers/predefined_messages';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n// Your standalone directives\r\nimport { DraggableDialogDirective } from './directives/draggable/draggable-dialog.directive';\r\nimport { ResizableDialogDirective } from './directives/resizable/resizable-dialog.directive';\r\n\r\n@Component({\r\n selector: 'app-doohbot',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatIcon,\r\n MatMenuModule,\r\n SnackBar,\r\n DraggableDialogDirective,\r\n ResizableDialogDirective,\r\n MatBadgeModule,\r\n Chips,\r\n MatTooltip,\r\n ],\r\n templateUrl: './doohbot.component.html',\r\n styleUrls: ['./doohbot.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class Doohbot extends DoohbotInput {\r\n @Input() config: DoohbotInput = new DoohbotInput();\r\n @Input() platformTenant!: string;\r\n @Input() subTenant!: string;\r\n @Input() agent!: string;\r\n @Input() buttonStyle: 'fab' | 'sidebar' = 'fab';\r\n\r\n isFullScreen = false;\r\n showThemeMenu = false;\r\n isMenuOpen: boolean = false;\r\n currentUser: string = 'User';\r\n\r\n public isChatOpen = signal(false);\r\n public isBotTyping = signal(false);\r\n private messageService = inject(MessageService);\r\n public messages = this.messageService.messages;\r\n private lastReadMessageId = signal<string | null>(null);\r\n private mutationObserver!: MutationObserver;\r\n\r\n maxMessageLength = 1000;\r\n messageError = signal<string | null>(null);\r\n @ViewChild('chatMessages') private chatMessagesContainer!: ElementRef;\r\n\r\n $index: TrackByFunction<Message> | undefined;\r\n\r\n theme: 'light' | 'dark' | 'system' = 'system';\r\n\r\n settingsMenuItems: Array<{ label: string; action: () => void }> = [\r\n { label: 'Light Theme', action: () => this.changeTheme('light') },\r\n { label: 'Dark Theme', action: () => this.changeTheme('dark') },\r\n { label: 'System Theme', action: () => this.changeTheme('system') },\r\n ];\r\n\r\n // Predefined messages for chips\r\n public predefinedMessages: string[] = PredefinedMessages;\r\n\r\n dismissTimeout: number | null = null;\r\n\r\n ngOnInit() {\r\n this.changeTheme(this.theme);\r\n this.userAvatarUrl = this.config.userAvatarUrl || '';\r\n }\r\n\r\n getCurrentUser(): Observable<string> {\r\n return new Observable((observer) => {\r\n observer.next('');\r\n });\r\n }\r\n\r\n // When user clicks a chip\r\n onPredefinedClick(text: string) {\r\n this.sendMessage(text);\r\n }\r\n\r\n changeTheme(mode: 'light' | 'dark' | 'system'): void {\r\n this.theme = mode;\r\n localStorage.setItem('theme', mode);\r\n this.applyTheme(mode);\r\n this.isMenuOpen = false;\r\n }\r\n\r\n private applyTheme(mode: 'light' | 'dark' | 'system') {\r\n const body = document.body;\r\n const host = this.elementRef.nativeElement;\r\n const overlayContainer = this.overlay.getContainerElement();\r\n\r\n // Remove existing theme classes\r\n [body, host, overlayContainer].forEach((el) => {\r\n this.renderer.removeClass(el, 'light-theme');\r\n this.renderer.removeClass(el, 'dark-theme');\r\n });\r\n\r\n let themeToApply: 'light-theme' | 'dark-theme' = 'light-theme';\r\n\r\n if (mode === 'system') {\r\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n themeToApply = prefersDark ? 'dark-theme' : 'light-theme';\r\n\r\n // Live system change listener\r\n window.matchMedia('(prefers-color-scheme: dark)').onchange = (e) => {\r\n if (this.theme === 'system') {\r\n const newTheme = e.matches ? 'dark-theme' : 'light-theme';\r\n [body, host, overlayContainer].forEach((el) => {\r\n this.renderer.removeClass(el, 'light-theme');\r\n this.renderer.removeClass(el, 'dark-theme');\r\n this.renderer.addClass(el, newTheme);\r\n });\r\n }\r\n };\r\n } else if (mode === 'dark') {\r\n themeToApply = 'dark-theme';\r\n }\r\n\r\n // Apply the theme to all important elements\r\n [body, host, overlayContainer].forEach((el) => this.renderer.addClass(el, themeToApply));\r\n }\r\n constructor(\r\n private overlay: OverlayContainer,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n ) {\r\n super();\r\n effect(() => {\r\n this.messages();\r\n setTimeout(() => this.scrollToBottom(), 0);\r\n });\r\n }\r\n\r\n openSettingsMenu(): void {\r\n this.isMenuOpen = true;\r\n }\r\n\r\n public preFullscreenState: {\r\n width: string;\r\n height: string;\r\n left: string;\r\n top: string;\r\n } | null = null;\r\n\r\n toggleFullScreen() {\r\n const chatWindow = document.querySelector('.chat-window') as HTMLElement;\r\n if (!chatWindow) return;\r\n\r\n if (!this.isFullScreen) {\r\n // ENTER \"FULLSCREEN\" / Save current drag/resize state\r\n this.preFullscreenState = {\r\n width: chatWindow.style.width,\r\n height: chatWindow.style.height,\r\n left: chatWindow.style.left,\r\n top: chatWindow.style.top,\r\n };\r\n\r\n // Clear inline styles that conflict with .fullscreen\r\n chatWindow.style.width = '';\r\n chatWindow.style.height = '';\r\n chatWindow.style.left = '';\r\n chatWindow.style.top = '';\r\n chatWindow.style.transform = ''; // important!\r\n\r\n // Activate centered \"fullscreen\"\r\n chatWindow.classList.add('fullscreen');\r\n this.isFullScreen = true;\r\n } else {\r\n // EXIT \"FULLSCREEN\"\r\n chatWindow.classList.remove('fullscreen');\r\n this.isFullScreen = false;\r\n\r\n // Restore drag/resize state\r\n if (this.preFullscreenState) {\r\n chatWindow.style.width = this.preFullscreenState.width || '400px';\r\n chatWindow.style.height = this.preFullscreenState.height || '500px';\r\n chatWindow.style.left = this.preFullscreenState.left || 'auto';\r\n chatWindow.style.top = this.preFullscreenState.top || 'auto';\r\n chatWindow.style.transform = 'none';\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n if (!this.chatMessagesContainer) return;\r\n\r\n this.mutationObserver = new MutationObserver(() => this.scrollToBottom());\r\n\r\n this.mutationObserver.observe(this.chatMessagesContainer.nativeElement, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n\r\n this.scrollToBottom();\r\n }\r\n\r\n private scrollToBottom(): void {\r\n if (!this.chatMessagesContainer) {\r\n return;\r\n }\r\n const container = this.chatMessagesContainer.nativeElement;\r\n container.scrollTop = container.scrollHeight;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.mutationObserver.disconnect();\r\n }\r\n\r\n toggleChat() {\r\n const currentlyOpen = this.isChatOpen();\r\n this.isChatOpen.update((open) => !open);\r\n\r\n // When opening the chat, mark all messages as read\r\n if (!currentlyOpen) {\r\n const messages = this.messages();\r\n if (messages.length > 0) {\r\n // Mark the latest message as read\r\n const lastMessage = messages[messages.length - 1];\r\n this.lastReadMessageId.set(lastMessage.id ?? null);\r\n }\r\n }\r\n }\r\n clearChat() {\r\n this.messageService.clearMessages();\r\n }\r\n\r\n public sendMessage(text: string): void {\r\n const trimmedText = text.trim();\r\n this.messageError();\r\n\r\n if (!trimmedText) return;\r\n\r\n if (trimmedText.length > this.maxMessageLength) {\r\n this.messageError.set(this.errorMessage);\r\n\r\n // Auto-dismiss\r\n setTimeout(() => {\r\n this.messageError();\r\n }, 5000);\r\n return;\r\n }\r\n this.messageService.addMessage({\r\n sender: 'user',\r\n text: trimmedText,\r\n id: Date.now().toString(),\r\n timestamp: new Date(),\r\n });\r\n this.isBotTyping.set(true);\r\n\r\n setTimeout(() => {\r\n const botReply = this.messageService.getBotReply(trimmedText);\r\n const isFallback = botReply === this.messageService.getFallbackReply();\r\n this.messageService.addMessage({\r\n sender: 'bot',\r\n text: botReply,\r\n id: Date.now().toString(),\r\n showSuggestions: isFallback,\r\n });\r\n this.isBotTyping.set(false);\r\n }, 1000);\r\n }\r\n\r\n // Clears the message error.\r\n public clearMessageError(): void {\r\n this.messageError.set(null);\r\n\r\n // Cancel pending auto-dismiss\r\n if (this.dismissTimeout) {\r\n clearTimeout(this.dismissTimeout);\r\n this.dismissTimeout = null;\r\n }\r\n }\r\n\r\n // Determines whether to show suggestion chips\r\n showSuggestionChips = computed(() => {\r\n const msgs = this.messages();\r\n if (msgs.length === 0) return false;\r\n\r\n // Find the last bot message\r\n const lastBotMsg = [...msgs].reverse().find((m) => m.sender === 'bot');\r\n return lastBotMsg?.showSuggestions === true;\r\n });\r\n\r\n // Mark last message as read\r\n public markAsReadEffect = effect(() => {\r\n const isOpen = this.isChatOpen();\r\n const msgs = this.messages();\r\n\r\n if (isOpen && msgs.length > 0) {\r\n const lastMessage = msgs[msgs.length - 1];\r\n if (lastMessage.id) {\r\n // Only update if ID exists and it's newer than current\r\n const currentLastRead = this.lastReadMessageId();\r\n if (lastMessage.id !== currentLastRead) {\r\n this.lastReadMessageId.set(lastMessage.id);\r\n }\r\n }\r\n }\r\n });\r\n\r\n unreadCount = computed(() => {\r\n // If chat is open, treat as all read\r\n if (this.isChatOpen()) {\r\n return 0;\r\n }\r\n\r\n const messages = this.messages();\r\n if (messages.length === 0) return 0;\r\n\r\n const lastReadId = this.lastReadMessageId();\r\n\r\n // Find index of last read message\r\n let lastReadIndex = -1;\r\n if (lastReadId !== null) {\r\n lastReadIndex = messages.findIndex((msg) => msg.id === lastReadId);\r\n }\r\n\r\n // Unread = bot messages after the last read message\r\n const unreadBotMessages = messages\r\n .slice(lastReadIndex + 1)\r\n .filter((msg) => msg.sender === 'bot');\r\n\r\n return unreadBotMessages.length;\r\n });\r\n}\r\n","<!-- fab -->\r\n@if (buttonStyle === 'fab' && !isChatOpen()) {\r\n <button class=\"chat-fab\" (click)=\"toggleChat()\">\r\n <mat-icon>{{ chatIcon }}</mat-icon>\r\n @if (unreadCount() > 0) {\r\n <span class=\"alert-badge\">\r\n {{ unreadCount() > 9 ? '9+' : unreadCount() }}\r\n </span>\r\n }\r\n </button>\r\n}\r\n<!-- sidebar button -->\r\n@if (buttonStyle === 'sidebar' && !isChatOpen()) {\r\n <button class=\"chat-sidebar\" (click)=\"toggleChat()\">\r\n <h2 style=\"transform: rotate(-90deg); font-size: 16px\">{{ appTitle }}</h2>\r\n @if (unreadCount() > 0) {\r\n <span class=\"alert-badge\">\r\n {{ unreadCount() > 9 ? '9+' : unreadCount() }}\r\n </span>\r\n }\r\n </button>\r\n}\r\n\r\n<!-- ... chat window ... -->\r\n@if (isChatOpen()) {\r\n <div\r\n draggableDialog\r\n [dragHandle]=\"'.chat-header'\"\r\n resizableDialog\r\n class=\"chat-window\"\r\n [class.fullscreen]=\"isFullScreen\"\r\n >\r\n <!-- chat window -->\r\n <div class=\"chat-header\">\r\n <div class=\"chat-title\">\r\n <img class=\"chat-logo\" [src]=\"appLogoUrl\" alt=\"Logo\" />\r\n <h2>{{ appTitle }}</h2>\r\n </div>\r\n\r\n <div class=\"chat-header-buttons\">\r\n <!-- settings Button -->\r\n <button class=\"header-button\" [matMenuTriggerFor]=\"settingsMenu\" matTooltip=\"Menu\">\r\n <mat-icon>{{ moreIcon }}</mat-icon>\r\n </button>\r\n\r\n <!-- minimize Button -->\r\n <button class=\"header-button\" (click)=\"toggleChat()\" matTooltip=\"Close\">\r\n <mat-icon>{{ minimizeIcon }}</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Messages / Welcome Screen -->\r\n <div #chatMessages class=\"chat-messages\">\r\n <!-- Welcome Screen -->\r\n @if (messages().length === 0 && !isBotTyping()) {\r\n <div class=\"welcome-screen\">\r\n <img [src]=\"appLogoUrl\" alt=\"Welcome\" class=\"welcome-image\" />\r\n <h3>{{ appSubtitle }}</h3>\r\n <p>{{ welcomeDesc }}</p>\r\n\r\n <!-- Predefined messages chips -->\r\n <app-chips\r\n [messages]=\"predefinedMessages\"\r\n [disabled]=\"isBotTyping()\"\r\n (click)=\"onPredefinedClick($event)\"\r\n ></app-chips>\r\n </div>\r\n }\r\n\r\n <!-- Chat Messages -->\r\n @for (message of messages(); track message.id ?? $index; let i = $index) {\r\n <div\r\n class=\"message-wrapper\"\r\n [class.user]=\"message.sender === 'user'\"\r\n [class.bot]=\"message.sender === 'bot'\"\r\n >\r\n <!-- Bot Avatar -->\r\n @if (message.sender === 'bot') {\r\n <img class=\"bot-avatar\" [src]=\"botAvatarUrl\" alt=\"Bot Avatar\" />\r\n }\r\n\r\n <!-- Message Bubble -->\r\n <div\r\n class=\"message\"\r\n [class.user]=\"message.sender === 'user'\"\r\n [class.bot]=\"message.sender === 'bot'\"\r\n >\r\n {{ message.text }}\r\n <!-- Show time below message -->\r\n @if (message.sender === 'bot') {\r\n <div class=\"message-time\">\r\n {{ message.timestamp | date: 'shortTime' }}\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- User Avatar -->\r\n @if (message.sender === 'user') {\r\n <img class=\"user-avatar\" [src]=\"userAvatarUrl\" alt=\"User Avatar\" />\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Typing Indicator -->\r\n @if (isBotTyping()) {\r\n <div class=\"message-wrapper bot\">\r\n <img class=\"bot-avatar\" [src]=\"botAvatarUrl\" alt=\"Bot Avatar\" />\r\n <div class=\"message bot\">\r\n <div class=\"typing-indicator\">\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- SUGGESTED CHIPS: Show only if last bot message was fallback -->\r\n @if (showSuggestionChips()) {\r\n <app-chips\r\n [messages]=\"predefinedMessages\"\r\n [disabled]=\"isBotTyping()\"\r\n (click)=\"onPredefinedClick($event)\"\r\n ></app-chips>\r\n }\r\n\r\n <!-- Inline error message -->\r\n @if (messageError()) {\r\n <app-snackbar\r\n [message]=\"messageError()\"\r\n [show]=\"!messageError()\"\r\n (closed)=\"clearMessageError()\"\r\n ></app-snackbar>\r\n }\r\n\r\n <!-- Chat Input -->\r\n <div class=\"chat-input\">\r\n <input\r\n #messageInput\r\n type=\"text\"\r\n [disabled]=\"isBotTyping()\"\r\n (keydown.enter)=\"sendMessage(messageInput.value); messageInput.value = ''\"\r\n placeholder=\"{{ hintText }}\"\r\n />\r\n <button (click)=\"sendMessage(messageInput.value); messageInput.value = ''\">\r\n <mat-icon>{{ sendIcon }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- footer -->\r\n <!-- <div class=\"terms-conditions\">\r\n <a href=\"#\">Terms and Conditions</a>\r\n </div> -->\r\n </div>\r\n}\r\n\r\n<mat-menu #settingsMenu=\"matMenu\" class=\"mat-menu-override\">\r\n <!-- Change Theme -->\r\n <div class=\"theme-selector\">\r\n <!-- <span>Theme</span> -->\r\n\r\n <!-- System Theme -->\r\n <button\r\n mat-icon-button\r\n class=\"theme-btn\"\r\n [class.selected]=\"theme === 'system'\"\r\n (click)=\"changeTheme('system')\"\r\n >\r\n <mat-icon>brightness_6</mat-icon>\r\n </button>\r\n\r\n <!-- Light Theme -->\r\n <button\r\n mat-icon-button\r\n class=\"theme-btn\"\r\n [class.selected]=\"theme === 'light'\"\r\n (click)=\"changeTheme('light')\"\r\n >\r\n <mat-icon>light_mode</mat-icon>\r\n </button>\r\n\r\n <!-- Dark Theme -->\r\n <button\r\n mat-icon-button\r\n class=\"theme-btn\"\r\n [class.selected]=\"theme === 'dark'\"\r\n (click)=\"changeTheme('dark')\"\r\n >\r\n <mat-icon>dark_mode</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- Full-Screen Button -->\r\n <button mat-menu-item (click)=\"toggleFullScreen()\" style=\"display: flex; align-items: center\">\r\n <mat-icon>{{ isFullScreen ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n <span> {{ isFullScreen ? 'Minimize' : 'Expand' }}</span>\r\n </button>\r\n\r\n <!-- Pop-out Screen -->\r\n <!-- <button\r\n mat-menu-item\r\n (click)=\"isPoppedOut ? popIn() : popOut()\"\r\n style=\"display: flex; align-items: center\"\r\n >\r\n <mat-icon>{{ isPoppedOut ? 'open_in_new_off' : 'open_in_new' }}</mat-icon>\r\n <span>{{ isPoppedOut ? 'Pop-in Screen' : 'Pop-out Screen' }}</span>\r\n </button> -->\r\n\r\n <!-- Clear Chat -->\r\n <button mat-menu-item (click)=\"clearChat()\" style=\"display: flex; align-items: center\">\r\n <mat-icon>clear_all</mat-icon>\r\n <span>Clear Chat</span>\r\n </button>\r\n</mat-menu>\r\n","/*\r\n * Public API Surface of chatbot\r\n */\r\n\r\nexport * from './lib/doohbot.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aakash58-chatbot.mjs","sources":["../../../projects/doohbot/src/lib/model/doohbot.intents.ts","../../../projects/doohbot/src/lib/services/messaging.service.ts","../../../projects/doohbot/src/lib/inputs/doohbot-input.ts","../../../projects/doohbot/src/lib/shared/snackbar/snackbar.component.ts","../../../projects/doohbot/src/lib/shared/snackbar/snackbar.component.html","../../../projects/doohbot/src/lib/shared/chips/chips.component.ts","../../../projects/doohbot/src/lib/shared/chips/chips.component.html","../../../projects/doohbot/src/lib/helpers/predefined_messages.ts","../../../projects/doohbot/src/lib/directives/draggable/draggable-dialog.directive.ts","../../../projects/doohbot/src/lib/directives/resizable/resizable-dialog.directive.ts","../../../projects/doohbot/src/lib/doohbot.component.ts","../../../projects/doohbot/src/lib/doohbot.component.html","../../../projects/doohbot/src/public-api.ts","../../../projects/doohbot/src/aakash58-chatbot.ts"],"sourcesContent":["import { ChatIntent } from './message';\r\n\r\nexport const CHAT_INTENTS: ChatIntent[] = [\r\n {\r\n patterns: ['hello', 'hi', 'hey', 'greetings', 'good morning', 'good afternoon', 'good evening'],\r\n response: 'πHello! How can I help you today?',\r\n },\r\n {\r\n patterns: ['how are you', 'how are you doing'],\r\n response: \"I'm just a bot, but I'm doing great! How about you?\",\r\n },\r\n {\r\n patterns: ['help', 'support', 'problem', 'about', 'issue', 'question', 'assist', 'Contact'],\r\n response: 'Sure! Please tell me your issue, and I will try to assist you.',\r\n },\r\n {\r\n patterns: ['bye', 'goodbye', 'see you', 'thanks', 'thank you', 'bye bye', 'see you later'],\r\n response: 'Goodbye! Have a nice day!',\r\n },\r\n {\r\n patterns: ['news and updates', 'updates', 'news', 'new'],\r\n response: 'Stay tuned for the latest news and updates from our team!',\r\n },\r\n];\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { Message } from '../model/message';\r\nimport { CHAT_INTENTS } from '../model/doohbot.intents';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MessageService {\r\n // private http = inject(HttpClient);\r\n // private apiUrl = inject(DOOHBOT_API_URL);\r\n public messages = signal<Message[]>([]);\r\n public audioUnlocked = false;\r\n\r\n clearMessages() {\r\n this.messages.set([]);\r\n }\r\n\r\n public addMessage(message: Message) {\r\n this.messages.update((msgs) => [...msgs, { ...message, timestamp: new Date() }]);\r\n if (message.sender === 'bot') {\r\n this.playBotSound();\r\n }\r\n }\r\n\r\n // Keep this returning string β no breaking change\r\n getBotReply(userText: string): string {\r\n const text = userText.toLowerCase();\r\n for (const intent of CHAT_INTENTS) {\r\n if (intent.patterns.some((pattern) => text.includes(pattern))) {\r\n return intent.response;\r\n }\r\n }\r\n return this.getFallbackReply();\r\n }\r\n\r\n // getBotReply(userText: string) {\r\n // return this.http.post<{ reply: string }>(this.apiUrl, { message: userText });\r\n // }\r\n\r\n getFallbackReply() {\r\n return \"I'm sorry π, I didn't understand that.\";\r\n }\r\n\r\n // method that tells you if it's a fallback\r\n isFallbackIntent(userText: string): boolean {\r\n const text = userText.toLowerCase();\r\n return !CHAT_INTENTS.some((intent) =>\r\n intent.patterns.some((pattern) => text.includes(pattern)),\r\n );\r\n }\r\n\r\n public unlockAudio() {\r\n if (this.audioUnlocked) return;\r\n const audio = new Audio();\r\n audio.volume = 1.0;\r\n audio\r\n .play()\r\n .then(() => (this.audioUnlocked = true))\r\n .catch(() => {});\r\n }\r\n\r\n public playBotSound() {\r\n if (!this.audioUnlocked) return;\r\n try {\r\n const audio = new Audio(\r\n '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qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAD8RwIiKL66RhdwfAAf54GBLAkKIvvpKChhAAB/XgUgACcAAM+/l868T1FzTD3jdMCjbUqzJ7DDK5wDRBej3N6CuiStYizlj/q2GBR6YSLZn9QGuFqcRQJm1kWGeQPAaZzUJiCAxneuiae9R/BuDMmmXWnAYxorJVBPMYsPgxAACTC2DdMwAZoyDQxDE8McMOcKcw3hozH+RzNIY6Qwn276Am7gADN0z1IFpgoIDA2owhxNc2DEBET+1/jJ+az4uTTYhVCt/SixEu3KGPKynBLCOWYIISJhYkBmMOD0ZmrPBxFrtGA03YcmB6htsGXpiCmopmXGJgYVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//vUZAAD8L4HCqL74SgmQQAAfx4FA5geHwvvpGCTA8AB/XhMoATgAAMwjPVHpMpuGLBjDgdqAmQgEV54osRMa1V0nlKqAzIhAnMfI6oxtThzT/QMMIJ1g2TgiDIfV6OTYWTArAAZ9/ek5LEzAx0ye6MglfMFUrM7IMNhmHKztKLEW5dmI+iEZXuOOzCJB8MTUggxIAxTIyRIN0IYQyFyGDjAJ1TEFNRTMuMTAwVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//vUZAAH8NsICqLg4BgoIQAAfz4FAFgCEg+AACCMA8AB/fgcgAMsAAMlaMy/EdTwMLsIAq0x+sT0j5Mj8wrghRYi5Y1pSIzjZuOLwwNANDDqH/NRkF01VUejMOI+M1wT0yRWBjbPWMK/v4rWItbqUI6ACMJNkdzCSU0KtMcwbczKAkzB/OdMYNJA1cmyUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//vUZAAP8BYAhIPgAAgCwBAAfAABAFgCEg+AACB7g8ABffgkK/v4rWIiv7+BixF1vKHRELCpiZ0QHtHh3bmZGGGSCHSYjo1ZivMTpiCmopmXGJgYKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAP8BYAhIPgAAgCwBAAfAABAFgCEg+AACALAEAB8AAEK/v4rWIiv7+K1iJMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAD8CAAhIPgAAgCwBAAfAABCogyFQ/7oWAOAEAB4AAEP8MABBaxQ1AgQ4GzHjNhaTBjsJSnOTQZ83I0ijSqWHMWlCgxOTeTKIK6MtwMgzCxBDKQH9Mv1DAw8EMzGwN+Nt1bAYum85OG168GezbmBbXGjLnm4yFAMByuDjXckXTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//vUZAAP8BYAgAOAAAgBwBAAYAABAAABpAAAACAAADSAAAAEOC3AxsTEFNRTMuMTAwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq',\r\n );\r\n audio.play();\r\n } catch (error) {\r\n console.error('Error playing bot sound:', error);\r\n }\r\n }\r\n}\r\n","export class DoohbotInput {\r\n // inputs\r\n userAvatarUrl: string = 'https://iili.io/KpEYoCP.png';\r\n\r\n // Application Constants Text\r\n readonly appTitle = 'DoohBot';\r\n readonly appSubtitle = 'Welcome to DoohBot';\r\n readonly welcomeDesc =\r\n 'We provide a powerful live chat platform to help businesses connect with their customers, offer support, and increase sales through real-time conversations.';\r\n readonly chatIcon = 'chat';\r\n readonly sendIcon = 'send';\r\n readonly closeIcon = 'close';\r\n readonly clear = 'clear_all';\r\n readonly minimizeIcon = 'remove';\r\n readonly moreIcon = 'more_vert';\r\n readonly fullscreenIcon = 'fullscreen';\r\n readonly fullscreenExitIcon = 'fullscreen_exit';\r\n readonly hintText = 'Please Enter Here';\r\n readonly errorMessage = 'The message you submitted was too long.';\r\n\r\n // Application Constants Images\r\n readonly appLogoUrl = 'https://iili.io/KmDhToN.md.png';\r\n readonly botAvatarUrl = 'https://iili.io/KpER0Ge.png';\r\n}\r\n","import { Component, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'app-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss'],\r\n standalone: true,\r\n imports: [MatIconModule],\r\n})\r\nexport class SnackBar implements OnInit, OnDestroy {\r\n @Input() message: string | null = null;\r\n @Input() autoDismiss: boolean = true;\r\n @Input() dismissDelay: number = 5000;\r\n @Input() show: boolean = false;\r\n\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n public timeoutId: number | null = null;\r\n\r\n ngOnInit() {\r\n if (this.autoDismiss) {\r\n this.timeoutId = setTimeout(() => {\r\n this.close();\r\n }, this.dismissDelay) as any;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.clearTimeout();\r\n }\r\n\r\n close() {\r\n this.show = false;\r\n this.message = null;\r\n this.closed.emit();\r\n }\r\n public clearTimeout() {\r\n if (this.timeoutId) {\r\n clearTimeout(this.timeoutId);\r\n this.timeoutId = null;\r\n }\r\n }\r\n}\r\n","<div class=\"message-error\">\r\n <div class=\"error-content\">\r\n <mat-icon class=\"alert-icon\">warning</mat-icon>\r\n <span class=\"error-text\">{{ message }}</span>\r\n </div>\r\n <mat-icon class=\"close-icon\" (click)=\"close()\">close</mat-icon>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-chips',\r\n imports: [],\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.scss'],\r\n})\r\nexport class Chips {\r\n @Input() messages: string[] = []; // messages array\r\n @Input() disabled = false;\r\n @Output() click = new EventEmitter<string>(); // emit clicked chip\r\n\r\n onChipClick(msg: string) {\r\n if (this.disabled) return;\r\n this.click.emit(msg);\r\n }\r\n}\r\n","@if (messages.length > 0) {\r\n <div class=\"predefined-chips\">\r\n @for (msg of messages; track msg) {\r\n <button class=\"chip\" (click)=\"onChipClick(msg)\">\r\n {{ msg }}\r\n </button>\r\n }\r\n </div>\r\n}\r\n","export const PredefinedMessages = ['Hello!', 'I need help', 'Contact support', 'News and Updates'];\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[draggableDialog]',\r\n})\r\nexport class DraggableDialogDirective implements OnInit {\r\n private isDragging = false;\r\n private startX = 0;\r\n private startY = 0;\r\n private offsetX = 0;\r\n private offsetY = 0;\r\n\r\n @Input('dragHandle') dragHandleSelector: string | undefined;\r\n\r\n private dragHandle: HTMLElement | undefined;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.dragHandleSelector) {\r\n this.dragHandle = this.el.nativeElement.querySelector(this.dragHandleSelector);\r\n } else {\r\n this.dragHandle = this.el.nativeElement; // fallback\r\n }\r\n if (this.dragHandle) {\r\n this.renderer.setStyle(this.dragHandle, 'cursor', 'move');\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent) {\r\n if (!this.dragHandle || event.target !== this.dragHandle) return;\r\n\r\n this.isDragging = true;\r\n this.startX = event.clientX - this.offsetX;\r\n this.startY = event.clientY - this.offsetY;\r\n\r\n event.preventDefault();\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n onMouseMove(event: MouseEvent) {\r\n if (!this.isDragging) return;\r\n\r\n this.offsetX = event.clientX - this.startX;\r\n this.offsetY = event.clientY - this.startY;\r\n\r\n this.renderer.setStyle(\r\n this.el.nativeElement,\r\n 'transform',\r\n `translate(${this.offsetX}px, ${this.offsetY}px)`,\r\n );\r\n }\r\n\r\n @HostListener('document:mouseup', [])\r\n onMouseUp() {\r\n this.isDragging = false;\r\n }\r\n}\r\n","// resizable-dialog.directive.ts\r\nimport { Directive, ElementRef, Renderer2, OnInit, OnDestroy, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[resizableDialog]',\r\n})\r\nexport class ResizableDialogDirective implements OnInit, OnDestroy {\r\n private resizeHandles: HTMLElement[] = [];\r\n private activeHandle: string | null = null;\r\n private startX = 0;\r\n private startY = 0;\r\n private startWidth = 0;\r\n private startHeight = 0;\r\n private startLeft = 0;\r\n private startTop = 0;\r\n\r\n // Define resize directions\r\n private directions = ['n', 's', 'e', 'w', 'ne', 'nw', 'se', 'sw'];\r\n\r\n constructor(\r\n private el: ElementRef<HTMLElement>,\r\n private renderer: Renderer2,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.setStyle();\r\n this.createResizeHandles();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.removeResizeHandles();\r\n }\r\n\r\n private setStyle() {\r\n const element = this.el.nativeElement;\r\n this.renderer.setStyle(element, 'position', 'absolute');\r\n this.renderer.setStyle(element, 'overflow', 'hidden');\r\n this.renderer.setStyle(element, 'boxSizing', 'border-box');\r\n }\r\n\r\n private createResizeHandles() {\r\n this.directions.forEach((dir) => {\r\n const handle = this.renderer.createElement('div');\r\n this.renderer.setAttribute(handle, 'data-dir', dir);\r\n this.renderer.setStyle(handle, 'position', 'absolute');\r\n this.renderer.setStyle(handle, 'background', 'transparent');\r\n this.renderer.setStyle(handle, 'zIndex', '10');\r\n this.renderer.setStyle(handle, 'userSelect', 'none');\r\n\r\n // Set size and position based on direction\r\n if (dir.includes('e') || dir.includes('w')) {\r\n this.renderer.setStyle(handle, 'width', '10px');\r\n this.renderer.setStyle(handle, 'cursor', dir.includes('e') ? 'e-resize' : 'w-resize');\r\n this.renderer.setStyle(handle, 'top', '0');\r\n this.renderer.setStyle(handle, 'bottom', '0');\r\n this.renderer.setStyle(handle, 'right', dir.includes('e') ? '0' : null);\r\n this.renderer.setStyle(handle, 'left', dir.includes('w') ? '0' : null);\r\n }\r\n if (dir.includes('n') || dir.includes('s')) {\r\n this.renderer.setStyle(handle, 'height', '10px');\r\n this.renderer.setStyle(handle, 'cursor', dir.includes('s') ? 's-resize' : 'n-resize');\r\n this.renderer.setStyle(handle, 'left', '0');\r\n this.renderer.setStyle(handle, 'right', '0');\r\n this.renderer.setStyle(handle, 'bottom', dir.includes('s') ? '0' : null);\r\n this.renderer.setStyle(handle, 'top', dir.includes('n') ? '0' : null);\r\n }\r\n if (dir === 'ne' || dir === 'nw' || dir === 'se' || dir === 'sw') {\r\n this.renderer.setStyle(handle, 'width', '12px');\r\n this.renderer.setStyle(handle, 'height', '12px');\r\n this.renderer.setStyle(handle, 'borderRadius', '50%');\r\n this.renderer.setStyle(handle, 'cursor', `${dir}-resize`);\r\n this.renderer.setStyle(handle, 'top', dir.includes('n') ? '0' : null);\r\n this.renderer.setStyle(handle, 'bottom', dir.includes('s') ? '0' : null);\r\n this.renderer.setStyle(handle, 'left', dir.includes('w') ? '0' : null);\r\n this.renderer.setStyle(handle, 'right', dir.includes('e') ? '0' : null);\r\n }\r\n\r\n this.renderer.appendChild(this.el.nativeElement, handle);\r\n this.resizeHandles.push(handle);\r\n });\r\n }\r\n\r\n private removeResizeHandles() {\r\n this.resizeHandles.forEach((handle) => {\r\n this.renderer.removeChild(this.el.nativeElement, handle);\r\n });\r\n this.resizeHandles = [];\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n const dir = target.getAttribute('data-dir');\r\n if (!dir) return;\r\n\r\n event.preventDefault();\r\n\r\n this.activeHandle = dir;\r\n const rect = this.el.nativeElement.getBoundingClientRect();\r\n\r\n this.startX = event.clientX;\r\n this.startY = event.clientY;\r\n this.startWidth = parseFloat(this.getComputedStyleValue('width'));\r\n this.startHeight = parseFloat(this.getComputedStyleValue('height'));\r\n this.startLeft = parseFloat(this.getComputedStyleValue('left'));\r\n this.startTop = parseFloat(this.getComputedStyleValue('top'));\r\n\r\n // Prevent text selection during resize\r\n document.body.classList.add('no-select');\r\n }\r\n\r\n @HostListener('document:mousemove', ['$event'])\r\n onMouseMove(event: MouseEvent) {\r\n if (!this.activeHandle) return;\r\n\r\n const dx = event.clientX - this.startX;\r\n const dy = event.clientY - this.startY;\r\n\r\n let newWidth = this.startWidth;\r\n let newHeight = this.startHeight;\r\n let newLeft = this.startLeft;\r\n let newTop = this.startTop;\r\n\r\n const minWidth = 150;\r\n const minHeight = 100;\r\n\r\n // Horizontal resize\r\n if (this.activeHandle.includes('e')) {\r\n newWidth = Math.max(this.startWidth + dx, minWidth);\r\n }\r\n if (this.activeHandle.includes('w')) {\r\n newWidth = Math.max(this.startWidth - dx, minWidth);\r\n newLeft = this.startLeft + (this.startWidth - newWidth);\r\n }\r\n\r\n // Vertical resize\r\n if (this.activeHandle.includes('s')) {\r\n newHeight = Math.max(this.startHeight + dy, minHeight);\r\n }\r\n if (this.activeHandle.includes('n')) {\r\n newHeight = Math.max(this.startHeight - dy, minHeight);\r\n newTop = this.startTop + (this.startHeight - newHeight);\r\n }\r\n\r\n // Apply changes\r\n this.renderer.setStyle(this.el.nativeElement, 'width', `${newWidth}px`);\r\n this.renderer.setStyle(this.el.nativeElement, 'height', `${newHeight}px`);\r\n this.renderer.setStyle(this.el.nativeElement, 'left', `${newLeft}px`);\r\n this.renderer.setStyle(this.el.nativeElement, 'top', `${newTop}px`);\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n onMouseUp() {\r\n if (this.activeHandle) {\r\n this.activeHandle = null;\r\n document.body.classList.remove('no-select');\r\n }\r\n }\r\n\r\n private getComputedStyleValue(property: string): string {\r\n return getComputedStyle(this.el.nativeElement).getPropertyValue(property) || '0';\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n computed,\r\n effect,\r\n ElementRef,\r\n inject,\r\n Input,\r\n Renderer2,\r\n signal,\r\n TrackByFunction,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n// Angular Material modules\r\nimport { MessageService } from './services/messaging.service';\r\nimport { Message } from './model/message';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { Observable } from 'rxjs';\r\nimport { DoohbotInput } from './inputs/doohbot-input';\r\nimport { SnackBar } from './shared/snackbar/snackbar.component';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { Chips } from './shared/chips/chips.component';\r\nimport { PredefinedMessages } from './helpers/predefined_messages';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n// Your standalone directives\r\nimport { DraggableDialogDirective } from './directives/draggable/draggable-dialog.directive';\r\nimport { ResizableDialogDirective } from './directives/resizable/resizable-dialog.directive';\r\n\r\n@Component({\r\n selector: 'app-doohbot',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatIcon,\r\n MatMenuModule,\r\n SnackBar,\r\n DraggableDialogDirective,\r\n ResizableDialogDirective,\r\n MatBadgeModule,\r\n Chips,\r\n MatTooltip,\r\n ],\r\n templateUrl: './doohbot.component.html',\r\n styleUrls: ['./doohbot.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class Doohbot extends DoohbotInput {\r\n @Input() config: DoohbotInput = new DoohbotInput();\r\n @Input() platformTenant!: string;\r\n @Input() subTenant!: string;\r\n @Input() agent!: string;\r\n @Input() buttonStyle: 'fab' | 'sidebar' = 'fab';\r\n\r\n isFullScreen = false;\r\n showThemeMenu = false;\r\n isMenuOpen: boolean = false;\r\n currentUser: string = 'User';\r\n\r\n public isChatOpen = signal(false);\r\n public isBotTyping = signal(false);\r\n private messageService = inject(MessageService);\r\n public messages = this.messageService.messages;\r\n private lastReadMessageId = signal<string | null>(null);\r\n private mutationObserver!: MutationObserver;\r\n\r\n maxMessageLength = 1000;\r\n messageError = signal<string | null>(null);\r\n @ViewChild('chatMessages') private chatMessagesContainer!: ElementRef;\r\n\r\n $index: TrackByFunction<Message> | undefined;\r\n\r\n theme: 'light' | 'dark' | 'system' = 'system';\r\n\r\n settingsMenuItems: Array<{ label: string; action: () => void }> = [\r\n { label: 'Light Theme', action: () => this.changeTheme('light') },\r\n { label: 'Dark Theme', action: () => this.changeTheme('dark') },\r\n { label: 'System Theme', action: () => this.changeTheme('system') },\r\n ];\r\n\r\n // Predefined messages for chips\r\n public predefinedMessages: string[] = PredefinedMessages;\r\n\r\n dismissTimeout: number | null = null;\r\n\r\n ngOnInit() {\r\n this.changeTheme(this.theme);\r\n this.userAvatarUrl = this.config.userAvatarUrl || '';\r\n }\r\n\r\n getCurrentUser(): Observable<string> {\r\n return new Observable((observer) => {\r\n observer.next('');\r\n });\r\n }\r\n\r\n // When user clicks a chip\r\n onPredefinedClick(text: string) {\r\n this.sendMessage(text);\r\n }\r\n\r\n changeTheme(mode: 'light' | 'dark' | 'system'): void {\r\n this.theme = mode;\r\n localStorage.setItem('theme', mode);\r\n this.applyTheme(mode);\r\n this.isMenuOpen = false;\r\n }\r\n\r\n private applyTheme(mode: 'light' | 'dark' | 'system') {\r\n const body = document.body;\r\n const host = this.elementRef.nativeElement;\r\n const overlayContainer = this.overlay.getContainerElement();\r\n\r\n // Remove existing theme classes\r\n [body, host, overlayContainer].forEach((el) => {\r\n this.renderer.removeClass(el, 'light-theme');\r\n this.renderer.removeClass(el, 'dark-theme');\r\n });\r\n\r\n let themeToApply: 'light-theme' | 'dark-theme' = 'light-theme';\r\n\r\n if (mode === 'system') {\r\n const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n themeToApply = prefersDark ? 'dark-theme' : 'light-theme';\r\n\r\n // Live system change listener\r\n window.matchMedia('(prefers-color-scheme: dark)').onchange = (e) => {\r\n if (this.theme === 'system') {\r\n const newTheme = e.matches ? 'dark-theme' : 'light-theme';\r\n [body, host, overlayContainer].forEach((el) => {\r\n this.renderer.removeClass(el, 'light-theme');\r\n this.renderer.removeClass(el, 'dark-theme');\r\n this.renderer.addClass(el, newTheme);\r\n });\r\n }\r\n };\r\n } else if (mode === 'dark') {\r\n themeToApply = 'dark-theme';\r\n }\r\n\r\n // Apply the theme to all important elements\r\n [body, host, overlayContainer].forEach((el) => this.renderer.addClass(el, themeToApply));\r\n }\r\n constructor(\r\n private overlay: OverlayContainer,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n ) {\r\n super();\r\n effect(() => {\r\n this.messages();\r\n setTimeout(() => this.scrollToBottom(), 0);\r\n });\r\n }\r\n\r\n openSettingsMenu(): void {\r\n this.isMenuOpen = true;\r\n }\r\n\r\n public preFullscreenState: {\r\n width: string;\r\n height: string;\r\n left: string;\r\n top: string;\r\n } | null = null;\r\n\r\n toggleFullScreen() {\r\n const chatWindow = document.querySelector('.chat-window') as HTMLElement;\r\n if (!chatWindow) return;\r\n\r\n if (!this.isFullScreen) {\r\n // ENTER \"FULLSCREEN\" / Save current drag/resize state\r\n this.preFullscreenState = {\r\n width: chatWindow.style.width,\r\n height: chatWindow.style.height,\r\n left: chatWindow.style.left,\r\n top: chatWindow.style.top,\r\n };\r\n\r\n // Clear inline styles that conflict with .fullscreen\r\n chatWindow.style.width = '';\r\n chatWindow.style.height = '';\r\n chatWindow.style.left = '';\r\n chatWindow.style.top = '';\r\n chatWindow.style.transform = ''; // important!\r\n\r\n // Activate centered \"fullscreen\"\r\n chatWindow.classList.add('fullscreen');\r\n this.isFullScreen = true;\r\n } else {\r\n // EXIT \"FULLSCREEN\"\r\n chatWindow.classList.remove('fullscreen');\r\n this.isFullScreen = false;\r\n\r\n // Restore drag/resize state\r\n if (this.preFullscreenState) {\r\n chatWindow.style.width = this.preFullscreenState.width || '400px';\r\n chatWindow.style.height = this.preFullscreenState.height || '500px';\r\n chatWindow.style.left = this.preFullscreenState.left || 'auto';\r\n chatWindow.style.top = this.preFullscreenState.top || 'auto';\r\n chatWindow.style.transform = 'none';\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n if (!this.chatMessagesContainer) return;\r\n\r\n this.mutationObserver = new MutationObserver(() => this.scrollToBottom());\r\n\r\n this.mutationObserver.observe(this.chatMessagesContainer.nativeElement, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n\r\n this.scrollToBottom();\r\n }\r\n\r\n private scrollToBottom(): void {\r\n if (!this.chatMessagesContainer) {\r\n return;\r\n }\r\n const container = this.chatMessagesContainer.nativeElement;\r\n container.scrollTop = container.scrollHeight;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.mutationObserver.disconnect();\r\n }\r\n\r\n toggleChat() {\r\n const currentlyOpen = this.isChatOpen();\r\n this.isChatOpen.update((open) => !open);\r\n\r\n // When opening the chat, mark all messages as read\r\n if (!currentlyOpen) {\r\n const messages = this.messages();\r\n if (messages.length > 0) {\r\n // Mark the latest message as read\r\n const lastMessage = messages[messages.length - 1];\r\n this.lastReadMessageId.set(lastMessage.id ?? null);\r\n }\r\n }\r\n }\r\n clearChat() {\r\n this.messageService.clearMessages();\r\n }\r\n\r\n public sendMessage(text: string): void {\r\n const trimmedText = text.trim();\r\n this.messageError();\r\n\r\n if (!trimmedText) return;\r\n\r\n if (trimmedText.length > this.maxMessageLength) {\r\n this.messageError.set(this.errorMessage);\r\n\r\n // Auto-dismiss\r\n setTimeout(() => {\r\n this.messageError();\r\n }, 5000);\r\n return;\r\n }\r\n this.messageService.addMessage({\r\n sender: 'user',\r\n text: trimmedText,\r\n id: Date.now().toString(),\r\n timestamp: new Date(),\r\n });\r\n this.isBotTyping.set(true);\r\n\r\n setTimeout(() => {\r\n const botReply = this.messageService.getBotReply(trimmedText);\r\n const isFallback = botReply === this.messageService.getFallbackReply();\r\n this.messageService.addMessage({\r\n sender: 'bot',\r\n text: botReply,\r\n id: Date.now().toString(),\r\n showSuggestions: isFallback,\r\n });\r\n this.isBotTyping.set(false);\r\n }, 1000);\r\n }\r\n\r\n // Clears the message error.\r\n public clearMessageError(): void {\r\n this.messageError.set(null);\r\n\r\n // Cancel pending auto-dismiss\r\n if (this.dismissTimeout) {\r\n clearTimeout(this.dismissTimeout);\r\n this.dismissTimeout = null;\r\n }\r\n }\r\n\r\n // Determines whether to show suggestion chips\r\n showSuggestionChips = computed(() => {\r\n const msgs = this.messages();\r\n if (msgs.length === 0) return false;\r\n\r\n // Find the last bot message\r\n const lastBotMsg = [...msgs].reverse().find((m) => m.sender === 'bot');\r\n return lastBotMsg?.showSuggestions === true;\r\n });\r\n\r\n // Mark last message as read\r\n public markAsReadEffect = effect(\r\n () => {\r\n const isOpen = this.isChatOpen();\r\n const msgs = this.messages();\r\n\r\n if (isOpen && msgs.length > 0) {\r\n const lastMessage = msgs[msgs.length - 1];\r\n if (lastMessage.id) {\r\n // Only update if ID exists and it's newer than current\r\n const currentLastRead = this.lastReadMessageId();\r\n if (lastMessage.id !== currentLastRead) {\r\n this.lastReadMessageId.set(lastMessage.id);\r\n }\r\n }\r\n }\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n\r\n unreadCount = computed(() => {\r\n // If chat is open, treat as all read\r\n if (this.isChatOpen()) {\r\n return 0;\r\n }\r\n\r\n const messages = this.messages();\r\n if (messages.length === 0) return 0;\r\n\r\n const lastReadId = this.lastReadMessageId();\r\n\r\n // Find index of last read message\r\n let lastReadIndex = -1;\r\n if (lastReadId !== null) {\r\n lastReadIndex = messages.findIndex((msg) => msg.id === lastReadId);\r\n }\r\n\r\n // Unread = bot messages after the last read message\r\n const unreadBotMessages = messages\r\n .slice(lastReadIndex + 1)\r\n .filter((msg) => msg.sender === 'bot');\r\n\r\n return unreadBotMessages.length;\r\n });\r\n}\r\n","<!-- fab -->\r\n@if (buttonStyle === 'fab' && !isChatOpen()) {\r\n <button class=\"chat-fab\" (click)=\"toggleChat()\">\r\n <mat-icon>{{ chatIcon }}</mat-icon>\r\n @if (unreadCount() > 0) {\r\n <span class=\"alert-badge\">\r\n {{ unreadCount() > 9 ? '9+' : unreadCount() }}\r\n </span>\r\n }\r\n </button>\r\n}\r\n<!-- sidebar button -->\r\n@if (buttonStyle === 'sidebar' && !isChatOpen()) {\r\n <button class=\"chat-sidebar\" (click)=\"toggleChat()\">\r\n <h2 style=\"transform: rotate(-90deg); font-size: 16px\">{{ appTitle }}</h2>\r\n @if (unreadCount() > 0) {\r\n <span class=\"alert-badge\">\r\n {{ unreadCount() > 9 ? '9+' : unreadCount() }}\r\n </span>\r\n }\r\n </button>\r\n}\r\n\r\n<!-- ... chat window ... -->\r\n@if (isChatOpen()) {\r\n <div\r\n draggableDialog\r\n [dragHandle]=\"'.chat-header'\"\r\n resizableDialog\r\n class=\"chat-window\"\r\n [class.fullscreen]=\"isFullScreen\"\r\n >\r\n <!-- chat window -->\r\n <div class=\"chat-header\">\r\n <div class=\"chat-title\">\r\n <img class=\"chat-logo\" [src]=\"appLogoUrl\" alt=\"Logo\" />\r\n <h2>{{ appTitle }}</h2>\r\n </div>\r\n\r\n <div class=\"chat-header-buttons\">\r\n <!-- settings Button -->\r\n <button class=\"header-button\" [matMenuTriggerFor]=\"settingsMenu\" matTooltip=\"Menu\">\r\n <mat-icon>{{ moreIcon }}</mat-icon>\r\n </button>\r\n\r\n <!-- minimize Button -->\r\n <button class=\"header-button\" (click)=\"toggleChat()\" matTooltip=\"Close\">\r\n <mat-icon>{{ minimizeIcon }}</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Messages / Welcome Screen -->\r\n <div #chatMessages class=\"chat-messages\">\r\n <!-- Welcome Screen -->\r\n @if (messages().length === 0 && !isBotTyping()) {\r\n <div class=\"welcome-screen\">\r\n <img [src]=\"appLogoUrl\" alt=\"Welcome\" class=\"welcome-image\" />\r\n <h3>{{ appSubtitle }}</h3>\r\n <p>{{ welcomeDesc }}</p>\r\n\r\n <!-- Predefined messages chips -->\r\n <app-chips\r\n [messages]=\"predefinedMessages\"\r\n [disabled]=\"isBotTyping()\"\r\n (click)=\"onPredefinedClick($event)\"\r\n ></app-chips>\r\n </div>\r\n }\r\n\r\n <!-- Chat Messages -->\r\n @for (message of messages(); track message.id ?? $index; let i = $index) {\r\n <div\r\n class=\"message-wrapper\"\r\n [class.user]=\"message.sender === 'user'\"\r\n [class.bot]=\"message.sender === 'bot'\"\r\n >\r\n <!-- Bot Avatar -->\r\n @if (message.sender === 'bot') {\r\n <img class=\"bot-avatar\" [src]=\"botAvatarUrl\" alt=\"Bot Avatar\" />\r\n }\r\n\r\n <!-- Message Bubble -->\r\n <div\r\n class=\"message\"\r\n [class.user]=\"message.sender === 'user'\"\r\n [class.bot]=\"message.sender === 'bot'\"\r\n >\r\n {{ message.text }}\r\n <!-- Show time below message -->\r\n @if (message.sender === 'bot') {\r\n <div class=\"message-time\">\r\n {{ message.timestamp | date: 'shortTime' }}\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- User Avatar -->\r\n @if (message.sender === 'user') {\r\n <img class=\"user-avatar\" [src]=\"userAvatarUrl\" alt=\"User Avatar\" />\r\n }\r\n </div>\r\n }\r\n\r\n <!-- Typing Indicator -->\r\n @if (isBotTyping()) {\r\n <div class=\"message-wrapper bot\">\r\n <img class=\"bot-avatar\" [src]=\"botAvatarUrl\" alt=\"Bot Avatar\" />\r\n <div class=\"message bot\">\r\n <div class=\"typing-indicator\">\r\n <span></span>\r\n <span></span>\r\n <span></span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- SUGGESTED CHIPS: Show only if last bot message was fallback -->\r\n @if (showSuggestionChips()) {\r\n <app-chips\r\n [messages]=\"predefinedMessages\"\r\n [disabled]=\"isBotTyping()\"\r\n (click)=\"onPredefinedClick($event)\"\r\n ></app-chips>\r\n }\r\n\r\n <!-- Inline error message -->\r\n @if (messageError()) {\r\n <app-snackbar\r\n [message]=\"messageError()\"\r\n [show]=\"!messageError()\"\r\n (closed)=\"clearMessageError()\"\r\n ></app-snackbar>\r\n }\r\n\r\n <!-- Chat Input -->\r\n <div class=\"chat-input\">\r\n <input\r\n #messageInput\r\n type=\"text\"\r\n [disabled]=\"isBotTyping()\"\r\n (keydown.enter)=\"sendMessage(messageInput.value); messageInput.value = ''\"\r\n placeholder=\"{{ hintText }}\"\r\n />\r\n <button (click)=\"sendMessage(messageInput.value); messageInput.value = ''\">\r\n <mat-icon>{{ sendIcon }}</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- footer -->\r\n <!-- <div class=\"terms-conditions\">\r\n <a href=\"#\">Terms and Conditions</a>\r\n </div> -->\r\n </div>\r\n}\r\n\r\n<mat-menu #settingsMenu=\"matMenu\" class=\"mat-menu-override\">\r\n <!-- Change Theme -->\r\n <div class=\"theme-selector\">\r\n <!-- <span>Theme</span> -->\r\n\r\n <!-- System Theme -->\r\n <button\r\n mat-icon-button\r\n class=\"theme-btn\"\r\n [class.selected]=\"theme === 'system'\"\r\n (click)=\"changeTheme('system')\"\r\n >\r\n <mat-icon>brightness_6</mat-icon>\r\n </button>\r\n\r\n <!-- Light Theme -->\r\n <button\r\n mat-icon-button\r\n class=\"theme-btn\"\r\n [class.selected]=\"theme === 'light'\"\r\n (click)=\"changeTheme('light')\"\r\n >\r\n <mat-icon>light_mode</mat-icon>\r\n </button>\r\n\r\n <!-- Dark Theme -->\r\n <button\r\n mat-icon-button\r\n class=\"theme-btn\"\r\n [class.selected]=\"theme === 'dark'\"\r\n (click)=\"changeTheme('dark')\"\r\n >\r\n <mat-icon>dark_mode</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- Full-Screen Button -->\r\n <button mat-menu-item (click)=\"toggleFullScreen()\" style=\"display: flex; align-items: center\">\r\n <mat-icon>{{ isFullScreen ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n <span> {{ isFullScreen ? 'Minimize' : 'Expand' }}</span>\r\n </button>\r\n\r\n <!-- Pop-out Screen -->\r\n <!-- <button\r\n mat-menu-item\r\n (click)=\"isPoppedOut ? popIn() : popOut()\"\r\n style=\"display: flex; align-items: center\"\r\n >\r\n <mat-icon>{{ isPoppedOut ? 'open_in_new_off' : 'open_in_new' }}</mat-icon>\r\n <span>{{ isPoppedOut ? 'Pop-in Screen' : 'Pop-out Screen' }}</span>\r\n </button> -->\r\n\r\n <!-- Clear Chat -->\r\n <button mat-menu-item (click)=\"clearChat()\" style=\"display: flex; align-items: center\">\r\n <mat-icon>clear_all</mat-icon>\r\n <span>Clear Chat</span>\r\n </button>\r\n</mat-menu>\r\n","/*\r\n * Public API Surface of chatbot\r\n */\r\n\r\nexport * from './lib/doohbot.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|