@memberjunction/ng-explorer-core 2.48.0 → 2.50.0

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.
Files changed (105) hide show
  1. package/dist/app-routing.module.js +40 -53
  2. package/dist/app-routing.module.js.map +1 -1
  3. package/dist/generic/Events.types.js +104 -0
  4. package/dist/generic/Events.types.js.map +1 -1
  5. package/dist/generic/Item.types.js +28 -14
  6. package/dist/generic/Item.types.js.map +1 -1
  7. package/dist/generic/PathData.types.js +5 -0
  8. package/dist/generic/PathData.types.js.map +1 -1
  9. package/dist/generic/app-nav-view.types.js +3 -1
  10. package/dist/generic/app-nav-view.types.js.map +1 -1
  11. package/dist/lib/app-view/application-view.component.js +273 -294
  12. package/dist/lib/app-view/application-view.component.js.map +1 -1
  13. package/dist/lib/auth-button/auth-button.component.js +13 -22
  14. package/dist/lib/auth-button/auth-button.component.js.map +1 -1
  15. package/dist/lib/base-browser-component/base-browser-component.js +96 -108
  16. package/dist/lib/base-browser-component/base-browser-component.js.map +1 -1
  17. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +106 -124
  18. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js.map +1 -1
  19. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +257 -281
  20. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
  21. package/dist/lib/data-browser-component/data-browser.component.js +122 -137
  22. package/dist/lib/data-browser-component/data-browser.component.js.map +1 -1
  23. package/dist/lib/expansion-panel-component/expansion-panel-component.js +100 -117
  24. package/dist/lib/expansion-panel-component/expansion-panel-component.js.map +1 -1
  25. package/dist/lib/favorites/favorites.component.js +44 -54
  26. package/dist/lib/favorites/favorites.component.js.map +1 -1
  27. package/dist/lib/files/files.component.js +12 -11
  28. package/dist/lib/files/files.component.js.map +1 -1
  29. package/dist/lib/generic/form-toolbar.js +21 -20
  30. package/dist/lib/generic/form-toolbar.js.map +1 -1
  31. package/dist/lib/generic/resource-container-component.js +23 -20
  32. package/dist/lib/generic/resource-container-component.js.map +1 -1
  33. package/dist/lib/generic-browse-list/generic-browse-list.component.js +48 -46
  34. package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -1
  35. package/dist/lib/generic-browser-list/generic-browser-list.component.js +353 -386
  36. package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -1
  37. package/dist/lib/guards/auth-guard.service.js +4 -2
  38. package/dist/lib/guards/auth-guard.service.js.map +1 -1
  39. package/dist/lib/guards/entities.guard.js +1 -1
  40. package/dist/lib/guards/entities.guard.js.map +1 -1
  41. package/dist/lib/header/MSFT_UserImageService.js +4 -3
  42. package/dist/lib/header/MSFT_UserImageService.js.map +1 -1
  43. package/dist/lib/header/header.component.js +111 -121
  44. package/dist/lib/header/header.component.js.map +1 -1
  45. package/dist/lib/home-component/home.component.js +34 -42
  46. package/dist/lib/home-component/home.component.js.map +1 -1
  47. package/dist/lib/home-wrapper/home-wrapper.component.js +6 -6
  48. package/dist/lib/home-wrapper/home-wrapper.component.js.map +1 -1
  49. package/dist/lib/list-view/list-view.component.js +132 -152
  50. package/dist/lib/list-view/list-view.component.js.map +1 -1
  51. package/dist/lib/navigation/navigation.component.js +568 -615
  52. package/dist/lib/navigation/navigation.component.js.map +1 -1
  53. package/dist/lib/query-browser-component/query-browser.component.js +30 -39
  54. package/dist/lib/query-browser-component/query-browser.component.js.map +1 -1
  55. package/dist/lib/report-browser-component/report-browser.component.js +18 -30
  56. package/dist/lib/report-browser-component/report-browser.component.js.map +1 -1
  57. package/dist/lib/resource-browser/resource-browser.component.js +435 -457
  58. package/dist/lib/resource-browser/resource-browser.component.js.map +1 -1
  59. package/dist/lib/resource-wrappers/dashboard-resource.component.js +12 -25
  60. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  61. package/dist/lib/resource-wrappers/list-detail-resource.component.js +18 -31
  62. package/dist/lib/resource-wrappers/list-detail-resource.component.js.map +1 -1
  63. package/dist/lib/resource-wrappers/query-resource.component.js +15 -28
  64. package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -1
  65. package/dist/lib/resource-wrappers/record-resource.component.js +35 -47
  66. package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
  67. package/dist/lib/resource-wrappers/report-resource.component.js +15 -28
  68. package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -1
  69. package/dist/lib/resource-wrappers/search-results-resource.component.js +21 -34
  70. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
  71. package/dist/lib/resource-wrappers/view-resource.component.js +23 -37
  72. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
  73. package/dist/lib/single-application/single-application.component.js +15 -20
  74. package/dist/lib/single-application/single-application.component.js.map +1 -1
  75. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +81 -95
  76. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
  77. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +28 -29
  78. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
  79. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +51 -64
  80. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
  81. package/dist/lib/single-dashboard/single-dashboard.component.js +158 -165
  82. package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
  83. package/dist/lib/single-entity/single-entity.component.js +106 -118
  84. package/dist/lib/single-entity/single-entity.component.js.map +1 -1
  85. package/dist/lib/single-list-detail/single-list-detail.component.js +265 -287
  86. package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
  87. package/dist/lib/single-query/single-query.component.js +35 -44
  88. package/dist/lib/single-query/single-query.component.js.map +1 -1
  89. package/dist/lib/single-record/single-record.component.js +64 -73
  90. package/dist/lib/single-record/single-record.component.js.map +1 -1
  91. package/dist/lib/single-report/single-report.component.js +33 -43
  92. package/dist/lib/single-report/single-report.component.js.map +1 -1
  93. package/dist/lib/single-search-result/single-search-result.component.js +18 -30
  94. package/dist/lib/single-search-result/single-search-result.component.js.map +1 -1
  95. package/dist/lib/single-view/single-view.component.js +107 -124
  96. package/dist/lib/single-view/single-view.component.js.map +1 -1
  97. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +197 -210
  98. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -1
  99. package/dist/lib/user-notifications/user-notifications.component.js +137 -155
  100. package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
  101. package/dist/lib/user-profile/user-profile.component.js +10 -8
  102. package/dist/lib/user-profile/user-profile.component.js.map +1 -1
  103. package/dist/module.js +51 -51
  104. package/dist/module.js.map +1 -1
  105. package/package.json +25 -25
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { Component, Input, ViewChild, ViewContainerRef } from '@angular/core';
11
2
  import { LogError, Metadata, RunView } from '@memberjunction/core';
12
3
  import { ResourceData } from '@memberjunction/core-entities';
@@ -131,59 +122,61 @@ function TabbedDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1)
131
122
  i0.ɵɵconditional(ctx_r1.dashboards.length === 0 ? 2 : 3);
132
123
  } }
133
124
  export class TabbedDashboardComponent {
125
+ router;
126
+ tabstrip;
127
+ contentWrapper;
128
+ noTabsContainer;
129
+ tabContainer;
130
+ tabstripContainer;
131
+ /**
132
+ * Specify the application to display dashboards for. If not specified, the scope is global.
133
+ */
134
+ ApplicationID = null;
135
+ /**
136
+ * Name for the default tab when no dashboards are available.
137
+ */
138
+ DefaultTabName = 'Default';
139
+ /**
140
+ * Specify the position of the default dashboard, first, last or not shown at all.
141
+ */
142
+ DefaultDashboardPosition = 'last';
143
+ dashboards = [];
144
+ loading = true;
145
+ error = null;
146
+ dashboardInstances = new Map();
147
+ dashboardComponentRefs = new Map();
134
148
  constructor(router) {
135
149
  this.router = router;
136
- /**
137
- * Specify the application to display dashboards for. If not specified, the scope is global.
138
- */
139
- this.ApplicationID = null;
140
- /**
141
- * Name for the default tab when no dashboards are available.
142
- */
143
- this.DefaultTabName = 'Default';
144
- /**
145
- * Specify the position of the default dashboard, first, last or not shown at all.
146
- */
147
- this.DefaultDashboardPosition = 'last';
148
- this.dashboards = [];
149
- this.loading = true;
150
- this.error = null;
151
- this.dashboardInstances = new Map();
152
- this.dashboardComponentRefs = new Map();
153
150
  }
154
- ngOnInit() {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- });
151
+ async ngOnInit() {
157
152
  }
158
- ngAfterViewInit() {
159
- return __awaiter(this, void 0, void 0, function* () {
160
- try {
161
- this.loading = true;
162
- yield this.loadDashboards();
163
- // Move content after loading is complete and view might have changed
164
- setTimeout(() => {
165
- // Move content to appropriate container after view is initialized
166
- this.moveContentToCorrectContainer();
167
- // if the first tab is the default tab, nothing to do, otherwise we need to do the loading of the first tab since it is dynamic content
168
- if (this.DefaultDashboardPosition !== 'first' && this.dashboards.length > 0) {
169
- const dashboardId = this.dashboards[0].ID;
170
- const instance = this.getDashboardInstance(dashboardId);
171
- if (instance) {
172
- instance.SetVisible(true);
173
- // now, we need to invoke a manual resize to ensure everything shows up right
174
- InvokeManualResize(100);
175
- }
153
+ async ngAfterViewInit() {
154
+ try {
155
+ this.loading = true;
156
+ await this.loadDashboards();
157
+ // Move content after loading is complete and view might have changed
158
+ setTimeout(() => {
159
+ // Move content to appropriate container after view is initialized
160
+ this.moveContentToCorrectContainer();
161
+ // if the first tab is the default tab, nothing to do, otherwise we need to do the loading of the first tab since it is dynamic content
162
+ if (this.DefaultDashboardPosition !== 'first' && this.dashboards.length > 0) {
163
+ const dashboardId = this.dashboards[0].ID;
164
+ const instance = this.getDashboardInstance(dashboardId);
165
+ if (instance) {
166
+ instance.SetVisible(true);
167
+ // now, we need to invoke a manual resize to ensure everything shows up right
168
+ InvokeManualResize(100);
176
169
  }
177
- }, 10);
178
- }
179
- catch (error) {
180
- LogError('Error in TabbedDashboardComponent.ngOnInit', null, error);
181
- this.error = 'Failed to load dashboards';
182
- }
183
- finally {
184
- this.loading = false;
185
- }
186
- });
170
+ }
171
+ }, 10);
172
+ }
173
+ catch (error) {
174
+ LogError('Error in TabbedDashboardComponent.ngOnInit', null, error);
175
+ this.error = 'Failed to load dashboards';
176
+ }
177
+ finally {
178
+ this.loading = false;
179
+ }
187
180
  }
188
181
  moveContentToCorrectContainer() {
189
182
  if (this.contentWrapper) {
@@ -198,74 +191,72 @@ export class TabbedDashboardComponent {
198
191
  }
199
192
  }
200
193
  }
201
- loadDashboards() {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- try {
204
- const md = new Metadata();
205
- const rv = new RunView();
206
- const appFilter = this.ApplicationID ? ` AND ApplicationID='${this.ApplicationID}'` : '';
207
- const ds = yield md.GetAndCacheDatasetByName("MJ_Metadata"); // get the main MJ_Metadata dataset which is usually already cached
208
- if (!ds || !ds.Success) {
209
- this.error = ds.Status || 'Failed to load metadata dataset';
210
- this.dashboards = [];
211
- return;
212
- }
213
- const dashList = ds.Results.find(r => r.Code === 'Dashboards');
214
- if (!dashList) {
215
- this.error = 'Dashboards dataset not found';
216
- this.dashboards = [];
217
- return;
218
- }
219
- // now get the data from the dataset which is usually cached
220
- const scope = this.ApplicationID ? 'App' : 'Global';
221
- const baseCondition = `Scope='${scope}'${appFilter}`;
222
- const userFilter = `UserID='${md.CurrentUser.ID}' AND ${baseCondition}`;
223
- const upEntity = md.EntityByName('MJ: Dashboard User Preferences');
224
- const filter = `(${userFilter})
194
+ async loadDashboards() {
195
+ try {
196
+ const md = new Metadata();
197
+ const rv = new RunView();
198
+ const appFilter = this.ApplicationID ? ` AND ApplicationID='${this.ApplicationID}'` : '';
199
+ const ds = await md.GetAndCacheDatasetByName("MJ_Metadata"); // get the main MJ_Metadata dataset which is usually already cached
200
+ if (!ds || !ds.Success) {
201
+ this.error = ds.Status || 'Failed to load metadata dataset';
202
+ this.dashboards = [];
203
+ return;
204
+ }
205
+ const dashList = ds.Results.find(r => r.Code === 'Dashboards');
206
+ if (!dashList) {
207
+ this.error = 'Dashboards dataset not found';
208
+ this.dashboards = [];
209
+ return;
210
+ }
211
+ // now get the data from the dataset which is usually cached
212
+ const scope = this.ApplicationID ? 'App' : 'Global';
213
+ const baseCondition = `Scope='${scope}'${appFilter}`;
214
+ const userFilter = `UserID='${md.CurrentUser.ID}' AND ${baseCondition}`;
215
+ const upEntity = md.EntityByName('MJ: Dashboard User Preferences');
216
+ const filter = `(${userFilter})
225
217
  OR
226
218
  (UserID IS NULL AND ${baseCondition} AND
227
219
  NOT EXISTS (SELECT 1 FROM [${upEntity.SchemaName}].[${upEntity.BaseView}]
228
220
  WHERE ${userFilter}))`;
229
- const params = {
230
- EntityName: 'MJ: Dashboard User Preferences',
231
- ExtraFilter: filter,
232
- ResultType: 'entity_object',
233
- OrderBy: 'DisplayOrder',
234
- };
235
- const prefsResult = yield rv.RunView(params); // Use RunView for user preferences because we don't want to cache this data as it would cause cache being refreshed all the time since
236
- // user preferences can change frequently and we want to ensure we always have the latest preferences for the current user
237
- if (prefsResult && prefsResult.Success && prefsResult.Results.length > 0) {
238
- const dashResults = dashList.Results.filter((d) => {
239
- return prefsResult.Results.some((p) => p.DashboardID === d.ID);
221
+ const params = {
222
+ EntityName: 'MJ: Dashboard User Preferences',
223
+ ExtraFilter: filter,
224
+ ResultType: 'entity_object',
225
+ OrderBy: 'DisplayOrder',
226
+ };
227
+ const prefsResult = await rv.RunView(params); // Use RunView for user preferences because we don't want to cache this data as it would cause cache being refreshed all the time since
228
+ // user preferences can change frequently and we want to ensure we always have the latest preferences for the current user
229
+ if (prefsResult && prefsResult.Success && prefsResult.Results.length > 0) {
230
+ const dashResults = dashList.Results.filter((d) => {
231
+ return prefsResult.Results.some((p) => p.DashboardID === d.ID);
232
+ });
233
+ if (dashResults.length > 0) {
234
+ // now sort the dashboards based on the user preferences
235
+ this.dashboards = dashResults.sort((a, b) => {
236
+ const prefA = prefsResult.Results.find(p => p.DashboardID === a.ID);
237
+ const prefB = prefsResult.Results.find(p => p.DashboardID === b.ID);
238
+ if (prefA && prefB) {
239
+ // we want to sort by DisplayOrder where lower numbers come first
240
+ return (prefA.DisplayOrder || 0) - (prefB.DisplayOrder || 0);
241
+ }
242
+ return 0;
240
243
  });
241
- if (dashResults.length > 0) {
242
- // now sort the dashboards based on the user preferences
243
- this.dashboards = dashResults.sort((a, b) => {
244
- const prefA = prefsResult.Results.find(p => p.DashboardID === a.ID);
245
- const prefB = prefsResult.Results.find(p => p.DashboardID === b.ID);
246
- if (prefA && prefB) {
247
- // we want to sort by DisplayOrder where lower numbers come first
248
- return (prefA.DisplayOrder || 0) - (prefB.DisplayOrder || 0);
249
- }
250
- return 0;
251
- });
252
- }
253
- else {
254
- this.error = 'Failed to load dashboards';
255
- this.dashboards = [];
256
- }
257
244
  }
258
245
  else {
259
- // No dashboard preferences found - this is normal, show default content
246
+ this.error = 'Failed to load dashboards';
260
247
  this.dashboards = [];
261
248
  }
262
249
  }
263
- catch (error) {
264
- LogError('Error loading dashboards', null, error);
265
- this.error = 'Failed to load dashboards';
250
+ else {
251
+ // No dashboard preferences found - this is normal, show default content
266
252
  this.dashboards = [];
267
253
  }
268
- });
254
+ }
255
+ catch (error) {
256
+ LogError('Error loading dashboards', null, error);
257
+ this.error = 'Failed to load dashboards';
258
+ this.dashboards = [];
259
+ }
269
260
  }
270
261
  getDashboardInstance(dashboardId) {
271
262
  if (!this.dashboardInstances.has(dashboardId)) {
@@ -310,11 +301,11 @@ export class TabbedDashboardComponent {
310
301
  this.dashboardInstances.set(dashboardId, instance);
311
302
  this.dashboardComponentRefs.set(dashboardId, componentRef);
312
303
  // Find the target container element and append the component
313
- setTimeout(() => __awaiter(this, void 0, void 0, function* () {
304
+ setTimeout(async () => {
314
305
  const targetElement = document.getElementById(`dashboard-${dashboardId}`);
315
306
  if (targetElement && componentRef.location.nativeElement) {
316
307
  targetElement.appendChild(componentRef.location.nativeElement);
317
- const userStateEntity = yield this.loadDashboardUserState(dashboardId);
308
+ const userStateEntity = await this.loadDashboardUserState(dashboardId);
318
309
  const config = {
319
310
  dashboard: dashboardEntity,
320
311
  userState: userStateEntity.UserState ? SafeJSONParse(userStateEntity.UserState) : {}
@@ -327,30 +318,30 @@ export class TabbedDashboardComponent {
327
318
  this.router.navigate(['resource', 'record', data.RecordPKey.ToURLSegment()], { queryParams: { Entity: data.EntityName } });
328
319
  }
329
320
  });
330
- instance.UserStateChanged.subscribe((userState) => __awaiter(this, void 0, void 0, function* () {
321
+ instance.UserStateChanged.subscribe(async (userState) => {
331
322
  if (!userState) {
332
323
  // if the user state is null, we need to remove it from the user state
333
324
  userState = {};
334
325
  }
335
326
  // save the user state to the dashboard user state entity
336
327
  userStateEntity.UserState = JSON.stringify(userState);
337
- if (!(yield userStateEntity.Save())) {
328
+ if (!await userStateEntity.Save()) {
338
329
  LogError('Error saving user state', null, userStateEntity.LatestResult.Error);
339
330
  }
340
- }));
331
+ });
341
332
  // now that we have state loaded and our events are wired up, we can set the config
342
333
  instance.Config = config;
343
334
  instance.Refresh();
344
335
  // now invoke a manual resize
345
336
  InvokeManualResize(100);
346
337
  }
347
- }), 0);
338
+ }, 0);
348
339
  return instance;
349
340
  }
350
341
  }
351
342
  catch (error) {
352
343
  const dashboardEntity = this.dashboards.find(d => d.ID === dashboardId);
353
- const errorMsg = `Error creating dashboard instance for '${(dashboardEntity === null || dashboardEntity === void 0 ? void 0 : dashboardEntity.Name) || dashboardId}'`;
344
+ const errorMsg = `Error creating dashboard instance for '${dashboardEntity?.Name || dashboardId}'`;
354
345
  console.error(errorMsg, error);
355
346
  LogError(errorMsg, null, error);
356
347
  this.displayDashboardError(dashboardId, 'Dashboard loading error', 'An unexpected error occurred while loading the dashboard. Please contact your system administrator.');
@@ -374,28 +365,26 @@ export class TabbedDashboardComponent {
374
365
  }
375
366
  }, 0);
376
367
  }
377
- loadDashboardUserState(dashboardId) {
378
- return __awaiter(this, void 0, void 0, function* () {
379
- // handle user state changes for the dashboard
380
- const rv = new RunView();
381
- const md = new Metadata();
382
- const stateResult = yield rv.RunView({
383
- EntityName: 'MJ: Dashboard User States',
384
- ExtraFilter: `DashboardID='${dashboardId}' AND UserID='${md.CurrentUser.ID}'`,
385
- ResultType: 'entity_object',
386
- });
387
- let stateObject;
388
- if (stateResult && stateResult.Success && stateResult.Results.length > 0) {
389
- stateObject = stateResult.Results[0];
390
- }
391
- else {
392
- stateObject = yield md.GetEntityObject('MJ: Dashboard User States');
393
- stateObject.DashboardID = dashboardId;
394
- stateObject.UserID = md.CurrentUser.ID;
395
- // don't save becuase we don't care about the state until something changes
396
- }
397
- return stateObject;
368
+ async loadDashboardUserState(dashboardId) {
369
+ // handle user state changes for the dashboard
370
+ const rv = new RunView();
371
+ const md = new Metadata();
372
+ const stateResult = await rv.RunView({
373
+ EntityName: 'MJ: Dashboard User States',
374
+ ExtraFilter: `DashboardID='${dashboardId}' AND UserID='${md.CurrentUser.ID}'`,
375
+ ResultType: 'entity_object',
398
376
  });
377
+ let stateObject;
378
+ if (stateResult && stateResult.Success && stateResult.Results.length > 0) {
379
+ stateObject = stateResult.Results[0];
380
+ }
381
+ else {
382
+ stateObject = await md.GetEntityObject('MJ: Dashboard User States');
383
+ stateObject.DashboardID = dashboardId;
384
+ stateObject.UserID = md.CurrentUser.ID;
385
+ // don't save becuase we don't care about the state until something changes
386
+ }
387
+ return stateObject;
399
388
  }
400
389
  onTabSelect(tabIndex) {
401
390
  // Initialize the dashboard if needed when its tab is selected
@@ -451,41 +440,39 @@ export class TabbedDashboardComponent {
451
440
  LogError('Error opening preferences dialog', null, error);
452
441
  }
453
442
  }
454
- refreshDashboards() {
455
- return __awaiter(this, void 0, void 0, function* () {
456
- try {
457
- this.loading = true;
458
- this.error = null;
459
- // Clear existing dashboard instances
460
- this.dashboardComponentRefs.forEach(componentRef => {
461
- componentRef.destroy();
462
- });
463
- this.dashboardComponentRefs.clear();
464
- this.dashboardInstances.clear();
465
- // Reload dashboards
466
- yield this.loadDashboards();
467
- // Move content to correct container
468
- setTimeout(() => {
469
- this.moveContentToCorrectContainer();
470
- // Load first dashboard if available
471
- if (this.DefaultDashboardPosition !== 'first' && this.dashboards.length > 0) {
472
- const dashboardId = this.dashboards[0].ID;
473
- const instance = this.getDashboardInstance(dashboardId);
474
- if (instance) {
475
- instance.SetVisible(true);
476
- InvokeManualResize(100);
477
- }
443
+ async refreshDashboards() {
444
+ try {
445
+ this.loading = true;
446
+ this.error = null;
447
+ // Clear existing dashboard instances
448
+ this.dashboardComponentRefs.forEach(componentRef => {
449
+ componentRef.destroy();
450
+ });
451
+ this.dashboardComponentRefs.clear();
452
+ this.dashboardInstances.clear();
453
+ // Reload dashboards
454
+ await this.loadDashboards();
455
+ // Move content to correct container
456
+ setTimeout(() => {
457
+ this.moveContentToCorrectContainer();
458
+ // Load first dashboard if available
459
+ if (this.DefaultDashboardPosition !== 'first' && this.dashboards.length > 0) {
460
+ const dashboardId = this.dashboards[0].ID;
461
+ const instance = this.getDashboardInstance(dashboardId);
462
+ if (instance) {
463
+ instance.SetVisible(true);
464
+ InvokeManualResize(100);
478
465
  }
479
- }, 10);
480
- }
481
- catch (error) {
482
- LogError('Error refreshing dashboards', null, error);
483
- this.error = 'Failed to refresh dashboards';
484
- }
485
- finally {
486
- this.loading = false;
487
- }
488
- });
466
+ }
467
+ }, 10);
468
+ }
469
+ catch (error) {
470
+ LogError('Error refreshing dashboards', null, error);
471
+ this.error = 'Failed to refresh dashboards';
472
+ }
473
+ finally {
474
+ this.loading = false;
475
+ }
489
476
  }
490
477
  ngOnDestroy() {
491
478
  // Clean up component references
@@ -495,42 +482,42 @@ export class TabbedDashboardComponent {
495
482
  this.dashboardComponentRefs.clear();
496
483
  this.dashboardInstances.clear();
497
484
  }
485
+ static ɵfac = function TabbedDashboardComponent_Factory(t) { return new (t || TabbedDashboardComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
486
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabbedDashboardComponent, selectors: [["mj-tabbed-dashboard"]], viewQuery: function TabbedDashboardComponent_Query(rf, ctx) { if (rf & 1) {
487
+ i0.ɵɵviewQuery(_c0, 5);
488
+ i0.ɵɵviewQuery(_c1, 5);
489
+ i0.ɵɵviewQuery(_c2, 5);
490
+ i0.ɵɵviewQuery(_c3, 5);
491
+ i0.ɵɵviewQuery(_c4, 5, ViewContainerRef);
492
+ } if (rf & 2) {
493
+ let _t;
494
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabstrip = _t.first);
495
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentWrapper = _t.first);
496
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noTabsContainer = _t.first);
497
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabContainer = _t.first);
498
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabstripContainer = _t.first);
499
+ } }, inputs: { ApplicationID: "ApplicationID", DefaultTabName: "DefaultTabName", DefaultDashboardPosition: "DefaultDashboardPosition" }, ngContentSelectors: _c5, decls: 9, vars: 5, consts: [["contentWrapper", ""], ["tabstripContainer", ""], ["noTabsContainer", ""], ["tabstrip", ""], ["tabContainer", ""], ["mjFillContainer", "", 1, "tabbed-dashboard-container", 3, "rightMargin", "bottomMargin"], ["type", "button", "title", "Dashboard Preferences", 1, "preferences-button", 3, "click"], [1, "fa-solid", "fa-cog"], [1, "loading-indicator"], [1, "error-message"], ["mjFillContainer", ""], [2, "display", "none"], ["mjFillContainer", "", 3, "TabSelected"], [3, "Name"], [1, "fa-solid", "tab-icon"], [1, "fa-solid", "fa-grip", "tab-icon"], ["mjFillContainer", "", 1, "dashboard-container"], ["mjFillContainer", "", 1, "dashboard-instance", 3, "id"]], template: function TabbedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
500
+ const _r1 = i0.ɵɵgetCurrentView();
501
+ i0.ɵɵprojectionDef();
502
+ i0.ɵɵelementStart(0, "div", 5)(1, "button", 6);
503
+ i0.ɵɵlistener("click", function TabbedDashboardComponent_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.openPreferencesDialog()); });
504
+ i0.ɵɵelement(2, "i", 7);
505
+ i0.ɵɵelementEnd();
506
+ i0.ɵɵtemplate(3, TabbedDashboardComponent_Conditional_3_Template, 3, 0, "div", 8)(4, TabbedDashboardComponent_Conditional_4_Template, 2, 1, "div", 9)(5, TabbedDashboardComponent_Conditional_5_Template, 4, 1, "div", 10);
507
+ i0.ɵɵelementEnd();
508
+ i0.ɵɵelementStart(6, "div", 11, 0);
509
+ i0.ɵɵprojection(8);
510
+ i0.ɵɵelementEnd();
511
+ } if (rf & 2) {
512
+ i0.ɵɵproperty("rightMargin", 10)("bottomMargin", 10);
513
+ i0.ɵɵadvance(3);
514
+ i0.ɵɵconditional(ctx.loading ? 3 : -1);
515
+ i0.ɵɵadvance();
516
+ i0.ɵɵconditional(ctx.error ? 4 : -1);
517
+ i0.ɵɵadvance();
518
+ i0.ɵɵconditional(!ctx.loading && !ctx.error ? 5 : -1);
519
+ } }, dependencies: [i2.LoaderComponent, i3.FillContainer, i4.MJTabStripComponent, i4.MJTabBodyComponent, i4.MJTabComponent], styles: [".tabbed-dashboard-container[_ngcontent-%COMP%] {\n border: solid 1px white;\n background-color: white;\n position: relative;\n}\n\n.preferences-button[_ngcontent-%COMP%] {\n position: absolute;\n top: 4px;\n right: 12px;\n z-index: 1000;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n width: 26px;\n height: 26px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.preferences-button[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #007bff;\n color: #007bff;\n box-shadow: 0 4px 8px rgba(0, 123, 255, 0.15);\n}\n\n.preferences-button[_ngcontent-%COMP%]:active {\n transform: translateY(1px);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n font-size: 1.2rem;\n color: #666;\n}\n\n.error-message[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n font-size: 1.2rem;\n color: #d9534f;\n}\n\n.dashboard-container[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n overflow: auto;\n}\n\n.dashboard-instance-container[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n}\n\n.dashboard-placeholder[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n font-size: 1.2rem;\n color: #666;\n border: 1px dashed #ccc;\n padding: 20px;\n}\n\n.tab-icon[_ngcontent-%COMP%] {\n margin-right: 8px;\n}"] });
498
520
  }
499
- TabbedDashboardComponent.ɵfac = function TabbedDashboardComponent_Factory(t) { return new (t || TabbedDashboardComponent)(i0.ɵɵdirectiveInject(i1.Router)); };
500
- TabbedDashboardComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TabbedDashboardComponent, selectors: [["mj-tabbed-dashboard"]], viewQuery: function TabbedDashboardComponent_Query(rf, ctx) { if (rf & 1) {
501
- i0.ɵɵviewQuery(_c0, 5);
502
- i0.ɵɵviewQuery(_c1, 5);
503
- i0.ɵɵviewQuery(_c2, 5);
504
- i0.ɵɵviewQuery(_c3, 5);
505
- i0.ɵɵviewQuery(_c4, 5, ViewContainerRef);
506
- } if (rf & 2) {
507
- let _t;
508
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabstrip = _t.first);
509
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentWrapper = _t.first);
510
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noTabsContainer = _t.first);
511
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabContainer = _t.first);
512
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabstripContainer = _t.first);
513
- } }, inputs: { ApplicationID: "ApplicationID", DefaultTabName: "DefaultTabName", DefaultDashboardPosition: "DefaultDashboardPosition" }, ngContentSelectors: _c5, decls: 9, vars: 5, consts: [["contentWrapper", ""], ["tabstripContainer", ""], ["noTabsContainer", ""], ["tabstrip", ""], ["tabContainer", ""], ["mjFillContainer", "", 1, "tabbed-dashboard-container", 3, "rightMargin", "bottomMargin"], ["type", "button", "title", "Dashboard Preferences", 1, "preferences-button", 3, "click"], [1, "fa-solid", "fa-cog"], [1, "loading-indicator"], [1, "error-message"], ["mjFillContainer", ""], [2, "display", "none"], ["mjFillContainer", "", 3, "TabSelected"], [3, "Name"], [1, "fa-solid", "tab-icon"], [1, "fa-solid", "fa-grip", "tab-icon"], ["mjFillContainer", "", 1, "dashboard-container"], ["mjFillContainer", "", 1, "dashboard-instance", 3, "id"]], template: function TabbedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
514
- const _r1 = i0.ɵɵgetCurrentView();
515
- i0.ɵɵprojectionDef();
516
- i0.ɵɵelementStart(0, "div", 5)(1, "button", 6);
517
- i0.ɵɵlistener("click", function TabbedDashboardComponent_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.openPreferencesDialog()); });
518
- i0.ɵɵelement(2, "i", 7);
519
- i0.ɵɵelementEnd();
520
- i0.ɵɵtemplate(3, TabbedDashboardComponent_Conditional_3_Template, 3, 0, "div", 8)(4, TabbedDashboardComponent_Conditional_4_Template, 2, 1, "div", 9)(5, TabbedDashboardComponent_Conditional_5_Template, 4, 1, "div", 10);
521
- i0.ɵɵelementEnd();
522
- i0.ɵɵelementStart(6, "div", 11, 0);
523
- i0.ɵɵprojection(8);
524
- i0.ɵɵelementEnd();
525
- } if (rf & 2) {
526
- i0.ɵɵproperty("rightMargin", 10)("bottomMargin", 10);
527
- i0.ɵɵadvance(3);
528
- i0.ɵɵconditional(ctx.loading ? 3 : -1);
529
- i0.ɵɵadvance();
530
- i0.ɵɵconditional(ctx.error ? 4 : -1);
531
- i0.ɵɵadvance();
532
- i0.ɵɵconditional(!ctx.loading && !ctx.error ? 5 : -1);
533
- } }, dependencies: [i2.LoaderComponent, i3.FillContainer, i4.MJTabStripComponent, i4.MJTabBodyComponent, i4.MJTabComponent], styles: [".tabbed-dashboard-container[_ngcontent-%COMP%] {\n border: solid 1px white;\n background-color: white;\n position: relative;\n}\n\n.preferences-button[_ngcontent-%COMP%] {\n position: absolute;\n top: 4px;\n right: 12px;\n z-index: 1000;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n width: 26px;\n height: 26px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.preferences-button[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #007bff;\n color: #007bff;\n box-shadow: 0 4px 8px rgba(0, 123, 255, 0.15);\n}\n\n.preferences-button[_ngcontent-%COMP%]:active {\n transform: translateY(1px);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.loading-indicator[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n font-size: 1.2rem;\n color: #666;\n}\n\n.error-message[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n font-size: 1.2rem;\n color: #d9534f;\n}\n\n.dashboard-container[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n overflow: auto;\n}\n\n.dashboard-instance-container[_ngcontent-%COMP%] {\n height: 100%;\n width: 100%;\n}\n\n.dashboard-placeholder[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n font-size: 1.2rem;\n color: #666;\n border: 1px dashed #ccc;\n padding: 20px;\n}\n\n.tab-icon[_ngcontent-%COMP%] {\n margin-right: 8px;\n}"] });
534
521
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TabbedDashboardComponent, [{
535
522
  type: Component,
536
523
  args: [{ selector: 'mj-tabbed-dashboard', template: "<div class=\"tabbed-dashboard-container\" mjFillContainer [rightMargin]=\"10\" [bottomMargin]=\"10\">\n <!-- Dashboard Preferences Button -->\n <button type=\"button\" \n class=\"preferences-button\"\n (click)=\"openPreferencesDialog()\"\n title=\"Dashboard Preferences\">\n <i class=\"fa-solid fa-cog\"></i>\n </button>\n\n @if (loading) {\n <div class=\"loading-indicator\">\n Loading dashboards...\n <kendo-loader></kendo-loader>\n </div>\n }\n \n @if (error) {\n <div class=\"error-message\">\n {{ error }}\n </div>\n }\n \n @if (!loading && !error) {\n <div #tabstripContainer mjFillContainer>\n @if (dashboards.length === 0) {\n <!-- Show default content without any tabs, if no dashboards are set for this user, cleaner this way -->\n <div #noTabsContainer></div>\n }\n @else {\n <!-- Show tab strip with dashboards -->\n <mj-tabstrip #tabstrip (TabSelected)=\"onTabSelect($event.index)\" mjFillContainer>\n <!-- Show default tab if no dashboards are available -->\n @if (DefaultDashboardPosition === 'first') {\n <mj-tab [Name]=\"DefaultTabName\">\n <span class=\"fa-solid tab-icon\"></span>\n {{ DefaultTabName }}\n </mj-tab>\n }\n \n <!-- Show dashboard tabs -->\n @for (dashboard of dashboards; track dashboard.ID; let i = $index) {\n <mj-tab [Name]=\"dashboard.Name\">\n <span class=\"fa-solid fa-grip tab-icon\"></span>\n {{ dashboard.Name }}\n </mj-tab>\n }\n\n @if (DefaultDashboardPosition === 'last') {\n <mj-tab [Name]=\"DefaultTabName\">\n <span class=\"fa-solid tab-icon\"></span>\n {{ DefaultTabName }}\n </mj-tab>\n }\n\n <!-- ****** -->\n <!-- TAB BODIES -->\n <!-- ****** -->\n \n <!-- Default tab body when it is shown first -->\n @if (DefaultDashboardPosition === 'first') {\n <mj-tab-body>\n <div class=\"dashboard-container\" mjFillContainer>\n <div #tabContainer mjFillContainer></div>\n </div>\n </mj-tab-body>\n }\n \n <!-- Dashboard tab bodies -->\n @for (dashboard of dashboards; track dashboard.ID; let i = $index) {\n <mj-tab-body>\n <div class=\"dashboard-container\" mjFillContainer>\n <div id=\"dashboard-{{ dashboard.ID }}\" class=\"dashboard-instance\" mjFillContainer>\n </div>\n </div>\n </mj-tab-body>\n }\n\n <!-- Default tab body, when it is shown last -->\n @if (DefaultDashboardPosition === 'last') {\n <mj-tab-body>\n <div class=\"dashboard-container\" mjFillContainer>\n <div #tabContainer mjFillContainer></div>\n </div>\n </mj-tab-body>\n }\n </mj-tabstrip>\n }\n </div>\n }\n</div>\n\n<!-- Single ng-content that will be moved programmatically -->\n<div #contentWrapper style=\"display: none;\">\n <ng-content></ng-content>\n</div>", styles: [".tabbed-dashboard-container {\n border: solid 1px white;\n background-color: white;\n position: relative;\n}\n\n.preferences-button {\n position: absolute;\n top: 4px;\n right: 12px;\n z-index: 1000;\n background: white;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n width: 26px;\n height: 26px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #666;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.preferences-button:hover {\n background: #f8f9fa;\n border-color: #007bff;\n color: #007bff;\n box-shadow: 0 4px 8px rgba(0, 123, 255, 0.15);\n}\n\n.preferences-button:active {\n transform: translateY(1px);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.loading-indicator {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n font-size: 1.2rem;\n color: #666;\n}\n\n.error-message {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n font-size: 1.2rem;\n color: #d9534f;\n}\n\n.dashboard-container {\n height: 100%;\n width: 100%;\n overflow: auto;\n}\n\n.dashboard-instance-container {\n height: 100%;\n width: 100%;\n}\n\n.dashboard-placeholder {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n font-size: 1.2rem;\n color: #666;\n border: 1px dashed #ccc;\n padding: 20px;\n}\n\n.tab-icon {\n margin-right: 8px;\n}"] }]
@@ -1 +1 @@
1
- {"version":3,"file":"tabbed-dashboard.component.js","sourceRoot":"","sources":["../../../src/lib/tabbed-dashboard/tabbed-dashboard.component.ts","../../../src/lib/tabbed-dashboard/tabbed-dashboard.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabbed-dashboard.component.js","sourceRoot":"","sources":["../../../src/lib/tabbed-dashboard/tabbed-dashboard.component.ts","../../../src/lib/tabbed-dashboard/tabbed-dashboard.component.html"],"names":[],"mappings":"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"}