@memberjunction/ng-conversations 3.4.0 → 4.1.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 (153) hide show
  1. package/README.md +287 -155
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +46 -41
  4. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  5. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  6. package/dist/lib/components/agent/active-agent-indicator.component.js +70 -68
  7. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  8. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  9. package/dist/lib/components/agent/agent-process-panel.component.js +13 -12
  10. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  11. package/dist/lib/components/artifact/artifact-share-modal.component.js +17 -15
  12. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  13. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  14. package/dist/lib/components/attachment/image-viewer.component.js +20 -21
  15. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  16. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  17. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +230 -233
  18. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  19. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  20. package/dist/lib/components/collection/artifact-create-modal.component.js +100 -103
  21. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  22. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  23. package/dist/lib/components/collection/collection-artifact-card.component.js +41 -33
  24. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  25. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  26. package/dist/lib/components/collection/collection-form-modal.component.js +85 -84
  27. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  28. package/dist/lib/components/collection/collection-share-modal.component.js +20 -15
  29. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  30. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  31. package/dist/lib/components/collection/collection-tree.component.js +13 -11
  32. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  33. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  34. package/dist/lib/components/collection/collection-view.component.js +67 -60
  35. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  36. package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -3
  37. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  38. package/dist/lib/components/collection/collections-full-view.component.js +619 -549
  39. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  40. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +3 -3
  41. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  42. package/dist/lib/components/conversation/conversation-chat-area.component.js +145 -143
  43. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  44. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  45. package/dist/lib/components/conversation/conversation-empty-state.component.js +44 -44
  46. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  47. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  48. package/dist/lib/components/conversation/conversation-list.component.js +18 -18
  49. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  50. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  51. package/dist/lib/components/dialogs/input-dialog.component.js +65 -57
  52. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  53. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  54. package/dist/lib/components/export/export-modal.component.js +126 -134
  55. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  56. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
  57. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +86 -79
  58. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  59. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  60. package/dist/lib/components/library/library-full-view.component.js +99 -87
  61. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  62. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  63. package/dist/lib/components/members/members-modal.component.js +124 -119
  64. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  65. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -1
  66. package/dist/lib/components/mention/mention-dropdown.component.js +50 -46
  67. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  68. package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
  69. package/dist/lib/components/mention/mention-editor.component.js +39 -38
  70. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  71. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
  72. package/dist/lib/components/message/actionable-commands.component.js +20 -21
  73. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  74. package/dist/lib/components/message/agent-response-form.component.d.ts.map +1 -1
  75. package/dist/lib/components/message/agent-response-form.component.js +79 -77
  76. package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
  77. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  78. package/dist/lib/components/message/conversation-message-rating.component.js +40 -39
  79. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  80. package/dist/lib/components/message/form-question.component.d.ts.map +1 -1
  81. package/dist/lib/components/message/form-question.component.js +142 -125
  82. package/dist/lib/components/message/form-question.component.js.map +1 -1
  83. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  84. package/dist/lib/components/message/message-input-box.component.js +10 -11
  85. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  86. package/dist/lib/components/message/message-input.component.d.ts +2 -2
  87. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  88. package/dist/lib/components/message/message-input.component.js +10 -11
  89. package/dist/lib/components/message/message-input.component.js.map +1 -1
  90. package/dist/lib/components/message/message-item.component.d.ts +2 -2
  91. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  92. package/dist/lib/components/message/message-item.component.js +121 -107
  93. package/dist/lib/components/message/message-item.component.js.map +1 -1
  94. package/dist/lib/components/message/message-list.component.d.ts +2 -2
  95. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  96. package/dist/lib/components/message/message-list.component.js +25 -27
  97. package/dist/lib/components/message/message-list.component.js.map +1 -1
  98. package/dist/lib/components/message/suggested-responses.component.d.ts +1 -1
  99. package/dist/lib/components/message/suggested-responses.component.d.ts.map +1 -1
  100. package/dist/lib/components/message/suggested-responses.component.js +34 -34
  101. package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
  102. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  103. package/dist/lib/components/navigation/conversation-navigation.component.js +3 -3
  104. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  105. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
  106. package/dist/lib/components/notification/activity-indicator.component.js +5 -5
  107. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  108. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
  109. package/dist/lib/components/notification/notification-badge.component.js +9 -6
  110. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  111. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  112. package/dist/lib/components/project/project-form-modal.component.js +7 -7
  113. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  114. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  115. package/dist/lib/components/project/project-selector.component.js +8 -8
  116. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  117. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  118. package/dist/lib/components/search/search-panel.component.js +32 -27
  119. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  120. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  121. package/dist/lib/components/share/share-modal.component.js +129 -131
  122. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  123. package/dist/lib/components/shared/user-picker.component.js +6 -6
  124. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  125. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  126. package/dist/lib/components/sidebar/conversation-sidebar.component.js +41 -37
  127. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  128. package/dist/lib/components/task/tasks-full-view.component.js +4 -5
  129. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  130. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  131. package/dist/lib/components/tasks/task-widget.component.js +144 -118
  132. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  133. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  134. package/dist/lib/components/tasks/tasks-dropdown.component.js +176 -149
  135. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  136. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  137. package/dist/lib/components/thread/thread-panel.component.js +7 -5
  138. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  139. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  140. package/dist/lib/components/toast/toast.component.js +10 -11
  141. package/dist/lib/components/toast/toast.component.js.map +1 -1
  142. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -5
  143. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  144. package/dist/lib/components/workspace/conversation-workspace.component.js +54 -49
  145. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  146. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  147. package/dist/lib/directives/search-shortcut.directive.js +3 -2
  148. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  149. package/dist/lib/services/mention-autocomplete.service.d.ts +6 -0
  150. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  151. package/dist/lib/services/mention-autocomplete.service.js +25 -2
  152. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  153. package/package.json +38 -38
@@ -3,13 +3,12 @@ import { Subject } from 'rxjs';
3
3
  import { takeUntil } from 'rxjs/operators';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../services/active-tasks.service";
6
- import * as i2 from "@angular/common";
7
- function GlobalTasksPanelComponent_div_0_button_1_Template(rf, ctx) { if (rf & 1) {
6
+ function GlobalTasksPanelComponent_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
8
7
  const _r1 = i0.ɵɵgetCurrentView();
9
- i0.ɵɵelementStart(0, "button", 4);
10
- i0.ɵɵlistener("click", function GlobalTasksPanelComponent_div_0_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.expand()); });
11
- i0.ɵɵelement(1, "i", 5);
12
- i0.ɵɵelementStart(2, "span", 6);
8
+ i0.ɵɵelementStart(0, "button", 3);
9
+ i0.ɵɵlistener("click", function GlobalTasksPanelComponent_Conditional_0_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.expand()); });
10
+ i0.ɵɵelement(1, "i", 4);
11
+ i0.ɵɵelementStart(2, "span", 5);
13
12
  i0.ɵɵtext(3);
14
13
  i0.ɵɵelementEnd()();
15
14
  } if (rf & 2) {
@@ -17,9 +16,9 @@ function GlobalTasksPanelComponent_div_0_button_1_Template(rf, ctx) { if (rf & 1
17
16
  i0.ɵɵadvance(3);
18
17
  i0.ɵɵtextInterpolate(ctx_r1.tasks.length);
19
18
  } }
20
- function GlobalTasksPanelComponent_div_0_div_2_div_9_div_5_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "div", 24);
22
- i0.ɵɵelement(1, "i", 25);
19
+ function GlobalTasksPanelComponent_Conditional_0_Conditional_2_For_10_Conditional_5_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "div", 17);
21
+ i0.ɵɵelement(1, "i", 22);
23
22
  i0.ɵɵelementStart(2, "span");
24
23
  i0.ɵɵtext(3);
25
24
  i0.ɵɵelementEnd()();
@@ -28,22 +27,22 @@ function GlobalTasksPanelComponent_div_0_div_2_div_9_div_5_Template(rf, ctx) { i
28
27
  i0.ɵɵadvance(3);
29
28
  i0.ɵɵtextInterpolate(task_r5.conversationName);
30
29
  } }
31
- function GlobalTasksPanelComponent_div_0_div_2_div_9_Template(rf, ctx) { if (rf & 1) {
30
+ function GlobalTasksPanelComponent_Conditional_0_Conditional_2_For_10_Template(rf, ctx) { if (rf & 1) {
32
31
  const _r4 = i0.ɵɵgetCurrentView();
33
- i0.ɵɵelementStart(0, "div", 15);
34
- i0.ɵɵlistener("click", function GlobalTasksPanelComponent_div_0_div_2_div_9_Template_div_click_0_listener() { const task_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTaskClick(task_r5)); });
35
- i0.ɵɵelementStart(1, "div", 16);
36
- i0.ɵɵelement(2, "i", 17);
37
- i0.ɵɵelementStart(3, "span", 18);
32
+ i0.ɵɵelementStart(0, "div", 13);
33
+ i0.ɵɵlistener("click", function GlobalTasksPanelComponent_Conditional_0_Conditional_2_For_10_Template_div_click_0_listener() { const task_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onTaskClick(task_r5)); });
34
+ i0.ɵɵelementStart(1, "div", 14);
35
+ i0.ɵɵelement(2, "i", 15);
36
+ i0.ɵɵelementStart(3, "span", 16);
38
37
  i0.ɵɵtext(4);
39
38
  i0.ɵɵelementEnd()();
40
- i0.ɵɵtemplate(5, GlobalTasksPanelComponent_div_0_div_2_div_9_div_5_Template, 4, 1, "div", 19);
41
- i0.ɵɵelementStart(6, "div", 20);
42
- i0.ɵɵelement(7, "span", 21);
43
- i0.ɵɵelementStart(8, "span", 22);
39
+ i0.ɵɵconditionalCreate(5, GlobalTasksPanelComponent_Conditional_0_Conditional_2_For_10_Conditional_5_Template, 4, 1, "div", 17);
40
+ i0.ɵɵelementStart(6, "div", 18);
41
+ i0.ɵɵelement(7, "span", 19);
42
+ i0.ɵɵelementStart(8, "span", 20);
44
43
  i0.ɵɵtext(9);
45
44
  i0.ɵɵelementEnd()();
46
- i0.ɵɵelementStart(10, "div", 23);
45
+ i0.ɵɵelementStart(10, "div", 21);
47
46
  i0.ɵɵtext(11);
48
47
  i0.ɵɵelementEnd()();
49
48
  } if (rf & 2) {
@@ -52,43 +51,44 @@ function GlobalTasksPanelComponent_div_0_div_2_div_9_Template(rf, ctx) { if (rf
52
51
  i0.ɵɵadvance(4);
53
52
  i0.ɵɵtextInterpolate(task_r5.agentName);
54
53
  i0.ɵɵadvance();
55
- i0.ɵɵproperty("ngIf", task_r5.conversationName);
54
+ i0.ɵɵconditional(task_r5.conversationName ? 5 : -1);
56
55
  i0.ɵɵadvance(4);
57
56
  i0.ɵɵtextInterpolate(ctx_r1.getTrimmedStatus(task_r5.status));
58
57
  i0.ɵɵadvance(2);
59
58
  i0.ɵɵtextInterpolate(ctx_r1.getElapsedTime(task_r5));
60
59
  } }
61
- function GlobalTasksPanelComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
60
+ function GlobalTasksPanelComponent_Conditional_0_Conditional_2_Template(rf, ctx) { if (rf & 1) {
62
61
  const _r3 = i0.ɵɵgetCurrentView();
63
- i0.ɵɵelementStart(0, "div", 7)(1, "div", 8)(2, "div", 9);
64
- i0.ɵɵelement(3, "i", 10);
62
+ i0.ɵɵelementStart(0, "div", 2)(1, "div", 6)(2, "div", 7);
63
+ i0.ɵɵelement(3, "i", 8);
65
64
  i0.ɵɵelementStart(4, "span");
66
65
  i0.ɵɵtext(5);
67
66
  i0.ɵɵelementEnd()();
68
- i0.ɵɵelementStart(6, "button", 11);
69
- i0.ɵɵlistener("click", function GlobalTasksPanelComponent_div_0_div_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.minimize()); });
70
- i0.ɵɵelement(7, "i", 12);
67
+ i0.ɵɵelementStart(6, "button", 9);
68
+ i0.ɵɵlistener("click", function GlobalTasksPanelComponent_Conditional_0_Conditional_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.minimize()); });
69
+ i0.ɵɵelement(7, "i", 10);
71
70
  i0.ɵɵelementEnd()();
72
- i0.ɵɵelementStart(8, "div", 13);
73
- i0.ɵɵtemplate(9, GlobalTasksPanelComponent_div_0_div_2_div_9_Template, 12, 4, "div", 14);
71
+ i0.ɵɵelementStart(8, "div", 11);
72
+ i0.ɵɵrepeaterCreate(9, GlobalTasksPanelComponent_Conditional_0_Conditional_2_For_10_Template, 12, 4, "div", 12, i0.ɵɵrepeaterTrackByIdentity);
74
73
  i0.ɵɵelementEnd()();
75
74
  } if (rf & 2) {
76
75
  const ctx_r1 = i0.ɵɵnextContext(2);
77
76
  i0.ɵɵadvance(5);
78
77
  i0.ɵɵtextInterpolate1("Active Tasks (", ctx_r1.tasks.length, ")");
79
78
  i0.ɵɵadvance(4);
80
- i0.ɵɵproperty("ngForOf", ctx_r1.tasks);
79
+ i0.ɵɵrepeater(ctx_r1.tasks);
81
80
  } }
82
- function GlobalTasksPanelComponent_div_0_Template(rf, ctx) { if (rf & 1) {
83
- i0.ɵɵelementStart(0, "div", 1);
84
- i0.ɵɵtemplate(1, GlobalTasksPanelComponent_div_0_button_1_Template, 4, 1, "button", 2)(2, GlobalTasksPanelComponent_div_0_div_2_Template, 10, 2, "div", 3);
81
+ function GlobalTasksPanelComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵelementStart(0, "div", 0);
83
+ i0.ɵɵconditionalCreate(1, GlobalTasksPanelComponent_Conditional_0_Conditional_1_Template, 4, 1, "button", 1);
84
+ i0.ɵɵconditionalCreate(2, GlobalTasksPanelComponent_Conditional_0_Conditional_2_Template, 11, 1, "div", 2);
85
85
  i0.ɵɵelementEnd();
86
86
  } if (rf & 2) {
87
87
  const ctx_r1 = i0.ɵɵnextContext();
88
88
  i0.ɵɵadvance();
89
- i0.ɵɵproperty("ngIf", ctx_r1.isMinimized);
89
+ i0.ɵɵconditional(ctx_r1.isMinimized ? 1 : -1);
90
90
  i0.ɵɵadvance();
91
- i0.ɵɵproperty("ngIf", !ctx_r1.isMinimized);
91
+ i0.ɵɵconditional(!ctx_r1.isMinimized ? 2 : -1);
92
92
  } }
93
93
  /**
94
94
  * Global floating tasks panel that shows all active tasks across all conversations
@@ -147,60 +147,67 @@ export class GlobalTasksPanelComponent {
147
147
  }
148
148
  }
149
149
  static ɵfac = function GlobalTasksPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GlobalTasksPanelComponent)(i0.ɵɵdirectiveInject(i1.ActiveTasksService)); };
150
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GlobalTasksPanelComponent, selectors: [["mj-global-tasks-panel"]], outputs: { taskClicked: "taskClicked" }, decls: 1, vars: 1, consts: [["class", "global-tasks-panel", 4, "ngIf"], [1, "global-tasks-panel"], ["class", "minimized-badge", "title", "View active tasks", 3, "click", 4, "ngIf"], ["class", "expanded-panel", 4, "ngIf"], ["title", "View active tasks", 1, "minimized-badge", 3, "click"], [1, "fas", "fa-bolt"], [1, "task-count"], [1, "expanded-panel"], [1, "panel-header"], [1, "header-left"], [1, "fas", "fa-circle-notch", "fa-spin"], ["title", "Minimize", 1, "minimize-btn", 3, "click"], [1, "fas", "fa-minus"], [1, "panel-content"], ["class", "task-item", 3, "click", 4, "ngFor", "ngForOf"], [1, "task-item", 3, "click"], [1, "task-header"], [1, "fas", "fa-robot"], [1, "task-agent"], ["class", "task-conversation", 4, "ngIf"], [1, "task-status"], [1, "status-indicator", "active"], [1, "status-text"], [1, "task-elapsed"], [1, "task-conversation"], [1, "fas", "fa-message"]], template: function GlobalTasksPanelComponent_Template(rf, ctx) { if (rf & 1) {
151
- i0.ɵɵtemplate(0, GlobalTasksPanelComponent_div_0_Template, 3, 2, "div", 0);
150
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GlobalTasksPanelComponent, selectors: [["mj-global-tasks-panel"]], outputs: { taskClicked: "taskClicked" }, standalone: false, decls: 1, vars: 1, consts: [[1, "global-tasks-panel"], ["title", "View active tasks", 1, "minimized-badge"], [1, "expanded-panel"], ["title", "View active tasks", 1, "minimized-badge", 3, "click"], [1, "fas", "fa-bolt"], [1, "task-count"], [1, "panel-header"], [1, "header-left"], [1, "fas", "fa-circle-notch", "fa-spin"], ["title", "Minimize", 1, "minimize-btn", 3, "click"], [1, "fas", "fa-minus"], [1, "panel-content"], [1, "task-item"], [1, "task-item", 3, "click"], [1, "task-header"], [1, "fas", "fa-robot"], [1, "task-agent"], [1, "task-conversation"], [1, "task-status"], [1, "status-indicator", "active"], [1, "status-text"], [1, "task-elapsed"], [1, "fas", "fa-message"]], template: function GlobalTasksPanelComponent_Template(rf, ctx) { if (rf & 1) {
151
+ i0.ɵɵconditionalCreate(0, GlobalTasksPanelComponent_Conditional_0_Template, 3, 2, "div", 0);
152
152
  } if (rf & 2) {
153
- i0.ɵɵproperty("ngIf", ctx.tasks.length > 0);
154
- } }, dependencies: [i2.NgForOf, i2.NgIf], styles: [".global-tasks-panel[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 9999;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n \n\n .minimized-badge[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border: none;\n border-radius: 50%;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n position: relative;\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n }\n\n .minimized-badge[_ngcontent-%COMP%]:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);\n }\n\n .minimized-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n margin-right: 4px;\n }\n\n .minimized-badge[_ngcontent-%COMP%] .task-count[_ngcontent-%COMP%] {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #ef4444;\n color: white;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 600;\n border: 2px solid white;\n }\n\n @keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n 50% {\n box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);\n }\n }\n\n \n\n .expanded-panel[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n width: 360px;\n max-height: 480px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: _ngcontent-%COMP%_slideIn 0.3s ease-out;\n }\n\n @keyframes _ngcontent-%COMP%_slideIn {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n }\n\n .header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 14px;\n }\n\n .header-left[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .minimize-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n border: none;\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .minimize-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .panel-content[_ngcontent-%COMP%] {\n overflow-y: auto;\n max-height: 420px;\n }\n\n .task-item[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #f3f4f6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .task-item[_ngcontent-%COMP%]:hover {\n background: #f9fafb;\n }\n\n .task-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .task-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .task-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #667eea;\n font-size: 14px;\n }\n\n .task-agent[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: #111827;\n }\n\n .task-conversation[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n margin-bottom: 6px;\n }\n\n .task-conversation[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n .task-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.active[_ngcontent-%COMP%] {\n background: #10b981;\n animation: _ngcontent-%COMP%_blink 2s ease-in-out infinite;\n }\n\n @keyframes _ngcontent-%COMP%_blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n .status-text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #4b5563;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .task-elapsed[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #9ca3af;\n font-variant-numeric: tabular-nums;\n }\n\n \n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n }\n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: #f9fafb;\n }\n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n }\n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #9ca3af;\n }"] });
153
+ i0.ɵɵconditional(ctx.tasks.length > 0 ? 0 : -1);
154
+ } }, styles: [".global-tasks-panel[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 9999;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n \n\n .minimized-badge[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border: none;\n border-radius: 50%;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n position: relative;\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n }\n\n .minimized-badge[_ngcontent-%COMP%]:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);\n }\n\n .minimized-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n margin-right: 4px;\n }\n\n .minimized-badge[_ngcontent-%COMP%] .task-count[_ngcontent-%COMP%] {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #ef4444;\n color: white;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 600;\n border: 2px solid white;\n }\n\n @keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n 50% {\n box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);\n }\n }\n\n \n\n .expanded-panel[_ngcontent-%COMP%] {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n width: 360px;\n max-height: 480px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: _ngcontent-%COMP%_slideIn 0.3s ease-out;\n }\n\n @keyframes _ngcontent-%COMP%_slideIn {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n .panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n }\n\n .header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 14px;\n }\n\n .header-left[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .minimize-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n border: none;\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .minimize-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .panel-content[_ngcontent-%COMP%] {\n overflow-y: auto;\n max-height: 420px;\n }\n\n .task-item[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #f3f4f6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .task-item[_ngcontent-%COMP%]:hover {\n background: #f9fafb;\n }\n\n .task-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .task-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .task-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #667eea;\n font-size: 14px;\n }\n\n .task-agent[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 13px;\n color: #111827;\n }\n\n .task-conversation[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n margin-bottom: 6px;\n }\n\n .task-conversation[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n .task-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.active[_ngcontent-%COMP%] {\n background: #10b981;\n animation: _ngcontent-%COMP%_blink 2s ease-in-out infinite;\n }\n\n @keyframes _ngcontent-%COMP%_blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n .status-text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #4b5563;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .task-elapsed[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #9ca3af;\n font-variant-numeric: tabular-nums;\n }\n\n \n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n }\n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: #f9fafb;\n }\n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n }\n\n .panel-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #9ca3af;\n }"] });
155
155
  }
156
156
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GlobalTasksPanelComponent, [{
157
157
  type: Component,
158
- args: [{ selector: 'mj-global-tasks-panel', template: `
159
- <div class="global-tasks-panel" *ngIf="tasks.length > 0">
160
- <!-- Minimized State -->
161
- <button
162
- *ngIf="isMinimized"
163
- class="minimized-badge"
164
- (click)="expand()"
165
- title="View active tasks">
166
- <i class="fas fa-bolt"></i>
167
- <span class="task-count">{{ tasks.length }}</span>
168
- </button>
169
-
170
- <!-- Expanded State -->
171
- <div *ngIf="!isMinimized" class="expanded-panel">
172
- <div class="panel-header">
173
- <div class="header-left">
174
- <i class="fas fa-circle-notch fa-spin"></i>
175
- <span>Active Tasks ({{ tasks.length }})</span>
176
- </div>
177
- <button class="minimize-btn" (click)="minimize()" title="Minimize">
178
- <i class="fas fa-minus"></i>
158
+ args: [{ standalone: false, selector: 'mj-global-tasks-panel', template: `
159
+ @if (tasks.length > 0) {
160
+ <div class="global-tasks-panel">
161
+ <!-- Minimized State -->
162
+ @if (isMinimized) {
163
+ <button
164
+ class="minimized-badge"
165
+ (click)="expand()"
166
+ title="View active tasks">
167
+ <i class="fas fa-bolt"></i>
168
+ <span class="task-count">{{ tasks.length }}</span>
179
169
  </button>
180
- </div>
181
-
182
- <div class="panel-content">
183
- <div class="task-item" *ngFor="let task of tasks" (click)="onTaskClick(task)">
184
- <div class="task-header">
185
- <i class="fas fa-robot"></i>
186
- <span class="task-agent">{{ task.agentName }}</span>
187
- </div>
188
- <div class="task-conversation" *ngIf="task.conversationName">
189
- <i class="fas fa-message"></i>
190
- <span>{{ task.conversationName }}</span>
170
+ }
171
+ <!-- Expanded State -->
172
+ @if (!isMinimized) {
173
+ <div class="expanded-panel">
174
+ <div class="panel-header">
175
+ <div class="header-left">
176
+ <i class="fas fa-circle-notch fa-spin"></i>
177
+ <span>Active Tasks ({{ tasks.length }})</span>
178
+ </div>
179
+ <button class="minimize-btn" (click)="minimize()" title="Minimize">
180
+ <i class="fas fa-minus"></i>
181
+ </button>
191
182
  </div>
192
- <div class="task-status">
193
- <span class="status-indicator active"></span>
194
- <span class="status-text">{{ getTrimmedStatus(task.status) }}</span>
183
+ <div class="panel-content">
184
+ @for (task of tasks; track task) {
185
+ <div class="task-item" (click)="onTaskClick(task)">
186
+ <div class="task-header">
187
+ <i class="fas fa-robot"></i>
188
+ <span class="task-agent">{{ task.agentName }}</span>
189
+ </div>
190
+ @if (task.conversationName) {
191
+ <div class="task-conversation">
192
+ <i class="fas fa-message"></i>
193
+ <span>{{ task.conversationName }}</span>
194
+ </div>
195
+ }
196
+ <div class="task-status">
197
+ <span class="status-indicator active"></span>
198
+ <span class="status-text">{{ getTrimmedStatus(task.status) }}</span>
199
+ </div>
200
+ <div class="task-elapsed">{{ getElapsedTime(task) }}</div>
201
+ </div>
202
+ }
195
203
  </div>
196
- <div class="task-elapsed">{{ getElapsedTime(task) }}</div>
197
204
  </div>
198
- </div>
205
+ }
199
206
  </div>
200
- </div>
201
- `, styles: ["\n .global-tasks-panel {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 9999;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n /* Minimized Badge */\n .minimized-badge {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border: none;\n border-radius: 50%;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n position: relative;\n animation: pulse 2s ease-in-out infinite;\n }\n\n .minimized-badge:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);\n }\n\n .minimized-badge i {\n font-size: 20px;\n margin-right: 4px;\n }\n\n .minimized-badge .task-count {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #ef4444;\n color: white;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 600;\n border: 2px solid white;\n }\n\n @keyframes pulse {\n 0%, 100% {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n 50% {\n box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);\n }\n }\n\n /* Expanded Panel */\n .expanded-panel {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n width: 360px;\n max-height: 480px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: slideIn 0.3s ease-out;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 14px;\n }\n\n .header-left i {\n font-size: 16px;\n }\n\n .minimize-btn {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n border: none;\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .minimize-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .panel-content {\n overflow-y: auto;\n max-height: 420px;\n }\n\n .task-item {\n padding: 12px 16px;\n border-bottom: 1px solid #f3f4f6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .task-item:hover {\n background: #f9fafb;\n }\n\n .task-item:last-child {\n border-bottom: none;\n }\n\n .task-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .task-header i {\n color: #667eea;\n font-size: 14px;\n }\n\n .task-agent {\n font-weight: 600;\n font-size: 13px;\n color: #111827;\n }\n\n .task-conversation {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n margin-bottom: 6px;\n }\n\n .task-conversation i {\n font-size: 11px;\n }\n\n .task-status {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.active {\n background: #10b981;\n animation: blink 2s ease-in-out infinite;\n }\n\n @keyframes blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n .status-text {\n font-size: 12px;\n color: #4b5563;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .task-elapsed {\n font-size: 11px;\n color: #9ca3af;\n font-variant-numeric: tabular-nums;\n }\n\n /* Scrollbar Styling */\n .panel-content::-webkit-scrollbar {\n width: 6px;\n }\n\n .panel-content::-webkit-scrollbar-track {\n background: #f9fafb;\n }\n\n .panel-content::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n }\n\n .panel-content::-webkit-scrollbar-thumb:hover {\n background: #9ca3af;\n }\n "] }]
207
+ }
208
+ `, styles: ["\n .global-tasks-panel {\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: 9999;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n /* Minimized Badge */\n .minimized-badge {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border: none;\n border-radius: 50%;\n width: 56px;\n height: 56px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n transition: all 0.3s ease;\n position: relative;\n animation: pulse 2s ease-in-out infinite;\n }\n\n .minimized-badge:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);\n }\n\n .minimized-badge i {\n font-size: 20px;\n margin-right: 4px;\n }\n\n .minimized-badge .task-count {\n position: absolute;\n top: -4px;\n right: -4px;\n background: #ef4444;\n color: white;\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 600;\n border: 2px solid white;\n }\n\n @keyframes pulse {\n 0%, 100% {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n 50% {\n box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);\n }\n }\n\n /* Expanded Panel */\n .expanded-panel {\n background: white;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n width: 360px;\n max-height: 480px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: slideIn 0.3s ease-out;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n .panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n font-size: 14px;\n }\n\n .header-left i {\n font-size: 16px;\n }\n\n .minimize-btn {\n background: rgba(255, 255, 255, 0.2);\n color: white;\n border: none;\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .minimize-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n }\n\n .panel-content {\n overflow-y: auto;\n max-height: 420px;\n }\n\n .task-item {\n padding: 12px 16px;\n border-bottom: 1px solid #f3f4f6;\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .task-item:hover {\n background: #f9fafb;\n }\n\n .task-item:last-child {\n border-bottom: none;\n }\n\n .task-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .task-header i {\n color: #667eea;\n font-size: 14px;\n }\n\n .task-agent {\n font-weight: 600;\n font-size: 13px;\n color: #111827;\n }\n\n .task-conversation {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n color: #6b7280;\n margin-bottom: 6px;\n }\n\n .task-conversation i {\n font-size: 11px;\n }\n\n .task-status {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .status-indicator.active {\n background: #10b981;\n animation: blink 2s ease-in-out infinite;\n }\n\n @keyframes blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n .status-text {\n font-size: 12px;\n color: #4b5563;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .task-elapsed {\n font-size: 11px;\n color: #9ca3af;\n font-variant-numeric: tabular-nums;\n }\n\n /* Scrollbar Styling */\n .panel-content::-webkit-scrollbar {\n width: 6px;\n }\n\n .panel-content::-webkit-scrollbar-track {\n background: #f9fafb;\n }\n\n .panel-content::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n }\n\n .panel-content::-webkit-scrollbar-thumb:hover {\n background: #9ca3af;\n }\n "] }]
202
209
  }], () => [{ type: i1.ActiveTasksService }], { taskClicked: [{
203
210
  type: Output
204
211
  }] }); })();
205
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GlobalTasksPanelComponent, { className: "GlobalTasksPanelComponent", filePath: "src/lib/components/global-tasks/global-tasks-panel.component.ts", lineNumber: 292 }); })();
212
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GlobalTasksPanelComponent, { className: "GlobalTasksPanelComponent", filePath: "src/lib/components/global-tasks/global-tasks-panel.component.ts", lineNumber: 300 }); })();
206
213
  //# sourceMappingURL=global-tasks-panel.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-tasks-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/global-tasks/global-tasks-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;;;IAWrC,iCAI4B;IAD1B,+LAAS,eAAQ,KAAC;IAElB,uBAA2B;IAC3B,+BAAyB;IAAA,YAAkB;IAC7C,AAD6C,iBAAO,EAC3C;;;IADkB,eAAkB;IAAlB,yCAAkB;;;IAqBvC,+BAA6D;IAC3D,wBAA8B;IAC9B,4BAAM;IAAA,YAA2B;IACnC,AADmC,iBAAO,EACpC;;;IADE,eAA2B;IAA3B,8CAA2B;;;;IAPrC,+BAA8E;IAA5B,yNAAS,2BAAiB,KAAC;IAC3E,+BAAyB;IACvB,wBAA4B;IAC5B,gCAAyB;IAAA,YAAoB;IAC/C,AAD+C,iBAAO,EAChD;IACN,6FAA6D;IAI7D,+BAAyB;IACvB,2BAA6C;IAC7C,gCAA0B;IAAA,YAAmC;IAC/D,AAD+D,iBAAO,EAChE;IACN,gCAA0B;IAAA,aAA0B;IACtD,AADsD,iBAAM,EACtD;;;;IAXuB,eAAoB;IAApB,uCAAoB;IAEf,cAA2B;IAA3B,+CAA2B;IAM/B,eAAmC;IAAnC,6DAAmC;IAErC,eAA0B;IAA1B,oDAA0B;;;;IAvBtD,AADF,AADF,8BAAiD,aACrB,aACC;IACvB,wBAA2C;IAC3C,4BAAM;IAAA,YAAiC;IACzC,AADyC,iBAAO,EAC1C;IACN,kCAAmE;IAAtC,4LAAS,iBAAU,KAAC;IAC/C,wBAA4B;IAEhC,AADE,iBAAS,EACL;IAEN,+BAA2B;IACzB,wFAA8E;IAgBlF,AADE,iBAAM,EACF;;;IAxBM,eAAiC;IAAjC,iEAAiC;IAQD,eAAQ;IAAR,sCAAQ;;;IAxBtD,8BAAyD;IAYvD,AAVA,sFAI4B,oEAMqB;IA6BnD,iBAAM;;;IAtCD,cAAiB;IAAjB,yCAAiB;IASd,cAAkB;IAAlB,0CAAkB;;AAnB9B;;;GAGG;AA2RH,MAAM,OAAO,yBAAyB;IAQhB;IAPb,KAAK,GAAiB,EAAE,CAAC;IACzB,WAAW,GAAY,KAAK,CAAC;IAE5B,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAE7B,WAAW,GAAG,IAAI,YAAY,EAAc,CAAC;IAEvD,YAAoB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAE9D,QAAQ;QACN,4BAA4B;QAC5B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CACjC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,sDAAsD;YACtD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9C,2CAA2C;YAC7C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,IAAgB;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,qCAAqC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1E,CAAC;IAED,cAAc,CAAC,IAAgB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAEvC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,EAAE,GAAG,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,GAAG,CAAC;QACvB,CAAC;IACH,CAAC;mHA5DU,yBAAyB;6DAAzB,yBAAyB;YAvRlC,0EAAyD;;YAAxB,2CAAsB;;;iFAuR9C,yBAAyB;cA1RrC,SAAS;2BACE,uBAAuB,YACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CT;mDAmPS,WAAW;kBAApB,MAAM;;kFANI,yBAAyB"}
1
+ {"version":3,"file":"global-tasks-panel.component.js","sourceRoot":"","sources":["../../../../src/lib/components/global-tasks/global-tasks-panel.component.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"library-full-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/library/library-full-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;;AAEjE;;;GAGG;AACH,qBAyQa,wBAAyB,YAAW,MAAM;IAC5C,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEzB,WAAW,EAAE,gBAAgB,EAAE,CAAM;IACrC,mBAAmB,EAAE,gBAAgB,EAAE,CAAM;IAC7C,WAAW,EAAE,MAAM,CAAM;IACzB,SAAS,EAAE,OAAO,CAAS;IAC3B,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IACtD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;;IAIjD,QAAQ;IAIF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BtC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,WAAW;IAYnB,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAOlD,UAAU,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUrD,cAAc,IAAI,IAAI;IAOtB,OAAO,IAAI,IAAI;yCAtFJ,wBAAwB;2CAAxB,wBAAwB;CAyFpC"}
1
+ {"version":3,"file":"library-full-view.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/library/library-full-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAW,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;;AAEjE;;;GAGG;AACH,qBAsRa,wBAAyB,YAAW,MAAM;IAC5C,aAAa,EAAG,MAAM,CAAC;IACvB,WAAW,EAAG,QAAQ,CAAC;IAEzB,WAAW,EAAE,gBAAgB,EAAE,CAAM;IACrC,mBAAmB,EAAE,gBAAgB,EAAE,CAAM;IAC7C,WAAW,EAAE,MAAM,CAAM;IACzB,SAAS,EAAE,OAAO,CAAS;IAC3B,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IACtD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;;IAIjD,QAAQ;IAIF,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BtC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,WAAW;IAYnB,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAOlD,UAAU,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAUrD,cAAc,IAAI,IAAI;IAOtB,OAAO,IAAI,IAAI;yCAtFJ,wBAAwB;2CAAxB,wBAAwB;CAyFpC"}