@memberjunction/ng-explorer-core 6.2.0-edge.0 → 6.2.0-edge.2
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/dist/app-routing.module.d.ts +23 -1
- package/dist/app-routing.module.d.ts.map +1 -1
- package/dist/app-routing.module.js +50 -14
- package/dist/app-routing.module.js.map +1 -1
- package/dist/generated/lazy-feature-config.d.ts +1 -1
- package/dist/generated/lazy-feature-config.d.ts.map +1 -1
- package/dist/generated/lazy-feature-config.js +12 -1
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/command-palette/command-palette.component.d.ts +7 -1
- package/dist/lib/command-palette/command-palette.component.d.ts.map +1 -1
- package/dist/lib/command-palette/command-palette.component.js +28 -14
- package/dist/lib/command-palette/command-palette.component.js.map +1 -1
- package/dist/lib/conversation-feedback/conversation-feedback.d.ts +103 -13
- package/dist/lib/conversation-feedback/conversation-feedback.d.ts.map +1 -1
- package/dist/lib/conversation-feedback/conversation-feedback.js +219 -67
- package/dist/lib/conversation-feedback/conversation-feedback.js.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.d.ts +64 -10
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.d.ts.map +1 -1
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +172 -66
- package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
- package/dist/lib/generic/resource-container-component.d.ts +19 -5
- package/dist/lib/generic/resource-container-component.d.ts.map +1 -1
- package/dist/lib/generic/resource-container-component.js +43 -13
- package/dist/lib/generic/resource-container-component.js.map +1 -1
- package/dist/lib/guards/entities.guard.d.ts +4 -0
- package/dist/lib/guards/entities.guard.d.ts.map +1 -1
- package/dist/lib/guards/entities.guard.js +10 -2
- package/dist/lib/guards/entities.guard.js.map +1 -1
- package/dist/lib/identity-claims/claim-redeem.component.d.ts +4 -0
- package/dist/lib/identity-claims/claim-redeem.component.d.ts.map +1 -1
- package/dist/lib/identity-claims/claim-redeem.component.js +10 -2
- package/dist/lib/identity-claims/claim-redeem.component.js.map +1 -1
- package/dist/lib/oauth/oauth-callback.component.d.ts +4 -0
- package/dist/lib/oauth/oauth-callback.component.d.ts.map +1 -1
- package/dist/lib/oauth/oauth-callback.component.js +10 -2
- package/dist/lib/oauth/oauth-callback.component.js.map +1 -1
- package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -1
- package/dist/lib/profile/profile-dialog.component.js +194 -191
- package/dist/lib/profile/profile-dialog.component.js.map +1 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +20 -2
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.js +33 -9
- package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts +80 -10
- package/dist/lib/resource-wrappers/chat-collections-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js +168 -56
- package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +199 -25
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +534 -182
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-deeplink-params.d.ts +2 -0
- package/dist/lib/resource-wrappers/chat-deeplink-params.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-deeplink-params.js +5 -1
- package/dist/lib/resource-wrappers/chat-deeplink-params.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-search-routing.d.ts +25 -0
- package/dist/lib/resource-wrappers/chat-search-routing.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/chat-search-routing.js +24 -0
- package/dist/lib/resource-wrappers/chat-search-routing.js.map +1 -0
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts +14 -2
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +32 -8
- package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/compose-email-fallback.d.ts +46 -0
- package/dist/lib/resource-wrappers/compose-email-fallback.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/compose-email-fallback.js +62 -0
- package/dist/lib/resource-wrappers/compose-email-fallback.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +54 -8
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +138 -46
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts +223 -30
- package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/livekit-room-resource.component.js +438 -118
- package/dist/lib/resource-wrappers/livekit-room-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts +7 -3
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +23 -15
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.d.ts +74 -11
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +214 -68
- package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
- package/dist/lib/services/server-connectivity.service.d.ts +9 -4
- package/dist/lib/services/server-connectivity.service.d.ts.map +1 -1
- package/dist/lib/services/server-connectivity.service.js +56 -12
- package/dist/lib/services/server-connectivity.service.js.map +1 -1
- package/dist/lib/services/startup-validation.service.d.ts +4 -0
- package/dist/lib/services/startup-validation.service.d.ts.map +1 -1
- package/dist/lib/services/startup-validation.service.js +10 -2
- package/dist/lib/services/startup-validation.service.js.map +1 -1
- package/dist/lib/services/system-validation.service.d.ts +13 -1
- package/dist/lib/services/system-validation.service.d.ts.map +1 -1
- package/dist/lib/services/system-validation.service.js +29 -5
- package/dist/lib/services/system-validation.service.js.map +1 -1
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.d.ts +54 -4
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.d.ts.map +1 -1
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.js +130 -40
- package/dist/lib/shell/components/dialogs/app-access-dialog.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts +29 -1
- package/dist/lib/shell/components/header/app-nav.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-nav.component.js +56 -12
- package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.d.ts +33 -5
- package/dist/lib/shell/components/header/app-switcher.component.d.ts.map +1 -1
- package/dist/lib/shell/components/header/app-switcher.component.js +85 -29
- package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -1
- package/dist/lib/shell/components/record-open/record-origin-crumb.component.js +1 -1
- package/dist/lib/shell/components/record-open/record-origin-crumb.component.js.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts +50 -6
- package/dist/lib/shell/components/tabs/component-cache-manager.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/component-cache-manager.js +95 -22
- package/dist/lib/shell/components/tabs/component-cache-manager.js.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts +91 -9
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.js +257 -101
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
- package/dist/lib/shell/loading-themes.d.ts +16 -12
- package/dist/lib/shell/loading-themes.d.ts.map +1 -1
- package/dist/lib/shell/loading-themes.js +145 -137
- package/dist/lib/shell/loading-themes.js.map +1 -1
- package/dist/lib/shell/readiness-beacon.d.ts +2 -0
- package/dist/lib/shell/readiness-beacon.d.ts.map +1 -1
- package/dist/lib/shell/readiness-beacon.js +5 -1
- package/dist/lib/shell/readiness-beacon.js.map +1 -1
- package/dist/lib/shell/services/about-dialog.service.d.ts +6 -0
- package/dist/lib/shell/services/about-dialog.service.d.ts.map +1 -1
- package/dist/lib/shell/services/about-dialog.service.js +16 -4
- package/dist/lib/shell/services/about-dialog.service.js.map +1 -1
- package/dist/lib/shell/services/profile-dialog.service.d.ts +6 -0
- package/dist/lib/shell/services/profile-dialog.service.d.ts.map +1 -1
- package/dist/lib/shell/services/profile-dialog.service.js +16 -4
- package/dist/lib/shell/services/profile-dialog.service.js.map +1 -1
- package/dist/lib/shell/services/user-sharing-center-dialog.service.d.ts +6 -0
- package/dist/lib/shell/services/user-sharing-center-dialog.service.d.ts.map +1 -1
- package/dist/lib/shell/services/user-sharing-center-dialog.service.js +15 -3
- package/dist/lib/shell/services/user-sharing-center-dialog.service.js.map +1 -1
- package/dist/lib/shell/shell.component.d.ts +264 -39
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +697 -294
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts +64 -8
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +129 -37
- package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.d.ts +26 -2
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +48 -10
- package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts +84 -6
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +133 -29
- package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts +173 -23
- package/dist/lib/single-dashboard/single-dashboard.component.d.ts.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +383 -109
- package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts +383 -55
- package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
- package/dist/lib/single-list-detail/single-list-detail.component.js +962 -326
- package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
- package/dist/lib/single-query/single-query.component.d.ts +22 -2
- package/dist/lib/single-query/single-query.component.d.ts.map +1 -1
- package/dist/lib/single-query/single-query.component.js +40 -10
- package/dist/lib/single-query/single-query.component.js.map +1 -1
- package/dist/lib/single-record/single-record.component.d.ts +41 -3
- package/dist/lib/single-record/single-record.component.d.ts.map +1 -1
- package/dist/lib/single-record/single-record.component.js +71 -11
- package/dist/lib/single-record/single-record.component.js.map +1 -1
- package/dist/lib/single-search-result/single-search-result.component.d.ts +23 -3
- package/dist/lib/single-search-result/single-search-result.component.d.ts.map +1 -1
- package/dist/lib/single-search-result/single-search-result.component.js +42 -12
- package/dist/lib/single-search-result/single-search-result.component.js.map +1 -1
- package/dist/lib/system-validation/system-validation-banner.component.d.ts +12 -2
- package/dist/lib/system-validation/system-validation-banner.component.d.ts.map +1 -1
- package/dist/lib/system-validation/system-validation-banner.component.js +25 -5
- package/dist/lib/system-validation/system-validation-banner.component.js.map +1 -1
- package/dist/lib/user-menu/user-menu.types.d.ts +4 -0
- package/dist/lib/user-menu/user-menu.types.d.ts.map +1 -1
- package/dist/lib/user-menu/user-menu.types.js +10 -2
- package/dist/lib/user-menu/user-menu.types.js.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.d.ts +59 -7
- package/dist/lib/user-notifications/user-notifications.component.d.ts.map +1 -1
- package/dist/lib/user-notifications/user-notifications.component.js +151 -47
- package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
- package/dist/lib/user-profile/user-profile.component.d.ts +3 -2
- package/dist/lib/user-profile/user-profile.component.d.ts.map +1 -1
- package/dist/lib/user-profile/user-profile.component.js +5 -4
- package/dist/lib/user-profile/user-profile.component.js.map +1 -1
- package/package.json +52 -52
|
@@ -144,24 +144,72 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
144
144
|
this.rehomeChildToTab(this.componentRef?.instance, tabId);
|
|
145
145
|
}
|
|
146
146
|
dataLoaded = false;
|
|
147
|
-
|
|
147
|
+
ContainerElement;
|
|
148
|
+
/** @deprecated Use {@link ContainerElement}. */
|
|
149
|
+
get containerElement() {
|
|
150
|
+
return this.ContainerElement;
|
|
151
|
+
}
|
|
152
|
+
/** @deprecated Use {@link ContainerElement}. */
|
|
153
|
+
set containerElement(value) {
|
|
154
|
+
this.ContainerElement = value;
|
|
155
|
+
}
|
|
148
156
|
/** Error message to display when dashboard fails to load */
|
|
149
157
|
errorMessage = null;
|
|
150
158
|
/** Technical error details (shown in expandable section) */
|
|
151
|
-
|
|
159
|
+
ErrorDetails = null;
|
|
160
|
+
/** @deprecated Use {@link ErrorDetails}. */
|
|
161
|
+
get errorDetails() {
|
|
162
|
+
return this.ErrorDetails;
|
|
163
|
+
}
|
|
164
|
+
/** @deprecated Use {@link ErrorDetails}. */
|
|
165
|
+
set errorDetails(value) {
|
|
166
|
+
this.ErrorDetails = value;
|
|
167
|
+
}
|
|
152
168
|
/** Cached dashboard categories for breadcrumb navigation */
|
|
153
169
|
categories = [];
|
|
154
170
|
/** Reference to the dashboard viewer component (for config-based dashboards) */
|
|
155
171
|
viewerInstance = null;
|
|
156
172
|
/** The config-based dashboard entity (null for code-based dashboards) */
|
|
157
|
-
|
|
173
|
+
ConfigDashboard = null;
|
|
174
|
+
/** @deprecated Use {@link ConfigDashboard}. */
|
|
175
|
+
get configDashboard() {
|
|
176
|
+
return this.ConfigDashboard;
|
|
177
|
+
}
|
|
178
|
+
/** @deprecated Use {@link ConfigDashboard}. */
|
|
179
|
+
set configDashboard(value) {
|
|
180
|
+
this.ConfigDashboard = value;
|
|
181
|
+
}
|
|
158
182
|
/** Whether we're in edit mode */
|
|
159
|
-
|
|
183
|
+
IsEditMode = false;
|
|
184
|
+
/** @deprecated Use {@link IsEditMode}. */
|
|
185
|
+
get isEditMode() {
|
|
186
|
+
return this.IsEditMode;
|
|
187
|
+
}
|
|
188
|
+
/** @deprecated Use {@link IsEditMode}. */
|
|
189
|
+
set isEditMode(value) {
|
|
190
|
+
this.IsEditMode = value;
|
|
191
|
+
}
|
|
160
192
|
/** Editing fields */
|
|
161
|
-
|
|
162
|
-
|
|
193
|
+
EditingName = '';
|
|
194
|
+
/** @deprecated Use {@link EditingName}. */
|
|
195
|
+
get editingName() {
|
|
196
|
+
return this.EditingName;
|
|
197
|
+
}
|
|
198
|
+
/** @deprecated Use {@link EditingName}. */
|
|
199
|
+
set editingName(value) {
|
|
200
|
+
this.EditingName = value;
|
|
201
|
+
}
|
|
202
|
+
EditingDescription = '';
|
|
203
|
+
/** @deprecated Use {@link EditingDescription}. */
|
|
204
|
+
get editingDescription() {
|
|
205
|
+
return this.EditingDescription;
|
|
206
|
+
}
|
|
207
|
+
/** @deprecated Use {@link EditingDescription}. */
|
|
208
|
+
set editingDescription(value) {
|
|
209
|
+
this.EditingDescription = value;
|
|
210
|
+
}
|
|
163
211
|
/** Current user's permissions for this dashboard */
|
|
164
|
-
|
|
212
|
+
DashboardPermissions = {
|
|
165
213
|
DashboardID: '',
|
|
166
214
|
CanRead: true,
|
|
167
215
|
CanEdit: true,
|
|
@@ -170,21 +218,37 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
170
218
|
IsOwner: true,
|
|
171
219
|
PermissionSource: 'owner'
|
|
172
220
|
};
|
|
221
|
+
/** @deprecated Use {@link DashboardPermissions}. */
|
|
222
|
+
get dashboardPermissions() {
|
|
223
|
+
return this.DashboardPermissions;
|
|
224
|
+
}
|
|
225
|
+
/** @deprecated Use {@link DashboardPermissions}. */
|
|
226
|
+
set dashboardPermissions(value) {
|
|
227
|
+
this.DashboardPermissions = value;
|
|
228
|
+
}
|
|
173
229
|
/** Whether the share dialog is visible */
|
|
174
|
-
|
|
230
|
+
ShowShareDialog = false;
|
|
231
|
+
/** @deprecated Use {@link ShowShareDialog}. */
|
|
232
|
+
get showShareDialog() {
|
|
233
|
+
return this.ShowShareDialog;
|
|
234
|
+
}
|
|
235
|
+
/** @deprecated Use {@link ShowShareDialog}. */
|
|
236
|
+
set showShareDialog(value) {
|
|
237
|
+
this.ShowShareDialog = value;
|
|
238
|
+
}
|
|
175
239
|
/**
|
|
176
240
|
* Sets the error state with a user-friendly message and optional technical details
|
|
177
241
|
*/
|
|
178
242
|
setError(message, error) {
|
|
179
243
|
this.errorMessage = message;
|
|
180
244
|
if (error instanceof Error) {
|
|
181
|
-
this.
|
|
245
|
+
this.ErrorDetails = error.message;
|
|
182
246
|
if (error.stack) {
|
|
183
|
-
this.
|
|
247
|
+
this.ErrorDetails += '\n\nStack trace:\n' + error.stack;
|
|
184
248
|
}
|
|
185
249
|
}
|
|
186
250
|
else if (error) {
|
|
187
|
-
this.
|
|
251
|
+
this.ErrorDetails = String(error);
|
|
188
252
|
}
|
|
189
253
|
}
|
|
190
254
|
/**
|
|
@@ -192,7 +256,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
192
256
|
*/
|
|
193
257
|
clearError() {
|
|
194
258
|
this.errorMessage = null;
|
|
195
|
-
this.
|
|
259
|
+
this.ErrorDetails = null;
|
|
196
260
|
}
|
|
197
261
|
constructor(viewContainer, cdr) {
|
|
198
262
|
super();
|
|
@@ -212,7 +276,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
212
276
|
this.componentRef = null;
|
|
213
277
|
}
|
|
214
278
|
this.clearError();
|
|
215
|
-
this.
|
|
279
|
+
this.ConfigDashboard = null;
|
|
216
280
|
this.viewerInstance = null;
|
|
217
281
|
this.loadDashboard();
|
|
218
282
|
}
|
|
@@ -233,23 +297,27 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
233
297
|
/**
|
|
234
298
|
* Toggle between view and edit mode
|
|
235
299
|
*/
|
|
236
|
-
|
|
237
|
-
if (this.
|
|
238
|
-
this.
|
|
300
|
+
ToggleEditMode() {
|
|
301
|
+
if (this.IsEditMode) {
|
|
302
|
+
this.CancelEdit();
|
|
239
303
|
}
|
|
240
304
|
else {
|
|
241
305
|
this.enterEditMode();
|
|
242
306
|
}
|
|
243
307
|
}
|
|
308
|
+
/** @deprecated Use {@link ToggleEditMode}. */
|
|
309
|
+
toggleEditMode() {
|
|
310
|
+
return this.ToggleEditMode();
|
|
311
|
+
}
|
|
244
312
|
/**
|
|
245
313
|
* Enter edit mode
|
|
246
314
|
*/
|
|
247
315
|
enterEditMode() {
|
|
248
|
-
if (!this.
|
|
316
|
+
if (!this.ConfigDashboard)
|
|
249
317
|
return;
|
|
250
|
-
this.
|
|
251
|
-
this.
|
|
252
|
-
this.
|
|
318
|
+
this.IsEditMode = true;
|
|
319
|
+
this.EditingName = this.ConfigDashboard.Name;
|
|
320
|
+
this.EditingDescription = this.ConfigDashboard.Description || '';
|
|
253
321
|
// Tell the viewer to enter edit mode
|
|
254
322
|
if (this.viewerInstance) {
|
|
255
323
|
this.viewerInstance.isEditing = true;
|
|
@@ -259,28 +327,32 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
259
327
|
/**
|
|
260
328
|
* Cancel edit mode and discard changes
|
|
261
329
|
*/
|
|
262
|
-
|
|
263
|
-
this.
|
|
330
|
+
CancelEdit() {
|
|
331
|
+
this.IsEditMode = false;
|
|
264
332
|
// Tell the viewer to exit edit mode
|
|
265
333
|
if (this.viewerInstance) {
|
|
266
334
|
this.viewerInstance.isEditing = false;
|
|
267
335
|
}
|
|
268
336
|
this.cdr.detectChanges();
|
|
269
337
|
}
|
|
338
|
+
/** @deprecated Use {@link CancelEdit}. */
|
|
339
|
+
cancelEdit() {
|
|
340
|
+
return this.CancelEdit();
|
|
341
|
+
}
|
|
270
342
|
/**
|
|
271
343
|
* Save dashboard changes
|
|
272
344
|
*/
|
|
273
|
-
async
|
|
274
|
-
if (!this.
|
|
345
|
+
async SaveDashboard() {
|
|
346
|
+
if (!this.ConfigDashboard || !this.viewerInstance)
|
|
275
347
|
return;
|
|
276
348
|
try {
|
|
277
349
|
// Update dashboard name and description
|
|
278
|
-
this.
|
|
279
|
-
this.
|
|
350
|
+
this.ConfigDashboard.Name = this.EditingName;
|
|
351
|
+
this.ConfigDashboard.Description = this.EditingDescription;
|
|
280
352
|
// Save via the viewer (which handles layout saving)
|
|
281
353
|
await this.viewerInstance.save();
|
|
282
354
|
// Exit edit mode
|
|
283
|
-
this.
|
|
355
|
+
this.IsEditMode = false;
|
|
284
356
|
this.viewerInstance.isEditing = false;
|
|
285
357
|
this.cdr.detectChanges();
|
|
286
358
|
}
|
|
@@ -288,41 +360,61 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
288
360
|
console.error('Error saving dashboard:', error);
|
|
289
361
|
}
|
|
290
362
|
}
|
|
363
|
+
/** @deprecated Use {@link SaveDashboard}. */
|
|
364
|
+
async saveDashboard() {
|
|
365
|
+
return this.SaveDashboard();
|
|
366
|
+
}
|
|
291
367
|
/**
|
|
292
368
|
* Open the add panel dialog
|
|
293
369
|
*/
|
|
294
|
-
|
|
370
|
+
OpenAddPartDialog() {
|
|
295
371
|
if (this.viewerInstance) {
|
|
296
372
|
// Trigger the viewer's add panel flow
|
|
297
373
|
this.viewerInstance.onAddPanelClick();
|
|
298
374
|
}
|
|
299
375
|
}
|
|
376
|
+
/** @deprecated Use {@link OpenAddPartDialog}. */
|
|
377
|
+
openAddPartDialog() {
|
|
378
|
+
return this.OpenAddPartDialog();
|
|
379
|
+
}
|
|
300
380
|
/**
|
|
301
381
|
* Open the share dialog for this dashboard
|
|
302
382
|
*/
|
|
303
|
-
|
|
304
|
-
this.
|
|
383
|
+
OpenShareDialog() {
|
|
384
|
+
this.ShowShareDialog = true;
|
|
305
385
|
this.cdr.detectChanges();
|
|
306
386
|
}
|
|
387
|
+
/** @deprecated Use {@link OpenShareDialog}. */
|
|
388
|
+
openShareDialog() {
|
|
389
|
+
return this.OpenShareDialog();
|
|
390
|
+
}
|
|
307
391
|
/**
|
|
308
392
|
* Close the share dialog
|
|
309
393
|
*/
|
|
310
|
-
|
|
311
|
-
this.
|
|
394
|
+
CloseShareDialog() {
|
|
395
|
+
this.ShowShareDialog = false;
|
|
312
396
|
this.cdr.detectChanges();
|
|
313
397
|
}
|
|
398
|
+
/** @deprecated Use {@link CloseShareDialog}. */
|
|
399
|
+
closeShareDialog() {
|
|
400
|
+
return this.CloseShareDialog();
|
|
401
|
+
}
|
|
314
402
|
/**
|
|
315
403
|
* Handle share dialog result
|
|
316
404
|
*/
|
|
317
|
-
|
|
318
|
-
this.
|
|
319
|
-
if (result.Action === 'save' && this.
|
|
405
|
+
OnShareDialogResult(result) {
|
|
406
|
+
this.ShowShareDialog = false;
|
|
407
|
+
if (result.Action === 'save' && this.ConfigDashboard) {
|
|
320
408
|
// Recompute permissions after sharing changes
|
|
321
409
|
const md = this.ProviderToUse;
|
|
322
|
-
this.
|
|
410
|
+
this.DashboardPermissions = DashboardEngine.Instance.GetDashboardPermissions(this.ConfigDashboard.ID, md.CurrentUser.ID);
|
|
323
411
|
}
|
|
324
412
|
this.cdr.detectChanges();
|
|
325
413
|
}
|
|
414
|
+
/** @deprecated Use {@link OnShareDialogResult}. */
|
|
415
|
+
onShareDialogResult(result) {
|
|
416
|
+
return this.OnShareDialogResult(result);
|
|
417
|
+
}
|
|
326
418
|
/**
|
|
327
419
|
* Load the appropriate dashboard component based on dashboard type
|
|
328
420
|
* Routes between code-based dashboards (registered classes) and config-based dashboards
|
|
@@ -376,7 +468,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
376
468
|
try {
|
|
377
469
|
// Lazy-load the Data Explorer component to keep it out of the initial bundle
|
|
378
470
|
const { DataExplorerDashboardComponent } = await import('@memberjunction/ng-dashboards/data-explorer-dashboards.module');
|
|
379
|
-
this.
|
|
471
|
+
this.ContainerElement.nativeElement.innerHTML = '';
|
|
380
472
|
const componentRef = this.viewContainer.createComponent(DataExplorerDashboardComponent);
|
|
381
473
|
this.componentRef = componentRef;
|
|
382
474
|
const instance = componentRef.instance;
|
|
@@ -402,7 +494,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
402
494
|
const nativeElement = componentRef.hostView.rootNodes[0];
|
|
403
495
|
nativeElement.style.width = '100%';
|
|
404
496
|
nativeElement.style.height = '100%';
|
|
405
|
-
this.
|
|
497
|
+
this.ContainerElement.nativeElement.appendChild(nativeElement);
|
|
406
498
|
// Handle open entity record events
|
|
407
499
|
instance.OpenEntityRecord.subscribe((eventData) => {
|
|
408
500
|
if (eventData && eventData.EntityName && eventData.RecordPKey) {
|
|
@@ -455,7 +547,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
455
547
|
throw new Error(`Dashboard class '${dashboard.DriverClass}' is not registered. Please check the class registration.`);
|
|
456
548
|
}
|
|
457
549
|
// Create the component instance
|
|
458
|
-
this.
|
|
550
|
+
this.ContainerElement.nativeElement.innerHTML = '';
|
|
459
551
|
this.componentRef = this.viewContainer.createComponent(classReg.SubClass);
|
|
460
552
|
const instance = this.componentRef.instance;
|
|
461
553
|
// Scope the child's query-param reads/writes to THIS tab. Code dashboards resolved via
|
|
@@ -496,7 +588,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
496
588
|
const nativeElement = this.componentRef.hostView.rootNodes[0];
|
|
497
589
|
nativeElement.style.width = '100%';
|
|
498
590
|
nativeElement.style.height = '100%';
|
|
499
|
-
this.
|
|
591
|
+
this.ContainerElement.nativeElement.appendChild(nativeElement);
|
|
500
592
|
// handle open entity record events in MJ Explorer with routing
|
|
501
593
|
instance.OpenEntityRecord.subscribe((data) => {
|
|
502
594
|
// check to see if the data has entityname/pkey
|
|
@@ -548,21 +640,21 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
548
640
|
*/
|
|
549
641
|
async loadConfigBasedDashboard(dashboard) {
|
|
550
642
|
try {
|
|
551
|
-
this.
|
|
643
|
+
this.ContainerElement.nativeElement.innerHTML = '';
|
|
552
644
|
const componentRef = this.viewContainer.createComponent(DashboardViewerComponent);
|
|
553
645
|
this.componentRef = componentRef;
|
|
554
646
|
const instance = componentRef.instance;
|
|
555
647
|
// Store references for external toolbar control
|
|
556
648
|
this.viewerInstance = instance;
|
|
557
|
-
this.
|
|
649
|
+
this.ConfigDashboard = dashboard;
|
|
558
650
|
// Compute user permissions for this dashboard
|
|
559
651
|
const md = this.ProviderToUse;
|
|
560
|
-
this.
|
|
652
|
+
this.DashboardPermissions = DashboardEngine.Instance.GetDashboardPermissions(dashboard.ID, md.CurrentUser.ID);
|
|
561
653
|
// Manually append the component's native element inside the div
|
|
562
654
|
const nativeElement = this.componentRef.hostView.rootNodes[0];
|
|
563
655
|
nativeElement.style.width = '100%';
|
|
564
656
|
nativeElement.style.height = '100%';
|
|
565
|
-
this.
|
|
657
|
+
this.ContainerElement.nativeElement.appendChild(nativeElement);
|
|
566
658
|
// Load categories for breadcrumb navigation (if not already loaded)
|
|
567
659
|
if (this.categories.length === 0) {
|
|
568
660
|
this.categories = DashboardEngine.Instance.DashboardCategories;
|
|
@@ -680,7 +772,7 @@ let DashboardResource = class DashboardResource extends BaseResourceComponent {
|
|
|
680
772
|
i0.ɵɵviewQuery(_c0, 7);
|
|
681
773
|
} if (rf & 2) {
|
|
682
774
|
let _t;
|
|
683
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
775
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ContainerElement = _t.first);
|
|
684
776
|
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 4, consts: [["container", ""], [1, "dashboard-resource-wrapper"], [1, "error-state"], [1, "viewer-toolbar"], [1, "viewer-header", "editing"], [1, "dashboard-resource-container"], [3, "Visible", "Dashboard"], [1, "error-icon"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "error-title"], [1, "error-message"], [1, "error-details"], [1, "toolbar-left"], [1, "dashboard-title"], [1, "fa-solid", "fa-chart-line"], ["title", "Shared with you", 1, "shared-indicator"], [1, "toolbar-actions"], ["title", "Share Dashboard", 1, "btn-icon"], ["title", "Edit Dashboard", 1, "btn-icon"], [1, "fa-solid", "fa-share-nodes"], ["title", "Share Dashboard", 1, "btn-icon", 3, "click"], ["title", "Edit Dashboard", 1, "btn-icon", 3, "click"], [1, "fa-solid", "fa-edit"], [1, "header-left"], [1, "btn-add-part", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "header-separator"], [1, "dashboard-info-edit"], ["type", "text", "placeholder", "Dashboard name", 1, "dashboard-name-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "Add a description...", 1, "dashboard-description-input", 3, "ngModelChange", "ngModel"], [1, "header-right"], [1, "btn-primary", 3, "click"], [1, "fa-solid", "fa-save"], [1, "btn-cancel", 3, "click"], [3, "Result", "Visible", "Dashboard"]], template: function DashboardResource_Template(rf, ctx) { if (rf & 1) {
|
|
685
777
|
i0.ɵɵelementStart(0, "div", 1);
|
|
686
778
|
i0.ɵɵconditionalCreate(1, DashboardResource_Conditional_1_Template, 8, 2, "div", 2);
|
|
@@ -807,7 +899,7 @@ export { DashboardResource };
|
|
|
807
899
|
}
|
|
808
900
|
</div>
|
|
809
901
|
`, styles: ["\n :host {\n display: block;\n width: 100%;\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n .dashboard-resource-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n .dashboard-resource-container {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n }\n\n /* View Mode Toolbar */\n .viewer-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n gap: 16px;\n }\n .viewer-toolbar .toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .viewer-toolbar .dashboard-title {\n font-size: 16px;\n font-weight: 500;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .viewer-toolbar .dashboard-title i {\n color: var(--mj-brand-primary);\n }\n .shared-indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-size: 11px;\n }\n .viewer-toolbar .toolbar-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n /* Edit Mode Header */\n .viewer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n transition: background 0.2s, border-color 0.2s;\n }\n .viewer-header.editing {\n background: linear-gradient(135deg, color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface)) 0%, color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface)) 100%);\n border-bottom: 2px solid var(--mj-brand-primary);\n }\n .viewer-header .header-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n }\n .viewer-header .header-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n /* Add Part button */\n .btn-add-part {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border: none;\n border-radius: 6px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s, transform 0.1s;\n box-shadow: 0 2px 4px color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n .btn-add-part:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: 0 3px 6px color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n }\n .btn-add-part i { font-size: 12px; }\n\n /* Header separator */\n .header-separator {\n width: 1px;\n height: 28px;\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n margin: 0 4px;\n }\n\n /* Buttons */\n .btn-primary {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: none;\n border-radius: 6px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n .btn-primary:hover { background: var(--mj-brand-primary-hover); }\n\n .btn-icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n cursor: pointer;\n transition: all 0.2s;\n }\n .btn-icon:hover { background: var(--mj-bg-surface-sunken); }\n\n .btn-cancel {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-secondary);\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n }\n .btn-cancel:hover {\n background: var(--mj-bg-surface-sunken);\n border-color: var(--mj-border-default);\n color: var(--mj-text-primary);\n }\n\n /* Dashboard info inputs */\n .dashboard-info-edit {\n display: flex;\n align-items: center;\n gap: 16px;\n flex: 1;\n }\n .dashboard-name-input {\n border: 1px solid transparent;\n border-radius: 4px;\n padding: 6px 12px;\n font-size: 16px;\n font-weight: 500;\n color: var(--mj-text-primary);\n background: rgba(255, 255, 255, 0.7);\n outline: none;\n min-width: 200px;\n max-width: 300px;\n transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;\n }\n .dashboard-name-input:hover { background: rgba(255, 255, 255, 0.9); }\n .dashboard-name-input:focus {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n }\n .dashboard-description-input {\n border: 1px solid transparent;\n border-radius: 4px;\n padding: 6px 12px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n background: rgba(255, 255, 255, 0.5);\n outline: none;\n flex: 1;\n min-width: 150px;\n max-width: 400px;\n transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;\n }\n .dashboard-description-input:hover { background: rgba(255, 255, 255, 0.8); }\n .dashboard-description-input:focus {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--mj-brand-primary) 20%, transparent);\n }\n .dashboard-description-input::placeholder {\n color: var(--mj-text-muted);\n font-style: normal;\n }\n\n /* Error state */\n .error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 40px;\n text-align: center;\n color: var(--mj-text-secondary);\n }\n .error-icon {\n font-size: 64px;\n color: var(--mj-status-error);\n margin-bottom: 24px;\n opacity: 0.8;\n }\n .error-title {\n font-size: 24px;\n font-weight: 500;\n margin: 0 0 12px 0;\n color: var(--mj-text-primary);\n }\n .error-message {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 24px 0;\n max-width: 500px;\n line-height: 1.5;\n }\n .error-details {\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n padding: 12px 16px;\n max-width: 600px;\n text-align: left;\n font-size: 13px;\n }\n .error-details summary {\n cursor: pointer;\n font-weight: 500;\n color: var(--mj-text-muted);\n margin-bottom: 8px;\n }\n .error-details pre {\n margin: 0;\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--mj-status-error-text);\n font-family: 'Consolas', 'Monaco', monospace;\n font-size: 12px;\n }\n\n /* Responsive */\n @media (max-width: 768px) {\n .viewer-header {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n .viewer-header .header-left { flex-wrap: wrap; }\n .dashboard-info-edit {\n flex-direction: column;\n align-items: stretch;\n }\n .dashboard-name-input,\n .dashboard-description-input { max-width: none; }\n }\n "] }]
|
|
810
|
-
}], () => [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], {
|
|
902
|
+
}], () => [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }], { ContainerElement: [{
|
|
811
903
|
type: ViewChild,
|
|
812
904
|
args: ['container', { static: true }]
|
|
813
905
|
}] }); })();
|