@memberjunction/ng-conversations 2.104.0 → 2.105.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,5 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CompositeKey, KeyValuePair, Metadata } from '@memberjunction/core';
2
3
  import { BaseAngularComponent } from '@memberjunction/ng-base-types';
3
4
  import { Subject, takeUntil } from 'rxjs';
4
5
  import { AIEngineBase } from '@memberjunction/ai-engine-base';
@@ -7,17 +8,18 @@ import * as i1 from "../../services/conversation-state.service";
7
8
  import * as i2 from "../../services/artifact-state.service";
8
9
  import * as i3 from "@angular/common";
9
10
  import * as i4 from "@progress/kendo-angular-dialog";
10
- import * as i5 from "../navigation/conversation-navigation.component";
11
- import * as i6 from "../sidebar/conversation-sidebar.component";
12
- import * as i7 from "../conversation/conversation-chat-area.component";
13
- import * as i8 from "../artifact/artifact-panel.component";
14
- import * as i9 from "../collection/collections-full-view.component";
15
- import * as i10 from "../search/search-panel.component";
16
- import * as i11 from "../toast/toast.component";
17
- import * as i12 from "../../directives/search-shortcut.directive";
11
+ import * as i5 from "@memberjunction/ng-artifacts";
12
+ import * as i6 from "../task/tasks-full-view.component";
13
+ import * as i7 from "../navigation/conversation-navigation.component";
14
+ import * as i8 from "../sidebar/conversation-sidebar.component";
15
+ import * as i9 from "../conversation/conversation-chat-area.component";
16
+ import * as i10 from "../collection/collections-full-view.component";
17
+ import * as i11 from "../search/search-panel.component";
18
+ import * as i12 from "../toast/toast.component";
19
+ import * as i13 from "../../directives/search-shortcut.directive";
18
20
  function ConversationWorkspaceComponent_div_4_Template(rf, ctx) { if (rf & 1) {
19
- i0.ɵɵelementStart(0, "div", 9);
20
- i0.ɵɵelement(1, "mj-conversation-sidebar", 10);
21
+ i0.ɵɵelementStart(0, "div", 8);
22
+ i0.ɵɵelement(1, "mj-conversation-sidebar", 9);
21
23
  i0.ɵɵelementEnd();
22
24
  } if (rf & 2) {
23
25
  const ctx_r0 = i0.ɵɵnextContext();
@@ -27,13 +29,13 @@ function ConversationWorkspaceComponent_div_4_Template(rf, ctx) { if (rf & 1) {
27
29
  } }
28
30
  function ConversationWorkspaceComponent_div_5_Template(rf, ctx) { if (rf & 1) {
29
31
  const _r2 = i0.ɵɵgetCurrentView();
30
- i0.ɵɵelementStart(0, "div", 11);
32
+ i0.ɵɵelementStart(0, "div", 10);
31
33
  i0.ɵɵlistener("mousedown", function ConversationWorkspaceComponent_div_5_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onSidebarResizeStart($event)); });
32
34
  i0.ɵɵelementEnd();
33
35
  } }
34
36
  function ConversationWorkspaceComponent_div_6_Template(rf, ctx) { if (rf & 1) {
35
- i0.ɵɵelementStart(0, "div", 12);
36
- i0.ɵɵelement(1, "mj-collections-full-view", 13);
37
+ i0.ɵɵelementStart(0, "div", 11);
38
+ i0.ɵɵelement(1, "mj-collections-full-view", 12);
37
39
  i0.ɵɵelementEnd();
38
40
  } if (rf & 2) {
39
41
  const ctx_r0 = i0.ɵɵnextContext();
@@ -42,23 +44,39 @@ function ConversationWorkspaceComponent_div_6_Template(rf, ctx) { if (rf & 1) {
42
44
  } }
43
45
  function ConversationWorkspaceComponent_div_7_Template(rf, ctx) { if (rf & 1) {
44
46
  const _r3 = i0.ɵɵgetCurrentView();
45
- i0.ɵɵelementStart(0, "div", 12)(1, "mj-conversation-chat-area", 14);
46
- i0.ɵɵlistener("conversationRenamed", function ConversationWorkspaceComponent_div_7_Template_mj_conversation_chat_area_conversationRenamed_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onConversationRenamed($event)); })("openEntityRecord", function ConversationWorkspaceComponent_div_7_Template_mj_conversation_chat_area_openEntityRecord_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onOpenEntityRecord($event)); });
47
+ i0.ɵɵelementStart(0, "div", 11)(1, "mj-tasks-full-view", 13);
48
+ i0.ɵɵlistener("openEntityRecord", function ConversationWorkspaceComponent_div_7_Template_mj_tasks_full_view_openEntityRecord_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onOpenEntityRecordFromTasks($event)); });
47
49
  i0.ɵɵelementEnd()();
48
50
  } if (rf & 2) {
49
51
  const ctx_r0 = i0.ɵɵnextContext();
50
52
  i0.ɵɵadvance();
51
- i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser);
53
+ i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser)("baseFilter", ctx_r0.tasksFilter)("activeTaskId", ctx_r0.activeTaskId);
52
54
  } }
53
55
  function ConversationWorkspaceComponent_div_8_Template(rf, ctx) { if (rf & 1) {
54
56
  const _r4 = i0.ɵɵgetCurrentView();
55
- i0.ɵɵelementStart(0, "div", 15)(1, "mj-artifact-panel", 16);
56
- i0.ɵɵlistener("close", function ConversationWorkspaceComponent_div_8_Template_mj_artifact_panel_close_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeArtifactPanel()); });
57
+ i0.ɵɵelementStart(0, "div", 11)(1, "mj-conversation-chat-area", 14);
58
+ i0.ɵɵlistener("conversationRenamed", function ConversationWorkspaceComponent_div_8_Template_mj_conversation_chat_area_conversationRenamed_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onConversationRenamed($event)); })("openEntityRecord", function ConversationWorkspaceComponent_div_8_Template_mj_conversation_chat_area_openEntityRecord_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onOpenEntityRecord($event)); })("taskClicked", function ConversationWorkspaceComponent_div_8_Template_mj_conversation_chat_area_taskClicked_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onTaskClicked($event)); });
59
+ i0.ɵɵelementEnd()();
60
+ } if (rf & 2) {
61
+ const ctx_r0 = i0.ɵɵnextContext();
62
+ i0.ɵɵadvance();
63
+ i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser);
64
+ } }
65
+ function ConversationWorkspaceComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
66
+ const _r5 = i0.ɵɵgetCurrentView();
67
+ i0.ɵɵelementStart(0, "div", 15);
68
+ i0.ɵɵlistener("mousedown", function ConversationWorkspaceComponent_Conditional_9_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onArtifactPanelResizeStart($event)); });
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(1, "div", 16)(2, "mj-artifact-viewer-panel", 17);
71
+ i0.ɵɵlistener("closed", function ConversationWorkspaceComponent_Conditional_9_Template_mj_artifact_viewer_panel_closed_2_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.closeArtifactPanel()); });
57
72
  i0.ɵɵelementEnd()();
58
73
  } if (rf & 2) {
74
+ let tmp_5_0;
59
75
  const ctx_r0 = i0.ɵɵnextContext();
60
76
  i0.ɵɵadvance();
61
- i0.ɵɵproperty("currentUser", ctx_r0.currentUser);
77
+ i0.ɵɵstyleProp("width", ctx_r0.artifactPanelWidth, "%");
78
+ i0.ɵɵadvance();
79
+ i0.ɵɵproperty("artifactId", ctx_r0.activeArtifactId)("currentUser", ctx_r0.currentUser)("environmentId", ctx_r0.environmentId)("versionNumber", (tmp_5_0 = ctx_r0.activeVersionNumber) !== null && tmp_5_0 !== undefined ? tmp_5_0 : undefined)("showSaveToCollection", ctx_r0.activeTab !== "collections");
62
80
  } }
63
81
  /**
64
82
  * Top-level workspace component for conversations
@@ -74,34 +92,82 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
74
92
  currentUser;
75
93
  activeContext;
76
94
  contextItemId;
95
+ // Navigation properties for external control (deep linking from URL)
96
+ set activeTabInput(value) {
97
+ if (value && value !== this.activeTab) {
98
+ this.activeTab = value;
99
+ }
100
+ }
101
+ set activeConversationInput(value) {
102
+ if (value && value !== this.conversationState.activeConversationId) {
103
+ // TODO: Navigate to this conversation
104
+ console.log('🔗 Deep link to conversation:', value);
105
+ }
106
+ }
107
+ set activeCollectionInput(value) {
108
+ if (value) {
109
+ // TODO: Navigate to this collection (collections not yet fully integrated with state service)
110
+ console.log('🔗 Deep link to collection:', value);
111
+ }
112
+ }
113
+ set activeArtifactInput(value) {
114
+ if (value && value !== this.activeArtifactId) {
115
+ this.activeArtifactId = value;
116
+ // TODO: Open this artifact in viewer
117
+ console.log('🔗 Deep link to artifact:', value);
118
+ }
119
+ }
120
+ set activeTaskInput(value) {
121
+ if (value && value !== this._activeTaskId) {
122
+ this._activeTaskId = value;
123
+ }
124
+ }
125
+ _activeTaskId;
126
+ get activeTaskId() {
127
+ return this._activeTaskId;
128
+ }
77
129
  conversationChanged = new EventEmitter();
78
130
  artifactOpened = new EventEmitter();
79
131
  openEntityRecord = new EventEmitter();
132
+ navigationChanged = new EventEmitter();
80
133
  activeTab = 'conversations';
81
134
  isSidebarVisible = true;
82
135
  isArtifactPanelOpen = false;
83
136
  isSearchPanelOpen = false;
84
137
  renamedConversationId = null;
85
- // Resize state
138
+ activeArtifactId = null;
139
+ activeVersionNumber = null;
140
+ // Resize state - Sidebar
86
141
  sidebarWidth = 260; // Default width
87
142
  isSidebarResizing = false;
88
143
  sidebarResizeStartX = 0;
89
144
  sidebarResizeStartWidth = 0;
145
+ // Resize state - Artifact Panel
146
+ artifactPanelWidth = 40; // Default 40% width
147
+ isArtifactPanelResizing = false;
148
+ artifactPanelResizeStartX = 0;
149
+ artifactPanelResizeStartWidth = 0;
90
150
  previousConversationId = null;
151
+ previousTaskId = undefined;
152
+ previousArtifactId = null;
91
153
  destroy$ = new Subject();
92
154
  // LocalStorage keys
93
155
  SIDEBAR_WIDTH_KEY = 'mj-conversations-sidebar-width';
156
+ ARTIFACT_PANEL_WIDTH_KEY = 'mj-artifact-panel-width';
157
+ // Task filter for conversation-specific filtering
158
+ tasksFilter = '1=1';
94
159
  constructor(conversationState, artifactState) {
95
160
  super();
96
161
  this.conversationState = conversationState;
97
162
  this.artifactState = artifactState;
98
163
  }
99
164
  async ngOnInit() {
100
- // Load saved sidebar width from localStorage
165
+ // Load saved widths from localStorage
101
166
  this.loadSidebarWidth();
167
+ this.loadArtifactPanelWidth();
102
168
  // Setup resize listeners
103
- window.addEventListener('mousemove', this.onSidebarResizeMove.bind(this));
104
- window.addEventListener('mouseup', this.onSidebarResizeEnd.bind(this));
169
+ window.addEventListener('mousemove', this.onResizeMove.bind(this));
170
+ window.addEventListener('mouseup', this.onResizeEnd.bind(this));
105
171
  // Initialize AI Engine to load agent metadata cache
106
172
  // This ensures agent names and icons are available for display
107
173
  try {
@@ -117,6 +183,18 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
117
183
  .subscribe(isOpen => {
118
184
  this.isArtifactPanelOpen = isOpen;
119
185
  });
186
+ // Subscribe to active artifact ID
187
+ this.artifactState.activeArtifactId$
188
+ .pipe(takeUntil(this.destroy$))
189
+ .subscribe(id => {
190
+ this.activeArtifactId = id;
191
+ });
192
+ // Subscribe to active version number
193
+ this.artifactState.activeVersionNumber$
194
+ .pipe(takeUntil(this.destroy$))
195
+ .subscribe(versionNumber => {
196
+ this.activeVersionNumber = versionNumber;
197
+ });
120
198
  // Set initial conversation if provided
121
199
  if (this.initialConversationId) {
122
200
  this.conversationState.setActiveConversation(this.initialConversationId);
@@ -126,6 +204,32 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
126
204
  this.activeTab = 'collections';
127
205
  }
128
206
  // Task context will be handled by chat header dropdown, not navigation tabs
207
+ // Build task filter for conversations domain
208
+ this.buildTasksFilter();
209
+ }
210
+ /**
211
+ * Builds the SQL filter for tasks in conversations the user has access to
212
+ */
213
+ buildTasksFilter() {
214
+ // Filter tasks by conversations the user owns or is a participant in, or tasks owned
215
+ // by the user
216
+ const md = new Metadata();
217
+ const cd = md.EntityByName('Conversation Details');
218
+ const c = md.EntityByName('Conversations');
219
+ if (!cd || !c) {
220
+ console.warn('⚠️ Missing metadata for Conversations or Conversation Details');
221
+ this.tasksFilter = `ParentID IS NULL AND UserID = '${this.currentUser.ID}'`; // Fallback to user-owned tasks only
222
+ return;
223
+ }
224
+ this.tasksFilter = `ParentID IS NULL AND (UserID = '${this.currentUser.ID}' OR ConversationDetailID IN (
225
+ SELECT ID FROM [${cd.SchemaName}].[${cd.BaseView}]
226
+ WHERE
227
+ UserID ='${this.currentUser.ID}' OR
228
+ ConversationID IN (
229
+ SELECT ID FROM [${c.SchemaName}].[${c.BaseView}] WHERE UserID='${this.currentUser.ID}'
230
+ )
231
+ ))`;
232
+ console.log('📝 Conversations domain tasks filter built:', this.tasksFilter);
129
233
  }
130
234
  ngDoCheck() {
131
235
  // Detect conversation changes and emit event
@@ -135,6 +239,40 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
135
239
  const conversation = this.conversationState.activeConversation;
136
240
  if (conversation) {
137
241
  this.conversationChanged.emit(conversation);
242
+ // Also emit navigationChanged for URL updates (only if on conversations tab)
243
+ if (this.activeTab === 'conversations' && currentId) {
244
+ this.navigationChanged.emit({
245
+ tab: 'conversations',
246
+ conversationId: currentId
247
+ });
248
+ }
249
+ }
250
+ }
251
+ // Detect task selection changes (when on tasks tab)
252
+ if (this.activeTab === 'tasks') {
253
+ const currentTaskId = this.activeTaskId;
254
+ if (currentTaskId !== this.previousTaskId) {
255
+ this.previousTaskId = currentTaskId;
256
+ if (currentTaskId) {
257
+ this.navigationChanged.emit({
258
+ tab: 'tasks',
259
+ taskId: currentTaskId
260
+ });
261
+ }
262
+ }
263
+ }
264
+ // Detect artifact selection changes (when on collections tab)
265
+ if (this.activeTab === 'collections') {
266
+ const currentArtifactId = this.activeArtifactId;
267
+ if (currentArtifactId !== this.previousArtifactId) {
268
+ this.previousArtifactId = currentArtifactId;
269
+ if (currentArtifactId) {
270
+ this.navigationChanged.emit({
271
+ tab: 'collections',
272
+ artifactId: currentArtifactId
273
+ // TODO: Add collectionId when collections are integrated with state service
274
+ });
275
+ }
138
276
  }
139
277
  }
140
278
  }
@@ -142,11 +280,31 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
142
280
  this.destroy$.next();
143
281
  this.destroy$.complete();
144
282
  // Remove resize listeners
145
- window.removeEventListener('mousemove', this.onSidebarResizeMove.bind(this));
146
- window.removeEventListener('mouseup', this.onSidebarResizeEnd.bind(this));
283
+ window.removeEventListener('mousemove', this.onResizeMove.bind(this));
284
+ window.removeEventListener('mouseup', this.onResizeEnd.bind(this));
147
285
  }
148
286
  onTabChanged(tab) {
149
287
  this.activeTab = tab;
288
+ // Emit navigation change event with current state
289
+ const navEvent = {
290
+ tab: tab
291
+ };
292
+ if (tab === 'conversations') {
293
+ navEvent.conversationId = this.conversationState.activeConversationId || undefined;
294
+ }
295
+ else if (tab === 'collections') {
296
+ // TODO: Get active collection ID from collections state service when integrated
297
+ navEvent.collectionId = undefined;
298
+ navEvent.artifactId = this.activeArtifactId || undefined;
299
+ }
300
+ else if (tab === 'tasks') {
301
+ navEvent.taskId = this.activeTaskId || undefined;
302
+ }
303
+ this.navigationChanged.emit(navEvent);
304
+ // Auto-close artifact panel when switching away from collections
305
+ if (tab === 'conversations' || tab === 'tasks') {
306
+ this.artifactState.closeArtifact();
307
+ }
150
308
  }
151
309
  toggleSidebar() {
152
310
  this.isSidebarVisible = !this.isSidebarVisible;
@@ -184,23 +342,51 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
184
342
  document.body.style.cursor = 'col-resize';
185
343
  document.body.style.userSelect = 'none';
186
344
  }
187
- onSidebarResizeMove(event) {
188
- if (!this.isSidebarResizing)
189
- return;
190
- const deltaX = event.clientX - this.sidebarResizeStartX;
191
- let newWidth = this.sidebarResizeStartWidth + deltaX;
192
- // Constrain between 200px and 500px
193
- newWidth = Math.max(200, Math.min(500, newWidth));
194
- this.sidebarWidth = newWidth;
345
+ /**
346
+ * Artifact panel resize methods
347
+ */
348
+ onArtifactPanelResizeStart(event) {
349
+ this.isArtifactPanelResizing = true;
350
+ this.artifactPanelResizeStartX = event.clientX;
351
+ this.artifactPanelResizeStartWidth = this.artifactPanelWidth;
352
+ event.preventDefault();
353
+ document.body.style.cursor = 'col-resize';
354
+ document.body.style.userSelect = 'none';
355
+ }
356
+ onResizeMove(event) {
357
+ if (this.isSidebarResizing) {
358
+ const deltaX = event.clientX - this.sidebarResizeStartX;
359
+ let newWidth = this.sidebarResizeStartWidth + deltaX;
360
+ // Constrain between 200px and 500px
361
+ newWidth = Math.max(200, Math.min(500, newWidth));
362
+ this.sidebarWidth = newWidth;
363
+ }
364
+ else if (this.isArtifactPanelResizing) {
365
+ const container = document.querySelector('.workspace-content');
366
+ if (!container)
367
+ return;
368
+ const containerWidth = container.offsetWidth;
369
+ const deltaX = event.clientX - this.artifactPanelResizeStartX;
370
+ const deltaPercent = (deltaX / containerWidth) * -100; // Negative because we're pulling from the right
371
+ let newWidth = this.artifactPanelResizeStartWidth + deltaPercent;
372
+ // Constrain between 20% and 70%
373
+ newWidth = Math.max(20, Math.min(70, newWidth));
374
+ this.artifactPanelWidth = newWidth;
375
+ }
195
376
  }
196
- onSidebarResizeEnd(event) {
377
+ onResizeEnd(event) {
197
378
  if (this.isSidebarResizing) {
198
379
  this.isSidebarResizing = false;
199
380
  document.body.style.cursor = '';
200
381
  document.body.style.userSelect = '';
201
- // Save to localStorage
202
382
  this.saveSidebarWidth();
203
383
  }
384
+ else if (this.isArtifactPanelResizing) {
385
+ this.isArtifactPanelResizing = false;
386
+ document.body.style.cursor = '';
387
+ document.body.style.userSelect = '';
388
+ this.saveArtifactPanelWidth();
389
+ }
204
390
  }
205
391
  /**
206
392
  * LocalStorage persistence methods
@@ -227,6 +413,28 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
227
413
  console.warn('Failed to save sidebar width to localStorage:', error);
228
414
  }
229
415
  }
416
+ loadArtifactPanelWidth() {
417
+ try {
418
+ const saved = localStorage.getItem(this.ARTIFACT_PANEL_WIDTH_KEY);
419
+ if (saved) {
420
+ const width = parseFloat(saved);
421
+ if (!isNaN(width) && width >= 20 && width <= 70) {
422
+ this.artifactPanelWidth = width;
423
+ }
424
+ }
425
+ }
426
+ catch (error) {
427
+ console.warn('Failed to load artifact panel width from localStorage:', error);
428
+ }
429
+ }
430
+ saveArtifactPanelWidth() {
431
+ try {
432
+ localStorage.setItem(this.ARTIFACT_PANEL_WIDTH_KEY, this.artifactPanelWidth.toString());
433
+ }
434
+ catch (error) {
435
+ console.warn('Failed to save artifact panel width to localStorage:', error);
436
+ }
437
+ }
230
438
  onConversationRenamed(event) {
231
439
  console.log('✨ Workspace received rename event:', event);
232
440
  // Trigger animation in sidebar by setting the ID
@@ -240,42 +448,64 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
240
448
  // Pass the event up to the parent component (chat-wrapper in explorer-core)
241
449
  this.openEntityRecord.emit(event);
242
450
  }
451
+ onOpenEntityRecordFromTasks(event) {
452
+ // Convert from tasks format (recordId) to workspace format (compositeKey)
453
+ const compositeKey = new CompositeKey([
454
+ new KeyValuePair('ID', event.recordId)
455
+ ]);
456
+ this.openEntityRecord.emit({
457
+ entityName: event.entityName,
458
+ compositeKey
459
+ });
460
+ }
461
+ onTaskClicked(task) {
462
+ // Switch to Tasks tab and set active task ID
463
+ this.activeTab = 'tasks';
464
+ this._activeTaskId = task.ID;
465
+ // Emit navigation change
466
+ this.navigationChanged.emit({
467
+ tab: 'tasks',
468
+ taskId: task.ID
469
+ });
470
+ }
243
471
  static ɵfac = function ConversationWorkspaceComponent_Factory(t) { return new (t || ConversationWorkspaceComponent)(i0.ɵɵdirectiveInject(i1.ConversationStateService), i0.ɵɵdirectiveInject(i2.ArtifactStateService)); };
244
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationWorkspaceComponent, selectors: [["mj-conversation-workspace"]], inputs: { environmentId: "environmentId", initialConversationId: "initialConversationId", layout: "layout", currentUser: "currentUser", activeContext: "activeContext", contextItemId: "contextItemId" }, outputs: { conversationChanged: "conversationChanged", artifactOpened: "artifactOpened", openEntityRecord: "openEntityRecord" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 11, consts: [["mjSearchShortcut", "", "kendoDialogContainer", "", 1, "conversation-workspace", 3, "searchTriggered"], [1, "workspace-navigation"], [3, "tabChanged", "sidebarToggled", "searchTriggered", "activeTab", "environmentId"], [1, "workspace-content"], ["class", "workspace-sidebar", 3, "width", 4, "ngIf"], ["class", "sidebar-resize-handle", 3, "mousedown", 4, "ngIf"], ["class", "workspace-main", 4, "ngIf"], ["class", "workspace-artifact-panel", 4, "ngIf"], [3, "close", "resultSelected", "isOpen", "environmentId", "currentUser"], [1, "workspace-sidebar"], [3, "activeTab", "environmentId", "currentUser", "renamedConversationId"], [1, "sidebar-resize-handle", 3, "mousedown"], [1, "workspace-main"], [3, "environmentId", "currentUser"], [3, "conversationRenamed", "openEntityRecord", "environmentId", "currentUser"], [1, "workspace-artifact-panel"], [3, "close", "currentUser"]], template: function ConversationWorkspaceComponent_Template(rf, ctx) { if (rf & 1) {
472
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConversationWorkspaceComponent, selectors: [["mj-conversation-workspace"]], inputs: { environmentId: "environmentId", initialConversationId: "initialConversationId", layout: "layout", currentUser: "currentUser", activeContext: "activeContext", contextItemId: "contextItemId", activeTabInput: "activeTabInput", activeConversationInput: "activeConversationInput", activeCollectionInput: "activeCollectionInput", activeArtifactInput: "activeArtifactInput", activeTaskInput: "activeTaskInput" }, outputs: { conversationChanged: "conversationChanged", artifactOpened: "artifactOpened", openEntityRecord: "openEntityRecord", navigationChanged: "navigationChanged" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 12, consts: [["mjSearchShortcut", "", "kendoDialogContainer", "", 1, "conversation-workspace", 3, "searchTriggered"], [1, "workspace-navigation"], [3, "tabChanged", "sidebarToggled", "searchTriggered", "activeTab", "environmentId"], [1, "workspace-content"], ["class", "workspace-sidebar", 3, "width", 4, "ngIf"], ["class", "sidebar-resize-handle", 3, "mousedown", 4, "ngIf"], ["class", "workspace-main", 4, "ngIf"], [3, "close", "resultSelected", "isOpen", "environmentId", "currentUser"], [1, "workspace-sidebar"], [3, "activeTab", "environmentId", "currentUser", "renamedConversationId"], [1, "sidebar-resize-handle", 3, "mousedown"], [1, "workspace-main"], [3, "environmentId", "currentUser"], [3, "openEntityRecord", "environmentId", "currentUser", "baseFilter", "activeTaskId"], [3, "conversationRenamed", "openEntityRecord", "taskClicked", "environmentId", "currentUser"], [1, "artifact-panel-resize-handle", 3, "mousedown"], [1, "workspace-artifact-panel"], [3, "closed", "artifactId", "currentUser", "environmentId", "versionNumber", "showSaveToCollection"]], template: function ConversationWorkspaceComponent_Template(rf, ctx) { if (rf & 1) {
245
473
  i0.ɵɵelementStart(0, "div", 0);
246
474
  i0.ɵɵlistener("searchTriggered", function ConversationWorkspaceComponent_Template_div_searchTriggered_0_listener() { return ctx.openSearch(); });
247
475
  i0.ɵɵelementStart(1, "div", 1)(2, "mj-conversation-navigation", 2);
248
476
  i0.ɵɵlistener("tabChanged", function ConversationWorkspaceComponent_Template_mj_conversation_navigation_tabChanged_2_listener($event) { return ctx.onTabChanged($event); })("sidebarToggled", function ConversationWorkspaceComponent_Template_mj_conversation_navigation_sidebarToggled_2_listener() { return ctx.toggleSidebar(); })("searchTriggered", function ConversationWorkspaceComponent_Template_mj_conversation_navigation_searchTriggered_2_listener() { return ctx.openSearch(); });
249
477
  i0.ɵɵelementEnd()();
250
478
  i0.ɵɵelementStart(3, "div", 3);
251
- i0.ɵɵtemplate(4, ConversationWorkspaceComponent_div_4_Template, 2, 6, "div", 4)(5, ConversationWorkspaceComponent_div_5_Template, 1, 0, "div", 5)(6, ConversationWorkspaceComponent_div_6_Template, 2, 2, "div", 6)(7, ConversationWorkspaceComponent_div_7_Template, 2, 2, "div", 6)(8, ConversationWorkspaceComponent_div_8_Template, 2, 1, "div", 7);
479
+ i0.ɵɵtemplate(4, ConversationWorkspaceComponent_div_4_Template, 2, 6, "div", 4)(5, ConversationWorkspaceComponent_div_5_Template, 1, 0, "div", 5)(6, ConversationWorkspaceComponent_div_6_Template, 2, 2, "div", 6)(7, ConversationWorkspaceComponent_div_7_Template, 2, 4, "div", 6)(8, ConversationWorkspaceComponent_div_8_Template, 2, 2, "div", 6)(9, ConversationWorkspaceComponent_Conditional_9_Template, 3, 7);
252
480
  i0.ɵɵelementEnd();
253
- i0.ɵɵelementStart(9, "mj-search-panel", 8);
254
- i0.ɵɵlistener("close", function ConversationWorkspaceComponent_Template_mj_search_panel_close_9_listener() { return ctx.closeSearch(); })("resultSelected", function ConversationWorkspaceComponent_Template_mj_search_panel_resultSelected_9_listener($event) { return ctx.handleSearchResult($event); });
481
+ i0.ɵɵelementStart(10, "mj-search-panel", 7);
482
+ i0.ɵɵlistener("close", function ConversationWorkspaceComponent_Template_mj_search_panel_close_10_listener() { return ctx.closeSearch(); })("resultSelected", function ConversationWorkspaceComponent_Template_mj_search_panel_resultSelected_10_listener($event) { return ctx.handleSearchResult($event); });
255
483
  i0.ɵɵelementEnd();
256
- i0.ɵɵelement(10, "mj-toast");
484
+ i0.ɵɵelement(11, "mj-toast");
257
485
  i0.ɵɵelementEnd();
258
486
  } if (rf & 2) {
259
487
  i0.ɵɵattribute("data-layout", ctx.layout);
260
488
  i0.ɵɵadvance(2);
261
489
  i0.ɵɵproperty("activeTab", ctx.activeTab)("environmentId", ctx.environmentId);
262
490
  i0.ɵɵadvance(2);
263
- i0.ɵɵproperty("ngIf", ctx.isSidebarVisible && ctx.activeTab !== "collections");
491
+ i0.ɵɵproperty("ngIf", ctx.isSidebarVisible && ctx.activeTab !== "collections" && ctx.activeTab !== "tasks");
264
492
  i0.ɵɵadvance();
265
- i0.ɵɵproperty("ngIf", ctx.isSidebarVisible && ctx.activeTab !== "collections");
493
+ i0.ɵɵproperty("ngIf", ctx.isSidebarVisible && ctx.activeTab !== "collections" && ctx.activeTab !== "tasks");
266
494
  i0.ɵɵadvance();
267
495
  i0.ɵɵproperty("ngIf", ctx.activeTab === "collections");
268
496
  i0.ɵɵadvance();
269
- i0.ɵɵproperty("ngIf", ctx.activeTab !== "collections");
497
+ i0.ɵɵproperty("ngIf", ctx.activeTab === "tasks");
498
+ i0.ɵɵadvance();
499
+ i0.ɵɵproperty("ngIf", ctx.activeTab !== "collections" && ctx.activeTab !== "tasks");
270
500
  i0.ɵɵadvance();
271
- i0.ɵɵproperty("ngIf", ctx.isArtifactPanelOpen);
501
+ i0.ɵɵconditional(ctx.isArtifactPanelOpen && ctx.activeArtifactId ? 9 : -1);
272
502
  i0.ɵɵadvance();
273
503
  i0.ɵɵproperty("isOpen", ctx.isSearchPanelOpen)("environmentId", ctx.environmentId)("currentUser", ctx.currentUser);
274
- } }, dependencies: [i3.NgIf, i4.DialogContainerDirective, i5.ConversationNavigationComponent, i6.ConversationSidebarComponent, i7.ConversationChatAreaComponent, i8.ArtifactPanelComponent, i9.CollectionsFullViewComponent, i10.SearchPanelComponent, i11.ToastComponent, i12.SearchShortcutDirective], styles: [".conversation-workspace[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: calc(100vh - 123px); \n\n background-color: #F4F4F4;\n position: relative;\n}\n\n.workspace-navigation[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 48px;\n background-color: #092340;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n}\n\n.workspace-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-sidebar[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background-color: #092340;\n border-right: 1px solid #D9D9D9;\n overflow-y: auto;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n cursor: col-resize;\n flex-shrink: 0;\n position: relative;\n transition: background-color 0.2s;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%]:hover {\n background: #3B82F6;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -4px;\n right: -4px;\n top: 0;\n bottom: 0;\n}\n\n.workspace-main[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background-color: #FFF;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-main[_ngcontent-%COMP%] > mj-conversation-chat-area[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n.workspace-artifact-panel[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 500px;\n background-color: #FFF;\n border-left: 1px solid #D9D9D9;\n overflow: hidden;\n}\n\n\n\n.conversation-workspace[data-layout=\"compact\"][_ngcontent-%COMP%] .workspace-sidebar[_ngcontent-%COMP%] {\n width: 240px;\n}\n\n.conversation-workspace[data-layout=\"compact\"][_ngcontent-%COMP%] .workspace-artifact-panel[_ngcontent-%COMP%] {\n width: 400px;\n}\n\n\n\n.conversation-workspace[data-layout=\"embedded\"][_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.conversation-workspace[data-layout=\"embedded\"][_ngcontent-%COMP%] .workspace-navigation[_ngcontent-%COMP%] {\n height: 48px;\n}\n\n\n\n@media (max-width: 1024px) {\n .workspace-sidebar[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n }\n\n .workspace-artifact-panel[_ngcontent-%COMP%] {\n position: fixed;\n right: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.1);\n }\n}"] });
504
+ } }, dependencies: [i3.NgIf, i4.DialogContainerDirective, i5.ArtifactViewerPanelComponent, i6.TasksFullViewComponent, i7.ConversationNavigationComponent, i8.ConversationSidebarComponent, i9.ConversationChatAreaComponent, i10.CollectionsFullViewComponent, i11.SearchPanelComponent, i12.ToastComponent, i13.SearchShortcutDirective], styles: [".conversation-workspace[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: calc(100vh - 123px); \n\n background-color: #F4F4F4;\n position: relative;\n}\n\n.workspace-navigation[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 48px;\n background-color: #092340;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n}\n\n.workspace-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-sidebar[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background-color: #092340;\n border-right: 1px solid #D9D9D9;\n overflow-y: auto;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n cursor: ew-resize;\n flex-shrink: 0;\n position: relative;\n transition: background-color 0.2s;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%]:hover {\n background: #1e40af;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%]:active {\n background: #1e3a8a;\n}\n\n.sidebar-resize-handle[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n left: -4px;\n right: -4px;\n top: 0;\n bottom: 0;\n cursor: ew-resize;\n}\n\n.workspace-main[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n background-color: #FFF;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-main[_ngcontent-%COMP%] > mj-conversation-chat-area[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n.workspace-artifact-panel[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background-color: #FFF;\n overflow: hidden;\n min-width: 300px;\n max-width: 70%;\n}\n\n.artifact-panel-resize-handle[_ngcontent-%COMP%] {\n width: 4px;\n background-color: transparent;\n cursor: ew-resize;\n flex-shrink: 0;\n transition: background-color 0.2s;\n position: relative;\n z-index: 10;\n}\n\n\n\n.artifact-panel-resize-handle[_ngcontent-%COMP%]::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: -4px;\n right: -4px;\n cursor: ew-resize;\n}\n\n.artifact-panel-resize-handle[_ngcontent-%COMP%]:hover {\n background-color: #1e40af;\n}\n\n.artifact-panel-resize-handle[_ngcontent-%COMP%]:active {\n background-color: #1e3a8a;\n}\n\n\n\n.conversation-workspace[data-layout=\"compact\"][_ngcontent-%COMP%] .workspace-sidebar[_ngcontent-%COMP%] {\n width: 240px;\n}\n\n.conversation-workspace[data-layout=\"compact\"][_ngcontent-%COMP%] .workspace-artifact-panel[_ngcontent-%COMP%] {\n width: 400px;\n}\n\n\n\n.conversation-workspace[data-layout=\"embedded\"][_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.conversation-workspace[data-layout=\"embedded\"][_ngcontent-%COMP%] .workspace-navigation[_ngcontent-%COMP%] {\n height: 48px;\n}\n\n\n\n@media (max-width: 1024px) {\n .workspace-sidebar[_ngcontent-%COMP%] {\n position: absolute;\n left: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n }\n\n .workspace-artifact-panel[_ngcontent-%COMP%] {\n position: fixed;\n right: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.1);\n }\n}"] });
275
505
  }
276
506
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConversationWorkspaceComponent, [{
277
507
  type: Component,
278
- args: [{ selector: 'mj-conversation-workspace', template: "<div class=\"conversation-workspace\" [attr.data-layout]=\"layout\" mjSearchShortcut (searchTriggered)=\"openSearch()\" kendoDialogContainer>\n <!-- Top Navigation Bar -->\n <div class=\"workspace-navigation\">\n <mj-conversation-navigation\n [activeTab]=\"activeTab\"\n [environmentId]=\"environmentId\"\n (tabChanged)=\"onTabChanged($event)\"\n (sidebarToggled)=\"toggleSidebar()\"\n (searchTriggered)=\"openSearch()\">\n </mj-conversation-navigation>\n </div>\n\n <div class=\"workspace-content\">\n <!-- Left Sidebar (hidden when Collections view is active) -->\n <div class=\"workspace-sidebar\" *ngIf=\"isSidebarVisible && activeTab !== 'collections'\" [style.width.px]=\"sidebarWidth\">\n <mj-conversation-sidebar\n [activeTab]=\"activeTab\"\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n [renamedConversationId]=\"renamedConversationId\">\n </mj-conversation-sidebar>\n </div>\n\n <!-- Resize handle for sidebar -->\n <div class=\"sidebar-resize-handle\" *ngIf=\"isSidebarVisible && activeTab !== 'collections'\" (mousedown)=\"onSidebarResizeStart($event)\"></div>\n\n <!-- Collections Full-Panel View -->\n <div class=\"workspace-main\" *ngIf=\"activeTab === 'collections'\">\n <mj-collections-full-view\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\">\n </mj-collections-full-view>\n </div>\n\n <!-- Main Chat Area (only shown when not in Collections view) -->\n <div class=\"workspace-main\" *ngIf=\"activeTab !== 'collections'\">\n <mj-conversation-chat-area\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n (conversationRenamed)=\"onConversationRenamed($event)\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\">\n </mj-conversation-chat-area>\n </div>\n\n <!-- Right Artifact Panel -->\n <div class=\"workspace-artifact-panel\" *ngIf=\"isArtifactPanelOpen\">\n <mj-artifact-panel\n [currentUser]=\"currentUser\"\n (close)=\"closeArtifactPanel()\">\n </mj-artifact-panel>\n </div>\n </div>\n\n <!-- Global Search Panel -->\n <mj-search-panel\n [isOpen]=\"isSearchPanelOpen\"\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n (close)=\"closeSearch()\"\n (resultSelected)=\"handleSearchResult($event)\">\n </mj-search-panel>\n\n <!-- Toast Notifications -->\n <mj-toast></mj-toast>\n</div>", styles: [".conversation-workspace {\n display: flex;\n flex-direction: column;\n height: calc(100vh - 123px); /* Account for parent app header (~60px) */\n background-color: #F4F4F4;\n position: relative;\n}\n\n.workspace-navigation {\n flex-shrink: 0;\n height: 48px;\n background-color: #092340;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n}\n\n.workspace-content {\n flex: 1;\n display: flex;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-sidebar {\n flex-shrink: 0;\n background-color: #092340;\n border-right: 1px solid #D9D9D9;\n overflow-y: auto;\n}\n\n.sidebar-resize-handle {\n width: 4px;\n background: transparent;\n cursor: col-resize;\n flex-shrink: 0;\n position: relative;\n transition: background-color 0.2s;\n}\n\n.sidebar-resize-handle:hover {\n background: #3B82F6;\n}\n\n.sidebar-resize-handle::before {\n content: '';\n position: absolute;\n left: -4px;\n right: -4px;\n top: 0;\n bottom: 0;\n}\n\n.workspace-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n background-color: #FFF;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-main > mj-conversation-chat-area {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n.workspace-artifact-panel {\n flex-shrink: 0;\n width: 500px;\n background-color: #FFF;\n border-left: 1px solid #D9D9D9;\n overflow: hidden;\n}\n\n/* Compact layout */\n.conversation-workspace[data-layout=\"compact\"] .workspace-sidebar {\n width: 240px;\n}\n\n.conversation-workspace[data-layout=\"compact\"] .workspace-artifact-panel {\n width: 400px;\n}\n\n/* Embedded layout */\n.conversation-workspace[data-layout=\"embedded\"] {\n height: 100%;\n}\n\n.conversation-workspace[data-layout=\"embedded\"] .workspace-navigation {\n height: 48px;\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .workspace-sidebar {\n position: absolute;\n left: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n }\n\n .workspace-artifact-panel {\n position: fixed;\n right: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.1);\n }\n}"] }]
508
+ args: [{ selector: 'mj-conversation-workspace', template: "<div class=\"conversation-workspace\" [attr.data-layout]=\"layout\" mjSearchShortcut (searchTriggered)=\"openSearch()\" kendoDialogContainer>\n <!-- Top Navigation Bar -->\n <div class=\"workspace-navigation\">\n <mj-conversation-navigation\n [activeTab]=\"activeTab\"\n [environmentId]=\"environmentId\"\n (tabChanged)=\"onTabChanged($event)\"\n (sidebarToggled)=\"toggleSidebar()\"\n (searchTriggered)=\"openSearch()\">\n </mj-conversation-navigation>\n </div>\n\n <div class=\"workspace-content\">\n <!-- Left Sidebar (hidden when Collections or Tasks view is active) -->\n <div class=\"workspace-sidebar\" *ngIf=\"isSidebarVisible && activeTab !== 'collections' && activeTab !== 'tasks'\" [style.width.px]=\"sidebarWidth\">\n <mj-conversation-sidebar\n [activeTab]=\"activeTab\"\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n [renamedConversationId]=\"renamedConversationId\">\n </mj-conversation-sidebar>\n </div>\n\n <!-- Resize handle for sidebar -->\n <div class=\"sidebar-resize-handle\" *ngIf=\"isSidebarVisible && activeTab !== 'collections' && activeTab !== 'tasks'\" (mousedown)=\"onSidebarResizeStart($event)\"></div>\n\n <!-- Collections Full-Panel View -->\n <div class=\"workspace-main\" *ngIf=\"activeTab === 'collections'\">\n <mj-collections-full-view\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\">\n </mj-collections-full-view>\n </div>\n\n <!-- Tasks Full-Panel View -->\n <div class=\"workspace-main\" *ngIf=\"activeTab === 'tasks'\">\n <mj-tasks-full-view\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n [baseFilter]=\"tasksFilter\"\n [activeTaskId]=\"activeTaskId\"\n (openEntityRecord)=\"onOpenEntityRecordFromTasks($event)\">\n </mj-tasks-full-view>\n </div>\n\n <!-- Main Chat Area (only shown when not in Collections or Tasks view) -->\n <div class=\"workspace-main\" *ngIf=\"activeTab !== 'collections' && activeTab !== 'tasks'\">\n <mj-conversation-chat-area\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n (conversationRenamed)=\"onConversationRenamed($event)\"\n (openEntityRecord)=\"onOpenEntityRecord($event)\"\n (taskClicked)=\"onTaskClicked($event)\">\n </mj-conversation-chat-area>\n </div>\n\n <!-- Right Artifact Panel -->\n @if (isArtifactPanelOpen && activeArtifactId) {\n <div class=\"artifact-panel-resize-handle\" (mousedown)=\"onArtifactPanelResizeStart($event)\"></div>\n <div class=\"workspace-artifact-panel\" [style.width.%]=\"artifactPanelWidth\">\n <mj-artifact-viewer-panel\n [artifactId]=\"activeArtifactId\"\n [currentUser]=\"currentUser\"\n [environmentId]=\"environmentId\"\n [versionNumber]=\"activeVersionNumber ?? undefined\"\n [showSaveToCollection]=\"activeTab !== 'collections'\"\n (closed)=\"closeArtifactPanel()\">\n </mj-artifact-viewer-panel>\n </div>\n }\n </div>\n\n <!-- Global Search Panel -->\n <mj-search-panel\n [isOpen]=\"isSearchPanelOpen\"\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n (close)=\"closeSearch()\"\n (resultSelected)=\"handleSearchResult($event)\">\n </mj-search-panel>\n\n <!-- Toast Notifications -->\n <mj-toast></mj-toast>\n</div>", styles: [".conversation-workspace {\n display: flex;\n flex-direction: column;\n height: calc(100vh - 123px); /* Account for parent app header (~60px) */\n background-color: #F4F4F4;\n position: relative;\n}\n\n.workspace-navigation {\n flex-shrink: 0;\n height: 48px;\n background-color: #092340;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n}\n\n.workspace-content {\n flex: 1;\n display: flex;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-sidebar {\n flex-shrink: 0;\n background-color: #092340;\n border-right: 1px solid #D9D9D9;\n overflow-y: auto;\n}\n\n.sidebar-resize-handle {\n width: 4px;\n background: transparent;\n cursor: ew-resize;\n flex-shrink: 0;\n position: relative;\n transition: background-color 0.2s;\n}\n\n.sidebar-resize-handle:hover {\n background: #1e40af;\n}\n\n.sidebar-resize-handle:active {\n background: #1e3a8a;\n}\n\n.sidebar-resize-handle::before {\n content: '';\n position: absolute;\n left: -4px;\n right: -4px;\n top: 0;\n bottom: 0;\n cursor: ew-resize;\n}\n\n.workspace-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n background-color: #FFF;\n overflow: hidden;\n min-height: 0;\n}\n\n.workspace-main > mj-conversation-chat-area {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n\n.workspace-artifact-panel {\n flex-shrink: 0;\n background-color: #FFF;\n overflow: hidden;\n min-width: 300px;\n max-width: 70%;\n}\n\n.artifact-panel-resize-handle {\n width: 4px;\n background-color: transparent;\n cursor: ew-resize;\n flex-shrink: 0;\n transition: background-color 0.2s;\n position: relative;\n z-index: 10;\n}\n\n/* Wider hit area for easier grabbing */\n.artifact-panel-resize-handle::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: -4px;\n right: -4px;\n cursor: ew-resize;\n}\n\n.artifact-panel-resize-handle:hover {\n background-color: #1e40af;\n}\n\n.artifact-panel-resize-handle:active {\n background-color: #1e3a8a;\n}\n\n/* Compact layout */\n.conversation-workspace[data-layout=\"compact\"] .workspace-sidebar {\n width: 240px;\n}\n\n.conversation-workspace[data-layout=\"compact\"] .workspace-artifact-panel {\n width: 400px;\n}\n\n/* Embedded layout */\n.conversation-workspace[data-layout=\"embedded\"] {\n height: 100%;\n}\n\n.conversation-workspace[data-layout=\"embedded\"] .workspace-navigation {\n height: 48px;\n}\n\n/* Responsive */\n@media (max-width: 1024px) {\n .workspace-sidebar {\n position: absolute;\n left: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);\n }\n\n .workspace-artifact-panel {\n position: fixed;\n right: 0;\n top: 60px;\n bottom: 0;\n z-index: 100;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.1);\n }\n}"] }]
279
509
  }], () => [{ type: i1.ConversationStateService }, { type: i2.ArtifactStateService }], { environmentId: [{
280
510
  type: Input
281
511
  }], initialConversationId: [{
@@ -288,12 +518,24 @@ export class ConversationWorkspaceComponent extends BaseAngularComponent {
288
518
  type: Input
289
519
  }], contextItemId: [{
290
520
  type: Input
521
+ }], activeTabInput: [{
522
+ type: Input
523
+ }], activeConversationInput: [{
524
+ type: Input
525
+ }], activeCollectionInput: [{
526
+ type: Input
527
+ }], activeArtifactInput: [{
528
+ type: Input
529
+ }], activeTaskInput: [{
530
+ type: Input
291
531
  }], conversationChanged: [{
292
532
  type: Output
293
533
  }], artifactOpened: [{
294
534
  type: Output
295
535
  }], openEntityRecord: [{
296
536
  type: Output
537
+ }], navigationChanged: [{
538
+ type: Output
297
539
  }] }); })();
298
540
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ConversationWorkspaceComponent, { className: "ConversationWorkspaceComponent", filePath: "src/lib/components/workspace/conversation-workspace.component.ts", lineNumber: 30 }); })();
299
541
  //# sourceMappingURL=conversation-workspace.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-workspace.component.js","sourceRoot":"","sources":["../../../../src/lib/components/workspace/conversation-workspace.component.ts","../../../../src/lib/components/workspace/conversation-workspace.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-workspace.component.js","sourceRoot":"","sources":["../../../../src/lib/components/workspace/conversation-workspace.component.ts","../../../../src/lib/components/workspace/conversation-workspace.component.html"],"names":[],"mappings":"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"}