@memberjunction/ng-explorer-core 2.122.2 → 2.123.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +83 -18
  2. package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
  3. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +297 -93
  4. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
  5. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +12 -0
  6. package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
  7. package/dist/lib/resource-wrappers/dashboard-resource.component.js +91 -5
  8. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  9. package/dist/lib/resource-wrappers/view-resource.component.d.ts +57 -3
  10. package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
  11. package/dist/lib/resource-wrappers/view-resource.component.js +247 -30
  12. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
  13. package/dist/lib/shell/components/tabs/tab-container.component.d.ts +5 -0
  14. package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
  15. package/dist/lib/shell/components/tabs/tab-container.component.js +65 -31
  16. package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
  17. package/dist/lib/shell/shell.component.d.ts +4 -0
  18. package/dist/lib/shell/shell.component.d.ts.map +1 -1
  19. package/dist/lib/shell/shell.component.js +25 -9
  20. package/dist/lib/shell/shell.component.js.map +1 -1
  21. package/dist/module.d.ts +2 -1
  22. package/dist/module.d.ts.map +1 -1
  23. package/dist/module.js +7 -3
  24. package/dist/module.js.map +1 -1
  25. package/package.json +36 -34
@@ -4,74 +4,133 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, ViewEncapsulation } from '@angular/core';
7
+ import { Component, ViewEncapsulation, ViewChild } from '@angular/core';
8
8
  import { NavigationEnd } from '@angular/router';
9
9
  import { Metadata } from '@memberjunction/core';
10
10
  import { RegisterClass } from '@memberjunction/global';
11
11
  import { BaseResourceComponent } from '@memberjunction/ng-shared';
12
12
  import { EnvironmentEntityExtended } from '@memberjunction/core-entities';
13
- import { Subject, takeUntil, distinctUntilChanged, combineLatest, filter } from 'rxjs';
13
+ import { AIEngineBase } from '@memberjunction/ai-engine-base';
14
+ import { Subject, takeUntil, filter } from 'rxjs';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "@memberjunction/ng-shared";
16
17
  import * as i2 from "@memberjunction/ng-conversations";
17
18
  import * as i3 from "@angular/router";
18
19
  import * as i4 from "@angular/common";
19
- function ChatConversationsResource_mj_conversation_list_2_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelement(0, "mj-conversation-list", 5);
20
+ import * as i5 from "@memberjunction/ng-shared-generic";
21
+ const _c0 = ["conversationList"];
22
+ const _c1 = ["chatArea"];
23
+ function ChatConversationsResource_div_0_mj_conversation_list_2_Template(rf, ctx) { if (rf & 1) {
24
+ const _r1 = i0.ɵɵgetCurrentView();
25
+ i0.ɵɵelementStart(0, "mj-conversation-list", 9, 1);
26
+ i0.ɵɵlistener("conversationSelected", function ChatConversationsResource_div_0_mj_conversation_list_2_Template_mj_conversation_list_conversationSelected_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConversationSelected($event)); })("newConversationRequested", function ChatConversationsResource_div_0_mj_conversation_list_2_Template_mj_conversation_list_newConversationRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNewConversationRequested()); });
27
+ i0.ɵɵelementEnd();
21
28
  } if (rf & 2) {
22
- const ctx_r0 = i0.ɵɵnextContext();
23
- i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser);
29
+ const ctx_r1 = i0.ɵɵnextContext(2);
30
+ i0.ɵɵproperty("environmentId", ctx_r1.environmentId)("currentUser", ctx_r1.currentUser)("selectedConversationId", ctx_r1.selectedConversationId)("renamedConversationId", ctx_r1.renamedConversationId);
24
31
  } }
25
- function ChatConversationsResource_mj_conversation_chat_area_4_Template(rf, ctx) { if (rf & 1) {
26
- const _r2 = i0.ɵɵgetCurrentView();
27
- i0.ɵɵelementStart(0, "mj-conversation-chat-area", 6);
28
- i0.ɵɵlistener("artifactLinkClicked", function ChatConversationsResource_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_artifactLinkClicked_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onArtifactLinkClicked($event)); });
32
+ function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template(rf, ctx) { if (rf & 1) {
33
+ const _r3 = i0.ɵɵgetCurrentView();
34
+ i0.ɵɵelementStart(0, "mj-conversation-chat-area", 10, 2);
35
+ i0.ɵɵlistener("conversationRenamed", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_conversationRenamed_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConversationRenamed($event)); })("conversationCreated", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_conversationCreated_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onConversationCreated($event)); })("threadOpened", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_threadOpened_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onThreadOpened($event)); })("threadClosed", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_threadClosed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onThreadClosed()); })("pendingArtifactConsumed", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_pendingArtifactConsumed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPendingArtifactConsumed()); })("pendingMessageConsumed", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_pendingMessageConsumed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPendingMessageConsumed()); })("pendingMessageRequested", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_pendingMessageRequested_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPendingMessageRequested($event)); })("artifactLinkClicked", function ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template_mj_conversation_chat_area_artifactLinkClicked_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onArtifactLinkClicked($event)); });
29
36
  i0.ɵɵelementEnd();
30
37
  } if (rf & 2) {
31
- const ctx_r0 = i0.ɵɵnextContext();
32
- i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser);
38
+ const ctx_r1 = i0.ɵɵnextContext(2);
39
+ i0.ɵɵproperty("environmentId", ctx_r1.environmentId)("currentUser", ctx_r1.currentUser)("conversationId", ctx_r1.selectedConversationId)("conversation", ctx_r1.selectedConversation)("threadId", ctx_r1.selectedThreadId)("isNewConversation", ctx_r1.isNewUnsavedConversation)("pendingMessage", ctx_r1.pendingMessageToSend)("pendingArtifactId", ctx_r1.pendingArtifactId)("pendingArtifactVersionNumber", ctx_r1.pendingArtifactVersionNumber);
40
+ } }
41
+ function ChatConversationsResource_div_0_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5);
43
+ i0.ɵɵtemplate(2, ChatConversationsResource_div_0_mj_conversation_list_2_Template, 2, 4, "mj-conversation-list", 6);
44
+ i0.ɵɵelementEnd();
45
+ i0.ɵɵelementStart(3, "div", 7);
46
+ i0.ɵɵtemplate(4, ChatConversationsResource_div_0_mj_conversation_chat_area_4_Template, 2, 9, "mj-conversation-chat-area", 8);
47
+ i0.ɵɵelementEnd()();
48
+ } if (rf & 2) {
49
+ const ctx_r1 = i0.ɵɵnextContext();
50
+ i0.ɵɵadvance(2);
51
+ i0.ɵɵproperty("ngIf", ctx_r1.currentUser);
52
+ i0.ɵɵadvance(2);
53
+ i0.ɵɵproperty("ngIf", ctx_r1.currentUser);
54
+ } }
55
+ function ChatConversationsResource_ng_template_1_Template(rf, ctx) { if (rf & 1) {
56
+ i0.ɵɵelementStart(0, "div", 11);
57
+ i0.ɵɵelement(1, "mj-loading", 12);
58
+ i0.ɵɵelementEnd();
33
59
  } }
34
60
  export function LoadChatConversationsResource() {
35
61
  // Force inclusion in production builds (tree shaking workaround)
36
62
  // Using null placeholders since Angular DI provides actual instances
37
- const test = new ChatConversationsResource(null, null, null, null);
63
+ const test = new ChatConversationsResource(null, null, null, null, null);
38
64
  }
39
65
  /**
40
66
  * Chat Conversations Resource - wraps the conversation chat area for tab-based display
41
67
  * Extends BaseResourceComponent to work with the resource type system
42
68
  * Displays conversation list sidebar + active conversation chat interface
43
69
  * Designed to work with the tab system for multi-tab conversation management
70
+ *
71
+ * This component manages its own selection state locally, following the encapsulation pattern:
72
+ * - Services (ConversationDataService) are used for shared DATA (caching, loading, saving)
73
+ * - Local state variables manage SELECTION state (which conversation is active)
74
+ * - State flows down to children via @Input, events flow up via @Output
44
75
  */
45
76
  let ChatConversationsResource = class ChatConversationsResource extends BaseResourceComponent {
46
77
  navigationService;
47
- conversationState;
48
- artifactState;
78
+ conversationData;
49
79
  router;
80
+ mentionAutocompleteService;
81
+ cdr;
82
+ conversationList;
83
+ chatArea;
50
84
  currentUser = null;
51
85
  destroy$ = new Subject();
52
86
  skipUrlUpdate = true; // Skip URL updates during initialization
53
87
  lastNavigatedUrl = ''; // Track URL to avoid reacting to our own navigation
54
- constructor(navigationService, conversationState, artifactState, router) {
88
+ // Ready flag - blocks child rendering until AIEngine is initialized
89
+ isReady = false;
90
+ // LOCAL SELECTION STATE - each wrapper instance manages its own selection
91
+ selectedConversationId = null;
92
+ selectedConversation = null;
93
+ selectedThreadId = null;
94
+ isNewUnsavedConversation = false;
95
+ renamedConversationId = null;
96
+ // Pending navigation state
97
+ pendingArtifactId = null;
98
+ pendingArtifactVersionNumber = null;
99
+ pendingMessageToSend = null;
100
+ constructor(navigationService, conversationData, router, mentionAutocompleteService, cdr) {
55
101
  super();
56
102
  this.navigationService = navigationService;
57
- this.conversationState = conversationState;
58
- this.artifactState = artifactState;
103
+ this.conversationData = conversationData;
59
104
  this.router = router;
105
+ this.mentionAutocompleteService = mentionAutocompleteService;
106
+ this.cdr = cdr;
60
107
  }
61
- ngOnInit() {
108
+ async ngOnInit() {
62
109
  const md = new Metadata();
63
110
  this.currentUser = md.CurrentUser;
64
- // Parse URL first and apply state
111
+ // CRITICAL: Initialize AIEngine and mention service BEFORE children render
112
+ // This prevents the slow first-load issue where each child would trigger initialization
113
+ await this.initializeEngines();
114
+ // CRITICAL: Set selectedConversationId SYNCHRONOUSLY before child components initialize
115
+ // Parse URL first and apply state synchronously for the ID
65
116
  const urlState = this.parseUrlState();
66
117
  if (urlState) {
67
- this.applyUrlState(urlState);
118
+ // Set conversationId synchronously so child components see it immediately
119
+ if (urlState.conversationId) {
120
+ this.selectedConversationId = urlState.conversationId;
121
+ this.isNewUnsavedConversation = false;
122
+ }
123
+ if (urlState.artifactId) {
124
+ this.pendingArtifactId = urlState.artifactId;
125
+ this.pendingArtifactVersionNumber = urlState.versionNumber || null;
126
+ }
127
+ // Load the conversation entity asynchronously (non-blocking)
128
+ this.loadConversationEntity(urlState.conversationId);
68
129
  }
69
130
  else {
70
131
  // Check if we have navigation params from config (e.g., from Collections linking here)
71
- this.applyNavigationParams();
132
+ this.applyConfigurationParams();
72
133
  }
73
- // Subscribe to state changes to update URL
74
- this.subscribeToStateChanges();
75
134
  // Subscribe to router NavigationEnd events for back/forward button support
76
135
  this.router.events
77
136
  .pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this.destroy$))
@@ -94,6 +153,28 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
94
153
  this.destroy$.next();
95
154
  this.destroy$.complete();
96
155
  }
156
+ /**
157
+ * Initialize AI Engine and mention autocomplete service BEFORE child components render.
158
+ * This prevents the slow first-load issue where initialization would block conversation loading.
159
+ * The `false` parameter means "don't force refresh if already initialized".
160
+ */
161
+ async initializeEngines() {
162
+ try {
163
+ // Initialize AIEngine first - this is the heavy operation that loads all agents
164
+ await AIEngineBase.Instance.Config(false);
165
+ // Then initialize mention autocomplete service which uses the loaded agents
166
+ await this.mentionAutocompleteService.initialize(this.currentUser);
167
+ // Mark as ready - child components can now render
168
+ this.isReady = true;
169
+ this.cdr.detectChanges();
170
+ }
171
+ catch (error) {
172
+ console.error('Failed to initialize AI engines:', error);
173
+ // Still mark as ready so UI isn't blocked forever
174
+ this.isReady = true;
175
+ this.cdr.detectChanges();
176
+ }
177
+ }
97
178
  /**
98
179
  * Parse URL query string for conversation state.
99
180
  * Query params: conversationId, artifactId, versionNumber
@@ -117,53 +198,76 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
117
198
  };
118
199
  }
119
200
  /**
120
- * Apply URL state to conversation services.
201
+ * Load the conversation entity asynchronously (non-blocking).
202
+ * The conversationId is already set synchronously, this just loads the full entity.
121
203
  */
122
- applyUrlState(state) {
123
- // Set pending artifact if provided (must be set before activating conversation)
124
- if (state.artifactId) {
125
- this.conversationState.pendingArtifactId = state.artifactId;
126
- this.conversationState.pendingArtifactVersionNumber = state.versionNumber || null;
127
- }
128
- // Activate the target conversation if specified
129
- if (state.conversationId) {
130
- this.conversationState.setActiveConversation(state.conversationId);
204
+ async loadConversationEntity(conversationId) {
205
+ if (!conversationId)
206
+ return;
207
+ // Try to get from cache first
208
+ const conversation = this.conversationData.getConversationById(conversationId);
209
+ if (conversation) {
210
+ this.selectedConversation = conversation;
131
211
  }
212
+ // If not in cache, the chat area component will handle loading it
132
213
  }
133
214
  /**
134
- * Apply navigation parameters from configuration.
135
- * This handles deep-linking from other resources (e.g., clicking a link in Collections).
215
+ * Apply configuration params from resource data (e.g., from deep-linking via Collections).
216
+ * Sets state synchronously so child components see values immediately.
136
217
  */
137
- applyNavigationParams() {
218
+ applyConfigurationParams() {
138
219
  const config = this.Data?.Configuration;
139
220
  if (!config)
140
221
  return;
141
- // Set pending artifact if provided (must be set before activating conversation)
222
+ // Set pending artifact if provided
142
223
  if (config.artifactId) {
143
- this.conversationState.pendingArtifactId = config.artifactId;
144
- this.conversationState.pendingArtifactVersionNumber = config.versionNumber || null;
224
+ this.pendingArtifactId = config.artifactId;
225
+ this.pendingArtifactVersionNumber = config.versionNumber || null;
145
226
  }
146
- // Activate the target conversation if specified
227
+ // Set conversationId synchronously so child components see it immediately
147
228
  if (config.conversationId) {
148
- this.conversationState.setActiveConversation(config.conversationId);
229
+ this.selectedConversationId = config.conversationId;
230
+ this.isNewUnsavedConversation = false;
231
+ // Load entity asynchronously
232
+ this.loadConversationEntity(config.conversationId);
149
233
  }
150
234
  }
151
235
  /**
152
- * Subscribe to state changes from services to update URL.
236
+ * Apply navigation state to local selection state.
237
+ * Sets state synchronously so child components see values immediately.
153
238
  */
154
- subscribeToStateChanges() {
155
- // Combine conversation and artifact state changes
156
- combineLatest([
157
- this.conversationState.activeConversationId$.pipe(distinctUntilChanged()),
158
- this.artifactState.activeArtifactId$.pipe(distinctUntilChanged()),
159
- this.artifactState.activeVersionNumber$.pipe(distinctUntilChanged())
160
- ])
161
- .pipe(takeUntil(this.destroy$))
162
- .subscribe(() => {
163
- if (!this.skipUrlUpdate) {
164
- this.updateUrl();
165
- }
166
- });
239
+ applyNavigationState(state) {
240
+ // Set pending artifact if provided (will be consumed by chat area after loading)
241
+ if (state.artifactId) {
242
+ this.pendingArtifactId = state.artifactId;
243
+ this.pendingArtifactVersionNumber = state.versionNumber || null;
244
+ }
245
+ // Set the conversation synchronously
246
+ if (state.conversationId) {
247
+ this.selectedConversationId = state.conversationId;
248
+ this.isNewUnsavedConversation = false;
249
+ this.loadConversationEntity(state.conversationId);
250
+ }
251
+ }
252
+ /**
253
+ * Select a conversation by ID - loads the entity and updates local state
254
+ */
255
+ async selectConversation(conversationId) {
256
+ this.selectedConversationId = conversationId;
257
+ this.isNewUnsavedConversation = false;
258
+ // Load the conversation entity from data service
259
+ const conversation = this.conversationData.getConversationById(conversationId);
260
+ if (conversation) {
261
+ this.selectedConversation = conversation;
262
+ }
263
+ else {
264
+ // Conversation might not be loaded yet - the chat area will handle loading
265
+ this.selectedConversation = null;
266
+ }
267
+ // Update URL if not skipping
268
+ if (!this.skipUrlUpdate) {
269
+ this.updateUrl();
270
+ }
167
271
  }
168
272
  /**
169
273
  * Update URL query string to reflect current state.
@@ -172,17 +276,14 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
172
276
  updateUrl() {
173
277
  const params = new URLSearchParams();
174
278
  // Add conversation ID
175
- const conversationId = this.conversationState.activeConversationId;
176
- if (conversationId) {
177
- params.set('conversationId', conversationId);
279
+ if (this.selectedConversationId) {
280
+ params.set('conversationId', this.selectedConversationId);
178
281
  }
179
- // Add artifact ID if panel is open
180
- const artifactId = this.artifactState['_activeArtifactId$']?.value;
181
- if (artifactId) {
182
- params.set('artifactId', artifactId);
183
- const versionNumber = this.artifactState['_activeVersionNumber$']?.value;
184
- if (versionNumber) {
185
- params.set('versionNumber', versionNumber.toString());
282
+ // Add artifact ID if we have a pending artifact (will be cleared once opened)
283
+ if (this.pendingArtifactId) {
284
+ params.set('artifactId', this.pendingArtifactId);
285
+ if (this.pendingArtifactVersionNumber) {
286
+ params.set('versionNumber', this.pendingArtifactVersionNumber.toString());
186
287
  }
187
288
  }
188
289
  // Get current path without query string
@@ -212,12 +313,15 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
212
313
  // Apply the state without triggering URL updates
213
314
  this.skipUrlUpdate = true;
214
315
  if (urlState) {
215
- this.applyUrlState(urlState);
316
+ this.applyNavigationState(urlState);
216
317
  }
217
318
  else {
218
319
  // No params means clear state
219
- this.conversationState.setActiveConversation(null);
220
- this.artifactState.closeArtifact();
320
+ this.selectedConversationId = null;
321
+ this.selectedConversation = null;
322
+ this.selectedThreadId = null;
323
+ this.pendingArtifactId = null;
324
+ this.pendingArtifactVersionNumber = null;
221
325
  }
222
326
  this.skipUrlUpdate = false;
223
327
  // Update the tracked URL
@@ -249,12 +353,6 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
249
353
  get environmentId() {
250
354
  return this.Data?.Configuration?.environmentId || EnvironmentEntityExtended.DefaultEnvironmentID;
251
355
  }
252
- /**
253
- * Get the active conversation ID from configuration (if specified)
254
- */
255
- get activeConversationId() {
256
- return this.Data?.Configuration?.conversationId;
257
- }
258
356
  /**
259
357
  * Get the display name for chat conversations
260
358
  */
@@ -272,6 +370,81 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
272
370
  async GetResourceIconClass(data) {
273
371
  return 'fa-solid fa-comments';
274
372
  }
373
+ // ============================================
374
+ // EVENT HANDLERS FROM CHILD COMPONENTS
375
+ // ============================================
376
+ /**
377
+ * Handle conversation selection from the list
378
+ */
379
+ async onConversationSelected(conversationId) {
380
+ await this.selectConversation(conversationId);
381
+ this.selectedThreadId = null; // Clear thread when switching conversations
382
+ this.isNewUnsavedConversation = false;
383
+ this.updateUrl();
384
+ }
385
+ /**
386
+ * Handle new conversation request from the list
387
+ */
388
+ onNewConversationRequested() {
389
+ this.selectedConversationId = null;
390
+ this.selectedConversation = null;
391
+ this.selectedThreadId = null;
392
+ this.isNewUnsavedConversation = true;
393
+ this.updateUrl();
394
+ }
395
+ /**
396
+ * Handle conversation created from chat area (after first message in new conversation)
397
+ */
398
+ async onConversationCreated(conversation) {
399
+ this.selectedConversationId = conversation.ID;
400
+ this.selectedConversation = conversation;
401
+ this.isNewUnsavedConversation = false;
402
+ this.updateUrl();
403
+ }
404
+ /**
405
+ * Handle conversation rename event
406
+ */
407
+ onConversationRenamed(event) {
408
+ // Trigger rename animation in the list
409
+ this.renamedConversationId = event.conversationId;
410
+ // Clear the animation trigger after it completes
411
+ setTimeout(() => {
412
+ this.renamedConversationId = null;
413
+ }, 1500);
414
+ }
415
+ /**
416
+ * Handle thread opened event
417
+ */
418
+ onThreadOpened(threadId) {
419
+ this.selectedThreadId = threadId;
420
+ }
421
+ /**
422
+ * Handle thread closed event
423
+ */
424
+ onThreadClosed() {
425
+ this.selectedThreadId = null;
426
+ }
427
+ /**
428
+ * Handle pending artifact consumed event
429
+ */
430
+ onPendingArtifactConsumed() {
431
+ this.pendingArtifactId = null;
432
+ this.pendingArtifactVersionNumber = null;
433
+ // Update URL to remove artifact params
434
+ this.updateUrl();
435
+ }
436
+ /**
437
+ * Handle pending message consumed event
438
+ */
439
+ onPendingMessageConsumed() {
440
+ this.pendingMessageToSend = null;
441
+ }
442
+ /**
443
+ * Handle pending message requested event (from empty state creating conversation)
444
+ */
445
+ onPendingMessageRequested(message) {
446
+ this.pendingMessageToSend = message;
447
+ }
275
448
  /**
276
449
  * Handle navigation request from artifact viewer panel within the chat area.
277
450
  * Converts the link event to a generic navigation request and uses NavigationService.
@@ -297,20 +470,20 @@ let ChatConversationsResource = class ChatConversationsResource extends BaseReso
297
470
  // Navigate using the generic nav item method
298
471
  this.navigationService.OpenNavItemByName(navItemName, params);
299
472
  }
300
- static ɵfac = function ChatConversationsResource_Factory(t) { return new (t || ChatConversationsResource)(i0.ɵɵdirectiveInject(i1.NavigationService), i0.ɵɵdirectiveInject(i2.ConversationStateService), i0.ɵɵdirectiveInject(i2.ArtifactStateService), i0.ɵɵdirectiveInject(i3.Router)); };
301
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChatConversationsResource, selectors: [["mj-chat-conversations-resource"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 2, consts: [[1, "chat-conversations-container"], [1, "conversation-sidebar"], [3, "environmentId", "currentUser", 4, "ngIf"], [1, "conversation-main"], [3, "environmentId", "currentUser", "artifactLinkClicked", 4, "ngIf"], [3, "environmentId", "currentUser"], [3, "artifactLinkClicked", "environmentId", "currentUser"]], template: function ChatConversationsResource_Template(rf, ctx) { if (rf & 1) {
302
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
303
- i0.ɵɵtemplate(2, ChatConversationsResource_mj_conversation_list_2_Template, 1, 2, "mj-conversation-list", 2);
304
- i0.ɵɵelementEnd();
305
- i0.ɵɵelementStart(3, "div", 3);
306
- i0.ɵɵtemplate(4, ChatConversationsResource_mj_conversation_chat_area_4_Template, 1, 2, "mj-conversation-chat-area", 4);
307
- i0.ɵɵelementEnd()();
473
+ static ɵfac = function ChatConversationsResource_Factory(t) { return new (t || ChatConversationsResource)(i0.ɵɵdirectiveInject(i1.NavigationService), i0.ɵɵdirectiveInject(i2.ConversationDataService), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i2.MentionAutocompleteService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
474
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChatConversationsResource, selectors: [["mj-chat-conversations-resource"]], viewQuery: function ChatConversationsResource_Query(rf, ctx) { if (rf & 1) {
475
+ i0.ɵɵviewQuery(_c0, 5);
476
+ i0.ɵɵviewQuery(_c1, 5);
477
+ } if (rf & 2) {
478
+ let _t;
479
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.conversationList = _t.first);
480
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chatArea = _t.first);
481
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["loadingTemplate", ""], ["conversationList", ""], ["chatArea", ""], ["class", "chat-conversations-container", 4, "ngIf", "ngIfElse"], [1, "chat-conversations-container"], [1, "conversation-sidebar"], [3, "environmentId", "currentUser", "selectedConversationId", "renamedConversationId", "conversationSelected", "newConversationRequested", 4, "ngIf"], [1, "conversation-main"], [3, "environmentId", "currentUser", "conversationId", "conversation", "threadId", "isNewConversation", "pendingMessage", "pendingArtifactId", "pendingArtifactVersionNumber", "conversationRenamed", "conversationCreated", "threadOpened", "threadClosed", "pendingArtifactConsumed", "pendingMessageConsumed", "pendingMessageRequested", "artifactLinkClicked", 4, "ngIf"], [3, "conversationSelected", "newConversationRequested", "environmentId", "currentUser", "selectedConversationId", "renamedConversationId"], [3, "conversationRenamed", "conversationCreated", "threadOpened", "threadClosed", "pendingArtifactConsumed", "pendingMessageConsumed", "pendingMessageRequested", "artifactLinkClicked", "environmentId", "currentUser", "conversationId", "conversation", "threadId", "isNewConversation", "pendingMessage", "pendingArtifactId", "pendingArtifactVersionNumber"], [1, "initializing-container"], ["text", "Initializing...", "size", "large"]], template: function ChatConversationsResource_Template(rf, ctx) { if (rf & 1) {
482
+ i0.ɵɵtemplate(0, ChatConversationsResource_div_0_Template, 5, 2, "div", 3)(1, ChatConversationsResource_ng_template_1_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
308
483
  } if (rf & 2) {
309
- i0.ɵɵadvance(2);
310
- i0.ɵɵproperty("ngIf", ctx.currentUser);
311
- i0.ɵɵadvance(2);
312
- i0.ɵɵproperty("ngIf", ctx.currentUser);
313
- } }, dependencies: [i4.NgIf, i2.ConversationListComponent, i2.ConversationChatAreaComponent], styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-conversations-container {\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n }\n\n .conversation-sidebar {\n width: 300px;\n flex-shrink: 0;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n background: #f5f5f5;\n }\n\n .conversation-main {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n "], encapsulation: 2 });
484
+ const loadingTemplate_r4 = i0.ɵɵreference(2);
485
+ i0.ɵɵproperty("ngIf", ctx.isReady)("ngIfElse", loadingTemplate_r4);
486
+ } }, dependencies: [i4.NgIf, i2.ConversationListComponent, i2.ConversationChatAreaComponent, i5.LoadingComponent], styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-conversations-container {\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n }\n\n .conversation-sidebar {\n width: 300px;\n flex-shrink: 0;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n background: #f5f5f5;\n }\n\n .conversation-main {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .initializing-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n flex: 1;\n }\n "], encapsulation: 2 });
314
487
  };
315
488
  ChatConversationsResource = __decorate([
316
489
  RegisterClass(BaseResourceComponent, 'ChatConversationsResource')
@@ -319,27 +492,58 @@ export { ChatConversationsResource };
319
492
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatConversationsResource, [{
320
493
  type: Component,
321
494
  args: [{ selector: 'mj-chat-conversations-resource', template: `
322
- <div class="chat-conversations-container">
495
+ <div class="chat-conversations-container" *ngIf="isReady; else loadingTemplate">
323
496
  <!-- Left sidebar: Conversation list -->
324
497
  <div class="conversation-sidebar">
325
498
  <mj-conversation-list
499
+ #conversationList
326
500
  *ngIf="currentUser"
327
501
  [environmentId]="environmentId"
328
- [currentUser]="currentUser">
502
+ [currentUser]="currentUser"
503
+ [selectedConversationId]="selectedConversationId"
504
+ [renamedConversationId]="renamedConversationId"
505
+ (conversationSelected)="onConversationSelected($event)"
506
+ (newConversationRequested)="onNewConversationRequested()">
329
507
  </mj-conversation-list>
330
508
  </div>
331
509
 
332
510
  <!-- Main area: Chat interface -->
333
511
  <div class="conversation-main">
334
512
  <mj-conversation-chat-area
513
+ #chatArea
335
514
  *ngIf="currentUser"
336
515
  [environmentId]="environmentId"
337
516
  [currentUser]="currentUser"
517
+ [conversationId]="selectedConversationId"
518
+ [conversation]="selectedConversation"
519
+ [threadId]="selectedThreadId"
520
+ [isNewConversation]="isNewUnsavedConversation"
521
+ [pendingMessage]="pendingMessageToSend"
522
+ [pendingArtifactId]="pendingArtifactId"
523
+ [pendingArtifactVersionNumber]="pendingArtifactVersionNumber"
524
+ (conversationRenamed)="onConversationRenamed($event)"
525
+ (conversationCreated)="onConversationCreated($event)"
526
+ (threadOpened)="onThreadOpened($event)"
527
+ (threadClosed)="onThreadClosed()"
528
+ (pendingArtifactConsumed)="onPendingArtifactConsumed()"
529
+ (pendingMessageConsumed)="onPendingMessageConsumed()"
530
+ (pendingMessageRequested)="onPendingMessageRequested($event)"
338
531
  (artifactLinkClicked)="onArtifactLinkClicked($event)">
339
532
  </mj-conversation-chat-area>
340
533
  </div>
341
534
  </div>
342
- `, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-conversations-container {\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n }\n\n .conversation-sidebar {\n width: 300px;\n flex-shrink: 0;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n background: #f5f5f5;\n }\n\n .conversation-main {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n "] }]
343
- }], () => [{ type: i1.NavigationService }, { type: i2.ConversationStateService }, { type: i2.ArtifactStateService }, { type: i3.Router }], null); })();
344
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChatConversationsResource, { className: "ChatConversationsResource", filePath: "src/lib/resource-wrappers/chat-conversations-resource.component.ts", lineNumber: 80 }); })();
535
+ <ng-template #loadingTemplate>
536
+ <div class="initializing-container">
537
+ <mj-loading text="Initializing..." size="large"></mj-loading>
538
+ </div>
539
+ </ng-template>
540
+ `, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-conversations-container {\n display: flex;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n }\n\n .conversation-sidebar {\n width: 300px;\n flex-shrink: 0;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n background: #f5f5f5;\n }\n\n .conversation-main {\n flex: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .initializing-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n flex: 1;\n }\n "] }]
541
+ }], () => [{ type: i1.NavigationService }, { type: i2.ConversationDataService }, { type: i3.Router }, { type: i2.MentionAutocompleteService }, { type: i0.ChangeDetectorRef }], { conversationList: [{
542
+ type: ViewChild,
543
+ args: ['conversationList']
544
+ }], chatArea: [{
545
+ type: ViewChild,
546
+ args: ['chatArea']
547
+ }] }); })();
548
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChatConversationsResource, { className: "ChatConversationsResource", filePath: "src/lib/resource-wrappers/chat-conversations-resource.component.ts", lineNumber: 120 }); })();
345
549
  //# sourceMappingURL=chat-conversations-resource.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-conversations-resource.component.js","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-conversations-resource.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-conversations-resource.component.js","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-conversations-resource.component.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,18 @@ export declare class DashboardResource extends BaseResourceComponent {
14
14
  private componentRef;
15
15
  private dataLoaded;
16
16
  containerElement: ElementRef<HTMLDivElement>;
17
+ /** Error message to display when dashboard fails to load */
18
+ errorMessage: string | null;
19
+ /** Technical error details (shown in expandable section) */
20
+ errorDetails: string | null;
21
+ /**
22
+ * Sets the error state with a user-friendly message and optional technical details
23
+ */
24
+ private setError;
25
+ /**
26
+ * Clears any previous error state
27
+ */
28
+ private clearError;
17
29
  constructor(viewContainer: ViewContainerRef, navigationService: NavigationService);
18
30
  set Data(value: ResourceData);
19
31
  get Data(): ResourceData;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/dashboard-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAA2B,UAAU,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAkC,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAE,YAAY,EAAoC,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAMzH,wBAAgB,qBAAqB,SACpC;AAED;;;;GAIG;AACH,qBAsBa,iBAAkB,SAAQ,qBAAqB;IAMpD,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IAN7B,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,UAAU,CAAS;IACe,gBAAgB,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;gBAG5E,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,iBAAiB;IAKhD,IAAa,IAAI,CAAC,KAAK,EAAE,YAAY,EAMpC;IAGD,IAAa,IAAI,IAAI,YAAY,CAEhC;IAED,WAAW,IAAI,IAAI;IAMnB;;;OAGG;YACW,aAAa;IAiD3B;;;;;OAKG;YACW,gBAAgB;IAwD9B;;OAEG;YACW,sBAAsB;cAyEpB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsB9F;;OAEG;YACW,wBAAwB;IA0CtC;;;OAGG;IACY,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1E;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCA3TtD,iBAAiB;2CAAjB,iBAAiB;CA8T7B"}
1
+ {"version":3,"file":"dashboard-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/dashboard-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,gBAAgB,EAA2B,UAAU,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAkC,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAE,YAAY,EAAoC,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAMzH,wBAAgB,qBAAqB,SACpC;AAED;;;;GAIG;AACH,qBA2Fa,iBAAkB,SAAQ,qBAAqB;IAkCpD,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IAlC7B,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,UAAU,CAAS;IACe,gBAAgB,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAExF,4DAA4D;IACrD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C,4DAA4D;IACrD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ;IAYhB;;OAEG;IACH,OAAO,CAAC,UAAU;gBAMN,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,iBAAiB;IAKhD,IAAa,IAAI,CAAC,KAAK,EAAE,YAAY,EAMpC;IAGD,IAAa,IAAI,IAAI,YAAY,CAEhC;IAED,WAAW,IAAI,IAAI;IAMnB;;;OAGG;YACW,aAAa;IAqD3B;;;;;OAKG;YACW,gBAAgB;IAyD9B;;OAEG;YACW,sBAAsB;cA0EpB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsB9F;;OAEG;YACW,wBAAwB;IA2CtC;;;OAGG;IACY,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1E;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCA9VtD,iBAAiB;2CAAjB,iBAAiB;CAiW7B"}