@memberjunction/ng-explorer-core 6.2.0-edge.3 → 6.2.0-edge.4
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 +10 -0
- package/dist/app-routing.module.d.ts.map +1 -1
- package/dist/app-routing.module.js +5 -0
- 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 +3 -2
- package/dist/generated/lazy-feature-config.js.map +1 -1
- package/dist/lib/guards/moved-nav-item-redirect.d.ts +15 -0
- package/dist/lib/guards/moved-nav-item-redirect.d.ts.map +1 -0
- package/dist/lib/guards/moved-nav-item-redirect.js +37 -0
- package/dist/lib/guards/moved-nav-item-redirect.js.map +1 -0
- package/dist/lib/omnibar/omnibar-dashboard-matches.d.ts +34 -0
- package/dist/lib/omnibar/omnibar-dashboard-matches.d.ts.map +1 -0
- package/dist/lib/omnibar/omnibar-dashboard-matches.js +70 -0
- package/dist/lib/omnibar/omnibar-dashboard-matches.js.map +1 -0
- package/dist/lib/omnibar/omnibar-palette.component.d.ts +27 -2
- package/dist/lib/omnibar/omnibar-palette.component.d.ts.map +1 -1
- package/dist/lib/omnibar/omnibar-palette.component.js +126 -65
- package/dist/lib/omnibar/omnibar-palette.component.js.map +1 -1
- package/dist/lib/omnibar/omnibar-provider.d.ts +4 -0
- package/dist/lib/omnibar/omnibar-provider.d.ts.map +1 -1
- package/dist/lib/omnibar/omnibar-provider.js.map +1 -1
- package/dist/lib/omnibar/providers/omnibar-record.provider.d.ts +2 -2
- package/dist/lib/omnibar/providers/omnibar-record.provider.d.ts.map +1 -1
- package/dist/lib/omnibar/providers/omnibar-record.provider.js +3 -7
- package/dist/lib/omnibar/providers/omnibar-record.provider.js.map +1 -1
- package/dist/lib/omnibar/providers/omnibar-search.provider.d.ts +15 -2
- package/dist/lib/omnibar/providers/omnibar-search.provider.d.ts.map +1 -1
- package/dist/lib/omnibar/providers/omnibar-search.provider.js +59 -7
- package/dist/lib/omnibar/providers/omnibar-search.provider.js.map +1 -1
- package/dist/lib/profile/forking-setting.d.ts +8 -0
- package/dist/lib/profile/forking-setting.d.ts.map +1 -0
- package/dist/lib/profile/forking-setting.js +18 -0
- package/dist/lib/profile/forking-setting.js.map +1 -0
- package/dist/lib/profile/profile-dialog.component.d.ts +8 -0
- package/dist/lib/profile/profile-dialog.component.d.ts.map +1 -1
- package/dist/lib/profile/profile-dialog.component.js +182 -92
- package/dist/lib/profile/profile-dialog.component.js.map +1 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts +16 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/artifact-resource.component.js +27 -4
- package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts +7 -18
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +20 -41
- package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/chat-search-routing.d.ts +10 -3
- package/dist/lib/resource-wrappers/chat-search-routing.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/chat-search-routing.js +11 -4
- package/dist/lib/resource-wrappers/chat-search-routing.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.d.ts +29 -0
- package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.js +141 -0
- package/dist/lib/resource-wrappers/dashboard-add-to-menu.component.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-part-config.d.ts +28 -0
- package/dist/lib/resource-wrappers/dashboard-part-config.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-part-config.js +150 -0
- package/dist/lib/resource-wrappers/dashboard-part-config.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts +361 -56
- package/dist/lib/resource-wrappers/dashboard-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-resource.component.js +1312 -361
- package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/dashboard-source-search.d.ts +86 -0
- package/dist/lib/resource-wrappers/dashboard-source-search.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-source-search.js +136 -0
- package/dist/lib/resource-wrappers/dashboard-source-search.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-studio-pane.d.ts +30 -0
- package/dist/lib/resource-wrappers/dashboard-studio-pane.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-studio-pane.js +55 -0
- package/dist/lib/resource-wrappers/dashboard-studio-pane.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-studio-tools.d.ts +135 -0
- package/dist/lib/resource-wrappers/dashboard-studio-tools.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-studio-tools.js +856 -0
- package/dist/lib/resource-wrappers/dashboard-studio-tools.js.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-tab-agent.d.ts +87 -0
- package/dist/lib/resource-wrappers/dashboard-tab-agent.d.ts.map +1 -0
- package/dist/lib/resource-wrappers/dashboard-tab-agent.js +125 -0
- package/dist/lib/resource-wrappers/dashboard-tab-agent.js.map +1 -0
- package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts +28 -7
- package/dist/lib/resource-wrappers/livekit-room-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/livekit-room-resource.component.js +174 -112
- package/dist/lib/resource-wrappers/livekit-room-resource.component.js.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.d.ts.map +1 -1
- package/dist/lib/resource-wrappers/search-results-resource.component.js +5 -4
- package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts +7 -0
- package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
- package/dist/lib/shell/components/tabs/tab-container.component.js +20 -2
- package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
- package/dist/lib/shell/dashboard-tab-for-url.d.ts +35 -0
- package/dist/lib/shell/dashboard-tab-for-url.d.ts.map +1 -0
- package/dist/lib/shell/dashboard-tab-for-url.js +39 -0
- package/dist/lib/shell/dashboard-tab-for-url.js.map +1 -0
- package/dist/lib/shell/shell.component.d.ts +31 -2
- package/dist/lib/shell/shell.component.d.ts.map +1 -1
- package/dist/lib/shell/shell.component.js +109 -35
- package/dist/lib/shell/shell.component.js.map +1 -1
- package/dist/lib/shell/shell.module.d.ts +2 -1
- package/dist/lib/shell/shell.module.d.ts.map +1 -1
- package/dist/lib/shell/shell.module.js +6 -2
- package/dist/lib/shell/shell.module.js.map +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js +1 -1
- package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
- package/dist/lib/template-user/template-user-banner.component.d.ts +20 -0
- package/dist/lib/template-user/template-user-banner.component.d.ts.map +1 -0
- package/dist/lib/template-user/template-user-banner.component.js +67 -0
- package/dist/lib/template-user/template-user-banner.component.js.map +1 -0
- package/dist/module.d.ts +61 -59
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +58 -53
|
@@ -1,25 +1,66 @@
|
|
|
1
1
|
import { ViewContainerRef, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
2
2
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
3
3
|
import { ResourceData, MJDashboardEntity, MJDashboardUserStateEntity, DashboardUserPermissions } from '@memberjunction/core-entities';
|
|
4
|
-
import type {
|
|
4
|
+
import type { MJConversationEntity } from '@memberjunction/core-entities';
|
|
5
|
+
import { CompositeKey } from '@memberjunction/core';
|
|
6
|
+
import type { NavigationRequest } from '@memberjunction/ng-artifacts';
|
|
7
|
+
import type { PendingAttachment } from '@memberjunction/ng-composer';
|
|
8
|
+
import type { DashboardEditorLoadError, ShareDialogResult } from '@memberjunction/ng-dashboards/core-dashboards.module';
|
|
9
|
+
import type { DashboardNavRequestEvent } from '@memberjunction/ng-dashboard-viewer';
|
|
10
|
+
import type { DashboardStudioHost } from './dashboard-studio-tools';
|
|
5
11
|
import * as i0 from "@angular/core";
|
|
12
|
+
/** What an agent's Request* tool asks the user to confirm. */
|
|
13
|
+
type AgentConfirmKind = Parameters<DashboardStudioHost['Confirm']>[0];
|
|
14
|
+
/** The confirm dialog an agent's request opens: what it asks, and the texts it shows. */
|
|
15
|
+
interface AgentConfirmDialog {
|
|
16
|
+
Kind: AgentConfirmKind;
|
|
17
|
+
Title: string;
|
|
18
|
+
Message: string;
|
|
19
|
+
ConfirmText: string;
|
|
20
|
+
}
|
|
21
|
+
/** What the chat area's ConversationCreated output gives: the new conversation and the first message to send in it. */
|
|
22
|
+
interface ChatConversationCreated {
|
|
23
|
+
conversation: MJConversationEntity;
|
|
24
|
+
pendingMessage?: string;
|
|
25
|
+
pendingAttachments?: PendingAttachment[];
|
|
26
|
+
}
|
|
6
27
|
/**
|
|
7
28
|
* Dashboard Resource Wrapper - displays a single dashboard in a tab
|
|
8
29
|
* Extends BaseResourceComponent to work with the resource type system
|
|
9
|
-
* Dynamically routes between code-based and config-based dashboards based on dashboard type
|
|
30
|
+
* Dynamically routes between code-based and config-based dashboards based on dashboard type:
|
|
31
|
+
* a Config dashboard shows in the shared dashboard editor (`mj-dashboard-editor`) with the AI pane
|
|
32
|
+
* beside it, and a Code dashboard or the Data Explorer shows in the tab's own container.
|
|
10
33
|
*/
|
|
11
34
|
export declare class DashboardResource extends BaseResourceComponent {
|
|
12
35
|
private viewContainer;
|
|
13
36
|
private cdr;
|
|
14
37
|
private componentRef;
|
|
38
|
+
private recentAccess;
|
|
39
|
+
private homePins;
|
|
40
|
+
private realtimeSession;
|
|
41
|
+
private artifactPermissions;
|
|
42
|
+
/** The editor that shows the Config dashboard. Undefined while the tab shows none. */
|
|
43
|
+
private editor?;
|
|
44
|
+
/** The panels last reported to the agent, as JSON. Null until the open dashboard is first reported. */
|
|
45
|
+
private reportedPanelsKey;
|
|
15
46
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
47
|
+
* True once the tab registered the agent tools for the dashboard the editor loaded. Until then the
|
|
48
|
+
* tab reports no context, so the first report comes with the tools.
|
|
49
|
+
*/
|
|
50
|
+
private agentStatePublished;
|
|
51
|
+
/** True once the tab follows edit-mode requests (see watchEditModeRequests). */
|
|
52
|
+
private watchingEditModeRequests;
|
|
53
|
+
/**
|
|
54
|
+
* A cache reattach moves this wrapper to another tab without recreating the dashboard inside it.
|
|
55
|
+
* A child resource component (a Code dashboard, the Data Explorer) has its own tab stamp, taken
|
|
56
|
+
* when we created it, and it has to move too. Without this the dashboard keeps reading and
|
|
57
|
+
* writing the params of the tab it was born in, from inside a tab it no longer belongs to. The
|
|
58
|
+
* editor has no tab of its own. The new tab can hold an edit-mode request (a card's Edit
|
|
59
|
+
* action reopens a closed tab this way), so the tab takes it here, where no load will.
|
|
20
60
|
*/
|
|
21
61
|
protected onTabIdRebound(tabId: string): void;
|
|
22
62
|
private dataLoaded;
|
|
63
|
+
/** The element that holds a Code dashboard or the Data Explorer. */
|
|
23
64
|
ContainerElement: ElementRef<HTMLDivElement>;
|
|
24
65
|
/** @deprecated Use {@link ContainerElement}. */
|
|
25
66
|
get containerElement(): ElementRef<HTMLDivElement>;
|
|
@@ -33,45 +74,104 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
33
74
|
get errorDetails(): string | null;
|
|
34
75
|
/** @deprecated Use {@link ErrorDetails}. */
|
|
35
76
|
set errorDetails(value: string | null);
|
|
36
|
-
/**
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
/** The config-based dashboard entity (null for code-based dashboards) */
|
|
41
|
-
ConfigDashboard: MJDashboardEntity | null;
|
|
77
|
+
/** The Config dashboard the editor shows. Null for a Code dashboard, the Data Explorer, or none. */
|
|
78
|
+
ConfigDashboardId: string | null;
|
|
79
|
+
/** The Config dashboard the editor shows, or null (a Code dashboard, the Data Explorer, or none). */
|
|
80
|
+
get ConfigDashboard(): MJDashboardEntity | null;
|
|
42
81
|
/** @deprecated Use {@link ConfigDashboard}. */
|
|
43
82
|
get configDashboard(): MJDashboardEntity | null;
|
|
44
|
-
/**
|
|
45
|
-
|
|
46
|
-
/** Whether we're in edit mode */
|
|
47
|
-
IsEditMode: boolean;
|
|
83
|
+
/** True while the editor is in edit mode. */
|
|
84
|
+
get IsEditMode(): boolean;
|
|
48
85
|
/** @deprecated Use {@link IsEditMode}. */
|
|
49
86
|
get isEditMode(): boolean;
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
|
|
54
|
-
/**
|
|
87
|
+
/** True when the user may share the dashboard the editor shows. */
|
|
88
|
+
get CanShare(): boolean;
|
|
89
|
+
/** The confirm dialog an agent's Request* tool opened, or null. The user, not the agent, saves or pins. */
|
|
90
|
+
AgentConfirm: AgentConfirmDialog | null;
|
|
91
|
+
/** The request behind the open agent confirm dialog. Null while none is open. */
|
|
92
|
+
private agentConfirmRequest;
|
|
93
|
+
/** True while the AI pane shows beside the dashboard. */
|
|
94
|
+
ChatOpen: boolean;
|
|
95
|
+
/** True while the AI pane takes its largest width (CopilotMaxPct). */
|
|
96
|
+
CopilotExpanded: boolean;
|
|
97
|
+
/** The dashboard's width while the AI pane is open, in percent of the tab's width. */
|
|
98
|
+
MainSizePct: number;
|
|
99
|
+
/** The AI pane's width, in percent of the tab's width. */
|
|
100
|
+
CopilotSizePct: number;
|
|
101
|
+
/** The smallest width of the AI pane, in percent of the tab's width. */
|
|
102
|
+
readonly CopilotMinPct = 20;
|
|
103
|
+
/** The largest width of the AI pane, in percent of the tab's width. */
|
|
104
|
+
readonly CopilotMaxPct = 60;
|
|
105
|
+
/** True while the dialog that asks before a voice session ends with the AI pane is open. */
|
|
106
|
+
ShowCloseChatConfirm: boolean;
|
|
107
|
+
/** The agent the AI pane talks to: the Dashboards application's default agent. Null until it resolves. */
|
|
108
|
+
ChatAgentId: string | null;
|
|
109
|
+
/** The name of that agent, which the AI pane shows in its header. */
|
|
110
|
+
ChatAgentName: string | null;
|
|
111
|
+
/** Why the AI pane has no agent, or null. The pane then shows this instead of the chat. */
|
|
112
|
+
ChatAgentError: string | null;
|
|
113
|
+
/** The AI pane's conversation, from the moment its first message created it. */
|
|
114
|
+
ChatConversation: MJConversationEntity | null;
|
|
115
|
+
/** The ID of the AI pane's conversation. */
|
|
116
|
+
ChatConversationId: string | null;
|
|
117
|
+
/** True until the first message creates the AI pane's conversation. */
|
|
118
|
+
ChatIsNewConversation: boolean;
|
|
119
|
+
/** The first message, which the chat area sends once it has created the conversation. Null after it is sent. */
|
|
120
|
+
ChatPendingMessage: string | null;
|
|
121
|
+
/** The files attached to the first message, sent with it. */
|
|
122
|
+
ChatPendingAttachments: PendingAttachment[] | null;
|
|
123
|
+
/** The shell's app context snapshot, as the chat area's AppContext input takes it. The agent reads it. */
|
|
124
|
+
ChatAppContext: Record<string, unknown> | null;
|
|
125
|
+
/** The application the AI pane's conversations belong to, and whose default agent answers in it. */
|
|
126
|
+
readonly ChatApplicationId = "4B439111-B492-4936-9E33-A428CB5725B4";
|
|
127
|
+
/** True while the AI pane resolves its agent. */
|
|
128
|
+
private resolvingChatAgent;
|
|
129
|
+
/** The environment of the AI pane's conversations and of the artifacts the agent searches: the tab's, else the default. */
|
|
130
|
+
get ChatEnvironmentId(): string;
|
|
131
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingName}. */
|
|
132
|
+
get EditingName(): string;
|
|
133
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingName}. */
|
|
134
|
+
set EditingName(value: string);
|
|
135
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingName}. */
|
|
55
136
|
get editingName(): string;
|
|
56
|
-
/** @deprecated Use {@link EditingName}. */
|
|
137
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingName}. */
|
|
57
138
|
set editingName(value: string);
|
|
58
|
-
EditingDescription
|
|
59
|
-
|
|
139
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingDescription}. */
|
|
140
|
+
get EditingDescription(): string;
|
|
141
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingDescription}. */
|
|
142
|
+
set EditingDescription(value: string);
|
|
143
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingDescription}. */
|
|
60
144
|
get editingDescription(): string;
|
|
61
|
-
/** @deprecated Use {@link EditingDescription}. */
|
|
145
|
+
/** @deprecated Use {@link DashboardEditorComponent.EditingDescription}. */
|
|
62
146
|
set editingDescription(value: string);
|
|
63
|
-
/**
|
|
64
|
-
DashboardPermissions: DashboardUserPermissions;
|
|
65
|
-
/** @deprecated Use {@link
|
|
147
|
+
/** @deprecated Use {@link DashboardEditorComponent.Permissions}. */
|
|
148
|
+
get DashboardPermissions(): DashboardUserPermissions;
|
|
149
|
+
/** @deprecated Use {@link DashboardEditorComponent.Permissions}. */
|
|
66
150
|
get dashboardPermissions(): DashboardUserPermissions;
|
|
67
|
-
/** @deprecated Use {@link
|
|
68
|
-
|
|
151
|
+
/** @deprecated Use {@link DashboardEditorComponent.ToggleEditMode}. */
|
|
152
|
+
ToggleEditMode(): void;
|
|
153
|
+
/** @deprecated Use {@link DashboardEditorComponent.ToggleEditMode}. */
|
|
154
|
+
toggleEditMode(): void;
|
|
155
|
+
/** @deprecated Use {@link DashboardEditorComponent.CancelEdit}. */
|
|
156
|
+
CancelEdit(): void;
|
|
157
|
+
/** @deprecated Use {@link DashboardEditorComponent.CancelEdit}. */
|
|
158
|
+
cancelEdit(): void;
|
|
159
|
+
/** @deprecated Use {@link DashboardEditorComponent.SaveDashboard}. */
|
|
160
|
+
SaveDashboard(): Promise<void>;
|
|
161
|
+
/** @deprecated Use {@link DashboardEditorComponent.SaveDashboard}. */
|
|
162
|
+
saveDashboard(): Promise<void>;
|
|
163
|
+
/** @deprecated Use {@link DashboardEditorComponent.OpenAddPartDialog}. */
|
|
164
|
+
OpenAddPartDialog(): void;
|
|
165
|
+
/** @deprecated Use {@link DashboardEditorComponent.OpenAddPartDialog}. */
|
|
166
|
+
openAddPartDialog(): void;
|
|
69
167
|
/** Whether the share dialog is visible */
|
|
70
168
|
ShowShareDialog: boolean;
|
|
71
169
|
/** @deprecated Use {@link ShowShareDialog}. */
|
|
72
170
|
get showShareDialog(): boolean;
|
|
73
171
|
/** @deprecated Use {@link ShowShareDialog}. */
|
|
74
172
|
set showShareDialog(value: boolean);
|
|
173
|
+
/** True when the open Config dashboard is pinned to Home. */
|
|
174
|
+
get IsPinnedToHome(): boolean;
|
|
75
175
|
/**
|
|
76
176
|
* Sets the error state with a user-friendly message and optional technical details
|
|
77
177
|
*/
|
|
@@ -83,35 +183,58 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
83
183
|
constructor(viewContainer: ViewContainerRef, cdr: ChangeDetectorRef);
|
|
84
184
|
set Data(value: ResourceData);
|
|
85
185
|
get Data(): ResourceData;
|
|
186
|
+
ngOnInit(): void;
|
|
86
187
|
ngOnDestroy(): void;
|
|
87
188
|
/**
|
|
88
|
-
*
|
|
189
|
+
* Shows a Config dashboard in the editor, which reads it from DashboardEngine. The editor's Loaded
|
|
190
|
+
* or LoadFailed event finishes the load (OnEditorLoaded, OnEditorLoadFailed).
|
|
89
191
|
*/
|
|
90
|
-
|
|
91
|
-
/** @deprecated Use {@link ToggleEditMode}. */
|
|
92
|
-
toggleEditMode(): void;
|
|
192
|
+
private showConfigDashboard;
|
|
93
193
|
/**
|
|
94
|
-
*
|
|
194
|
+
* The editor shows the dashboard and its layout is ready. The loading screen goes, the tab takes an
|
|
195
|
+
* edit-mode request (a new dashboard, or a card's Edit action) when it has one, and the agent gets
|
|
196
|
+
* its tools and the dashboard. NavigationService removes the request when the tab takes it, so a
|
|
197
|
+
* later load of the tab opens for viewing.
|
|
95
198
|
*/
|
|
96
|
-
|
|
199
|
+
OnEditorLoaded(dashboard: MJDashboardEntity): void;
|
|
200
|
+
/** The editor could not show the dashboard: the tab shows why, and the loading screen goes. */
|
|
201
|
+
OnEditorLoadFailed(error: DashboardEditorLoadError): void;
|
|
97
202
|
/**
|
|
98
|
-
*
|
|
203
|
+
* The dashboard's saved name changed, by a save here or elsewhere. The tab takes the name as its
|
|
204
|
+
* title and keeps its dashboard ID: ResourceRecordSaved would rewrite the record ID in a form the
|
|
205
|
+
* tab configuration does not have, and the tab would reload on each Save.
|
|
99
206
|
*/
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
|
|
207
|
+
OnEditorNameChanged(name: string): void;
|
|
208
|
+
/** The editor entered or left edit mode: the tab reports it to the agent. */
|
|
209
|
+
OnEditorEditingChange(): void;
|
|
210
|
+
/** The editor's parts or layout changed: the tab reports the panels to the agent when they changed. */
|
|
211
|
+
OnEditorConfigChanged(): void;
|
|
212
|
+
/** The editor rebuilt the saved layout after a save elsewhere: the rebuild reports nothing to the agent. */
|
|
213
|
+
OnEditorReloaded(): void;
|
|
214
|
+
/** The user starred or unstarred the dashboard in the editor. */
|
|
215
|
+
OnEditorFavoriteChange(): void;
|
|
216
|
+
/** A part of the dashboard asked to open something: a record, another dashboard, a query. */
|
|
217
|
+
OnEditorNavigationRequested(event: DashboardNavRequestEvent): void;
|
|
103
218
|
/**
|
|
104
|
-
*
|
|
219
|
+
* Takes the tab's edit-mode request, if it has one for this tab's dashboard, and enters edit mode in
|
|
220
|
+
* the editor. A tab that has not finished loading leaves the request for its load (see
|
|
221
|
+
* OnEditorLoaded). A tab that is already editing keeps its changes. A request for what the tab shows
|
|
222
|
+
* now stays for that tab's component: a cached component can still be bound to a tab ID that OpenTab
|
|
223
|
+
* gave to another dashboard, or to this dashboard in another application.
|
|
105
224
|
*/
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
|
|
225
|
+
private takeEditModeRequest;
|
|
226
|
+
/** The application of the tab this component was loaded for, from the resource data the tab container gives it. */
|
|
227
|
+
private tabApplicationId;
|
|
109
228
|
/**
|
|
110
|
-
*
|
|
229
|
+
* Enters edit mode when OpenDashboard asks this open tab to (NavigationService.DashboardEditModeRequested$).
|
|
230
|
+
* Starts once per tab, and stops when the tab is destroyed.
|
|
111
231
|
*/
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
|
|
232
|
+
private watchEditModeRequests;
|
|
233
|
+
/**
|
|
234
|
+
* Takes the viewer's current panels as the ones last reported to the agent, so the change events
|
|
235
|
+
* of a reloaded layout report nothing. Does nothing before the first report.
|
|
236
|
+
*/
|
|
237
|
+
private treatPanelsAsReported;
|
|
115
238
|
/**
|
|
116
239
|
* Open the share dialog for this dashboard
|
|
117
240
|
*/
|
|
@@ -125,9 +248,188 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
125
248
|
/** @deprecated Use {@link CloseShareDialog}. */
|
|
126
249
|
closeShareDialog(): void;
|
|
127
250
|
/**
|
|
128
|
-
* Handle share dialog result
|
|
251
|
+
* Handle share dialog result. After a save the editor reads the user's permissions again, since
|
|
252
|
+
* sharing can change them.
|
|
129
253
|
*/
|
|
130
254
|
OnShareDialogResult(result: ShareDialogResult): void;
|
|
255
|
+
/** Pins the open dashboard to Home as a card, then adds a thumbnail of it in the background. */
|
|
256
|
+
PinToHome(): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* Reads one placement flag (the pin) for a dashboard. False without a dashboard,
|
|
259
|
+
* or when the user cannot read that data (the engine throws PermissionConstrainedError).
|
|
260
|
+
*/
|
|
261
|
+
private readPlacement;
|
|
262
|
+
/** The Home pin for a dashboard, in the shared dashboard pin shape. */
|
|
263
|
+
private homePinFor;
|
|
264
|
+
/**
|
|
265
|
+
* Adds a thumbnail of the dashboard (the editor's body) to its pin. Best effort: without one, Home
|
|
266
|
+
* shows the pin's icon. Logs a failure and never rejects, because the caller does not wait for it.
|
|
267
|
+
*/
|
|
268
|
+
private attachPinThumbnail;
|
|
269
|
+
/** Loads the user's Home pins, so the Add to menu can show whether this dashboard is pinned. */
|
|
270
|
+
private loadHomePins;
|
|
271
|
+
/** Updates the header buttons and reports the new placement to the agent. */
|
|
272
|
+
private onPlacementChanged;
|
|
273
|
+
/** Opens the AI pane with the widths the user saved, or closes it as CloseChat does. */
|
|
274
|
+
ToggleChat(): void;
|
|
275
|
+
/**
|
|
276
|
+
* Closes the AI pane. Its conversation stays, so the pane shows it again when it opens. Closing the pane
|
|
277
|
+
* ends a voice session, so while one runs the user confirms first (OnCloseChatConfirmed).
|
|
278
|
+
*/
|
|
279
|
+
CloseChat(): void;
|
|
280
|
+
/** The user confirmed: the AI pane closes, and the voice session ends with it. */
|
|
281
|
+
OnCloseChatConfirmed(): void;
|
|
282
|
+
/** The user keeps the AI pane open, and the voice session with it. */
|
|
283
|
+
OnCloseChatCancelled(): void;
|
|
284
|
+
/** Gives the AI pane its largest width, or its own width again. */
|
|
285
|
+
ToggleCopilotExpanded(): void;
|
|
286
|
+
/**
|
|
287
|
+
* Keeps the widths the user dragged the split to, in this tab and in the user's settings. The AI pane then
|
|
288
|
+
* has that width, not its largest one. Sizes that are not two numbers change nothing.
|
|
289
|
+
*/
|
|
290
|
+
OnCopilotSplitDragEnd(sizes: readonly (number | '*')[]): void;
|
|
291
|
+
/**
|
|
292
|
+
* The chat area created the AI pane's conversation for the first message. The pane keeps the conversation
|
|
293
|
+
* and gives the message back to the chat area, which then sends it in that conversation.
|
|
294
|
+
*/
|
|
295
|
+
OnChatConversationCreated(event: ChatConversationCreated): void;
|
|
296
|
+
/**
|
|
297
|
+
* A voice call started before any message, so the server created the AI pane's conversation. When the
|
|
298
|
+
* call ends, the pane adopts that conversation, so the chat area shows the call's transcript and the
|
|
299
|
+
* next message goes to it. The start of the call reports the same conversation without `select`; the
|
|
300
|
+
* pane leaves the chat area alone until the call ends, as the Conversations app does.
|
|
301
|
+
*/
|
|
302
|
+
OnChatRealtimeConversationReady(event: {
|
|
303
|
+
conversationId: string;
|
|
304
|
+
select: boolean;
|
|
305
|
+
}): Promise<void>;
|
|
306
|
+
/** The conversation with `conversationId` that the user can read, or null. */
|
|
307
|
+
private loadChatConversation;
|
|
308
|
+
/** The chat area sent the first message. The pane drops it, so the chat area does not send it again. */
|
|
309
|
+
OnChatPendingMessageConsumed(): void;
|
|
310
|
+
/** Opens the app page that an artifact in the chat asks for. An app the metadata does not name opens the page in the current app. */
|
|
311
|
+
OnChatNavigationRequest(request: NavigationRequest): void;
|
|
312
|
+
/** Opens a record that the chat links to. */
|
|
313
|
+
OnChatOpenEntityRecord(event: {
|
|
314
|
+
entityName: string;
|
|
315
|
+
compositeKey: CompositeKey;
|
|
316
|
+
}): void;
|
|
317
|
+
/** Keeps the shell's latest app context snapshot for the chat, until the tab is destroyed. Renders only while the pane is open. */
|
|
318
|
+
private watchAppContext;
|
|
319
|
+
/** The AI pane widths in the user's settings, or the defaults when the settings cannot be read. */
|
|
320
|
+
private savedPanePrefs;
|
|
321
|
+
private applyPanePrefs;
|
|
322
|
+
private closeChatPane;
|
|
323
|
+
/** The ID of the application with this name, in any case, or undefined when the metadata has none. */
|
|
324
|
+
private applicationIdByName;
|
|
325
|
+
/**
|
|
326
|
+
* Resolves the agent the AI pane talks to: the Dashboards application's default agent
|
|
327
|
+
* (Application.AgentSettings.DefaultAgentID). When the resolver falls back to Sage, the application has no
|
|
328
|
+
* agent of its own, and the pane says so instead of showing a chat. After a failure the next open tries again.
|
|
329
|
+
*/
|
|
330
|
+
private ensureChatAgentResolved;
|
|
331
|
+
/**
|
|
332
|
+
* Registers the tab's tools and reports the open Config dashboard to the agent. The studio tools
|
|
333
|
+
* of one registration share an edit queue, so the tab registers them once for each dashboard load.
|
|
334
|
+
*/
|
|
335
|
+
private publishAgentState;
|
|
336
|
+
/**
|
|
337
|
+
* Reports the Config dashboard the editor shows to the agent. Does nothing while none is shown, and
|
|
338
|
+
* before the tab registered the tools for it: an edit-mode request taken on the load reports nothing
|
|
339
|
+
* of its own, so the load reports once.
|
|
340
|
+
*/
|
|
341
|
+
private emitAgentContext;
|
|
342
|
+
/** Reports the dashboard again when its panels change. A layout move or resize reports nothing. */
|
|
343
|
+
private onViewerConfigChanged;
|
|
344
|
+
/** The reads the agent tools make from this tab. */
|
|
345
|
+
private agentHost;
|
|
346
|
+
private isOpenDashboard;
|
|
347
|
+
/**
|
|
348
|
+
* The open dashboard's panels, read from the editor's viewer and its live layout, so unsaved edits
|
|
349
|
+
* count. Empty while the viewer is not ready. Best effort: a failed read never stops the context report.
|
|
350
|
+
*/
|
|
351
|
+
private livePanels;
|
|
352
|
+
/** The panels saved in a dashboard's layout. Empty when the layout or the part types cannot be read. */
|
|
353
|
+
private savedPanels;
|
|
354
|
+
/**
|
|
355
|
+
* The reads and edits the studio tools make on this tab, through its editor, and the requests they
|
|
356
|
+
* put to the user. DashboardStudioHost says what each member must do.
|
|
357
|
+
*/
|
|
358
|
+
private studioHost;
|
|
359
|
+
/**
|
|
360
|
+
* The studio host's edits. Each runs through runAgentEdit, so it rejects with the reason when it
|
|
361
|
+
* cannot be made, and an edit the viewer can skip without an error is checked afterwards.
|
|
362
|
+
*/
|
|
363
|
+
private studioEdits;
|
|
364
|
+
/**
|
|
365
|
+
* Makes one agent edit on the editor's viewer, then reports the dashboard's parts to the agent again.
|
|
366
|
+
* The edit waits until the viewer's layout is ready: entering edit mode can reload the saved
|
|
367
|
+
* dashboard. Rejects with an Error that says why when no viewer is open, the editor's Save runs, or
|
|
368
|
+
* the edit fails; the user also sees a failed edit.
|
|
369
|
+
*/
|
|
370
|
+
private runAgentEdit;
|
|
371
|
+
/**
|
|
372
|
+
* The box of each panel the tab shows, in CSS pixels from the top left corner of the element that
|
|
373
|
+
* CaptureScreenshot captures (the editor's body). A panel whose content is hidden, such as one in a
|
|
374
|
+
* stack's inactive tab, is left out. html-to-image draws a scrolled container from its top, so each
|
|
375
|
+
* box adds the container's scroll offset. None while the editor shows no dashboard.
|
|
376
|
+
*/
|
|
377
|
+
private panelBounds;
|
|
378
|
+
/**
|
|
379
|
+
* Searches the sources the user may show in a panel. First loads the engines that the searched kinds
|
|
380
|
+
* read: the tab starts these loads with the dashboard, and a load that failed then runs again here.
|
|
381
|
+
*/
|
|
382
|
+
private searchSources;
|
|
383
|
+
/** The lists the source search reads, each limited to what the user may use. */
|
|
384
|
+
private sourceSearchDeps;
|
|
385
|
+
/**
|
|
386
|
+
* Loads the engines the source search reads for `kinds`: user views for 'view' and queries for
|
|
387
|
+
* 'query'. Artifacts and entities need neither. A loaded engine returns at once.
|
|
388
|
+
*/
|
|
389
|
+
private loadSourceEngines;
|
|
390
|
+
/**
|
|
391
|
+
* Starts to load the source search engines with a Config dashboard, so that the agent's first search
|
|
392
|
+
* usually finds them loaded. The dashboard does not wait for it. Never rejects: a failure is logged,
|
|
393
|
+
* and the search loads the engines again.
|
|
394
|
+
*/
|
|
395
|
+
private preloadSourceEngines;
|
|
396
|
+
/**
|
|
397
|
+
* The artifacts the user can read in the tab's environment (ChatEnvironmentId) whose name or description
|
|
398
|
+
* contains `query` in any case (all of them for a blank query), the first SOURCE_SEARCH_MAX_ARTIFACTS by
|
|
399
|
+
* name, each with its latest version number. An artifact whose versions cannot be read has none, so
|
|
400
|
+
* its panel shows the latest version. Rejects when the artifacts cannot be read.
|
|
401
|
+
*/
|
|
402
|
+
private artifactSources;
|
|
403
|
+
/**
|
|
404
|
+
* The highest version number of each artifact, by normalized artifact ID. One RunViews call reads
|
|
405
|
+
* every version of the artifacts, highest first and without the entity's row cap, with at most
|
|
406
|
+
* ARTIFACT_VERSION_FILTER_CHUNK IDs in each filter. The artifacts whose versions cannot be read are
|
|
407
|
+
* not in the map, and the failure is logged.
|
|
408
|
+
*/
|
|
409
|
+
private latestArtifactVersions;
|
|
410
|
+
/**
|
|
411
|
+
* Opens the confirm dialog for an agent's request and settles with the user's answer: true once the
|
|
412
|
+
* confirmed action is done, false when the user cancels. Rejects when no Config dashboard is open,
|
|
413
|
+
* when another confirmation is open, when the confirmed action fails, and when no answer comes
|
|
414
|
+
* within AGENT_CONFIRM_TIMEOUT_MS; the dialog closes first.
|
|
415
|
+
*/
|
|
416
|
+
private askAgentConfirm;
|
|
417
|
+
/** Takes the user's answer to the agent's confirm dialog. Does nothing when no dialog is open. */
|
|
418
|
+
OnAgentConfirm(confirmed: boolean): void;
|
|
419
|
+
/** Closes the agent's confirm dialog, if one is open, and fails its request with `reason`. */
|
|
420
|
+
private abortAgentConfirm;
|
|
421
|
+
/** Closes the agent's confirm dialog and returns its request, or null when none is open. */
|
|
422
|
+
private closeAgentConfirm;
|
|
423
|
+
/** Does what the user confirmed, as the editor's Save and the Add to menu do it. Rejects when it did not take effect. */
|
|
424
|
+
private performAgentRequest;
|
|
425
|
+
/**
|
|
426
|
+
* Saves the dashboard through the editor, as its Save does, with the new name and description the
|
|
427
|
+
* agent gave. Rejects with the reason the save did not happen. While a Save runs the editor refuses
|
|
428
|
+
* at once and leaves its name and description fields as they are, because that Save reads them.
|
|
429
|
+
*/
|
|
430
|
+
private saveForAgent;
|
|
431
|
+
/** Pins the dashboard to Home as the Add to menu does. Rejects when it is not pinned afterwards. */
|
|
432
|
+
private pinForAgent;
|
|
131
433
|
/** @deprecated Use {@link OnShareDialogResult}. */
|
|
132
434
|
onShareDialogResult(result: ShareDialogResult): void;
|
|
133
435
|
/**
|
|
@@ -148,18 +450,20 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
148
450
|
private loadCodeBasedDashboard;
|
|
149
451
|
protected loadDashboardUserState(dashboardId: string): Promise<MJDashboardUserStateEntity>;
|
|
150
452
|
/**
|
|
151
|
-
*
|
|
152
|
-
*/
|
|
153
|
-
private loadConfigBasedDashboard;
|
|
154
|
-
/**
|
|
155
|
-
* Handle navigation requests from the dashboard viewer
|
|
453
|
+
* Handle navigation requests from a part of the dashboard (the editor passes them on)
|
|
156
454
|
*/
|
|
157
455
|
private handleNavigationRequest;
|
|
158
456
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
457
|
+
* The tab title: the dashboard's name from the DashboardEngine cache, else its record name from
|
|
458
|
+
* the server, else the given name. A Data Explorer tab keeps the name of the app it belongs to.
|
|
161
459
|
*/
|
|
162
460
|
GetResourceDisplayName(data: ResourceData): Promise<string>;
|
|
461
|
+
/** True for the Data Explorer, which this wrapper hosts but which is not a dashboard record. */
|
|
462
|
+
private isDataExplorer;
|
|
463
|
+
/** The dashboard's name from the DashboardEngine cache, or null when the cache does not have it. */
|
|
464
|
+
private cachedDashboardName;
|
|
465
|
+
/** The dashboard's record name from the server, or null when it cannot be read. */
|
|
466
|
+
private loadDashboardName;
|
|
163
467
|
/**
|
|
164
468
|
* Get the icon class for dashboard resources
|
|
165
469
|
*/
|
|
@@ -167,4 +471,5 @@ export declare class DashboardResource extends BaseResourceComponent {
|
|
|
167
471
|
static ɵfac: i0.ɵɵFactoryDeclaration<DashboardResource, never>;
|
|
168
472
|
static ɵcmp: i0.ɵɵComponentDeclaration<DashboardResource, "mj-dashboard-resource", never, {}, {}, never, never, false, never>;
|
|
169
473
|
}
|
|
474
|
+
export {};
|
|
170
475
|
//# sourceMappingURL=dashboard-resource.component.d.ts.map
|
|
@@ -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,
|
|
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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"}
|