@memberjunction/ng-conversations 2.104.0 → 2.106.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.
Files changed (106) hide show
  1. package/dist/lib/components/collection/collection-view.component.d.ts +5 -1
  2. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  3. package/dist/lib/components/collection/collection-view.component.js +53 -11
  4. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  5. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +53 -13
  6. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  7. package/dist/lib/components/conversation/conversation-chat-area.component.js +455 -289
  8. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  9. package/dist/lib/components/conversation/conversation-list.component.d.ts +9 -1
  10. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  11. package/dist/lib/components/conversation/conversation-list.component.js +258 -71
  12. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  13. package/dist/lib/components/mention/mention-dropdown.component.d.ts +6 -0
  14. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -1
  15. package/dist/lib/components/mention/mention-dropdown.component.js +35 -13
  16. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  17. package/dist/lib/components/message/message-input.component.d.ts +49 -12
  18. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  19. package/dist/lib/components/message/message-input.component.js +579 -221
  20. package/dist/lib/components/message/message-input.component.js.map +1 -1
  21. package/dist/lib/components/message/message-item.component.d.ts +16 -5
  22. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  23. package/dist/lib/components/message/message-item.component.js +136 -64
  24. package/dist/lib/components/message/message-item.component.js.map +1 -1
  25. package/dist/lib/components/message/message-list.component.d.ts +11 -5
  26. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  27. package/dist/lib/components/message/message-list.component.js +48 -9
  28. package/dist/lib/components/message/message-list.component.js.map +1 -1
  29. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  30. package/dist/lib/components/navigation/conversation-navigation.component.js +24 -9
  31. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  32. package/dist/lib/components/task/tasks-full-view.component.d.ts +47 -0
  33. package/dist/lib/components/task/tasks-full-view.component.d.ts.map +1 -0
  34. package/dist/lib/components/task/tasks-full-view.component.js +368 -0
  35. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -0
  36. package/dist/lib/components/tasks/task-widget.component.d.ts +29 -0
  37. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -0
  38. package/dist/lib/components/tasks/task-widget.component.js +385 -0
  39. package/dist/lib/components/tasks/task-widget.component.js.map +1 -0
  40. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts +22 -8
  41. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  42. package/dist/lib/components/tasks/tasks-dropdown.component.js +195 -99
  43. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  44. package/dist/lib/components/thread/thread-panel.component.d.ts +3 -1
  45. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  46. package/dist/lib/components/thread/thread-panel.component.js +14 -14
  47. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  48. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +43 -4
  49. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  50. package/dist/lib/components/workspace/conversation-workspace.component.js +288 -46
  51. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  52. package/dist/lib/conversations.module.d.ts +40 -46
  53. package/dist/lib/conversations.module.d.ts.map +1 -1
  54. package/dist/lib/conversations.module.js +28 -42
  55. package/dist/lib/conversations.module.js.map +1 -1
  56. package/dist/lib/models/conversation-state.model.d.ts +29 -1
  57. package/dist/lib/models/conversation-state.model.d.ts.map +1 -1
  58. package/dist/lib/services/conversation-agent.service.d.ts +6 -5
  59. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  60. package/dist/lib/services/conversation-agent.service.js +18 -19
  61. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  62. package/dist/lib/services/data-cache.service.d.ts +96 -0
  63. package/dist/lib/services/data-cache.service.d.ts.map +1 -0
  64. package/dist/lib/services/data-cache.service.js +203 -0
  65. package/dist/lib/services/data-cache.service.js.map +1 -0
  66. package/dist/public-api.d.ts +3 -6
  67. package/dist/public-api.d.ts.map +1 -1
  68. package/dist/public-api.js +3 -6
  69. package/dist/public-api.js.map +1 -1
  70. package/package.json +12 -10
  71. package/dist/lib/components/artifact/artifact-panel.component.d.ts +0 -22
  72. package/dist/lib/components/artifact/artifact-panel.component.d.ts.map +0 -1
  73. package/dist/lib/components/artifact/artifact-panel.component.js +0 -237
  74. package/dist/lib/components/artifact/artifact-panel.component.js.map +0 -1
  75. package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts +0 -39
  76. package/dist/lib/components/artifact/artifact-upload-modal.component.d.ts.map +0 -1
  77. package/dist/lib/components/artifact/artifact-upload-modal.component.js +0 -384
  78. package/dist/lib/components/artifact/artifact-upload-modal.component.js.map +0 -1
  79. package/dist/lib/components/artifact/artifact-version-history.component.d.ts +0 -28
  80. package/dist/lib/components/artifact/artifact-version-history.component.d.ts.map +0 -1
  81. package/dist/lib/components/artifact/artifact-version-history.component.js +0 -280
  82. package/dist/lib/components/artifact/artifact-version-history.component.js.map +0 -1
  83. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +0 -22
  84. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +0 -1
  85. package/dist/lib/components/artifact/artifact-viewer-panel.component.js +0 -182
  86. package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +0 -1
  87. package/dist/lib/components/artifact/artifact-viewer.component.d.ts +0 -27
  88. package/dist/lib/components/artifact/artifact-viewer.component.d.ts.map +0 -1
  89. package/dist/lib/components/artifact/artifact-viewer.component.js +0 -266
  90. package/dist/lib/components/artifact/artifact-viewer.component.js.map +0 -1
  91. package/dist/lib/components/artifact/inline-artifact.component.d.ts +0 -46
  92. package/dist/lib/components/artifact/inline-artifact.component.d.ts.map +0 -1
  93. package/dist/lib/components/artifact/inline-artifact.component.js +0 -447
  94. package/dist/lib/components/artifact/inline-artifact.component.js.map +0 -1
  95. package/dist/lib/components/task/task-form-modal.component.d.ts +0 -42
  96. package/dist/lib/components/task/task-form-modal.component.d.ts.map +0 -1
  97. package/dist/lib/components/task/task-form-modal.component.js +0 -329
  98. package/dist/lib/components/task/task-form-modal.component.js.map +0 -1
  99. package/dist/lib/components/task/task-item.component.d.ts +0 -22
  100. package/dist/lib/components/task/task-item.component.d.ts.map +0 -1
  101. package/dist/lib/components/task/task-item.component.js +0 -234
  102. package/dist/lib/components/task/task-item.component.js.map +0 -1
  103. package/dist/lib/components/task/task-list.component.d.ts +0 -32
  104. package/dist/lib/components/task/task-list.component.d.ts.map +0 -1
  105. package/dist/lib/components/task/task-list.component.js +0 -290
  106. package/dist/lib/components/task/task-list.component.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, HostListener } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../services/conversation-state.service";
4
4
  import * as i2 from "../../services/dialog.service";
@@ -7,59 +7,148 @@ import * as i4 from "../../services/toast.service";
7
7
  import * as i5 from "@angular/forms";
8
8
  import * as i6 from "../notification/notification-badge.component";
9
9
  const _forTrack0 = ($index, $item) => $item.ID;
10
- function ConversationListComponent_For_16_Conditional_12_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelement(0, "i", 22);
10
+ function ConversationListComponent_Conditional_8_For_9_Conditional_14_Template(rf, ctx) { if (rf & 1) {
11
+ const _r5 = i0.ɵɵgetCurrentView();
12
+ i0.ɵɵelementStart(0, "div", 27);
13
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_14_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r5); return i0.ɵɵresetView($event.stopPropagation()); });
14
+ i0.ɵɵelementStart(1, "button", 28);
15
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_14_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)); });
16
+ i0.ɵɵelement(2, "i", 29);
17
+ i0.ɵɵelementStart(3, "span");
18
+ i0.ɵɵtext(4, "Unpin");
19
+ i0.ɵɵelementEnd()();
20
+ i0.ɵɵelementStart(5, "button", 28);
21
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_14_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()); });
22
+ i0.ɵɵelement(6, "i", 30);
23
+ i0.ɵɵelementStart(7, "span");
24
+ i0.ɵɵtext(8, "Rename");
25
+ i0.ɵɵelementEnd()();
26
+ i0.ɵɵelement(9, "div", 31);
27
+ i0.ɵɵelementStart(10, "button", 32);
28
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Conditional_14_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()); });
29
+ i0.ɵɵelement(11, "i", 33);
30
+ i0.ɵɵelementStart(12, "span");
31
+ i0.ɵɵtext(13, "Delete");
32
+ i0.ɵɵelementEnd()()();
12
33
  } }
13
- function ConversationListComponent_For_16_Template(rf, ctx) { if (rf & 1) {
14
- const _r1 = i0.ɵɵgetCurrentView();
15
- i0.ɵɵelementStart(0, "div", 12);
16
- i0.ɵɵlistener("click", function ConversationListComponent_For_16_Template_div_click_0_listener() { const conversation_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectConversation(conversation_r2)); });
17
- i0.ɵɵelementStart(1, "div", 13)(2, "div", 14);
18
- i0.ɵɵelement(3, "i", 15);
34
+ function ConversationListComponent_Conditional_8_For_9_Template(rf, ctx) { if (rf & 1) {
35
+ const _r3 = i0.ɵɵgetCurrentView();
36
+ i0.ɵɵelementStart(0, "div", 14);
37
+ 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
+ i0.ɵɵelementStart(1, "div", 15)(2, "div", 16);
39
+ i0.ɵɵelement(3, "i", 17);
19
40
  i0.ɵɵelementEnd();
20
- i0.ɵɵelementStart(4, "div", 16);
21
- i0.ɵɵelement(5, "mj-notification-badge", 17);
41
+ i0.ɵɵelementStart(4, "div", 18);
42
+ i0.ɵɵelement(5, "mj-notification-badge", 19);
22
43
  i0.ɵɵelementEnd()();
23
- i0.ɵɵelementStart(6, "div", 18)(7, "div", 19);
44
+ i0.ɵɵelementStart(6, "div", 20)(7, "div", 21);
24
45
  i0.ɵɵtext(8);
25
46
  i0.ɵɵelementEnd();
26
- i0.ɵɵelementStart(9, "div", 20);
47
+ i0.ɵɵelementStart(9, "div", 22);
27
48
  i0.ɵɵtext(10);
28
49
  i0.ɵɵelementEnd()();
29
- i0.ɵɵelementStart(11, "div", 21);
30
- i0.ɵɵtemplate(12, ConversationListComponent_For_16_Conditional_12_Template, 1, 0, "i", 22);
50
+ i0.ɵɵelementStart(11, "div", 23)(12, "button", 24);
51
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_For_9_Template_button_click_12_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)); });
52
+ i0.ɵɵelement(13, "i", 25);
31
53
  i0.ɵɵelementEnd();
32
- i0.ɵɵelementStart(13, "div", 23);
33
- i0.ɵɵlistener("click", function ConversationListComponent_For_16_Template_div_click_13_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
34
- i0.ɵɵelementStart(14, "button", 24);
35
- i0.ɵɵlistener("click", function ConversationListComponent_For_16_Template_button_click_14_listener() { const conversation_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.togglePin(conversation_r2)); });
36
- i0.ɵɵelement(15, "i", 25);
37
- i0.ɵɵelementEnd();
38
- i0.ɵɵelementStart(16, "button", 26);
39
- i0.ɵɵlistener("click", function ConversationListComponent_For_16_Template_button_click_16_listener() { const conversation_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.renameConversation(conversation_r2)); });
40
- i0.ɵɵelement(17, "i", 27);
41
- i0.ɵɵelementEnd();
42
- i0.ɵɵelementStart(18, "button", 28);
43
- i0.ɵɵlistener("click", function ConversationListComponent_For_16_Template_button_click_18_listener() { const conversation_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.deleteConversation(conversation_r2)); });
44
- i0.ɵɵelement(19, "i", 29);
45
- i0.ɵɵelementEnd()()();
54
+ i0.ɵɵtemplate(14, ConversationListComponent_Conditional_8_For_9_Conditional_14_Template, 14, 0, "div", 26);
55
+ i0.ɵɵelementEnd()();
46
56
  } if (rf & 2) {
47
- const conversation_r2 = ctx.$implicit;
48
- const ctx_r2 = i0.ɵɵnextContext();
49
- i0.ɵɵclassProp("active", conversation_r2.ID === ctx_r2.conversationState.activeConversationId)("renamed", conversation_r2.ID === ctx_r2.renamedConversationId);
57
+ const conversation_r4 = ctx.$implicit;
58
+ const ctx_r1 = i0.ɵɵnextContext(2);
59
+ i0.ɵɵclassProp("active", conversation_r4.ID === ctx_r1.conversationState.activeConversationId)("renamed", conversation_r4.ID === ctx_r1.renamedConversationId);
50
60
  i0.ɵɵadvance(5);
51
- i0.ɵɵproperty("conversationId", conversation_r2.ID);
61
+ i0.ɵɵproperty("conversationId", conversation_r4.ID);
52
62
  i0.ɵɵadvance();
53
- i0.ɵɵproperty("title", conversation_r2.Name + (conversation_r2.Description ? "\n" + conversation_r2.Description : ""));
63
+ i0.ɵɵproperty("title", conversation_r4.Name + (conversation_r4.Description ? "\n" + conversation_r4.Description : ""));
54
64
  i0.ɵɵadvance(2);
55
- i0.ɵɵtextInterpolate(conversation_r2.Name);
65
+ i0.ɵɵtextInterpolate(conversation_r4.Name);
56
66
  i0.ɵɵadvance(2);
57
- i0.ɵɵtextInterpolate(conversation_r2.Description || "No description");
67
+ i0.ɵɵtextInterpolate(conversation_r4.Description || "No description");
68
+ i0.ɵɵadvance(4);
69
+ i0.ɵɵconditional(ctx_r1.openMenuConversationId === conversation_r4.ID ? 14 : -1);
70
+ } }
71
+ function ConversationListComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
72
+ const _r1 = i0.ɵɵgetCurrentView();
73
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 8);
74
+ i0.ɵɵlistener("click", function ConversationListComponent_Conditional_8_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.togglePinned()); });
75
+ i0.ɵɵelementStart(2, "div", 9);
76
+ i0.ɵɵelement(3, "i", 10)(4, "i", 13);
77
+ i0.ɵɵelementStart(5, "span");
78
+ i0.ɵɵtext(6, "Pinned");
79
+ i0.ɵɵelementEnd()()();
80
+ i0.ɵɵelementStart(7, "div", 11);
81
+ i0.ɵɵrepeaterCreate(8, ConversationListComponent_Conditional_8_For_9_Template, 15, 9, "div", 12, _forTrack0);
82
+ i0.ɵɵelementEnd()();
83
+ } if (rf & 2) {
84
+ const ctx_r1 = i0.ɵɵnextContext();
85
+ i0.ɵɵadvance();
86
+ i0.ɵɵclassProp("expanded", ctx_r1.pinnedExpanded);
87
+ i0.ɵɵadvance(6);
88
+ i0.ɵɵclassProp("expanded", ctx_r1.pinnedExpanded);
89
+ i0.ɵɵadvance();
90
+ i0.ɵɵrepeater(ctx_r1.pinnedConversations);
91
+ } }
92
+ function ConversationListComponent_For_17_Conditional_14_Template(rf, ctx) { if (rf & 1) {
93
+ const _r8 = i0.ɵɵgetCurrentView();
94
+ i0.ɵɵelementStart(0, "div", 27);
95
+ i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_14_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r8); return i0.ɵɵresetView($event.stopPropagation()); });
96
+ i0.ɵɵelementStart(1, "button", 28);
97
+ i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_14_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)); });
98
+ i0.ɵɵelement(2, "i", 29);
99
+ i0.ɵɵelementStart(3, "span");
100
+ i0.ɵɵtext(4, "Pin");
101
+ i0.ɵɵelementEnd()();
102
+ i0.ɵɵelementStart(5, "button", 28);
103
+ i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_14_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()); });
104
+ i0.ɵɵelement(6, "i", 30);
105
+ i0.ɵɵelementStart(7, "span");
106
+ i0.ɵɵtext(8, "Rename");
107
+ i0.ɵɵelementEnd()();
108
+ i0.ɵɵelement(9, "div", 31);
109
+ i0.ɵɵelementStart(10, "button", 32);
110
+ i0.ɵɵlistener("click", function ConversationListComponent_For_17_Conditional_14_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()); });
111
+ i0.ɵɵelement(11, "i", 33);
112
+ i0.ɵɵelementStart(12, "span");
113
+ i0.ɵɵtext(13, "Delete");
114
+ i0.ɵɵelementEnd()()();
115
+ } }
116
+ function ConversationListComponent_For_17_Template(rf, ctx) { if (rf & 1) {
117
+ const _r6 = i0.ɵɵgetCurrentView();
118
+ i0.ɵɵelementStart(0, "div", 14);
119
+ 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
+ i0.ɵɵelementStart(1, "div", 15)(2, "div", 16);
121
+ i0.ɵɵelement(3, "i", 17);
122
+ i0.ɵɵelementEnd();
123
+ i0.ɵɵelementStart(4, "div", 18);
124
+ i0.ɵɵelement(5, "mj-notification-badge", 19);
125
+ i0.ɵɵelementEnd()();
126
+ i0.ɵɵelementStart(6, "div", 20)(7, "div", 21);
127
+ i0.ɵɵtext(8);
128
+ i0.ɵɵelementEnd();
129
+ i0.ɵɵelementStart(9, "div", 22);
130
+ i0.ɵɵtext(10);
131
+ i0.ɵɵelementEnd()();
132
+ i0.ɵɵelementStart(11, "div", 23)(12, "button", 24);
133
+ i0.ɵɵlistener("click", function ConversationListComponent_For_17_Template_button_click_12_listener($event) { const conversation_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleMenu(conversation_r7.ID, $event)); });
134
+ i0.ɵɵelement(13, "i", 25);
135
+ i0.ɵɵelementEnd();
136
+ i0.ɵɵtemplate(14, ConversationListComponent_For_17_Conditional_14_Template, 14, 0, "div", 26);
137
+ i0.ɵɵelementEnd()();
138
+ } if (rf & 2) {
139
+ const conversation_r7 = ctx.$implicit;
140
+ const ctx_r1 = i0.ɵɵnextContext();
141
+ i0.ɵɵclassProp("active", conversation_r7.ID === ctx_r1.conversationState.activeConversationId)("renamed", conversation_r7.ID === ctx_r1.renamedConversationId);
142
+ i0.ɵɵadvance(5);
143
+ i0.ɵɵproperty("conversationId", conversation_r7.ID);
144
+ i0.ɵɵadvance();
145
+ i0.ɵɵproperty("title", conversation_r7.Name + (conversation_r7.Description ? "\n" + conversation_r7.Description : ""));
58
146
  i0.ɵɵadvance(2);
59
- i0.ɵɵconditional(conversation_r2.IsPinned ? 12 : -1);
147
+ i0.ɵɵtextInterpolate(conversation_r7.Name);
60
148
  i0.ɵɵadvance(2);
61
- i0.ɵɵclassProp("pinned", conversation_r2.IsPinned);
62
- i0.ɵɵproperty("title", conversation_r2.IsPinned ? "Unpin" : "Pin");
149
+ i0.ɵɵtextInterpolate(conversation_r7.Description || "No description");
150
+ i0.ɵɵadvance(4);
151
+ i0.ɵɵconditional(ctx_r1.openMenuConversationId === conversation_r7.ID ? 14 : -1);
63
152
  } }
64
153
  export class ConversationListComponent {
65
154
  conversationState;
@@ -70,19 +159,36 @@ export class ConversationListComponent {
70
159
  currentUser;
71
160
  renamedConversationId = null;
72
161
  directMessagesExpanded = true;
162
+ pinnedExpanded = true;
163
+ openMenuConversationId = null;
73
164
  constructor(conversationState, dialogService, notificationService, toastService) {
74
165
  this.conversationState = conversationState;
75
166
  this.dialogService = dialogService;
76
167
  this.notificationService = notificationService;
77
168
  this.toastService = toastService;
78
169
  }
170
+ get pinnedConversations() {
171
+ return this.conversationState.filteredConversations.filter(c => c.IsPinned);
172
+ }
173
+ get unpinnedConversations() {
174
+ return this.conversationState.filteredConversations.filter(c => !c.IsPinned);
175
+ }
79
176
  ngOnInit() {
80
177
  // Load conversations on init
81
178
  this.conversationState.loadConversations(this.environmentId, this.currentUser);
82
179
  }
180
+ onDocumentClick() {
181
+ // Close menu when clicking outside
182
+ if (this.openMenuConversationId) {
183
+ this.closeMenu();
184
+ }
185
+ }
83
186
  toggleDirectMessages() {
84
187
  this.directMessagesExpanded = !this.directMessagesExpanded;
85
188
  }
189
+ togglePinned() {
190
+ this.pinnedExpanded = !this.pinnedExpanded;
191
+ }
86
192
  selectConversation(conversation) {
87
193
  this.conversationState.setActiveConversation(conversation.ID);
88
194
  // Clear unread notifications when conversation is opened
@@ -138,9 +244,19 @@ export class ConversationListComponent {
138
244
  await this.dialogService.alert('Error', 'Failed to delete conversation. Please try again.');
139
245
  }
140
246
  }
141
- async togglePin(conversation) {
247
+ toggleMenu(conversationId, event) {
248
+ event.stopPropagation();
249
+ this.openMenuConversationId = this.openMenuConversationId === conversationId ? null : conversationId;
250
+ }
251
+ closeMenu() {
252
+ this.openMenuConversationId = null;
253
+ }
254
+ async togglePin(conversation, event) {
255
+ if (event)
256
+ event.stopPropagation();
142
257
  try {
143
258
  await this.conversationState.togglePin(conversation.ID, this.currentUser);
259
+ this.closeMenu();
144
260
  }
145
261
  catch (error) {
146
262
  console.error('Error toggling pin:', error);
@@ -148,7 +264,9 @@ export class ConversationListComponent {
148
264
  }
149
265
  }
150
266
  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)); };
151
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationListComponent, selectors: [["mj-conversation-list"]], inputs: { environmentId: "environmentId", currentUser: "currentUser", renamedConversationId: "renamedConversationId" }, decls: 17, vars: 5, 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"], [1, "section-header", 3, "click"], [1, "section-title"], [1, "fas", "fa-chevron-right"], [1, "chat-list"], [1, "conversation-item", 3, "active", "renamed"], [1, "conversation-item", 3, "click"], [1, "conversation-icon-wrapper"], [1, "conversation-icon"], [1, "fas", "fa-comments"], [1, "badge-overlay"], [3, "conversationId"], [1, "conversation-info", 3, "title"], [1, "conversation-name"], [1, "conversation-preview"], [1, "conversation-meta"], [1, "fas", "fa-thumbtack", "pinned-icon"], [1, "conversation-actions", 3, "click"], [1, "action-btn", 3, "click", "title"], [1, "fas", "fa-thumbtack"], ["title", "Rename", 1, "action-btn", 3, "click"], [1, "fas", "fa-edit"], ["title", "Delete", 1, "action-btn", "danger", 3, "click"], [1, "fas", "fa-trash"]], template: function ConversationListComponent_Template(rf, ctx) { if (rf & 1) {
267
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationListComponent, selectors: [["mj-conversation-list"]], hostBindings: function ConversationListComponent_HostBindings(rf, ctx) { if (rf & 1) {
268
+ i0.ɵɵlistener("click", function ConversationListComponent_click_HostBindingHandler() { return ctx.onDocumentClick(); }, false, i0.ɵɵresolveDocument);
269
+ } }, 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"], [1, "fas", "fa-comments"], [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, "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) {
152
270
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "input", 2);
153
271
  i0.ɵɵtwoWayListener("ngModelChange", function ConversationListComponent_Template_input_ngModelChange_2_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.conversationState.searchQuery, $event) || (ctx.conversationState.searchQuery = $event); return $event; });
154
272
  i0.ɵɵelementEnd()();
@@ -158,26 +276,30 @@ export class ConversationListComponent {
158
276
  i0.ɵɵelementStart(5, "span");
159
277
  i0.ɵɵtext(6, "New Conversation");
160
278
  i0.ɵɵelementEnd()();
161
- i0.ɵɵelementStart(7, "div", 5)(8, "div", 6)(9, "div", 7);
162
- i0.ɵɵlistener("click", function ConversationListComponent_Template_div_click_9_listener() { return ctx.toggleDirectMessages(); });
163
- i0.ɵɵelementStart(10, "div", 8);
164
- i0.ɵɵelement(11, "i", 9);
165
- i0.ɵɵelementStart(12, "span");
166
- i0.ɵɵtext(13, "Direct Messages");
279
+ i0.ɵɵelementStart(7, "div", 5);
280
+ i0.ɵɵtemplate(8, ConversationListComponent_Conditional_8_Template, 10, 4, "div", 6);
281
+ i0.ɵɵelementStart(9, "div", 7)(10, "div", 8);
282
+ i0.ɵɵlistener("click", function ConversationListComponent_Template_div_click_10_listener() { return ctx.toggleDirectMessages(); });
283
+ i0.ɵɵelementStart(11, "div", 9);
284
+ i0.ɵɵelement(12, "i", 10);
285
+ i0.ɵɵelementStart(13, "span");
286
+ i0.ɵɵtext(14, "Messages");
167
287
  i0.ɵɵelementEnd()()();
168
- i0.ɵɵelementStart(14, "div", 10);
169
- i0.ɵɵrepeaterCreate(15, ConversationListComponent_For_16_Template, 20, 12, "div", 11, _forTrack0);
288
+ i0.ɵɵelementStart(15, "div", 11);
289
+ i0.ɵɵrepeaterCreate(16, ConversationListComponent_For_17_Template, 15, 9, "div", 12, _forTrack0);
170
290
  i0.ɵɵelementEnd()()()();
171
291
  } if (rf & 2) {
172
292
  i0.ɵɵadvance(2);
173
293
  i0.ɵɵtwoWayProperty("ngModel", ctx.conversationState.searchQuery);
174
- i0.ɵɵadvance(7);
294
+ i0.ɵɵadvance(6);
295
+ i0.ɵɵconditional(ctx.pinnedConversations.length > 0 ? 8 : -1);
296
+ i0.ɵɵadvance(2);
175
297
  i0.ɵɵclassProp("expanded", ctx.directMessagesExpanded);
176
298
  i0.ɵɵadvance(5);
177
299
  i0.ɵɵclassProp("expanded", ctx.directMessagesExpanded);
178
300
  i0.ɵɵadvance();
179
- i0.ɵɵrepeater(ctx.conversationState.filteredConversations);
180
- } }, 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 .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 40px 6px 28px;\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 }\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; padding-right: 8px; }\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 display: flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n opacity: 0;\n transition: opacity 0.2s;\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 10;\n }\n .conversation-item.active[_ngcontent-%COMP%] .conversation-actions[_ngcontent-%COMP%] { opacity: 1; }\n .conversation-item[_ngcontent-%COMP%]:has(.pinned-icon) .conversation-actions[_ngcontent-%COMP%] { opacity: 1; }\n .pinned-icon[_ngcontent-%COMP%] { color: #AAE7FD; font-size: 12px; }\n .action-btn[_ngcontent-%COMP%] {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: rgba(255,255,255,0.6);\n background: transparent;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .action-btn[_ngcontent-%COMP%]:hover { background: rgba(255,255,255,0.2); color: white; }\n .action-btn.pinned[_ngcontent-%COMP%] { color: #AAE7FD; }\n .action-btn.danger[_ngcontent-%COMP%]:hover { background: rgba(239,68,68,0.3); color: #ff6b6b; }\n .action-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 11px; }\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 }"] });
301
+ i0.ɵɵrepeater(ctx.unpinnedConversations);
302
+ } }, 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 }\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 }"] });
181
303
  }
182
304
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConversationListComponent, [{
183
305
  type: Component,
@@ -195,16 +317,72 @@ export class ConversationListComponent {
195
317
  <span>New Conversation</span>
196
318
  </button>
197
319
  <div class="list-content">
198
- <!-- Direct Messages Section -->
320
+ <!-- Pinned Section (only show if there are pinned conversations) -->
321
+ @if (pinnedConversations.length > 0) {
322
+ <div class="sidebar-section pinned-section">
323
+ <div class="section-header" [class.expanded]="pinnedExpanded" (click)="togglePinned()">
324
+ <div class="section-title">
325
+ <i class="fas fa-chevron-right"></i>
326
+ <i class="fas fa-thumbtack section-icon"></i>
327
+ <span>Pinned</span>
328
+ </div>
329
+ </div>
330
+ <div class="chat-list" [class.expanded]="pinnedExpanded">
331
+ @for (conversation of pinnedConversations; track conversation.ID) {
332
+ <div class="conversation-item"
333
+ [class.active]="conversation.ID === conversationState.activeConversationId"
334
+ [class.renamed]="conversation.ID === renamedConversationId"
335
+ (click)="selectConversation(conversation)">
336
+ <div class="conversation-icon-wrapper">
337
+ <div class="conversation-icon">
338
+ <i class="fas fa-comments"></i>
339
+ </div>
340
+ <div class="badge-overlay">
341
+ <mj-notification-badge [conversationId]="conversation.ID"></mj-notification-badge>
342
+ </div>
343
+ </div>
344
+ <div class="conversation-info" [title]="conversation.Name + (conversation.Description ? '\n' + conversation.Description : '')">
345
+ <div class="conversation-name">{{ conversation.Name }}</div>
346
+ <div class="conversation-preview">{{ conversation.Description || 'No description' }}</div>
347
+ </div>
348
+ <div class="conversation-actions">
349
+ <button class="menu-btn" (click)="toggleMenu(conversation.ID, $event)" title="More options">
350
+ <i class="fas fa-ellipsis"></i>
351
+ </button>
352
+ @if (openMenuConversationId === conversation.ID) {
353
+ <div class="context-menu" (click)="$event.stopPropagation()">
354
+ <button class="menu-item" (click)="togglePin(conversation, $event)">
355
+ <i class="fas fa-thumbtack"></i>
356
+ <span>Unpin</span>
357
+ </button>
358
+ <button class="menu-item" (click)="renameConversation(conversation); closeMenu()">
359
+ <i class="fas fa-edit"></i>
360
+ <span>Rename</span>
361
+ </button>
362
+ <div class="menu-divider"></div>
363
+ <button class="menu-item danger" (click)="deleteConversation(conversation); closeMenu()">
364
+ <i class="fas fa-trash"></i>
365
+ <span>Delete</span>
366
+ </button>
367
+ </div>
368
+ }
369
+ </div>
370
+ </div>
371
+ }
372
+ </div>
373
+ </div>
374
+ }
375
+
376
+ <!-- Messages Section -->
199
377
  <div class="sidebar-section">
200
378
  <div class="section-header" [class.expanded]="directMessagesExpanded" (click)="toggleDirectMessages()">
201
379
  <div class="section-title">
202
380
  <i class="fas fa-chevron-right"></i>
203
- <span>Direct Messages</span>
381
+ <span>Messages</span>
204
382
  </div>
205
383
  </div>
206
384
  <div class="chat-list" [class.expanded]="directMessagesExpanded">
207
- @for (conversation of conversationState.filteredConversations; track conversation.ID) {
385
+ @for (conversation of unpinnedConversations; track conversation.ID) {
208
386
  <div class="conversation-item"
209
387
  [class.active]="conversation.ID === conversationState.activeConversationId"
210
388
  [class.renamed]="conversation.ID === renamedConversationId"
@@ -221,21 +399,27 @@ export class ConversationListComponent {
221
399
  <div class="conversation-name">{{ conversation.Name }}</div>
222
400
  <div class="conversation-preview">{{ conversation.Description || 'No description' }}</div>
223
401
  </div>
224
- <div class="conversation-meta">
225
- @if (conversation.IsPinned) {
226
- <i class="fas fa-thumbtack pinned-icon"></i>
227
- }
228
- </div>
229
- <div class="conversation-actions" (click)="$event.stopPropagation()">
230
- <button class="action-btn" (click)="togglePin(conversation)" [title]="conversation.IsPinned ? 'Unpin' : 'Pin'" [class.pinned]="conversation.IsPinned">
231
- <i class="fas fa-thumbtack"></i>
232
- </button>
233
- <button class="action-btn" (click)="renameConversation(conversation)" title="Rename">
234
- <i class="fas fa-edit"></i>
235
- </button>
236
- <button class="action-btn danger" (click)="deleteConversation(conversation)" title="Delete">
237
- <i class="fas fa-trash"></i>
402
+ <div class="conversation-actions">
403
+ <button class="menu-btn" (click)="toggleMenu(conversation.ID, $event)" title="More options">
404
+ <i class="fas fa-ellipsis"></i>
238
405
  </button>
406
+ @if (openMenuConversationId === conversation.ID) {
407
+ <div class="context-menu" (click)="$event.stopPropagation()">
408
+ <button class="menu-item" (click)="togglePin(conversation, $event)">
409
+ <i class="fas fa-thumbtack"></i>
410
+ <span>Pin</span>
411
+ </button>
412
+ <button class="menu-item" (click)="renameConversation(conversation); closeMenu()">
413
+ <i class="fas fa-edit"></i>
414
+ <span>Rename</span>
415
+ </button>
416
+ <div class="menu-divider"></div>
417
+ <button class="menu-item danger" (click)="deleteConversation(conversation); closeMenu()">
418
+ <i class="fas fa-trash"></i>
419
+ <span>Delete</span>
420
+ </button>
421
+ </div>
422
+ }
239
423
  </div>
240
424
  </div>
241
425
  }
@@ -243,13 +427,16 @@ export class ConversationListComponent {
243
427
  </div>
244
428
  </div>
245
429
  </div>
246
- `, 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 .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 40px 6px 28px;\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 }\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; padding-right: 8px; }\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 display: flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n opacity: 0;\n transition: opacity 0.2s;\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 10;\n }\n .conversation-item.active .conversation-actions { opacity: 1; }\n .conversation-item:has(.pinned-icon) .conversation-actions { opacity: 1; }\n .pinned-icon { color: #AAE7FD; font-size: 12px; }\n .action-btn {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n color: rgba(255,255,255,0.6);\n background: transparent;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n }\n .action-btn:hover { background: rgba(255,255,255,0.2); color: white; }\n .action-btn.pinned { color: #AAE7FD; }\n .action-btn.danger:hover { background: rgba(239,68,68,0.3); color: #ff6b6b; }\n .action-btn i { font-size: 11px; }\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 "] }]
430
+ `, 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 }\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 "] }]
247
431
  }], () => [{ type: i1.ConversationStateService }, { type: i2.DialogService }, { type: i3.NotificationService }, { type: i4.ToastService }], { environmentId: [{
248
432
  type: Input
249
433
  }], currentUser: [{
250
434
  type: Input
251
435
  }], renamedConversationId: [{
252
436
  type: Input
437
+ }], onDocumentClick: [{
438
+ type: HostListener,
439
+ args: ['document:click']
253
440
  }] }); })();
254
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationListComponent, { className: "ConversationListComponent", filePath: "src/lib/components/conversation/conversation-list.component.ts", lineNumber: 255 }); })();
441
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationListComponent, { className: "ConversationListComponent", filePath: "src/lib/components/conversation/conversation-list.component.ts", lineNumber: 401 }); })();
255
442
  //# 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":"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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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"}
@@ -38,6 +38,12 @@ export declare class MentionDropdownComponent implements OnInit, OnDestroy {
38
38
  * Track by function for ngFor
39
39
  */
40
40
  trackBySuggestion(index: number, item: MentionSuggestion): string;
41
+ /**
42
+ * Get icon classes - supports both Font Awesome and custom CSS classes
43
+ * Font Awesome icons start with 'fa-' (e.g., 'fa-solid fa-robot')
44
+ * Custom icons use their own prefix (e.g., 'mj-icon-skip', 'acme-icon-custom')
45
+ */
46
+ getIconClasses(iconClass: string): string | string[];
41
47
  static ɵfac: i0.ɵɵFactoryDeclaration<MentionDropdownComponent, never>;
42
48
  static ɵcmp: i0.ɵɵComponentDeclaration<MentionDropdownComponent, "mj-mention-dropdown", never, { "suggestions": { "alias": "suggestions"; "required": false; }; "position": { "alias": "position"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "showAbove": { "alias": "showAbove"; "required": false; }; }, { "suggestionSelected": "suggestionSelected"; "closed": "closed"; }, never, never, false, never>;
43
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mention-dropdown.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/mention/mention-dropdown.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,MAAM,EACN,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;;AAEhF;;GAEG;AACH,qBAKa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IACvD,WAAW,EAAE,iBAAiB,EAAE,CAAM;IACtC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAuB;IAC9D,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,OAAO,CAAS;IAE1B,kBAAkB,kCAAyC;IAC3D,MAAM,qBAA4B;IAErC,aAAa,EAAE,MAAM,CAAK;;IAIjC,QAAQ,IAAI,IAAI;IAEhB,WAAW,IAAI,IAAI;IAEnB;;OAEG;IAEH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA4BzC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,MAAM;yCA9EtD,wBAAwB;2CAAxB,wBAAwB;CAiFpC"}
1
+ {"version":3,"file":"mention-dropdown.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/mention/mention-dropdown.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,MAAM,EACN,SAAS,EAEV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;;AAEhF;;GAEG;AACH,qBAQa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IACvD,WAAW,EAAE,iBAAiB,EAAE,CAAM;IACtC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAuB;IAC9D,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,OAAO,CAAS;IAE1B,kBAAkB,kCAAyC;IAC3D,MAAM,qBAA4B;IAErC,aAAa,EAAE,MAAM,CAAK;;IAIjC,QAAQ,IAAI,IAAI;IAEhB,WAAW,IAAI,IAAI;IAEnB;;OAEG;IAEH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA4BzC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAIrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,MAAM;IAIjE;;;;OAIG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE;yCAvFzC,wBAAwB;2CAAxB,wBAAwB;CAyGpC"}