{ "version": 3, "sources": ["libs/galaxy/chat/src/chat-bubble/chat-bubble.component.ts", "libs/galaxy/chat/src/chat-bubble/chat-bubble.component.html", "libs/galaxy/chat/src/chat-divider-text/chat-divider-text.component.ts", "libs/galaxy/chat/src/chat-divider-text/chat-divider-text.component.html", "libs/galaxy/chat/src/chat-event/chat-event.component.ts", "libs/galaxy/chat/src/chat-event/chat-event.component.html", "libs/galaxy/chat/src/chat-container/chat-container.component.ts", "libs/galaxy/chat/src/chat-container/chat-container.component.html", "libs/galaxy/chat/src/chat-message/chat-message.component.ts", "libs/galaxy/chat/src/chat-message/chat-message.component.html", "libs/galaxy/chat/src/chat-message-group/chat-message-group.component.ts", "libs/galaxy/chat/src/chat-message-group/chat-message-group.component.html", "libs/galaxy/chat/src/directives/additional-metadata.ts", "libs/galaxy/chat/src/chat.module.ts"], "sourcesContent": ["import { Component, HostBinding, Input } from '@angular/core';\n\n/**\n * @deprecated Use the new `glxy-chat-message-group` component instead\n */\n@Component({\n selector: 'glxy-chat-bubble',\n templateUrl: './chat-bubble.component.html',\n styleUrls: ['./chat-bubble.component.scss'],\n})\nexport class ChatBubbleComponent {\n @HostBinding('class') class = 'glxy-chat-bubble';\n\n @Input() type: 'sent' | 'received' = 'received';\n\n @Input() messageText?: string;\n\n @Input() messageFrom?: string;\n\n @Input() messageMetadata?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() profileSVGIcon?: string;\n\n @Input() profileBackgroundColor?: string;\n\n @Input() profileSourceIconUrl?: string;\n\n @Input() showProfilePic?: boolean | 'auto' = `auto`;\n\n @Input() sentFromYou = true;\n\n @Input() isTyping = false;\n\n get shouldShowProfilePic(): boolean {\n return (\n this.showProfilePic === true ||\n (this.type === 'received' && this.showProfilePic !== false) ||\n (this.type === 'sent' && !this.sentFromYou && this.showProfilePic !== false)\n );\n }\n\n get profilePicCSS(): string {\n return this.profilePicUrl ? 'url(' + this.profilePicUrl + ')' : '';\n }\n\n get profileSourceIconCSS(): string {\n return this.profileSourceIconUrl ? 'url(' + this.profileSourceIconUrl + ')' : '';\n }\n}\n", "\n \n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n \n
\n
\n
\n\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n", "import { Component } from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-divider-text',\n templateUrl: './chat-divider-text.component.html',\n styleUrls: ['./chat-divider-text.component.scss'],\n})\nexport class ChatDividerTextComponent {}\n", "
\n \n
\n", "import { Component, ElementRef, HostListener, Input, inject } from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-event',\n templateUrl: './chat-event.component.html',\n styleUrls: ['./chat-event.component.scss'],\n})\nexport class ChatEventComponent {\n @Input() messageMetadata?: string | null;\n\n isMetadataPresented = false;\n\n private eRef = inject(ElementRef);\n private clickTimeout = 0;\n\n @HostListener('document:mousedown', ['$event'])\n onMouseDown(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Clear any existing click timeout\n window.clearTimeout(this.clickTimeout);\n\n // Start a new click timeout with a delay of 300 milliseconds\n this.clickTimeout = window.setTimeout(() => {\n // Check if the target is outside of the .bubble element\n if (!this.eRef.nativeElement.querySelector('.pill')?.contains(event.target)) {\n this.isMetadataPresented = false;\n }\n }, 300);\n }\n\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Clear any existing click timeout\n window.clearTimeout(this.clickTimeout);\n\n // Check if the target is inside the .pill element and not a link\n const isLink = event.target instanceof HTMLAnchorElement;\n if (!isLink && this.eRef.nativeElement.querySelector('.pill')?.contains(event.target)) {\n this.isMetadataPresented = !this.isMetadataPresented;\n } else {\n this.isMetadataPresented = false;\n }\n }\n}\n", "
\n \n
\n
\n {{ messageMetadata }}\n
\n", "import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'glxy-chat-container',\n templateUrl: './chat-container.component.html',\n styleUrls: ['./chat-container.component.scss'],\n})\nexport class ChatContainerComponent implements AfterViewInit, OnChanges, OnDestroy {\n @HostBinding('class') class = 'glxy-chat-container';\n\n @ViewChild('chatContent') chatContent?: ElementRef;\n\n @Input() chatId = '';\n\n showNewMessageIndicator = false;\n\n get scrollable(): HTMLDivElement | undefined {\n return this.chatContent?.nativeElement;\n }\n\n get scrollTop(): number {\n return this.scrollable?.scrollTop ?? 0;\n }\n\n scrollTo({ top = 0, behavior = 'smooth' }: ScrollToOptions = {}): void {\n this.scrollable?.scrollTo({ top, behavior });\n }\n\n onNewMessageReceived(): void {\n if (this.scrollTop < 0) {\n this.showNewMessageIndicator = true;\n } else {\n this.mobileSafariScrollFix();\n }\n }\n\n onNewMessageSent(): void {\n // jump to bottom instantly so new message can animate into view\n this.scrollToBottom({ behavior: 'instant' });\n this.mobileSafariScrollFix();\n }\n\n scrollToBottom({ behavior }: ScrollToOptions = {}): void {\n // column-reverse means top: 0 is bottom\n // on iOS, always scroll to bottom instantly\n if (this.isIOS) {\n this.scrollTo({ top: 0, behavior: 'instant' });\n } else {\n this.scrollTo({ top: 0, behavior });\n }\n }\n\n onScroll(): void {\n if (this.scrollTop >= 0) {\n this.showNewMessageIndicator = false;\n }\n }\n\n mobileSafariScrollFix(): void {\n if (!this.isIOS) return;\n\n this.scrollTo({ top: this.scrollTop - 1 });\n window.setTimeout(() => {\n this.scrollToBottom();\n }, this.animationDuration * 2);\n }\n isIOS = /iPad|iPhone|iPod/.test(window.navigator.userAgent);\n\n ngAfterViewInit(): void {\n this.resetAnimationDuration();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.chatId) {\n const isDifferentConversation = changes?.chatId.currentValue != changes?.chatId.previousValue;\n if (isDifferentConversation) {\n this.resetAnimationDuration();\n }\n }\n }\n\n private animationTimer = 0;\n @Input() animationDuration = 0; // TODO(pascal): set this to 150 once µConversation updates are done\n currentAnimationDuration = 0;\n\n @HostBinding('style.--animation-duration')\n get getAnimationDurationStyle() {\n return `${this.currentAnimationDuration}ms`;\n }\n\n resetAnimationDuration(): void {\n window.clearTimeout(this.animationTimer);\n this.currentAnimationDuration = 0;\n this.animationTimer = window.setTimeout(() => {\n // always use 0 duration on iOS, so we don't have animation on the initial content\n const animationDuration = this.isIOS ? 0 : this.animationDuration;\n this.currentAnimationDuration = animationDuration;\n }, this.animationDuration * 2);\n // timeout delay must be greater than the animation duration, so we don't\n // have animation on the initial content\n }\n\n ngOnDestroy(): void {\n window.clearTimeout(this.animationTimer);\n }\n}\n", "
\n \n
\n\n
\n
\n \n
\n
\n", "import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport DOMPurify from 'dompurify';\n\nexport type ChatMessageStatus = 'sending' | 'sent' | 'failed' | 'delivered' | 'undelivered' | undefined;\n\n@Component({\n selector: 'glxy-chat-message',\n standalone: true,\n imports: [CommonModule, MatIconModule, TranslateModule],\n templateUrl: './chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatMessageComponent implements AfterViewInit {\n @HostBinding('class')\n get class() {\n return ['glxy-chat-message', this.messageStatusClass];\n }\n\n @Input() itemContent: 'message' | 'attachment' = 'message';\n\n @Input() isTyping = false;\n\n @Input() messageText?: string;\n\n @Input() messageStatus?: ChatMessageStatus;\n\n @Input() messageTime?: string | null;\n\n get messageStatusText(): string {\n switch (this.messageStatus) {\n case 'delivered':\n return 'GALAXY.CHAT.MESSAGE_STATUS.DELIVERED';\n case 'failed':\n case 'undelivered':\n return 'GALAXY.CHAT.MESSAGE_STATUS.UNDELIVERED';\n case 'sent':\n return 'GALAXY.CHAT.MESSAGE_STATUS.SENT';\n case 'sending':\n default:\n return '';\n }\n }\n\n get messageStatusClass(): string {\n switch (this.messageStatus) {\n case 'delivered':\n return 'delivered';\n case 'failed':\n case 'undelivered':\n return 'failed';\n case 'sent':\n return 'sent';\n case 'sending':\n return 'sending';\n default:\n return '';\n }\n }\n\n isMetadataPresented = false;\n\n private eRef = inject(ElementRef);\n\n @ViewChild('bubbleElement') bubbleElement!: ElementRef;\n\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent) {\n // Check if there is any selected text\n const selectedText = window.getSelection()?.toString();\n if (selectedText) {\n return;\n }\n\n // Check if metadata is being clicked\n if (this.eRef.nativeElement.querySelector('.metadata')?.contains(event.target)) {\n return;\n }\n\n // Check if the target is inside the element and not a link\n const isLink = event.target instanceof HTMLAnchorElement;\n const isInElement = this.eRef.nativeElement.contains(event.target);\n if (!isLink && isInElement) {\n this.isMetadataPresented = !this.isMetadataPresented;\n } else {\n if (this.itemContent === 'message') {\n this.isMetadataPresented = false;\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.messageText && !this.isTyping) {\n this.bubbleElement.nativeElement.innerHTML = DOMPurify.sanitize(this.messageText);\n }\n }\n}\n", "
\n error\n
\n \n \n \n\n \n\n \n \n \n \n\n
\n
\n
\n\n \n
\n
\n
\n
\n
\n \n \n {{ messageStatusText | translate }}\n {{ messageTime }}\n \n
\n", "import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ChatSourceId } from '@vendasta/galaxy/chat-composer';\nimport { ChatMessageComponent } from '../chat-message/chat-message.component';\n\n@Component({\n selector: 'glxy-chat-message-group',\n standalone: true,\n imports: [CommonModule, GalaxyAvatarModule, ChatMessageComponent, TranslateModule],\n templateUrl: './chat-message-group.component.html',\n styleUrls: ['./chat-message-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChatMessageGroupComponent {\n @HostBinding('class') class = 'glxy-chat-message-group';\n\n @Input() type: 'sent' | 'received' = 'received';\n\n @Input() messageFrom = '';\n\n @Input() messageMetadata?: string;\n\n @Input() profileIcon?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() profileSVGIcon?: string;\n\n @Input() profileBackgroundColor?: string;\n\n @Input() profileSourceIconName?: ChatSourceId;\n\n @Input() showProfilePic?: boolean | 'auto' = `auto`;\n\n @Input() sentFromYou = false;\n\n @Input() isTyping = false;\n\n get shouldShowProfilePic(): boolean {\n return (\n this.showProfilePic === true ||\n (this.type === 'received' && this.showProfilePic !== false) ||\n (this.type === 'sent' && !this.sentFromYou && this.showProfilePic !== false)\n );\n }\n}\n", "\n \n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n {{ sentFromYou ? ('GALAXY.CHAT.YOU' | translate) : messageFrom }}\n  \n {{ messageMetadata }}\n
\n\n \n\n \n \n \n
\n\n", "import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'glxy-additional-metadata, [glxyAdditionalMetadata]',\n})\nexport class AdditionalMetadataDirective {\n @HostBinding('class') class = 'glxy-additional-metadata';\n}\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { ChatBubbleComponent } from './chat-bubble/chat-bubble.component';\nexport { ChatBubbleComponent };\n\nimport { ChatDividerTextComponent } from './chat-divider-text/chat-divider-text.component';\nexport { ChatDividerTextComponent };\n\nimport { ChatEventComponent } from './chat-event/chat-event.component';\nexport { ChatEventComponent };\n\nimport { ChatContainerComponent } from './chat-container/chat-container.component';\nexport { ChatContainerComponent };\n\nimport { ChatMessageGroupComponent } from './chat-message-group/chat-message-group.component';\nexport { ChatMessageGroupComponent };\n\nimport { ChatMessageComponent } from './chat-message/chat-message.component';\nexport { ChatMessageComponent };\n\nimport { ChatMessageStatus } from './chat-message/chat-message.component';\nexport { ChatMessageStatus };\n\nimport { AdditionalMetadataDirective } from './directives/additional-metadata';\n\nexport const MODULE_IMPORTS = [\n CommonModule,\n MatTooltipModule,\n CdkScrollableModule,\n GalaxyAvatarModule,\n ChatMessageGroupComponent,\n ChatMessageComponent,\n MatButtonModule,\n MatIconModule,\n];\n\nexport const MODULE_DECLARATIONS = [\n ChatBubbleComponent,\n ChatDividerTextComponent,\n ChatEventComponent,\n ChatContainerComponent,\n AdditionalMetadataDirective,\n];\n\nexport const MODULE_EXPORTS = [...MODULE_DECLARATIONS, ChatMessageGroupComponent, ChatMessageComponent];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyChatModule {}\n"], "mappings": "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", "names": ["\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275styleProp", "ctx_r0", "profileSourceIconCSS", "\u0275\u0275elementStart", "\u0275\u0275template", "ChatBubbleComponent_ng_container_1_ng_container_4_Template", "\u0275\u0275elementEnd", "\u0275\u0275property", "profilePicUrl", "profileSVGIcon", "messageFrom", "profileBackgroundColor", "profileSourceIconUrl", "\u0275\u0275projection", "messageText", "\u0275\u0275sanitizeHtml", "messageMetadata", "ChatBubbleComponent", "constructor", "class", "type", "showProfilePic", "sentFromYou", "isTyping", "shouldShowProfilePic", "profilePicCSS", "selectors", "hostVars", "hostBindings", "rf", "ctx", "\u0275\u0275classMap", "ChatBubbleComponent_ng_container_1_Template", "ChatBubbleComponent_ng_container_4_Template", "ChatBubbleComponent_ng_container_5_Template", "\u0275\u0275classProp", "_ChatBubbleComponent", "ChatDividerTextComponent", "selectors", "ngContentSelectors", "_c0", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275projection", "\u0275\u0275elementEnd", "_ChatDividerTextComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275classProp", "ctx_r0", "isMetadataPresented", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "messageMetadata", "ChatEventComponent", "constructor", "eRef", "inject", "ElementRef", "clickTimeout", "onMouseDown", "event", "window", "getSelection", "toString", "clearTimeout", "setTimeout", "nativeElement", "querySelector", "contains", "target", "onClick", "HTMLAnchorElement", "selectors", "hostBindings", "rf", "ctx", "\u0275\u0275listener", "$event", "\u0275\u0275resolveDocument", "\u0275\u0275projection", "\u0275\u0275template", "ChatEventComponent_div_2_Template", "\u0275\u0275property", "_ChatEventComponent", "ChatContainerComponent", "constructor", "class", "chatId", "showNewMessageIndicator", "isIOS", "test", "window", "navigator", "userAgent", "animationTimer", "animationDuration", "currentAnimationDuration", "scrollable", "chatContent", "nativeElement", "scrollTop", "scrollTo", "top", "behavior", "onNewMessageReceived", "mobileSafariScrollFix", "onNewMessageSent", "scrollToBottom", "onScroll", "setTimeout", "ngAfterViewInit", "resetAnimationDuration", "ngOnChanges", "changes", "currentValue", "previousValue", "getAnimationDurationStyle", "clearTimeout", "ngOnDestroy", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275classMap", "\u0275\u0275styleProp", "\u0275\u0275elementStart", "\u0275\u0275listener", "i0", "\u0275\u0275restoreView", "_r1", "\u0275\u0275resetView", "\u0275\u0275projection", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275classProp", "_ChatContainerComponent", "import_dompurify", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275elementContainerStart", "\u0275\u0275projection", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "ctx_r0", "messageStatusText", "messageTime", "ChatMessageComponent", "constructor", "itemContent", "isTyping", "isMetadataPresented", "eRef", "inject", "ElementRef", "class", "messageStatusClass", "messageStatus", "onClick", "event", "window", "getSelection", "toString", "nativeElement", "querySelector", "contains", "target", "isLink", "HTMLAnchorElement", "isInElement", "ngAfterViewInit", "messageText", "bubbleElement", "innerHTML", "DOMPurify", "sanitize", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275listener", "$event", "\u0275\u0275resolveDocument", "\u0275\u0275classMap", "\u0275\u0275template", "ChatMessageComponent_mat_icon_1_Template", "ChatMessageComponent_ng_container_5_Template", "ChatMessageComponent_ng_container_6_Template", "ChatMessageComponent_span_10_Template", "ChatMessageComponent_span_11_Template", "\u0275\u0275property", "\u0275\u0275pureFunction0", "_c3", "includes", "\u0275\u0275classProp", "CommonModule", "NgClass", "NgIf", "NgSwitch", "NgSwitchCase", "NgSwitchDefault", "MatIconModule", "MatIcon", "TranslateModule", "TranslatePipe", "styles", "changeDetection", "_ChatMessageComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pureFunction1", "_c1", "ctx_r0", "profileSourceIconName", "\u0275\u0275elementStart", "\u0275\u0275template", "ChatMessageGroupComponent_ng_container_1_ng_container_4_Template", "\u0275\u0275elementEnd", "profilePicUrl", "profileIcon", "profileSVGIcon", "messageFrom", "profileBackgroundColor", "\u0275\u0275text", "\u0275\u0275textInterpolate", "messageMetadata", "ChatMessageGroupComponent", "constructor", "class", "type", "showProfilePic", "sentFromYou", "isTyping", "shouldShowProfilePic", "selectors", "hostVars", "hostBindings", "rf", "ctx", "\u0275\u0275classMap", "ChatMessageGroupComponent_ng_container_1_Template", "ChatMessageGroupComponent_span_7_Template", "ChatMessageGroupComponent_span_8_Template", "\u0275\u0275projection", "ChatMessageGroupComponent_ng_container_10_Template", "\u0275\u0275classProp", "\u0275\u0275pipeBind1", "CommonModule", "NgClass", "NgIf", "GalaxyAvatarModule", "AvatarComponent", "ChatMessageComponent", "TranslateModule", "TranslatePipe", "styles", "changeDetection", "_ChatMessageGroupComponent", "AdditionalMetadataDirective", "constructor", "class", "selectors", "hostVars", "hostBindings", "rf", "ctx", "\u0275\u0275classMap", "_AdditionalMetadataDirective", "MODULE_IMPORTS", "CommonModule", "MatTooltipModule", "CdkScrollableModule", "GalaxyAvatarModule", "ChatMessageGroupComponent", "ChatMessageComponent", "MatButtonModule", "MatIconModule", "MODULE_DECLARATIONS", "ChatBubbleComponent", "ChatDividerTextComponent", "ChatEventComponent", "ChatContainerComponent", "AdditionalMetadataDirective", "MODULE_EXPORTS", "GalaxyChatModule", "_GalaxyChatModule"] }