@memberjunction/ng-conversations 5.3.1 → 5.4.1

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.
Files changed (84) hide show
  1. package/dist/__tests__/index.test.js.map +1 -1
  2. package/dist/__tests__/mention-parser.test.js.map +1 -1
  3. package/dist/__tests__/notification-model.test.js.map +1 -1
  4. package/dist/__tests__/search-service.test.js.map +1 -1
  5. package/dist/__tests__/toast-service.test.js.map +1 -1
  6. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  7. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  8. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  9. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  10. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  11. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  12. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  13. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  14. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  15. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  16. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  17. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  18. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  19. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  20. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  21. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  22. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  23. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  24. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  25. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  26. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  27. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  28. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  29. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  30. package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
  31. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  32. package/dist/lib/components/message/form-question.component.js.map +1 -1
  33. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  34. package/dist/lib/components/message/message-input.component.js.map +1 -1
  35. package/dist/lib/components/message/message-item.component.js.map +1 -1
  36. package/dist/lib/components/message/message-list.component.js.map +1 -1
  37. package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
  38. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  39. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  40. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  41. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  42. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  43. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  44. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  45. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  46. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  47. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  48. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  49. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  50. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  51. package/dist/lib/components/toast/toast.component.js.map +1 -1
  52. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  53. package/dist/lib/conversations.module.js.map +1 -1
  54. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  55. package/dist/lib/models/collection-view.model.js.map +1 -1
  56. package/dist/lib/models/conversation-complete-query.model.js.map +1 -1
  57. package/dist/lib/models/conversation-state.model.js.map +1 -1
  58. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  59. package/dist/lib/models/navigation-request.model.js.map +1 -1
  60. package/dist/lib/models/notification.model.js.map +1 -1
  61. package/dist/lib/services/active-tasks.service.js.map +1 -1
  62. package/dist/lib/services/agent-state.service.js.map +1 -1
  63. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  64. package/dist/lib/services/artifact-state.service.js.map +1 -1
  65. package/dist/lib/services/artifact-use-tracking.service.js.map +1 -1
  66. package/dist/lib/services/collection-permission.service.js.map +1 -1
  67. package/dist/lib/services/collection-state.service.js.map +1 -1
  68. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  69. package/dist/lib/services/conversation-agent.service.js +20 -11
  70. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  71. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  72. package/dist/lib/services/conversation-data.service.js.map +1 -1
  73. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  74. package/dist/lib/services/data-cache.service.js.map +1 -1
  75. package/dist/lib/services/dialog.service.js.map +1 -1
  76. package/dist/lib/services/export.service.js.map +1 -1
  77. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  78. package/dist/lib/services/mention-parser.service.js.map +1 -1
  79. package/dist/lib/services/notification.service.js.map +1 -1
  80. package/dist/lib/services/search.service.js.map +1 -1
  81. package/dist/lib/services/toast.service.js.map +1 -1
  82. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  83. package/dist/public-api.js.map +1 -1
  84. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"file":"message-item.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/message-item.component.ts","../../../../src/lib/components/message/message-item.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-item.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/message-item.component.ts","../../../../src/lib/components/message/message-item.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n OnInit,\n OnChanges,\n SimpleChanges,\n DoCheck\n} from '@angular/core';\nimport { MJConversationDetailEntity, MJConversationEntity, MJArtifactEntity, MJArtifactVersionEntity, MJTaskEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, CompositeKey, KeyValuePair } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport { AgentResponseForm, FormQuestion, ChoiceQuestionType, ActionableCommand, AutomaticCommand, ConversationUtility, MJAIAgentRunEntityExtended } from '@memberjunction/ai-core-plus';\nimport { MentionParserService } from '../../services/mention-parser.service';\nimport { MentionAutocompleteService } from '../../services/mention-autocomplete.service';\nimport { SuggestedResponse } from '../../models/conversation-state.model';\nimport { RatingJSON } from '../../models/conversation-complete-query.model';\nimport { UICommandHandlerService } from '../../services/ui-command-handler.service';\n\n/**\n * Represents an attachment on a message for display\n */\nexport interface MessageAttachment {\n id: string;\n type: 'Image' | 'Video' | 'Audio' | 'Document';\n mimeType: string;\n fileName: string | null;\n sizeBytes: number;\n width?: number;\n height?: number;\n thumbnailUrl?: string;\n contentUrl?: string;\n}\n\n/**\n * Component for displaying a single message in a conversation\n * Follows the dynamic rendering pattern from skip-chat for optimal performance\n * This component is created dynamically via ViewContainerRef.createComponent()\n */\n@Component({\n standalone: false,\n selector: 'mj-conversation-message-item',\n templateUrl: './message-item.component.html',\n styleUrls: [\n './message-item.component.css',\n '../../styles/custom-agent-icons.css'\n ]\n})\nexport class MessageItemComponent extends BaseAngularComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, DoCheck {\n @Input() public message!: MJConversationDetailEntity;\n @Input() public conversation!: MJConversationEntity | null;\n @Input() public currentUser!: UserInfo;\n @Input() public allMessages!: MJConversationDetailEntity[];\n @Input() public isProcessing: boolean = false;\n @Input() public artifact?: MJArtifactEntity;\n @Input() public artifactVersion?: MJArtifactVersionEntity;\n @Input() public agentRun: MJAIAgentRunEntityExtended | null = null; // Passed from parent, loaded once per conversation\n @Input() public userAvatarMap: Map<string, {imageUrl: string | null; iconClass: string | null}> = new Map();\n @Input() public ratings?: RatingJSON[]; // Pre-loaded ratings from parent (RatingsJSON from query)\n @Input() public isLastMessage: boolean = false; // Whether this is the last message in the conversation\n @Input() public attachments: MessageAttachment[] = []; // Attachments for this message\n\n @Output() public pinClicked = new EventEmitter<MJConversationDetailEntity>();\n @Output() public editClicked = new EventEmitter<MJConversationDetailEntity>();\n @Output() public deleteClicked = new EventEmitter<MJConversationDetailEntity>();\n @Output() public retryClicked = new EventEmitter<MJConversationDetailEntity>();\n @Output() public testFeedbackClicked = new EventEmitter<MJConversationDetailEntity>();\n @Output() public artifactClicked = new EventEmitter<{artifactId: string; versionId?: string}>();\n @Output() public artifactActionPerformed = new EventEmitter<{action: string; artifactId: string}>();\n @Output() public messageEdited = new EventEmitter<MJConversationDetailEntity>();\n @Output() public openEntityRecord = new EventEmitter<{entityName: string; compositeKey: CompositeKey}>();\n @Output() public suggestedResponseSelected = new EventEmitter<{text: string; customInput?: string}>();\n @Output() public attachmentClicked = new EventEmitter<MessageAttachment>();\n\n private _loadTime: number = Date.now();\n private _elapsedTimeInterval: any = null;\n public _elapsedTimeFormatted: string = '0:00';\n public _agentRunDurationFormatted: string = '0:00';\n public isEditing: boolean = false;\n public editedText: string = '';\n private originalText: string = '';\n\n // Track previous status for DoCheck comparison\n private _previousMessageStatus: 'Complete' | 'In-Progress' | 'Error' | undefined = undefined;\n\n // Agent run details\n public isAgentDetailsExpanded: boolean = false;\n public detailTasks: MJTaskEntity[] = [];\n private tasksLoaded: boolean = false;\n\n // Memoization for mention parsing to prevent repeated parsing on change detection\n private _cachedDisplayMessage: string = '';\n private _cachedMessageText: string = '';\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private mentionParser: MentionParserService,\n private mentionAutocomplete: MentionAutocompleteService,\n private uiCommandHandler: UICommandHandlerService\n ) {\n super();\n }\n\n async ngOnInit() {\n // Execute automatic commands if present\n await this.executeAutomaticCommands();\n }\n\n ngOnChanges(_changes: SimpleChanges) {\n // No longer need to manage timer for agentRun changes\n // Parent's 1-second timer + agentRunDuration getter handles all agent run timing\n // Component's timer only runs for temporary messages (handled in ngAfterViewInit)\n }\n\n /**\n * DoCheck lifecycle hook - detects changes to message properties\n * This runs on every change detection cycle, so we check if Status actually changed\n * This is more reliable than ngOnChanges when the message object reference doesn't change\n */\n ngDoCheck() {\n if (!this.message) {\n return;\n }\n\n const currentStatus = this.message.Status;\n\n // Check if status changed from non-Complete to Complete\n if (this._previousMessageStatus !== 'Complete' && currentStatus === 'Complete') {\n // Stop the elapsed time interval\n if (this._elapsedTimeInterval !== null) {\n clearInterval(this._elapsedTimeInterval);\n this._elapsedTimeInterval = null;\n }\n\n // Force immediate synchronous change detection for dynamically created components\n // markForCheck() only schedules a check which may not run for dynamic components\n // detectChanges() forces immediate view update so UI shows timer stopped right away\n this.cdRef.detectChanges();\n }\n\n // Update previous status for next check\n this._previousMessageStatus = currentStatus;\n }\n\n ngAfterViewInit() {\n // Use message creation timestamp if available (for reconnecting to in-progress messages)\n // Otherwise use current time for brand new messages\n if (this.message?.__mj_CreatedAt) {\n this._loadTime = new Date(this.message.__mj_CreatedAt).getTime();\n } else {\n this._loadTime = Date.now();\n }\n this.startElapsedTimeUpdater();\n this.cdRef.detectChanges();\n }\n\n ngOnDestroy() {\n if (this._elapsedTimeInterval !== null) {\n clearInterval(this._elapsedTimeInterval);\n this._elapsedTimeInterval = null;\n }\n }\n\n /**\n * Starts the elapsed time updater interval for temporary messages only\n * For agent runs with IDs, the parent's timer + agentRunDuration getter handles updates\n * Updates every second for temporary messages that use _elapsedTimeFormatted\n */\n private startElapsedTimeUpdater(): void {\n // Only start timer for temporary messages (no ID yet)\n // Agent runs with IDs use the parent's timer + agentRunDuration getter\n if (this.isInProgressAIMessage) {\n // Initial update\n this.updateTimers();\n this.cdRef.markForCheck();\n\n // Start interval if not already running\n if (this._elapsedTimeInterval === null) {\n this._elapsedTimeInterval = setInterval(() => {\n this.updateTimers();\n // Use detectChanges to force immediate synchronous view update\n // markForCheck only schedules a check which may not happen if parent already checked\n this.cdRef.detectChanges();\n }, 1000);\n }\n }\n }\n\n /**\n * Update all timer displays\n * Called every second by the interval timer\n */\n private updateTimers(): void {\n // Update temporary message elapsed time\n if (this.isInProgressAIMessage) {\n this._elapsedTimeFormatted = this.formatElapsedTime(this.elapsedTimeSinceLoad);\n }\n\n // Update agent run duration for active runs\n if (this.isAgentRunActive && this.agentRun?.__mj_CreatedAt) {\n const createdAt = new Date(this.agentRun.__mj_CreatedAt);\n const now = new Date();\n const diffMs = now.getTime() - createdAt.getTime();\n this._agentRunDurationFormatted = this.formatDurationFromMs(diffMs);\n }\n }\n\n private formatElapsedTime(elapsedTime: number): string {\n let seconds = Math.floor(elapsedTime / 1000);\n let minutes = Math.floor(seconds / 60);\n seconds = seconds % 60;\n let hours = Math.floor(minutes / 60);\n minutes = minutes % 60;\n let formattedTime = (hours > 0 ? hours + ':' : '') +\n (minutes < 10 && hours > 0 ? '0' : '') + minutes + ':' +\n (seconds < 10 ? '0' : '') + seconds;\n return formattedTime;\n }\n\n private formatDurationFromMs(diffMs: number): string {\n if (diffMs <= 0) {\n return '0:00';\n }\n\n let seconds = Math.floor(diffMs / 1000);\n let minutes = Math.floor(seconds / 60);\n seconds = seconds % 60;\n let hours = Math.floor(minutes / 60);\n minutes = minutes % 60;\n let formattedTime = (hours > 0 ? hours + ':' : '') +\n (minutes < 10 && hours > 0 ? '0' : '') + minutes + ':' +\n (seconds < 10 ? '0' : '') + seconds;\n return formattedTime;\n }\n\n public get elapsedTimeSinceLoad(): number {\n return Date.now() - this._loadTime;\n }\n\n public get isAIMessage(): boolean {\n return this.message.Role?.trim().toLowerCase() === 'ai';\n }\n\n public get aiAgentInfo(): { name: string; iconClass: string; role: string } | null {\n if (!this.isAIMessage) return null;\n\n // Get agent ID from denormalized field (populated when message is created)\n const agentID = (this.message as any).AgentID;\n\n // Look up agent from AIEngineBase cache\n if (agentID && AIEngineBase.Instance?.Agents) {\n const agent = AIEngineBase.Instance.Agents.find(a => a.ID === agentID);\n if (agent) {\n return {\n name: agent.Name || 'AI Assistant',\n iconClass: agent.IconClass || 'fa-robot',\n role: agent.Description || 'AI Assistant'\n };\n } else {\n // Only log if the message is complete (should have AgentID by then)\n if (this.message.Status === 'Complete') {\n console.warn('⚠️ Agent not found in cache for ID:', agentID);\n }\n }\n }\n // Note: In-progress messages won't have AgentID yet, so we don't log warnings for them\n\n // Default fallback for AI messages without agent info\n return {\n name: 'AI Assistant',\n iconClass: 'fa-robot',\n role: 'AI Assistant'\n };\n }\n\n public get isUserMessage(): boolean {\n return this.message.Role?.trim().toLowerCase() === 'user';\n }\n\n /**\n * Get the actual sender name for user messages\n * Uses the denormalized User field from the view if available,\n * otherwise falls back to current user name\n */\n public get messageSenderName(): string {\n // Use the denormalized User field from the ConversationDetail view\n // This is populated from the UserID (if present) or falls back to Conversation.UserID\n if (this.message.User) {\n return this.message.User;\n }\n\n // Fallback to current user name (for backwards compatibility)\n return this.currentUser.Name;\n }\n\n /**\n * Get the user's avatar image URL from the userAvatarMap\n * Uses fast O(1) lookup by UserID\n */\n public get userAvatarUrl(): string | null {\n if (!this.isUserMessage || !this.message.UserID) {\n return null;\n }\n const avatarData = this.userAvatarMap.get(this.message.UserID);\n return avatarData?.imageUrl || null;\n }\n\n /**\n * Get the user's avatar icon class from the userAvatarMap\n * Uses fast O(1) lookup by UserID\n */\n public get userAvatarIconClass(): string | null {\n if (!this.isUserMessage || !this.message.UserID) {\n return null;\n }\n const avatarData = this.userAvatarMap.get(this.message.UserID);\n return avatarData?.iconClass || null;\n }\n\n public get isConversationManager(): boolean {\n return this.aiAgentInfo?.name === 'Sage';\n }\n\n public get displayMessage(): string {\n let text = this.message.Message || '';\n\n // For Sage, only show the delegation line (starts with emoji)\n if (this.isConversationManager && text) {\n const delegationMatch = text.match(/🤖.*Delegating to.*Agent.*/);\n if (delegationMatch) {\n text = delegationMatch[0];\n }\n }\n\n // Use cached result if message text hasn't changed\n if (this._cachedMessageText === text && this._cachedDisplayMessage) {\n return this._cachedDisplayMessage;\n }\n\n // Transform @mentions to HTML pills\n const transformed = this.transformMentionsToHTML(text);\n\n // Cache the result\n this._cachedMessageText = text;\n this._cachedDisplayMessage = transformed;\n\n return transformed;\n }\n\n /**\n * Transform @mentions in text to HTML badge elements\n * Supports both JSON format (@{type:\"agent\",id:\"uuid\",...}) and legacy text format (@AgentName)\n * Uses inline HTML that markdown will preserve\n */\n private transformMentionsToHTML(text: string): string {\n if (!text) return '';\n\n // Get available agents and users for name/icon lookup\n const agents = this.mentionAutocomplete.getAvailableAgents();\n const users = this.mentionAutocomplete.getAvailableUsers();\n\n // Parse all @{...} tokens\n const tokens = ConversationUtility.ParseSpecialContent(text);\n if (tokens.length === 0) return text; // No tokens found, return original text\n\n // Replace tokens in reverse order to maintain indices\n let result = text;\n for (let i = tokens.length - 1; i >= 0; i--) {\n const token = tokens[i];\n let html = '';\n\n switch (token.mode) {\n case 'mention':\n html = this.renderMentionHTML(token.content as any, agents, users);\n break;\n case 'form':\n html = this.renderFormHTML(token.content as any);\n break;\n default:\n // Unknown mode, leave original text as-is\n html = token.originalText;\n }\n\n result = result.substring(0, token.startIndex) + html + result.substring(token.endIndex);\n }\n\n return result;\n }\n\n private renderMentionHTML(content: any, agents: any[], users: any[]): string {\n let name = content.name;\n let iconClass = '';\n let logoURL = '';\n let configPresetName = '';\n\n // Look up actual name and icon if ID provided\n if (content.type === 'agent' && agents) {\n const agent = agents.find(a => a.ID === content.id);\n if (agent) {\n name = agent.Name;\n iconClass = agent.IconClass || '';\n logoURL = agent.LogoURL || '';\n\n // Check for configuration preset (only show if non-default)\n if (content.configId && AIEngineBase.Instance) {\n const presets = AIEngineBase.Instance.GetAgentConfigurationPresets(content.id, true);\n if (presets && presets.length > 0) {\n const defaultPreset = presets.find(p => p.IsDefault) || presets[0];\n const isNonDefault = content.configId !== defaultPreset?.ID;\n\n // Only include preset name if it's not the default\n if (isNonDefault && content.config) {\n configPresetName = content.config;\n }\n }\n }\n }\n } else if (content.type === 'user' && users) {\n const user = users.find(u => u.ID === content.id);\n if (user) name = user.Name;\n }\n\n const escapedName = this.escapeHtml(name);\n const typeClass = content.type === 'agent' ? 'agent' : 'user';\n\n // Build preset indicator HTML if present\n const presetIndicator = configPresetName\n ? `<span class=\"preset-indicator\">${this.escapeHtml(configPresetName)}</span>`\n : '';\n\n // Generate HTML based on whether we have an icon\n if (logoURL) {\n return `<span class=\"mention-badge ${typeClass}\"><img src=\"${this.escapeHtml(logoURL)}\" alt=\"\" />${escapedName}${presetIndicator}</span>`;\n } else if (iconClass) {\n return `<span class=\"mention-badge ${typeClass}\"><i class=\"${this.escapeHtml(iconClass)}\" aria-hidden=\"true\"></i>${escapedName}${presetIndicator}</span>`;\n } else {\n return `<span class=\"mention-badge ${typeClass}\">${escapedName}${presetIndicator}</span>`;\n }\n }\n\n private renderFormHTML(content: any): string {\n if (!content.fields || content.fields.length === 0) {\n return this.escapeHtml(JSON.stringify(content));\n }\n\n // Filter out fields with empty/null/undefined values (optional fields not provided)\n const nonEmptyFields = content.fields.filter((f: any) => {\n const value = f.value;\n return value != null && value !== '' && !(Array.isArray(value) && value.length === 0);\n });\n\n if (nonEmptyFields.length === 0) {\n return this.escapeHtml(JSON.stringify(content));\n }\n\n if (nonEmptyFields.length === 1) {\n // Single field - simple inline pill\n const field = nonEmptyFields[0];\n // Use displayValue (friendly option label) if available, otherwise fall back to raw value\n const value = this.escapeHtml(String(field.displayValue || field.value));\n\n // Just show the value if it's a single simple response\n // This handles cases like \"Choose an option: weather\" -> just show \"weather\"\n return `<span class=\"form-response-pill single-field\"><i class=\"fa fa-check\" aria-hidden=\"true\"></i>${value}</span>`;\n } else {\n // Multiple fields - vertical question/answer layout for complex forms\n const title = content.title ? this.escapeHtml(content.title) : 'Form Response';\n const fieldsHTML = nonEmptyFields.map((f: any) => {\n const label = this.escapeHtml(f.label || f.name);\n const value = this.formatFieldValue(f);\n return `<div class=\"pill-field\">\n <div class=\"field-question\">${label}</div>\n <div class=\"field-answer\">${value}</div>\n </div>`;\n }).join('');\n\n return `<div class=\"form-response-pill multi-field\">\n <div class=\"pill-header\">\n <i class=\"fa fa-check-square\" aria-hidden=\"true\"></i>\n ${title}\n </div>\n <div class=\"pill-fields\">${fieldsHTML}</div>\n </div>`;\n }\n }\n\n private formatFieldValue(field: { name?: string; value: any; label?: string; type?: string; displayValue?: string }): string {\n // Handle null/undefined\n if (field.value == null) {\n return this.escapeHtml('');\n }\n\n // For choice types (buttongroup, radio, dropdown, checkbox), use displayValue if available\n const choiceTypes = ['buttongroup', 'radio', 'dropdown', 'checkbox'];\n if (field.type && choiceTypes.includes(field.type) && field.displayValue) {\n return this.escapeHtml(field.displayValue);\n }\n\n const stringValue = String(field.value);\n\n // Format based on field type\n switch (field.type) {\n case 'date':\n // Date-only: \"May 1, 2024\"\n return this.formatDate(stringValue, false);\n\n case 'datetime':\n // Date and time: \"May 1, 2024 at 6:00 AM\"\n return this.formatDate(stringValue, true);\n\n case 'time':\n // Time-only: \"2:30 PM\"\n return this.formatTime(stringValue);\n\n case 'daterange':\n // Parse object: { start: '...', end: '...' }\n return this.formatDateRange(field.value);\n\n case 'slider':\n // Value with optional suffix\n return this.escapeHtml(stringValue);\n\n default:\n // Try auto-detect ISO date (for backward compatibility)\n if (stringValue.match(/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/)) {\n // Legacy: guess based on time component\n const date = new Date(stringValue);\n const hasMidnight = date.getUTCHours() === 0 && date.getUTCMinutes() === 0 && date.getUTCSeconds() === 0;\n return this.formatDate(stringValue, !hasMidnight);\n }\n\n return this.escapeHtml(stringValue);\n }\n }\n\n private formatDate(value: string, includeTime: boolean): string {\n try {\n const date = new Date(value);\n if (isNaN(date.getTime())) return this.escapeHtml(value);\n\n if (includeTime) {\n return this.escapeHtml(date.toLocaleString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hour12: true\n }));\n } else {\n return this.escapeHtml(date.toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n }));\n }\n } catch (e) {\n return this.escapeHtml(value);\n }\n }\n\n private formatTime(value: string): string {\n // Handle \"HH:mm\" or \"HH:mm:ss\" format\n try {\n const [hours, minutes] = value.split(':').map(Number);\n const date = new Date();\n date.setHours(hours, minutes, 0);\n\n return this.escapeHtml(date.toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true\n }));\n } catch (e) {\n return this.escapeHtml(value);\n }\n }\n\n private formatDateRange(value: any): string {\n if (typeof value === 'object' && value.start && value.end) {\n const start = this.formatDate(value.start, false);\n const end = this.formatDate(value.end, false);\n // Remove HTML encoding temporarily to avoid double encoding\n const startText = start.replace(/&[^;]+;/g, m => {\n const map: any = { '&lt;': '<', '&gt;': '>', '&amp;': '&', '&quot;': '\"', '&#039;': \"'\" };\n return map[m] || m;\n });\n const endText = end.replace(/&[^;]+;/g, m => {\n const map: any = { '&lt;': '<', '&gt;': '>', '&amp;': '&', '&quot;': '\"', '&#039;': \"'\" };\n return map[m] || m;\n });\n return this.escapeHtml(`${startText} to ${endText}`);\n }\n return this.escapeHtml(JSON.stringify(value));\n }\n\n private escapeHtml(text: string): string {\n return text\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#039;');\n }\n\n public get isInProgressAIMessage(): boolean {\n return this.isAIMessage && this.message.Status === 'In-Progress';\n }\n\n public get isAgentRunActive(): boolean {\n if (!this.agentRun) {\n return false;\n }\n const status = this.agentRun.Status?.toLowerCase();\n return status === 'in-progress' || status === 'running';\n }\n\n public get messageStatus(): 'Complete' | 'In-Progress' | 'Error' {\n return this.message.Status || 'Complete';\n }\n\n public getStatusText(): string {\n switch (this.messageStatus) {\n case 'In-Progress':\n return 'Processing...';\n case 'Error':\n return 'Failed';\n default:\n return '';\n }\n }\n\n public get isFirstMessageInConversation(): boolean {\n return this.allMessages.indexOf(this.message) === 0;\n }\n\n public get isLastMessageInConversation(): boolean {\n return this.allMessages.indexOf(this.message) === this.allMessages.length - 1;\n }\n\n /**\n * Determine if rating component should be shown inline (Option C - Hybrid).\n * Show for latest completed AI message that user hasn't rated yet.\n * For older/already-rated messages, ratings accessible via gear menu.\n */\n public shouldShowRating(): boolean {\n // Must be an AI message\n if (!this.isAIMessage) return false;\n\n // Must be completed (not in progress or failed)\n if (this.messageStatus !== 'Complete') return false;\n\n // Must not be editing\n if (this.isEditing) return false;\n\n // Must be the last message in conversation\n if (!this.isLastMessageInConversation) return false;\n\n // Check if current user has already rated this message\n if (this.ratings && this.ratings.length > 0) {\n const currentUserId = this.currentUser?.ID;\n const userHasRated = this.ratings.some(r => r.UserID === currentUserId);\n\n // If user already rated, don't show inline (accessible via gear menu)\n if (userHasRated) return false;\n }\n\n // Show inline rating for latest completed AI message not yet rated by user\n return true;\n }\n\n /**\n * Check if message has any ratings (for gear icon badge)\n */\n public hasRatings(): boolean {\n return !!(this.ratings && this.ratings.length > 0);\n }\n\n /**\n * Get rating count for badge display on gear icon\n */\n public getRatingCount(): number {\n return this.ratings?.length || 0;\n }\n\n /**\n * Get thumbs up count (ratings >= 8)\n */\n public getThumbsUpCount(): number {\n return this.ratings?.filter(r => r.Rating ? r.Rating >= 8 : false).length || 0;\n }\n\n /**\n * Get thumbs down count (ratings <= 3)\n */\n public getThumbsDownCount(): number {\n return this.ratings?.filter(r => r.Rating ? r.Rating <= 3 : false).length || 0;\n }\n\n /**\n * Determine if pin/delete actions should show inline (with rating buttons).\n * Show for latest completed AI message that user hasn't rated yet.\n */\n public shouldShowInlineActions(): boolean {\n // Same logic as shouldShowRating - latest unrated message\n return this.shouldShowRating();\n }\n\n public get hasArtifact(): boolean {\n return !!this.artifactVersion;\n }\n\n /**\n * Check if the artifact is a system-only artifact\n */\n public get isSystemArtifact(): boolean {\n return this.artifact?.Visibility === 'System Only';\n }\n\n /**\n * Unified time pill text for all AI message states\n * Returns the appropriate time display based on message state:\n * - Temporary messages (in-progress): Live elapsed time\n * - Active agent runs: Live agent run duration (calculated on-demand)\n * - Completed messages: Final generation time\n * - Failed messages: Time before failure\n */\n public get timePillText(): string | null {\n return this.calculateTimePillText();\n }\n\n private calculateTimePillText(): string | null {\n if (this.isUserMessage) {\n return null;\n }\n\n // For temporary messages (in-progress), show live elapsed time\n if (this.isInProgressAIMessage) {\n return this._elapsedTimeFormatted;\n }\n\n // For active agent runs, calculate live duration from agentRun timestamps\n // This getter recalculates every time using new Date(), so it updates smoothly\n if (this.isAgentRunActive && this.agentRun?.__mj_CreatedAt) {\n return this.agentRunDuration;\n }\n\n // For completed or failed messages, show final generation time\n return this.formattedGenerationTime;\n }\n\n public get formattedGenerationTime(): string | null {\n // Only show generation time for AI messages\n if (this.isUserMessage || !this.message.__mj_CreatedAt || !this.message.__mj_UpdatedAt) {\n return null;\n }\n\n // Calculate generation time from created -> updated timestamps\n const createdAt = new Date(this.message.__mj_CreatedAt);\n const updatedAt = new Date(this.message.__mj_UpdatedAt);\n const diffMs = updatedAt.getTime() - createdAt.getTime();\n\n // If no time difference, don't show (e.g., not yet completed)\n if (diffMs <= 0) {\n return null;\n }\n\n const seconds = diffMs / 1000;\n\n if (seconds < 1) {\n return `${Math.round(diffMs)}ms`;\n } else if (seconds < 60) {\n return `${seconds.toFixed(1)}s`;\n } else {\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}m ${secs}s`;\n }\n }\n\n public get messageClasses(): string {\n const classes: string[] = ['message-item'];\n if (this.isAIMessage) {\n classes.push('ai-message');\n // Show in-progress styling for AI messages that are still processing\n if (this.isInProgressAIMessage) {\n classes.push('in-progress');\n }\n } else if (this.isUserMessage) {\n classes.push('user-message');\n }\n if (this.message.IsPinned) {\n classes.push('pinned');\n }\n if (this.isEditing) {\n classes.push('editing');\n }\n return classes.join(' ');\n }\n\n public get isMessageEdited(): boolean {\n // Only show edited badge if user actually edited the message content\n // The OriginalMessageChanged flag is set server-side when the Message field changes on update\n if (!this.isUserMessage) {\n return false;\n }\n return this.message.OriginalMessageChanged === true;\n }\n\n public onPinClick(): void {\n if (!this.isProcessing) {\n this.pinClicked.emit(this.message);\n }\n }\n\n public onEditClick(): void {\n if (!this.isProcessing && !this.isEditing) {\n this.startEditing();\n }\n }\n\n public startEditing(): void {\n this.originalText = this.message.Message || '';\n this.editedText = this.originalText;\n this.isEditing = true;\n\n // Focus textarea after Angular renders it\n Promise.resolve().then(() => {\n const textarea = document.querySelector('.message-edit-textarea') as HTMLTextAreaElement;\n if (textarea) {\n textarea.focus();\n textarea.setSelectionRange(textarea.value.length, textarea.value.length);\n }\n this.cdRef.detectChanges();\n });\n }\n\n public cancelEditing(): void {\n this.isEditing = false;\n this.editedText = '';\n this.originalText = '';\n this.cdRef.detectChanges();\n }\n\n public async saveEdit(): Promise<void> {\n if (!this.editedText.trim() || this.editedText === this.originalText) {\n this.cancelEditing();\n return;\n }\n\n try {\n // Update the message entity\n this.message.Message = this.editedText;\n const saveResult = await this.message.Save();\n\n if (saveResult) {\n this.isEditing = false;\n this.editedText = '';\n this.originalText = '';\n // Invalidate display message cache since message changed\n this._cachedMessageText = '';\n this._cachedDisplayMessage = '';\n this.messageEdited.emit(this.message);\n this.cdRef.detectChanges();\n } else {\n console.error('Failed to save message edit');\n alert('Failed to save message. Please try again.');\n }\n } catch (error) {\n console.error('Error saving message edit:', error);\n alert('Error saving message. Please try again.');\n }\n }\n\n public onEditKeydown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.cancelEditing();\n } else if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n this.saveEdit();\n }\n }\n\n public onDeleteClick(): void {\n if (!this.isProcessing) {\n this.deleteClicked.emit(this.message);\n }\n }\n\n public onTestFeedbackClick(): void {\n if (!this.isProcessing) {\n this.testFeedbackClicked.emit(this.message);\n }\n }\n\n public onRetryClick(): void {\n if (!this.isProcessing && this.messageStatus === 'Error') {\n this.retryClicked.emit(this.message);\n }\n }\n\n public onArtifactClick(): void {\n if (this.hasArtifact && this.artifact) {\n this.artifactClicked.emit({\n artifactId: this.artifact.ID,\n versionId: this.artifactVersion?.ID\n });\n }\n }\n\n public onArtifactActionPerformed(event: {action: string; artifact: MJArtifactEntity; version?: MJArtifactVersionEntity}): void {\n // Handle artifact actions from inline-artifact component\n if (event.action === 'open') {\n this.artifactClicked.emit({\n artifactId: event.artifact.ID,\n versionId: event.version?.ID\n });\n } else {\n // Emit other actions to parent\n this.artifactActionPerformed.emit({ action: event.action, artifactId: event.artifact.ID });\n }\n }\n\n public toggleReaction(type: 'like' | 'comment'): void {\n // TODO: Implement reaction toggling\n console.log('Toggle reaction:', type, 'for message:', this.message.ID);\n }\n\n public onSaveArtifact(event: Event): void {\n event.stopPropagation();\n // TODO: Implement artifact save\n console.log('Save artifact for message:', this.message.ID);\n }\n\n public onShareArtifact(event: Event): void {\n event.stopPropagation();\n // TODO: Implement artifact share\n console.log('Share artifact for message:', this.message.ID);\n }\n\n public onExportArtifact(event: Event): void {\n event.stopPropagation();\n // TODO: Implement artifact export\n console.log('Export artifact for message:', this.message.ID);\n }\n\n /**\n * Handle attachment thumbnail click\n * Emits the attachment for the parent to display in the image viewer\n */\n public onAttachmentClick(attachment: MessageAttachment): void {\n this.attachmentClicked.emit(attachment);\n }\n\n /**\n * Check if message has any attachments\n */\n public get hasAttachments(): boolean {\n return this.attachments && this.attachments.length > 0;\n }\n\n /**\n * Get only image attachments\n */\n public get imageAttachments(): MessageAttachment[] {\n return this.attachments?.filter(a => a.type === 'Image') || [];\n }\n\n /**\n * Format file size for display\n */\n public formatFileSize(bytes: number): string {\n if (bytes < 1024) return bytes + ' B';\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + ' KB';\n return (bytes / (1024 * 1024)).toFixed(1) + ' MB';\n }\n\n /**\n * Whether this message has an associated agent run\n * Based on whether the message has an AgentID (not whether agentRun object is loaded)\n */\n public get hasAgentRun(): boolean {\n return !!this.message?.AgentID;\n }\n\n /**\n * Toggle the agent details panel expansion\n */\n public async toggleAgentDetails(): Promise<void> {\n this.isAgentDetailsExpanded = !this.isAgentDetailsExpanded;\n\n // Load tasks when expanding if not already loaded\n if (this.isAgentDetailsExpanded && !this.tasksLoaded) {\n await this.loadTasks();\n }\n\n this.cdRef.detectChanges();\n }\n\n /**\n * Load tasks associated with this conversation detail\n */\n private async loadTasks(): Promise<void> {\n if (!this.message?.ID) {\n return;\n }\n\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJTaskEntity>(\n {\n EntityName: 'MJ: Tasks',\n ExtraFilter: `ConversationDetailID='${this.message.ID}'`,\n OrderBy: '__mj_CreatedAt DESC',\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (result.Success) {\n this.detailTasks = result.Results || [];\n this.tasksLoaded = true;\n }\n } catch (error) {\n console.error('Failed to load tasks for conversation detail:', error);\n }\n }\n\n /**\n * Get formatted duration for the agent run\n * For active runs: Calculate from created to NOW (live updates)\n * For completed runs: Calculate from created to updated timestamp (static)\n */\n public get agentRunDuration(): string | null {\n if (!this.agentRun || !this.agentRun.__mj_CreatedAt) {\n return null;\n }\n\n const createdAt = new Date(this.agentRun.__mj_CreatedAt);\n let endTime: Date;\n\n // If agent run is still active, use current time for live updates\n if (this.isAgentRunActive) {\n endTime = new Date(); // Uses current UTC time\n } else {\n // For completed runs, use the final updated timestamp\n if (!this.agentRun.__mj_UpdatedAt) {\n return null;\n }\n endTime = new Date(this.agentRun.__mj_UpdatedAt);\n }\n\n const diffMs = endTime.getTime() - createdAt.getTime();\n\n if (diffMs <= 0) {\n return null;\n }\n\n const seconds = diffMs / 1000;\n\n if (seconds < 1) {\n return `${Math.round(diffMs)}ms`;\n } else if (seconds < 60) {\n return `${seconds.toFixed(1)}s`;\n } else {\n const mins = Math.floor(seconds / 60);\n const secs = Math.floor(seconds % 60);\n return `${mins}m ${secs}s`;\n }\n }\n\n /**\n * Get total tokens used in the agent run\n */\n public get agentRunTotalTokens(): number {\n if (!this.agentRun) {\n return 0;\n }\n return (this.agentRun.TotalPromptTokensUsed || 0) + (this.agentRun.TotalCompletionTokensUsed || 0);\n }\n\n /**\n * Get total cost of the agent run\n */\n public get agentRunTotalCost(): number {\n return this.agentRun?.TotalCost || 0;\n }\n\n /**\n * Get number of steps in the agent run\n */\n public get agentRunStepCount(): number {\n // Count from the Steps array if available\n if (this.agentRun && (this.agentRun as any).Steps) {\n return (this.agentRun as any).Steps.length;\n }\n return 0;\n }\n\n /**\n * Format number with commas\n */\n public formatNumber(num: number): string {\n return num.toLocaleString();\n }\n\n /**\n * Open the agent run entity record in a new tab\n */\n public openAgentRunRecord(): void {\n if (!this.agentRun?.ID) return;\n\n const compositeKey = new CompositeKey([\n new KeyValuePair('ID', this.agentRun.ID)\n ]);\n\n this.openEntityRecord.emit({\n entityName: 'MJ: AI Agent Runs',\n compositeKey\n });\n }\n\n /**\n * Open the agent entity record in a new tab\n */\n public openAgentRecord(): void {\n if (!this.agentRun?.AgentID) return;\n\n const compositeKey = new CompositeKey([\n new KeyValuePair('ID', this.agentRun.AgentID)\n ]);\n\n this.openEntityRecord.emit({\n entityName: 'MJ: AI Agents',\n compositeKey\n });\n }\n\n /**\n * Parse and return suggested responses from message data\n * Uses strongly-typed SuggestedResponses property from MJConversationDetailEntity\n */\n public get suggestedResponses(): SuggestedResponse[] {\n try {\n const rawData = this.message.SuggestedResponses;\n if (!rawData) return [];\n\n // Parse JSON string to array of SuggestedResponse objects\n const responses = JSON.parse(rawData);\n\n return Array.isArray(responses) ? responses : [];\n } catch (error) {\n console.error('Failed to parse suggested responses:', error);\n return [];\n }\n }\n\n /**\n * Check if current user is the conversation owner\n */\n public get isConversationOwner(): boolean {\n return this.conversation?.UserID === this.currentUser.ID;\n }\n\n /**\n * Handle suggested response selection\n */\n public onSuggestedResponseSelected(event: {text: string; customInput?: string}): void {\n this.suggestedResponseSelected.emit(event);\n }\n\n /**\n * Get agent response form from message\n * Uses ResponseForm property from MJConversationDetailEntity\n */\n public get responseForm(): AgentResponseForm | null {\n try {\n const rawData = this.message.ResponseForm;\n if (!rawData) {\n return null;\n }\n\n // Parse JSON string to AgentResponseForm object\n const form = JSON.parse(rawData);\n\n return form || null;\n } catch (error) {\n console.error('Failed to parse response form:', error, 'Raw data:', this.message.ResponseForm);\n return null;\n }\n }\n\n /**\n * Get actionable commands from message\n * Uses ActionableCommands property from MJConversationDetailEntity\n */\n public get actionableCommands(): ActionableCommand[] {\n try {\n const rawData = this.message.ActionableCommands;\n if (!rawData) return [];\n\n // Parse JSON string to array of ActionableCommand objects\n const commands = JSON.parse(rawData);\n return Array.isArray(commands) ? commands : [];\n } catch (error) {\n console.error('Failed to parse actionable commands:', error);\n return [];\n }\n }\n\n /**\n * Handle agent response form submission\n * Converts form data to the new @{_mode:\"form\",...} format\n */\n public onFormSubmitted(formData: Record<string, any>): void {\n const form = this.responseForm;\n if (!form) {\n console.error('No response form available for submission');\n return;\n }\n\n // Build fields array with proper labels and type metadata\n const fields = Object.entries(formData).map(([questionId, value]) => {\n const question = form.questions.find(q => q.id === questionId);\n const questionType = typeof question?.type === 'string' ? question.type : question?.type?.type;\n\n // Look up display value for choice types (buttongroup, radio, dropdown, checkbox)\n const displayValue = this.getChoiceDisplayValue(question, value);\n\n return {\n name: questionId,\n value: value,\n label: question?.label || questionId,\n type: questionType, // Include type for proper formatting\n displayValue: displayValue // Include friendly display text for choice fields\n };\n });\n\n // Create formatted message using ConversationUtility\n const formMessage = ConversationUtility.CreateFormResponse(\n 'formSubmit', // Generic action name\n fields,\n form.title\n );\n\n // Emit the formatted message\n this.suggestedResponseSelected.emit({\n text: formMessage,\n customInput: undefined // No longer needed with new format\n });\n }\n\n /**\n * Handle actionable command execution\n */\n public async onCommandExecuted(command: ActionableCommand): Promise<void> {\n try {\n await this.uiCommandHandler.executeActionableCommand(command);\n } catch (error) {\n console.error('Failed to execute command:', command, error);\n }\n }\n\n /**\n * Execute automatic commands when message loads\n * This is called after a message with automatic commands is received\n */\n private async executeAutomaticCommands(): Promise<void> {\n try {\n if (!this.isLastMessage)\n return; // we only do this when the message is the last one in the conversation\n\n // TODO - IMPORTANT\n // BELOW, after doing the commands,\n // we need to mark the message as haveing completed its automatic commands to avoid re-running on reload\n\n\n // For now, check if the property exists (will be added to schema)\n const rawData = (this.message as any).AutomaticCommands;\n if (!rawData) return;\n\n // Parse JSON string to array of AutomaticCommand objects\n const commands: AutomaticCommand[] = JSON.parse(rawData);\n if (Array.isArray(commands) && commands.length > 0) {\n await this.uiCommandHandler.executeAutomaticCommands(commands);\n }\n } catch (error) {\n console.error('Failed to execute automatic commands:', error);\n }\n }\n\n /**\n * Get the display value for choice-type questions (buttongroup, radio, dropdown, checkbox)\n * This looks up the option's label based on the selected value\n */\n private getChoiceDisplayValue(question: FormQuestion | undefined, value: string | number | boolean | string[]): string | undefined {\n if (!question) return undefined;\n\n // Get the question type object\n const typeObj = question.type;\n if (typeof typeObj === 'string') return undefined;\n\n // Check if it's a choice type with options\n const choiceTypes = ['buttongroup', 'radio', 'dropdown', 'checkbox'];\n if (!choiceTypes.includes(typeObj.type)) return undefined;\n\n const choiceType = typeObj as ChoiceQuestionType;\n if (!choiceType.options || choiceType.options.length === 0) return undefined;\n\n // Handle array values (checkbox with multiple selections)\n if (Array.isArray(value)) {\n const labels = value.map(v => {\n const option = choiceType.options.find(opt => opt.value === v);\n return option?.label || String(v);\n });\n return labels.join(', ');\n }\n\n // Handle single value\n const option = choiceType.options.find(opt => opt.value === value);\n return option?.label;\n }\n\n}","<div [class]=\"messageClasses\" [attr.data-message-id]=\"message.ID\">\n <div class=\"message-avatar\">\n <div class=\"avatar-circle\" [class.ai-avatar]=\"isAIMessage\" [class.user-avatar]=\"isUserMessage\">\n @if (isUserMessage) {\n @if (userAvatarUrl) {\n <img [src]=\"userAvatarUrl\" alt=\"User avatar\" class=\"avatar-image\" />\n } @else if (userAvatarIconClass) {\n <i [class]=\"userAvatarIconClass\"></i>\n } @else {\n <i class=\"fas fa-user\"></i>\n }\n } @else if (isAIMessage) {\n <i class=\"fas\" [ngClass]=\"aiAgentInfo?.iconClass || 'fa-robot'\"></i>\n }\n </div>\n </div>\n\n <div class=\"message-content\">\n <div class=\"message-header\">\n <span class=\"message-sender\" [title]=\"isAIMessage ? (aiAgentInfo?.role || 'AI Assistant') : ''\">\n {{ isAIMessage ? (aiAgentInfo?.name || 'AI Assistant') : messageSenderName }}\n </span>\n <span class=\"message-time\">{{ message.__mj_CreatedAt | date:'short' }}</span>\n\n <!-- Status indicator for user messages -->\n @if (isUserMessage && messageStatus !== 'Complete') {\n <span class=\"message-status\" [class.error]=\"messageStatus === 'Error'\">\n <i class=\"fas\" [ngClass]=\"messageStatus === 'Error' ? 'fa-exclamation-triangle' : 'fa-circle-notch fa-spin'\"></i>\n <span class=\"status-text\">{{ getStatusText() }}</span>\n </span>\n }\n\n <!-- Time pill - shows for AI messages in all states (in-progress, active, complete, failed) -->\n @if (!isUserMessage && timePillText) {\n <span\n class=\"time-pill\"\n [class.in-progress]=\"isInProgressAIMessage\"\n [class.active]=\"!isInProgressAIMessage && isAgentRunActive\"\n [class.complete]=\"!isInProgressAIMessage && !isAgentRunActive && messageStatus === 'Complete'\"\n [class.failed]=\"messageStatus === 'Error'\">\n <i class=\"fas fa-clock\"></i>\n {{ timePillText }}\n </span>\n }\n\n <!-- Test feedback icon (appears for test runs only) -->\n @if (message.TestRunID) {\n <span\n class=\"test-feedback-icon\"\n (click)=\"onTestFeedbackClick()\"\n title=\"Provide Test Feedback\">\n <i class=\"fas fa-flask\"></i>\n </span>\n }\n\n <!-- Agent run icon (clickable to expand details) - always rightmost when present -->\n @if (hasAgentRun) {\n <span\n class=\"agent-run-icon\"\n (click)=\"toggleAgentDetails()\"\n [class.expanded]=\"isAgentDetailsExpanded\"\n [title]=\"hasRatings() ? 'Agent details & ' + getRatingCount() + ' rating(s)' : 'Click to view agent execution details'\">\n <i class=\"fas fa-cog\"></i>\n @if (hasRatings()) {\n <span class=\"rating-badge\">{{ getRatingCount() }}</span>\n }\n </span>\n }\n </div>\n\n <div class=\"message-body\">\n @if (!isEditing) {\n <div class=\"message-text\">\n <mj-markdown [data]=\"displayMessage\" [enableCollapsibleHeadings]=\"true\"></mj-markdown>\n @if (isMessageEdited) {\n <span class=\"edited-badge\">(edited)</span>\n }\n </div>\n\n <!-- Message Attachments -->\n @if (hasAttachments) {\n <div class=\"message-attachments\">\n @for (attachment of attachments; track attachment.id) {\n <div class=\"attachment-item\"\n [class.image-attachment]=\"attachment.type === 'Image'\"\n (click)=\"onAttachmentClick(attachment)\">\n @if (attachment.type === 'Image') {\n <img\n [src]=\"attachment.thumbnailUrl || attachment.contentUrl\"\n [alt]=\"attachment.fileName || 'Image attachment'\"\n class=\"attachment-thumbnail\"\n loading=\"lazy\">\n <div class=\"attachment-overlay\">\n <i class=\"fas fa-expand\"></i>\n </div>\n } @else {\n <div class=\"attachment-file\">\n <i class=\"fas\"\n [ngClass]=\"{\n 'fa-file-video': attachment.type === 'Video',\n 'fa-file-audio': attachment.type === 'Audio',\n 'fa-file': attachment.type === 'Document'\n }\"></i>\n <span class=\"file-name\">{{ attachment.fileName || 'File' }}</span>\n <span class=\"file-size\">{{ formatFileSize(attachment.sizeBytes) }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Artifact Message Card -->\n @if (hasArtifact && artifact && artifactVersion) {\n <div class=\"artifact-wrapper\" [class.system-artifact]=\"isSystemArtifact\">\n <mj-artifact-message-card\n [artifactId]=\"artifact.ID\"\n [artifact]=\"artifact\"\n [artifactVersion]=\"artifactVersion\"\n [currentUser]=\"currentUser\"\n (actionPerformed)=\"onArtifactActionPerformed($event)\">\n </mj-artifact-message-card>\n </div>\n }\n\n <!-- Suggested Responses (shown only for last message by owner) -->\n @if (isLastMessageInConversation && isConversationOwner && suggestedResponses.length > 0) {\n <mj-suggested-responses\n [suggestedResponses]=\"suggestedResponses\"\n [disabled]=\"isProcessing\"\n [isLastMessage]=\"isLastMessageInConversation\"\n [isConversationOwner]=\"isConversationOwner\"\n (responseSelected)=\"onSuggestedResponseSelected($event)\">\n </mj-suggested-responses>\n }\n\n <!-- Agent Response Form (shown only for last message by owner) -->\n @if (isLastMessageInConversation && isConversationOwner && responseForm) {\n <mj-agent-response-form\n [responseForm]=\"responseForm\"\n [disabled]=\"isProcessing\"\n [isLastMessage]=\"isLastMessageInConversation\"\n [isConversationOwner]=\"isConversationOwner\"\n (formSubmitted)=\"onFormSubmitted($event)\">\n </mj-agent-response-form>\n }\n\n <!-- Actionable Commands (shown only for last message by owner) -->\n @if (isLastMessageInConversation && isConversationOwner && actionableCommands.length > 0) {\n <mj-actionable-commands\n [commands]=\"actionableCommands\"\n [disabled]=\"isProcessing\"\n [isLastMessage]=\"isLastMessageInConversation\"\n [isConversationOwner]=\"isConversationOwner\"\n (commandExecuted)=\"onCommandExecuted($event)\">\n </mj-actionable-commands>\n }\n }\n\n @if (isEditing) {\n <div class=\"message-edit-container\">\n <textarea\n class=\"message-edit-textarea\"\n [(ngModel)]=\"editedText\"\n (keydown)=\"onEditKeydown($event)\"\n rows=\"4\"\n placeholder=\"Edit your message...\"></textarea>\n <div class=\"edit-actions\">\n <button class=\"edit-action-btn save\" (click)=\"saveEdit()\">\n <i class=\"fas fa-check\"></i>\n Save\n </button>\n <button class=\"edit-action-btn cancel\" (click)=\"cancelEditing()\">\n <i class=\"fas fa-times\"></i>\n Cancel\n </button>\n </div>\n <div class=\"edit-hint\">\n Press Enter to save, Shift+Enter for new line, Escape to cancel\n </div>\n </div>\n }\n </div>\n\n <!-- Message Footer: Rating buttons and action buttons for last completed AI message -->\n @if (isAIMessage && !isEditing && messageStatus === 'Complete' && (isLastMessage || hasRatings())) {\n <div class=\"message-footer\">\n <!-- Rating component (thumbs up/down) -->\n <mj-conversation-message-rating\n [conversationDetailId]=\"message.ID\"\n [currentUser]=\"currentUser\"\n [ratingsData]=\"ratings\">\n </mj-conversation-message-rating>\n\n <!-- Pin/Delete buttons (only for last message) -->\n @if (isLastMessage) {\n <div class=\"inline-actions\">\n <button class=\"action-bar-btn\" (click)=\"onPinClick()\" [title]=\"message.IsPinned ? 'Unpin Message' : 'Pin Message'\">\n <i class=\"fas fa-thumbtack\" [class.pinned]=\"message.IsPinned\"></i>\n </button>\n <button class=\"action-bar-btn danger\" (click)=\"onDeleteClick()\" title=\"Delete Message\">\n <i class=\"fas fa-trash\"></i>\n </button>\n </div>\n }\n </div>\n }\n\n <!-- Agent details content section -->\n <div class=\"agent-details-section\">\n <!-- Message Action Bar (appears when gear expanded for non-last messages) -->\n @if (isAgentDetailsExpanded && !isLastMessage && isAIMessage && messageStatus === 'Complete') {\n <div class=\"message-action-bar\">\n <div class=\"action-bar-container\">\n <mj-conversation-message-rating\n [conversationDetailId]=\"message.ID\"\n [currentUser]=\"currentUser\"\n [ratingsData]=\"ratings\">\n </mj-conversation-message-rating>\n\n <div class=\"action-buttons\">\n <button class=\"action-bar-btn\" (click)=\"onPinClick()\" [title]=\"message.IsPinned ? 'Unpin Message' : 'Pin Message'\">\n <i class=\"fas fa-thumbtack\" [class.pinned]=\"message.IsPinned\"></i>\n </button>\n <button class=\"action-bar-btn danger\" (click)=\"onDeleteClick()\" title=\"Delete Message\">\n <i class=\"fas fa-trash\"></i>\n </button>\n </div>\n </div>\n </div>\n }\n\n <!-- Agent Run Details Panel (expandable) -->\n @if (isAgentDetailsExpanded && hasAgentRun) {\n <!-- Agent Run Details Panel -->\n <div class=\"agent-details-panel\">\n @if (agentRun) {\n <div class=\"agent-details-content\">\n <div class=\"agent-details-header\">\n <i class=\"fas fa-chart-line\"></i>\n <span>\n <a class=\"agent-name-link\" (click)=\"openAgentRecord()\" title=\"Open agent details\">\n {{ aiAgentInfo?.name || 'Agent' }}\n </a>\n Run Details\n </span>\n </div>\n\n <div class=\"agent-details-grid\">\n <div class=\"detail-row\">\n <span class=\"detail-label\">Run ID:</span>\n <span class=\"detail-value\">\n <a class=\"run-id-link\" (click)=\"openAgentRunRecord()\" title=\"Open agent run details\">\n {{ agentRun.ID }}\n <i class=\"fas fa-external-link-alt\"></i>\n </a>\n </span>\n </div>\n\n @if (agentRunStepCount > 0) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Steps:</span>\n <span class=\"detail-value\">{{ agentRunStepCount }}</span>\n </div>\n }\n\n @if (agentRunTotalTokens > 0) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Tokens:</span>\n <span class=\"detail-value\">{{ formatNumber(agentRunTotalTokens) }}</span>\n </div>\n }\n\n @if (agentRunTotalCost > 0) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Cost:</span>\n <span class=\"detail-value\">\\${{ agentRunTotalCost.toFixed(4) }}</span>\n </div>\n }\n\n @if (agentRun.Status) {\n <div class=\"detail-row\">\n <span class=\"detail-label\">Status:</span>\n <span class=\"detail-value status-badge\" [class]=\"'status-' + agentRun.Status.toLowerCase()\">\n {{ agentRun.Status }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Tasks Section -->\n @if (detailTasks.length > 0) {\n <div class=\"agent-details-tasks\">\n <div class=\"tasks-section-header\">\n <i class=\"fas fa-tasks\"></i>\n <span>Associated Tasks ({{ detailTasks.length }})</span>\n </div>\n <div class=\"tasks-list\">\n @for (task of detailTasks; track task) {\n <mj-task-widget\n [task]=\"task\"\n [compact]=\"false\"\n [clickable]=\"false\"\n [showProgress]=\"true\"\n [showDuration]=\"true\">\n </mj-task-widget>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Rating component moved to message footer (lines 113-134) -->\n\n <!-- Removed message-actions hover panel - actions now in gear icon dropdown -->\n <!-- Retry button kept for critical error recovery on failed messages -->\n @if (messageStatus === 'Error' && isAIMessage && !isProcessing && !isEditing) {\n <div class=\"message-actions\">\n <button class=\"message-action-btn retry-btn\" (click)=\"onRetryClick()\" title=\"Retry\">\n <i class=\"fas fa-redo\"></i>\n Retry\n </button>\n </div>\n }\n\n <!-- Reaction Buttons -->\n @if (!isProcessing && !isInProgressAIMessage && !isEditing) {\n <div class=\"message-reactions\">\n <button class=\"reaction-btn\" (click)=\"toggleReaction('like')\">\n <i class=\"far fa-thumbs-up\"></i>\n <span class=\"reaction-count\">0</span>\n </button>\n <button class=\"reaction-btn\" (click)=\"toggleReaction('comment')\">\n <i class=\"far fa-comment\"></i>\n <span class=\"reaction-count\">0</span>\n </button>\n </div>\n }\n </div>\n</div>"]}
@@ -1 +1 @@
1
- {"version":3,"file":"message-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/message-list.component.ts","../../../../src/lib/components/message/message-list.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/message-list.component.ts","../../../../src/lib/components/message/message-list.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ViewContainerRef,\n OnInit,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef,\n ElementRef,\n AfterViewInit,\n AfterViewChecked\n} from '@angular/core';\nimport { MJConversationDetailEntity, MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo, CompositeKey } from '@memberjunction/core';\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nimport { MessageItemComponent, MessageAttachment } from './message-item.component';\nimport { LazyArtifactInfo } from '../../models/lazy-artifact-info';\nimport { RatingJSON } from '../../models/conversation-complete-query.model';\nimport { MJAIAgentRunEntityExtended } from '@memberjunction/ai-core-plus';\n\n/**\n * Container component for displaying a list of messages\n * Uses dynamic component creation (like skip-chat) to avoid Angular binding overhead\n * This dramatically improves performance when messages are added/removed\n */\n@Component({\n standalone: false,\n selector: 'mj-conversation-message-list',\n templateUrl: './message-list.component.html',\n styleUrls: ['./message-list.component.css']\n})\nexport class MessageListComponent extends BaseAngularComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit, AfterViewChecked {\n @Input() public messages: MJConversationDetailEntity[] = [];\n @Input() public conversation!: MJConversationEntity | null;\n @Input() public currentUser!: UserInfo;\n @Input() public isProcessing: boolean = false;\n @Input() public artifactMap: Map<string, LazyArtifactInfo[]> = new Map();\n @Input() public agentRunMap: Map<string, MJAIAgentRunEntityExtended> = new Map();\n @Input() public ratingsMap: Map<string, RatingJSON[]> = new Map();\n @Input() public userAvatarMap: Map<string, {imageUrl: string | null; iconClass: string | null}> = new Map();\n @Input() public attachmentsMap: Map<string, MessageAttachment[]> = new Map();\n\n @Output() public pinMessage = new EventEmitter<MJConversationDetailEntity>();\n @Output() public editMessage = new EventEmitter<MJConversationDetailEntity>();\n @Output() public deleteMessage = new EventEmitter<MJConversationDetailEntity>();\n @Output() public retryMessage = new EventEmitter<MJConversationDetailEntity>();\n @Output() public testFeedbackMessage = new EventEmitter<MJConversationDetailEntity>();\n @Output() public artifactClicked = new EventEmitter<{artifactId: string; versionId?: string}>();\n @Output() public replyInThread = new EventEmitter<MJConversationDetailEntity>();\n @Output() public viewThread = new EventEmitter<MJConversationDetailEntity>();\n @Output() public messageEdited = new EventEmitter<MJConversationDetailEntity>();\n @Output() public openEntityRecord = new EventEmitter<{entityName: string; compositeKey: CompositeKey}>();\n @Output() public suggestedResponseSelected = new EventEmitter<{text: string; customInput?: string}>();\n @Output() public attachmentClicked = new EventEmitter<MessageAttachment>();\n\n @ViewChild('messageContainer', { read: ViewContainerRef }) messageContainerRef!: ViewContainerRef;\n @ViewChild('scrollContainer') scrollContainer!: ElementRef;\n\n private _renderedMessages = new Map<string, any>();\n private _shouldScrollToBottom = false;\n private _previousMessageCount = 0; // Track previous count to detect new messages\n\n public currentDateDisplay: string = 'Today';\n public showDateNav: boolean = false;\n public shouldShowDateFilter: boolean = false;\n\n constructor(private cdRef: ChangeDetectorRef) {\n super();\n }\n\n public toggleDateNav(): void {\n this.showDateNav = !this.showDateNav;\n }\n\n public jumpToDate(period: string): void {\n // TODO: Implement date jumping logic\n console.log('Jump to date:', period);\n this.showDateNav = false;\n\n // Update display based on period\n switch(period) {\n case 'today':\n this.currentDateDisplay = 'Today';\n break;\n case 'yesterday':\n this.currentDateDisplay = 'Yesterday';\n break;\n case 'last-week':\n this.currentDateDisplay = 'Last week';\n break;\n case 'last-month':\n this.currentDateDisplay = 'Last month';\n break;\n }\n }\n\n // Track whether initial render has happened\n private _initialRenderComplete = false;\n\n ngOnInit() {\n // Initial render will happen in ngAfterViewInit when ViewContainerRef is available\n }\n\n ngAfterViewInit() {\n // ViewContainerRef is now available - perform initial render if we have messages\n if (this.messages && this.messages.length > 0 && this.messageContainerRef && !this._initialRenderComplete) {\n this._initialRenderComplete = true;\n this.updateMessages(this.messages);\n this.updateDateFilterVisibility();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n // React to messages array changes\n // Note: On initial load, messageContainerRef may not be available yet (ngOnChanges runs before ngAfterViewInit)\n // In that case, ngAfterViewInit will handle the initial render\n if (changes['messages'] && this.messages && this.messageContainerRef) {\n this._initialRenderComplete = true;\n this.updateMessages(this.messages);\n this.updateDateFilterVisibility();\n }\n\n // Watch for artifactMap changes to handle newly created artifacts\n // While artifacts are pre-loaded during initial peripheral data load,\n // new artifacts can be created mid-conversation (e.g., by agent runs)\n // This ensures artifact cards appear in messages immediately without requiring a refresh\n if (changes['artifactMap'] && this.messages && this.messageContainerRef) {\n this.updateMessages(this.messages);\n }\n\n // Watch for attachmentsMap changes to handle newly created attachments\n // This ensures media attachments (e.g., images generated by agents) appear\n // immediately without requiring a page refresh\n if (changes['attachmentsMap'] && this.messages && this.messageContainerRef) {\n this.updateMessages(this.messages);\n }\n }\n\n ngAfterViewChecked() {\n if (this._shouldScrollToBottom) {\n this.scrollToBottom();\n this._shouldScrollToBottom = false;\n }\n }\n\n ngOnDestroy() {\n // Clean up all dynamically created components\n this._renderedMessages.forEach((componentRef) => {\n if (componentRef) {\n componentRef.destroy();\n }\n });\n this._renderedMessages.clear();\n\n if (this.messageContainerRef) {\n this.messageContainerRef.clear();\n }\n }\n\n /**\n * Called when messages array changes\n * Efficiently updates the DOM without re-rendering everything\n */\n @Input()\n set messagesUpdate(messages: MJConversationDetailEntity[]) {\n if (messages && this.messageContainerRef) {\n this.updateMessages(messages);\n }\n }\n\n /**\n * Updates the message list using dynamic component creation\n * Only adds/removes changed messages for optimal performance\n */\n private updateMessages(messages: MJConversationDetailEntity[]): void {\n // Temporarily detach change detection for performance\n this.cdRef.detach();\n\n try {\n // Remove messages that no longer exist\n const currentIds = new Set(messages.map(m => this.getMessageKey(m)));\n this._renderedMessages.forEach((componentRef, key) => {\n if (!currentIds.has(key)) {\n componentRef.destroy();\n this._renderedMessages.delete(key);\n }\n });\n\n // Add or update messages\n messages.forEach((message, index) => {\n const key = this.getMessageKey(message);\n const existing = this._renderedMessages.get(key);\n\n if (existing) {\n // Update existing component\n const instance = existing.instance as MessageItemComponent;\n\n // Store previous message for comparison\n const previousMessage = instance.message;\n\n instance.message = message;\n instance.allMessages = messages;\n instance.isProcessing = this.isProcessing;\n instance.userAvatarMap = this.userAvatarMap;\n instance.isLastMessage = (index === messages.length - 1); // Update last message flag\n\n // Get artifact from lazy-loading map\n const artifactList = this.artifactMap.get(message.ID);\n // Use LAST artifact (most recent) instead of first for display\n const lastArtifact = artifactList && artifactList.length > 0\n ? artifactList[artifactList.length - 1]\n : undefined;\n\n // Trigger lazy load and set properties\n if (lastArtifact) {\n // Lazy load in background - don't block UI\n Promise.all([\n lastArtifact.getArtifact(),\n lastArtifact.getVersion()\n ]).then(([artifact, version]) => {\n instance.artifact = artifact;\n instance.artifactVersion = version;\n // zone.js 0.15: parent detectChanges doesn't propagate to dynamically created children\n existing.changeDetectorRef.detectChanges();\n this.cdRef.detectChanges();\n }).catch(err => {\n console.error('Failed to lazy-load artifact:', err);\n });\n } else {\n instance.artifact = undefined;\n instance.artifactVersion = undefined;\n }\n\n // Update agent run from map\n instance.agentRun = this.agentRunMap.get(message.ID) || null;\n\n // Update ratings from map\n instance.ratings = this.ratingsMap.get(message.ID);\n\n // Update attachments from map\n instance.attachments = this.attachmentsMap.get(message.ID) || [];\n\n // Manually trigger change detection in child component when message status changes\n // This is necessary because we're using OnPush change detection and direct property assignment\n // doesn't trigger ngOnChanges (only reference changes do)\n if (previousMessage && previousMessage.Status !== message.Status) {\n // Use ComponentRef.changeDetectorRef to force update on dynamic child\n existing.changeDetectorRef.markForCheck();\n }\n } else {\n // Create new component\n const componentRef = this.messageContainerRef.createComponent(MessageItemComponent);\n const instance = componentRef.instance;\n\n // Set inputs\n instance.message = message;\n instance.conversation = this.conversation;\n instance.currentUser = this.currentUser;\n instance.allMessages = messages;\n instance.isProcessing = this.isProcessing;\n instance.userAvatarMap = this.userAvatarMap;\n instance.isLastMessage = (index === messages.length - 1); // Mark last message\n\n // Get artifact from lazy-loading map\n const artifactList = this.artifactMap.get(message.ID);\n // Use LAST artifact (most recent) instead of first for display\n const lastArtifact = artifactList && artifactList.length > 0\n ? artifactList[artifactList.length - 1]\n : undefined;\n\n // Trigger lazy load and set properties\n if (lastArtifact) {\n // Lazy load in background - don't block UI\n Promise.all([\n lastArtifact.getArtifact(),\n lastArtifact.getVersion()\n ]).then(([artifact, version]) => {\n instance.artifact = artifact;\n instance.artifactVersion = version;\n // zone.js 0.15: parent detectChanges doesn't propagate to dynamically created children\n componentRef.changeDetectorRef.detectChanges();\n this.cdRef.detectChanges();\n }).catch(err => {\n console.error('Failed to lazy-load artifact:', err);\n });\n }\n\n // Pass agent run from map (loaded once per conversation)\n instance.agentRun = this.agentRunMap.get(message.ID) || null;\n\n // Pass ratings from map (parsed once per conversation)\n instance.ratings = this.ratingsMap.get(message.ID);\n\n // Pass attachments from map\n instance.attachments = this.attachmentsMap.get(message.ID) || [];\n\n // Subscribe to outputs\n instance.pinClicked.subscribe((msg: MJConversationDetailEntity) => this.pinMessage.emit(msg));\n instance.editClicked.subscribe((msg: MJConversationDetailEntity) => this.editMessage.emit(msg));\n instance.deleteClicked.subscribe((msg: MJConversationDetailEntity) => this.deleteMessage.emit(msg));\n instance.retryClicked.subscribe((msg: MJConversationDetailEntity) => this.retryMessage.emit(msg));\n instance.testFeedbackClicked.subscribe((msg: MJConversationDetailEntity) => this.testFeedbackMessage.emit(msg));\n instance.artifactClicked.subscribe((data: {artifactId: string; versionId?: string}) => this.artifactClicked.emit(data));\n instance.messageEdited.subscribe((msg: MJConversationDetailEntity) => this.messageEdited.emit(msg));\n instance.openEntityRecord.subscribe((data: {entityName: string; compositeKey: CompositeKey}) => this.openEntityRecord.emit(data));\n instance.suggestedResponseSelected.subscribe((data: {text: string; customInput?: string}) => this.suggestedResponseSelected.emit(data));\n instance.attachmentClicked.subscribe((attachment: MessageAttachment) => this.attachmentClicked.emit(attachment));\n\n // Handle artifact actions if the output exists\n if (instance.artifactActionPerformed) {\n instance.artifactActionPerformed.subscribe((data: {action: string; artifactId: string}) => {\n // Parent can handle artifact actions (save, fork, history, share)\n console.log('Artifact action:', data);\n });\n }\n\n // Store reference\n this._renderedMessages.set(key, componentRef);\n\n // Store reference on the message entity for later access (like skip-chat pattern)\n (message as any)._componentRef = componentRef;\n }\n });\n\n // Only scroll to bottom if new messages were added (not just updates)\n // This prevents scrolling when the message list is merely refreshed (e.g., during agent run timer)\n const previousCount = this._previousMessageCount;\n this._previousMessageCount = messages.length;\n\n if (messages.length > previousCount) {\n this._shouldScrollToBottom = true;\n }\n } finally {\n // Re-attach change detection\n this.cdRef.reattach();\n this.cdRef.detectChanges();\n }\n }\n\n /**\n * Generates a unique key for a message\n * Uses ID if available, otherwise uses a temporary key\n */\n private getMessageKey(message: MJConversationDetailEntity): string {\n return message.ID && message.ID.length > 0\n ? message.ID\n : `temp_${message.__mj_CreatedAt?.getTime() || Date.now()}`;\n }\n\n /**\n * Determines whether to show the date filter dropdown\n * Only show if conversation is long and spans multiple days\n */\n private updateDateFilterVisibility(): void {\n if (!this.messages || this.messages.length < 20) {\n this.shouldShowDateFilter = false;\n return;\n }\n\n // Check if messages span more than 2 days\n const dates = this.messages\n .map(m => m.__mj_CreatedAt)\n .filter(d => d != null)\n .map(d => new Date(d!).setHours(0, 0, 0, 0));\n\n if (dates.length === 0) {\n this.shouldShowDateFilter = false;\n return;\n }\n\n const uniqueDates = new Set(dates);\n const daySpan = uniqueDates.size;\n\n // Show filter if conversation has 20+ messages and spans 3+ days\n this.shouldShowDateFilter = daySpan >= 3;\n }\n\n /**\n * Scrolls the message list to the bottom\n */\n private scrollToBottom(): void {\n if (this.scrollContainer && this.scrollContainer.nativeElement) {\n Promise.resolve().then(() => {\n const element = this.scrollContainer.nativeElement;\n element.scrollTop = element.scrollHeight;\n });\n }\n }\n\n /**\n * Removes a message from the rendered list\n * Called externally when a message is deleted\n */\n public removeMessage(message: MJConversationDetailEntity): void {\n const key = this.getMessageKey(message);\n const componentRef = this._renderedMessages.get(key);\n if (componentRef) {\n componentRef.destroy();\n this._renderedMessages.delete(key);\n }\n }\n}","<div class=\"message-list-container\" #scrollContainer>\n <!-- Sticky Date Header (only show for long conversations spanning multiple days) -->\n @if (shouldShowDateFilter && messages.length > 0) {\n <div class=\"sticky-date-header\">\n <div class=\"sticky-date-wrapper\">\n <button class=\"sticky-date-button\" (click)=\"toggleDateNav()\">\n <span>{{ currentDateDisplay }}</span>\n <i class=\"fas fa-chevron-down\"></i>\n </button>\n <div class=\"date-nav-dropdown\" [class.show]=\"showDateNav\">\n <div class=\"date-nav-option jump-to\">Jump to...</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('today')\">Today</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('yesterday')\">Yesterday</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('last-week')\">Last week</div>\n <div class=\"date-nav-option\" (click)=\"jumpToDate('last-month')\">Last month</div>\n </div>\n </div>\n </div>\n }\n\n <ng-container #messageContainer></ng-container>\n\n @if (messages.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fas fa-comments\"></i>\n <p>No messages yet. Start a conversation!</p>\n </div>\n }\n</div>"]}
@@ -1 +1 @@
1
- {"version":3,"file":"suggested-responses.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/suggested-responses.component.ts","../../../../src/lib/components/message/suggested-responses.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suggested-responses.component.js","sourceRoot":"","sources":["../../../../src/lib/components/message/suggested-responses.component.ts","../../../../src/lib/components/message/suggested-responses.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectorRef, OnInit, AfterViewInit } from '@angular/core';\nimport { SuggestedResponse } from '../../models/conversation-state.model';\n\n/**\n * Component for displaying suggested response options below AI messages\n * Provides quick reply buttons and optional text input for streamlined conversation flow\n */\n@Component({\n standalone: false,\n selector: 'mj-suggested-responses',\n templateUrl: './suggested-responses.component.html',\n styleUrls: ['./suggested-responses.component.css']\n})\nexport class SuggestedResponsesComponent implements OnInit, AfterViewInit {\n @Input() suggestedResponses: SuggestedResponse[] = [];\n @Input() disabled: boolean = false;\n @Input() isLastMessage: boolean = false;\n @Input() isConversationOwner: boolean = false;\n\n @Output() responseSelected = new EventEmitter<{text: string; customInput?: string}>();\n\n @ViewChild('inputField') inputField?: ElementRef<HTMLInputElement>;\n\n public customInputValue: string = '';\n\n constructor(private cdr: ChangeDetectorRef) {\n console.log('🏗️ SuggestedResponsesComponent constructed');\n }\n\n ngOnInit() {\n console.log('🎬 SuggestedResponsesComponent.ngOnInit', {\n suggestedResponses: this.suggestedResponses,\n disabled: this.disabled,\n isLastMessage: this.isLastMessage,\n isConversationOwner: this.isConversationOwner,\n isVisible: this.isVisible,\n regularResponses: this.regularResponses,\n regularResponsesLength: this.regularResponses.length\n });\n }\n\n ngAfterViewInit() {\n console.log('👁️ SuggestedResponsesComponent.ngAfterViewInit - component rendered');\n }\n\n /**\n * Get all regular button responses (not input fields)\n */\n public get regularResponses(): SuggestedResponse[] {\n return this.suggestedResponses.filter(r => !r.allowInput);\n }\n\n /**\n * Get the input response option (if any)\n * Only supports one input option per message\n */\n public get inputResponse(): SuggestedResponse | null {\n return this.suggestedResponses.find(r => r.allowInput) || null;\n }\n\n /**\n * Check if component should be visible\n */\n public get isVisible(): boolean {\n return this.isLastMessage && this.isConversationOwner && this.suggestedResponses.length > 0;\n }\n\n /**\n * Handle regular button click\n */\n public onResponseClick(response: SuggestedResponse): void {\n console.log('🖱️ BUTTON CLICKED!', {\n response,\n disabled: this.disabled,\n willEmit: !this.disabled\n });\n\n if (!this.disabled) {\n console.log('📤 Emitting responseSelected event');\n this.responseSelected.emit({ text: response.text });\n console.log('✅ Event emitted');\n } else {\n console.warn('⚠️ Button is disabled, not emitting');\n }\n }\n\n /**\n * Handle input submission (Enter key or submit button click)\n */\n public onInputSubmit(): void {\n const trimmedValue = this.customInputValue?.trim();\n if (!this.disabled && trimmedValue && this.inputResponse) {\n this.responseSelected.emit({\n text: this.inputResponse.text,\n customInput: trimmedValue\n });\n this.customInputValue = '';\n\n // Clear input field and trigger change detection\n Promise.resolve().then(() => {\n if (this.inputField) {\n this.inputField.nativeElement.value = '';\n }\n this.cdr.detectChanges();\n });\n }\n }\n\n /**\n * Handle Enter key in input field\n */\n public onInputKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n this.onInputSubmit();\n }\n }\n\n /**\n * Track by function for ngFor to help Angular track items\n */\n public trackByIndex(index: number): number {\n return index;\n }\n}\n","@if (isVisible) {\n <div class=\"suggested-responses\">\n <div class=\"suggested-responses-header\">\n <i class=\"fa fa-lightbulb\"></i>\n <span>Quick replies</span>\n </div>\n <div class=\"suggested-responses-buttons\">\n <!-- TEST: Native onclick\n <button type=\"button\" onclick=\"alert('Native onclick works!');\" style=\"background: red; color: white;\">TEST</button>\n -->\n <!-- Regular button responses (allowInput: false) -->\n @for (response of regularResponses; track $index) {\n <button\n type=\"button\"\n class=\"suggested-response-btn\"\n [disabled]=\"disabled\"\n (click)=\"onResponseClick(response)\"\n [title]=\"response.text\">\n @if (response.iconClass) {\n <i [class]=\"'fas ' + response.iconClass\"></i>\n }\n <span>{{ response.text }}</span>\n </button>\n }\n <!-- Input option (allowInput: true) -->\n @if (inputResponse) {\n <div class=\"suggested-response-input-container\">\n @if (inputResponse.iconClass) {\n <i [class]=\"'fas ' + inputResponse.iconClass\" class=\"input-icon\"></i>\n }\n <input\n type=\"text\"\n class=\"suggested-response-input\"\n [placeholder]=\"inputResponse.text\"\n [(ngModel)]=\"customInputValue\"\n [disabled]=\"disabled\"\n (keydown)=\"onInputKeydown($event)\"\n #inputField\n autocomplete=\"off\">\n <button\n class=\"suggested-response-submit\"\n [disabled]=\"disabled || !customInputValue || !customInputValue.trim()\"\n (click)=\"onInputSubmit()\"\n title=\"Submit\">\n <i class=\"fa fa-paper-plane\"></i>\n </button>\n </div>\n }\n </div>\n </div>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-navigation.component.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;AAuKvE,MAAM,OAAO,+BAA+B;IACjC,SAAS,GAAkB,eAAe,CAAC;IAC3C,aAAa,CAAU;IACvB,WAAW,CAAY;IACvB,cAAc,GAAkB,IAAI,CAAC;IACpC,UAAU,GAAG,IAAI,YAAY,EAAiB,CAAC;IAC/C,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC1C,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,sBAAsB,GAAG,IAAI,YAAY,EAA4C,CAAC;yHATrF,+BAA+B;6DAA/B,+BAA+B;YA7JpC,AADF,AADF,8BAAqC,aACb,gBACmD;YAAhC,4GAAS,yBAAqB,IAAC;YACpE,uBAA2B;YAE/B,AADE,iBAAS,EACL;YAEJ,AADF,8BAAsB,gBAIyB;YAA3C,4GAAS,oBAAgB,eAAe,CAAC,IAAC;YAC1C,uBAA+B;YAC/B,4BAAM;YAAA,qBAAK;YACb,AADa,iBAAO,EACX;YACT,iCAG2C;YAAzC,4GAAS,oBAAgB,aAAa,CAAC,IAAC;YACxC,wBAA6B;YAC7B,6BAAM;YAAA,4BAAW;YACnB,AADmB,iBAAO,EACjB;YACT,kCAGqC;YAAnC,6GAAS,oBAAgB,OAAO,CAAC,IAAC;YAClC,wBAA4B;YAC5B,6BAAM;YAAA,sBAAK;YAEf,AADE,AADa,iBAAO,EACX,EACL;YAEJ,AADF,+BAAuB,6BAI4C;YAA/D,gKAA0B,uCAAmC,IAAC;YAChE,iBAAoB;YACpB,mCAA4F;YAAzD,6GAAS,0BAAsB,IAAC;YACjE,yBAA6B;YAC/B,iBAAS;YACT,mCAAkG;YAA9D,6GAAS,2BAAuB,IAAC;YACnE,yBAA+B;YAGrC,AADE,AADE,iBAAS,EACL,EACF;;YAjCA,eAA8C;YAA9C,2DAA8C;YAO9C,eAA4C;YAA5C,yDAA4C;YAO5C,eAAsC;YAAtC,mDAAsC;YAQtC,eAA2B;YAC3B,AADA,6CAA2B,sCACM;;;iFA+H9B,+BAA+B;cAnK3C,SAAS;6BACI,KAAK,YACP,4BAA4B,YAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CT;;kBAqHA,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kFATI,+BAA+B"}
1
+ {"version":3,"file":"conversation-navigation.component.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/conversation-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;;;AAuKvE,MAAM,OAAO,+BAA+B;IACjC,SAAS,GAAkB,eAAe,CAAC;IAC3C,aAAa,CAAU;IACvB,WAAW,CAAY;IACvB,cAAc,GAAkB,IAAI,CAAC;IACpC,UAAU,GAAG,IAAI,YAAY,EAAiB,CAAC;IAC/C,cAAc,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC1C,eAAe,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,gBAAgB,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC5C,sBAAsB,GAAG,IAAI,YAAY,EAA4C,CAAC;yHATrF,+BAA+B;6DAA/B,+BAA+B;YA7JpC,AADF,AADF,8BAAqC,aACb,gBACmD;YAAhC,4GAAS,yBAAqB,IAAC;YACpE,uBAA2B;YAE/B,AADE,iBAAS,EACL;YAEJ,AADF,8BAAsB,gBAIyB;YAA3C,4GAAS,oBAAgB,eAAe,CAAC,IAAC;YAC1C,uBAA+B;YAC/B,4BAAM;YAAA,qBAAK;YACb,AADa,iBAAO,EACX;YACT,iCAG2C;YAAzC,4GAAS,oBAAgB,aAAa,CAAC,IAAC;YACxC,wBAA6B;YAC7B,6BAAM;YAAA,4BAAW;YACnB,AADmB,iBAAO,EACjB;YACT,kCAGqC;YAAnC,6GAAS,oBAAgB,OAAO,CAAC,IAAC;YAClC,wBAA4B;YAC5B,6BAAM;YAAA,sBAAK;YAEf,AADE,AADa,iBAAO,EACX,EACL;YAEJ,AADF,+BAAuB,6BAI4C;YAA/D,gKAA0B,uCAAmC,IAAC;YAChE,iBAAoB;YACpB,mCAA4F;YAAzD,6GAAS,0BAAsB,IAAC;YACjE,yBAA6B;YAC/B,iBAAS;YACT,mCAAkG;YAA9D,6GAAS,2BAAuB,IAAC;YACnE,yBAA+B;YAGrC,AADE,AADE,iBAAS,EACL,EACF;;YAjCA,eAA8C;YAA9C,2DAA8C;YAO9C,eAA4C;YAA5C,yDAA4C;YAO5C,eAAsC;YAAtC,mDAAsC;YAQtC,eAA2B;YAC3B,AADA,6CAA2B,sCACM;;;iFA+H9B,+BAA+B;cAnK3C,SAAS;6BACI,KAAK,YACP,4BAA4B,YAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CT;;kBAqHA,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kBACN,MAAM;;kFATI,+BAA+B","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { NavigationTab } from '../../models/conversation-state.model';\nimport { UserInfo } from '@memberjunction/core';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-navigation',\n template: `\n <div class=\"conversation-navigation\">\n <div class=\"nav-left\">\n <button class=\"nav-btn sidebar-toggle\" (click)=\"sidebarToggled.emit()\">\n <i class=\"fas fa-bars\"></i>\n </button>\n </div>\n <div class=\"nav-tabs\">\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'conversations'\"\n (click)=\"tabChanged.emit('conversations')\">\n <i class=\"fas fa-comments\"></i>\n <span>Chats</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'collections'\"\n (click)=\"tabChanged.emit('collections')\">\n <i class=\"fas fa-folder\"></i>\n <span>Collections</span>\n </button>\n <button\n class=\"nav-tab\"\n [class.active]=\"activeTab === 'tasks'\"\n (click)=\"tabChanged.emit('tasks')\">\n <i class=\"fas fa-tasks\"></i>\n <span>Tasks</span>\n </button>\n </div>\n <div class=\"nav-right\">\n <mj-tasks-dropdown\n [currentUser]=\"currentUser\"\n [conversationId]=\"conversationId\"\n (navigateToConversation)=\"navigateToConversation.emit($event)\">\n </mj-tasks-dropdown>\n <button class=\"nav-btn search-btn\" (click)=\"searchTriggered.emit()\" title=\"Search (Ctrl+K)\">\n <i class=\"fas fa-search\"></i>\n </button>\n <button class=\"nav-btn refresh-btn\" (click)=\"refreshTriggered.emit()\" title=\"Refresh agent cache\">\n <i class=\"fas fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n `,\n styles: [`\n .conversation-navigation {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 20px;\n gap: 24px;\n color: white;\n }\n .nav-left { display: flex; align-items: center; gap: 12px; }\n .nav-title { margin: 0; font-size: 18px; font-weight: 600; }\n .nav-tabs {\n display: flex;\n gap: 4px;\n flex: 1;\n height: 100%;\n }\n .nav-tab {\n padding: 0 20px;\n height: 100%;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s;\n border-bottom: 3px solid transparent;\n }\n .nav-tab:hover {\n background: rgba(255,255,255,0.05);\n color: white;\n }\n .nav-tab.active {\n color: white;\n background: rgba(255,255,255,0.1);\n border-bottom-color: #AAE7FD;\n }\n .nav-right { display: flex; gap: 8px; }\n .nav-btn {\n width: 36px;\n height: 36px;\n border-radius: 6px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n }\n .nav-btn:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n .sidebar-toggle {\n display: flex;\n }\n\n /* Mobile adjustments: 481px - 768px */\n @media (max-width: 768px) {\n .conversation-navigation {\n padding: 0 12px;\n gap: 12px;\n }\n .sidebar-toggle {\n display: flex;\n }\n .nav-tab {\n padding: 0 12px;\n font-size: 13px;\n gap: 6px;\n }\n .nav-tab span {\n display: none;\n }\n .nav-tab i {\n font-size: 16px;\n }\n .nav-btn {\n width: 32px;\n height: 32px;\n }\n .nav-right {\n gap: 4px;\n }\n }\n\n /* Small Phone adjustments: <= 480px */\n @media (max-width: 480px) {\n .conversation-navigation {\n padding: 0 8px;\n gap: 8px;\n }\n .nav-tab {\n padding: 0 8px;\n font-size: 12px;\n }\n .nav-btn {\n width: 28px;\n height: 28px;\n }\n .nav-btn i {\n font-size: 14px;\n }\n .nav-right .nav-btn:last-child {\n display: none;\n }\n }\n `]\n})\nexport class ConversationNavigationComponent {\n @Input() activeTab: NavigationTab = 'conversations';\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n @Input() conversationId: string | null = null;\n @Output() tabChanged = new EventEmitter<NavigationTab>();\n @Output() sidebarToggled = new EventEmitter<void>();\n @Output() searchTriggered = new EventEmitter<void>();\n @Output() refreshTriggered = new EventEmitter<void>();\n @Output() navigateToConversation = new EventEmitter<{conversationId: string; taskId: string}>();\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAkBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,2GAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAhBT;;GAEG;AA4FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;oHAD/B,0BAA0B;6DAA1B,0BAA0B;YAvFnC,4FAAoB;;YAApB,wEAWC;;;iFA4EQ,0BAA0B;cA3FtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;GAaT;;kBA4EA,KAAK;;kFADK,0BAA0B"}
1
+ {"version":3,"file":"activity-indicator.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/activity-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;IAkBvC,+BAA4B;IAAA,YAAkB;IAAA,iBAAO;;;IAAzB,cAAkB;IAAlB,uEAAkB;;;IANhD,AADF,8BAAkM,aACrK;IAGzB,AADA,AADA,0BAAyB,cACA,cACA;IAC3B,iBAAM;IACN,2GAAoB;IAGtB,iBAAM;;;IATwI,AAA5D,AAAlD,iGAAiD,6FAA4D,qFAAoD;IAM/L,eAEC;IAFD,8EAEC;;AAhBT;;GAEG;AA4FH,MAAM,OAAO,0BAA0B;IAC5B,MAAM,CAA2B;oHAD/B,0BAA0B;6DAA1B,0BAA0B;YAvFnC,4FAAoB;;YAApB,wEAWC;;;iFA4EQ,0BAA0B;cA3FtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;GAaT;;kBA4EA,KAAK;;kFADK,0BAA0B","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { ActivityIndicatorConfig } from '../../models/notification.model';\n\n/**\n * Displays activity indicators for agent processes, typing, etc.\n */\n@Component({\n standalone: false,\n selector: 'mj-activity-indicator',\n template: `\n @if (config?.show) {\n <div class=\"activity-indicator\" [class.activity-agent]=\"config?.type === 'agent'\" [class.activity-processing]=\"config?.type === 'processing'\" [class.activity-typing]=\"config?.type === 'typing'\">\n <div class=\"activity-dots\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </div>\n @if (config?.text) {\n <span class=\"activity-text\">{{ config?.text }}</span>\n }\n </div>\n }\n `,\n styles: [`\n .activity-indicator {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n background: #F4F4F4;\n transition: all 150ms ease;\n }\n\n .activity-agent {\n background: #EFF6FF;\n color: #0076B6;\n }\n\n .activity-processing {\n background: #FEF3C7;\n color: #D97706;\n }\n\n .activity-typing {\n background: #F3F4F6;\n color: #6B7280;\n }\n\n .activity-dots {\n display: flex;\n align-items: center;\n gap: 3px;\n }\n\n .dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-pulse 1.4s ease-in-out infinite;\n }\n\n .dot:nth-child(1) {\n animation-delay: 0s;\n }\n\n .dot:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n .dot:nth-child(3) {\n animation-delay: 0.4s;\n }\n\n @keyframes dot-pulse {\n 0%, 60%, 100% {\n opacity: 0.3;\n transform: scale(0.8);\n }\n 30% {\n opacity: 1;\n transform: scale(1.2);\n }\n }\n\n .activity-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 150px;\n }\n `]\n})\nexport class ActivityIndicatorComponent {\n @Input() config?: ActivityIndicatorConfig;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;IAejC,8BAI+C;IAC7C,YACF;IAAA,iBAAM;;;IAFJ,AADA,AADA,0GAAqD,gGACI,iFACb;IAC5C,cACF;IADE,iHACF;;;IAGA,yBAKM;;;IADJ,AADA,AADA,0GAAqD,gGACI,iFACb;;;IAW1C,gCAA0B;IAAA,YAAsC;IAAA,iBAAO;;;IAA7C,cAAsC;IAAtC,sGAAsC;;;IAPpE,8BAG4D;IAE1D,AADA,0BAAgC,cACM;IACtC,0HAA6D;IAG/D,iBAAM;;;IANJ,AADA,0GAAqD,gGACI;IAGzD,eAEC;IAFD,uKAEC;;;IAIH,+BAE+C;IAC7C,qBACF;IAAA,iBAAM;;;IAFJ,+FAA4C;;;IAjClD,8BAA0C;IACxC,0GAA8F;IAS9F,0GAAmC;IAQnC,0GAAqC;IAYrC,0GAAmC;IAOrC,iBAAM;;;IApCJ,cAQC;IARD,oPAQC;IACD,cAOC;IAPD,kGAOC;IACD,cAWC;IAXD,oGAWC;IACD,cAMC;IAND,kGAMC;;AA7CT;;;GAGG;AA+NH,MAAM,OAAO,0BAA0B;IAOjB;IANX,cAAc,CAAU;IACxB,WAAW,CAAe;IAE3B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC/B,kBAAkB,GAAuB,IAAI,CAAC;IAEtD,YAAoB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEhE,QAAQ;QACN,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB;iBACrB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;iBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;oHApCU,0BAA0B;6DAA1B,0BAA0B;YA1NnC,4FAAyB;;YAAzB,kFAuCC;;;iFAmLQ,0BAA0B;cA9NtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCT;;kBAmLA,KAAK;;kBACL,KAAK;;kFAFK,0BAA0B"}
1
+ {"version":3,"file":"notification-badge.component.js","sourceRoot":"","sources":["../../../../src/lib/components/notification/notification-badge.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;IAejC,8BAI+C;IAC7C,YACF;IAAA,iBAAM;;;IAFJ,AADA,AADA,0GAAqD,gGACI,iFACb;IAC5C,cACF;IADE,iHACF;;;IAGA,yBAKM;;;IADJ,AADA,AADA,0GAAqD,gGACI,iFACb;;;IAW1C,gCAA0B;IAAA,YAAsC;IAAA,iBAAO;;;IAA7C,cAAsC;IAAtC,sGAAsC;;;IAPpE,8BAG4D;IAE1D,AADA,0BAAgC,cACM;IACtC,0HAA6D;IAG/D,iBAAM;;;IANJ,AADA,0GAAqD,gGACI;IAGzD,eAEC;IAFD,uKAEC;;;IAIH,+BAE+C;IAC7C,qBACF;IAAA,iBAAM;;;IAFJ,+FAA4C;;;IAjClD,8BAA0C;IACxC,0GAA8F;IAS9F,0GAAmC;IAQnC,0GAAqC;IAYrC,0GAAmC;IAOrC,iBAAM;;;IApCJ,cAQC;IARD,oPAQC;IACD,cAOC;IAPD,kGAOC;IACD,cAWC;IAXD,oGAWC;IACD,cAMC;IAND,kGAMC;;AA7CT;;;GAGG;AA+NH,MAAM,OAAO,0BAA0B;IAOjB;IANX,cAAc,CAAU;IACxB,WAAW,CAAe;IAE3B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC/B,kBAAkB,GAAuB,IAAI,CAAC;IAEtD,YAAoB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEhE,QAAQ;QACN,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB;iBACrB,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;iBACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,CAAC,EAAE;gBAClB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;oHApCU,0BAA0B;6DAA1B,0BAA0B;YA1NnC,4FAAyB;;YAAzB,kFAuCC;;;iFAmLQ,0BAA0B;cA9NtC,SAAS;6BACI,KAAK,YACP,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCT;;kBAmLA,KAAK;;kBACL,KAAK;;kFAFK,0BAA0B","sourcesContent":["import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BadgeConfig } from '../../models/notification.model';\nimport { NotificationService } from '../../services/notification.service';\n\n/**\n * Displays notification badges with various styles and animations\n * Supports count, dot, pulse, and new badge types\n */\n@Component({\n standalone: false,\n selector: 'mj-notification-badge',\n template: `\n @if (badgeConfig?.show) {\n <div class=\"notification-badge-container\">\n @if (badgeConfig?.type === 'count' && badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <div\n class=\"notification-badge badge-count\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n {{ formatCount(badgeConfig?.count!) }}\n </div>\n }\n @if (badgeConfig?.type === 'dot') {\n <div\n class=\"notification-badge badge-dot\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n </div>\n }\n @if (badgeConfig?.type === 'pulse') {\n <div\n class=\"notification-badge badge-pulse\"\n [class.badge-high]=\"badgeConfig?.priority === 'high'\"\n [class.badge-urgent]=\"badgeConfig?.priority === 'urgent'\">\n <span class=\"pulse-ring\"></span>\n <span class=\"pulse-ring-delay\"></span>\n @if (badgeConfig?.count != null && badgeConfig?.count! > 0) {\n <span class=\"pulse-count\">{{ formatCount(badgeConfig?.count!) }}</span>\n }\n </div>\n }\n @if (badgeConfig?.type === 'new') {\n <div\n class=\"notification-badge badge-new\"\n [class.badge-animate]=\"badgeConfig?.animate\">\n NEW\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .notification-badge-container {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .notification-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 10px;\n font-weight: 700;\n line-height: 1;\n color: white;\n border-radius: 10px;\n white-space: nowrap;\n transition: all 150ms ease;\n }\n\n /* Count badge */\n .badge-count {\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-count.badge-high {\n background: #F59E0B;\n }\n\n .badge-count.badge-urgent {\n background: #DC2626;\n }\n\n /* Dot badge */\n .badge-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: #0076B6;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n }\n\n .badge-dot.badge-high {\n background: #F59E0B;\n }\n\n .badge-dot.badge-urgent {\n background: #DC2626;\n }\n\n /* Pulse badge with animated rings */\n .badge-pulse {\n position: relative;\n width: 24px;\n height: 24px;\n background: #0076B6;\n border-radius: 50%;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n }\n\n .badge-pulse.badge-high {\n background: #F59E0B;\n }\n\n .badge-pulse.badge-urgent {\n background: #DC2626;\n }\n\n .pulse-ring {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n opacity: 0;\n }\n\n .pulse-ring-delay {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;\n animation-delay: 1s;\n opacity: 0;\n }\n\n @keyframes pulse-ring {\n 0% {\n transform: translate(-50%, -50%) scale(0.8);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.3);\n opacity: 0.5;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1.5);\n opacity: 0;\n }\n }\n\n .pulse-count {\n position: relative;\n z-index: 1;\n font-size: 10px;\n font-weight: 700;\n color: white;\n }\n\n /* New badge */\n .badge-new {\n height: 18px;\n padding: 0 6px;\n background: linear-gradient(135deg, #10B981, #059669);\n font-size: 9px;\n font-weight: 800;\n letter-spacing: 0.5px;\n box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);\n }\n\n /* Pop-in animation for badges */\n .badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);\n }\n\n @keyframes badge-pop {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1.2);\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n\n /* Shake animation for urgent badges */\n .badge-urgent.badge-animate {\n animation: badge-pop 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55),\n badge-shake 400ms ease-in-out 300ms;\n }\n\n @keyframes badge-shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }\n 20%, 40%, 60%, 80% { transform: translateX(2px); }\n }\n\n /* Hover effects */\n .notification-badge:hover {\n transform: scale(1.1);\n cursor: default;\n }\n\n .badge-pulse:hover .pulse-ring,\n .badge-pulse:hover .pulse-ring-delay {\n animation-play-state: paused;\n }\n `]\n})\nexport class NotificationBadgeComponent implements OnInit, OnDestroy {\n @Input() conversationId?: string;\n @Input() badgeConfig?: BadgeConfig;\n\n private destroy$ = new Subject<void>();\n private _loadedBadgeConfig: BadgeConfig | null = null;\n\n constructor(private notificationService: NotificationService) {}\n\n ngOnInit(): void {\n // If badgeConfig not provided but conversationId is, load from service\n if (!this.badgeConfig && this.conversationId) {\n this.notificationService\n .getBadgeConfig$(this.conversationId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n this._loadedBadgeConfig = config;\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n get displayConfig(): BadgeConfig | null {\n return this.badgeConfig || this._loadedBadgeConfig;\n }\n\n /**\n * Formats count for display\n * Shows 99+ for counts over 99\n */\n formatCount(count: number): string {\n return count > 99 ? '99+' : count.toString();\n }\n}\n"]}