@memberjunction/ng-conversations 5.3.1 → 5.4.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/dist/__tests__/index.test.js.map +1 -1
- package/dist/__tests__/mention-parser.test.js.map +1 -1
- package/dist/__tests__/notification-model.test.js.map +1 -1
- package/dist/__tests__/search-service.test.js.map +1 -1
- package/dist/__tests__/toast-service.test.js.map +1 -1
- package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
- package/dist/lib/components/export/export-modal.component.js.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
- package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
- package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
- package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
- package/dist/lib/components/message/form-question.component.js.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
- package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
- package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
- package/dist/lib/components/project/project-selector.component.js.map +1 -1
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
- package/dist/lib/components/toast/toast.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
- package/dist/lib/models/collection-view.model.js.map +1 -1
- package/dist/lib/models/conversation-complete-query.model.js.map +1 -1
- package/dist/lib/models/conversation-state.model.js.map +1 -1
- package/dist/lib/models/lazy-artifact-info.js.map +1 -1
- package/dist/lib/models/navigation-request.model.js.map +1 -1
- package/dist/lib/models/notification.model.js.map +1 -1
- package/dist/lib/services/active-tasks.service.js.map +1 -1
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-permission.service.js.map +1 -1
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/artifact-use-tracking.service.js.map +1 -1
- package/dist/lib/services/collection-permission.service.js.map +1 -1
- package/dist/lib/services/collection-state.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +20 -11
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-attachment.service.js.map +1 -1
- package/dist/lib/services/conversation-data.service.js.map +1 -1
- package/dist/lib/services/conversation-streaming.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/dialog.service.js.map +1 -1
- package/dist/lib/services/export.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/notification.service.js.map +1 -1
- package/dist/lib/services/search.service.js.map +1 -1
- package/dist/lib/services/toast.service.js.map +1 -1
- package/dist/lib/services/ui-command-handler.service.js.map +1 -1
- package/dist/public-api.js.map +1 -1
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-empty-state.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-empty-state.component.ts","../../../../src/lib/components/conversation/conversation-empty-state.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-empty-state.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-empty-state.component.ts","../../../../src/lib/components/conversation/conversation-empty-state.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { UserInfo } from '@memberjunction/core';\nimport { PendingAttachment } from '../mention/mention-editor.component';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-empty-state',\n templateUrl: './conversation-empty-state.component.html',\n styleUrls: ['./conversation-empty-state.component.css']\n})\nexport class ConversationEmptyStateComponent {\n @Input() currentUser!: UserInfo;\n @Input() disabled: boolean = false;\n @Input() showSidebarToggle: boolean = false;\n\n @Output() messageSent = new EventEmitter<{text: string; attachments: PendingAttachment[]}>();\n @Output() sidebarToggleClicked = new EventEmitter<void>();\n\n public messageText: string = '';\n\n // All available suggested prompts (business user focused)\n private allSuggestedPrompts: Array<{icon: string; title: string; prompt: string}> = [\n // Data Analysis & Insights\n {\n icon: 'fa-clock-rotate-left',\n title: 'Recent changes',\n prompt: 'Show me what\\'s changed in my data recently'\n },\n {\n icon: 'fa-list-check',\n title: 'Pending items',\n prompt: 'Find all my incomplete or pending items'\n },\n {\n icon: 'fa-magnifying-glass',\n title: 'Search everything',\n prompt: 'Search everything in my system for a specific topic'\n },\n {\n icon: 'fa-clipboard-check',\n title: 'Data quality',\n prompt: 'Analyze my data and find duplicates or inconsistencies'\n },\n {\n icon: 'fa-inbox',\n title: 'Catch up',\n prompt: 'Create a summary of activity while I was away'\n },\n\n // Research & Information Gathering\n {\n icon: 'fa-download',\n title: 'Research & save',\n prompt: 'Research a topic and save the findings to my database'\n },\n {\n icon: 'fa-code-compare',\n title: 'Compare sources',\n prompt: 'Compare my data with information from the web'\n },\n {\n icon: 'fa-folder-open',\n title: 'Search files',\n prompt: 'Search my files and documents for related information'\n },\n {\n icon: 'fa-layer-group',\n title: 'Multi-source search',\n prompt: 'Find relevant information across all my data sources'\n },\n {\n icon: 'fa-sitemap',\n title: 'Comprehensive research',\n prompt: 'Gather information on a topic from multiple sources'\n },\n\n // Automation & Agent Building\n {\n icon: 'fa-calendar-day',\n title: 'Daily summaries',\n prompt: 'Create an agent to send me daily data summaries'\n },\n {\n icon: 'fa-bell',\n title: 'Change alerts',\n prompt: 'Build an agent that monitors data changes and alerts me'\n },\n {\n icon: 'fa-file-chart-column',\n title: 'Automated reports',\n prompt: 'Design an agent to aggregate data and create reports'\n },\n {\n icon: 'fa-arrows-rotate',\n title: 'Data sync',\n prompt: 'Help me create an agent that syncs data with external systems'\n },\n {\n icon: 'fa-file-import',\n title: 'File processor',\n prompt: 'Build an agent that processes files and updates my database'\n },\n {\n icon: 'fa-slack',\n title: 'Slack notifications',\n prompt: 'Create an agent to post updates to Slack when data changes'\n },\n {\n icon: 'fa-broom',\n title: 'Data cleanup',\n prompt: 'Design an agent that validates and cleans up my data regularly'\n },\n {\n icon: 'fa-chart-pie',\n title: 'Auto visualizations',\n prompt: 'Build an agent that generates visualizations from my data'\n },\n {\n icon: 'fa-graduation-cap',\n title: 'Research compiler',\n prompt: 'Create an agent to research topics and compile findings'\n },\n {\n icon: 'fa-diagram-project',\n title: 'Workflow automation',\n prompt: 'Help me design a workflow agent with approval steps'\n }\n ];\n\n // Randomly selected prompts to display (refreshed on each load)\n public suggestedPrompts: Array<{icon: string; title: string; prompt: string}> = [];\n\n constructor() {\n // Select 4 random prompts on initialization\n this.suggestedPrompts = this.selectRandomPrompts(4);\n }\n\n /**\n * Select random prompts from the full list\n */\n private selectRandomPrompts(count: number): Array<{icon: string; title: string; prompt: string}> {\n const shuffled = [...this.allSuggestedPrompts].sort(() => Math.random() - 0.5);\n return shuffled.slice(0, count);\n }\n\n onEmptyStateSubmit(event: {text: string; attachments: PendingAttachment[]}): void {\n this.messageSent.emit(event);\n }\n\n onSuggestedPromptClicked(prompt: string): void {\n if (!this.disabled) {\n this.messageSent.emit({ text: prompt, attachments: [] });\n }\n }\n}\n","<div class=\"conversation-empty-state\">\n <!-- Sidebar Toggle Button (top-left when sidebar is collapsed) -->\n @if (showSidebarToggle) {\n <button class=\"sidebar-toggle-btn\"\n (click)=\"sidebarToggleClicked.emit()\"\n title=\"Show conversations\">\n <i class=\"fas fa-table-columns\"></i>\n </button>\n }\n\n <!-- Loading Overlay -->\n @if (disabled) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Creating your conversation...\" size=\"large\"></mj-loading>\n </div>\n }\n\n <div class=\"empty-state-container\" [class.loading]=\"disabled\">\n <!-- Greeting Header -->\n <div class=\"greeting-section\">\n <div class=\"greeting-icon\">\n <i class=\"fa-solid fa-comments fa-3x\"></i>\n </div>\n <h1 class=\"greeting-title\">Welcome to Conversations</h1>\n <p class=\"greeting-subtitle\">\n Start a new conversation by typing a message below, or choose a suggested prompt to get started.\n </p>\n </div>\n\n <!-- Suggested Prompts -->\n <div class=\"suggested-prompts\">\n <div class=\"prompt-grid\">\n @for (prompt of suggestedPrompts; track prompt) {\n <div\n class=\"prompt-card\"\n (click)=\"onSuggestedPromptClicked(prompt.prompt)\"\n [class.disabled]=\"disabled\"\n >\n <div class=\"prompt-icon\">\n <i class=\"fa-solid {{prompt.icon}}\"></i>\n </div>\n <div class=\"prompt-content\">\n <div class=\"prompt-title\">{{prompt.title}}</div>\n <div class=\"prompt-text\">{{prompt.prompt}}</div>\n </div>\n </div>\n }\n </div>\n </div>\n\n <!-- Message Input (using full mj-message-input in empty state mode) -->\n <div class=\"message-input-wrapper\">\n <mj-message-input\n [placeholder]=\"'Type your message to start a new conversation...'\"\n [disabled]=\"disabled\"\n [currentUser]=\"currentUser\"\n [emptyStateMode]=\"true\"\n [enableAttachments]=\"true\"\n (emptyStateSubmit)=\"onEmptyStateSubmit($event)\">\n </mj-message-input>\n </div>\n\n <!-- Footer Tips -->\n <div class=\"tips-section\">\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-at\"></i>\n <span>Use <strong>@AgentName</strong> to directly invoke a specific agent</span>\n </div>\n <div class=\"tip-item\">\n <i class=\"fa-solid fa-keyboard\"></i>\n <span>Press <strong>Enter</strong> to send, <strong>Shift+Enter</strong> for new line</span>\n </div>\n </div>\n </div>\n</div>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, HostListener, ChangeDetectorRef } from '@angular/core';\nimport { UserInfo } from '@memberjunction/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { ConversationDataService } from '../../services/conversation-data.service';\nimport { DialogService } from '../../services/dialog.service';\nimport { NotificationService } from '../../services/notification.service';\nimport { ActiveTasksService } from '../../services/active-tasks.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n standalone: false,\n selector: 'mj-conversation-list',\n template: `\n <div class=\"conversation-list\" kendoDialogContainer>\n <div class=\"list-header\">\n <div class=\"header-top\">\n <input\n type=\"text\"\n class=\"search-input\"\n placeholder=\"Search conversations...\"\n [(ngModel)]=\"searchQuery\">\n @if (!isSelectionMode) {\n <div class=\"header-menu-container\">\n <button class=\"btn-menu\" (click)=\"toggleHeaderMenu($event)\" title=\"Options\">\n <i class=\"fas fa-ellipsis-v\"></i>\n </button>\n @if (isHeaderMenuOpen) {\n <div class=\"header-dropdown-menu\">\n <button class=\"dropdown-item\" (click)=\"onRefreshConversationsClick($event)\" [disabled]=\"isRefreshing\">\n <i class=\"fas fa-sync-alt\" [class.fa-spin]=\"isRefreshing\"></i>\n <span>{{ isRefreshing ? 'Refreshing...' : 'Refresh' }}</span>\n </button>\n <button class=\"dropdown-item\" (click)=\"onSelectConversationsClick($event)\">\n <i class=\"fas fa-check-square\"></i>\n <span>Select Conversations</span>\n </button>\n @if (!isMobileView) {\n <button class=\"dropdown-item\" (click)=\"onUnpinSidebarClick($event)\">\n <i class=\"fas fa-table-columns\"></i>\n <span>Hide Sidebar</span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n <button class=\"btn-new-conversation\" (click)=\"createNewConversation()\" title=\"New Conversation\">\n <i class=\"fas fa-plus\"></i>\n <span>New Conversation</span>\n </button>\n <div class=\"list-content\">\n <!-- Pinned Section (only show if there are pinned conversations) -->\n @if (pinnedConversations.length > 0) {\n <div class=\"sidebar-section pinned-section\">\n <div class=\"section-header\" [class.expanded]=\"pinnedExpanded\" (click)=\"togglePinned()\">\n <div class=\"section-title\">\n <i class=\"fas fa-chevron-right\"></i>\n <i class=\"fas fa-thumbtack section-icon\"></i>\n <span>Pinned</span>\n </div>\n </div>\n <div class=\"chat-list\" [class.expanded]=\"pinnedExpanded\">\n @for (conversation of pinnedConversations; track conversation.ID) {\n <div class=\"conversation-item\"\n [class.active]=\"conversation.ID === selectedConversationId\"\n [class.renamed]=\"conversation.ID === renamedConversationId\"\n (click)=\"handleConversationClick(conversation)\">\n @if (isSelectionMode) {\n <div class=\"conversation-checkbox\">\n <input type=\"checkbox\"\n [checked]=\"selectedConversationIds.has(conversation.ID)\"\n (click)=\"$event.stopPropagation(); toggleConversationSelection(conversation.ID)\">\n </div>\n }\n <div class=\"conversation-icon-wrapper\">\n @if (hasActiveTasks(conversation.ID)) {\n <div class=\"conversation-icon has-tasks\">\n <i class=\"fas fa-spinner fa-pulse\"></i>\n </div>\n }\n <div class=\"badge-overlay\">\n <mj-notification-badge [conversationId]=\"conversation.ID\"></mj-notification-badge>\n </div>\n </div>\n <div class=\"conversation-info\" [title]=\"conversation.Name + (conversation.Description ? '\\n' + conversation.Description : '')\">\n <div class=\"conversation-name\">{{ conversation.Name }}</div>\n <div class=\"conversation-preview\">{{ conversation.Description }}</div>\n </div>\n @if (!isSelectionMode) {\n <div class=\"conversation-actions\">\n <button class=\"menu-btn\" (click)=\"toggleMenu(conversation.ID, $event)\" title=\"More options\">\n <i class=\"fas fa-ellipsis\"></i>\n </button>\n @if (openMenuConversationId === conversation.ID) {\n <div class=\"context-menu\" (click)=\"$event.stopPropagation()\">\n <button class=\"menu-item\" (click)=\"togglePin(conversation, $event)\">\n <i class=\"fas fa-thumbtack\"></i>\n <span>Unpin</span>\n </button>\n <button class=\"menu-item\" (click)=\"renameConversation(conversation); closeMenu()\">\n <i class=\"fas fa-edit\"></i>\n <span>Rename</span>\n </button>\n <div class=\"menu-divider\"></div>\n <button class=\"menu-item danger\" (click)=\"deleteConversation(conversation); closeMenu()\">\n <i class=\"fas fa-trash\"></i>\n <span>Delete</span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Messages Section -->\n <div class=\"sidebar-section\">\n <div class=\"section-header\" [class.expanded]=\"directMessagesExpanded\" (click)=\"toggleDirectMessages()\">\n <div class=\"section-title\">\n <i class=\"fas fa-chevron-right\"></i>\n <span>Messages</span>\n </div>\n </div>\n <div class=\"chat-list\" [class.expanded]=\"directMessagesExpanded\">\n @for (conversation of unpinnedConversations; track conversation.ID) {\n <div class=\"conversation-item\"\n [class.active]=\"conversation.ID === selectedConversationId\"\n [class.renamed]=\"conversation.ID === renamedConversationId\"\n (click)=\"handleConversationClick(conversation)\">\n @if (isSelectionMode) {\n <div class=\"conversation-checkbox\">\n <input type=\"checkbox\"\n [checked]=\"selectedConversationIds.has(conversation.ID)\"\n (click)=\"$event.stopPropagation(); toggleConversationSelection(conversation.ID)\">\n </div>\n }\n <div class=\"conversation-icon-wrapper\">\n @if (hasActiveTasks(conversation.ID)) {\n <div class=\"conversation-icon has-tasks\">\n <i class=\"fas fa-spinner fa-pulse\"></i>\n </div>\n }\n <div class=\"badge-overlay\">\n <mj-notification-badge [conversationId]=\"conversation.ID\"></mj-notification-badge>\n </div>\n </div>\n <div class=\"conversation-info\" [title]=\"conversation.Name + (conversation.Description ? '\\n' + conversation.Description : '')\">\n <div class=\"conversation-name\">{{ conversation.Name }}</div>\n <div class=\"conversation-preview\">{{ conversation.Description }}</div>\n </div>\n @if (!isSelectionMode) {\n <div class=\"conversation-actions\">\n <button class=\"menu-btn\" (click)=\"toggleMenu(conversation.ID, $event)\" title=\"More options\">\n <i class=\"fas fa-ellipsis\"></i>\n </button>\n @if (openMenuConversationId === conversation.ID) {\n <div class=\"context-menu\" (click)=\"$event.stopPropagation()\">\n <button class=\"menu-item\" (click)=\"togglePin(conversation, $event)\">\n <i class=\"fas fa-thumbtack\"></i>\n <span>Pin</span>\n </button>\n <button class=\"menu-item\" (click)=\"renameConversation(conversation); closeMenu()\">\n <i class=\"fas fa-edit\"></i>\n <span>Rename</span>\n </button>\n <div class=\"menu-divider\"></div>\n <button class=\"menu-item danger\" (click)=\"deleteConversation(conversation); closeMenu()\">\n <i class=\"fas fa-trash\"></i>\n <span>Delete</span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n </div>\n\n <!-- Selection Action Bar -->\n @if (isSelectionMode) {\n <div class=\"selection-action-bar\">\n <div class=\"selection-info\">\n <span class=\"selection-count\">{{ selectedConversationIds.size }} selected</span>\n @if (selectedConversationIds.size < filteredConversations.length) {\n <button class=\"link-btn\" (click)=\"selectAll()\">Select All</button>\n } @else {\n <button class=\"link-btn\" (click)=\"deselectAll()\">Deselect All</button>\n }\n </div>\n <div class=\"selection-actions\">\n <button class=\"btn-delete-bulk\"\n (click)=\"bulkDeleteConversations()\"\n [disabled]=\"selectedConversationIds.size === 0\">\n <i class=\"fas fa-trash\"></i>\n Delete ({{ selectedConversationIds.size }})\n </button>\n <button class=\"btn-cancel\" (click)=\"toggleSelectionMode()\">\n Cancel\n </button>\n </div>\n </div>\n }\n </div>\n `,\n styles: [`\n :host { display: block; height: 100%; }\n .conversation-list { display: flex; flex-direction: column; height: 100%; background: #092340; }\n .list-header { padding: 8px; border-bottom: 1px solid rgba(255,255,255,0.1); }\n .search-input {\n width: 100%;\n padding: 8px 12px;\n background: rgba(255,255,255,0.1);\n border: 1px solid rgba(255,255,255,0.2);\n border-radius: 6px;\n color: white;\n font-size: 13px;\n transition: all 0.2s;\n }\n .search-input::placeholder { color: rgba(255,255,255,0.5); }\n .search-input:focus { outline: none; background: rgba(255,255,255,0.15); border-color: #0076B6; }\n .btn-new-conversation {\n width: calc(100% - 16px);\n margin: 8px;\n padding: 10px;\n background: #0076B6;\n color: white;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 600;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: background 0.2s;\n flex-shrink: 0;\n }\n .btn-new-conversation:hover { background: #005A8C; }\n .btn-new-conversation i { font-size: 14px; }\n .list-content { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 0; }\n\n /* Collapsible Sections */\n .sidebar-section { margin-bottom: 20px; }\n .pinned-section .section-header {\n background: rgba(255, 193, 7, 0.08);\n border-radius: 4px;\n margin: 0 4px;\n }\n .pinned-section .section-title .section-icon {\n color: #FFC107;\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header {\n padding: 4px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n color: rgba(255, 255, 255, 0.7);\n font-size: 13px;\n font-weight: 500;\n transition: color 0.2s;\n user-select: none;\n }\n .section-header:hover { color: white; }\n .section-title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title i {\n font-size: 10px;\n transition: transform 0.2s;\n }\n .section-header.expanded .section-title i { transform: rotate(90deg); }\n .chat-list {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded { display: block; }\n\n .conversation-item {\n padding: 6px 5px 6px 16px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n align-items: center;\n transition: all 0.2s;\n position: relative;\n color: rgba(255,255,255,0.7);\n font-size: 14px;\n min-height: 45px;\n }\n .conversation-item:hover { background: rgba(255,255,255,0.08); color: white; }\n .conversation-item:hover .conversation-actions { opacity: 1; }\n .conversation-item.active { background: #0076B6; color: white; }\n .conversation-icon-wrapper { position: relative; flex-shrink: 0; }\n .conversation-icon { font-size: 12px; width: 16px; text-align: center; }\n .conversation-icon.has-tasks { color: #fb923c; }\n .badge-overlay { position: absolute; top: -4px; right: -4px; }\n .conversation-info { flex: 1; min-width: 0; }\n .conversation-name { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-preview { font-size: 12px; color: rgba(255,255,255,0.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active .conversation-preview { color: rgba(255,255,255,0.8); }\n .conversation-meta { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n /* Project Badge */\n .project-badge {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 10px;\n font-weight: 600;\n margin-left: auto;\n background-color: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.6);\n white-space: nowrap;\n max-width: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .conversation-item:hover .project-badge {\n background-color: rgba(255, 255, 255, 0.15);\n color: rgba(255, 255, 255, 0.8);\n }\n .conversation-item.active .project-badge {\n background-color: rgba(255, 255, 255, 0.2);\n color: white;\n }\n\n .conversation-actions {\n position: absolute;\n right: 5px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s;\n z-index: 10;\n }\n .conversation-item:hover .conversation-actions { opacity: 1; pointer-events: auto; }\n .conversation-item.active .conversation-actions { opacity: 1; pointer-events: auto; }\n .conversation-actions > * { pointer-events: auto; }\n .pinned-icon { color: #AAE7FD; font-size: 12px; }\n\n /* Task Indicator */\n .task-indicator {\n color: #fb923c;\n font-size: 12px;\n margin-right: 8px;\n flex-shrink: 0;\n animation: pulse-glow 2s ease-in-out infinite;\n }\n @keyframes pulse-glow {\n 0%, 100% {\n opacity: 1;\n filter: drop-shadow(0 0 2px #fb923c);\n }\n 50% {\n opacity: 0.6;\n filter: drop-shadow(0 0 4px #fb923c);\n }\n }\n .conversation-item.active .task-indicator {\n color: #fbbf24;\n }\n\n .menu-btn {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n color: rgba(255,255,255,0.7);\n background: #092340 !important;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .menu-btn:hover {\n background: rgba(255,255,255,0.15) !important;\n color: white;\n }\n .conversation-item.active .menu-btn {\n background: #005A8C !important;\n color: white;\n }\n .menu-btn i { font-size: 14px; }\n\n .context-menu {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 4px;\n min-width: 160px;\n background: #0A2742;\n border: 1px solid rgba(255,255,255,0.15);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n z-index: 1001;\n overflow: hidden;\n pointer-events: auto;\n }\n\n .menu-item {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.85);\n font-size: 14px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .menu-item:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n\n .menu-item i {\n width: 16px;\n font-size: 13px;\n color: rgba(255,255,255,0.6);\n }\n\n .menu-item:hover i {\n color: white;\n }\n\n .menu-item.danger {\n color: rgba(239, 68, 68, 0.9);\n }\n\n .menu-item.danger:hover {\n background: rgba(239, 68, 68, 0.15);\n color: #ff6b6b;\n }\n\n .menu-item.danger i {\n color: rgba(239, 68, 68, 0.8);\n }\n\n .menu-item.danger:hover i {\n color: #ff6b6b;\n }\n\n .menu-divider {\n height: 1px;\n background: rgba(255,255,255,0.1);\n margin: 4px 0;\n }\n\n /* Rename Animation */\n .conversation-item.renamed {\n animation: renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes renameHighlight {\n 0% {\n background: linear-gradient(90deg, rgba(59, 130, 246, 0.4), rgba(147, 51, 234, 0.4));\n transform: scale(1.03);\n box-shadow: 0 0 20px rgba(59, 130, 246, 0.5);\n }\n 25% {\n background: linear-gradient(90deg, rgba(59, 130, 246, 0.35), rgba(147, 51, 234, 0.35));\n box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);\n }\n 50% {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.3), rgba(59, 130, 246, 0.3));\n transform: scale(1.02);\n box-shadow: 0 0 10px rgba(16, 185, 129, 0.3);\n }\n 75% {\n background: linear-gradient(90deg, rgba(16, 185, 129, 0.2), rgba(59, 130, 246, 0.2));\n box-shadow: 0 0 5px rgba(16, 185, 129, 0.2);\n }\n 100% {\n background: transparent;\n transform: scale(1);\n box-shadow: none;\n }\n }\n\n /* Selection Mode Styles */\n .header-top {\n display: flex;\n gap: 8px;\n align-items: center;\n }\n\n /* Header menu button and dropdown */\n .header-menu-container {\n position: relative;\n flex-shrink: 0;\n }\n\n .btn-menu {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid rgba(255,255,255,0.2);\n border-radius: 6px;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .btn-menu:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n border-color: rgba(255,255,255,0.3);\n }\n\n .header-dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n min-width: 200px;\n background: #0A2742;\n border: 1px solid rgba(255,255,255,0.15);\n border-radius: 8px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);\n z-index: 1001;\n overflow: hidden;\n padding: 4px 0;\n }\n\n .header-dropdown-menu .dropdown-item {\n width: 100%;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 14px;\n background: transparent;\n border: none;\n color: rgba(255,255,255,0.85);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .header-dropdown-menu .dropdown-item:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n\n .header-dropdown-menu .dropdown-item i {\n width: 16px;\n font-size: 13px;\n color: rgba(255,255,255,0.6);\n }\n\n .header-dropdown-menu .dropdown-item:hover i {\n color: white;\n }\n\n .header-dropdown-menu .dropdown-item .shortcut {\n margin-left: auto;\n font-size: 11px;\n color: rgba(255,255,255,0.4);\n font-family: system-ui, -apple-system, sans-serif;\n }\n\n .btn-select {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid rgba(255,255,255,0.2);\n border-radius: 6px;\n color: rgba(255,255,255,0.7);\n font-size: 13px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .btn-select:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n border-color: rgba(255,255,255,0.3);\n }\n\n .conversation-checkbox {\n display: flex;\n align-items: center;\n margin-right: 8px;\n flex-shrink: 0;\n }\n\n .conversation-checkbox input[type=\"checkbox\"] {\n width: 18px;\n height: 18px;\n cursor: pointer;\n accent-color: #0076B6;\n }\n\n .selection-action-bar {\n position: sticky;\n bottom: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: #0A2742;\n border-top: 1px solid rgba(255,255,255,0.15);\n gap: 12px;\n flex-wrap: wrap;\n flex-shrink: 0;\n }\n\n .selection-info {\n display: flex;\n align-items: center;\n gap: 12px;\n color: rgba(255,255,255,0.9);\n font-size: 14px;\n font-weight: 500;\n flex: 1 1 auto;\n min-width: 150px;\n }\n\n .selection-count {\n color: white;\n }\n\n .link-btn {\n background: none;\n border: none;\n color: #AAE7FD;\n cursor: pointer;\n font-size: 13px;\n text-decoration: underline;\n padding: 0;\n transition: color 0.2s;\n }\n\n .link-btn:hover {\n color: white;\n }\n\n .selection-actions {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n }\n\n .btn-cancel {\n padding: 8px 16px;\n background: transparent;\n border: 1px solid rgba(255,255,255,0.2);\n border-radius: 6px;\n color: rgba(255,255,255,0.7);\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 0.2s;\n }\n\n .btn-cancel:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n\n .btn-delete-bulk {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: #DC2626;\n border: none;\n border-radius: 6px;\n color: white;\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: all 0.2s;\n }\n\n .btn-delete-bulk:hover:not(:disabled) {\n background: #B91C1C;\n }\n\n .btn-delete-bulk:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-delete-bulk i {\n font-size: 12px;\n }\n `]\n})\nexport class ConversationListComponent implements OnInit, OnDestroy {\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n @Input() selectedConversationId: string | null = null;\n @Input() renamedConversationId: string | null = null;\n @Input() isSidebarPinned: boolean = true; // Whether sidebar is pinned (stays open after selection)\n @Input() isMobileView: boolean = false; // Whether we're on mobile (no pin options)\n\n @Output() conversationSelected = new EventEmitter<string>();\n @Output() conversationDeleted = new EventEmitter<string>(); // Emits the deleted conversation ID\n @Output() newConversationRequested = new EventEmitter<void>();\n @Output() pinSidebarRequested = new EventEmitter<void>(); // Request to pin sidebar\n @Output() unpinSidebarRequested = new EventEmitter<void>(); // Request to unpin (collapse) sidebar\n @Output() refreshRequested = new EventEmitter<void>(); // Emitted after list refresh so chat area can also reload\n\n public directMessagesExpanded: boolean = true;\n public pinnedExpanded: boolean = true;\n public openMenuConversationId: string | null = null;\n public conversationIdsWithTasks = new Set<string>();\n public isSelectionMode: boolean = false;\n public selectedConversationIds = new Set<string>();\n public searchQuery: string = '';\n public isHeaderMenuOpen: boolean = false;\n public isRefreshing: boolean = false;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n public conversationData: ConversationDataService,\n private dialogService: DialogService,\n private notificationService: NotificationService,\n private activeTasksService: ActiveTasksService,\n private cdr: ChangeDetectorRef\n ) {}\n\n get filteredConversations(): MJConversationEntity[] {\n if (!this.searchQuery || this.searchQuery.trim() === '') {\n return this.conversationData.conversations;\n }\n const lowerQuery = this.searchQuery.toLowerCase();\n return this.conversationData.conversations.filter(c =>\n (c.Name?.toLowerCase().includes(lowerQuery)) ||\n (c.Description?.toLowerCase().includes(lowerQuery))\n );\n }\n\n get pinnedConversations() {\n return this.filteredConversations.filter(c => c.IsPinned);\n }\n\n get unpinnedConversations() {\n return this.filteredConversations.filter(c => !c.IsPinned);\n }\n\n ngOnInit() {\n // Load conversations on init\n this.conversationData.loadConversations(this.environmentId, this.currentUser);\n\n // Subscribe to conversation IDs with active tasks (hot set)\n this.activeTasksService.conversationIdsWithTasks$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(conversationIds => {\n this.conversationIdsWithTasks = conversationIds;\n this.cdr.detectChanges(); // Force change detection to ensure spinner icons update reliably\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n @HostListener('document:click')\n onDocumentClick(): void {\n // Close menus when clicking outside\n if (this.openMenuConversationId) {\n this.closeMenu();\n }\n if (this.isHeaderMenuOpen) {\n this.closeHeaderMenu();\n }\n }\n\n public toggleHeaderMenu(event: Event): void {\n event.stopPropagation();\n this.isHeaderMenuOpen = !this.isHeaderMenuOpen;\n }\n\n public closeHeaderMenu(): void {\n this.isHeaderMenuOpen = false;\n }\n\n public onSelectConversationsClick(event: Event): void {\n event.stopPropagation();\n this.toggleSelectionMode();\n this.closeHeaderMenu();\n }\n\n public async onRefreshConversationsClick(event: Event): Promise<void> {\n event.stopPropagation();\n if (this.isRefreshing) return;\n\n this.isRefreshing = true;\n try {\n await this.conversationData.refreshConversations(this.environmentId, this.currentUser);\n // Signal parent to also reload messages in the active conversation\n this.refreshRequested.emit();\n } catch (error) {\n console.error('Error refreshing conversations:', error);\n await this.dialogService.alert('Error', 'Failed to refresh conversations. Please try again.');\n } finally {\n this.isRefreshing = false;\n this.cdr.detectChanges();\n this.closeHeaderMenu();\n }\n }\n\n public onPinSidebarClick(event: Event): void {\n event.stopPropagation();\n this.closeHeaderMenu();\n this.pinSidebarRequested.emit();\n }\n\n public onUnpinSidebarClick(event: Event): void {\n event.stopPropagation();\n this.closeHeaderMenu();\n this.unpinSidebarRequested.emit();\n }\n\n public toggleDirectMessages(): void {\n this.directMessagesExpanded = !this.directMessagesExpanded;\n }\n\n public togglePinned(): void {\n this.pinnedExpanded = !this.pinnedExpanded;\n }\n\n selectConversation(conversation: MJConversationEntity): void {\n this.conversationSelected.emit(conversation.ID);\n // Clear unread notifications when conversation is opened\n this.notificationService.markConversationAsRead(conversation.ID);\n }\n\n async createNewConversation(): Promise<void> {\n // Don't create DB record yet - just show the welcome screen\n // Conversation will be created when user sends first message\n this.newConversationRequested.emit();\n }\n\n async renameConversation(conversation: MJConversationEntity): Promise<void> {\n try {\n const result = await this.dialogService.input({\n title: 'Edit Conversation',\n message: 'Update the name and description for this conversation',\n inputLabel: 'Conversation Name',\n inputValue: conversation.Name || '',\n placeholder: 'My Conversation',\n required: true,\n secondInputLabel: 'Description',\n secondInputValue: conversation.Description || '',\n secondInputPlaceholder: 'Optional description',\n secondInputRequired: false,\n okText: 'Save',\n cancelText: 'Cancel'\n });\n\n if (result) {\n const newName = typeof result === 'string' ? result : result.value;\n const newDescription = typeof result === 'string' ? conversation.Description : result.secondValue;\n\n if (newName !== conversation.Name || newDescription !== conversation.Description) {\n await this.conversationData.saveConversation(\n conversation.ID,\n { Name: newName, Description: newDescription || '' },\n this.currentUser\n );\n }\n }\n } catch (error) {\n console.error('Error renaming conversation:', error);\n await this.dialogService.alert('Error', 'Failed to update conversation. Please try again.');\n }\n }\n\n async deleteConversation(conversation: MJConversationEntity): Promise<void> {\n try {\n const confirmed = await this.dialogService.confirm({\n title: 'Delete Conversation',\n message: `Are you sure you want to delete \"${conversation.Name}\"? This action cannot be undone.`,\n okText: 'Delete',\n cancelText: 'Cancel'\n });\n\n if (confirmed) {\n const deletedId = conversation.ID;\n await this.conversationData.deleteConversation(deletedId, this.currentUser);\n this.cdr.detectChanges();\n this.conversationDeleted.emit(deletedId);\n }\n } catch (error) {\n console.error('Error deleting conversation:', error);\n await this.dialogService.alert('Error', 'Failed to delete conversation. Please try again.');\n }\n }\n\n toggleMenu(conversationId: string, event: Event): void {\n event.stopPropagation();\n this.openMenuConversationId = this.openMenuConversationId === conversationId ? null : conversationId;\n }\n\n closeMenu(): void {\n this.openMenuConversationId = null;\n }\n\n async togglePin(conversation: MJConversationEntity, event?: Event): Promise<void> {\n if (event) event.stopPropagation();\n try {\n await this.conversationData.togglePin(conversation.ID, this.currentUser);\n this.closeMenu();\n } catch (error) {\n console.error('Error toggling pin:', error);\n await this.dialogService.alert('Error', 'Failed to pin/unpin conversation. Please try again.');\n }\n }\n\n hasActiveTasks(conversationId: string): boolean {\n return this.conversationIdsWithTasks.has(conversationId);\n }\n\n toggleSelectionMode(): void {\n this.isSelectionMode = !this.isSelectionMode;\n if (!this.isSelectionMode) {\n this.selectedConversationIds.clear();\n }\n }\n\n toggleConversationSelection(conversationId: string): void {\n if (this.selectedConversationIds.has(conversationId)) {\n this.selectedConversationIds.delete(conversationId);\n } else {\n this.selectedConversationIds.add(conversationId);\n }\n }\n\n selectAll(): void {\n this.filteredConversations.forEach(c => {\n this.selectedConversationIds.add(c.ID);\n });\n }\n\n deselectAll(): void {\n this.selectedConversationIds.clear();\n }\n\n async bulkDeleteConversations(): Promise<void> {\n const count = this.selectedConversationIds.size;\n\n if (count === 0) return;\n\n const confirmed = await this.dialogService.confirm({\n title: 'Delete Conversations',\n message: `Are you sure you want to delete ${count} conversation${count > 1 ? 's' : ''}? This action cannot be undone.`,\n okText: 'Delete',\n cancelText: 'Cancel'\n });\n\n if (confirmed) {\n try {\n const result = await this.conversationData.deleteMultipleConversations(\n Array.from(this.selectedConversationIds),\n this.currentUser\n );\n\n // Show results if there were any failures\n if (result.failed.length > 0) {\n await this.dialogService.alert(\n 'Partial Success',\n `Deleted ${result.successful.length} of ${count} conversations. ${result.failed.length} failed.`\n );\n }\n\n // Exit selection mode\n this.toggleSelectionMode();\n\n } catch (error) {\n console.error('Error deleting conversations:', error);\n await this.dialogService.alert('Error', 'Failed to delete conversations. Please try again.');\n }\n }\n }\n\n handleConversationClick(conversation: MJConversationEntity): void {\n if (this.isSelectionMode) {\n this.toggleConversationSelection(conversation.ID);\n } else {\n this.selectConversation(conversation);\n }\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/input-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;;IAarC,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAItC,mCAGqB;IAFnB,ySAAmB;IAGrB,0BAAA;IAAA,iBAAW;;;IAHT,4CAAmB;IACnB,gDAA2B;;;;IAK7B,gCAKuC;IAJrC,sSAAmB;IAInB,6MAAiB,yBAAkB,KAAC;IALtC,iBAKuC;;;IAJrC,4CAAmB;IAEnB,AADA,iDAA4B,mCACD;;;IAUzB,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAHxC,AADF,8BAAyB,eACI;IACzB,YACA;IAAA,qGAA2B;IAG7B,iBAAQ;IACR,mCAGqB;IAFnB,qTAAyB;IAG3B,0BAAA;IACF,AADE,iBAAW,EACP;;;IAVF,eACA;IADA,wDACA;IAAA,cAEC;IAFD,qDAEC;IAGD,cAAyB;IAAzB,kDAAyB;IACzB,2DAAsC;;AAmDlD,MAAM,OAAO,oBAAoB;IAYZ;IAXV,OAAO,GAAW,EAAE,CAAC;IACrB,UAAU,GAAW,EAAE,CAAC;IACxB,SAAS,GAA6C,MAAM,CAAC;IAC7D,WAAW,GAAW,EAAE,CAAC;IACzB,QAAQ,GAAY,KAAK,CAAC;IAC1B,KAAK,GAAW,EAAE,CAAC;IACnB,gBAAgB,GAAW,EAAE,CAAC;IAC9B,sBAAsB,GAAW,EAAE,CAAC;IACpC,mBAAmB,GAAY,KAAK,CAAC;IACrC,WAAW,GAAW,EAAE,CAAC;IAElC,YAAmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE3C,UAAU,CAAC,KAAY;QACrB,MAAM,QAAQ,GAAG,KAAsB,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,oCAAoC,CAAsB,CAAC;YACnG,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;8GAhCU,oBAAoB;6DAApB,oBAAoB;YArF3B,AADF,8BAAkC,WACN;YAAA,YAAa;YAAA,iBAAI;YAEzC,AADF,8BAAyB,eACI;YACzB,YACA;YAAA,uFAAgB;YAGlB,iBAAQ;YACR,2FAAgC;YAOhC,wFAAgC;YAQlC,iBAAM;YACN,sFAAwB;YAe1B,iBAAM;;YAvCsB,eAAa;YAAb,iCAAa;YAGnC,eACA;YADA,+CACA;YAAA,cAEC;YAFD,uCAEC;YAEH,cAMC;YAND,uDAMC;YACD,cAOC;YAPD,uDAOC;YAEH,cAcC;YAdD,+CAcC;;;iFA+CM,oBAAoB;cA1FhC,SAAS;6BACI,KAAK,YACP,iBAAiB,YACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0CP;;kBA8CF,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kFAVK,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"input-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/components/dialogs/input-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;;;;IAarC,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAItC,mCAGqB;IAFnB,ySAAmB;IAGrB,0BAAA;IAAA,iBAAW;;;IAHT,4CAAmB;IACnB,gDAA2B;;;;IAK7B,gCAKuC;IAJrC,sSAAmB;IAInB,6MAAiB,yBAAkB,KAAC;IALtC,iBAKuC;;;IAJrC,4CAAmB;IAEnB,AADA,iDAA4B,mCACD;;;IAUzB,+BAA4B;IAAA,iBAAC;IAAA,iBAAO;;;;IAHxC,AADF,8BAAyB,eACI;IACzB,YACA;IAAA,qGAA2B;IAG7B,iBAAQ;IACR,mCAGqB;IAFnB,qTAAyB;IAG3B,0BAAA;IACF,AADE,iBAAW,EACP;;;IAVF,eACA;IADA,wDACA;IAAA,cAEC;IAFD,qDAEC;IAGD,cAAyB;IAAzB,kDAAyB;IACzB,2DAAsC;;AAmDlD,MAAM,OAAO,oBAAoB;IAYZ;IAXV,OAAO,GAAW,EAAE,CAAC;IACrB,UAAU,GAAW,EAAE,CAAC;IACxB,SAAS,GAA6C,MAAM,CAAC;IAC7D,WAAW,GAAW,EAAE,CAAC;IACzB,QAAQ,GAAY,KAAK,CAAC;IAC1B,KAAK,GAAW,EAAE,CAAC;IACnB,gBAAgB,GAAW,EAAE,CAAC;IAC9B,sBAAsB,GAAW,EAAE,CAAC;IACpC,mBAAmB,GAAY,KAAK,CAAC;IACrC,WAAW,GAAW,EAAE,CAAC;IAElC,YAAmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE3C,UAAU,CAAC,KAAY;QACrB,MAAM,QAAQ,GAAG,KAAsB,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAClC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC1B,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,oCAAoC,CAAsB,CAAC;YACnG,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;8GAhCU,oBAAoB;6DAApB,oBAAoB;YArF3B,AADF,8BAAkC,WACN;YAAA,YAAa;YAAA,iBAAI;YAEzC,AADF,8BAAyB,eACI;YACzB,YACA;YAAA,uFAAgB;YAGlB,iBAAQ;YACR,2FAAgC;YAOhC,wFAAgC;YAQlC,iBAAM;YACN,sFAAwB;YAe1B,iBAAM;;YAvCsB,eAAa;YAAb,iCAAa;YAGnC,eACA;YADA,+CACA;YAAA,cAEC;YAFD,uCAEC;YAEH,cAMC;YAND,uDAMC;YACD,cAOC;YAPD,uDAOC;YAEH,cAcC;YAdD,+CAcC;;;iFA+CM,oBAAoB;cA1FhC,SAAS;6BACI,KAAK,YACP,iBAAiB,YACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0CP;;kBA8CF,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kFAVK,oBAAoB","sourcesContent":["import { Component, Input } from '@angular/core';\nimport { DialogRef } from '@progress/kendo-angular-dialog';\n\n@Component({\n standalone: false,\n selector: 'mj-input-dialog',\n template: `\n <div class=\"input-dialog-content\">\n <p class=\"dialog-message\">{{ message }}</p>\n <div class=\"input-field\">\n <label class=\"input-label\">\n {{ inputLabel }}\n @if (required) {\n <span class=\"required-mark\">*</span>\n }\n </label>\n @if (inputType === 'textarea') {\n <textarea\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n class=\"k-textarea\">\n </textarea>\n }\n @if (inputType !== 'textarea') {\n <input\n [(ngModel)]=\"value\"\n [type]=\"inputType || 'text'\"\n [placeholder]=\"placeholder\"\n class=\"k-textbox\"\n (keydown.enter)=\"onEnterKey($event)\">\n }\n </div>\n @if (secondInputLabel) {\n <div class=\"input-field\">\n <label class=\"input-label\">\n {{ secondInputLabel }}\n @if (secondInputRequired) {\n <span class=\"required-mark\">*</span>\n }\n </label>\n <textarea\n [(ngModel)]=\"secondValue\"\n [placeholder]=\"secondInputPlaceholder\"\n class=\"k-textarea\">\n </textarea>\n </div>\n }\n </div>\n `,\n styles: [`\n .input-dialog-content {\n padding: 8px 0;\n }\n .dialog-message {\n margin: 0 0 16px 0;\n color: #333;\n font-size: 14px;\n }\n .input-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .input-label {\n font-weight: 500;\n font-size: 13px;\n color: #555;\n }\n .required-mark {\n color: #DC2626;\n margin-left: 2px;\n }\n .k-textbox,\n .k-textarea {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid #D1D5DB;\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n }\n .k-textbox:focus,\n .k-textarea:focus {\n outline: none;\n border-color: #3B82F6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n }\n .k-textarea {\n min-height: 80px;\n resize: vertical;\n }\n `]\n})\nexport class InputDialogComponent {\n @Input() message: string = '';\n @Input() inputLabel: string = '';\n @Input() inputType: 'text' | 'textarea' | 'number' | 'email' = 'text';\n @Input() placeholder: string = '';\n @Input() required: boolean = false;\n @Input() value: string = '';\n @Input() secondInputLabel: string = '';\n @Input() secondInputPlaceholder: string = '';\n @Input() secondInputRequired: boolean = false;\n @Input() secondValue: string = '';\n\n constructor(public dialogRef: DialogRef) {}\n\n onEnterKey(event: Event): void {\n const keyEvent = event as KeyboardEvent;\n if (this.inputType !== 'textarea') {\n keyEvent.preventDefault();\n // Trigger OK button click\n const okButton = document.querySelector('.k-dialog-actions button.k-primary') as HTMLButtonElement;\n if (okButton) {\n okButton.click();\n }\n }\n }\n\n getValue(): string {\n return this.value.trim();\n }\n\n getSecondValue(): string {\n return this.secondValue.trim();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/export/export-modal.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"export-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/export/export-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo } from '@memberjunction/core';\nimport { ExportService, ExportFormat, ExportOptions } from '../../services/export.service';\nimport { DialogService } from '../../services/dialog.service';\nimport { ToastService } from '../../services/toast.service';\n\n@Component({\n standalone: false,\n selector: 'mj-export-modal',\n template: `\n @if (isVisible) {\n <kendo-dialog\n [title]=\"exportTitle\"\n [width]=\"600\"\n [height]=\"600\"\n (close)=\"onCancel()\">\n <div class=\"export-modal-content\">\n <section class=\"format-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-file-export\"></i>\n Export Format\n </h3>\n <p class=\"section-description\">\n Choose a format to export this conversation:\n </p>\n <div class=\"format-options\">\n @for (format of formats; track format.value) {\n <div\n class=\"format-option\"\n [class.selected]=\"selectedFormat === format.value\"\n (click)=\"selectFormat(format.value)\">\n <i [class]=\"format.icon\"></i>\n <div class=\"format-details\">\n <div class=\"format-name\">{{ format.name }}</div>\n <div class=\"format-description\">{{ format.description }}</div>\n </div>\n @if (selectedFormat === format.value) {\n <i class=\"fa-solid fa-check-circle check-icon\"></i>\n }\n </div>\n }\n </div>\n </section>\n <section class=\"options-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-sliders\"></i>\n Export Options\n </h3>\n <div class=\"option-checkboxes\">\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"exportOptions.includeMessages\"\n [disabled]=\"isExporting\">\n <span>Include messages</span>\n <small>Export all conversation messages</small>\n </label>\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"exportOptions.includeMetadata\"\n [disabled]=\"isExporting\">\n <span>Include metadata</span>\n <small>Add creation date, IDs, and other metadata</small>\n </label>\n </div>\n @if (selectedFormat === 'json') {\n <div class=\"format-specific-options\">\n <h4 class=\"subsection-title\">JSON Options</h4>\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"exportOptions.prettyPrint\"\n [disabled]=\"isExporting\">\n <span>Pretty print</span>\n <small>Format JSON with indentation</small>\n </label>\n </div>\n }\n @if (selectedFormat === 'html') {\n <div class=\"format-specific-options\">\n <h4 class=\"subsection-title\">HTML Options</h4>\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"exportOptions.includeCSS\"\n [disabled]=\"isExporting\">\n <span>Include CSS styling</span>\n <small>Embed styles for better presentation</small>\n </label>\n </div>\n }\n </section>\n @if (errorMessage) {\n <div class=\"error-message\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ errorMessage }}\n </div>\n }\n @if (isExporting) {\n <div class=\"loading-indicator\">\n <mj-loading text=\"Exporting conversation...\" size=\"small\"></mj-loading>\n </div>\n }\n </div>\n <kendo-dialog-actions>\n <button kendoButton [disabled]=\"isExporting\" (click)=\"onCancel()\">\n <i class=\"fa-solid fa-times\"></i>\n Cancel\n </button>\n <button kendoButton [primary]=\"true\" [disabled]=\"!canExport\" (click)=\"onExport()\">\n <i class=\"fa-solid fa-download\"></i>\n Export\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n `,\n styles: [`\n .export-modal-content {\n padding: 20px;\n max-height: calc(600px - 120px);\n overflow-y: auto;\n }\n\n section {\n margin-bottom: 24px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 8px 0;\n font-size: 16px;\n font-weight: 600;\n color: #333;\n }\n\n .section-title i {\n color: #007bff;\n }\n\n .section-description {\n margin: 0 0 16px 0;\n color: #666;\n font-size: 14px;\n }\n\n .format-options {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .format-option {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border: 2px solid #e0e0e0;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n }\n\n .format-option:hover {\n border-color: #007bff;\n background: #f8f9fa;\n }\n\n .format-option.selected {\n border-color: #007bff;\n background: #e3f2fd;\n }\n\n .format-option > i.fa-solid,\n .format-option > i.fas {\n font-size: 24px;\n color: #666;\n width: 32px;\n text-align: center;\n }\n\n .format-option.selected > i.fa-solid,\n .format-option.selected > i.fas {\n color: #007bff;\n }\n\n .format-details {\n flex: 1;\n }\n\n .format-name {\n font-weight: 500;\n font-size: 14px;\n margin-bottom: 2px;\n }\n\n .format-description {\n font-size: 12px;\n color: #666;\n }\n\n .check-icon {\n font-size: 20px;\n color: #28a745;\n }\n\n .option-checkboxes {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .checkbox-label {\n display: flex;\n flex-direction: column;\n gap: 4px;\n cursor: pointer;\n padding: 8px;\n border-radius: 4px;\n transition: background 0.2s;\n }\n\n .checkbox-label:hover {\n background: #f8f9fa;\n }\n\n .checkbox-label input[type=\"checkbox\"] {\n margin-right: 8px;\n cursor: pointer;\n }\n\n .checkbox-label > span {\n display: inline-flex;\n align-items: center;\n font-size: 14px;\n font-weight: 500;\n }\n\n .checkbox-label input[type=\"checkbox\"]:disabled {\n cursor: not-allowed;\n }\n\n .checkbox-label small {\n margin-left: 28px;\n font-size: 12px;\n color: #666;\n }\n\n .format-specific-options {\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid #e0e0e0;\n }\n\n .subsection-title {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: #555;\n }\n\n .error-message {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 15px;\n padding: 10px 12px;\n background: #ffebee;\n border-left: 3px solid #d32f2f;\n border-radius: 4px;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-top: 15px;\n padding: 12px;\n background: #f8f9fa;\n border-radius: 4px;\n color: #666;\n }\n\n kendo-dialog-actions {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n\n kendo-dialog-actions button i {\n margin-right: 6px;\n }\n `]\n})\nexport class ExportModalComponent {\n @Input() isVisible = false;\n @Input() conversation?: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Output() cancelled = new EventEmitter<void>();\n @Output() exported = new EventEmitter<void>();\n\n selectedFormat: ExportFormat | null = 'markdown';\n isExporting = false;\n errorMessage = '';\n\n exportOptions: ExportOptions = {\n includeMessages: true,\n includeMetadata: true,\n prettyPrint: true,\n includeCSS: true\n };\n\n get exportTitle(): string {\n return `Export: ${this.conversation?.Name || 'Conversation'}`;\n }\n\n get canExport(): boolean {\n return !this.isExporting &&\n !!this.selectedFormat &&\n (this.exportOptions.includeMessages === true);\n }\n\n formats = [\n {\n value: 'markdown' as ExportFormat,\n name: 'Markdown',\n description: 'Formatted text with markdown syntax',\n icon: 'fa-solid fa-file-alt'\n },\n {\n value: 'json' as ExportFormat,\n name: 'JSON',\n description: 'Structured data format',\n icon: 'fa-solid fa-code'\n },\n {\n value: 'html' as ExportFormat,\n name: 'HTML',\n description: 'Web page format',\n icon: 'fa-solid fa-file-code'\n },\n {\n value: 'text' as ExportFormat,\n name: 'Plain Text',\n description: 'Simple text file',\n icon: 'fa-solid fa-file'\n }\n ];\n\n constructor(\n private exportService: ExportService,\n private dialogService: DialogService,\n private toastService: ToastService\n ) {}\n\n selectFormat(format: ExportFormat): void {\n if (!this.isExporting) {\n this.selectedFormat = format;\n }\n }\n\n async onExport(): Promise<void> {\n if (!this.canExport || !this.conversation) {\n return;\n }\n\n if (!this.exportOptions.includeMessages) {\n this.errorMessage = 'At least \"Include messages\" must be selected';\n return;\n }\n\n this.isExporting = true;\n this.errorMessage = '';\n\n try {\n await this.exportService.exportConversation(\n this.conversation.ID,\n this.selectedFormat!,\n this.currentUser,\n this.exportOptions\n );\n\n this.toastService.success('Conversation exported successfully');\n this.exported.emit();\n this.resetForm();\n } catch (error) {\n console.error('Error exporting conversation:', error);\n this.errorMessage = error instanceof Error ? error.message : 'Failed to export conversation';\n this.toastService.error(this.errorMessage);\n } finally {\n this.isExporting = false;\n }\n }\n\n onCancel(): void {\n this.cancelled.emit();\n this.resetForm();\n }\n\n private resetForm(): void {\n this.selectedFormat = 'markdown';\n this.errorMessage = '';\n this.exportOptions = {\n includeMessages: true,\n includeMetadata: true,\n prettyPrint: true,\n includeCSS: true\n };\n this.isVisible = false;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-tasks-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/global-tasks/global-tasks-panel.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"global-tasks-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/global-tasks/global-tasks-panel.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { ActiveTasksService, ActiveTask } from '../../services/active-tasks.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Global floating tasks panel that shows all active tasks across all conversations\n * Appears in bottom-right corner, minimizable, shows only when tasks > 0\n */\n@Component({\n standalone: false,\n selector: 'mj-global-tasks-panel',\n template: `\n @if (tasks.length > 0) {\n <div class=\"global-tasks-panel\">\n <!-- Minimized State -->\n @if (isMinimized) {\n <button\n class=\"minimized-badge\"\n (click)=\"expand()\"\n title=\"View active tasks\">\n <i class=\"fas fa-bolt\"></i>\n <span class=\"task-count\">{{ tasks.length }}</span>\n </button>\n }\n <!-- Expanded State -->\n @if (!isMinimized) {\n <div class=\"expanded-panel\">\n <div class=\"panel-header\">\n <div class=\"header-left\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>Active Tasks ({{ tasks.length }})</span>\n </div>\n <button class=\"minimize-btn\" (click)=\"minimize()\" title=\"Minimize\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n <div class=\"panel-content\">\n @for (task of tasks; track task) {\n <div class=\"task-item\" (click)=\"onTaskClick(task)\">\n <div class=\"task-header\">\n <i class=\"fas fa-robot\"></i>\n <span class=\"task-agent\">{{ task.agentName }}</span>\n </div>\n @if (task.conversationName) {\n <div class=\"task-conversation\">\n <i class=\"fas fa-message\"></i>\n <span>{{ task.conversationName }}</span>\n </div>\n }\n <div class=\"task-status\">\n <span class=\"status-indicator active\"></span>\n <span class=\"status-text\">{{ getTrimmedStatus(task.status) }}</span>\n </div>\n <div class=\"task-elapsed\">{{ getElapsedTime(task) }}</div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n `,\n styles: [`\n .global-tasks-panel {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 9999;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n /* Minimized Badge */\n .minimized-badge {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border: none;\n border-radius: 50%;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n position: relative;\n animation: pulse 2s ease-in-out infinite;\n }\n\n .minimized-badge:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);\n }\n\n .minimized-badge i {\n font-size: 20px;\n margin-right: 4px;\n }\n\n .minimized-badge .task-count {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #ef4444;\n color: white;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 600;\n border: 2px solid white;\n }\n\n @keyframes pulse {\n 0%, 100% {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n 50% {\n box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);\n }\n }\n\n /* Expanded Panel */\n .expanded-panel {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n width: 360px;\n max-height: 480px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: slideIn 0.3s ease-out;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 14px;\n }\n\n .header-left i {\n font-size: 16px;\n }\n\n .minimize-btn {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n border: none;\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .minimize-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .panel-content {\n overflow-y: auto;\n max-height: 420px;\n }\n\n .task-item {\n padding: 12px 16px;\n border-bottom: 1px solid #f3f4f6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .task-item:hover {\n background: #f9fafb;\n }\n\n .task-item:last-child {\n border-bottom: none;\n }\n\n .task-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .task-header i {\n color: #667eea;\n font-size: 14px;\n }\n\n .task-agent {\n font-weight: 600;\n font-size: 13px;\n color: #111827;\n }\n\n .task-conversation {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n margin-bottom: 6px;\n }\n\n .task-conversation i {\n font-size: 11px;\n }\n\n .task-status {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.active {\n background: #10b981;\n animation: blink 2s ease-in-out infinite;\n }\n\n @keyframes blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n .status-text {\n font-size: 12px;\n color: #4b5563;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .task-elapsed {\n font-size: 11px;\n color: #9ca3af;\n font-variant-numeric: tabular-nums;\n }\n\n /* Scrollbar Styling */\n .panel-content::-webkit-scrollbar {\n width: 6px;\n }\n\n .panel-content::-webkit-scrollbar-track {\n background: #f9fafb;\n }\n\n .panel-content::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n }\n\n .panel-content::-webkit-scrollbar-thumb:hover {\n background: #9ca3af;\n }\n `]\n})\nexport class GlobalTasksPanelComponent implements OnInit, OnDestroy {\n public tasks: ActiveTask[] = [];\n public isMinimized: boolean = false;\n\n private destroy$ = new Subject<void>();\n\n @Output() taskClicked = new EventEmitter<ActiveTask>();\n\n constructor(private activeTasksService: ActiveTasksService) {}\n\n ngOnInit() {\n // Subscribe to active tasks\n this.activeTasksService.tasks$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(tasks => {\n this.tasks = tasks;\n\n // Auto-expand if tasks appear and panel was minimized\n if (this.tasks.length > 0 && this.isMinimized) {\n // Keep minimized, let user expand manually\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n expand() {\n this.isMinimized = false;\n }\n\n minimize() {\n this.isMinimized = true;\n }\n\n onTaskClick(task: ActiveTask) {\n this.taskClicked.emit(task);\n }\n\n getTrimmedStatus(status: string): string {\n // Remove emojis and trim to 50 chars\n const cleaned = status.replace(/[\\u{1F600}-\\u{1F64F}]/gu, '').trim();\n return cleaned.length > 50 ? cleaned.substring(0, 47) + '...' : cleaned;\n }\n\n getElapsedTime(task: ActiveTask): string {\n const elapsed = Date.now() - task.startTime;\n const seconds = Math.floor(elapsed / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n\n if (hours > 0) {\n return `${hours}h ${minutes % 60}m`;\n } else if (minutes > 0) {\n return `${minutes}m ${seconds % 60}s`;\n } else {\n return `${seconds}s`;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library-full-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/library/library-full-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAU,MAAM,eAAe,CAAC;AACzD,OAAO,EAAY,OAAO,EAAE,MAAM,sBAAsB,CAAC;;;;;;IAqBzC,wBAAyD;IACzD,4BAE8B;IAA5B,yNAAS,2BAAiB,KAAC;IAC3B,YACF;IAAA,iBAAI;;;;;IAHF,cAAqB;IAArB,6DAAqB;IAErB,cACF;IADE,8CACF;;;IAPJ,+BAA8B;IAC5B,6HAOC;IACH,iBAAO;;;IARL,cAOC;IAPD,iCAOC;;;IAoBL,+BAA2B;IACzB,iCAAoE;IACtE,iBAAM;;;IAGN,+BAAyB;IACvB,wBAAkC;IAClC,yBAAG;IAAA,YAAiE;IACtE,AADsE,iBAAI,EACpE;;;IADD,eAAiE;IAAjE,wFAAiE;;;IAe5D,+BAAyB;IACvB,YACF;IAAA,iBAAM;;;IADJ,cACF;IADE,0DACF;;;;IAXN,+BAEuC;IAArC,iOAAS,oCAA0B,KAAC;IACpC,+BAAyB;IACvB,wBAA6B;IAC/B,iBAAM;IAEJ,AADF,+BAAyB,cACE;IAAA,YAAqB;IAAA,iBAAM;IACpD,gHAA8B;IAMlC,AADE,iBAAM,EACF;;;IAPuB,eAAqB;IAArB,wCAAqB;IAC9C,cAIC;IAJD,oDAIC;;;IAdT,+BAA6B;IAC3B,6HAgBC;IACH,iBAAM;;;IAjBJ,cAgBC;IAhBD,yCAgBC;;AAxEb;;;GAGG;AAuRH,MAAM,OAAO,wBAAwB;IAC1B,aAAa,CAAU;IACvB,WAAW,CAAY;IAEzB,WAAW,GAAyB,EAAE,CAAC;IACvC,mBAAmB,GAAyB,EAAE,CAAC;IAC/C,WAAW,GAAW,EAAE,CAAC;IACzB,SAAS,GAAY,KAAK,CAAC;IAC3B,WAAW,GAAwC,EAAE,CAAC;IACtD,mBAAmB,GAAkB,IAAI,CAAC;IAEjD,gBAAe,CAAC;IAEhB,QAAQ;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,kBAAkB,IAAI,CAAC,aAAa,GAAG;gBACvC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAEpH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAC7B;gBACE,UAAU,EAAE,iBAAiB;gBAC7B,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,eAAe;aAC5B,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACrD,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,cAAc,CAAC,UAA8B;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,KAAmC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;kHAxFU,wBAAwB;6DAAxB,wBAAwB;YA/Q3B,AADF,AADF,AADF,8BAA8B,aACI,aACM,aACL;YAC3B,uBAA2B;YAC3B,4BAAsD;YAA3B,gGAAS,oBAAgB,IAAC;YAAC,2BAAW;YACnE,AADmE,iBAAI,EACjE;YACN,2FAA8B;YAYhC,iBAAM;YACN,8BAAgC;YAC9B,uBAA6B;YAC7B,iCAI+B;YAH7B,yNAAyB;YACzB,2HAAiB,0BAAsB,IAAC;YAG5C,AALE,iBAI+B,EAC3B;YAEJ,AADF,gCAAiC,kBACmC;YAApC,sGAAS,aAAS,IAAC;YAC/C,yBAA2B;YAGjC,AADE,AADE,iBAAS,EACL,EACF;YACN,gCAAiC;YAC/B,6FAAiB;YAKjB,6FAAsD;YAMtD,6FAAoD;YAsBxD,AADE,iBAAM,EACF;;YA7DA,eAWC;YAXD,qDAWC;YAKC,eAAyB;YAAzB,+CAAyB;YAY7B,eAIC;YAJD,yCAIC;YACD,cAKC;YALD,kFAKC;YACD,cAoBC;YApBD,gFAoBC;;;iFAgNI,wBAAwB;cAtRpC,SAAS;6BACI,KAAK,YACP,sBAAsB,YACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsEP;;kBA8MF,KAAK;;kBACL,KAAK;;kFAFK,wBAAwB"}
|
|
1
|
+
{"version":3,"file":"library-full-view.component.js","sourceRoot":"","sources":["../../../../src/lib/components/library/library-full-view.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { UserInfo, RunView } from '@memberjunction/core';\nimport { MJCollectionEntity } from '@memberjunction/core-entities';\n\n/**\n * Full-panel Collections view component\n * Replaces the main content area when Collections tab is selected\n */\n@Component({\n standalone: false,\n selector: 'mj-library-full-view',\n template: `\n <div class=\"collections-view\">\n <div class=\"collections-header\">\n <div class=\"collections-breadcrumb\">\n <div class=\"breadcrumb-item\">\n <i class=\"fas fa-home\"></i>\n <a class=\"breadcrumb-link\" (click)=\"navigateToRoot()\">Collections</a>\n </div>\n @if (breadcrumbs.length > 0) {\n <span class=\"breadcrumb-path\">\n @for (crumb of breadcrumbs; track crumb; let last = $last) {\n <i class=\"fas fa-chevron-right breadcrumb-separator\"></i>\n <a class=\"breadcrumb-link\"\n [class.active]=\"last\"\n (click)=\"navigateTo(crumb)\">\n {{ crumb.name }}\n </a>\n }\n </span>\n }\n </div>\n <div class=\"collections-search\">\n <i class=\"fas fa-search\"></i>\n <input type=\"text\"\n [(ngModel)]=\"searchQuery\"\n (ngModelChange)=\"onSearchChange($event)\"\n placeholder=\"Search collections and artifacts...\"\n class=\"library-search-input\">\n </div>\n <div class=\"collections-actions\">\n <button class=\"btn-secondary\" (click)=\"refresh()\" title=\"Refresh\">\n <i class=\"fas fa-sync\"></i>\n </button>\n </div>\n </div>\n <div class=\"collections-content\">\n @if (isLoading) {\n <div class=\"loading-state\">\n <mj-loading text=\"Loading collections...\" size=\"large\"></mj-loading>\n </div>\n }\n @if (!isLoading && filteredCollections.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fas fa-folder-open\"></i>\n <p>{{ searchQuery ? 'No collections found' : 'No collections yet' }}</p>\n </div>\n }\n @if (!isLoading && filteredCollections.length > 0) {\n <div class=\"library-folders\">\n @for (collection of filteredCollections; track collection) {\n <div\n class=\"library-folder\"\n (click)=\"openCollection(collection)\">\n <div class=\"folder-icon\">\n <i class=\"fas fa-folder\"></i>\n </div>\n <div class=\"folder-info\">\n <div class=\"folder-name\">{{ collection.Name }}</div>\n @if (collection.Description) {\n <div class=\"folder-meta\">\n {{ collection.Description }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </div>\n `,\n styles: [`\n .collections-view {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: white;\n }\n\n .collections-header {\n display: flex;\n align-items: center;\n padding: 16px 24px;\n border-bottom: 1px solid #E5E7EB;\n gap: 16px;\n }\n\n .collections-breadcrumb {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .breadcrumb-item {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .breadcrumb-item i {\n color: #6B7280;\n font-size: 14px;\n }\n\n .breadcrumb-link {\n color: #111827;\n font-weight: 500;\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n transition: color 150ms ease;\n }\n\n .breadcrumb-link:hover {\n color: #1e40af;\n }\n\n .breadcrumb-link.active {\n color: #6B7280;\n cursor: default;\n }\n\n .breadcrumb-path {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow-x: auto;\n }\n\n .breadcrumb-separator {\n color: #D1D5DB;\n font-size: 10px;\n }\n\n .collections-search {\n display: flex;\n align-items: center;\n gap: 8px;\n background: #F9FAFB;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n padding: 8px 12px;\n min-width: 300px;\n }\n\n .collections-search i {\n color: #9CA3AF;\n font-size: 14px;\n }\n\n .library-search-input {\n border: none;\n background: transparent;\n outline: none;\n font-size: 14px;\n flex: 1;\n color: #111827;\n }\n\n .library-search-input::placeholder {\n color: #9CA3AF;\n }\n\n .collections-actions {\n display: flex;\n gap: 8px;\n }\n\n .btn-secondary {\n padding: 8px 12px;\n background: transparent;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n cursor: pointer;\n color: #6B7280;\n transition: all 150ms ease;\n }\n\n .btn-secondary:hover {\n background: #F9FAFB;\n color: #111827;\n }\n\n .collections-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .loading-state, .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #9CA3AF;\n }\n\n .empty-state i {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.5;\n }\n\n .empty-state p {\n margin: 0;\n font-size: 14px;\n }\n\n .library-folders {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 16px;\n }\n\n .library-folder {\n display: flex;\n align-items: start;\n gap: 16px;\n padding: 20px;\n background: white;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n cursor: pointer;\n transition: all 150ms ease;\n }\n\n .library-folder:hover {\n border-color: #1e40af;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n }\n\n .folder-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #EFF6FF;\n border-radius: 8px;\n flex-shrink: 0;\n }\n\n .folder-icon i {\n font-size: 20px;\n color: #1e40af;\n }\n\n .folder-info {\n flex: 1;\n min-width: 0;\n }\n\n .folder-name {\n font-size: 15px;\n font-weight: 500;\n color: #111827;\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .folder-meta {\n font-size: 13px;\n color: #6B7280;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n `]\n})\nexport class LibraryFullViewComponent implements OnInit {\n @Input() environmentId!: string;\n @Input() currentUser!: UserInfo;\n\n public collections: MJCollectionEntity[] = [];\n public filteredCollections: MJCollectionEntity[] = [];\n public searchQuery: string = '';\n public isLoading: boolean = false;\n public breadcrumbs: Array<{ id: string; name: string }> = [];\n public currentCollectionId: string | null = null;\n\n constructor() {}\n\n ngOnInit() {\n this.loadCollections();\n }\n\n async loadCollections(): Promise<void> {\n this.isLoading = true;\n try {\n const rv = new RunView();\n const filter = `EnvironmentID='${this.environmentId}'` +\n (this.currentCollectionId ? ` AND ParentID='${this.currentCollectionId}'` : ' AND ParentID IS NULL');\n\n const result = await rv.RunView<MJCollectionEntity>(\n {\n EntityName: 'MJ: Collections',\n ExtraFilter: filter,\n OrderBy: 'Name ASC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (result.Success) {\n this.collections = result.Results || [];\n this.applySearch();\n }\n } catch (error) {\n console.error('Failed to load collections:', error);\n } finally {\n this.isLoading = false;\n }\n }\n\n onSearchChange(query: string): void {\n this.applySearch();\n }\n\n private applySearch(): void {\n if (!this.searchQuery.trim()) {\n this.filteredCollections = [...this.collections];\n } else {\n const query = this.searchQuery.toLowerCase();\n this.filteredCollections = this.collections.filter(c =>\n c.Name.toLowerCase().includes(query) ||\n (c.Description && c.Description.toLowerCase().includes(query))\n );\n }\n }\n\n openCollection(collection: MJCollectionEntity): void {\n this.breadcrumbs.push({ id: collection.ID, name: collection.Name });\n this.currentCollectionId = collection.ID;\n this.searchQuery = '';\n this.loadCollections();\n }\n\n navigateTo(crumb: { id: string; name: string }): void {\n const index = this.breadcrumbs.findIndex(b => b.id === crumb.id);\n if (index !== -1) {\n this.breadcrumbs = this.breadcrumbs.slice(0, index + 1);\n this.currentCollectionId = crumb.id;\n this.searchQuery = '';\n this.loadCollections();\n }\n }\n\n navigateToRoot(): void {\n this.breadcrumbs = [];\n this.currentCollectionId = null;\n this.searchQuery = '';\n this.loadCollections();\n }\n\n refresh(): void {\n this.loadCollections();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"members-modal.component.js","sourceRoot":"","sources":["../../../../src/lib/components/members/members-modal.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MJConversationEntity } from '@memberjunction/core-entities';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { DialogService } from '../../services/dialog.service';\n\ninterface ConversationMember {\n id: string;\n userId: string;\n userName: string;\n userEmail: string;\n role: 'owner' | 'member';\n addedAt: Date;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-members-modal',\n template: `\n @if (isVisible) {\n <kendo-dialog\n [title]=\"modalTitle\"\n [width]=\"600\"\n [height]=\"500\"\n (close)=\"onCancel()\">\n <div class=\"members-modal-content\">\n <div class=\"add-member-section\">\n <h4>Add Member</h4>\n <div class=\"add-member-form\">\n <kendo-textbox\n [(value)]=\"newMemberEmail\"\n placeholder=\"Enter email address\"\n [style.flex]=\"1\">\n </kendo-textbox>\n <kendo-dropdownlist\n [(ngModel)]=\"newMemberRole\"\n [data]=\"roleOptions\"\n [textField]=\"'label'\"\n [valueField]=\"'value'\"\n [style.width.px]=\"120\">\n </kendo-dropdownlist>\n <button kendoButton [primary]=\"true\" [disabled]=\"isLoading\" (click)=\"onAddMember()\">\n Add\n </button>\n </div>\n </div>\n <div class=\"members-section\">\n <h4>Current Members ({{ members.length }})</h4>\n @if (!isLoading) {\n <div class=\"members-list\">\n @if (members.length === 0) {\n <div class=\"empty-state\">\n <p>No additional members yet</p>\n </div>\n }\n @for (member of members; track member) {\n <div class=\"member-item\">\n <div class=\"member-info\">\n <i class=\"fas fa-user-circle\"></i>\n <div class=\"member-details\">\n <div class=\"member-name\">{{ member.userName }}</div>\n <div class=\"member-email\">{{ member.userEmail }}</div>\n </div>\n </div>\n <div class=\"member-controls\">\n <span class=\"member-role\" [class.owner]=\"member.role === 'owner'\">\n {{ member.role === 'owner' ? 'Owner' : 'Member' }}\n </span>\n @if (member.role !== 'owner') {\n <button\n class=\"btn-remove\"\n (click)=\"onRemoveMember(member)\"\n title=\"Remove member\">\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n </div>\n }\n </div>\n }\n @if (isLoading) {\n <div class=\"loading-indicator\">\n <mj-loading text=\"Loading members...\" size=\"medium\"></mj-loading>\n </div>\n }\n </div>\n @if (errorMessage) {\n <div class=\"error-message\">\n {{ errorMessage }}\n </div>\n }\n </div>\n <kendo-dialog-actions>\n <button kendoButton (click)=\"onCancel()\">Close</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n `,\n styles: [`\n .members-modal-content {\n padding: 20px;\n }\n\n h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n }\n\n .add-member-section {\n margin-bottom: 24px;\n }\n\n .add-member-form {\n display: flex;\n gap: 8px;\n }\n\n .members-list {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n max-height: 300px;\n overflow-y: auto;\n }\n\n .member-item {\n padding: 12px;\n border-bottom: 1px solid #e8e8e8;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .member-item:last-child {\n border-bottom: none;\n }\n\n .member-info {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n\n .member-info i {\n font-size: 32px;\n color: #999;\n }\n\n .member-details {\n display: flex;\n flex-direction: column;\n }\n\n .member-name {\n font-size: 14px;\n font-weight: 500;\n }\n\n .member-email {\n font-size: 12px;\n color: #666;\n }\n\n .member-controls {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .member-role {\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n background: #e3f2fd;\n color: #1976d2;\n }\n\n .member-role.owner {\n background: #fff3e0;\n color: #f57c00;\n }\n\n .btn-remove {\n padding: 6px 8px;\n background: transparent;\n border: none;\n cursor: pointer;\n border-radius: 3px;\n color: #999;\n }\n\n .btn-remove:hover {\n background: #ffebee;\n color: #d32f2f;\n }\n\n .empty-state {\n padding: 24px;\n text-align: center;\n color: #999;\n }\n\n .empty-state p {\n margin: 0;\n font-size: 13px;\n }\n\n .loading-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 24px;\n color: #666;\n }\n\n .error-message {\n display: block;\n color: #d32f2f;\n font-size: 13px;\n margin-top: 12px;\n padding: 8px 12px;\n background: #ffebee;\n border-radius: 4px;\n }\n\n kendo-dialog-actions {\n display: flex;\n justify-content: flex-end;\n padding: 15px 20px;\n border-top: 1px solid #e0e0e0;\n }\n `]\n})\nexport class MembersModalComponent {\n @Input() isVisible = false;\n @Input() conversation?: MJConversationEntity;\n @Input() currentUser!: UserInfo;\n @Output() cancelled = new EventEmitter<void>();\n @Output() membersChanged = new EventEmitter<void>();\n\n members: ConversationMember[] = [];\n newMemberEmail = '';\n newMemberRole: 'member' | 'owner' = 'member';\n isLoading = false;\n errorMessage = '';\n\n get modalTitle(): string {\n return `Manage Members: ${this.conversation?.Name || 'Conversation'}`;\n }\n\n roleOptions = [\n { value: 'member', label: 'Member' },\n { value: 'owner', label: 'Owner' }\n ];\n\n constructor(private dialogService: DialogService) {}\n\n ngOnChanges(): void {\n if (this.isVisible && this.conversation) {\n this.loadMembers();\n }\n }\n\n private async loadMembers(): Promise<void> {\n if (!this.conversation) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Load from ConversationMembers entity when available\n // For now, show the owner\n this.members = [\n {\n id: 'owner-' + this.conversation.ID,\n userId: this.conversation.UserID || '',\n userName: 'Owner',\n userEmail: this.currentUser.Email,\n role: 'owner',\n addedAt: this.conversation.__mj_CreatedAt\n }\n ];\n } catch (error) {\n console.error('Error loading members:', error);\n this.errorMessage = 'Failed to load members';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onAddMember(): Promise<void> {\n const email = this.newMemberEmail.trim();\n if (!email) return;\n\n // Simple email validation\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n await this.dialogService.alert('Invalid Email', 'Please enter a valid email address');\n return;\n }\n\n // Check if already a member\n if (this.members.some(m => m.userEmail === email)) {\n await this.dialogService.alert('Already a Member', 'This user is already a member');\n return;\n }\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Create ConversationMember entity when available\n const newMember: ConversationMember = {\n id: 'temp-' + Date.now(),\n userId: 'unknown',\n userName: email.split('@')[0],\n userEmail: email,\n role: this.newMemberRole,\n addedAt: new Date()\n };\n\n this.members.push(newMember);\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error adding member:', error);\n this.errorMessage = 'Failed to add member';\n } finally {\n this.isLoading = false;\n }\n }\n\n async onRemoveMember(member: ConversationMember): Promise<void> {\n const confirmed = await this.dialogService.confirm({\n title: 'Remove Member',\n message: `Remove ${member.userEmail} from this conversation?`,\n okText: 'Remove',\n cancelText: 'Cancel'\n });\n\n if (!confirmed) return;\n\n this.isLoading = true;\n this.errorMessage = '';\n\n try {\n // TODO: Delete ConversationMember entity when available\n this.members = this.members.filter(m => m.id !== member.id);\n this.membersChanged.emit();\n } catch (error) {\n console.error('Error removing member:', error);\n this.errorMessage = 'Failed to remove member';\n } finally {\n this.isLoading = false;\n }\n }\n\n onCancel(): void {\n this.cancelled.emit();\n this.resetForm();\n }\n\n private resetForm(): void {\n this.newMemberEmail = '';\n this.newMemberRole = 'member';\n this.errorMessage = '';\n this.isVisible = false;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention-dropdown.component.js","sourceRoot":"","sources":["../../../../src/lib/components/mention/mention-dropdown.component.ts","../../../../src/lib/components/mention/mention-dropdown.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,EACL,MAAM,EACN,YAAY,EAGZ,YAAY,EACb,MAAM,eAAe,CAAC;;;;ICaP,yBAII;;;IAFF,AADA,8DAA2B,kCACG;;;IAMhC,uBAEK;;;;IADH,mEAA2C;;;IAK7C,uBAEK;;;IAMH,gCAAoC;IAAA,qBAAK;IAAA,iBAAO;;;IAGhD,gCAAyC;IAAA,oBAAI;IAAA,iBAAO;;;IAKtD,+BAAoC;IAClC,YACF;IAAA,iBAAM;;;IADJ,cACF;IADE,0DACF;;;;IAzCN,8BAKG;IADD,AADA,sOAAa,sCAA4B,wBAAE,uBAAuB,KAAC,+QACnC;IAEhC,8BAA6B;IAE3B,4HAA0D;IAQ1D,0HAA8E;IAM9E,0HAAkC;IAKpC,iBAAM;IAEJ,AADF,+BAAgC,cACD;IAC3B,8HAAmC;IAGnC,8HAAkC;IAGlC,YACF;IAAA,iBAAM;IACN,+HAA8B;IAMlC,AADE,iBAAM,EACF;;;;;IA1CJ,iEAAsC;IAMpC,eAMC;IAND,mFAMC;IAED,cAIC;IAJD,0GAIC;IAED,cAIC;IAJD,wDAIC;IAIC,eAEC;IAFD,yDAEC;IACD,cAEC;IAFD,wDAEC;IACD,cACF;IADE,0DACF;IACA,cAIC;IAJD,qDAIC;;;IA5CT,8BAAiC;IAC/B,8JA8CC;IACH,iBAAM;;;IA/CJ,cA8CC;IA9CD,iCA8CC;;;IAKH,8BAAiC;IAC/B,wBAAiC;IACjC,yBAAG;IAAA,4CAA4B;IACjC,AADiC,iBAAI,EAC/B;;;IAhEV,8BAMG;IAED,wGAA8B;IAoD9B,wGAAgC;IAMlC,iBAAM;;;IA7DJ,AADA,gDAA6B,oCACE;IAF/B,AADA,8CAA8B,8CACc;IAK5C,cAkDC;IAlDD,wDAkDC;IAED,cAKC;IALD,0DAKC;;ADvDL;;GAEG;AAUH,MAAM,OAAO,wBAAwB;IAC1B,WAAW,GAAwB,EAAE,CAAC;IACtC,QAAQ,GAAkC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC9D,OAAO,GAAY,KAAK,CAAC;IACzB,SAAS,GAAY,KAAK,CAAC,CAAC,yCAAyC;IACrE,mBAAmB,GAAY,KAAK,CAAC,CAAC,oDAAoD;IAEzF,kBAAkB,GAAG,IAAI,YAAY,EAAqB,CAAC;IAC3D,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAErC,aAAa,GAAW,CAAC,CAAC;IAEjC,gBAAe,CAAC;IAEhB,QAAQ,KAAU,CAAC;IAEnB,WAAW,KAAU,CAAC;IAEtB;;OAEG;IAEH,aAAa,CAAC,KAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE3D,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC;YAClB,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACnF,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,KAAK;gBACR,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,UAA6B;QAC5C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;YACxE,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,KAAa,EAAE,IAAuB;QACtD,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,mBAAmB,CAAC,CAAC,mBAAmB;QACjD,CAAC;QAED,4EAA4E;QAC5E,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,0DAA0D;YAC1D,IAAI,SAAS,CAAC,KAAK,CAAC,8CAA8C,CAAC,EAAE,CAAC;gBACpE,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,gCAAgC;YAChC,OAAO,YAAY,SAAS,EAAE,CAAC;QACjC,CAAC;QAED,6DAA6D;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;kHAzGU,wBAAwB;6DAAxB,wBAAwB;YAAxB,uGAAA,yBAAqB,0BAAG;;YCvBrC,2FAAe;;YAAf,sCAoEC;;;iFD7CY,wBAAwB;cATpC,SAAS;6BACI,KAAK,YACP,qBAAqB;;kBAQ9B,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBACL,KAAK;;kBAEL,MAAM;;kBACN,MAAM;;kBAaN,YAAY;mBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;kFArBjC,wBAAwB"}
|
|
1
|
+
{"version":3,"file":"mention-dropdown.component.js","sourceRoot":"","sources":["../../../../src/lib/components/mention/mention-dropdown.component.ts","../../../../src/lib/components/mention/mention-dropdown.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnDestroy,\n HostListener\n} from '@angular/core';\nimport { MentionSuggestion } from '../../services/mention-autocomplete.service';\n\n/**\n * Dropdown component for @mention autocomplete\n */\n@Component({\n standalone: false,\n selector: 'mj-mention-dropdown',\n templateUrl: './mention-dropdown.component.html',\n styleUrls: [\n './mention-dropdown.component.css',\n '../../styles/custom-agent-icons.css'\n ]\n})\nexport class MentionDropdownComponent implements OnInit, OnDestroy {\n @Input() suggestions: MentionSuggestion[] = [];\n @Input() position: { top: number; left: number } = { top: 0, left: 0 };\n @Input() visible: boolean = false;\n @Input() showAbove: boolean = false; // Controls whether dropdown grows upward\n @Input() useFixedPositioning: boolean = false; // Use fixed positioning to escape parent containers\n\n @Output() suggestionSelected = new EventEmitter<MentionSuggestion>();\n @Output() closed = new EventEmitter<void>();\n\n public selectedIndex: number = 0;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {}\n\n /**\n * Handle keyboard navigation\n */\n @HostListener('document:keydown', ['$event'])\n handleKeyDown(event: KeyboardEvent): void {\n if (!this.visible || this.suggestions.length === 0) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.selectedIndex = Math.min(this.selectedIndex + 1, this.suggestions.length - 1);\n this.scrollToSelected();\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.selectedIndex = Math.max(this.selectedIndex - 1, 0);\n this.scrollToSelected();\n break;\n case 'Enter':\n case 'Tab':\n event.preventDefault();\n if (this.suggestions[this.selectedIndex]) {\n this.selectSuggestion(this.suggestions[this.selectedIndex]);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n }\n }\n\n /**\n * Select a suggestion\n */\n selectSuggestion(suggestion: MentionSuggestion): void {\n this.suggestionSelected.emit(suggestion);\n }\n\n /**\n * Close the dropdown\n */\n close(): void {\n this.closed.emit();\n }\n\n /**\n * Scroll to selected item\n */\n private scrollToSelected(): void {\n setTimeout(() => {\n const selected = document.querySelector('.mention-suggestion.selected');\n if (selected) {\n selected.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n }, 0);\n }\n\n /**\n * Track by function for ngFor\n */\n trackBySuggestion(index: number, item: MentionSuggestion): string {\n return item.id;\n }\n\n /**\n * Get icon classes - supports both Font Awesome and custom CSS classes\n * Font Awesome icons start with 'fa-' (e.g., 'fa-solid fa-robot')\n * Custom icons use their own prefix (e.g., 'mj-icon-skip', 'acme-icon-custom')\n */\n getIconClasses(iconClass: string): string | string[] {\n if (!iconClass) {\n return 'fa-solid fa-robot'; // Default fallback\n }\n\n // If it's a Font Awesome icon (contains 'fa-'), add fa-solid if not present\n if (iconClass.includes('fa-')) {\n // If it already has fa-solid, fa-regular, etc., use as-is\n if (iconClass.match(/\\b(fa-solid|fa-regular|fa-light|fa-brands)\\b/)) {\n return iconClass;\n }\n // Otherwise add fa-solid prefix\n return `fa-solid ${iconClass}`;\n }\n\n // For custom icons (mj-icon-*, acme-icon-*, etc.), use as-is\n return iconClass;\n }\n}\n","@if (visible) {\n <div\n class=\"mention-dropdown\"\n [class.show-above]=\"showAbove\"\n [class.fixed-position]=\"useFixedPositioning\"\n [style.top.px]=\"position.top\"\n [style.left.px]=\"position.left\"\n >\n <!-- Suggestions List -->\n @if (suggestions.length > 0) {\n <div class=\"mention-suggestions\">\n @for (suggestion of suggestions; track trackBySuggestion(i, suggestion); let i = $index) {\n <div\n class=\"mention-suggestion\"\n [class.selected]=\"i === selectedIndex\"\n (mousedown)=\"selectSuggestion(suggestion); $event.preventDefault()\"\n (mouseenter)=\"selectedIndex = i\"\n >\n <div class=\"suggestion-icon\">\n <!-- Agent with LogoURL image (takes precedence) -->\n @if (suggestion.type === 'agent' && suggestion.imageUrl) {\n <img\n [src]=\"suggestion.imageUrl\"\n [alt]=\"suggestion.displayName\"\n class=\"suggestion-image\"\n />\n }\n <!-- Agent with icon class (fallback) -->\n @if (suggestion.type === 'agent' && !suggestion.imageUrl && suggestion.icon) {\n <i\n [ngClass]=\"getIconClasses(suggestion.icon)\"\n ></i>\n }\n <!-- User icon -->\n @if (suggestion.type === 'user') {\n <i\n class=\"fa-solid fa-user\"\n ></i>\n }\n </div>\n <div class=\"suggestion-content\">\n <div class=\"suggestion-name\">\n @if (suggestion.type === 'agent') {\n <span class=\"suggestion-type-badge\">Agent</span>\n }\n @if (suggestion.type === 'user') {\n <span class=\"suggestion-type-badge user\">User</span>\n }\n {{ suggestion.displayName }}\n </div>\n @if (suggestion.description) {\n <div class=\"suggestion-description\">\n {{ suggestion.description }}\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n <!-- Empty State -->\n @if (suggestions.length === 0) {\n <div class=\"mention-empty-state\">\n <i class=\"fa-solid fa-robot\"></i>\n <p>No agents or users available</p>\n </div>\n }\n </div>\n}\n"]}
|