@memberjunction/ng-conversations 5.36.0 → 5.38.0
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.
- package/README.md +2 -2
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts +47 -0
- package/dist/lib/components/conversation/conversation-agent-picker.component.d.ts.map +1 -0
- package/dist/lib/components/conversation/conversation-agent-picker.component.js +253 -0
- package/dist/lib/components/conversation/conversation-agent-picker.component.js.map +1 -0
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +201 -4
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +776 -263
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +2 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js +6 -3
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-mode-picker.component.d.ts +57 -0
- package/dist/lib/components/conversation/conversation-mode-picker.component.d.ts.map +1 -0
- package/dist/lib/components/conversation/conversation-mode-picker.component.js +252 -0
- package/dist/lib/components/conversation/conversation-mode-picker.component.js.map +1 -0
- package/dist/lib/components/dialogs/rating-dialog.component.d.ts +31 -0
- package/dist/lib/components/dialogs/rating-dialog.component.d.ts.map +1 -0
- package/dist/lib/components/dialogs/rating-dialog.component.js +290 -0
- package/dist/lib/components/dialogs/rating-dialog.component.js.map +1 -0
- package/dist/lib/components/mention/mention-editor.component.d.ts +1 -1
- package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js +1 -0
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts +43 -18
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js +235 -193
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +1 -1
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +58 -4
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +135 -21
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +0 -13
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +126 -152
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.d.ts +88 -5
- package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
- package/dist/lib/components/overlay/chat-overlay.component.js +296 -54
- package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +11 -0
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +13 -3
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +59 -57
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +12 -4
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/conversation-state.model.d.ts +0 -27
- package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
- package/dist/lib/models/conversation-state.model.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +1 -9
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +22 -121
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-attachment.service.js +5 -26
- package/dist/lib/services/conversation-attachment.service.js.map +1 -1
- package/dist/lib/services/conversation-bridge.service.d.ts +13 -0
- package/dist/lib/services/conversation-bridge.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-bridge.service.js +15 -0
- package/dist/lib/services/conversation-bridge.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +0 -1
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/dialog.service.d.ts +24 -0
- package/dist/lib/services/dialog.service.d.ts.map +1 -1
- package/dist/lib/services/dialog.service.js +45 -0
- package/dist/lib/services/dialog.service.js.map +1 -1
- package/package.json +23 -22
- package/dist/lib/components/message/suggested-responses.component.d.ts +0 -55
- package/dist/lib/components/message/suggested-responses.component.d.ts.map +0 -1
- package/dist/lib/components/message/suggested-responses.component.js +0 -207
- package/dist/lib/components/message/suggested-responses.component.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
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"]}
|