@memberjunction/ng-explorer-core 6.2.0-edge.0 → 6.2.0-edge.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/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/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 +186 -23
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +500 -177
- 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/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 +68 -10
- package/dist/lib/resource-wrappers/view-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/view-resource.component.js +178 -62
- package/dist/lib/resource-wrappers/view-resource.component.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 +262 -39
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +688 -292
- 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
|
@@ -27,13 +27,29 @@ function ChatTasksResource_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
27
27
|
* Supports URL deep-linking via taskId query parameter
|
|
28
28
|
*/
|
|
29
29
|
let ChatTasksResource = class ChatTasksResource extends BaseResourceComponent {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
TasksView;
|
|
31
|
+
/** @deprecated Use {@link TasksView}. */
|
|
32
|
+
get tasksView() {
|
|
33
|
+
return this.TasksView;
|
|
34
|
+
}
|
|
35
|
+
/** @deprecated Use {@link TasksView}. */
|
|
36
|
+
set tasksView(value) {
|
|
37
|
+
this.TasksView = value;
|
|
38
|
+
}
|
|
39
|
+
CurrentUser = null;
|
|
40
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
41
|
+
get currentUser() {
|
|
42
|
+
return this.CurrentUser;
|
|
43
|
+
}
|
|
44
|
+
/** @deprecated Use {@link CurrentUser}. */
|
|
45
|
+
set currentUser(value) {
|
|
46
|
+
this.CurrentUser = value;
|
|
47
|
+
}
|
|
48
|
+
activeTaskId; // case-violation-ok-legacy-back-compat: an accessor cannot be optional, so a stub would turn this into a required member
|
|
33
49
|
ngOnInit() {
|
|
34
50
|
super.ngOnInit();
|
|
35
51
|
const md = this.ProviderToUse;
|
|
36
|
-
this.
|
|
52
|
+
this.CurrentUser = md.CurrentUser;
|
|
37
53
|
// Apply initial state from query params or tab config
|
|
38
54
|
const params = this.GetQueryParams();
|
|
39
55
|
const config = this.Data?.Configuration;
|
|
@@ -57,16 +73,24 @@ let ChatTasksResource = class ChatTasksResource extends BaseResourceComponent {
|
|
|
57
73
|
/**
|
|
58
74
|
* Handle task selection from the tasks view.
|
|
59
75
|
*/
|
|
60
|
-
|
|
76
|
+
OnTaskSelected(taskId) {
|
|
61
77
|
this.activeTaskId = taskId || undefined;
|
|
62
78
|
this.UpdateQueryParams({ taskId: this.activeTaskId ?? null });
|
|
63
79
|
}
|
|
80
|
+
/** @deprecated Use {@link OnTaskSelected}. */
|
|
81
|
+
onTaskSelected(taskId) {
|
|
82
|
+
return this.OnTaskSelected(taskId);
|
|
83
|
+
}
|
|
64
84
|
/**
|
|
65
85
|
* Get the environment ID from configuration or use default
|
|
66
86
|
*/
|
|
67
|
-
get
|
|
87
|
+
get EnvironmentId() {
|
|
68
88
|
return this.Data?.Configuration?.environmentId || MJEnvironmentEntityExtended.DefaultEnvironmentID;
|
|
69
89
|
}
|
|
90
|
+
/** @deprecated Use {@link EnvironmentId}. */
|
|
91
|
+
get environmentId() {
|
|
92
|
+
return this.EnvironmentId;
|
|
93
|
+
}
|
|
70
94
|
/**
|
|
71
95
|
* Get the display name for chat tasks
|
|
72
96
|
*/
|
|
@@ -84,7 +108,7 @@ let ChatTasksResource = class ChatTasksResource extends BaseResourceComponent {
|
|
|
84
108
|
i0.ɵɵviewQuery(_c0, 5);
|
|
85
109
|
} if (rf & 2) {
|
|
86
110
|
let _t;
|
|
87
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
111
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.TasksView = _t.first);
|
|
88
112
|
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [["tasksView", ""], [1, "chat-tasks-container"], [2, "height", "100%", 3, "environmentId", "currentUser", "baseFilter", "activeTaskId"], [2, "height", "100%", 3, "taskSelected", "environmentId", "currentUser", "baseFilter", "activeTaskId"]], template: function ChatTasksResource_Template(rf, ctx) { if (rf & 1) {
|
|
89
113
|
i0.ɵɵelementStart(0, "div", 1);
|
|
90
114
|
i0.ɵɵconditionalCreate(1, ChatTasksResource_Conditional_1_Template, 2, 4, "mj-tasks-full-view", 2);
|
|
@@ -115,7 +139,7 @@ export { ChatTasksResource };
|
|
|
115
139
|
}
|
|
116
140
|
</div>
|
|
117
141
|
`, encapsulation: ViewEncapsulation.None, styles: ["\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-tasks-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n }\n "] }]
|
|
118
|
-
}], null, {
|
|
142
|
+
}], null, { TasksView: [{
|
|
119
143
|
type: ViewChild,
|
|
120
144
|
args: ['tasksView']
|
|
121
145
|
}] }); })();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-tasks-resource.component.js","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-tasks-resource.component.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAa,SAAS,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAqB,MAAM,2BAA2B,CAAC;AAErF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;;;;;;IAgBpE,gDAOwB;IADtB,qNAAgB,6BAA4B,KAAC;IAE/C,iBAAqB;;;IAHnB,AADA,AADA,AADA,oDAA+B,mCACJ,qBACP,qCACS;;AAlBvC;;;;;GAKG;AAuCI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,qBAAqB;IAClC,SAAS,CAA0B;
|
|
1
|
+
{"version":3,"file":"chat-tasks-resource.component.js","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/chat-tasks-resource.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewEncapsulation, OnDestroy, ViewChild } from '@angular/core';\nimport { Metadata } from '@memberjunction/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport { MJEnvironmentEntityExtended } from '@memberjunction/core-entities';\nimport { TasksFullViewComponent } from '@memberjunction/ng-conversations';\nimport { Subject } from 'rxjs';\n/**\n * Chat Tasks Resource - displays the tasks full view for tab-based display\n * Extends BaseResourceComponent to work with the resource type system\n * Shows all tasks associated with conversations and artifacts\n * Supports URL deep-linking via taskId query parameter\n */\n@RegisterClass(BaseResourceComponent, 'ChatTasksResource')\n@Component({\n standalone: false,\n selector: 'mj-chat-tasks-resource',\n template: `\n <div class=\"chat-tasks-container\">\n @if (currentUser) {\n <mj-tasks-full-view\n #tasksView\n [environmentId]=\"environmentId\"\n [currentUser]=\"currentUser\"\n [baseFilter]=\"'1=1'\"\n [activeTaskId]=\"activeTaskId\"\n (taskSelected)=\"onTaskSelected($any($event))\"\n style=\"height: 100%;\">\n </mj-tasks-full-view>\n }\n </div>\n `,\n styles: [`\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n }\n\n .chat-tasks-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n flex: 1;\n overflow: hidden;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class ChatTasksResource extends BaseResourceComponent implements OnDestroy {\n @ViewChild('tasksView') TasksView?: TasksFullViewComponent;\n\n /** @deprecated Use {@link TasksView}. */\n get tasksView(): TasksFullViewComponent | undefined {\n return this.TasksView;\n }\n /** @deprecated Use {@link TasksView}. */\n set tasksView(value: TasksFullViewComponent | undefined) {\n this.TasksView = value;\n }\n\n public CurrentUser: any = null;\n\n /** @deprecated Use {@link CurrentUser}. */\n public get currentUser(): any {\n return this.CurrentUser;\n }\n /** @deprecated Use {@link CurrentUser}. */\n public set currentUser(value: any) {\n this.CurrentUser = value;\n }\n public activeTaskId?: string; // case-violation-ok-legacy-back-compat: an accessor cannot be optional, so a stub would turn this into a required member\n\n ngOnInit() {\n super.ngOnInit();\n const md = this.ProviderToUse;\n this.CurrentUser = md.CurrentUser;\n\n // Apply initial state from query params or tab config\n const params = this.GetQueryParams();\n const config = this.Data?.Configuration;\n const taskId = params['taskId'] || (config?.taskId as string);\n if (taskId) {\n this.activeTaskId = taskId;\n }\n\n // Push initial state to URL\n this.UpdateQueryParams({ taskId: this.activeTaskId ?? null });\n\n // Notify load complete after user is set\n setTimeout(() => {\n this.NotifyLoadComplete();\n }, 100);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n protected override OnQueryParamsChanged(params: Record<string, string>, source: 'popstate' | 'deeplink'): void {\n this.activeTaskId = params['taskId'] || undefined;\n }\n\n /**\n * Handle task selection from the tasks view.\n */\n OnTaskSelected(taskId: string | null): void {\n this.activeTaskId = taskId || undefined;\n this.UpdateQueryParams({ taskId: this.activeTaskId ?? null });\n }\n\n /** @deprecated Use {@link OnTaskSelected}. */\n onTaskSelected(taskId: string | null): void {\n return this.OnTaskSelected(taskId);\n }\n\n\n /**\n * Get the environment ID from configuration or use default\n */\n get EnvironmentId(): string {\n return this.Data?.Configuration?.environmentId || MJEnvironmentEntityExtended.DefaultEnvironmentID;\n }\n\n /** @deprecated Use {@link EnvironmentId}. */\n get environmentId(): string {\n return this.EnvironmentId;\n }\n\n /**\n * Get the display name for chat tasks\n */\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Tasks';\n }\n\n /**\n * Get the icon class for chat tasks\n */\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-tasks';\n }\n}\n"]}
|
|
@@ -20,26 +20,58 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
20
20
|
*/
|
|
21
21
|
protected onTabIdRebound(tabId: string): void;
|
|
22
22
|
private dataLoaded;
|
|
23
|
-
|
|
23
|
+
ContainerElement: ElementRef<HTMLDivElement>;
|
|
24
|
+
/** @deprecated Use {@link ContainerElement}. */
|
|
25
|
+
get containerElement(): ElementRef<HTMLDivElement>;
|
|
26
|
+
/** @deprecated Use {@link ContainerElement}. */
|
|
27
|
+
set containerElement(value: ElementRef<HTMLDivElement>);
|
|
24
28
|
/** Error message to display when dashboard fails to load */
|
|
25
29
|
errorMessage: string | null;
|
|
26
30
|
/** Technical error details (shown in expandable section) */
|
|
27
|
-
|
|
31
|
+
ErrorDetails: string | null;
|
|
32
|
+
/** @deprecated Use {@link ErrorDetails}. */
|
|
33
|
+
get errorDetails(): string | null;
|
|
34
|
+
/** @deprecated Use {@link ErrorDetails}. */
|
|
35
|
+
set errorDetails(value: string | null);
|
|
28
36
|
/** Cached dashboard categories for breadcrumb navigation */
|
|
29
37
|
private categories;
|
|
30
38
|
/** Reference to the dashboard viewer component (for config-based dashboards) */
|
|
31
39
|
private viewerInstance;
|
|
32
40
|
/** The config-based dashboard entity (null for code-based dashboards) */
|
|
33
|
-
|
|
41
|
+
ConfigDashboard: MJDashboardEntity | null;
|
|
42
|
+
/** @deprecated Use {@link ConfigDashboard}. */
|
|
43
|
+
get configDashboard(): MJDashboardEntity | null;
|
|
44
|
+
/** @deprecated Use {@link ConfigDashboard}. */
|
|
45
|
+
set configDashboard(value: MJDashboardEntity | null);
|
|
34
46
|
/** Whether we're in edit mode */
|
|
35
|
-
|
|
47
|
+
IsEditMode: boolean;
|
|
48
|
+
/** @deprecated Use {@link IsEditMode}. */
|
|
49
|
+
get isEditMode(): boolean;
|
|
50
|
+
/** @deprecated Use {@link IsEditMode}. */
|
|
51
|
+
set isEditMode(value: boolean);
|
|
36
52
|
/** Editing fields */
|
|
37
|
-
|
|
38
|
-
|
|
53
|
+
EditingName: string;
|
|
54
|
+
/** @deprecated Use {@link EditingName}. */
|
|
55
|
+
get editingName(): string;
|
|
56
|
+
/** @deprecated Use {@link EditingName}. */
|
|
57
|
+
set editingName(value: string);
|
|
58
|
+
EditingDescription: string;
|
|
59
|
+
/** @deprecated Use {@link EditingDescription}. */
|
|
60
|
+
get editingDescription(): string;
|
|
61
|
+
/** @deprecated Use {@link EditingDescription}. */
|
|
62
|
+
set editingDescription(value: string);
|
|
39
63
|
/** Current user's permissions for this dashboard */
|
|
40
|
-
|
|
64
|
+
DashboardPermissions: DashboardUserPermissions;
|
|
65
|
+
/** @deprecated Use {@link DashboardPermissions}. */
|
|
66
|
+
get dashboardPermissions(): DashboardUserPermissions;
|
|
67
|
+
/** @deprecated Use {@link DashboardPermissions}. */
|
|
68
|
+
set dashboardPermissions(value: DashboardUserPermissions);
|
|
41
69
|
/** Whether the share dialog is visible */
|
|
42
|
-
|
|
70
|
+
ShowShareDialog: boolean;
|
|
71
|
+
/** @deprecated Use {@link ShowShareDialog}. */
|
|
72
|
+
get showShareDialog(): boolean;
|
|
73
|
+
/** @deprecated Use {@link ShowShareDialog}. */
|
|
74
|
+
set showShareDialog(value: boolean);
|
|
43
75
|
/**
|
|
44
76
|
* Sets the error state with a user-friendly message and optional technical details
|
|
45
77
|
*/
|
|
@@ -55,6 +87,8 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
55
87
|
/**
|
|
56
88
|
* Toggle between view and edit mode
|
|
57
89
|
*/
|
|
90
|
+
ToggleEditMode(): void;
|
|
91
|
+
/** @deprecated Use {@link ToggleEditMode}. */
|
|
58
92
|
toggleEditMode(): void;
|
|
59
93
|
/**
|
|
60
94
|
* Enter edit mode
|
|
@@ -63,26 +97,38 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
63
97
|
/**
|
|
64
98
|
* Cancel edit mode and discard changes
|
|
65
99
|
*/
|
|
100
|
+
CancelEdit(): void;
|
|
101
|
+
/** @deprecated Use {@link CancelEdit}. */
|
|
66
102
|
cancelEdit(): void;
|
|
67
103
|
/**
|
|
68
104
|
* Save dashboard changes
|
|
69
105
|
*/
|
|
106
|
+
SaveDashboard(): Promise<void>;
|
|
107
|
+
/** @deprecated Use {@link SaveDashboard}. */
|
|
70
108
|
saveDashboard(): Promise<void>;
|
|
71
109
|
/**
|
|
72
110
|
* Open the add panel dialog
|
|
73
111
|
*/
|
|
112
|
+
OpenAddPartDialog(): void;
|
|
113
|
+
/** @deprecated Use {@link OpenAddPartDialog}. */
|
|
74
114
|
openAddPartDialog(): void;
|
|
75
115
|
/**
|
|
76
116
|
* Open the share dialog for this dashboard
|
|
77
117
|
*/
|
|
118
|
+
OpenShareDialog(): void;
|
|
119
|
+
/** @deprecated Use {@link OpenShareDialog}. */
|
|
78
120
|
openShareDialog(): void;
|
|
79
121
|
/**
|
|
80
122
|
* Close the share dialog
|
|
81
123
|
*/
|
|
124
|
+
CloseShareDialog(): void;
|
|
125
|
+
/** @deprecated Use {@link CloseShareDialog}. */
|
|
82
126
|
closeShareDialog(): void;
|
|
83
127
|
/**
|
|
84
128
|
* Handle share dialog result
|
|
85
129
|
*/
|
|
130
|
+
OnShareDialogResult(result: ShareDialogResult): void;
|
|
131
|
+
/** @deprecated Use {@link OnShareDialogResult}. */
|
|
86
132
|
onShareDialogResult(result: ShareDialogResult): void;
|
|
87
133
|
/**
|
|
88
134
|
* Load the appropriate dashboard component based on dashboard type
|
|
@@ -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,iBAAiB,EAAU,MAAM,eAAe,CAAC;AAC5H,OAAO,EAAE,qBAAqB,EAAqD,MAAM,2BAA2B,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAmB,0BAA0B,EAAwD,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAI7M,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sDAAsD,CAAC;;AAE9F;;;;GAIG;AACH,qBA4Ya,iBAAkB,SAAQ,qBAAqB;
|
|
1
|
+
{"version":3,"file":"dashboard-resource.component.d.ts","sourceRoot":"","sources":["../../../src/lib/resource-wrappers/dashboard-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
}] }); })();
|