@memberjunction/ng-explorer-core 2.132.0 → 3.0.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 (199) hide show
  1. package/dist/app-routing.module.d.ts.map +1 -1
  2. package/dist/app-routing.module.js +7 -2
  3. package/dist/app-routing.module.js.map +1 -1
  4. package/dist/generic/Events.types.d.ts +174 -0
  5. package/dist/generic/Events.types.d.ts.map +1 -0
  6. package/dist/generic/Events.types.js +220 -0
  7. package/dist/generic/Events.types.js.map +1 -0
  8. package/dist/lib/app-view/application-view.component.d.ts +65 -0
  9. package/dist/lib/app-view/application-view.component.d.ts.map +1 -0
  10. package/dist/lib/app-view/application-view.component.js +611 -0
  11. package/dist/lib/app-view/application-view.component.js.map +1 -0
  12. package/dist/lib/auth-button/auth-button.component.d.ts +13 -0
  13. package/dist/lib/auth-button/auth-button.component.d.ts.map +1 -0
  14. package/dist/lib/auth-button/auth-button.component.js +36 -0
  15. package/dist/lib/auth-button/auth-button.component.js.map +1 -0
  16. package/dist/lib/base-browser-component/base-browser-component.d.ts +44 -0
  17. package/dist/lib/base-browser-component/base-browser-component.d.ts.map +1 -0
  18. package/dist/lib/base-browser-component/base-browser-component.js +195 -0
  19. package/dist/lib/base-browser-component/base-browser-component.js.map +1 -0
  20. package/dist/lib/chat-wrapper/chat-wrapper.component.d.ts +54 -0
  21. package/dist/lib/chat-wrapper/chat-wrapper.component.d.ts.map +1 -0
  22. package/dist/lib/chat-wrapper/chat-wrapper.component.js +257 -0
  23. package/dist/lib/chat-wrapper/chat-wrapper.component.js.map +1 -0
  24. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts +32 -0
  25. package/dist/lib/dashboard-browser-component/dashboard-browser.component.d.ts.map +1 -0
  26. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js +244 -0
  27. package/dist/lib/dashboard-browser-component/dashboard-browser.component.js.map +1 -0
  28. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js +2 -2
  29. package/dist/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.js.map +1 -1
  30. package/dist/lib/data-browser-component/data-browser.component.d.ts +23 -0
  31. package/dist/lib/data-browser-component/data-browser.component.d.ts.map +1 -0
  32. package/dist/lib/data-browser-component/data-browser.component.js +267 -0
  33. package/dist/lib/data-browser-component/data-browser.component.js.map +1 -0
  34. package/dist/lib/expansion-panel-component/expansion-panel-component.d.ts +21 -0
  35. package/dist/lib/expansion-panel-component/expansion-panel-component.d.ts.map +1 -0
  36. package/dist/lib/expansion-panel-component/expansion-panel-component.js +158 -0
  37. package/dist/lib/expansion-panel-component/expansion-panel-component.js.map +1 -0
  38. package/dist/lib/favorites/favorites.component.d.ts +15 -0
  39. package/dist/lib/favorites/favorites.component.d.ts.map +1 -0
  40. package/dist/lib/favorites/favorites.component.js +135 -0
  41. package/dist/lib/favorites/favorites.component.js.map +1 -0
  42. package/dist/lib/files/files.component.d.ts +10 -0
  43. package/dist/lib/files/files.component.d.ts.map +1 -0
  44. package/dist/lib/files/files.component.js +41 -0
  45. package/dist/lib/files/files.component.js.map +1 -0
  46. package/dist/lib/generic/form-toolbar.js +2 -2
  47. package/dist/lib/generic/form-toolbar.js.map +1 -1
  48. package/dist/lib/generic/resource-container-component.js +2 -2
  49. package/dist/lib/generic/resource-container-component.js.map +1 -1
  50. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts +30 -0
  51. package/dist/lib/generic-browse-list/generic-browse-list.component.d.ts.map +1 -0
  52. package/dist/lib/generic-browse-list/generic-browse-list.component.js +171 -0
  53. package/dist/lib/generic-browse-list/generic-browse-list.component.js.map +1 -0
  54. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts +120 -0
  55. package/dist/lib/generic-browser-list/generic-browser-list.component.d.ts.map +1 -0
  56. package/dist/lib/generic-browser-list/generic-browser-list.component.js +1093 -0
  57. package/dist/lib/generic-browser-list/generic-browser-list.component.js.map +1 -0
  58. package/dist/lib/guards/auth-guard.service.js +1 -1
  59. package/dist/lib/guards/auth-guard.service.js.map +1 -1
  60. package/dist/lib/header/MSFT_UserImageService.d.ts +12 -0
  61. package/dist/lib/header/MSFT_UserImageService.d.ts.map +1 -0
  62. package/dist/lib/header/MSFT_UserImageService.js +25 -0
  63. package/dist/lib/header/MSFT_UserImageService.js.map +1 -0
  64. package/dist/lib/header/header.component.d.ts +69 -0
  65. package/dist/lib/header/header.component.d.ts.map +1 -0
  66. package/dist/lib/header/header.component.js +342 -0
  67. package/dist/lib/header/header.component.js.map +1 -0
  68. package/dist/lib/home-component/home.component.d.ts +22 -0
  69. package/dist/lib/home-component/home.component.d.ts.map +1 -0
  70. package/dist/lib/home-component/home.component.js +194 -0
  71. package/dist/lib/home-component/home.component.js.map +1 -0
  72. package/dist/lib/home-wrapper/home-wrapper.component.d.ts +7 -0
  73. package/dist/lib/home-wrapper/home-wrapper.component.d.ts.map +1 -0
  74. package/dist/lib/home-wrapper/home-wrapper.component.js +30 -0
  75. package/dist/lib/home-wrapper/home-wrapper.component.js.map +1 -0
  76. package/dist/lib/list-view/list-view.component.d.ts +45 -0
  77. package/dist/lib/list-view/list-view.component.d.ts.map +1 -0
  78. package/dist/lib/list-view/list-view.component.js +329 -0
  79. package/dist/lib/list-view/list-view.component.js.map +1 -0
  80. package/dist/lib/navigation/navigation.component.d.ts +142 -0
  81. package/dist/lib/navigation/navigation.component.d.ts.map +1 -0
  82. package/dist/lib/navigation/navigation.component.js +1212 -0
  83. package/dist/lib/navigation/navigation.component.js.map +1 -0
  84. package/dist/lib/query-browser-component/query-browser.component.d.ts +75 -0
  85. package/dist/lib/query-browser-component/query-browser.component.d.ts.map +1 -0
  86. package/dist/lib/query-browser-component/query-browser.component.js +908 -0
  87. package/dist/lib/query-browser-component/query-browser.component.js.map +1 -0
  88. package/dist/lib/report-browser-component/report-browser.component.d.ts +22 -0
  89. package/dist/lib/report-browser-component/report-browser.component.d.ts.map +1 -0
  90. package/dist/lib/report-browser-component/report-browser.component.js +80 -0
  91. package/dist/lib/report-browser-component/report-browser.component.js.map +1 -0
  92. package/dist/lib/resource-browser/resource-browser.component.d.ts +178 -0
  93. package/dist/lib/resource-browser/resource-browser.component.d.ts.map +1 -0
  94. package/dist/lib/resource-browser/resource-browser.component.js +1012 -0
  95. package/dist/lib/resource-browser/resource-browser.component.js.map +1 -0
  96. package/dist/lib/resource-wrappers/artifact-resource.component.js +2 -2
  97. package/dist/lib/resource-wrappers/artifact-resource.component.js.map +1 -1
  98. package/dist/lib/resource-wrappers/chat-collections-resource.component.js +2 -2
  99. package/dist/lib/resource-wrappers/chat-collections-resource.component.js.map +1 -1
  100. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js +2 -2
  101. package/dist/lib/resource-wrappers/chat-conversations-resource.component.js.map +1 -1
  102. package/dist/lib/resource-wrappers/chat-tasks-resource.component.js +2 -2
  103. package/dist/lib/resource-wrappers/chat-tasks-resource.component.js.map +1 -1
  104. package/dist/lib/resource-wrappers/dashboard-resource.component.js +2 -2
  105. package/dist/lib/resource-wrappers/dashboard-resource.component.js.map +1 -1
  106. package/dist/lib/resource-wrappers/list-detail-resource.component.js +2 -2
  107. package/dist/lib/resource-wrappers/list-detail-resource.component.js.map +1 -1
  108. package/dist/lib/resource-wrappers/notifications-resource.component.js +2 -2
  109. package/dist/lib/resource-wrappers/notifications-resource.component.js.map +1 -1
  110. package/dist/lib/resource-wrappers/query-resource.component.js +2 -2
  111. package/dist/lib/resource-wrappers/query-resource.component.js.map +1 -1
  112. package/dist/lib/resource-wrappers/record-resource.component.js +2 -2
  113. package/dist/lib/resource-wrappers/record-resource.component.js.map +1 -1
  114. package/dist/lib/resource-wrappers/report-resource.component.d.ts +13 -0
  115. package/dist/lib/resource-wrappers/report-resource.component.d.ts.map +1 -0
  116. package/dist/lib/resource-wrappers/report-resource.component.js +49 -0
  117. package/dist/lib/resource-wrappers/report-resource.component.js.map +1 -0
  118. package/dist/lib/resource-wrappers/search-results-resource.component.js +2 -2
  119. package/dist/lib/resource-wrappers/search-results-resource.component.js.map +1 -1
  120. package/dist/lib/resource-wrappers/view-resource.component.js +2 -2
  121. package/dist/lib/resource-wrappers/view-resource.component.js.map +1 -1
  122. package/dist/lib/services/startup-validation.service.js +1 -1
  123. package/dist/lib/services/startup-validation.service.js.map +1 -1
  124. package/dist/lib/services/system-validation.service.js +1 -1
  125. package/dist/lib/services/system-validation.service.js.map +1 -1
  126. package/dist/lib/shared/custom-icon/custom-icon.component.d.ts +11 -0
  127. package/dist/lib/shared/custom-icon/custom-icon.component.d.ts.map +1 -0
  128. package/dist/lib/shared/custom-icon/custom-icon.component.js +44 -0
  129. package/dist/lib/shared/custom-icon/custom-icon.component.js.map +1 -0
  130. package/dist/lib/shell/components/dialogs/app-access-dialog.component.js +2 -2
  131. package/dist/lib/shell/components/dialogs/app-access-dialog.component.js.map +1 -1
  132. package/dist/lib/shell/components/header/app-nav.component.js +2 -2
  133. package/dist/lib/shell/components/header/app-nav.component.js.map +1 -1
  134. package/dist/lib/shell/components/header/app-switcher.component.js +2 -2
  135. package/dist/lib/shell/components/header/app-switcher.component.js.map +1 -1
  136. package/dist/lib/shell/components/tabs/tab-container.component.d.ts +1 -0
  137. package/dist/lib/shell/components/tabs/tab-container.component.d.ts.map +1 -1
  138. package/dist/lib/shell/components/tabs/tab-container.component.js +34 -37
  139. package/dist/lib/shell/components/tabs/tab-container.component.js.map +1 -1
  140. package/dist/lib/shell/services/settings-dialog.service.js +1 -1
  141. package/dist/lib/shell/services/settings-dialog.service.js.map +1 -1
  142. package/dist/lib/shell/shell.component.d.ts.map +1 -1
  143. package/dist/lib/shell/shell.component.js +5 -2
  144. package/dist/lib/shell/shell.component.js.map +1 -1
  145. package/dist/lib/shell/shell.module.js +1 -1
  146. package/dist/lib/shell/shell.module.js.map +1 -1
  147. package/dist/lib/single-application/single-application.component.d.ts +24 -0
  148. package/dist/lib/single-application/single-application.component.d.ts.map +1 -0
  149. package/dist/lib/single-application/single-application.component.js +122 -0
  150. package/dist/lib/single-application/single-application.component.js.map +1 -0
  151. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js +2 -2
  152. package/dist/lib/single-dashboard/Components/add-item/add-item.component.js.map +1 -1
  153. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js +2 -2
  154. package/dist/lib/single-dashboard/Components/delete-item/delete-item.component.js.map +1 -1
  155. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js +2 -2
  156. package/dist/lib/single-dashboard/Components/edit-dashboard/edit-dashboard.component.js.map +1 -1
  157. package/dist/lib/single-dashboard/single-dashboard.component.js +2 -2
  158. package/dist/lib/single-dashboard/single-dashboard.component.js.map +1 -1
  159. package/dist/lib/single-entity/single-entity.component.d.ts +34 -0
  160. package/dist/lib/single-entity/single-entity.component.d.ts.map +1 -0
  161. package/dist/lib/single-entity/single-entity.component.js +245 -0
  162. package/dist/lib/single-entity/single-entity.component.js.map +1 -0
  163. package/dist/lib/single-list-detail/single-list-detail.component.d.ts +69 -51
  164. package/dist/lib/single-list-detail/single-list-detail.component.d.ts.map +1 -1
  165. package/dist/lib/single-list-detail/single-list-detail.component.js +734 -465
  166. package/dist/lib/single-list-detail/single-list-detail.component.js.map +1 -1
  167. package/dist/lib/single-query/single-query.component.js +2 -2
  168. package/dist/lib/single-query/single-query.component.js.map +1 -1
  169. package/dist/lib/single-record/single-record.component.js +2 -2
  170. package/dist/lib/single-record/single-record.component.js.map +1 -1
  171. package/dist/lib/single-report/single-report.component.d.ts +17 -0
  172. package/dist/lib/single-report/single-report.component.d.ts.map +1 -0
  173. package/dist/lib/single-report/single-report.component.js +55 -0
  174. package/dist/lib/single-report/single-report.component.js.map +1 -0
  175. package/dist/lib/single-search-result/single-search-result.component.js +2 -2
  176. package/dist/lib/single-search-result/single-search-result.component.js.map +1 -1
  177. package/dist/lib/single-view/single-view.component.d.ts +43 -0
  178. package/dist/lib/single-view/single-view.component.d.ts.map +1 -0
  179. package/dist/lib/single-view/single-view.component.js +207 -0
  180. package/dist/lib/single-view/single-view.component.js.map +1 -0
  181. package/dist/lib/style-guide-test/style-guide-test.component.d.ts +70 -0
  182. package/dist/lib/style-guide-test/style-guide-test.component.d.ts.map +1 -0
  183. package/dist/lib/style-guide-test/style-guide-test.component.js +1024 -0
  184. package/dist/lib/style-guide-test/style-guide-test.component.js.map +1 -0
  185. package/dist/lib/system-validation/system-validation-banner.component.js +2 -2
  186. package/dist/lib/system-validation/system-validation-banner.component.js.map +1 -1
  187. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts +46 -0
  188. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.d.ts.map +1 -0
  189. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js +547 -0
  190. package/dist/lib/tabbed-dashboard/tabbed-dashboard.component.js.map +1 -0
  191. package/dist/lib/user-notifications/user-notifications.component.js +2 -2
  192. package/dist/lib/user-notifications/user-notifications.component.js.map +1 -1
  193. package/dist/lib/user-profile/user-profile.component.js +2 -2
  194. package/dist/lib/user-profile/user-profile.component.js.map +1 -1
  195. package/dist/module.d.ts +2 -1
  196. package/dist/module.d.ts.map +1 -1
  197. package/dist/module.js +8 -4
  198. package/dist/module.js.map +1 -1
  199. package/package.json +44 -43
@@ -0,0 +1,257 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component } from '@angular/core';
8
+ import { Metadata, CompositeKey } from '@memberjunction/core';
9
+ import { RegisterClass } from '@memberjunction/global';
10
+ import { EnvironmentEntityExtended } from '@memberjunction/core-entities';
11
+ import { BaseNavigationComponent, SharedService } from '@memberjunction/ng-shared';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/router";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "@memberjunction/ng-conversations";
16
+ function ChatWrapperComponent_div_0_Template(rf, ctx) { if (rf & 1) {
17
+ const _r1 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "div", 1)(1, "mj-conversation-workspace", 2);
19
+ i0.ɵɵlistener("navigationChanged", function ChatWrapperComponent_div_0_Template_mj_conversation_workspace_navigationChanged_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onNavigationChanged($event)); })("newConversationStarted", function ChatWrapperComponent_div_0_Template_mj_conversation_workspace_newConversationStarted_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onNewConversationStarted()); })("actionableCommandExecuted", function ChatWrapperComponent_div_0_Template_mj_conversation_workspace_actionableCommandExecuted_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onActionableCommand($event)); })("automaticCommandExecuted", function ChatWrapperComponent_div_0_Template_mj_conversation_workspace_automaticCommandExecuted_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onAutomaticCommand($event)); });
20
+ i0.ɵɵelementEnd()();
21
+ } if (rf & 2) {
22
+ const ctx_r1 = i0.ɵɵnextContext();
23
+ i0.ɵɵadvance();
24
+ i0.ɵɵproperty("environmentId", ctx_r1.environmentId)("initialConversationId", ctx_r1.conversationId)("currentUser", ctx_r1.currentUser)("layout", "full")("activeContext", ctx_r1.activeContext)("contextItemId", ctx_r1.contextItemId)("activeTabInput", ctx_r1.activeTab)("activeConversationInput", ctx_r1.activeConversationId)("activeCollectionInput", ctx_r1.activeCollectionId)("activeVersionIdInput", ctx_r1.activeVersionId)("activeTaskInput", ctx_r1.activeTaskId);
25
+ } }
26
+ /**
27
+ * Wrapper component for the conversations interface within MJ Explorer
28
+ * Integrates the generic @memberjunction/ng-conversations package with Explorer routing
29
+ * Handles route params for conversation, library, and task context
30
+ */
31
+ let ChatWrapperComponent = class ChatWrapperComponent {
32
+ route;
33
+ router;
34
+ environmentId = '';
35
+ conversationId;
36
+ activeContext;
37
+ contextItemId;
38
+ currentUser = null;
39
+ // Navigation state from route params
40
+ activeTab;
41
+ activeConversationId;
42
+ activeCollectionId;
43
+ activeVersionId;
44
+ activeTaskId;
45
+ constructor(route, router) {
46
+ this.route = route;
47
+ this.router = router;
48
+ }
49
+ ngOnInit() {
50
+ const md = new Metadata();
51
+ this.currentUser = md.CurrentUser;
52
+ this.environmentId = EnvironmentEntityExtended.DefaultEnvironmentID;
53
+ // Subscribe to route params for conversation and context navigation
54
+ this.route.params.subscribe(params => {
55
+ if (params['conversationId']) {
56
+ this.conversationId = params['conversationId'];
57
+ }
58
+ // Handle context (library or task) and contextItemId
59
+ if (params['context']) {
60
+ const context = params['context'];
61
+ if (context === 'library' || context === 'task') {
62
+ this.activeContext = context;
63
+ }
64
+ }
65
+ else {
66
+ this.activeContext = undefined;
67
+ }
68
+ if (params['itemId']) {
69
+ this.contextItemId = params['itemId'];
70
+ }
71
+ else {
72
+ this.contextItemId = undefined;
73
+ }
74
+ });
75
+ // Subscribe to query params for navigation state (tab, activeTaskId, etc.)
76
+ this.route.queryParams.subscribe(queryParams => {
77
+ // Parse navigation properties from query params
78
+ if (queryParams['tab']) {
79
+ const tab = queryParams['tab'];
80
+ if (tab === 'conversations' || tab === 'collections' || tab === 'tasks') {
81
+ this.activeTab = tab;
82
+ }
83
+ }
84
+ // Parse entity-specific IDs based on active tab
85
+ this.activeConversationId = queryParams['activeConversationId'];
86
+ this.activeCollectionId = queryParams['activeCollectionId'];
87
+ this.activeVersionId = queryParams['activeVersionId'];
88
+ this.activeTaskId = queryParams['activeTaskId'];
89
+ });
90
+ }
91
+ /**
92
+ * Handle new conversation started event
93
+ * Clears conversation-specific URL parameters when user clicks "New Conversation"
94
+ */
95
+ onNewConversationStarted() {
96
+ console.log('🆕 New conversation started - clearing URL params');
97
+ // Clear local state
98
+ this.activeConversationId = undefined;
99
+ // Update URL to remove conversation ID, keeping only tab parameter
100
+ this.router.navigate([], {
101
+ relativeTo: this.route,
102
+ queryParams: {
103
+ tab: 'conversations'
104
+ },
105
+ replaceUrl: false // Add to browser history
106
+ });
107
+ }
108
+ /**
109
+ * Handle navigation changes from conversation workspace
110
+ * Update route params to reflect navigation state for browser history/deep linking
111
+ */
112
+ onNavigationChanged(event) {
113
+ // Update local state
114
+ this.activeTab = event.tab;
115
+ this.activeConversationId = event.conversationId;
116
+ this.activeCollectionId = event.collectionId;
117
+ this.activeVersionId = event.versionId;
118
+ this.activeTaskId = event.taskId;
119
+ // Build query params based on active tab
120
+ // IMPORTANT: Only include params relevant to the current tab
121
+ // This prevents parameter accumulation across different contexts
122
+ const queryParams = {
123
+ tab: event.tab
124
+ };
125
+ if (event.tab === 'conversations' && event.conversationId) {
126
+ queryParams.activeConversationId = event.conversationId;
127
+ }
128
+ else if (event.tab === 'collections') {
129
+ // Only add collection/version IDs if they exist
130
+ if (event.collectionId) {
131
+ queryParams.activeCollectionId = event.collectionId;
132
+ }
133
+ if (event.versionId) {
134
+ queryParams.activeVersionId = event.versionId;
135
+ }
136
+ }
137
+ else if (event.tab === 'tasks' && event.taskId) {
138
+ queryParams.activeTaskId = event.taskId;
139
+ }
140
+ // Update URL without reloading the page
141
+ // NOTE: We don't use 'merge' here because we want to REPLACE query params entirely
142
+ // This ensures switching tabs clears irrelevant parameters from previous contexts
143
+ this.router.navigate([], {
144
+ relativeTo: this.route,
145
+ queryParams: queryParams,
146
+ replaceUrl: false // Add to browser history for back/forward navigation
147
+ });
148
+ }
149
+ /**
150
+ * Handle actionable commands from agents and UI interactions
151
+ * Routes commands to appropriate Explorer services (SharedService for entity records, etc.)
152
+ */
153
+ onActionableCommand(command) {
154
+ console.log('🎯 Explorer handling actionable command:', command);
155
+ if (command.type === 'open:resource') {
156
+ // Handle opening MJ resources using SharedService
157
+ const { resourceType, resourceId, entityName, mode } = command;
158
+ if (resourceType === 'Record') {
159
+ // Open entity record using SharedService
160
+ if (!entityName) {
161
+ console.error('entityName is required for Record type commands');
162
+ return;
163
+ }
164
+ const compositeKey = new CompositeKey([{ FieldName: 'ID', Value: resourceId }]);
165
+ SharedService.Instance.OpenEntityRecord(entityName, compositeKey);
166
+ }
167
+ else {
168
+ // For other resource types (Dashboard, Report, Form, View), navigate using Router
169
+ const routeMap = {
170
+ 'Dashboard': '/dashboard',
171
+ 'Report': '/report',
172
+ 'Form': '/form',
173
+ 'View': '/view'
174
+ };
175
+ const basePath = routeMap[resourceType];
176
+ if (basePath) {
177
+ const queryParams = command.parameters || {};
178
+ if (mode) {
179
+ queryParams['mode'] = mode;
180
+ }
181
+ this.router.navigate([`${basePath}/${resourceId}`], { queryParams });
182
+ }
183
+ else {
184
+ console.warn('Unknown resource type:', resourceType);
185
+ }
186
+ }
187
+ }
188
+ else if (command.type === 'open:url') {
189
+ // Handle opening external URLs
190
+ const { url, newTab } = command;
191
+ if (newTab !== false) {
192
+ // Open in new tab (default behavior)
193
+ window.open(url, '_blank', 'noopener,noreferrer');
194
+ }
195
+ else {
196
+ // Navigate in current window
197
+ window.location.href = url;
198
+ }
199
+ }
200
+ }
201
+ /**
202
+ * Handle automatic commands from agents
203
+ * Shows notifications using SharedService notification system
204
+ */
205
+ onAutomaticCommand(command) {
206
+ console.log('🎯 Explorer handling automatic command:', command);
207
+ if (command.type === 'notification') {
208
+ // Show notification using SharedService
209
+ const { message, severity, duration } = command;
210
+ // Map severity to SharedService notification types
211
+ const typeMap = {
212
+ 'success': 'success',
213
+ 'info': 'info',
214
+ 'warning': 'warning',
215
+ 'error': 'error'
216
+ };
217
+ const notificationType = typeMap[severity || 'info'] || 'info';
218
+ SharedService.Instance.CreateSimpleNotification(message, notificationType, duration || 3000);
219
+ }
220
+ }
221
+ static ɵfac = function ChatWrapperComponent_Factory(t) { return new (t || ChatWrapperComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router)); };
222
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChatWrapperComponent, selectors: [["mj-chat-wrapper"]], decls: 1, vars: 1, consts: [["class", "chat-wrapper", 4, "ngIf"], [1, "chat-wrapper"], [3, "navigationChanged", "newConversationStarted", "actionableCommandExecuted", "automaticCommandExecuted", "environmentId", "initialConversationId", "currentUser", "layout", "activeContext", "contextItemId", "activeTabInput", "activeConversationInput", "activeCollectionInput", "activeVersionIdInput", "activeTaskInput"]], template: function ChatWrapperComponent_Template(rf, ctx) { if (rf & 1) {
223
+ i0.ɵɵtemplate(0, ChatWrapperComponent_div_0_Template, 2, 11, "div", 0);
224
+ } if (rf & 2) {
225
+ i0.ɵɵproperty("ngIf", ctx.currentUser);
226
+ } }, dependencies: [i2.NgIf, i3.ConversationWorkspaceComponent], styles: [".chat-wrapper[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }"] });
227
+ };
228
+ ChatWrapperComponent = __decorate([
229
+ RegisterClass(BaseNavigationComponent, 'Chat')
230
+ ], ChatWrapperComponent);
231
+ export { ChatWrapperComponent };
232
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatWrapperComponent, [{
233
+ type: Component,
234
+ args: [{ selector: 'mj-chat-wrapper', template: `
235
+ <div class="chat-wrapper" *ngIf="currentUser">
236
+ <mj-conversation-workspace
237
+ [environmentId]="environmentId"
238
+ [initialConversationId]="conversationId"
239
+ [currentUser]="currentUser"
240
+ [layout]="'full'"
241
+ [activeContext]="activeContext"
242
+ [contextItemId]="contextItemId"
243
+ [activeTabInput]="activeTab"
244
+ [activeConversationInput]="activeConversationId"
245
+ [activeCollectionInput]="activeCollectionId"
246
+ [activeVersionIdInput]="activeVersionId"
247
+ [activeTaskInput]="activeTaskId"
248
+ (navigationChanged)="onNavigationChanged($event)"
249
+ (newConversationStarted)="onNewConversationStarted()"
250
+ (actionableCommandExecuted)="onActionableCommand($event)"
251
+ (automaticCommandExecuted)="onAutomaticCommand($event)">
252
+ </mj-conversation-workspace>
253
+ </div>
254
+ `, styles: ["\n .chat-wrapper {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n "] }]
255
+ }], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }], null); })();
256
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChatWrapperComponent, { className: "ChatWrapperComponent" }); })();
257
+ //# sourceMappingURL=chat-wrapper.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-wrapper.component.js","sourceRoot":"","sources":["../../../src/lib/chat-wrapper/chat-wrapper.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ActivatedRoute, Router } from '@angular/router';
2
+ import { SharedService } from '@memberjunction/ng-shared';
3
+ import { Item, NewItemOption } from '../../generic/Item.types';
4
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
5
+ import { DashboardEntityExtended } from '@memberjunction/core-entities';
6
+ import { BeforeUpdateItemEvent } from '../../generic/Events.types';
7
+ import { ResourceBrowserComponent } from '../resource-browser/resource-browser.component';
8
+ import * as i0 from "@angular/core";
9
+ export declare class DashboardBrowserComponent extends BaseBrowserComponent {
10
+ private router;
11
+ private route;
12
+ private sharedService;
13
+ resourceBrowser: ResourceBrowserComponent | null;
14
+ upsertDashboardDialogVisible: boolean;
15
+ upsertDashboardName: string;
16
+ upsertDashboardDescription: string;
17
+ selectedDashboard: DashboardEntityExtended | null;
18
+ NewItemOptions: NewItemOption[];
19
+ constructor(router: Router, route: ActivatedRoute, sharedService: SharedService);
20
+ ngOnInit(): Promise<void>;
21
+ onItemClick(item: Item): void;
22
+ navigateToParentFolder(): Promise<void>;
23
+ onBeforeUpdateItemEvent(event: BeforeUpdateItemEvent): void;
24
+ toggleUpsertDashboardDialog(visible: boolean): void;
25
+ createDashboard(): Promise<void>;
26
+ updateDashboard(): Promise<void>;
27
+ onUpsertDashboardNameKeyup(value: string): void;
28
+ onUpsertDashboardDescriptionKeyup(value: string): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<DashboardBrowserComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<DashboardBrowserComponent, "app-dashboard-browser", never, {}, {}, never, never, false, never>;
31
+ }
32
+ //# sourceMappingURL=dashboard-browser.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-browser.component.d.ts","sourceRoot":"","sources":["../../../src/lib/dashboard-browser-component/dashboard-browser.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAA2B,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,IAAI,EAAY,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAA+B,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;;AAE1F,qBAMa,yBAA0B,SAAQ,oBAAoB;IA2BrD,OAAO,CAAC,MAAM;IAAU,OAAO,CAAC,KAAK;IAAkB,OAAO,CAAC,aAAa;IAzBjD,eAAe,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAExF,4BAA4B,EAAE,OAAO,CAAS;IAC9C,mBAAmB,EAAE,MAAM,CAAM;IACjC,0BAA0B,EAAE,MAAM,CAAM;IACxC,iBAAiB,EAAE,uBAAuB,GAAG,IAAI,CAAQ;IAEzD,cAAc,EAAE,aAAa,EAAE,CAgBjC;gBAEe,MAAM,EAAE,MAAM,EAAU,KAAK,EAAE,cAAc,EAAU,aAAa,EAAE,aAAa;IAajG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,WAAW,CAAC,IAAI,EAAE,IAAI;IAYhB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB7C,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAS3D,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAc7C,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAiChC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBtC,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,iCAAiC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;yCAvKlD,yBAAyB;2CAAzB,yBAAyB;CA0KrC"}
@@ -0,0 +1,244 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, ViewChild } from '@angular/core';
8
+ import { BaseNavigationComponent } from '@memberjunction/ng-shared';
9
+ import { ItemType } from '../../generic/Item.types';
10
+ import { BaseBrowserComponent } from '../base-browser-component/base-browser-component';
11
+ import { RegisterClass } from '@memberjunction/global';
12
+ import { LogError, Metadata, RunView } from '@memberjunction/core';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/router";
15
+ import * as i2 from "@memberjunction/ng-shared";
16
+ import * as i3 from "@angular/common";
17
+ import * as i4 from "@progress/kendo-angular-dialog";
18
+ import * as i5 from "@progress/kendo-angular-buttons";
19
+ import * as i6 from "@progress/kendo-angular-inputs";
20
+ import * as i7 from "@progress/kendo-angular-label";
21
+ import * as i8 from "../resource-browser/resource-browser.component";
22
+ const _c0 = ["resourceBrowserDashboard"];
23
+ function DashboardBrowserComponent_kendo_dialog_3_Template(rf, ctx) { if (rf & 1) {
24
+ const _r2 = i0.ɵɵgetCurrentView();
25
+ i0.ɵɵelementStart(0, "kendo-dialog", 6);
26
+ i0.ɵɵlistener("close", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_dialog_close_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleUpsertDashboardDialog(false)); });
27
+ i0.ɵɵelementStart(1, "kendo-formfield", 7);
28
+ i0.ɵɵelement(2, "kendo-label", 8);
29
+ i0.ɵɵelementStart(3, "kendo-textbox", 9, 1);
30
+ i0.ɵɵlistener("valueChange", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_textbox_valueChange_3_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpsertDashboardNameKeyup($event)); });
31
+ i0.ɵɵelementEnd()();
32
+ i0.ɵɵelementStart(5, "kendo-formfield", 10);
33
+ i0.ɵɵelement(6, "kendo-label", 11);
34
+ i0.ɵɵelementStart(7, "kendo-textbox", 12, 2);
35
+ i0.ɵɵlistener("valueChange", function DashboardBrowserComponent_kendo_dialog_3_Template_kendo_textbox_valueChange_7_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onUpsertDashboardDescriptionKeyup($event)); });
36
+ i0.ɵɵelementEnd()();
37
+ i0.ɵɵelementStart(9, "kendo-dialog-actions")(10, "button", 13);
38
+ i0.ɵɵlistener("click", function DashboardBrowserComponent_kendo_dialog_3_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectedDashboard ? ctx_r2.updateDashboard() : ctx_r2.createDashboard()); });
39
+ i0.ɵɵelementStart(11, "span", 14);
40
+ i0.ɵɵelement(12, "i", 15);
41
+ i0.ɵɵtext(13);
42
+ i0.ɵɵelementEnd()();
43
+ i0.ɵɵelementStart(14, "button", 16);
44
+ i0.ɵɵlistener("click", function DashboardBrowserComponent_kendo_dialog_3_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.toggleUpsertDashboardDialog(false)); });
45
+ i0.ɵɵelementStart(15, "span", 14);
46
+ i0.ɵɵelement(16, "i", 17);
47
+ i0.ɵɵtext(17, " Cancel ");
48
+ i0.ɵɵelementEnd()()()();
49
+ } if (rf & 2) {
50
+ const dashboardNameInput_r4 = i0.ɵɵreference(4);
51
+ const dashboardDescInput_r5 = i0.ɵɵreference(8);
52
+ const ctx_r2 = i0.ɵɵnextContext();
53
+ i0.ɵɵproperty("title", ctx_r2.selectedDashboard ? "Update Dashboard" : "Create New Dashboard")("minWidth", 400)("width", 500);
54
+ i0.ɵɵadvance(2);
55
+ i0.ɵɵproperty("for", dashboardNameInput_r4);
56
+ i0.ɵɵadvance();
57
+ i0.ɵɵproperty("value", ctx_r2.upsertDashboardName)("clearButton", true);
58
+ i0.ɵɵadvance(3);
59
+ i0.ɵɵproperty("for", dashboardDescInput_r5);
60
+ i0.ɵɵadvance();
61
+ i0.ɵɵproperty("value", ctx_r2.upsertDashboardDescription)("clearButton", true);
62
+ i0.ɵɵadvance(6);
63
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.selectedDashboard ? "Update" : "Create", " ");
64
+ } }
65
+ let DashboardBrowserComponent = class DashboardBrowserComponent extends BaseBrowserComponent {
66
+ router;
67
+ route;
68
+ sharedService;
69
+ resourceBrowser = null;
70
+ upsertDashboardDialogVisible = false;
71
+ upsertDashboardName = "";
72
+ upsertDashboardDescription = "";
73
+ selectedDashboard = null;
74
+ NewItemOptions = [
75
+ {
76
+ Text: 'New Dashboard',
77
+ Description: 'Create a new Dashboard',
78
+ Icon: 'dashboard',
79
+ Action: () => {
80
+ // Initialize a new dashboard entity for creation
81
+ const md = new Metadata();
82
+ this.selectedDashboard = null; // Reset any existing selection
83
+ this.toggleUpsertDashboardDialog(true);
84
+ // Set focus on the name input field when dialog opens
85
+ setTimeout(() => {
86
+ const inputElement = document.querySelector('.dashboard-name-input input');
87
+ if (inputElement)
88
+ inputElement.focus();
89
+ }, 100);
90
+ }
91
+ }
92
+ ];
93
+ constructor(router, route, sharedService) {
94
+ super();
95
+ this.router = router;
96
+ this.route = route;
97
+ this.sharedService = sharedService;
98
+ this.pageName = "Dashboards";
99
+ this.routeName = "dashboards";
100
+ this.routeNameSingular = "dashboard";
101
+ this.itemEntityName = "Dashboards";
102
+ this.categoryEntityName = "Dashboard Categories";
103
+ const params = this.router.getCurrentNavigation()?.extractedUrl.queryParams;
104
+ super.InitPathAndQueryData(params, this.route);
105
+ }
106
+ async ngOnInit() {
107
+ super.InitForResource(this.route);
108
+ }
109
+ //this and the onBeforeUpdateItemEvent function could exist in the
110
+ //BaseBrowserComponent class, but the class would need
111
+ //a reference or dependency on the router
112
+ //which i dont think is needed
113
+ onItemClick(item) {
114
+ let dataID = "";
115
+ console.log(item);
116
+ if (item.Type === ItemType.Resource) {
117
+ let dashboard = item.Data;
118
+ dataID = dashboard.FirstPrimaryKey.Value;
119
+ }
120
+ super.Navigate(item, this.router, dataID);
121
+ }
122
+ async navigateToParentFolder() {
123
+ if (this.selectedFolderID) {
124
+ const rv = new RunView();
125
+ const parentResult = await rv.RunView({
126
+ EntityName: "Dashboard Categories",
127
+ ExtraFilter: `ID='${this.selectedFolderID}'`,
128
+ });
129
+ if (parentResult && parentResult.Success && parentResult.Results.length > 0) {
130
+ const parentCategory = parentResult.Results[0];
131
+ if (!parentCategory.ParentID) {
132
+ return;
133
+ }
134
+ this.selectedFolderID = parentCategory.ParentID;
135
+ const route = [this.routeName, this.selectedFolderID];
136
+ this.router.navigate(route, { queryParams: { viewMode: this.viewMode } });
137
+ }
138
+ }
139
+ }
140
+ onBeforeUpdateItemEvent(event) {
141
+ event.Cancel = true;
142
+ let item = event.Item;
143
+ let dashboard = item.Data;
144
+ this.selectedDashboard = dashboard;
145
+ this.toggleUpsertDashboardDialog(true);
146
+ }
147
+ toggleUpsertDashboardDialog(visible) {
148
+ this.upsertDashboardDialogVisible = visible;
149
+ if (visible) {
150
+ if (this.selectedDashboard) {
151
+ this.upsertDashboardName = this.selectedDashboard.Name;
152
+ this.upsertDashboardDescription = this.selectedDashboard.Description || "";
153
+ }
154
+ else {
155
+ this.upsertDashboardName = "";
156
+ this.upsertDashboardDescription = "";
157
+ }
158
+ }
159
+ }
160
+ async createDashboard() {
161
+ // Validate input
162
+ if (!this.upsertDashboardName || this.upsertDashboardName.trim() === '') {
163
+ this.sharedService.CreateSimpleNotification('Dashboard name is required', 'warning', 2500);
164
+ return;
165
+ }
166
+ const md = new Metadata();
167
+ const dashboard = await md.GetEntityObject("Dashboards");
168
+ dashboard.NewRecord();
169
+ dashboard.Name = this.upsertDashboardName;
170
+ dashboard.Description = this.upsertDashboardDescription;
171
+ dashboard.CategoryID = this.selectedFolderID;
172
+ const saveResult = await dashboard.Save();
173
+ if (!saveResult) {
174
+ this.sharedService.CreateSimpleNotification(`Failed to create dashboard ${dashboard.Name}`, "error", 2500);
175
+ LogError(`Failed to create dashboard ${dashboard.Name}`, undefined, dashboard.LatestResult);
176
+ this.toggleUpsertDashboardDialog(false);
177
+ return;
178
+ }
179
+ // Close the dialog
180
+ this.toggleUpsertDashboardDialog(false);
181
+ // Show success notification
182
+ this.sharedService.CreateSimpleNotification(`Dashboard "${dashboard.Name}" created successfully`, "success", 2000);
183
+ // Navigate to the new dashboard
184
+ this.router.navigate(['resource', this.routeNameSingular, dashboard.ID]);
185
+ }
186
+ async updateDashboard() {
187
+ if (!this.selectedDashboard) {
188
+ this.toggleUpsertDashboardDialog(false);
189
+ return;
190
+ }
191
+ this.selectedDashboard.Name = this.upsertDashboardName;
192
+ this.selectedDashboard.Description = this.upsertDashboardDescription;
193
+ const saveResult = await this.selectedDashboard.Save();
194
+ if (saveResult) {
195
+ this.sharedService.CreateSimpleNotification(`Successfully updated dashboard ${this.selectedDashboard.Name}`, "info", 2500);
196
+ }
197
+ else {
198
+ this.sharedService.CreateSimpleNotification(`Failed to update dashboard ${this.selectedDashboard.Name}`, "error", 2500);
199
+ LogError(`Failed to update dashboard ${this.selectedDashboard.Name}`, undefined, this.selectedDashboard.LatestResult);
200
+ }
201
+ this.toggleUpsertDashboardDialog(false);
202
+ if (this.resourceBrowser) {
203
+ await this.resourceBrowser.Refresh();
204
+ }
205
+ }
206
+ onUpsertDashboardNameKeyup(value) {
207
+ this.upsertDashboardName = value;
208
+ }
209
+ onUpsertDashboardDescriptionKeyup(value) {
210
+ this.upsertDashboardDescription = value;
211
+ }
212
+ static ɵfac = function DashboardBrowserComponent_Factory(t) { return new (t || DashboardBrowserComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.SharedService)); };
213
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardBrowserComponent, selectors: [["app-dashboard-browser"]], viewQuery: function DashboardBrowserComponent_Query(rf, ctx) { if (rf & 1) {
214
+ i0.ɵɵviewQuery(_c0, 5);
215
+ } if (rf & 2) {
216
+ let _t;
217
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resourceBrowser = _t.first);
218
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [["resourceBrowserDashboard", ""], ["dashboardNameInput", ""], ["dashboardDescInput", ""], [1, "mj-page-container"], ["ResourceTypeName", "Dashboards", "Title", "Dashboards", "DisplayMode", "Tile", 3, "ResourceSelected", "NavigateToParentEvent", "EditItemEvent", "EnableCategories", "CurrentCategoryID", "NewItemOptions"], [3, "title", "minWidth", "width", "close", 4, "ngIf"], [3, "close", "title", "minWidth", "width"], ["orientation", "vertical", 1, "mb-3"], ["text", "Name", 3, "for"], ["placeholder", "Enter dashboard name", "rounded", "medium", 3, "valueChange", "value", "clearButton"], ["orientation", "vertical"], ["text", "Description", 3, "for"], ["placeholder", "Enter description", "rounded", "medium", 3, "valueChange", "value", "clearButton"], ["kendoButton", "", "themeColor", "primary", "rounded", "medium", 3, "click"], [1, "button-content"], [1, "fas", "fa-check"], ["kendoButton", "", "fillMode", "outline", "rounded", "medium", 3, "click"], [1, "fas", "fa-times"]], template: function DashboardBrowserComponent_Template(rf, ctx) { if (rf & 1) {
219
+ const _r1 = i0.ɵɵgetCurrentView();
220
+ i0.ɵɵelementStart(0, "div", 3)(1, "mj-resource-browser", 4, 0);
221
+ i0.ɵɵlistener("ResourceSelected", function DashboardBrowserComponent_Template_mj_resource_browser_ResourceSelected_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onItemClick($event)); })("NavigateToParentEvent", function DashboardBrowserComponent_Template_mj_resource_browser_NavigateToParentEvent_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.navigateToParentFolder()); })("EditItemEvent", function DashboardBrowserComponent_Template_mj_resource_browser_EditItemEvent_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBeforeUpdateItemEvent($event)); });
222
+ i0.ɵɵelementEnd();
223
+ i0.ɵɵtemplate(3, DashboardBrowserComponent_kendo_dialog_3_Template, 18, 10, "kendo-dialog", 5);
224
+ i0.ɵɵelementEnd();
225
+ } if (rf & 2) {
226
+ i0.ɵɵadvance();
227
+ i0.ɵɵproperty("EnableCategories", true)("CurrentCategoryID", ctx.selectedFolderID)("NewItemOptions", ctx.NewItemOptions);
228
+ i0.ɵɵadvance(2);
229
+ i0.ɵɵproperty("ngIf", ctx.upsertDashboardDialogVisible);
230
+ } }, dependencies: [i3.NgIf, i4.DialogComponent, i4.DialogActionsComponent, i5.ButtonComponent, i6.TextBoxComponent, i6.FormFieldComponent, i7.LabelComponent, i8.ResourceBrowserComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n}\n\n\n\n.mb-3[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n\n\n.button-content[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}"] });
231
+ };
232
+ DashboardBrowserComponent = __decorate([
233
+ RegisterClass(BaseNavigationComponent, 'Dashboards')
234
+ ], DashboardBrowserComponent);
235
+ export { DashboardBrowserComponent };
236
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardBrowserComponent, [{
237
+ type: Component,
238
+ args: [{ selector: 'app-dashboard-browser', template: "<!-- dashboard-browser.component.html -->\n<div class=\"mj-page-container\">\n <mj-resource-browser\n #resourceBrowserDashboard\n ResourceTypeName=\"Dashboards\"\n [EnableCategories]=\"true\"\n [CurrentCategoryID]=\"selectedFolderID\"\n Title=\"Dashboards\"\n DisplayMode=\"Tile\"\n [NewItemOptions]=\"NewItemOptions\"\n (ResourceSelected)=\"onItemClick($event)\"\n (NavigateToParentEvent)=\"navigateToParentFolder()\"\n (EditItemEvent)=\"onBeforeUpdateItemEvent($event)\"\n />\n\n <!-- Dashboard Creation/Edit Dialog -->\n <kendo-dialog \n [title]=\"selectedDashboard ? 'Update Dashboard' : 'Create New Dashboard'\" \n *ngIf=\"upsertDashboardDialogVisible\" \n (close)=\"toggleUpsertDashboardDialog(false)\"\n [minWidth]=\"400\"\n [width]=\"500\"\n >\n <kendo-formfield orientation=\"vertical\" class=\"mb-3\">\n <kendo-label text=\"Name\" [for]=\"dashboardNameInput\"></kendo-label>\n <kendo-textbox \n #dashboardNameInput\n [value]=\"upsertDashboardName\" \n placeholder=\"Enter dashboard name\" \n [clearButton]=\"true\"\n rounded=\"medium\"\n (valueChange)=\"onUpsertDashboardNameKeyup($event)\"\n />\n </kendo-formfield>\n \n <kendo-formfield orientation=\"vertical\">\n <kendo-label text=\"Description\" [for]=\"dashboardDescInput\"></kendo-label>\n <kendo-textbox \n #dashboardDescInput\n [value]=\"upsertDashboardDescription\" \n placeholder=\"Enter description\" \n [clearButton]=\"true\"\n rounded=\"medium\"\n (valueChange)=\"onUpsertDashboardDescriptionKeyup($event)\"\n />\n </kendo-formfield>\n \n <kendo-dialog-actions>\n <button kendoButton\n themeColor=\"primary\"\n rounded=\"medium\"\n (click)=\"selectedDashboard ? updateDashboard() : createDashboard()\">\n <span class=\"button-content\">\n <i class=\"fas fa-check\"></i>\n {{ selectedDashboard ? 'Update' : 'Create' }}\n </span>\n </button>\n <button kendoButton\n fillMode=\"outline\"\n rounded=\"medium\"\n (click)=\"toggleUpsertDashboardDialog(false)\"> \n <span class=\"button-content\">\n <i class=\"fas fa-times\"></i>\n Cancel\n </span>\n </button>\n </kendo-dialog-actions>\n </kendo-dialog>\n</div>", styles: [":host {\n display: block;\n}\n\n/* Utility margin class */\n.mb-3 {\n margin-bottom: 1rem;\n}\n\n/* Button content wrapper for icons */\n.button-content {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}"] }]
239
+ }], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SharedService }], { resourceBrowser: [{
240
+ type: ViewChild,
241
+ args: ['resourceBrowserDashboard']
242
+ }] }); })();
243
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardBrowserComponent, { className: "DashboardBrowserComponent" }); })();
244
+ //# sourceMappingURL=dashboard-browser.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-browser.component.js","sourceRoot":"","sources":["../../../src/lib/dashboard-browser-component/dashboard-browser.component.ts","../../../src/lib/dashboard-browser-component/dashboard-browser.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAiB,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAQ,QAAQ,EAAiB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AAGxF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;;;;;;;;;;;;;ICQ/D,uCAMC;IAHG,oMAAS,mCAA4B,KAAK,CAAC,KAAC;IAI5C,0CAAqD;IACjD,iCAAkE;IAClE,2CAOE;IADE,uNAAe,yCAAkC,KAAC;IAE1D,AARI,iBAOE,EACY;IAElB,2CAAwC;IACpC,kCAAyE;IACzE,4CAOE;IADE,uNAAe,gDAAyC,KAAC;IAEjE,AARI,iBAOE,EACY;IAGd,AADJ,4CAAsB,kBAIsD;IAApE,0NAA6B,wBAAiB,GAAG,wBAAiB,KAAC;IACnE,iCAA6B;IACzB,yBAA4B;IAC5B,aACJ;IACJ,AADI,iBAAO,EACF;IACT,mCAGiD;IAA7C,+LAAS,mCAA4B,KAAK,CAAC,KAAC;IAC5C,iCAA6B;IACzB,yBAA4B;IAC5B,yBACJ;IAGZ,AADI,AADI,AADI,iBAAO,EACF,EACU,EACZ;;;;;IA9CX,AADA,AAHA,8FAAyE,iBAGzD,cACH;IAGgB,eAA0B;IAA1B,2CAA0B;IAG/C,cAA6B;IAE7B,AAFA,kDAA6B,qBAET;IAOQ,eAA0B;IAA1B,2CAA0B;IAGtD,cAAoC;IAEpC,AAFA,yDAAoC,qBAEhB;IAahB,eACJ;IADI,+EACJ;;ADtCT,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,oBAAoB;IA2B7C;IAAwB;IAA+B;IAzBpC,eAAe,GAAoC,IAAI,CAAC;IAExF,4BAA4B,GAAY,KAAK,CAAC;IAC9C,mBAAmB,GAAW,EAAE,CAAC;IACjC,0BAA0B,GAAW,EAAE,CAAC;IACxC,iBAAiB,GAAmC,IAAI,CAAC;IAEzD,cAAc,GAAoB;QACvC;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,GAAG,EAAE;gBACT,iDAAiD;gBACjD,MAAM,EAAE,GAAa,IAAI,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,+BAA+B;gBAC9D,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;gBACvC,sDAAsD;gBACtD,UAAU,CAAC,GAAG,EAAE;oBACZ,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,6BAA6B,CAAqB,CAAC;oBAC/F,IAAI,YAAY;wBAAE,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC3C,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,CAAC;SACJ;KAAC,CAAC;IAEL,YAAoB,MAAc,EAAU,KAAqB,EAAU,aAA4B;QACrG,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAgB;QAAU,kBAAa,GAAb,aAAa,CAAe;QAGrG,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC;QACnC,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,WAAW,CAAC;QAC5E,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,mEAAmE;IACnE,sDAAsD;IACtD,yCAAyC;IACzC,8BAA8B;IACvB,WAAW,CAAC,IAAU;QAC3B,IAAI,MAAM,GAAW,EAAE,CAAC;QAExB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,IAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,EAAC,CAAC;YAClC,IAAI,SAAS,GAAqD,IAAI,CAAC,IAAI,CAAC;YAC5E,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,sBAAsB;QACjC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAA8B;gBAC/D,UAAU,EAAE,sBAAsB;gBAClC,WAAW,EAAE,OAAO,IAAI,CAAC,gBAAgB,GAAG;aAC/C,CAAC,CAAC;YAEH,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAE5E,MAAM,cAAc,GAAgC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5E,IAAG,CAAC,cAAc,CAAC,QAAQ,EAAC,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAChD,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAC,EAAC,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACH,CAAC;IAEM,uBAAuB,CAAC,KAA4B;QACzD,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QAEpB,IAAI,IAAI,GAAS,KAAK,CAAC,IAAI,CAAC;QAC5B,IAAI,SAAS,GAA4B,IAAI,CAAC,IAAI,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,2BAA2B,CAAC,OAAgB;QACjD,IAAI,CAAC,4BAA4B,GAAG,OAAO,CAAC;QAC5C,IAAG,OAAO,EAAC,CAAC;YACV,IAAG,IAAI,CAAC,iBAAiB,EAAC,CAAC;gBACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBACvD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,IAAI,EAAE,CAAC;YAC7E,CAAC;iBACG,CAAC;gBACH,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBAC9B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACxE,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,4BAA4B,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3F,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAa,IAAI,QAAQ,EAAE,CAAC;QACpC,MAAM,SAAS,GAA4B,MAAM,EAAE,CAAC,eAAe,CAA0B,YAAY,CAAC,CAAC;QAE3G,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC1C,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC;QACxD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE7C,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAG,CAAC,UAAU,EAAC,CAAC;YACd,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,8BAA8B,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3G,QAAQ,CAAC,8BAA8B,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;YAC5F,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAExC,4BAA4B;QAC5B,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,cAAc,SAAS,CAAC,IAAI,wBAAwB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAEnH,gCAAgC;QAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC;YAC1B,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAErE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACvD,IAAG,UAAU,EAAC,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,kCAAkC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7H,CAAC;aACI,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,8BAA8B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxH,QAAQ,CAAC,8BAA8B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACxH,CAAC;QAED,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAExC,IAAG,IAAI,CAAC,eAAe,EAAC,CAAC;YACvB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAEM,0BAA0B,CAAC,KAAa;QAC7C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAEM,iCAAiC,CAAC,KAAa;QACpD,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;IAC1C,CAAC;mFAzKU,yBAAyB;6DAAzB,yBAAyB;;;;;;;YCflC,AADJ,8BAA+B,gCAYzB;YADE,AADA,AADA,qLAAoB,uBAAmB,KAAC,4KACf,4BAAwB,KAAC,kKACjC,mCAA+B,KAAC;YAVrD,iBAWE;YAGF,8FAMC;YA8CL,iBAAM;;YA/DE,cAAyB;YAIzB,AAHA,AADA,uCAAyB,2CACa,sCAGL;YAShC,eAAkC;YAAlC,uDAAkC;;;ADD9B,yBAAyB;IADrC,aAAa,CAAC,uBAAuB,EAAE,YAAY,CAAC;GACxC,yBAAyB,CA0KrC;;iFA1KY,yBAAyB;cANrC,SAAS;2BACE,uBAAuB;gGAOM,eAAe;kBAArD,SAAS;mBAAC,0BAA0B;;kFAF1B,yBAAyB"}
@@ -512,7 +512,7 @@ export class DashboardPreferencesDialogComponent {
512
512
  onCancel() {
513
513
  this.result.emit({ saved: false });
514
514
  }
515
- static ɵfac = function DashboardPreferencesDialogComponent_Factory(t) { return new (t || DashboardPreferencesDialogComponent)(); };
515
+ static ɵfac = function DashboardPreferencesDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DashboardPreferencesDialogComponent)(); };
516
516
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardPreferencesDialogComponent, selectors: [["mj-dashboard-preferences-dialog"]], inputs: { applicationId: "applicationId", scope: "scope" }, outputs: { result: "result" }, decls: 21, vars: 11, consts: [["availableList", "cdkDropList"], ["configuredList", "cdkDropList"], ["title", "Dashboard Preferences", 3, "close", "width", "height", "minWidth", "minHeight"], [1, "dashboard-preferences-dialog"], [1, "dialog-header"], [1, "fa-solid", "fa-sliders"], [1, "scope-indicator"], [1, "preference-mode-selector"], [1, "dialog-content"], [1, "loading-overlay"], [1, "error-container"], [1, "preferences-panels"], [1, "dialog-footer"], ["type", "button", 1, "btn", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-times"], ["type", "button", 1, "btn", "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-globe"], [1, "fa-solid", "fa-layer-group"], ["type", "radio", "name", "preferenceMode", "value", "personal", 3, "ngModelChange", "change", "ngModel"], ["type", "radio", "name", "preferenceMode", "value", "system", 3, "ngModelChange", "change", "ngModel"], ["text", "Loading preferences...", "size", "large"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "panel", "available-panel"], [1, "fa-solid", "fa-list"], ["cdkDropList", "", 1, "dashboard-list", 3, "cdkDropListDropped", "cdkDropListData", "cdkDropListConnectedTo"], [1, "empty-state"], ["cdkDrag", "", 1, "dashboard-item", "available-item", 3, "cdkDragData"], [1, "panel", "configured-panel"], [1, "fa-solid", "fa-list-ol"], ["cdkDrag", "", 1, "dashboard-item", "configured-item", 3, "cdkDragData"], [1, "fa-solid", "fa-info-circle"], [1, "dashboard-item-content"], [1, "fa-solid", "fa-grip-vertical", "drag-handle"], [1, "dashboard-info"], [1, "dashboard-name"], [1, "dashboard-description"], ["type", "button", "title", "Add to configured dashboards", 1, "add-button", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "order-number"], ["type", "button", "title", "Remove from configured dashboards", 1, "remove-button", 3, "click"], ["size", "small", 3, "showText"], [1, "fa-solid", "fa-check"]], template: function DashboardPreferencesDialogComponent_Template(rf, ctx) { if (rf & 1) {
517
517
  i0.ɵɵelementStart(0, "kendo-dialog", 2);
518
518
  i0.ɵɵlistener("close", function DashboardPreferencesDialogComponent_Template_kendo_dialog_close_0_listener() { return ctx.onCancel(); });
@@ -565,5 +565,5 @@ export class DashboardPreferencesDialogComponent {
565
565
  }], result: [{
566
566
  type: Output
567
567
  }] }); })();
568
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardPreferencesDialogComponent, { className: "DashboardPreferencesDialogComponent", filePath: "src/lib/dashboard-preferences-dialog/dashboard-preferences-dialog.component.ts", lineNumber: 16 }); })();
568
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardPreferencesDialogComponent, { className: "DashboardPreferencesDialogComponent" }); })();
569
569
  //# sourceMappingURL=dashboard-preferences-dialog.component.js.map