@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
|
@@ -151,35 +151,143 @@ function SingleDashboardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1)
|
|
|
151
151
|
} }
|
|
152
152
|
export class SingleDashboardComponent extends BaseDashboard {
|
|
153
153
|
route;
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
SharedService;
|
|
155
|
+
DashboardNameInput;
|
|
156
|
+
/** @deprecated Use {@link DashboardNameInput}. */
|
|
157
|
+
get dashboardNameInput() {
|
|
158
|
+
return this.DashboardNameInput;
|
|
159
|
+
}
|
|
160
|
+
/** @deprecated Use {@link DashboardNameInput}. */
|
|
161
|
+
set dashboardNameInput(value) {
|
|
162
|
+
this.DashboardNameInput = value;
|
|
163
|
+
}
|
|
156
164
|
ResourceData;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
DashboardSaved = new EventEmitter();
|
|
166
|
+
/**
|
|
167
|
+
* @deprecated Use {@link DashboardSaved}.
|
|
168
|
+
*
|
|
169
|
+
* The same emitter under the old binding name, so a template still binding
|
|
170
|
+
* (dashboardSaved) keeps working. Must stay AFTER DashboardSaved: class fields
|
|
171
|
+
* initialise in order, and the other way round this captures undefined.
|
|
172
|
+
*/
|
|
173
|
+
dashboardSaved = this.DashboardSaved;
|
|
174
|
+
loadComplete = new EventEmitter(); // case-violation-ok-legacy-back-compat: an ancestor class already declares the PascalCase name
|
|
175
|
+
loadStarted = new EventEmitter(); // case-violation-ok-legacy-back-compat: an ancestor class already declares the PascalCase name
|
|
176
|
+
Items = [];
|
|
177
|
+
/** @deprecated Use {@link Items}. */
|
|
178
|
+
get items() {
|
|
179
|
+
return this.Items;
|
|
180
|
+
}
|
|
181
|
+
/** @deprecated Use {@link Items}. */
|
|
182
|
+
set items(value) {
|
|
183
|
+
this.Items = value;
|
|
184
|
+
}
|
|
185
|
+
DashboardEntity;
|
|
186
|
+
/** @deprecated Use {@link DashboardEntity}. */
|
|
187
|
+
get dashboardEntity() {
|
|
188
|
+
return this.DashboardEntity;
|
|
189
|
+
}
|
|
190
|
+
/** @deprecated Use {@link DashboardEntity}. */
|
|
191
|
+
set dashboardEntity(value) {
|
|
192
|
+
this.DashboardEntity = value;
|
|
193
|
+
}
|
|
162
194
|
config = new DashboardConfigDetails();
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
195
|
+
IsItemDialogOpened = false;
|
|
196
|
+
/** @deprecated Use {@link IsItemDialogOpened}. */
|
|
197
|
+
get isItemDialogOpened() {
|
|
198
|
+
return this.IsItemDialogOpened;
|
|
199
|
+
}
|
|
200
|
+
/** @deprecated Use {@link IsItemDialogOpened}. */
|
|
201
|
+
set isItemDialogOpened(value) {
|
|
202
|
+
this.IsItemDialogOpened = value;
|
|
203
|
+
}
|
|
204
|
+
IsEditDialogOpened = false;
|
|
205
|
+
/** @deprecated Use {@link IsEditDialogOpened}. */
|
|
206
|
+
get isEditDialogOpened() {
|
|
207
|
+
return this.IsEditDialogOpened;
|
|
208
|
+
}
|
|
209
|
+
/** @deprecated Use {@link IsEditDialogOpened}. */
|
|
210
|
+
set isEditDialogOpened(value) {
|
|
211
|
+
this.IsEditDialogOpened = value;
|
|
212
|
+
}
|
|
213
|
+
IsEditDashboardNameDialogOpened = false;
|
|
214
|
+
/** @deprecated Use {@link IsEditDashboardNameDialogOpened}. */
|
|
215
|
+
get isEditDashboardNameDialogOpened() {
|
|
216
|
+
return this.IsEditDashboardNameDialogOpened;
|
|
217
|
+
}
|
|
218
|
+
/** @deprecated Use {@link IsEditDashboardNameDialogOpened}. */
|
|
219
|
+
set isEditDashboardNameDialogOpened(value) {
|
|
220
|
+
this.IsEditDashboardNameDialogOpened = value;
|
|
221
|
+
}
|
|
222
|
+
IsDeletingDashboardItem = false;
|
|
223
|
+
/** @deprecated Use {@link IsDeletingDashboardItem}. */
|
|
224
|
+
get isDeletingDashboardItem() {
|
|
225
|
+
return this.IsDeletingDashboardItem;
|
|
226
|
+
}
|
|
227
|
+
/** @deprecated Use {@link IsDeletingDashboardItem}. */
|
|
228
|
+
set isDeletingDashboardItem(value) {
|
|
229
|
+
this.IsDeletingDashboardItem = value;
|
|
230
|
+
}
|
|
231
|
+
AllowResize = false;
|
|
232
|
+
/** @deprecated Use {@link AllowResize}. */
|
|
233
|
+
get allowResize() {
|
|
234
|
+
return this.AllowResize;
|
|
235
|
+
}
|
|
236
|
+
/** @deprecated Use {@link AllowResize}. */
|
|
237
|
+
set allowResize(value) {
|
|
238
|
+
this.AllowResize = value;
|
|
239
|
+
}
|
|
240
|
+
AllowReorder = false;
|
|
241
|
+
/** @deprecated Use {@link AllowReorder}. */
|
|
242
|
+
get allowReorder() {
|
|
243
|
+
return this.AllowReorder;
|
|
244
|
+
}
|
|
245
|
+
/** @deprecated Use {@link AllowReorder}. */
|
|
246
|
+
set allowReorder(value) {
|
|
247
|
+
this.AllowReorder = value;
|
|
248
|
+
}
|
|
249
|
+
IsEditingDashboard = false;
|
|
250
|
+
/** @deprecated Use {@link IsEditingDashboard}. */
|
|
251
|
+
get isEditingDashboard() {
|
|
252
|
+
return this.IsEditingDashboard;
|
|
253
|
+
}
|
|
254
|
+
/** @deprecated Use {@link IsEditingDashboard}. */
|
|
255
|
+
set isEditingDashboard(value) {
|
|
256
|
+
this.IsEditingDashboard = value;
|
|
257
|
+
}
|
|
258
|
+
SelectedResource;
|
|
259
|
+
/** @deprecated Use {@link SelectedResource}. */
|
|
260
|
+
get selectedResource() {
|
|
261
|
+
return this.SelectedResource;
|
|
262
|
+
}
|
|
263
|
+
/** @deprecated Use {@link SelectedResource}. */
|
|
264
|
+
set selectedResource(value) {
|
|
265
|
+
this.SelectedResource = value;
|
|
266
|
+
}
|
|
267
|
+
SelectedDashboardItem;
|
|
268
|
+
/** @deprecated Use {@link SelectedDashboardItem}. */
|
|
269
|
+
get selectedDashboardItem() {
|
|
270
|
+
return this.SelectedDashboardItem;
|
|
271
|
+
}
|
|
272
|
+
/** @deprecated Use {@link SelectedDashboardItem}. */
|
|
273
|
+
set selectedDashboardItem(value) {
|
|
274
|
+
this.SelectedDashboardItem = value;
|
|
275
|
+
}
|
|
172
276
|
saveChangesSubject = new Subject();
|
|
173
277
|
editOnLoad = false;
|
|
174
278
|
recentAccessService;
|
|
175
|
-
get
|
|
176
|
-
for (const item of this.
|
|
279
|
+
get ContentLoading() {
|
|
280
|
+
for (const item of this.Items) {
|
|
177
281
|
if (item.contentLoading) {
|
|
178
282
|
return true;
|
|
179
283
|
}
|
|
180
284
|
}
|
|
181
285
|
return false;
|
|
182
286
|
}
|
|
287
|
+
/** @deprecated Use {@link ContentLoading}. */
|
|
288
|
+
get contentLoading() {
|
|
289
|
+
return this.ContentLoading;
|
|
290
|
+
}
|
|
183
291
|
initDashboard() {
|
|
184
292
|
}
|
|
185
293
|
loadData() {
|
|
@@ -187,10 +295,10 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
187
295
|
async GetResourceDisplayName(data) {
|
|
188
296
|
return "Dashboard";
|
|
189
297
|
}
|
|
190
|
-
constructor(route,
|
|
298
|
+
constructor(route, SharedService) {
|
|
191
299
|
super();
|
|
192
300
|
this.route = route;
|
|
193
|
-
this.
|
|
301
|
+
this.SharedService = SharedService;
|
|
194
302
|
this.recentAccessService = new RecentAccessService();
|
|
195
303
|
this.saveChangesSubject
|
|
196
304
|
.pipe(debounceTime(500), takeUntil(this.destroy$))
|
|
@@ -202,6 +310,14 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
202
310
|
this.editOnLoad = true;
|
|
203
311
|
}
|
|
204
312
|
}
|
|
313
|
+
/** @deprecated Use {@link SharedService}. */
|
|
314
|
+
get sharedService() {
|
|
315
|
+
return this.SharedService;
|
|
316
|
+
}
|
|
317
|
+
/** @deprecated Use {@link SharedService}. */
|
|
318
|
+
set sharedService(value) {
|
|
319
|
+
this.SharedService = value;
|
|
320
|
+
}
|
|
205
321
|
async ngOnInit() {
|
|
206
322
|
super.ngOnInit();
|
|
207
323
|
// load up the dashboard
|
|
@@ -210,13 +326,13 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
210
326
|
if (this.ResourceData) {
|
|
211
327
|
const md = this.ProviderToUse;
|
|
212
328
|
let uiConfig = { items: [] };
|
|
213
|
-
this.
|
|
329
|
+
this.DashboardEntity = await md.GetEntityObject('MJ: Dashboards');
|
|
214
330
|
if (this.ResourceData.ResourceRecordID && this.ResourceData.ResourceRecordID.length > 0) {
|
|
215
|
-
await this.
|
|
331
|
+
await this.DashboardEntity.Load(this.ResourceData.ResourceRecordID);
|
|
216
332
|
// Log access to dashboard (fire-and-forget, don't await)
|
|
217
333
|
this.recentAccessService.logAccess('Dashboards', this.ResourceData.ResourceRecordID, 'dashboard');
|
|
218
334
|
// now we have loaded and we need to get the UIConfigDetails
|
|
219
|
-
const raw = this.
|
|
335
|
+
const raw = this.DashboardEntity.UIConfigDetails;
|
|
220
336
|
if (raw) {
|
|
221
337
|
uiConfig = JSON.parse(raw);
|
|
222
338
|
this.config.columns = uiConfig.columns;
|
|
@@ -228,15 +344,15 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
228
344
|
//and we only want to show the edit view once
|
|
229
345
|
if (this.editOnLoad) {
|
|
230
346
|
this.editOnLoad = false;
|
|
231
|
-
this.
|
|
347
|
+
this.ToggleEditDashboard(true);
|
|
232
348
|
}
|
|
233
349
|
}
|
|
234
350
|
else {
|
|
235
|
-
this.
|
|
236
|
-
this.
|
|
351
|
+
this.DashboardEntity.NewRecord(); // creating a new dashboard
|
|
352
|
+
this.DashboardEntity.UserID = md.CurrentUser.ID;
|
|
237
353
|
// We should never get here now because dashboard creation is handled in dashboard-browser
|
|
238
354
|
// But just in case, set a better default name
|
|
239
|
-
this.
|
|
355
|
+
this.DashboardEntity.Name = 'My Dashboard';
|
|
240
356
|
// Set default configuration
|
|
241
357
|
this.config.columns = 4; // 4-column layout
|
|
242
358
|
this.config.rowHeight = 150;
|
|
@@ -244,15 +360,15 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
244
360
|
this.config.reorderable = true;
|
|
245
361
|
// Automatically show edit mode for new dashboards to encourage adding items
|
|
246
362
|
setTimeout(() => {
|
|
247
|
-
this.
|
|
363
|
+
this.ToggleEditDashboard(true);
|
|
248
364
|
}, 500);
|
|
249
365
|
}
|
|
250
366
|
// now we need to load up the items
|
|
251
|
-
this.
|
|
367
|
+
this.Items = [];
|
|
252
368
|
//const tempItems = uiConfig.items.sort((a: any, b: any) => a.order - b.order);
|
|
253
369
|
for (const item of uiConfig.items) {
|
|
254
370
|
const dashboardItem = this.CreateDashboardItem(item);
|
|
255
|
-
this.
|
|
371
|
+
this.Items.push(dashboardItem);
|
|
256
372
|
}
|
|
257
373
|
}
|
|
258
374
|
this.NotifyLoadComplete();
|
|
@@ -270,170 +386,258 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
270
386
|
}
|
|
271
387
|
return dashboardItem;
|
|
272
388
|
}
|
|
273
|
-
|
|
389
|
+
LoadingStarted(resourceComponent) {
|
|
274
390
|
// look up the copmonent in the
|
|
275
|
-
const item = this.
|
|
391
|
+
const item = this.Items.find(i => i.ResourceData === resourceComponent.Data);
|
|
276
392
|
if (item) {
|
|
277
393
|
item.contentLoading = true;
|
|
278
394
|
this.loadStarted.emit();
|
|
279
395
|
}
|
|
280
396
|
}
|
|
281
|
-
|
|
397
|
+
/** @deprecated Use {@link LoadingStarted}. */
|
|
398
|
+
loadingStarted(resourceComponent) {
|
|
399
|
+
return this.LoadingStarted(resourceComponent);
|
|
400
|
+
}
|
|
401
|
+
LoadingComplete(resourceComponent) {
|
|
282
402
|
// look up the copmonent in the
|
|
283
|
-
const item = this.
|
|
403
|
+
const item = this.Items.find(i => i.ResourceData === resourceComponent.Data);
|
|
284
404
|
if (item) {
|
|
285
405
|
item.contentLoading = false;
|
|
286
|
-
if (!this.
|
|
406
|
+
if (!this.ContentLoading) {
|
|
287
407
|
this.loadComplete.emit();
|
|
288
408
|
}
|
|
289
409
|
}
|
|
290
410
|
}
|
|
411
|
+
/** @deprecated Use {@link LoadingComplete}. */
|
|
412
|
+
loadingComplete(resourceComponent) {
|
|
413
|
+
return this.LoadingComplete(resourceComponent);
|
|
414
|
+
}
|
|
415
|
+
AddItem(resourceType = null) {
|
|
416
|
+
this.SelectedResource = resourceType;
|
|
417
|
+
this.IsItemDialogOpened = true;
|
|
418
|
+
this.IsEditDialogOpened = false;
|
|
419
|
+
}
|
|
420
|
+
/** @deprecated Use {@link AddItem}. */
|
|
291
421
|
addItem(resourceType = null) {
|
|
292
|
-
this.
|
|
293
|
-
this.isItemDialogOpened = true;
|
|
294
|
-
this.isEditDialogOpened = false;
|
|
422
|
+
return this.AddItem(resourceType);
|
|
295
423
|
}
|
|
296
|
-
|
|
424
|
+
CloseDialog(data) {
|
|
297
425
|
if (data) {
|
|
298
426
|
const dashboardItem = this.CreateDashboardItem(data);
|
|
299
|
-
this.
|
|
427
|
+
this.Items.push(dashboardItem);
|
|
300
428
|
console.log(dashboardItem);
|
|
301
429
|
this.saveChangesSubject.next(true);
|
|
302
430
|
}
|
|
303
|
-
this.
|
|
304
|
-
this.
|
|
431
|
+
this.SelectedResource = null;
|
|
432
|
+
this.IsItemDialogOpened = false;
|
|
433
|
+
}
|
|
434
|
+
/** @deprecated Use {@link CloseDialog}. */
|
|
435
|
+
closeDialog(data) {
|
|
436
|
+
return this.CloseDialog(data);
|
|
305
437
|
}
|
|
438
|
+
ToggleEditDashboard(allowEdit) {
|
|
439
|
+
this.AllowReorder = allowEdit;
|
|
440
|
+
this.AllowResize = allowEdit;
|
|
441
|
+
this.IsEditingDashboard = allowEdit;
|
|
442
|
+
this.ToggleInlineNameEdit(false);
|
|
443
|
+
}
|
|
444
|
+
/** @deprecated Use {@link ToggleEditDashboard}. */
|
|
306
445
|
toggleEditDashboard(allowEdit) {
|
|
307
|
-
this.
|
|
308
|
-
this.allowResize = allowEdit;
|
|
309
|
-
this.isEditingDashboard = allowEdit;
|
|
310
|
-
this.toggleInlineNameEdit(false);
|
|
446
|
+
return this.ToggleEditDashboard(allowEdit);
|
|
311
447
|
}
|
|
312
|
-
async
|
|
313
|
-
this.
|
|
448
|
+
async OnClickSaveDashboard() {
|
|
449
|
+
this.ToggleEditDashboard(false);
|
|
314
450
|
let result = await this.SaveDashboard();
|
|
315
451
|
if (result) {
|
|
316
|
-
this.
|
|
452
|
+
this.SharedService.CreateSimpleNotification("Dashboard changes have been saved.", "success", 1000);
|
|
317
453
|
await this.ngOnInit();
|
|
318
454
|
}
|
|
319
455
|
else {
|
|
320
|
-
this.
|
|
456
|
+
this.SharedService.CreateSimpleNotification("An error occured saving the dashboard changes", "error", 1000);
|
|
321
457
|
}
|
|
322
458
|
}
|
|
323
|
-
|
|
324
|
-
|
|
459
|
+
/** @deprecated Use {@link OnClickSaveDashboard}. */
|
|
460
|
+
async onClickSaveDashboard() {
|
|
461
|
+
return this.OnClickSaveDashboard();
|
|
462
|
+
}
|
|
463
|
+
async OnclickCancelChanges() {
|
|
464
|
+
this.ToggleEditDashboard(false);
|
|
325
465
|
await this.ngOnInit();
|
|
326
466
|
}
|
|
467
|
+
/** @deprecated Use {@link OnclickCancelChanges}. */
|
|
468
|
+
async onclickCancelChanges() {
|
|
469
|
+
return this.OnclickCancelChanges();
|
|
470
|
+
}
|
|
471
|
+
CloseDashboardDialog(data = null) {
|
|
472
|
+
this.IsEditDialogOpened = false;
|
|
473
|
+
}
|
|
474
|
+
/** @deprecated Use {@link CloseDashboardDialog}. */
|
|
327
475
|
closeDashboardDialog(data = null) {
|
|
328
|
-
this.
|
|
476
|
+
return this.CloseDashboardDialog(data);
|
|
329
477
|
}
|
|
330
|
-
|
|
478
|
+
SaveChanges(data) {
|
|
331
479
|
if (data.config) {
|
|
332
480
|
this.config = data.config;
|
|
333
481
|
}
|
|
334
482
|
if (data.itemsChanged && data.items) {
|
|
335
|
-
this.
|
|
336
|
-
this.
|
|
483
|
+
this.Items = data.items;
|
|
484
|
+
this.SharedService.InvokeManualResize();
|
|
337
485
|
}
|
|
338
486
|
this.SaveDashboard();
|
|
339
|
-
this.
|
|
487
|
+
this.CloseDashboardDialog();
|
|
488
|
+
}
|
|
489
|
+
/** @deprecated Use {@link SaveChanges}. */
|
|
490
|
+
saveChanges(data) {
|
|
491
|
+
return this.SaveChanges(data);
|
|
340
492
|
}
|
|
341
493
|
async SaveDashboard() {
|
|
342
|
-
if (this.
|
|
494
|
+
if (this.DashboardEntity) {
|
|
343
495
|
const configData = {
|
|
344
496
|
columns: this.config.columns,
|
|
345
497
|
rowHeight: this.config.rowHeight,
|
|
346
498
|
resizable: this.config.resizable,
|
|
347
499
|
reorderable: this.config.reorderable,
|
|
348
|
-
items: this.
|
|
500
|
+
items: this.Items
|
|
349
501
|
};
|
|
350
502
|
const configJSON = JSON.stringify(configData);
|
|
351
|
-
this.
|
|
352
|
-
const result = await this.
|
|
503
|
+
this.DashboardEntity.UIConfigDetails = configJSON;
|
|
504
|
+
const result = await this.DashboardEntity.Save();
|
|
353
505
|
return result;
|
|
354
506
|
}
|
|
355
507
|
else
|
|
356
508
|
return false;
|
|
357
509
|
}
|
|
510
|
+
DashboardSaveComplete(entity) {
|
|
511
|
+
this.DashboardSaved.emit(entity);
|
|
512
|
+
}
|
|
513
|
+
/** @deprecated Use {@link DashboardSaveComplete}. */
|
|
358
514
|
dashboardSaveComplete(entity) {
|
|
359
|
-
this.
|
|
515
|
+
return this.DashboardSaveComplete(entity);
|
|
360
516
|
}
|
|
361
|
-
|
|
362
|
-
this.
|
|
363
|
-
if (this.
|
|
364
|
-
this.
|
|
517
|
+
ToggleInlineNameEdit(visible) {
|
|
518
|
+
this.IsEditDashboardNameDialogOpened = visible;
|
|
519
|
+
if (this.IsEditDashboardNameDialogOpened) {
|
|
520
|
+
this.DashboardNameInput?.nativeElement?.focus();
|
|
365
521
|
}
|
|
366
522
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
523
|
+
/** @deprecated Use {@link ToggleInlineNameEdit}. */
|
|
524
|
+
toggleInlineNameEdit(visible) {
|
|
525
|
+
return this.ToggleInlineNameEdit(visible);
|
|
526
|
+
}
|
|
527
|
+
SaveDashboardName() {
|
|
528
|
+
this.ToggleInlineNameEdit(true);
|
|
529
|
+
const inputValue = this.DashboardNameInput.nativeElement.value;
|
|
370
530
|
if (inputValue && inputValue.length > 3) {
|
|
371
|
-
this.
|
|
531
|
+
this.DashboardEntity.Name = inputValue;
|
|
372
532
|
this.SaveDashboard();
|
|
373
533
|
}
|
|
374
534
|
else {
|
|
375
|
-
this.
|
|
535
|
+
this.SharedService.CreateSimpleNotification('Invalid dashboard name: Must be at least 3 characters.', 'warning', 1000);
|
|
376
536
|
}
|
|
377
537
|
}
|
|
538
|
+
/** @deprecated Use {@link SaveDashboardName}. */
|
|
539
|
+
saveDashboardName() {
|
|
540
|
+
return this.SaveDashboardName();
|
|
541
|
+
}
|
|
542
|
+
CancelNameChange() {
|
|
543
|
+
this.ToggleInlineNameEdit(false);
|
|
544
|
+
}
|
|
545
|
+
/** @deprecated Use {@link CancelNameChange}. */
|
|
378
546
|
cancelNameChange() {
|
|
379
|
-
this.
|
|
547
|
+
return this.CancelNameChange();
|
|
548
|
+
}
|
|
549
|
+
CloseDeleteItemComponent() {
|
|
550
|
+
this.SelectedDashboardItem = null;
|
|
551
|
+
this.IsDeletingDashboardItem = false;
|
|
380
552
|
}
|
|
553
|
+
/** @deprecated Use {@link CloseDeleteItemComponent}. */
|
|
381
554
|
closeDeleteItemComponent() {
|
|
382
|
-
this.
|
|
383
|
-
this.isDeletingDashboardItem = false;
|
|
555
|
+
return this.CloseDeleteItemComponent();
|
|
384
556
|
}
|
|
557
|
+
ShowConfirmDeleteDashboardItem(item) {
|
|
558
|
+
this.SelectedDashboardItem = item;
|
|
559
|
+
this.IsDeletingDashboardItem = true;
|
|
560
|
+
}
|
|
561
|
+
/** @deprecated Use {@link ShowConfirmDeleteDashboardItem}. */
|
|
385
562
|
showConfirmDeleteDashboardItem(item) {
|
|
386
|
-
this.
|
|
387
|
-
this.isDeletingDashboardItem = true;
|
|
563
|
+
return this.ShowConfirmDeleteDashboardItem(item);
|
|
388
564
|
}
|
|
389
|
-
async
|
|
390
|
-
this.
|
|
565
|
+
async DeleteDashboardItem(item) {
|
|
566
|
+
this.Items = this.Items.filter(i => i.uniqueId != item.uniqueId);
|
|
391
567
|
let result = await this.SaveDashboard();
|
|
392
568
|
if (result) {
|
|
393
|
-
this.
|
|
569
|
+
this.SharedService.CreateSimpleNotification(`Dashboard item ${item.uniqueId} deleted successfully`, "success", 1000);
|
|
394
570
|
}
|
|
395
571
|
else {
|
|
396
|
-
this.
|
|
572
|
+
this.SharedService.CreateSimpleNotification(`Unable to delete dashboard item ${item.uniqueId}`, "error", 1000);
|
|
397
573
|
}
|
|
398
|
-
this.
|
|
399
|
-
this.
|
|
574
|
+
this.SelectedDashboardItem = null;
|
|
575
|
+
this.IsDeletingDashboardItem = false;
|
|
576
|
+
}
|
|
577
|
+
/** @deprecated Use {@link DeleteDashboardItem}. */
|
|
578
|
+
async deleteDashboardItem(item) {
|
|
579
|
+
return this.DeleteDashboardItem(item);
|
|
400
580
|
}
|
|
581
|
+
GetIsEditingItemBodyStyle() {
|
|
582
|
+
return this.IsEditingDashboard ? "bg-light-grey" : "";
|
|
583
|
+
}
|
|
584
|
+
/** @deprecated Use {@link GetIsEditingItemBodyStyle}. */
|
|
401
585
|
getIsEditingItemBodyStyle() {
|
|
402
|
-
return this.
|
|
586
|
+
return this.GetIsEditingItemBodyStyle();
|
|
587
|
+
}
|
|
588
|
+
GetIsEditingItemHeaderStyle() {
|
|
589
|
+
return this.IsEditingDashboard ? "bg-dark-grey" : "bg-blue";
|
|
403
590
|
}
|
|
591
|
+
/** @deprecated Use {@link GetIsEditingItemHeaderStyle}. */
|
|
404
592
|
getIsEditingItemHeaderStyle() {
|
|
405
|
-
return this.
|
|
593
|
+
return this.GetIsEditingItemHeaderStyle();
|
|
406
594
|
}
|
|
407
|
-
|
|
408
|
-
const item = e.uniqueId != null ? this.
|
|
595
|
+
OnReorder(e) {
|
|
596
|
+
const item = e.uniqueId != null ? this.Items.find(i => i.uniqueId === e.uniqueId) : this.Items[e.oldIndex];
|
|
409
597
|
if (item) {
|
|
410
598
|
if (e.oldIndex !== e.newIndex) {
|
|
411
|
-
this.
|
|
412
|
-
this.
|
|
599
|
+
this.Items.splice(e.oldIndex, 1);
|
|
600
|
+
this.Items.splice(e.newIndex, 0, item);
|
|
413
601
|
}
|
|
414
602
|
item.col = e.newCol ?? item.col;
|
|
415
603
|
item.row = e.newRow ?? item.row;
|
|
416
604
|
}
|
|
417
605
|
}
|
|
418
|
-
|
|
419
|
-
|
|
606
|
+
/** @deprecated Use {@link OnReorder}. */
|
|
607
|
+
onReorder(e) {
|
|
608
|
+
return this.OnReorder(e);
|
|
609
|
+
}
|
|
610
|
+
OnResize(e) {
|
|
611
|
+
const item = e.uniqueId != null ? this.Items.find(i => i.uniqueId === e.uniqueId) : undefined;
|
|
420
612
|
if (item) {
|
|
421
613
|
item.colSpan = e.newColSpan;
|
|
422
614
|
item.rowSpan = e.newRowSpan;
|
|
423
615
|
}
|
|
424
616
|
}
|
|
617
|
+
/** @deprecated Use {@link OnResize}. */
|
|
618
|
+
onResize(e) {
|
|
619
|
+
return this.OnResize(e);
|
|
620
|
+
}
|
|
621
|
+
OnMouseEnter(e) {
|
|
622
|
+
// Available for future drag-and-drop support
|
|
623
|
+
}
|
|
624
|
+
/** @deprecated Use {@link OnMouseEnter}. */
|
|
425
625
|
onMouseEnter(e) {
|
|
626
|
+
return this.OnMouseEnter(e);
|
|
627
|
+
}
|
|
628
|
+
OnMouseOut(e) {
|
|
426
629
|
// Available for future drag-and-drop support
|
|
427
630
|
}
|
|
631
|
+
/** @deprecated Use {@link OnMouseOut}. */
|
|
428
632
|
onMouseOut(e) {
|
|
429
|
-
|
|
633
|
+
return this.OnMouseOut(e);
|
|
430
634
|
}
|
|
431
635
|
/**
|
|
432
636
|
* Get the appropriate icon for a resource type
|
|
433
637
|
* @param resourceType The type of resource
|
|
434
638
|
* @returns FontAwesome icon class
|
|
435
639
|
*/
|
|
436
|
-
|
|
640
|
+
GetResourceIcon(resourceType) {
|
|
437
641
|
// Default to a cube icon if type is undefined
|
|
438
642
|
if (!resourceType)
|
|
439
643
|
return 'fa-solid fa-cube';
|
|
@@ -446,13 +650,17 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
446
650
|
};
|
|
447
651
|
return iconMap[resourceType] || iconMap['default'];
|
|
448
652
|
}
|
|
653
|
+
/** @deprecated Use {@link GetResourceIcon}. */
|
|
654
|
+
getResourceIcon(resourceType) {
|
|
655
|
+
return this.GetResourceIcon(resourceType);
|
|
656
|
+
}
|
|
449
657
|
static ɵfac = function SingleDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SingleDashboardComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
|
|
450
658
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SingleDashboardComponent, selectors: [["mj-single-dashboard"]], viewQuery: function SingleDashboardComponent_Query(rf, ctx) { if (rf & 1) {
|
|
451
659
|
i0.ɵɵviewQuery(_c0, 5);
|
|
452
660
|
} if (rf & 2) {
|
|
453
661
|
let _t;
|
|
454
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
455
|
-
} }, inputs: { ResourceData: "ResourceData" }, outputs: { dashboardSaved: "dashboardSaved", loadComplete: "loadComplete", loadStarted: "loadStarted" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 14, vars: 7, consts: [["dashboardNameInput", ""], [3, "selectedResource"], [3, "dashboardItem"], [1, "dashboard-container"], [1, "main-head-dashboard"], [1, "dashboard-title"], [1, "dashboard-header"], [1, "tile-resource-container"], ["Icon", "fa-solid fa-grip-vertical", "Title", "This dashboard is empty", "Message", "Start by adding reports or user views to your dashboard", "ActionText", "Add Item", "ActionIcon", "fa-solid fa-plus", 1, "empty-dashboard"], [1, "mj-tile-layout", 3, "grid-template-columns", "grid-auto-rows"], [3, "onClose", "selectedResource"], [3, "onClose", "triggerAddItem", "onSave", "items", "config"], [3, "removeDashboardItem", "onClose", "dashboardItem"], ["type", "text", "placeholder", "Enter name here", "id", "txtDashboardName", 1, "mj-input", 3, "keydown.enter"], ["mjButton", "", 3, "click"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-xmark"], ["aria-hidden", "true", 1, "fa-solid", "fa-star", "dashboard-star-icon"], [3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-gear"], ["Icon", "fa-solid fa-grip-vertical", "Title", "This dashboard is empty", "Message", "Start by adding reports or user views to your dashboard", "ActionText", "Add Item", "ActionIcon", "fa-solid fa-plus", 1, "empty-dashboard", 3, "Action"], [1, "mj-tile-layout"], [1, "mj-tile-item", 3, "grid-column", "grid-row", "id"], [1, "mj-tile-item", 3, "mouseenter", "mouseleave", "id"], [1, "mj-tile-header", 3, "ngClass"], [1, "item-title"], ["aria-hidden", "true"], [1, "mj-tile-body", 3, "ngClass"], [3, "ContentLoadingStarted", "ContentLoadingComplete", "Data", "isVisible"], [1, "btn-wrapper"], ["mjButton", "", "title", "Edit dashboard", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], ["mjButton", "", "title", "Remove item", 3, "click"], [1, "fa-solid", "fa-trash"]], template: function SingleDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
662
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.DashboardNameInput = _t.first);
|
|
663
|
+
} }, inputs: { ResourceData: "ResourceData" }, outputs: { DashboardSaved: "DashboardSaved", dashboardSaved: "dashboardSaved", loadComplete: "loadComplete", loadStarted: "loadStarted" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 14, vars: 7, consts: [["dashboardNameInput", ""], [3, "selectedResource"], [3, "dashboardItem"], [1, "dashboard-container"], [1, "main-head-dashboard"], [1, "dashboard-title"], [1, "dashboard-header"], [1, "tile-resource-container"], ["Icon", "fa-solid fa-grip-vertical", "Title", "This dashboard is empty", "Message", "Start by adding reports or user views to your dashboard", "ActionText", "Add Item", "ActionIcon", "fa-solid fa-plus", 1, "empty-dashboard"], [1, "mj-tile-layout", 3, "grid-template-columns", "grid-auto-rows"], [3, "onClose", "selectedResource"], [3, "onClose", "triggerAddItem", "onSave", "items", "config"], [3, "removeDashboardItem", "onClose", "dashboardItem"], ["type", "text", "placeholder", "Enter name here", "id", "txtDashboardName", 1, "mj-input", 3, "keydown.enter"], ["mjButton", "", 3, "click"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-xmark"], ["aria-hidden", "true", 1, "fa-solid", "fa-star", "dashboard-star-icon"], [3, "click"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-gear"], ["Icon", "fa-solid fa-grip-vertical", "Title", "This dashboard is empty", "Message", "Start by adding reports or user views to your dashboard", "ActionText", "Add Item", "ActionIcon", "fa-solid fa-plus", 1, "empty-dashboard", 3, "Action"], [1, "mj-tile-layout"], [1, "mj-tile-item", 3, "grid-column", "grid-row", "id"], [1, "mj-tile-item", 3, "mouseenter", "mouseleave", "id"], [1, "mj-tile-header", 3, "ngClass"], [1, "item-title"], ["aria-hidden", "true"], [1, "mj-tile-body", 3, "ngClass"], [3, "ContentLoadingStarted", "ContentLoadingComplete", "Data", "isVisible"], [1, "btn-wrapper"], ["mjButton", "", "title", "Edit dashboard", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], ["mjButton", "", "title", "Remove item", 3, "click"], [1, "fa-solid", "fa-trash"]], template: function SingleDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
456
664
|
i0.ɵɵconditionalCreate(0, SingleDashboardComponent_Conditional_0_Template, 1, 1, "app-add-item-dialog", 1);
|
|
457
665
|
i0.ɵɵconditionalCreate(1, SingleDashboardComponent_Conditional_1_Template, 2, 2, "div");
|
|
458
666
|
i0.ɵɵconditionalCreate(2, SingleDashboardComponent_Conditional_2_Template, 1, 1, "app-delete-item-dialog", 2);
|
|
@@ -485,11 +693,13 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
485
693
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SingleDashboardComponent, [{
|
|
486
694
|
type: Component,
|
|
487
695
|
args: [{ standalone: false, selector: 'mj-single-dashboard', template: "@if (isItemDialogOpened) {\n <app-add-item-dialog (onClose)=\"closeDialog($event)\" [selectedResource]=\"selectedResource\"></app-add-item-dialog>\n}\n@if (isEditDialogOpened) {\n <div>\n <app-edit-dashboard (onClose)=\"closeDashboardDialog($event)\" (triggerAddItem)=\"addItem($event)\" [items]=\"items\" [config]=\"config\" (onSave)=\"saveChanges($event)\"></app-edit-dashboard>\n </div>\n}\n\n@if (isDeletingDashboardItem) {\n <app-delete-item-dialog [dashboardItem]=\"selectedDashboardItem\" (removeDashboardItem)=\"deleteDashboardItem($event)\" (onClose)=\"closeDeleteItemComponent()\"></app-delete-item-dialog>\n}\n\n<div class=\"dashboard-container\">\n <div class=\"main-head-dashboard\">\n <div class=\"dashboard-title\">\n @if (isEditDashboardNameDialogOpened) {\n <div class=\"dashboard-header\">\n <input class=\"mj-input\" (keydown.enter)=\"saveDashboardName()\" type=\"text\" placeholder=\"Enter name here\" id=\"txtDashboardName\" #dashboardNameInput>\n <button mjButton (click)=\"saveDashboardName()\">\n <span class=\"fa-solid fa-check\"></span>\n Save\n </button>\n <button mjButton (click)=\"cancelNameChange()\" >\n <span class=\"fa-solid fa-xmark\"></span>\n Cancel\n </button>\n </div>\n } @else {\n <i class=\"fa-solid fa-star dashboard-star-icon\" aria-hidden=\"true\"></i>\n <h3 (click)=\"toggleInlineNameEdit(true)\">{{dashboardEntity ? dashboardEntity.Name : ''}}</h3>\n }\n </div>\n <div class=\"dashboard-header\">\n @if (isEditingDashboard) {\n <div>\n <button mjButton (click)=\"onClickSaveDashboard()\">\n <span class=\"fa-solid fa-check\"></span>\n Save\n </button>\n <button mjButton (click)=\"onclickCancelChanges()\">\n <span class=\"fa-solid fa-xmark\"></span>\n Cancel\n </button>\n </div>\n } @else {\n <button mjButton (click)=\"addItem()\">\n <span class=\"fa-solid fa-plus\"></span>\n Add Item\n </button>\n <button mjButton (click)=\"toggleEditDashboard(true)\" >\n <span class=\"fa-solid fa-gear\"></span>\n Edit Dashboard\n </button>\n }\n </div>\n </div>\n <div class=\"tile-resource-container\">\n <!-- Show empty state if no items -->\n @if (items.length === 0 && !isEditingDashboard) {\n <mj-empty-state class=\"empty-dashboard\"\n Icon=\"fa-solid fa-grip-vertical\"\n Title=\"This dashboard is empty\"\n Message=\"Start by adding reports or user views to your dashboard\"\n ActionText=\"Add Item\"\n ActionIcon=\"fa-solid fa-plus\"\n (Action)=\"addItem()\" />\n }\n\n <!-- Show tile layout if there are items or if editing -->\n @if (items.length > 0 || isEditingDashboard) {\n <div class=\"mj-tile-layout\"\n [style.grid-template-columns]=\"'repeat(' + config.columns + ', 1fr)'\"\n [style.grid-auto-rows]=\"config.rowHeight + 'px'\">\n @for (item of items; track item.uniqueId) {\n <div class=\"mj-tile-item\"\n [style.grid-column]=\"item.col + ' / span ' + item.colSpan\"\n [style.grid-row]=\"'span ' + item.rowSpan\"\n [id]=\"item.uniqueId\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseOut($event)\">\n <div class=\"mj-tile-header\" [ngClass]=\"[getIsEditingItemHeaderStyle()]\">\n <div class=\"item-title\">\n <i [class]=\"getResourceIcon(item.ResourceData.ResourceType)\" aria-hidden=\"true\"></i>\n {{item.title}}\n </div>\n @if (!isEditingDashboard) {\n <div>\n <div class=\"btn-wrapper\">\n <button mjButton title=\"Edit dashboard\" (click)=\"toggleEditDashboard(true)\">\n <span class=\"fa-solid fa-pen-to-square\"></span>\n </button>\n <button mjButton title=\"Remove item\" (click)=\"showConfirmDeleteDashboardItem(item)\">\n <span class=\"fa-solid fa-trash\"></span>\n </button>\n </div>\n </div>\n }\n </div>\n <div class=\"mj-tile-body\" [ngClass]=\"[getIsEditingItemBodyStyle()]\">\n <mj-resource [Data]=\"item.ResourceData\" [isVisible]=\"true\" (ContentLoadingStarted)=\"loadingStarted($event)\" (ContentLoadingComplete)=\"loadingComplete($event)\"></mj-resource>\n </div>\n </div>\n }\n </div>\n }\n </div>\n</div>\n", styles: [":host {\n display: block;\n padding: 20px;\n height: 100%;\n box-sizing: border-box;\n}\n\n.dashboard-container {\n height: calc(100% - 60px);\n overflow: auto;\n}\n\n.dashboard-title {\n display: flex;\n align-items: center;\n gap: 15px;\n}\n\n.dashboard-star-icon {\n color: var(--mj-brand-primary);\n font-size: 22px;\n}\n\n.dashboard-title h3 {\n color: var(--mj-text-secondary);\n font-size: 28px;\n font-style: normal;\n font-weight: 300;\n line-height: 28px;\n margin: 0;\n cursor: pointer;\n}\n\n.dashboard-title h3:hover {\n text-decoration: underline;\n}\n\n.dashboard-header {\n display: flex;\n gap: 10px;\n align-items: center;\n justify-content: flex-end;\n}\n\n.button-spacing {\n margin-right: 8px;\n}\n\n.btn-wrapper {\n display: flex;\n gap: 5px;\n}\n\n.btn-wrapper > button {\n margin-left: 5px;\n}\n\n.main-head-dashboard {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.tile-resource-container {\n margin-top: 20px;\n padding: 15px;\n border-radius: 8px;\n background-color: var(--mj-bg-surface-card);\n}\n\n/* CSS Grid tile layout */\n.mj-tile-layout {\n display: grid;\n gap: 16px;\n background: var(--mj-bg-surface);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);\n border-radius: 8px;\n padding: 10px;\n}\n\n.mj-tile-item {\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n background: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n}\n\n.mj-tile-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 15px;\n font-weight: 500;\n background-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse, white);\n}\n\n.mj-tile-header .item-title {\n display: flex;\n align-items: center;\n gap: 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.mj-tile-body {\n flex: 1;\n overflow: auto;\n}\n\n.bg-light-grey {\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.bg-dark-grey {\n background-color: var(--mj-text-secondary);\n color: var(--mj-text-inverse, white);\n}\n\n.bg-blue {\n background-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse, white);\n}\n\n/* Empty dashboard state */\n.empty-dashboard {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px;\n text-align: center;\n color: var(--mj-text-secondary);\n background-color: var(--mj-bg-surface-card);\n border-radius: 8px;\n margin-top: 20px;\n}\n\n.empty-dashboard i {\n font-size: 48px;\n margin-bottom: 20px;\n color: var(--mj-border-strong);\n}\n\n.empty-dashboard h3 {\n margin-bottom: 10px;\n}\n\n.empty-dashboard p {\n margin-bottom: 20px;\n}\n"] }]
|
|
488
|
-
}], () => [{ type: i1.ActivatedRoute }, { type: i2.SharedService }], {
|
|
696
|
+
}], () => [{ type: i1.ActivatedRoute }, { type: i2.SharedService }], { DashboardNameInput: [{
|
|
489
697
|
type: ViewChild,
|
|
490
698
|
args: ['dashboardNameInput']
|
|
491
699
|
}], ResourceData: [{
|
|
492
700
|
type: Input
|
|
701
|
+
}], DashboardSaved: [{
|
|
702
|
+
type: Output
|
|
493
703
|
}], dashboardSaved: [{
|
|
494
704
|
type: Output
|
|
495
705
|
}], loadComplete: [{
|
|
@@ -499,10 +709,10 @@ export class SingleDashboardComponent extends BaseDashboard {
|
|
|
499
709
|
}] }); })();
|
|
500
710
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SingleDashboardComponent, { className: "SingleDashboardComponent", filePath: "src/lib/single-dashboard/single-dashboard.component.ts", lineNumber: 17 }); })();
|
|
501
711
|
export class DashboardConfigDetails {
|
|
502
|
-
columns = 4;
|
|
503
|
-
rowHeight = 150;
|
|
504
|
-
resizable = true;
|
|
505
|
-
reorderable = true;
|
|
712
|
+
columns = 4; // case-violation-ok-legacy-back-compat: object literals are assigned to this class, so an accessor stub changes what they must supply
|
|
713
|
+
rowHeight = 150; // case-violation-ok-legacy-back-compat: object literals are assigned to this class, so an accessor stub changes what they must supply
|
|
714
|
+
resizable = true; // case-violation-ok-legacy-back-compat: object literals are assigned to this class, so an accessor stub changes what they must supply
|
|
715
|
+
reorderable = true; // case-violation-ok-legacy-back-compat: object literals are assigned to this class, so an accessor stub changes what they must supply
|
|
506
716
|
}
|
|
507
717
|
export class DashboardItem {
|
|
508
718
|
static nextUniqueId = 1;
|
|
@@ -510,16 +720,80 @@ export class DashboardItem {
|
|
|
510
720
|
return DashboardItem.nextUniqueId++;
|
|
511
721
|
}
|
|
512
722
|
constructor() {
|
|
513
|
-
this.
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
723
|
+
this.UniqueId = this.getNextUniqueID();
|
|
724
|
+
}
|
|
725
|
+
UniqueId;
|
|
726
|
+
/** @deprecated Use {@link UniqueId}. */
|
|
727
|
+
get uniqueId() {
|
|
728
|
+
return this.UniqueId;
|
|
729
|
+
}
|
|
730
|
+
/** @deprecated Use {@link UniqueId}. */
|
|
731
|
+
set uniqueId(value) {
|
|
732
|
+
this.UniqueId = value;
|
|
733
|
+
}
|
|
734
|
+
Title;
|
|
735
|
+
/** @deprecated Use {@link Title}. */
|
|
736
|
+
get title() {
|
|
737
|
+
return this.Title;
|
|
738
|
+
}
|
|
739
|
+
/** @deprecated Use {@link Title}. */
|
|
740
|
+
set title(value) {
|
|
741
|
+
this.Title = value;
|
|
742
|
+
}
|
|
743
|
+
Col;
|
|
744
|
+
/** @deprecated Use {@link Col}. */
|
|
745
|
+
get col() {
|
|
746
|
+
return this.Col;
|
|
747
|
+
}
|
|
748
|
+
/** @deprecated Use {@link Col}. */
|
|
749
|
+
set col(value) {
|
|
750
|
+
this.Col = value;
|
|
751
|
+
}
|
|
752
|
+
Row;
|
|
753
|
+
/** @deprecated Use {@link Row}. */
|
|
754
|
+
get row() {
|
|
755
|
+
return this.Row;
|
|
756
|
+
}
|
|
757
|
+
/** @deprecated Use {@link Row}. */
|
|
758
|
+
set row(value) {
|
|
759
|
+
this.Row = value;
|
|
760
|
+
}
|
|
761
|
+
RowSpan;
|
|
762
|
+
/** @deprecated Use {@link RowSpan}. */
|
|
763
|
+
get rowSpan() {
|
|
764
|
+
return this.RowSpan;
|
|
765
|
+
}
|
|
766
|
+
/** @deprecated Use {@link RowSpan}. */
|
|
767
|
+
set rowSpan(value) {
|
|
768
|
+
this.RowSpan = value;
|
|
769
|
+
}
|
|
770
|
+
ColSpan;
|
|
771
|
+
/** @deprecated Use {@link ColSpan}. */
|
|
772
|
+
get colSpan() {
|
|
773
|
+
return this.ColSpan;
|
|
774
|
+
}
|
|
775
|
+
/** @deprecated Use {@link ColSpan}. */
|
|
776
|
+
set colSpan(value) {
|
|
777
|
+
this.ColSpan = value;
|
|
778
|
+
}
|
|
779
|
+
Order;
|
|
780
|
+
/** @deprecated Use {@link Order}. */
|
|
781
|
+
get order() {
|
|
782
|
+
return this.Order;
|
|
783
|
+
}
|
|
784
|
+
/** @deprecated Use {@link Order}. */
|
|
785
|
+
set order(value) {
|
|
786
|
+
this.Order = value;
|
|
787
|
+
}
|
|
522
788
|
ResourceData;
|
|
523
|
-
|
|
789
|
+
ContentLoading = false;
|
|
790
|
+
/** @deprecated Use {@link ContentLoading}. */
|
|
791
|
+
get contentLoading() {
|
|
792
|
+
return this.ContentLoading;
|
|
793
|
+
}
|
|
794
|
+
/** @deprecated Use {@link ContentLoading}. */
|
|
795
|
+
set contentLoading(value) {
|
|
796
|
+
this.ContentLoading = value;
|
|
797
|
+
}
|
|
524
798
|
}
|
|
525
799
|
//# sourceMappingURL=single-dashboard.component.js.map
|