@memberjunction/ng-conversations 2.112.0 → 2.113.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
- package/dist/lib/components/agent/active-agent-indicator.component.js +13 -15
- package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.d.ts +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
- package/dist/lib/components/agent/agent-process-panel.component.js +14 -18
- package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/artifact/artifact-share-modal.component.js +11 -11
- package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +30 -24
- package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/artifact-create-modal.component.js +10 -8
- package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts +9 -8
- package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-artifact-card.component.js +51 -35
- package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-form-modal.component.js +6 -5
- package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-share-modal.component.js +12 -12
- package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts +1 -1
- package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-tree.component.js +11 -11
- package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
- package/dist/lib/components/collection/collection-view.component.d.ts +29 -10
- package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collection-view.component.js +128 -62
- package/dist/lib/components/collection/collection-view.component.js.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.d.ts +19 -7
- package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/collection/collections-full-view.component.js +99 -69
- package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +38 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-chat-area.component.js +303 -181
- package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-empty-state.component.js +21 -21
- package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.d.ts +11 -4
- package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
- package/dist/lib/components/conversation/conversation-list.component.js +122 -81
- package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
- package/dist/lib/components/export/export-modal.component.d.ts +1 -1
- package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
- package/dist/lib/components/export/export-modal.component.js +11 -9
- package/dist/lib/components/export/export-modal.component.js.map +1 -1
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts +25 -0
- package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -0
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js +206 -0
- package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -0
- package/dist/lib/components/library/library-full-view.component.d.ts +1 -1
- package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/library/library-full-view.component.js +6 -5
- package/dist/lib/components/library/library-full-view.component.js.map +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts +1 -1
- package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
- package/dist/lib/components/members/members-modal.component.js +8 -8
- package/dist/lib/components/members/members-modal.component.js.map +1 -1
- package/dist/lib/components/message/conversation-message-rating.component.d.ts +47 -0
- package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -0
- package/dist/lib/components/message/conversation-message-rating.component.js +224 -0
- package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -0
- package/dist/lib/components/message/message-input-box.component.d.ts +1 -1
- package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input-box.component.js +4 -14
- package/dist/lib/components/message/message-input-box.component.js.map +1 -1
- package/dist/lib/components/message/message-input.component.d.ts +18 -3
- package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-input.component.js +288 -297
- package/dist/lib/components/message/message-input.component.js.map +1 -1
- package/dist/lib/components/message/message-item.component.d.ts +32 -2
- package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-item.component.js +253 -129
- package/dist/lib/components/message/message-item.component.js.map +1 -1
- package/dist/lib/components/message/message-list.component.d.ts +4 -2
- package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
- package/dist/lib/components/message/message-list.component.js +35 -18
- package/dist/lib/components/message/message-list.component.js.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts +7 -1
- package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
- package/dist/lib/components/navigation/conversation-navigation.component.js +24 -14
- package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.d.ts +1 -1
- package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-form-modal.component.js +7 -7
- package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
- package/dist/lib/components/project/project-selector.component.d.ts +1 -1
- package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
- package/dist/lib/components/project/project-selector.component.js +10 -10
- package/dist/lib/components/project/project-selector.component.js.map +1 -1
- package/dist/lib/components/search/search-panel.component.d.ts +1 -1
- package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
- package/dist/lib/components/search/search-panel.component.js +16 -8
- package/dist/lib/components/search/search-panel.component.js.map +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts +1 -1
- package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
- package/dist/lib/components/share/share-modal.component.js +12 -12
- package/dist/lib/components/share/share-modal.component.js.map +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts +1 -1
- package/dist/lib/components/shared/user-picker.component.d.ts.map +1 -1
- package/dist/lib/components/shared/user-picker.component.js +7 -7
- package/dist/lib/components/shared/user-picker.component.js.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js +1 -1
- package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts +1 -1
- package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -1
- package/dist/lib/components/task/tasks-full-view.component.js +20 -18
- package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +18 -29
- package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
- package/dist/lib/components/tasks/tasks-dropdown.component.js +178 -218
- package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.d.ts +1 -1
- package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
- package/dist/lib/components/thread/thread-panel.component.js +2 -2
- package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts +15 -9
- package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
- package/dist/lib/components/workspace/conversation-workspace.component.js +126 -79
- package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
- package/dist/lib/conversations.module.d.ts +54 -52
- package/dist/lib/conversations.module.d.ts.map +1 -1
- package/dist/lib/conversations.module.js +11 -3
- package/dist/lib/conversations.module.js.map +1 -1
- package/dist/lib/models/conversation-complete-query.model.d.ts +31 -22
- package/dist/lib/models/conversation-complete-query.model.d.ts.map +1 -1
- package/dist/lib/models/conversation-complete-query.model.js +5 -2
- package/dist/lib/models/conversation-complete-query.model.js.map +1 -1
- package/dist/lib/models/lazy-artifact-info.d.ts +4 -1
- package/dist/lib/models/lazy-artifact-info.d.ts.map +1 -1
- package/dist/lib/models/lazy-artifact-info.js +12 -4
- package/dist/lib/models/lazy-artifact-info.js.map +1 -1
- package/dist/lib/services/active-tasks.service.d.ts +18 -0
- package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
- package/dist/lib/services/active-tasks.service.js +53 -3
- package/dist/lib/services/active-tasks.service.js.map +1 -1
- package/dist/lib/services/agent-state.service.d.ts +1 -1
- package/dist/lib/services/agent-state.service.d.ts.map +1 -1
- package/dist/lib/services/agent-state.service.js +11 -11
- package/dist/lib/services/agent-state.service.js.map +1 -1
- package/dist/lib/services/artifact-permission.service.d.ts +1 -1
- package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-permission.service.js +15 -13
- package/dist/lib/services/artifact-permission.service.js.map +1 -1
- package/dist/lib/services/artifact-state.service.d.ts +23 -6
- package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
- package/dist/lib/services/artifact-state.service.js +129 -38
- package/dist/lib/services/artifact-state.service.js.map +1 -1
- package/dist/lib/services/artifact-use-tracking.service.d.ts +35 -0
- package/dist/lib/services/artifact-use-tracking.service.d.ts.map +1 -0
- package/dist/lib/services/artifact-use-tracking.service.js +76 -0
- package/dist/lib/services/artifact-use-tracking.service.js.map +1 -0
- package/dist/lib/services/collection-permission.service.d.ts +1 -1
- package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
- package/dist/lib/services/collection-permission.service.js +13 -13
- package/dist/lib/services/collection-permission.service.js.map +1 -1
- package/dist/lib/services/conversation-agent.service.d.ts +30 -3
- package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-agent.service.js +127 -34
- package/dist/lib/services/conversation-agent.service.js.map +1 -1
- package/dist/lib/services/conversation-state.service.d.ts +14 -1
- package/dist/lib/services/conversation-state.service.d.ts.map +1 -1
- package/dist/lib/services/conversation-state.service.js +36 -9
- package/dist/lib/services/conversation-state.service.js.map +1 -1
- package/dist/lib/services/data-cache.service.d.ts +1 -1
- package/dist/lib/services/data-cache.service.d.ts.map +1 -1
- package/dist/lib/services/data-cache.service.js +13 -13
- package/dist/lib/services/data-cache.service.js.map +1 -1
- package/dist/lib/services/export.service.d.ts +1 -1
- package/dist/lib/services/export.service.d.ts.map +1 -1
- package/dist/lib/services/export.service.js +13 -15
- package/dist/lib/services/export.service.js.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts +1 -1
- package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
- package/dist/lib/services/mention-autocomplete.service.js +5 -5
- package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
- package/dist/lib/services/mention-parser.service.d.ts +1 -1
- package/dist/lib/services/mention-parser.service.d.ts.map +1 -1
- package/dist/lib/services/mention-parser.service.js +16 -13
- package/dist/lib/services/mention-parser.service.js.map +1 -1
- package/dist/lib/services/search.service.d.ts +1 -1
- package/dist/lib/services/search.service.d.ts.map +1 -1
- package/dist/lib/services/search.service.js +32 -26
- package/dist/lib/services/search.service.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +14 -13
|
@@ -1,32 +1,42 @@
|
|
|
1
1
|
import { Component, Input, HostListener } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
import * as i1 from "../../services/conversation-state.service";
|
|
4
6
|
import * as i2 from "../../services/dialog.service";
|
|
5
7
|
import * as i3 from "../../services/notification.service";
|
|
6
8
|
import * as i4 from "../../services/toast.service";
|
|
7
|
-
import * as i5 from "
|
|
8
|
-
import * as i6 from "
|
|
9
|
+
import * as i5 from "../../services/active-tasks.service";
|
|
10
|
+
import * as i6 from "@angular/common";
|
|
11
|
+
import * as i7 from "@angular/forms";
|
|
12
|
+
import * as i8 from "../notification/notification-badge.component";
|
|
9
13
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
10
|
-
function
|
|
14
|
+
function ConversationListComponent_Conditional_8_For_9_i_3_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelement(0, "i", 28);
|
|
16
|
+
} }
|
|
17
|
+
function ConversationListComponent_Conditional_8_For_9_i_4_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelement(0, "i", 29);
|
|
19
|
+
} }
|
|
20
|
+
function ConversationListComponent_Conditional_8_For_9_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
11
21
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
12
|
-
i0.ɵɵelementStart(0, "div",
|
|
13
|
-
i0.ɵɵlistener("click", function
|
|
14
|
-
i0.ɵɵelementStart(1, "button",
|
|
15
|
-
i0.ɵɵlistener("click", function
|
|
16
|
-
i0.ɵɵelement(2, "i",
|
|
22
|
+
i0.ɵɵelementStart(0, "div", 30);
|
|
23
|
+
i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r5); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
24
|
+
i0.ɵɵelementStart(1, "button", 31);
|
|
25
|
+
i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_15_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r5); const conversation_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.togglePin(conversation_r4, $event)); });
|
|
26
|
+
i0.ɵɵelement(2, "i", 32);
|
|
17
27
|
i0.ɵɵelementStart(3, "span");
|
|
18
28
|
i0.ɵɵtext(4, "Unpin");
|
|
19
29
|
i0.ɵɵelementEnd()();
|
|
20
|
-
i0.ɵɵelementStart(5, "button",
|
|
21
|
-
i0.ɵɵlistener("click", function
|
|
22
|
-
i0.ɵɵelement(6, "i",
|
|
30
|
+
i0.ɵɵelementStart(5, "button", 31);
|
|
31
|
+
i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_15_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r5); const conversation_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.renameConversation(conversation_r4); return i0.ɵɵresetView(ctx_r1.closeMenu()); });
|
|
32
|
+
i0.ɵɵelement(6, "i", 33);
|
|
23
33
|
i0.ɵɵelementStart(7, "span");
|
|
24
34
|
i0.ɵɵtext(8, "Rename");
|
|
25
35
|
i0.ɵɵelementEnd()();
|
|
26
|
-
i0.ɵɵelement(9, "div",
|
|
27
|
-
i0.ɵɵelementStart(10, "button",
|
|
28
|
-
i0.ɵɵlistener("click", function
|
|
29
|
-
i0.ɵɵelement(11, "i",
|
|
36
|
+
i0.ɵɵelement(9, "div", 34);
|
|
37
|
+
i0.ɵɵelementStart(10, "button", 35);
|
|
38
|
+
i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_15_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r5); const conversation_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.deleteConversation(conversation_r4); return i0.ɵɵresetView(ctx_r1.closeMenu()); });
|
|
39
|
+
i0.ɵɵelement(11, "i", 36);
|
|
30
40
|
i0.ɵɵelementStart(12, "span");
|
|
31
41
|
i0.ɵɵtext(13, "Delete");
|
|
32
42
|
i0.ɵɵelementEnd()()();
|
|
@@ -36,28 +46,34 @@ function ConversationListComponent_Conditional_8_For_9_Template(rf, ctx) { if (r
|
|
|
36
46
|
i0.ɵɵelementStart(0, "div", 14);
|
|
37
47
|
i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Template_div_click_0_listener() { const conversation_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectConversation(conversation_r4)); });
|
|
38
48
|
i0.ɵɵelementStart(1, "div", 15)(2, "div", 16);
|
|
39
|
-
i0.ɵɵ
|
|
49
|
+
i0.ɵɵtemplate(3, ConversationListComponent_Conditional_8_For_9_i_3_Template, 1, 0, "i", 17)(4, ConversationListComponent_Conditional_8_For_9_i_4_Template, 1, 0, "i", 18);
|
|
40
50
|
i0.ɵɵelementEnd();
|
|
41
|
-
i0.ɵɵelementStart(
|
|
42
|
-
i0.ɵɵelement(
|
|
51
|
+
i0.ɵɵelementStart(5, "div", 19);
|
|
52
|
+
i0.ɵɵelement(6, "mj-notification-badge", 20);
|
|
43
53
|
i0.ɵɵelementEnd()();
|
|
44
|
-
i0.ɵɵelementStart(
|
|
45
|
-
i0.ɵɵtext(
|
|
54
|
+
i0.ɵɵelementStart(7, "div", 21)(8, "div", 22);
|
|
55
|
+
i0.ɵɵtext(9);
|
|
46
56
|
i0.ɵɵelementEnd();
|
|
47
|
-
i0.ɵɵelementStart(
|
|
48
|
-
i0.ɵɵtext(
|
|
57
|
+
i0.ɵɵelementStart(10, "div", 23);
|
|
58
|
+
i0.ɵɵtext(11);
|
|
49
59
|
i0.ɵɵelementEnd()();
|
|
50
|
-
i0.ɵɵelementStart(
|
|
51
|
-
i0.ɵɵlistener("click", function
|
|
52
|
-
i0.ɵɵelement(
|
|
60
|
+
i0.ɵɵelementStart(12, "div", 24)(13, "button", 25);
|
|
61
|
+
i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Template_button_click_13_listener($event) { const conversation_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleMenu(conversation_r4.ID, $event)); });
|
|
62
|
+
i0.ɵɵelement(14, "i", 26);
|
|
53
63
|
i0.ɵɵelementEnd();
|
|
54
|
-
i0.ɵɵtemplate(
|
|
64
|
+
i0.ɵɵtemplate(15, ConversationListComponent_Conditional_8_For_9_Conditional_15_Template, 14, 0, "div", 27);
|
|
55
65
|
i0.ɵɵelementEnd()();
|
|
56
66
|
} if (rf & 2) {
|
|
57
67
|
const conversation_r4 = ctx.$implicit;
|
|
58
68
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
59
69
|
i0.ɵɵclassProp("active", conversation_r4.ID === ctx_r1.conversationState.activeConversationId)("renamed", conversation_r4.ID === ctx_r1.renamedConversationId);
|
|
60
|
-
i0.ɵɵadvance(
|
|
70
|
+
i0.ɵɵadvance(2);
|
|
71
|
+
i0.ɵɵclassProp("has-tasks", ctx_r1.hasActiveTasks(conversation_r4.ID));
|
|
72
|
+
i0.ɵɵadvance();
|
|
73
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.hasActiveTasks(conversation_r4.ID));
|
|
74
|
+
i0.ɵɵadvance();
|
|
75
|
+
i0.ɵɵproperty("ngIf", ctx_r1.hasActiveTasks(conversation_r4.ID));
|
|
76
|
+
i0.ɵɵadvance(2);
|
|
61
77
|
i0.ɵɵproperty("conversationId", conversation_r4.ID);
|
|
62
78
|
i0.ɵɵadvance();
|
|
63
79
|
i0.ɵɵproperty("title", conversation_r4.Name + (conversation_r4.Description ? "\n" + conversation_r4.Description : ""));
|
|
@@ -66,7 +82,7 @@ function ConversationListComponent_Conditional_8_For_9_Template(rf, ctx) { if (r
|
|
|
66
82
|
i0.ɵɵadvance(2);
|
|
67
83
|
i0.ɵɵtextInterpolate(conversation_r4.Description);
|
|
68
84
|
i0.ɵɵadvance(4);
|
|
69
|
-
i0.ɵɵconditional(ctx_r1.openMenuConversationId === conversation_r4.ID ?
|
|
85
|
+
i0.ɵɵconditional(ctx_r1.openMenuConversationId === conversation_r4.ID ? 15 : -1);
|
|
70
86
|
} }
|
|
71
87
|
function ConversationListComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
72
88
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
@@ -78,7 +94,7 @@ function ConversationListComponent_Conditional_8_Template(rf, ctx) { if (rf & 1)
|
|
|
78
94
|
i0.ɵɵtext(6, "Pinned");
|
|
79
95
|
i0.ɵɵelementEnd()()();
|
|
80
96
|
i0.ɵɵelementStart(7, "div", 11);
|
|
81
|
-
i0.ɵɵrepeaterCreate(8, ConversationListComponent_Conditional_8_For_9_Template,
|
|
97
|
+
i0.ɵɵrepeaterCreate(8, ConversationListComponent_Conditional_8_For_9_Template, 16, 13, "div", 12, _forTrack0);
|
|
82
98
|
i0.ɵɵelementEnd()();
|
|
83
99
|
} if (rf & 2) {
|
|
84
100
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -89,26 +105,32 @@ function ConversationListComponent_Conditional_8_Template(rf, ctx) { if (rf & 1)
|
|
|
89
105
|
i0.ɵɵadvance();
|
|
90
106
|
i0.ɵɵrepeater(ctx_r1.pinnedConversations);
|
|
91
107
|
} }
|
|
92
|
-
function
|
|
108
|
+
function ConversationListComponent_For_17_i_3_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
i0.ɵɵelement(0, "i", 28);
|
|
110
|
+
} }
|
|
111
|
+
function ConversationListComponent_For_17_i_4_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
i0.ɵɵelement(0, "i", 29);
|
|
113
|
+
} }
|
|
114
|
+
function ConversationListComponent_For_17_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
93
115
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
94
|
-
i0.ɵɵelementStart(0, "div",
|
|
95
|
-
i0.ɵɵlistener("click", function
|
|
96
|
-
i0.ɵɵelementStart(1, "button",
|
|
97
|
-
i0.ɵɵlistener("click", function
|
|
98
|
-
i0.ɵɵelement(2, "i",
|
|
116
|
+
i0.ɵɵelementStart(0, "div", 30);
|
|
117
|
+
i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_15_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r8); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
118
|
+
i0.ɵɵelementStart(1, "button", 31);
|
|
119
|
+
i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_15_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r8); const conversation_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.togglePin(conversation_r7, $event)); });
|
|
120
|
+
i0.ɵɵelement(2, "i", 32);
|
|
99
121
|
i0.ɵɵelementStart(3, "span");
|
|
100
122
|
i0.ɵɵtext(4, "Pin");
|
|
101
123
|
i0.ɵɵelementEnd()();
|
|
102
|
-
i0.ɵɵelementStart(5, "button",
|
|
103
|
-
i0.ɵɵlistener("click", function
|
|
104
|
-
i0.ɵɵelement(6, "i",
|
|
124
|
+
i0.ɵɵelementStart(5, "button", 31);
|
|
125
|
+
i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_15_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r8); const conversation_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.renameConversation(conversation_r7); return i0.ɵɵresetView(ctx_r1.closeMenu()); });
|
|
126
|
+
i0.ɵɵelement(6, "i", 33);
|
|
105
127
|
i0.ɵɵelementStart(7, "span");
|
|
106
128
|
i0.ɵɵtext(8, "Rename");
|
|
107
129
|
i0.ɵɵelementEnd()();
|
|
108
|
-
i0.ɵɵelement(9, "div",
|
|
109
|
-
i0.ɵɵelementStart(10, "button",
|
|
110
|
-
i0.ɵɵlistener("click", function
|
|
111
|
-
i0.ɵɵelement(11, "i",
|
|
130
|
+
i0.ɵɵelement(9, "div", 34);
|
|
131
|
+
i0.ɵɵelementStart(10, "button", 35);
|
|
132
|
+
i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_15_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r8); const conversation_r7 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(); ctx_r1.deleteConversation(conversation_r7); return i0.ɵɵresetView(ctx_r1.closeMenu()); });
|
|
133
|
+
i0.ɵɵelement(11, "i", 36);
|
|
112
134
|
i0.ɵɵelementStart(12, "span");
|
|
113
135
|
i0.ɵɵtext(13, "Delete");
|
|
114
136
|
i0.ɵɵelementEnd()()();
|
|
@@ -118,28 +140,34 @@ function ConversationListComponent_For_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
118
140
|
i0.ɵɵelementStart(0, "div", 14);
|
|
119
141
|
i0.ɵɵlistener("click", function ConversationListComponent_For_17_Template_div_click_0_listener() { const conversation_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.selectConversation(conversation_r7)); });
|
|
120
142
|
i0.ɵɵelementStart(1, "div", 15)(2, "div", 16);
|
|
121
|
-
i0.ɵɵ
|
|
143
|
+
i0.ɵɵtemplate(3, ConversationListComponent_For_17_i_3_Template, 1, 0, "i", 17)(4, ConversationListComponent_For_17_i_4_Template, 1, 0, "i", 18);
|
|
122
144
|
i0.ɵɵelementEnd();
|
|
123
|
-
i0.ɵɵelementStart(
|
|
124
|
-
i0.ɵɵelement(
|
|
145
|
+
i0.ɵɵelementStart(5, "div", 19);
|
|
146
|
+
i0.ɵɵelement(6, "mj-notification-badge", 20);
|
|
125
147
|
i0.ɵɵelementEnd()();
|
|
126
|
-
i0.ɵɵelementStart(
|
|
127
|
-
i0.ɵɵtext(
|
|
148
|
+
i0.ɵɵelementStart(7, "div", 21)(8, "div", 22);
|
|
149
|
+
i0.ɵɵtext(9);
|
|
128
150
|
i0.ɵɵelementEnd();
|
|
129
|
-
i0.ɵɵelementStart(
|
|
130
|
-
i0.ɵɵtext(
|
|
151
|
+
i0.ɵɵelementStart(10, "div", 23);
|
|
152
|
+
i0.ɵɵtext(11);
|
|
131
153
|
i0.ɵɵelementEnd()();
|
|
132
|
-
i0.ɵɵelementStart(
|
|
133
|
-
i0.ɵɵlistener("click", function
|
|
134
|
-
i0.ɵɵelement(
|
|
154
|
+
i0.ɵɵelementStart(12, "div", 24)(13, "button", 25);
|
|
155
|
+
i0.ɵɵlistener("click", function ConversationListComponent_For_17_Template_button_click_13_listener($event) { const conversation_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleMenu(conversation_r7.ID, $event)); });
|
|
156
|
+
i0.ɵɵelement(14, "i", 26);
|
|
135
157
|
i0.ɵɵelementEnd();
|
|
136
|
-
i0.ɵɵtemplate(
|
|
158
|
+
i0.ɵɵtemplate(15, ConversationListComponent_For_17_Conditional_15_Template, 14, 0, "div", 27);
|
|
137
159
|
i0.ɵɵelementEnd()();
|
|
138
160
|
} if (rf & 2) {
|
|
139
161
|
const conversation_r7 = ctx.$implicit;
|
|
140
162
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
141
163
|
i0.ɵɵclassProp("active", conversation_r7.ID === ctx_r1.conversationState.activeConversationId)("renamed", conversation_r7.ID === ctx_r1.renamedConversationId);
|
|
142
|
-
i0.ɵɵadvance(
|
|
164
|
+
i0.ɵɵadvance(2);
|
|
165
|
+
i0.ɵɵclassProp("has-tasks", ctx_r1.hasActiveTasks(conversation_r7.ID));
|
|
166
|
+
i0.ɵɵadvance();
|
|
167
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.hasActiveTasks(conversation_r7.ID));
|
|
168
|
+
i0.ɵɵadvance();
|
|
169
|
+
i0.ɵɵproperty("ngIf", ctx_r1.hasActiveTasks(conversation_r7.ID));
|
|
170
|
+
i0.ɵɵadvance(2);
|
|
143
171
|
i0.ɵɵproperty("conversationId", conversation_r7.ID);
|
|
144
172
|
i0.ɵɵadvance();
|
|
145
173
|
i0.ɵɵproperty("title", conversation_r7.Name + (conversation_r7.Description ? "\n" + conversation_r7.Description : ""));
|
|
@@ -148,34 +176,49 @@ function ConversationListComponent_For_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
148
176
|
i0.ɵɵadvance(2);
|
|
149
177
|
i0.ɵɵtextInterpolate(conversation_r7.Description);
|
|
150
178
|
i0.ɵɵadvance(4);
|
|
151
|
-
i0.ɵɵconditional(ctx_r1.openMenuConversationId === conversation_r7.ID ?
|
|
179
|
+
i0.ɵɵconditional(ctx_r1.openMenuConversationId === conversation_r7.ID ? 15 : -1);
|
|
152
180
|
} }
|
|
153
181
|
export class ConversationListComponent {
|
|
154
182
|
conversationState;
|
|
155
183
|
dialogService;
|
|
156
184
|
notificationService;
|
|
157
185
|
toastService;
|
|
186
|
+
activeTasksService;
|
|
187
|
+
cdr;
|
|
158
188
|
environmentId;
|
|
159
189
|
currentUser;
|
|
160
190
|
renamedConversationId = null;
|
|
161
191
|
directMessagesExpanded = true;
|
|
162
192
|
pinnedExpanded = true;
|
|
163
193
|
openMenuConversationId = null;
|
|
164
|
-
|
|
194
|
+
conversationIdsWithTasks = new Set();
|
|
195
|
+
destroy$ = new Subject();
|
|
196
|
+
constructor(conversationState, dialogService, notificationService, toastService, activeTasksService, cdr) {
|
|
165
197
|
this.conversationState = conversationState;
|
|
166
198
|
this.dialogService = dialogService;
|
|
167
199
|
this.notificationService = notificationService;
|
|
168
200
|
this.toastService = toastService;
|
|
201
|
+
this.activeTasksService = activeTasksService;
|
|
202
|
+
this.cdr = cdr;
|
|
169
203
|
}
|
|
170
204
|
get pinnedConversations() {
|
|
171
|
-
return this.conversationState.filteredConversations.filter(
|
|
205
|
+
return this.conversationState.filteredConversations.filter(c => c.IsPinned);
|
|
172
206
|
}
|
|
173
207
|
get unpinnedConversations() {
|
|
174
|
-
return this.conversationState.filteredConversations.filter(
|
|
208
|
+
return this.conversationState.filteredConversations.filter(c => !c.IsPinned);
|
|
175
209
|
}
|
|
176
210
|
ngOnInit() {
|
|
177
211
|
// Load conversations on init
|
|
178
212
|
this.conversationState.loadConversations(this.environmentId, this.currentUser);
|
|
213
|
+
// Subscribe to conversation IDs with active tasks (hot set)
|
|
214
|
+
this.activeTasksService.conversationIdsWithTasks$.pipe(takeUntil(this.destroy$)).subscribe(conversationIds => {
|
|
215
|
+
this.conversationIdsWithTasks = conversationIds;
|
|
216
|
+
this.cdr.markForCheck(); // Trigger change detection for icon updates
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
ngOnDestroy() {
|
|
220
|
+
this.destroy$.next();
|
|
221
|
+
this.destroy$.complete();
|
|
179
222
|
}
|
|
180
223
|
onDocumentClick() {
|
|
181
224
|
// Close menu when clicking outside
|
|
@@ -195,16 +238,9 @@ export class ConversationListComponent {
|
|
|
195
238
|
this.notificationService.markConversationAsRead(conversation.ID);
|
|
196
239
|
}
|
|
197
240
|
async createNewConversation() {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const conversation = await this.conversationState.createConversation('New Chat', this.environmentId, this.currentUser);
|
|
202
|
-
this.conversationState.setActiveConversation(conversation.ID);
|
|
203
|
-
}
|
|
204
|
-
catch (error) {
|
|
205
|
-
console.error('Error creating conversation:', error);
|
|
206
|
-
this.toastService.error('Failed to create conversation. Please try again.');
|
|
207
|
-
}
|
|
241
|
+
// Don't create DB record yet - just show the welcome screen
|
|
242
|
+
// Conversation will be created when user sends first message
|
|
243
|
+
this.conversationState.startNewConversation();
|
|
208
244
|
}
|
|
209
245
|
async renameConversation(conversation) {
|
|
210
246
|
try {
|
|
@@ -220,7 +256,7 @@ export class ConversationListComponent {
|
|
|
220
256
|
secondInputPlaceholder: 'Optional description',
|
|
221
257
|
secondInputRequired: false,
|
|
222
258
|
okText: 'Save',
|
|
223
|
-
cancelText: 'Cancel'
|
|
259
|
+
cancelText: 'Cancel'
|
|
224
260
|
});
|
|
225
261
|
if (result) {
|
|
226
262
|
const newName = typeof result === 'string' ? result : result.value;
|
|
@@ -241,7 +277,7 @@ export class ConversationListComponent {
|
|
|
241
277
|
title: 'Delete Conversation',
|
|
242
278
|
message: `Are you sure you want to delete "${conversation.Name}"? This action cannot be undone.`,
|
|
243
279
|
okText: 'Delete',
|
|
244
|
-
cancelText: 'Cancel'
|
|
280
|
+
cancelText: 'Cancel'
|
|
245
281
|
});
|
|
246
282
|
if (confirmed) {
|
|
247
283
|
await this.conversationState.deleteConversation(conversation.ID, this.currentUser);
|
|
@@ -271,10 +307,13 @@ export class ConversationListComponent {
|
|
|
271
307
|
await this.dialogService.alert('Error', 'Failed to pin/unpin conversation. Please try again.');
|
|
272
308
|
}
|
|
273
309
|
}
|
|
274
|
-
|
|
310
|
+
hasActiveTasks(conversationId) {
|
|
311
|
+
return this.conversationIdsWithTasks.has(conversationId);
|
|
312
|
+
}
|
|
313
|
+
static ɵfac = function ConversationListComponent_Factory(t) { return new (t || ConversationListComponent)(i0.ɵɵdirectiveInject(i1.ConversationStateService), i0.ɵɵdirectiveInject(i2.DialogService), i0.ɵɵdirectiveInject(i3.NotificationService), i0.ɵɵdirectiveInject(i4.ToastService), i0.ɵɵdirectiveInject(i5.ActiveTasksService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
275
314
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationListComponent, selectors: [["mj-conversation-list"]], hostBindings: function ConversationListComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
276
315
|
i0.ɵɵlistener("click", function ConversationListComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
|
|
277
|
-
} }, inputs: { environmentId: "environmentId", currentUser: "currentUser", renamedConversationId: "renamedConversationId" }, decls: 18, vars: 6, consts: [[1, "conversation-list"], [1, "list-header"], ["type", "text", "placeholder", "Search conversations...", 1, "search-input", 3, "ngModelChange", "ngModel"], ["title", "New Conversation", 1, "btn-new-conversation", 3, "click"], [1, "fas", "fa-plus"], [1, "list-content"], [1, "sidebar-section", "pinned-section"], [1, "sidebar-section"], [1, "section-header", 3, "click"], [1, "section-title"], [1, "fas", "fa-chevron-right"], [1, "chat-list"], [1, "conversation-item", 3, "active", "renamed"], [1, "fas", "fa-thumbtack", "section-icon"], [1, "conversation-item", 3, "click"], [1, "conversation-icon-wrapper"], [1, "conversation-icon"], [
|
|
316
|
+
} }, inputs: { environmentId: "environmentId", currentUser: "currentUser", renamedConversationId: "renamedConversationId" }, decls: 18, vars: 6, consts: [[1, "conversation-list"], [1, "list-header"], ["type", "text", "placeholder", "Search conversations...", 1, "search-input", 3, "ngModelChange", "ngModel"], ["title", "New Conversation", 1, "btn-new-conversation", 3, "click"], [1, "fas", "fa-plus"], [1, "list-content"], [1, "sidebar-section", "pinned-section"], [1, "sidebar-section"], [1, "section-header", 3, "click"], [1, "section-title"], [1, "fas", "fa-chevron-right"], [1, "chat-list"], [1, "conversation-item", 3, "active", "renamed"], [1, "fas", "fa-thumbtack", "section-icon"], [1, "conversation-item", 3, "click"], [1, "conversation-icon-wrapper"], [1, "conversation-icon"], ["class", "fas fa-comments", 4, "ngIf"], ["class", "fas fa-spinner fa-pulse", 4, "ngIf"], [1, "badge-overlay"], [3, "conversationId"], [1, "conversation-info", 3, "title"], [1, "conversation-name"], [1, "conversation-preview"], [1, "conversation-actions"], ["title", "More options", 1, "menu-btn", 3, "click"], [1, "fas", "fa-ellipsis"], [1, "context-menu"], [1, "fas", "fa-comments"], [1, "fas", "fa-spinner", "fa-pulse"], [1, "context-menu", 3, "click"], [1, "menu-item", 3, "click"], [1, "fas", "fa-thumbtack"], [1, "fas", "fa-edit"], [1, "menu-divider"], [1, "menu-item", "danger", 3, "click"], [1, "fas", "fa-trash"]], template: function ConversationListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
278
317
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "input", 2);
|
|
279
318
|
i0.ɵɵtwoWayListener("ngModelChange", function ConversationListComponent_Template_input_ngModelChange_2_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.conversationState.searchQuery, $event) || (ctx.conversationState.searchQuery = $event); return $event; });
|
|
280
319
|
i0.ɵɵelementEnd()();
|
|
@@ -294,7 +333,7 @@ export class ConversationListComponent {
|
|
|
294
333
|
i0.ɵɵtext(14, "Messages");
|
|
295
334
|
i0.ɵɵelementEnd()()();
|
|
296
335
|
i0.ɵɵelementStart(15, "div", 11);
|
|
297
|
-
i0.ɵɵrepeaterCreate(16, ConversationListComponent_For_17_Template,
|
|
336
|
+
i0.ɵɵrepeaterCreate(16, ConversationListComponent_For_17_Template, 16, 13, "div", 12, _forTrack0);
|
|
298
337
|
i0.ɵɵelementEnd()()()();
|
|
299
338
|
} if (rf & 2) {
|
|
300
339
|
i0.ɵɵadvance(2);
|
|
@@ -307,7 +346,7 @@ export class ConversationListComponent {
|
|
|
307
346
|
i0.ɵɵclassProp("expanded", ctx.directMessagesExpanded);
|
|
308
347
|
i0.ɵɵadvance();
|
|
309
348
|
i0.ɵɵrepeater(ctx.unpinnedConversations);
|
|
310
|
-
} }, dependencies: [i5.DefaultValueAccessor, i5.NgControlStatus, i5.NgModel, i6.NotificationBadgeComponent], styles: [".conversation-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: #092340; }\n .list-header[_ngcontent-%COMP%] { padding: 8px; border-bottom: 1px solid rgba(255,255,255,0.1); }\n .search-input[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]::placeholder { color: rgba(255,255,255,0.5); }\n .search-input[_ngcontent-%COMP%]:focus { outline: none; background: rgba(255,255,255,0.15); border-color: #0076B6; }\n .btn-new-conversation[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover { background: #005A8C; }\n .btn-new-conversation[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n .list-content[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; padding: 4px 0; }\n\n \n\n .sidebar-section[_ngcontent-%COMP%] { margin-bottom: 20px; }\n .pinned-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n background: rgba(255, 193, 7, 0.08);\n border-radius: 4px;\n margin: 0 4px;\n }\n .pinned-section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] .section-icon[_ngcontent-%COMP%] {\n color: #FFC107;\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover { color: white; }\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n transition: transform 0.2s;\n }\n .section-header.expanded[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { transform: rotate(90deg); }\n .chat-list[_ngcontent-%COMP%] {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded[_ngcontent-%COMP%] { display: block; }\n\n .conversation-item[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover { background: rgba(255,255,255,0.08); color: white; }\n .conversation-item[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; }\n .conversation-item.active[_ngcontent-%COMP%] { background: #0076B6; color: white; }\n .conversation-icon-wrapper[_ngcontent-%COMP%] { position: relative; flex-shrink: 0; }\n .conversation-icon[_ngcontent-%COMP%] { font-size: 12px; width: 16px; text-align: center; }\n .badge-overlay[_ngcontent-%COMP%] { position: absolute; top: -4px; right: -4px; }\n .conversation-info[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .conversation-name[_ngcontent-%COMP%] { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-preview[_ngcontent-%COMP%] { font-size: 12px; color: rgba(255,255,255,0.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-preview[_ngcontent-%COMP%] { color: rgba(255,255,255,0.8); }\n .conversation-meta[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n \n\n .project-badge[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover .project-badge[_ngcontent-%COMP%] {\n background-color: rgba(255, 255, 255, 0.15);\n color: rgba(255, 255, 255, 0.8);\n }\n .conversation-item.active[_ngcontent-%COMP%] .project-badge[_ngcontent-%COMP%] {\n background-color: rgba(255, 255, 255, 0.2);\n color: white;\n }\n\n .conversation-actions[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-actions[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] { pointer-events: auto; }\n .pinned-icon[_ngcontent-%COMP%] { color: #AAE7FD; font-size: 12px; }\n\n .menu-btn[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover {\n background: rgba(255,255,255,0.15) !important;\n color: white;\n }\n .conversation-item.active[_ngcontent-%COMP%] .menu-btn[_ngcontent-%COMP%] {\n background: #005A8C !important;\n color: white;\n }\n .menu-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n\n .context-menu[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n\n .menu-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n font-size: 13px;\n color: rgba(255,255,255,0.6);\n }\n\n .menu-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: white;\n }\n\n .menu-item.danger[_ngcontent-%COMP%] {\n color: rgba(239, 68, 68, 0.9);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover {\n background: rgba(239, 68, 68, 0.15);\n color: #ff6b6b;\n }\n\n .menu-item.danger[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: rgba(239, 68, 68, 0.8);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: #ff6b6b;\n }\n\n .menu-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: rgba(255,255,255,0.1);\n margin: 4px 0;\n }\n\n \n\n .conversation-item.renamed[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes _ngcontent-%COMP%_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 }"] });
|
|
349
|
+
} }, dependencies: [i6.NgIf, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel, i8.NotificationBadgeComponent], styles: [".conversation-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; background: #092340; }\n .list-header[_ngcontent-%COMP%] { padding: 8px; border-bottom: 1px solid rgba(255,255,255,0.1); }\n .search-input[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]::placeholder { color: rgba(255,255,255,0.5); }\n .search-input[_ngcontent-%COMP%]:focus { outline: none; background: rgba(255,255,255,0.15); border-color: #0076B6; }\n .btn-new-conversation[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover { background: #005A8C; }\n .btn-new-conversation[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n .list-content[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; padding: 4px 0; }\n\n \n\n .sidebar-section[_ngcontent-%COMP%] { margin-bottom: 20px; }\n .pinned-section[_ngcontent-%COMP%] .section-header[_ngcontent-%COMP%] {\n background: rgba(255, 193, 7, 0.08);\n border-radius: 4px;\n margin: 0 4px;\n }\n .pinned-section[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] .section-icon[_ngcontent-%COMP%] {\n color: #FFC107;\n font-size: 11px;\n margin-left: 2px;\n }\n .section-header[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover { color: white; }\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n transition: transform 0.2s;\n }\n .section-header.expanded[_ngcontent-%COMP%] .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { transform: rotate(90deg); }\n .chat-list[_ngcontent-%COMP%] {\n padding: 4px 0;\n display: none;\n }\n .chat-list.expanded[_ngcontent-%COMP%] { display: block; }\n\n .conversation-item[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover { background: rgba(255,255,255,0.08); color: white; }\n .conversation-item[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; }\n .conversation-item.active[_ngcontent-%COMP%] { background: #0076B6; color: white; }\n .conversation-icon-wrapper[_ngcontent-%COMP%] { position: relative; flex-shrink: 0; }\n .conversation-icon[_ngcontent-%COMP%] { font-size: 12px; width: 16px; text-align: center; }\n .conversation-icon.has-tasks[_ngcontent-%COMP%] { color: #fb923c; }\n .badge-overlay[_ngcontent-%COMP%] { position: absolute; top: -4px; right: -4px; }\n .conversation-info[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .conversation-name[_ngcontent-%COMP%] { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-preview[_ngcontent-%COMP%] { font-size: 12px; color: rgba(255,255,255,0.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-preview[_ngcontent-%COMP%] { color: rgba(255,255,255,0.8); }\n .conversation-meta[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }\n\n \n\n .project-badge[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover .project-badge[_ngcontent-%COMP%] {\n background-color: rgba(255, 255, 255, 0.15);\n color: rgba(255, 255, 255, 0.8);\n }\n .conversation-item.active[_ngcontent-%COMP%] .project-badge[_ngcontent-%COMP%] {\n background-color: rgba(255, 255, 255, 0.2);\n color: white;\n }\n\n .conversation-actions[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-actions[_ngcontent-%COMP%] { opacity: 1; pointer-events: auto; }\n .conversation-actions[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] { pointer-events: auto; }\n .pinned-icon[_ngcontent-%COMP%] { color: #AAE7FD; font-size: 12px; }\n\n \n\n .task-indicator[_ngcontent-%COMP%] {\n color: #fb923c;\n font-size: 12px;\n margin-right: 8px;\n flex-shrink: 0;\n animation: _ngcontent-%COMP%_pulse-glow 2s ease-in-out infinite;\n }\n @keyframes _ngcontent-%COMP%_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[_ngcontent-%COMP%] .task-indicator[_ngcontent-%COMP%] {\n color: #fbbf24;\n }\n\n .menu-btn[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover {\n background: rgba(255,255,255,0.15) !important;\n color: white;\n }\n .conversation-item.active[_ngcontent-%COMP%] .menu-btn[_ngcontent-%COMP%] {\n background: #005A8C !important;\n color: white;\n }\n .menu-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 14px; }\n\n .context-menu[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%] {\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[_ngcontent-%COMP%]:hover {\n background: rgba(255,255,255,0.1);\n color: white;\n }\n\n .menu-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n width: 16px;\n font-size: 13px;\n color: rgba(255,255,255,0.6);\n }\n\n .menu-item[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: white;\n }\n\n .menu-item.danger[_ngcontent-%COMP%] {\n color: rgba(239, 68, 68, 0.9);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover {\n background: rgba(239, 68, 68, 0.15);\n color: #ff6b6b;\n }\n\n .menu-item.danger[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: rgba(239, 68, 68, 0.8);\n }\n\n .menu-item.danger[_ngcontent-%COMP%]:hover i[_ngcontent-%COMP%] {\n color: #ff6b6b;\n }\n\n .menu-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: rgba(255,255,255,0.1);\n margin: 4px 0;\n }\n\n \n\n .conversation-item.renamed[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_renameHighlight 1500ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n @keyframes _ngcontent-%COMP%_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 }"] });
|
|
311
350
|
}
|
|
312
351
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConversationListComponent, [{
|
|
313
352
|
type: Component,
|
|
@@ -342,8 +381,9 @@ export class ConversationListComponent {
|
|
|
342
381
|
[class.renamed]="conversation.ID === renamedConversationId"
|
|
343
382
|
(click)="selectConversation(conversation)">
|
|
344
383
|
<div class="conversation-icon-wrapper">
|
|
345
|
-
<div class="conversation-icon">
|
|
346
|
-
<i class="fas fa-comments"></i>
|
|
384
|
+
<div class="conversation-icon" [class.has-tasks]="hasActiveTasks(conversation.ID)">
|
|
385
|
+
<i *ngIf="!hasActiveTasks(conversation.ID)" class="fas fa-comments"></i>
|
|
386
|
+
<i *ngIf="hasActiveTasks(conversation.ID)" class="fas fa-spinner fa-pulse"></i>
|
|
347
387
|
</div>
|
|
348
388
|
<div class="badge-overlay">
|
|
349
389
|
<mj-notification-badge [conversationId]="conversation.ID"></mj-notification-badge>
|
|
@@ -396,8 +436,9 @@ export class ConversationListComponent {
|
|
|
396
436
|
[class.renamed]="conversation.ID === renamedConversationId"
|
|
397
437
|
(click)="selectConversation(conversation)">
|
|
398
438
|
<div class="conversation-icon-wrapper">
|
|
399
|
-
<div class="conversation-icon">
|
|
400
|
-
<i class="fas fa-comments"></i>
|
|
439
|
+
<div class="conversation-icon" [class.has-tasks]="hasActiveTasks(conversation.ID)">
|
|
440
|
+
<i *ngIf="!hasActiveTasks(conversation.ID)" class="fas fa-comments"></i>
|
|
441
|
+
<i *ngIf="hasActiveTasks(conversation.ID)" class="fas fa-spinner fa-pulse"></i>
|
|
401
442
|
</div>
|
|
402
443
|
<div class="badge-overlay">
|
|
403
444
|
<mj-notification-badge [conversationId]="conversation.ID"></mj-notification-badge>
|
|
@@ -435,8 +476,8 @@ export class ConversationListComponent {
|
|
|
435
476
|
</div>
|
|
436
477
|
</div>
|
|
437
478
|
</div>
|
|
438
|
-
`, styles: ["\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; 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 .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 .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 "] }]
|
|
439
|
-
}], () => [{ type: i1.ConversationStateService }, { type: i2.DialogService }, { type: i3.NotificationService }, { type: i4.ToastService }], { environmentId: [{
|
|
479
|
+
`, styles: ["\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; 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 "] }]
|
|
480
|
+
}], () => [{ type: i1.ConversationStateService }, { type: i2.DialogService }, { type: i3.NotificationService }, { type: i4.ToastService }, { type: i5.ActiveTasksService }, { type: i0.ChangeDetectorRef }], { environmentId: [{
|
|
440
481
|
type: Input
|
|
441
482
|
}], currentUser: [{
|
|
442
483
|
type: Input
|
|
@@ -446,5 +487,5 @@ export class ConversationListComponent {
|
|
|
446
487
|
type: HostListener,
|
|
447
488
|
args: ['document:click']
|
|
448
489
|
}] }); })();
|
|
449
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationListComponent, { className: "ConversationListComponent", filePath: "src/lib/components/conversation/conversation-list.component.ts", lineNumber:
|
|
490
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationListComponent, { className: "ConversationListComponent", filePath: "src/lib/components/conversation/conversation-list.component.ts", lineNumber: 430 }); })();
|
|
450
491
|
//# sourceMappingURL=conversation-list.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-list.component.js","sourceRoot":"","sources":["../../../../src/lib/components/conversation/conversation-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import { ConversationEntity } from '@memberjunction/core-entities';
|
|
3
|
-
import { UserInfo } from '@memberjunction/
|
|
3
|
+
import { UserInfo } from '@memberjunction/core';
|
|
4
4
|
import { ExportService, ExportFormat, ExportOptions } from '../../services/export.service';
|
|
5
5
|
import { DialogService } from '../../services/dialog.service';
|
|
6
6
|
import { ToastService } from '../../services/toast.service';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/export/export-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"export-modal.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/export/export-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAiB,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;;AAE5D,qBAgTa,oBAAoB;IAwD7B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IAzDb,SAAS,UAAS;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,EAAG,QAAQ,CAAC;IACtB,SAAS,qBAA4B;IACrC,QAAQ,qBAA4B;IAE9C,cAAc,EAAE,YAAY,GAAG,IAAI,CAAc;IACjD,WAAW,UAAS;IACpB,YAAY,SAAM;IAElB,aAAa,EAAE,aAAa,CAK1B;IAEF,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,SAAS,IAAI,OAAO,CAIvB;IAED,OAAO;;;;;QAyBL;gBAGQ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY;IAGpC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAMlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC/B,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,SAAS;yCAzGN,oBAAoB;2CAApB,oBAAoB;CAoHhC"}
|
|
@@ -185,39 +185,41 @@ export class ExportModalComponent {
|
|
|
185
185
|
includeMessages: true,
|
|
186
186
|
includeMetadata: true,
|
|
187
187
|
prettyPrint: true,
|
|
188
|
-
includeCSS: true
|
|
188
|
+
includeCSS: true
|
|
189
189
|
};
|
|
190
190
|
get exportTitle() {
|
|
191
191
|
return `Export: ${this.conversation?.Name || 'Conversation'}`;
|
|
192
192
|
}
|
|
193
193
|
get canExport() {
|
|
194
|
-
return !this.isExporting &&
|
|
194
|
+
return !this.isExporting &&
|
|
195
|
+
!!this.selectedFormat &&
|
|
196
|
+
(this.exportOptions.includeMessages === true);
|
|
195
197
|
}
|
|
196
198
|
formats = [
|
|
197
199
|
{
|
|
198
200
|
value: 'markdown',
|
|
199
201
|
name: 'Markdown',
|
|
200
202
|
description: 'Formatted text with markdown syntax',
|
|
201
|
-
icon: 'fa-solid fa-file-alt'
|
|
203
|
+
icon: 'fa-solid fa-file-alt'
|
|
202
204
|
},
|
|
203
205
|
{
|
|
204
206
|
value: 'json',
|
|
205
207
|
name: 'JSON',
|
|
206
208
|
description: 'Structured data format',
|
|
207
|
-
icon: 'fa-solid fa-code'
|
|
209
|
+
icon: 'fa-solid fa-code'
|
|
208
210
|
},
|
|
209
211
|
{
|
|
210
212
|
value: 'html',
|
|
211
213
|
name: 'HTML',
|
|
212
214
|
description: 'Web page format',
|
|
213
|
-
icon: 'fa-solid fa-file-code'
|
|
215
|
+
icon: 'fa-solid fa-file-code'
|
|
214
216
|
},
|
|
215
217
|
{
|
|
216
218
|
value: 'text',
|
|
217
219
|
name: 'Plain Text',
|
|
218
220
|
description: 'Simple text file',
|
|
219
|
-
icon: 'fa-solid fa-file'
|
|
220
|
-
}
|
|
221
|
+
icon: 'fa-solid fa-file'
|
|
222
|
+
}
|
|
221
223
|
];
|
|
222
224
|
constructor(exportService, dialogService, toastService) {
|
|
223
225
|
this.exportService = exportService;
|
|
@@ -265,7 +267,7 @@ export class ExportModalComponent {
|
|
|
265
267
|
includeMessages: true,
|
|
266
268
|
includeMetadata: true,
|
|
267
269
|
prettyPrint: true,
|
|
268
|
-
includeCSS: true
|
|
270
|
+
includeCSS: true
|
|
269
271
|
};
|
|
270
272
|
this.isVisible = false;
|
|
271
273
|
}
|
|
@@ -408,5 +410,5 @@ export class ExportModalComponent {
|
|
|
408
410
|
}], exported: [{
|
|
409
411
|
type: Output
|
|
410
412
|
}] }); })();
|
|
411
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExportModalComponent, { className: "ExportModalComponent", filePath: "src/lib/components/export/export-modal.component.ts", lineNumber:
|
|
413
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ExportModalComponent, { className: "ExportModalComponent", filePath: "src/lib/components/export/export-modal.component.ts", lineNumber: 312 }); })();
|
|
412
414
|
//# sourceMappingURL=export-modal.component.js.map
|