@memberjunction/ng-explorer-core 2.121.0 → 2.122.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/app-routing.module.d.ts +6 -5
- package/dist/app-routing.module.d.ts.map +1 -1
- package/dist/app-routing.module.js +266 -132
- package/dist/app-routing.module.js.map +1 -1
- package/dist/lib/app-view/application-view.component.js +10 -10
- package/dist/lib/app-view/application-view.component.js.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +11 -12
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
- package/dist/lib/data-browser-component/data-browser.component.js +8 -8
- package/dist/lib/data-browser-component/data-browser.component.js.map +1 -1
- package/dist/lib/generic-browse-list/generic-browse-list.component.js +10 -7
- package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -1
- package/dist/lib/generic-browser-list/generic-browser-list.component.js +14 -11
- package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -1
- package/dist/lib/list-view/list-view.component.js +24 -21
- package/dist/lib/list-view/list-view.component.js.map +1 -1
- package/dist/lib/navigation/navigation.component.d.ts +0 -1
- package/dist/lib/navigation/navigation.component.d.ts.map +1 -1
- package/dist/lib/navigation/navigation.component.js +11 -19
- package/dist/lib/navigation/navigation.component.js.map +1 -1
- package/dist/lib/resource-browser/resource-browser.component.js +14 -11
- package/dist/lib/resource-browser/resource-browser.component.js.map +1 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +20 -0
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/artifact-resource.component.js +92 -0
- package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -0
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts +119 -0
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js +500 -0
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +87 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +345 -0
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -0
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts +67 -0
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +244 -0
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +46 -3
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +298 -21
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/list-detail-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/list-detail-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/query-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/record-resource.component.js +22 -5
- package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/report-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/resource-wrappers-loader.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/resource-wrappers-loader.js +15 -0
- package/dist/lib/resource-wrappers/resource-wrappers-loader.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts +45 -0
- package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -0
- package/dist/lib/shell/components/header/app-nav.component.js +127 -0
- package/dist/lib/shell/components/header/app-nav.component.js.map +1 -0
- package/dist/lib/shell/components/header/app-switcher.component.d.ts +53 -0
- package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -0
- package/dist/lib/shell/components/header/app-switcher.component.js +190 -0
- package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +83 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.js +175 -0
- package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -0
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts +138 -0
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -0
- package/dist/lib/shell/components/tabs/tab-container.component.js +920 -0
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -0
- package/dist/lib/shell/services/settings-dialog.service.d.ts +28 -0
- package/dist/lib/shell/services/settings-dialog.service.d.ts.map +1 -0
- package/dist/lib/shell/services/settings-dialog.service.js +67 -0
- package/dist/lib/shell/services/settings-dialog.service.js.map +1 -0
- package/dist/lib/shell/shell.component.d.ts +166 -0
- package/dist/lib/shell/shell.component.d.ts.map +1 -0
- package/dist/lib/shell/shell.component.js +1173 -0
- package/dist/lib/shell/shell.component.js.map +1 -0
- package/dist/lib/shell/shell.module.d.ts +14 -0
- package/dist/lib/shell/shell.module.d.ts.map +1 -0
- package/dist/lib/shell/shell.module.js +42 -0
- package/dist/lib/shell/shell.module.js.map +1 -0
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +17 -13
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts +2 -1
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +6 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
- package/dist/lib/single-entity/single-entity.component.js +21 -17
- package/dist/lib/single-entity/single-entity.component.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +36 -30
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/lib/single-record/single-record.component.d.ts +1 -0
- package/dist/lib/single-record/single-record.component.d.ts.map +1 -1
- package/dist/lib/single-record/single-record.component.js +16 -9
- package/dist/lib/single-record/single-record.component.js.map +1 -1
- package/dist/lib/single-report/single-report.component.d.ts +1 -7
- package/dist/lib/single-report/single-report.component.d.ts.map +1 -1
- package/dist/lib/single-report/single-report.component.js +16 -37
- package/dist/lib/single-report/single-report.component.js.map +1 -1
- package/dist/lib/single-view/single-view.component.d.ts +1 -2
- package/dist/lib/single-view/single-view.component.d.ts.map +1 -1
- package/dist/lib/single-view/single-view.component.js +35 -43
- package/dist/lib/single-view/single-view.component.js.map +1 -1
- package/dist/lib/style-guide-test/style-guide-test.component.js +20 -13
- package/dist/lib/style-guide-test/style-guide-test.component.js.map +1 -1
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts +1 -1
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts.map +1 -1
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +8 -11
- package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.d.ts.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.js +0 -5
- package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
- package/dist/module.d.ts +50 -46
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +23 -11
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +4 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +5 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +44 -35
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Component, ViewEncapsulation } from '@angular/core';
|
|
8
|
+
import { NavigationEnd } from '@angular/router';
|
|
9
|
+
import { Metadata } from '@memberjunction/core';
|
|
10
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
11
|
+
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
12
|
+
import { EnvironmentEntityExtended } from '@memberjunction/core-entities';
|
|
13
|
+
import { Subject, takeUntil, distinctUntilChanged, combineLatest, filter } from 'rxjs';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
import * as i1 from "@memberjunction/ng-shared";
|
|
16
|
+
import * as i2 from "@memberjunction/ng-conversations";
|
|
17
|
+
import * as i3 from "@angular/router";
|
|
18
|
+
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);
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
23
|
+
i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser);
|
|
24
|
+
} }
|
|
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)); });
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
32
|
+
i0.ɵɵproperty("environmentId", ctx_r0.environmentId)("currentUser", ctx_r0.currentUser);
|
|
33
|
+
} }
|
|
34
|
+
export function LoadChatConversationsResource() {
|
|
35
|
+
// Force inclusion in production builds (tree shaking workaround)
|
|
36
|
+
// Using null placeholders since Angular DI provides actual instances
|
|
37
|
+
const test = new ChatConversationsResource(null, null, null, null);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Chat Conversations Resource - wraps the conversation chat area for tab-based display
|
|
41
|
+
* Extends BaseResourceComponent to work with the resource type system
|
|
42
|
+
* Displays conversation list sidebar + active conversation chat interface
|
|
43
|
+
* Designed to work with the tab system for multi-tab conversation management
|
|
44
|
+
*/
|
|
45
|
+
let ChatConversationsResource = class ChatConversationsResource extends BaseResourceComponent {
|
|
46
|
+
navigationService;
|
|
47
|
+
conversationState;
|
|
48
|
+
artifactState;
|
|
49
|
+
router;
|
|
50
|
+
currentUser = null;
|
|
51
|
+
destroy$ = new Subject();
|
|
52
|
+
skipUrlUpdate = true; // Skip URL updates during initialization
|
|
53
|
+
lastNavigatedUrl = ''; // Track URL to avoid reacting to our own navigation
|
|
54
|
+
constructor(navigationService, conversationState, artifactState, router) {
|
|
55
|
+
super();
|
|
56
|
+
this.navigationService = navigationService;
|
|
57
|
+
this.conversationState = conversationState;
|
|
58
|
+
this.artifactState = artifactState;
|
|
59
|
+
this.router = router;
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
const md = new Metadata();
|
|
63
|
+
this.currentUser = md.CurrentUser;
|
|
64
|
+
// Parse URL first and apply state
|
|
65
|
+
const urlState = this.parseUrlState();
|
|
66
|
+
if (urlState) {
|
|
67
|
+
this.applyUrlState(urlState);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Check if we have navigation params from config (e.g., from Collections linking here)
|
|
71
|
+
this.applyNavigationParams();
|
|
72
|
+
}
|
|
73
|
+
// Subscribe to state changes to update URL
|
|
74
|
+
this.subscribeToStateChanges();
|
|
75
|
+
// Subscribe to router NavigationEnd events for back/forward button support
|
|
76
|
+
this.router.events
|
|
77
|
+
.pipe(filter((event) => event instanceof NavigationEnd), takeUntil(this.destroy$))
|
|
78
|
+
.subscribe(event => {
|
|
79
|
+
const currentUrl = event.urlAfterRedirects || event.url;
|
|
80
|
+
if (currentUrl !== this.lastNavigatedUrl) {
|
|
81
|
+
this.onExternalNavigation(currentUrl);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
// Enable URL updates after initialization
|
|
85
|
+
this.skipUrlUpdate = false;
|
|
86
|
+
// Update URL to reflect current state
|
|
87
|
+
this.updateUrl();
|
|
88
|
+
// Notify load complete after user is set
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
this.NotifyLoadComplete();
|
|
91
|
+
}, 100);
|
|
92
|
+
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
this.destroy$.next();
|
|
95
|
+
this.destroy$.complete();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Parse URL query string for conversation state.
|
|
99
|
+
* Query params: conversationId, artifactId, versionNumber
|
|
100
|
+
*/
|
|
101
|
+
parseUrlState() {
|
|
102
|
+
const url = this.router.url;
|
|
103
|
+
const queryIndex = url.indexOf('?');
|
|
104
|
+
if (queryIndex === -1)
|
|
105
|
+
return null;
|
|
106
|
+
const queryString = url.substring(queryIndex + 1);
|
|
107
|
+
const params = new URLSearchParams(queryString);
|
|
108
|
+
const conversationId = params.get('conversationId');
|
|
109
|
+
const artifactId = params.get('artifactId');
|
|
110
|
+
const versionNumber = params.get('versionNumber');
|
|
111
|
+
if (!conversationId && !artifactId)
|
|
112
|
+
return null;
|
|
113
|
+
return {
|
|
114
|
+
conversationId: conversationId || undefined,
|
|
115
|
+
artifactId: artifactId || undefined,
|
|
116
|
+
versionNumber: versionNumber ? parseInt(versionNumber, 10) : undefined
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Apply URL state to conversation services.
|
|
121
|
+
*/
|
|
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);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Apply navigation parameters from configuration.
|
|
135
|
+
* This handles deep-linking from other resources (e.g., clicking a link in Collections).
|
|
136
|
+
*/
|
|
137
|
+
applyNavigationParams() {
|
|
138
|
+
const config = this.Data?.Configuration;
|
|
139
|
+
if (!config)
|
|
140
|
+
return;
|
|
141
|
+
// Set pending artifact if provided (must be set before activating conversation)
|
|
142
|
+
if (config.artifactId) {
|
|
143
|
+
this.conversationState.pendingArtifactId = config.artifactId;
|
|
144
|
+
this.conversationState.pendingArtifactVersionNumber = config.versionNumber || null;
|
|
145
|
+
}
|
|
146
|
+
// Activate the target conversation if specified
|
|
147
|
+
if (config.conversationId) {
|
|
148
|
+
this.conversationState.setActiveConversation(config.conversationId);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Subscribe to state changes from services to update URL.
|
|
153
|
+
*/
|
|
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
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Update URL query string to reflect current state.
|
|
170
|
+
* Uses Angular Router for proper browser history integration.
|
|
171
|
+
*/
|
|
172
|
+
updateUrl() {
|
|
173
|
+
const params = new URLSearchParams();
|
|
174
|
+
// Add conversation ID
|
|
175
|
+
const conversationId = this.conversationState.activeConversationId;
|
|
176
|
+
if (conversationId) {
|
|
177
|
+
params.set('conversationId', conversationId);
|
|
178
|
+
}
|
|
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());
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Get current path without query string
|
|
189
|
+
const currentUrl = this.router.url;
|
|
190
|
+
const currentPath = currentUrl.split('?')[0];
|
|
191
|
+
const queryString = params.toString();
|
|
192
|
+
const newUrl = queryString ? `${currentPath}?${queryString}` : currentPath;
|
|
193
|
+
// Track this URL so we don't react to our own navigation
|
|
194
|
+
this.lastNavigatedUrl = newUrl;
|
|
195
|
+
// Use Angular Router for proper browser history integration
|
|
196
|
+
this.router.navigateByUrl(newUrl, { replaceUrl: false });
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Handle external navigation (back/forward buttons).
|
|
200
|
+
* Parses the URL and applies the state without triggering a new navigation.
|
|
201
|
+
*/
|
|
202
|
+
onExternalNavigation(url) {
|
|
203
|
+
// Check if this URL is for our component (contains our base path)
|
|
204
|
+
const currentPath = this.router.url.split('?')[0];
|
|
205
|
+
const newPath = url.split('?')[0];
|
|
206
|
+
// Only handle if we're still on the same base path (same component instance)
|
|
207
|
+
if (currentPath !== newPath) {
|
|
208
|
+
return; // Different route entirely, shell will handle it
|
|
209
|
+
}
|
|
210
|
+
// Parse the new URL state
|
|
211
|
+
const urlState = this.parseUrlFromString(url);
|
|
212
|
+
// Apply the state without triggering URL updates
|
|
213
|
+
this.skipUrlUpdate = true;
|
|
214
|
+
if (urlState) {
|
|
215
|
+
this.applyUrlState(urlState);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
// No params means clear state
|
|
219
|
+
this.conversationState.setActiveConversation(null);
|
|
220
|
+
this.artifactState.closeArtifact();
|
|
221
|
+
}
|
|
222
|
+
this.skipUrlUpdate = false;
|
|
223
|
+
// Update the tracked URL
|
|
224
|
+
this.lastNavigatedUrl = url;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Parse URL state from a URL string (used for external navigation).
|
|
228
|
+
*/
|
|
229
|
+
parseUrlFromString(url) {
|
|
230
|
+
const queryIndex = url.indexOf('?');
|
|
231
|
+
if (queryIndex === -1)
|
|
232
|
+
return null;
|
|
233
|
+
const queryString = url.substring(queryIndex + 1);
|
|
234
|
+
const params = new URLSearchParams(queryString);
|
|
235
|
+
const conversationId = params.get('conversationId');
|
|
236
|
+
const artifactId = params.get('artifactId');
|
|
237
|
+
const versionNumber = params.get('versionNumber');
|
|
238
|
+
if (!conversationId && !artifactId)
|
|
239
|
+
return null;
|
|
240
|
+
return {
|
|
241
|
+
conversationId: conversationId || undefined,
|
|
242
|
+
artifactId: artifactId || undefined,
|
|
243
|
+
versionNumber: versionNumber ? parseInt(versionNumber, 10) : undefined
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Get the environment ID from configuration or use default
|
|
248
|
+
*/
|
|
249
|
+
get environmentId() {
|
|
250
|
+
return this.Data?.Configuration?.environmentId || EnvironmentEntityExtended.DefaultEnvironmentID;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Get the active conversation ID from configuration (if specified)
|
|
254
|
+
*/
|
|
255
|
+
get activeConversationId() {
|
|
256
|
+
return this.Data?.Configuration?.conversationId;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Get the display name for chat conversations
|
|
260
|
+
*/
|
|
261
|
+
async GetResourceDisplayName(data) {
|
|
262
|
+
// If we have a specific conversation ID, we could load the conversation name
|
|
263
|
+
// For now, just return a generic name
|
|
264
|
+
if (data.Configuration?.conversationId) {
|
|
265
|
+
return `Conversation: ${data.Configuration.conversationId.substring(0, 8)}...`;
|
|
266
|
+
}
|
|
267
|
+
return 'Conversations';
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Get the icon class for chat conversations
|
|
271
|
+
*/
|
|
272
|
+
async GetResourceIconClass(data) {
|
|
273
|
+
return 'fa-solid fa-comments';
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Handle navigation request from artifact viewer panel within the chat area.
|
|
277
|
+
* Converts the link event to a generic navigation request and uses NavigationService.
|
|
278
|
+
*/
|
|
279
|
+
onArtifactLinkClicked(event) {
|
|
280
|
+
// Map the link type to the nav item name
|
|
281
|
+
const navItemName = event.type === 'conversation' ? 'Conversations' : 'Collections';
|
|
282
|
+
// Build configuration params to pass to the target resource
|
|
283
|
+
const params = {};
|
|
284
|
+
if (event.type === 'conversation') {
|
|
285
|
+
params['conversationId'] = event.id;
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
params['collectionId'] = event.id;
|
|
289
|
+
}
|
|
290
|
+
// Include artifact info so destination can open it
|
|
291
|
+
if (event.artifactId) {
|
|
292
|
+
params['artifactId'] = event.artifactId;
|
|
293
|
+
if (event.versionNumber) {
|
|
294
|
+
params['versionNumber'] = event.versionNumber;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Navigate using the generic nav item method
|
|
298
|
+
this.navigationService.OpenNavItemByName(navItemName, params);
|
|
299
|
+
}
|
|
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()();
|
|
308
|
+
} 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 });
|
|
314
|
+
};
|
|
315
|
+
ChatConversationsResource = __decorate([
|
|
316
|
+
RegisterClass(BaseResourceComponent, 'ChatConversationsResource')
|
|
317
|
+
], ChatConversationsResource);
|
|
318
|
+
export { ChatConversationsResource };
|
|
319
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatConversationsResource, [{
|
|
320
|
+
type: Component,
|
|
321
|
+
args: [{ selector: 'mj-chat-conversations-resource', template: `
|
|
322
|
+
<div class="chat-conversations-container">
|
|
323
|
+
<!-- Left sidebar: Conversation list -->
|
|
324
|
+
<div class="conversation-sidebar">
|
|
325
|
+
<mj-conversation-list
|
|
326
|
+
*ngIf="currentUser"
|
|
327
|
+
[environmentId]="environmentId"
|
|
328
|
+
[currentUser]="currentUser">
|
|
329
|
+
</mj-conversation-list>
|
|
330
|
+
</div>
|
|
331
|
+
|
|
332
|
+
<!-- Main area: Chat interface -->
|
|
333
|
+
<div class="conversation-main">
|
|
334
|
+
<mj-conversation-chat-area
|
|
335
|
+
*ngIf="currentUser"
|
|
336
|
+
[environmentId]="environmentId"
|
|
337
|
+
[currentUser]="currentUser"
|
|
338
|
+
(artifactLinkClicked)="onArtifactLinkClicked($event)">
|
|
339
|
+
</mj-conversation-chat-area>
|
|
340
|
+
</div>
|
|
341
|
+
</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 }); })();
|
|
345
|
+
//# sourceMappingURL=chat-conversations-resource.component.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
4
|
+
import { ResourceData } from '@memberjunction/core-entities';
|
|
5
|
+
import { TasksFullViewComponent } from '@memberjunction/ng-conversations';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare function LoadChatTasksResource(): void;
|
|
8
|
+
/**
|
|
9
|
+
* Chat Tasks Resource - displays the tasks full view for tab-based display
|
|
10
|
+
* Extends BaseResourceComponent to work with the resource type system
|
|
11
|
+
* Shows all tasks associated with conversations and artifacts
|
|
12
|
+
* Supports URL deep-linking via taskId query parameter
|
|
13
|
+
*/
|
|
14
|
+
export declare class ChatTasksResource extends BaseResourceComponent implements OnDestroy {
|
|
15
|
+
private router;
|
|
16
|
+
tasksView?: TasksFullViewComponent;
|
|
17
|
+
currentUser: any;
|
|
18
|
+
activeTaskId?: string;
|
|
19
|
+
private skipUrlUpdate;
|
|
20
|
+
private destroy$;
|
|
21
|
+
private lastNavigatedUrl;
|
|
22
|
+
constructor(router: Router);
|
|
23
|
+
ngOnInit(): void;
|
|
24
|
+
ngOnDestroy(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Parse URL query string for task state.
|
|
27
|
+
* Query params: taskId
|
|
28
|
+
*/
|
|
29
|
+
private parseUrlState;
|
|
30
|
+
/**
|
|
31
|
+
* Apply navigation parameters from configuration.
|
|
32
|
+
*/
|
|
33
|
+
private applyNavigationParams;
|
|
34
|
+
/**
|
|
35
|
+
* Handle task selection from the tasks view.
|
|
36
|
+
*/
|
|
37
|
+
onTaskSelected(taskId: string | null): void;
|
|
38
|
+
/**
|
|
39
|
+
* Update URL query string to reflect current state.
|
|
40
|
+
* Uses Angular Router for proper browser history integration.
|
|
41
|
+
*/
|
|
42
|
+
private updateUrl;
|
|
43
|
+
/**
|
|
44
|
+
* Handle external navigation (back/forward buttons).
|
|
45
|
+
* Parses the URL and applies the state without triggering a new navigation.
|
|
46
|
+
*/
|
|
47
|
+
private onExternalNavigation;
|
|
48
|
+
/**
|
|
49
|
+
* Parse URL state from a URL string (used for external navigation).
|
|
50
|
+
*/
|
|
51
|
+
private parseUrlFromString;
|
|
52
|
+
/**
|
|
53
|
+
* Get the environment ID from configuration or use default
|
|
54
|
+
*/
|
|
55
|
+
get environmentId(): string;
|
|
56
|
+
/**
|
|
57
|
+
* Get the display name for chat tasks
|
|
58
|
+
*/
|
|
59
|
+
GetResourceDisplayName(data: ResourceData): Promise<string>;
|
|
60
|
+
/**
|
|
61
|
+
* Get the icon class for chat tasks
|
|
62
|
+
*/
|
|
63
|
+
GetResourceIconClass(data: ResourceData): Promise<string>;
|
|
64
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatTasksResource, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChatTasksResource, "mj-chat-tasks-resource", never, {}, {}, never, never, false, never>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=chat-tasks-resource.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-tasks-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-tasks-resource.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,SAAS,EAAa,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;;AAG1E,wBAAgB,qBAAqB,SAEpC;AAED;;;;;GAKG;AACH,qBAoCa,iBAAkB,SAAQ,qBAAsB,YAAW,SAAS;IASnE,OAAO,CAAC,MAAM;IARF,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAEpD,WAAW,EAAE,GAAG,CAAQ;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,gBAAgB,CAAc;gBAElB,MAAM,EAAE,MAAM;IAIlC,QAAQ;IAsCR,WAAW;IAKX;;;OAGG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAO3C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAoBjB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACG,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE;;OAEG;IACG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;yCA/LpD,iBAAiB;2CAAjB,iBAAiB;CAkM7B"}
|