@memberjunction/ng-dashboards 5.21.0 → 5.23.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 (262) hide show
  1. package/README.md +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +364 -362
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.js +2 -2
  6. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +313 -0
  7. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -0
  8. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2792 -0
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -0
  10. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +382 -0
  11. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -0
  12. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +2683 -0
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -0
  14. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  15. package/dist/AI/components/execution-monitoring.component.js +191 -197
  16. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  17. package/dist/AI/components/models/model-management.component.js +9 -8
  18. package/dist/AI/components/models/model-management.component.js.map +1 -1
  19. package/dist/AI/components/prompts/prompt-management.component.js +305 -299
  20. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  21. package/dist/AI/components/system/system-configuration.component.js +319 -313
  22. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  23. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +240 -0
  24. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -0
  25. package/dist/AI/components/vectors/vector-management-resource.component.js +1767 -0
  26. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -0
  27. package/dist/AI/index.d.ts +3 -0
  28. package/dist/AI/index.d.ts.map +1 -1
  29. package/dist/AI/index.js +6 -0
  30. package/dist/AI/index.js.map +1 -1
  31. package/dist/AI/services/ai-instrumentation.service.d.ts +50 -7
  32. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  33. package/dist/AI/services/ai-instrumentation.service.js +161 -193
  34. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  35. package/dist/APIKeys/api-applications-panel.component.js +10 -12
  36. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  37. package/dist/APIKeys/api-key-create-dialog.component.js +13 -19
  38. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  39. package/dist/APIKeys/api-key-edit-panel.component.js +12 -14
  40. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  41. package/dist/APIKeys/api-scopes-panel.component.js +61 -68
  42. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  43. package/dist/APIKeys/api-usage-panel.component.js +10 -11
  44. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  45. package/dist/Actions/components/actions-list-view.component.js +82 -96
  46. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  47. package/dist/Actions/components/actions-overview.component.js +130 -134
  48. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  49. package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
  50. package/dist/Actions/components/categories-list-view.component.js +40 -46
  51. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  52. package/dist/Actions/components/code-management.component.js +2 -2
  53. package/dist/Actions/components/code-management.component.js.map +1 -1
  54. package/dist/Actions/components/entity-integration.component.js +2 -2
  55. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  56. package/dist/Actions/components/execution-monitoring.component.js +127 -132
  57. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  58. package/dist/Actions/components/executions-list-view.component.js +2 -2
  59. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  60. package/dist/Actions/components/explorer/action-card.component.js +11 -17
  61. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  62. package/dist/Actions/components/explorer/action-explorer.component.js +5 -11
  63. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  64. package/dist/Actions/components/explorer/action-list-item.component.js +8 -10
  65. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  66. package/dist/Actions/components/explorer/action-toolbar.component.js +112 -133
  67. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  68. package/dist/Actions/components/explorer/action-tree-panel.component.js +63 -83
  69. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  70. package/dist/Actions/components/explorer/new-action-panel.component.js +17 -21
  71. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  72. package/dist/Actions/components/explorer/new-category-panel.component.js +17 -21
  73. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  74. package/dist/Actions/components/scheduled-actions.component.js +2 -2
  75. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  76. package/dist/Actions/components/security-permissions.component.js +2 -2
  77. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  78. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +13 -5
  79. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  80. package/dist/ComponentStudio/component-studio-dashboard.component.js +168 -145
  81. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  82. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +4 -5
  83. package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
  84. package/dist/ComponentStudio/components/artifact-load-dialog.component.js +197 -200
  85. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  86. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +5 -7
  87. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  88. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +142 -148
  89. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  90. package/dist/ComponentStudio/components/browser/component-browser.component.js +153 -166
  91. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  92. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js +15 -20
  93. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  94. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +16 -21
  95. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  96. package/dist/ComponentStudio/components/editors/requirements-editor.component.js +18 -23
  97. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  98. package/dist/ComponentStudio/components/editors/spec-editor.component.js +25 -30
  99. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  100. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js +10 -11
  101. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  102. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.d.ts.map +1 -1
  103. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js +24 -35
  104. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  105. package/dist/ComponentStudio/components/text-import-dialog.component.js +15 -17
  106. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  107. package/dist/Credentials/components/credentials-categories-resource.component.js +7 -6
  108. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  109. package/dist/Credentials/components/credentials-list-resource.component.js +6 -5
  110. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  111. package/dist/Credentials/components/credentials-types-resource.component.js +7 -6
  112. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  113. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +11 -0
  114. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  115. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +57 -0
  116. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  117. package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -9
  118. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  119. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +1 -1
  120. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +10 -2
  121. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  122. package/dist/DataExplorer/data-explorer-dashboard.component.js +35 -11
  123. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  124. package/dist/DataExplorer/data-explorer-resource.component.d.ts +1 -0
  125. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  126. package/dist/DataExplorer/data-explorer-resource.component.js +8 -4
  127. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  128. package/dist/Home/home-dashboard.component.d.ts +181 -1
  129. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  130. package/dist/Home/home-dashboard.component.js +1704 -182
  131. package/dist/Home/home-dashboard.component.js.map +1 -1
  132. package/dist/Integration/components/connections/connections.component.js +4 -4
  133. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  134. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +246 -259
  135. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  136. package/dist/Integration/components/widgets/integration-card.component.js +7 -9
  137. package/dist/Integration/components/widgets/integration-card.component.js.map +1 -1
  138. package/dist/Integration/integration.module.d.ts +6 -10
  139. package/dist/Integration/integration.module.d.ts.map +1 -1
  140. package/dist/Integration/integration.module.js +12 -20
  141. package/dist/Integration/integration.module.js.map +1 -1
  142. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +106 -0
  143. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -0
  144. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +607 -0
  145. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -0
  146. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +126 -0
  147. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -0
  148. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +1086 -0
  149. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -0
  150. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.d.ts +56 -0
  151. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.d.ts.map +1 -0
  152. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.js +291 -0
  153. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.js.map +1 -0
  154. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +85 -0
  155. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -0
  156. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +461 -0
  157. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -0
  158. package/dist/KnowledgeHub/index.d.ts +5 -0
  159. package/dist/KnowledgeHub/index.d.ts.map +1 -0
  160. package/dist/KnowledgeHub/index.js +6 -0
  161. package/dist/KnowledgeHub/index.js.map +1 -0
  162. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  163. package/dist/Lists/components/lists-browse-resource.component.js +9 -7
  164. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  165. package/dist/Lists/components/lists-my-lists-resource.component.js +5 -4
  166. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  167. package/dist/Lists/components/lists-operations-resource.component.js +10 -9
  168. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  169. package/dist/MCP/components/mcp-connection-dialog.component.js +141 -132
  170. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  171. package/dist/MCP/components/mcp-log-detail-panel.component.js +4 -4
  172. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  173. package/dist/MCP/components/mcp-server-dialog.component.js +141 -128
  174. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  175. package/dist/MCP/components/mcp-test-tool-dialog.component.js +210 -218
  176. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  177. package/dist/MCP/mcp-dashboard.component.js +2 -2
  178. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  179. package/dist/MCP/mcp.module.d.ts +6 -9
  180. package/dist/MCP/mcp.module.d.ts.map +1 -1
  181. package/dist/MCP/mcp.module.js +20 -22
  182. package/dist/MCP/mcp.module.js.map +1 -1
  183. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  184. package/dist/QueryBrowser/query-browser-resource.component.js +5 -1
  185. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  186. package/dist/Scheduling/components/scheduling-activity.component.js +5 -4
  187. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  188. package/dist/Scheduling/components/scheduling-jobs.component.js +6 -5
  189. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  190. package/dist/Scheduling/components/scheduling-overview.component.js +93 -92
  191. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  192. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  193. package/dist/SystemDiagnostics/system-diagnostics.component.js +1 -0
  194. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  195. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +7 -1
  196. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  197. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +63 -8
  198. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  199. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +9 -1
  200. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  201. package/dist/Testing/components/testing-dashboard-tab.component.js +109 -62
  202. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  203. package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
  204. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  205. package/dist/Testing/components/testing-explorer.component.js +241 -200
  206. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  207. package/dist/Testing/components/testing-runs-resource.component.d.ts +7 -1
  208. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  209. package/dist/Testing/components/testing-runs-resource.component.js +63 -8
  210. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  211. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  212. package/dist/Testing/components/testing-runs.component.js +7 -5
  213. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  214. package/dist/Testing/testing-dashboard.component.d.ts +9 -1
  215. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  216. package/dist/Testing/testing-dashboard.component.js +122 -54
  217. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  218. package/dist/actions-dashboards.module.d.ts +8 -13
  219. package/dist/actions-dashboards.module.d.ts.map +1 -1
  220. package/dist/actions-dashboards.module.js +6 -27
  221. package/dist/actions-dashboards.module.js.map +1 -1
  222. package/dist/ai-dashboards.module.d.ts +14 -11
  223. package/dist/ai-dashboards.module.d.ts.map +1 -1
  224. package/dist/ai-dashboards.module.js +58 -44
  225. package/dist/ai-dashboards.module.js.map +1 -1
  226. package/dist/communication-dashboards.module.d.ts +4 -8
  227. package/dist/communication-dashboards.module.d.ts.map +1 -1
  228. package/dist/communication-dashboards.module.js +0 -19
  229. package/dist/communication-dashboards.module.js.map +1 -1
  230. package/dist/component-studio-dashboards.module.d.ts +7 -11
  231. package/dist/component-studio-dashboards.module.d.ts.map +1 -1
  232. package/dist/component-studio-dashboards.module.js +22 -34
  233. package/dist/component-studio-dashboards.module.js.map +1 -1
  234. package/dist/core-dashboards.module.d.ts +13 -18
  235. package/dist/core-dashboards.module.d.ts.map +1 -1
  236. package/dist/core-dashboards.module.js +18 -31
  237. package/dist/core-dashboards.module.js.map +1 -1
  238. package/dist/credentials-dashboards.module.d.ts +5 -8
  239. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  240. package/dist/credentials-dashboards.module.js +3 -19
  241. package/dist/credentials-dashboards.module.js.map +1 -1
  242. package/dist/data-explorer-dashboards.module.d.ts +7 -13
  243. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  244. package/dist/data-explorer-dashboards.module.js +0 -27
  245. package/dist/data-explorer-dashboards.module.js.map +1 -1
  246. package/dist/lists-dashboards.module.d.ts +5 -8
  247. package/dist/lists-dashboards.module.d.ts.map +1 -1
  248. package/dist/lists-dashboards.module.js +3 -19
  249. package/dist/lists-dashboards.module.js.map +1 -1
  250. package/dist/public-api.d.ts +5 -1
  251. package/dist/public-api.d.ts.map +1 -1
  252. package/dist/public-api.js +6 -1
  253. package/dist/public-api.js.map +1 -1
  254. package/dist/scheduling-dashboards.module.d.ts +6 -10
  255. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  256. package/dist/scheduling-dashboards.module.js +3 -23
  257. package/dist/scheduling-dashboards.module.js.map +1 -1
  258. package/dist/testing-dashboards.module.d.ts +7 -12
  259. package/dist/testing-dashboards.module.d.ts.map +1 -1
  260. package/dist/testing-dashboards.module.js +4 -27
  261. package/dist/testing-dashboards.module.js.map +1 -1
  262. package/package.json +47 -53
@@ -1,7 +1,7 @@
1
1
  import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { ResolveIntegrationIcon } from '../../services/integration-data.service';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@progress/kendo-angular-buttons";
4
+ import * as i1 from "@memberjunction/ng-ui-components";
5
5
  import * as i2 from "@angular/common";
6
6
  const _forTrack0 = ($index, $item) => $item.ID;
7
7
  function IntegrationCardComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
@@ -109,7 +109,7 @@ export class IntegrationCardComponent {
109
109
  this.ExpandToggle.emit(this.Summary.Integration.ID);
110
110
  }
111
111
  static ɵfac = function IntegrationCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IntegrationCardComponent)(); };
112
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IntegrationCardComponent, selectors: [["app-integration-card"]], inputs: { Summary: "Summary", Expanded: "Expanded", ViewProvider: "ViewProvider" }, outputs: { RunNowClick: "RunNowClick", ExpandToggle: "ExpandToggle" }, standalone: false, decls: 29, vars: 25, consts: [[1, "integration-card"], [1, "card-header"], [1, "source-icon"], [1, "card-title-area"], [1, "card-title"], [1, "source-type-label"], [1, "status-area"], [1, "status-indicator"], [1, "status-chip"], [1, "card-body"], [1, "stat-row"], [1, "stat-label"], [1, "stat-value"], [1, "sparkline-row"], [1, "card-footer"], ["kendoButton", "", 3, "click", "look", "themeColor", "disabled"], [1, "fa-solid", "fa-play"], ["kendoButton", "", 3, "click", "look"], [1, "fa-solid"], [1, "stat-value", "error-value"], [1, "error-badge"], [1, "sparkline-label"], [1, "sparkline"], [1, "spark-bar", 3, "height", "spark-success", "spark-failed", "spark-pending", "title"], [1, "spark-bar", 3, "title"]], template: function IntegrationCardComponent_Template(rf, ctx) { if (rf & 1) {
112
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IntegrationCardComponent, selectors: [["app-integration-card"]], inputs: { Summary: "Summary", Expanded: "Expanded", ViewProvider: "ViewProvider" }, outputs: { RunNowClick: "RunNowClick", ExpandToggle: "ExpandToggle" }, standalone: false, decls: 29, vars: 22, consts: [[1, "integration-card"], [1, "card-header"], [1, "source-icon"], [1, "card-title-area"], [1, "card-title"], [1, "source-type-label"], [1, "status-area"], [1, "status-indicator"], [1, "status-chip"], [1, "card-body"], [1, "stat-row"], [1, "stat-label"], [1, "stat-value"], [1, "sparkline-row"], [1, "card-footer"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], ["mjButton", "", "variant", "flat", "size", "sm", 3, "click"], [1, "fa-solid"], [1, "stat-value", "error-value"], [1, "error-badge"], [1, "sparkline-label"], [1, "sparkline"], [1, "spark-bar", 3, "height", "spark-success", "spark-failed", "spark-pending", "title"], [1, "spark-bar", 3, "title"]], template: function IntegrationCardComponent_Template(rf, ctx) { if (rf & 1) {
113
113
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
114
114
  i0.ɵɵelement(3, "i");
115
115
  i0.ɵɵelementEnd();
@@ -168,12 +168,10 @@ export class IntegrationCardComponent {
168
168
  i0.ɵɵadvance();
169
169
  i0.ɵɵconditional(ctx.Summary.RecentRuns.length > 1 ? 21 : -1);
170
170
  i0.ɵɵadvance(2);
171
- i0.ɵɵproperty("look", "flat")("themeColor", "primary")("disabled", !ctx.Summary.Integration.IsActive);
172
- i0.ɵɵadvance(3);
173
- i0.ɵɵproperty("look", "flat");
174
- i0.ɵɵadvance();
171
+ i0.ɵɵproperty("disabled", !ctx.Summary.Integration.IsActive);
172
+ i0.ɵɵadvance(4);
175
173
  i0.ɵɵclassProp("fa-chevron-down", !ctx.Expanded)("fa-chevron-up", ctx.Expanded);
176
- } }, dependencies: [i1.ButtonComponent, i2.DecimalPipe], styles: [".integration-card[_ngcontent-%COMP%] {\n background: var(--card-bg, #fff);\n border: 1px solid var(--border-color, #e0e0e0);\n border-radius: 8px;\n padding: 16px;\n transition: box-shadow 0.2s;\n }\n .integration-card[_ngcontent-%COMP%]:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n .integration-card.inactive[_ngcontent-%COMP%] { opacity: 0.6; }\n\n .card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n }\n .source-icon[_ngcontent-%COMP%] {\n width: 40px; height: 40px;\n border-radius: 8px;\n background: var(--icon-bg, #f0f4ff);\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: var(--primary-color, #4a6cf7);\n }\n .card-title-area[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .card-title[_ngcontent-%COMP%] {\n margin: 0; font-size: 14px; font-weight: 600;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .source-type-label[_ngcontent-%COMP%] { font-size: 12px; color: #888; }\n\n .status-area[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-shrink: 0;\n }\n\n .status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n }\n .indicator-green[_ngcontent-%COMP%] { background: #1b7a3d; }\n .indicator-amber[_ngcontent-%COMP%] { background: #b5850a; }\n .indicator-red[_ngcontent-%COMP%] { background: #c62828; }\n .indicator-gray[_ngcontent-%COMP%] { background: #999; }\n\n .status-indicator.pulsing[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_pulse 1.5s ease-in-out infinite;\n }\n @keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.3); }\n }\n\n .status-chip[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 600; padding: 3px 8px;\n border-radius: 12px; text-transform: uppercase; white-space: nowrap;\n }\n .status-green[_ngcontent-%COMP%] { background: #e6f9ed; color: #1b7a3d; }\n .status-amber[_ngcontent-%COMP%] { background: #fff7e0; color: #b5850a; }\n .status-red[_ngcontent-%COMP%] { background: #fde8e8; color: #c62828; }\n .status-gray[_ngcontent-%COMP%] { background: #f0f0f0; color: #757575; }\n\n .card-body[_ngcontent-%COMP%] { margin-bottom: 12px; }\n .stat-row[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n }\n .stat-label[_ngcontent-%COMP%] { color: #666; }\n .stat-value[_ngcontent-%COMP%] { font-weight: 500; }\n .error-value[_ngcontent-%COMP%] { color: #c62828; }\n .error-badge[_ngcontent-%COMP%] {\n background: #fde8e8;\n color: #c62828;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 700;\n }\n\n \n\n .sparkline-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n padding: 8px 0;\n border-top: 1px solid #f0f0f0;\n margin-bottom: 4px;\n }\n .sparkline-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #999;\n white-space: nowrap;\n }\n .sparkline[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n height: 24px;\n flex: 1;\n }\n .spark-bar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 2px;\n border-radius: 2px 2px 0 0;\n transition: height 0.3s ease;\n }\n .spark-success[_ngcontent-%COMP%] { background: #4a6cf7; }\n .spark-failed[_ngcontent-%COMP%] { background: #c62828; }\n .spark-pending[_ngcontent-%COMP%] { background: #b5850a; }\n\n .card-footer[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between;\n border-top: 1px solid #eee; padding-top: 8px;\n }"] });
174
+ } }, dependencies: [i1.MJButtonDirective, i2.DecimalPipe], styles: [".integration-card[_ngcontent-%COMP%] {\n background: var(--card-bg, #fff);\n border: 1px solid var(--border-color, #e0e0e0);\n border-radius: 8px;\n padding: 16px;\n transition: box-shadow 0.2s;\n }\n .integration-card[_ngcontent-%COMP%]:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n .integration-card.inactive[_ngcontent-%COMP%] { opacity: 0.6; }\n\n .card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n }\n .source-icon[_ngcontent-%COMP%] {\n width: 40px; height: 40px;\n border-radius: 8px;\n background: var(--icon-bg, #f0f4ff);\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: var(--primary-color, #4a6cf7);\n }\n .card-title-area[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n .card-title[_ngcontent-%COMP%] {\n margin: 0; font-size: 14px; font-weight: 600;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .source-type-label[_ngcontent-%COMP%] { font-size: 12px; color: #888; }\n\n .status-area[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-shrink: 0;\n }\n\n .status-indicator[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n }\n .indicator-green[_ngcontent-%COMP%] { background: #1b7a3d; }\n .indicator-amber[_ngcontent-%COMP%] { background: #b5850a; }\n .indicator-red[_ngcontent-%COMP%] { background: #c62828; }\n .indicator-gray[_ngcontent-%COMP%] { background: #999; }\n\n .status-indicator.pulsing[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_pulse 1.5s ease-in-out infinite;\n }\n @keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.3); }\n }\n\n .status-chip[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 600; padding: 3px 8px;\n border-radius: 12px; text-transform: uppercase; white-space: nowrap;\n }\n .status-green[_ngcontent-%COMP%] { background: #e6f9ed; color: #1b7a3d; }\n .status-amber[_ngcontent-%COMP%] { background: #fff7e0; color: #b5850a; }\n .status-red[_ngcontent-%COMP%] { background: #fde8e8; color: #c62828; }\n .status-gray[_ngcontent-%COMP%] { background: #f0f0f0; color: #757575; }\n\n .card-body[_ngcontent-%COMP%] { margin-bottom: 12px; }\n .stat-row[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n }\n .stat-label[_ngcontent-%COMP%] { color: #666; }\n .stat-value[_ngcontent-%COMP%] { font-weight: 500; }\n .error-value[_ngcontent-%COMP%] { color: #c62828; }\n .error-badge[_ngcontent-%COMP%] {\n background: #fde8e8;\n color: #c62828;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 700;\n }\n\n \n\n .sparkline-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n padding: 8px 0;\n border-top: 1px solid #f0f0f0;\n margin-bottom: 4px;\n }\n .sparkline-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: #999;\n white-space: nowrap;\n }\n .sparkline[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n height: 24px;\n flex: 1;\n }\n .spark-bar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 2px;\n border-radius: 2px 2px 0 0;\n transition: height 0.3s ease;\n }\n .spark-success[_ngcontent-%COMP%] { background: #4a6cf7; }\n .spark-failed[_ngcontent-%COMP%] { background: #c62828; }\n .spark-pending[_ngcontent-%COMP%] { background: #b5850a; }\n\n .card-footer[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between;\n border-top: 1px solid #eee; padding-top: 8px;\n }"] });
177
175
  }
178
176
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IntegrationCardComponent, [{
179
177
  type: Component,
@@ -240,11 +238,11 @@ export class IntegrationCardComponent {
240
238
  }
241
239
 
242
240
  <div class="card-footer">
243
- <button kendoButton [look]="'flat'" [themeColor]="'primary'"
241
+ <button mjButton variant="primary" size="sm"
244
242
  (click)="OnRunNowClick()" [disabled]="!Summary.Integration.IsActive">
245
243
  <i class="fa-solid fa-play"></i> Run Now
246
244
  </button>
247
- <button kendoButton [look]="'flat'" (click)="OnExpandToggle()">
245
+ <button mjButton variant="flat" size="sm" (click)="OnExpandToggle()">
248
246
  <i class="fa-solid" [class.fa-chevron-down]="!Expanded" [class.fa-chevron-up]="Expanded"></i>
249
247
  History
250
248
  </button>
@@ -1 +1 @@
1
- {"version":3,"file":"integration-card.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/widgets/integration-card.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { IRunViewProvider } from '@memberjunction/core';\nimport { IntegrationSummary, ResolveIntegrationIcon } from '../../services/integration-data.service';\n\n@Component({\n standalone: false,\n selector: 'app-integration-card',\n template: `\n <div class=\"integration-card\" [class.inactive]=\"!Summary.Integration.IsActive\">\n <div class=\"card-header\">\n <div class=\"source-icon\">\n <i [class]=\"SourceIconClass\"></i>\n </div>\n <div class=\"card-title-area\">\n <h3 class=\"card-title\">{{ Summary.Integration.Name }}</h3>\n <span class=\"source-type-label\">{{ Summary.SourceType?.Name ?? 'Unknown' }}</span>\n </div>\n <div class=\"status-area\">\n <span class=\"status-indicator\" [class]=\"'indicator-' + Summary.StatusColor\"\n [class.pulsing]=\"IsActivelySyncing\"></span>\n <span class=\"status-chip\" [class]=\"'status-' + Summary.StatusColor\">\n {{ StatusLabel }}\n </span>\n </div>\n </div>\n\n <div class=\"card-body\">\n <div class=\"stat-row\">\n <span class=\"stat-label\">Last Run</span>\n <span class=\"stat-value\">{{ Summary.RelativeTime }}</span>\n </div>\n @if (Summary.LatestRun) {\n <div class=\"stat-row\">\n <span class=\"stat-label\">Records Synced</span>\n <span class=\"stat-value\">{{ Summary.LatestRun.TotalRecords | number }}</span>\n </div>\n <div class=\"stat-row\">\n <span class=\"stat-label\">Duration</span>\n <span class=\"stat-value\">{{ FormattedDuration }}</span>\n </div>\n }\n @if (Summary.TotalErrors > 0) {\n <div class=\"stat-row\">\n <span class=\"stat-label\">Errors</span>\n <span class=\"stat-value error-value\">\n <span class=\"error-badge\">{{ Summary.TotalErrors }}</span>\n </span>\n </div>\n }\n </div>\n\n <!-- Sparkline: records synced for last 5 runs -->\n @if (Summary.RecentRuns.length > 1) {\n <div class=\"sparkline-row\">\n <span class=\"sparkline-label\">Recent syncs</span>\n <div class=\"sparkline\">\n @for (run of Summary.RecentRuns; track run.ID) {\n <div class=\"spark-bar\"\n [style.height.%]=\"SparkBarHeight(run.TotalRecords)\"\n [class.spark-success]=\"run.Status === 'Success'\"\n [class.spark-failed]=\"run.Status === 'Failed'\"\n [class.spark-pending]=\"run.Status !== 'Success' && run.Status !== 'Failed'\"\n [title]=\"run.TotalRecords + ' records - ' + run.Status\">\n </div>\n }\n </div>\n </div>\n }\n\n <div class=\"card-footer\">\n <button kendoButton [look]=\"'flat'\" [themeColor]=\"'primary'\"\n (click)=\"OnRunNowClick()\" [disabled]=\"!Summary.Integration.IsActive\">\n <i class=\"fa-solid fa-play\"></i> Run Now\n </button>\n <button kendoButton [look]=\"'flat'\" (click)=\"OnExpandToggle()\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!Expanded\" [class.fa-chevron-up]=\"Expanded\"></i>\n History\n </button>\n </div>\n </div>\n `,\n styles: [`\n .integration-card {\n background: var(--card-bg, #fff);\n border: 1px solid var(--border-color, #e0e0e0);\n border-radius: 8px;\n padding: 16px;\n transition: box-shadow 0.2s;\n }\n .integration-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n .integration-card.inactive { opacity: 0.6; }\n\n .card-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n }\n .source-icon {\n width: 40px; height: 40px;\n border-radius: 8px;\n background: var(--icon-bg, #f0f4ff);\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: var(--primary-color, #4a6cf7);\n }\n .card-title-area { flex: 1; min-width: 0; }\n .card-title {\n margin: 0; font-size: 14px; font-weight: 600;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .source-type-label { font-size: 12px; color: #888; }\n\n .status-area {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-shrink: 0;\n }\n\n .status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n }\n .indicator-green { background: #1b7a3d; }\n .indicator-amber { background: #b5850a; }\n .indicator-red { background: #c62828; }\n .indicator-gray { background: #999; }\n\n .status-indicator.pulsing {\n animation: pulse 1.5s ease-in-out infinite;\n }\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.3); }\n }\n\n .status-chip {\n font-size: 11px; font-weight: 600; padding: 3px 8px;\n border-radius: 12px; text-transform: uppercase; white-space: nowrap;\n }\n .status-green { background: #e6f9ed; color: #1b7a3d; }\n .status-amber { background: #fff7e0; color: #b5850a; }\n .status-red { background: #fde8e8; color: #c62828; }\n .status-gray { background: #f0f0f0; color: #757575; }\n\n .card-body { margin-bottom: 12px; }\n .stat-row {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n }\n .stat-label { color: #666; }\n .stat-value { font-weight: 500; }\n .error-value { color: #c62828; }\n .error-badge {\n background: #fde8e8;\n color: #c62828;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 700;\n }\n\n /* Sparkline */\n .sparkline-row {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n padding: 8px 0;\n border-top: 1px solid #f0f0f0;\n margin-bottom: 4px;\n }\n .sparkline-label {\n font-size: 11px;\n color: #999;\n white-space: nowrap;\n }\n .sparkline {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n height: 24px;\n flex: 1;\n }\n .spark-bar {\n flex: 1;\n min-height: 2px;\n border-radius: 2px 2px 0 0;\n transition: height 0.3s ease;\n }\n .spark-success { background: #4a6cf7; }\n .spark-failed { background: #c62828; }\n .spark-pending { background: #b5850a; }\n\n .card-footer {\n display: flex; justify-content: space-between;\n border-top: 1px solid #eee; padding-top: 8px;\n }\n `]\n})\nexport class IntegrationCardComponent {\n @Input() Summary!: IntegrationSummary;\n @Input() Expanded: boolean = false;\n @Input() ViewProvider: IRunViewProvider | null = null;\n @Output() RunNowClick = new EventEmitter<string>();\n @Output() ExpandToggle = new EventEmitter<string>();\n\n get SourceIconClass(): string {\n if (this.Summary.SourceType?.IconClass) {\n return this.Summary.SourceType.IconClass;\n }\n return ResolveIntegrationIcon(\n this.Summary.Integration.Integration ?? this.Summary.Integration.Name,\n this.Summary.Icon\n );\n }\n\n get StatusLabel(): string {\n const color = this.Summary.StatusColor;\n if (color === 'green') return 'Healthy';\n if (color === 'amber') return 'Warning';\n if (color === 'red') return 'Failed';\n return 'Inactive';\n }\n\n get IsActivelySyncing(): boolean {\n return this.Summary.LatestRun?.Status === 'In Progress'\n || this.Summary.LatestRun?.Status === 'Pending';\n }\n\n get FormattedDuration(): string {\n const ms = this.Summary.DurationMs;\n if (ms == null) return '--';\n const totalSeconds = Math.floor(ms / 1000);\n if (totalSeconds < 60) return `${totalSeconds}s`;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n return `${minutes}m ${seconds}s`;\n }\n\n get MaxSparkRecords(): number {\n const maxVal = Math.max(...this.Summary.RecentRuns.map(r => r.TotalRecords));\n return maxVal > 0 ? maxVal : 1;\n }\n\n SparkBarHeight(records: number): number {\n return Math.max((records / this.MaxSparkRecords) * 100, 8);\n }\n\n OnRunNowClick(): void {\n this.RunNowClick.emit(this.Summary.Integration.ID);\n }\n\n OnExpandToggle(): void {\n this.ExpandToggle.emit(this.Summary.Integration.ID);\n }\n}\n"]}
1
+ {"version":3,"file":"integration-card.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/widgets/integration-card.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { IRunViewProvider } from '@memberjunction/core';\nimport { IntegrationSummary, ResolveIntegrationIcon } from '../../services/integration-data.service';\n\n@Component({\n standalone: false,\n selector: 'app-integration-card',\n template: `\n <div class=\"integration-card\" [class.inactive]=\"!Summary.Integration.IsActive\">\n <div class=\"card-header\">\n <div class=\"source-icon\">\n <i [class]=\"SourceIconClass\"></i>\n </div>\n <div class=\"card-title-area\">\n <h3 class=\"card-title\">{{ Summary.Integration.Name }}</h3>\n <span class=\"source-type-label\">{{ Summary.SourceType?.Name ?? 'Unknown' }}</span>\n </div>\n <div class=\"status-area\">\n <span class=\"status-indicator\" [class]=\"'indicator-' + Summary.StatusColor\"\n [class.pulsing]=\"IsActivelySyncing\"></span>\n <span class=\"status-chip\" [class]=\"'status-' + Summary.StatusColor\">\n {{ StatusLabel }}\n </span>\n </div>\n </div>\n\n <div class=\"card-body\">\n <div class=\"stat-row\">\n <span class=\"stat-label\">Last Run</span>\n <span class=\"stat-value\">{{ Summary.RelativeTime }}</span>\n </div>\n @if (Summary.LatestRun) {\n <div class=\"stat-row\">\n <span class=\"stat-label\">Records Synced</span>\n <span class=\"stat-value\">{{ Summary.LatestRun.TotalRecords | number }}</span>\n </div>\n <div class=\"stat-row\">\n <span class=\"stat-label\">Duration</span>\n <span class=\"stat-value\">{{ FormattedDuration }}</span>\n </div>\n }\n @if (Summary.TotalErrors > 0) {\n <div class=\"stat-row\">\n <span class=\"stat-label\">Errors</span>\n <span class=\"stat-value error-value\">\n <span class=\"error-badge\">{{ Summary.TotalErrors }}</span>\n </span>\n </div>\n }\n </div>\n\n <!-- Sparkline: records synced for last 5 runs -->\n @if (Summary.RecentRuns.length > 1) {\n <div class=\"sparkline-row\">\n <span class=\"sparkline-label\">Recent syncs</span>\n <div class=\"sparkline\">\n @for (run of Summary.RecentRuns; track run.ID) {\n <div class=\"spark-bar\"\n [style.height.%]=\"SparkBarHeight(run.TotalRecords)\"\n [class.spark-success]=\"run.Status === 'Success'\"\n [class.spark-failed]=\"run.Status === 'Failed'\"\n [class.spark-pending]=\"run.Status !== 'Success' && run.Status !== 'Failed'\"\n [title]=\"run.TotalRecords + ' records - ' + run.Status\">\n </div>\n }\n </div>\n </div>\n }\n\n <div class=\"card-footer\">\n <button mjButton variant=\"primary\" size=\"sm\"\n (click)=\"OnRunNowClick()\" [disabled]=\"!Summary.Integration.IsActive\">\n <i class=\"fa-solid fa-play\"></i> Run Now\n </button>\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"OnExpandToggle()\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!Expanded\" [class.fa-chevron-up]=\"Expanded\"></i>\n History\n </button>\n </div>\n </div>\n `,\n styles: [`\n .integration-card {\n background: var(--card-bg, #fff);\n border: 1px solid var(--border-color, #e0e0e0);\n border-radius: 8px;\n padding: 16px;\n transition: box-shadow 0.2s;\n }\n .integration-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n .integration-card.inactive { opacity: 0.6; }\n\n .card-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n }\n .source-icon {\n width: 40px; height: 40px;\n border-radius: 8px;\n background: var(--icon-bg, #f0f4ff);\n display: flex; align-items: center; justify-content: center;\n font-size: 18px; color: var(--primary-color, #4a6cf7);\n }\n .card-title-area { flex: 1; min-width: 0; }\n .card-title {\n margin: 0; font-size: 14px; font-weight: 600;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n }\n .source-type-label { font-size: 12px; color: #888; }\n\n .status-area {\n display: flex;\n align-items: center;\n gap: 6px;\n flex-shrink: 0;\n }\n\n .status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n }\n .indicator-green { background: #1b7a3d; }\n .indicator-amber { background: #b5850a; }\n .indicator-red { background: #c62828; }\n .indicator-gray { background: #999; }\n\n .status-indicator.pulsing {\n animation: pulse 1.5s ease-in-out infinite;\n }\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.5; transform: scale(1.3); }\n }\n\n .status-chip {\n font-size: 11px; font-weight: 600; padding: 3px 8px;\n border-radius: 12px; text-transform: uppercase; white-space: nowrap;\n }\n .status-green { background: #e6f9ed; color: #1b7a3d; }\n .status-amber { background: #fff7e0; color: #b5850a; }\n .status-red { background: #fde8e8; color: #c62828; }\n .status-gray { background: #f0f0f0; color: #757575; }\n\n .card-body { margin-bottom: 12px; }\n .stat-row {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n }\n .stat-label { color: #666; }\n .stat-value { font-weight: 500; }\n .error-value { color: #c62828; }\n .error-badge {\n background: #fde8e8;\n color: #c62828;\n padding: 1px 8px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 700;\n }\n\n /* Sparkline */\n .sparkline-row {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n padding: 8px 0;\n border-top: 1px solid #f0f0f0;\n margin-bottom: 4px;\n }\n .sparkline-label {\n font-size: 11px;\n color: #999;\n white-space: nowrap;\n }\n .sparkline {\n display: flex;\n align-items: flex-end;\n gap: 3px;\n height: 24px;\n flex: 1;\n }\n .spark-bar {\n flex: 1;\n min-height: 2px;\n border-radius: 2px 2px 0 0;\n transition: height 0.3s ease;\n }\n .spark-success { background: #4a6cf7; }\n .spark-failed { background: #c62828; }\n .spark-pending { background: #b5850a; }\n\n .card-footer {\n display: flex; justify-content: space-between;\n border-top: 1px solid #eee; padding-top: 8px;\n }\n `]\n})\nexport class IntegrationCardComponent {\n @Input() Summary!: IntegrationSummary;\n @Input() Expanded: boolean = false;\n @Input() ViewProvider: IRunViewProvider | null = null;\n @Output() RunNowClick = new EventEmitter<string>();\n @Output() ExpandToggle = new EventEmitter<string>();\n\n get SourceIconClass(): string {\n if (this.Summary.SourceType?.IconClass) {\n return this.Summary.SourceType.IconClass;\n }\n return ResolveIntegrationIcon(\n this.Summary.Integration.Integration ?? this.Summary.Integration.Name,\n this.Summary.Icon\n );\n }\n\n get StatusLabel(): string {\n const color = this.Summary.StatusColor;\n if (color === 'green') return 'Healthy';\n if (color === 'amber') return 'Warning';\n if (color === 'red') return 'Failed';\n return 'Inactive';\n }\n\n get IsActivelySyncing(): boolean {\n return this.Summary.LatestRun?.Status === 'In Progress'\n || this.Summary.LatestRun?.Status === 'Pending';\n }\n\n get FormattedDuration(): string {\n const ms = this.Summary.DurationMs;\n if (ms == null) return '--';\n const totalSeconds = Math.floor(ms / 1000);\n if (totalSeconds < 60) return `${totalSeconds}s`;\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n return `${minutes}m ${seconds}s`;\n }\n\n get MaxSparkRecords(): number {\n const maxVal = Math.max(...this.Summary.RecentRuns.map(r => r.TotalRecords));\n return maxVal > 0 ? maxVal : 1;\n }\n\n SparkBarHeight(records: number): number {\n return Math.max((records / this.MaxSparkRecords) * 100, 8);\n }\n\n OnRunNowClick(): void {\n this.RunNowClick.emit(this.Summary.Integration.ID);\n }\n\n OnExpandToggle(): void {\n this.ExpandToggle.emit(this.Summary.Integration.ID);\n }\n}\n"]}
@@ -10,18 +10,14 @@ import * as i8 from "./components/widgets/run-history-panel.component";
10
10
  import * as i9 from "./components/visual-editor/visual-editor.component";
11
11
  import * as i10 from "@angular/common";
12
12
  import * as i11 from "@angular/forms";
13
- import * as i12 from "@progress/kendo-angular-buttons";
14
- import * as i13 from "@progress/kendo-angular-dropdowns";
15
- import * as i14 from "@progress/kendo-angular-inputs";
16
- import * as i15 from "@progress/kendo-angular-grid";
17
- import * as i16 from "@progress/kendo-angular-layout";
18
- import * as i17 from "@memberjunction/ng-shared-generic";
19
- import * as i18 from "@memberjunction/ng-credentials";
20
- import * as i19 from "@memberjunction/ng-trees";
21
- import * as i20 from "@memberjunction/ng-scheduling";
13
+ import * as i12 from "@memberjunction/ng-ui-components";
14
+ import * as i13 from "@memberjunction/ng-shared-generic";
15
+ import * as i14 from "@memberjunction/ng-credentials";
16
+ import * as i15 from "@memberjunction/ng-trees";
17
+ import * as i16 from "@memberjunction/ng-scheduling";
22
18
  export declare class IntegrationModule {
23
19
  static ɵfac: i0.ɵɵFactoryDeclaration<IntegrationModule, never>;
24
- static ɵmod: i0.ɵɵNgModuleDeclaration<IntegrationModule, [typeof i1.OverviewComponent, typeof i2.PipelinesComponent, typeof i3.ConnectionsComponent, typeof i4.MappingWorkspaceComponent, typeof i5.ActivityComponent, typeof i6.SchedulesComponent, typeof i7.IntegrationCardComponent, typeof i8.RunHistoryPanelComponent, typeof i9.VisualFieldEditorComponent], [typeof i10.CommonModule, typeof i11.FormsModule, typeof i12.ButtonsModule, typeof i13.DropDownsModule, typeof i14.InputsModule, typeof i15.GridModule, typeof i16.LayoutModule, typeof i17.SharedGenericModule, typeof i18.CredentialsModule, typeof i19.NgTreesModule, typeof i20.SchedulingModule], [typeof i1.OverviewComponent, typeof i2.PipelinesComponent, typeof i3.ConnectionsComponent, typeof i4.MappingWorkspaceComponent, typeof i5.ActivityComponent, typeof i6.SchedulesComponent, typeof i7.IntegrationCardComponent, typeof i8.RunHistoryPanelComponent, typeof i9.VisualFieldEditorComponent]>;
20
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IntegrationModule, [typeof i1.OverviewComponent, typeof i2.PipelinesComponent, typeof i3.ConnectionsComponent, typeof i4.MappingWorkspaceComponent, typeof i5.ActivityComponent, typeof i6.SchedulesComponent, typeof i7.IntegrationCardComponent, typeof i8.RunHistoryPanelComponent, typeof i9.VisualFieldEditorComponent], [typeof i10.CommonModule, typeof i11.FormsModule, typeof i12.MJButtonDirective, typeof i12.MJComboboxComponent, typeof i12.MJDropdownComponent, typeof i12.MJSwitchComponent, typeof i13.SharedGenericModule, typeof i14.CredentialsModule, typeof i15.NgTreesModule, typeof i16.SchedulingModule], [typeof i1.OverviewComponent, typeof i2.PipelinesComponent, typeof i3.ConnectionsComponent, typeof i4.MappingWorkspaceComponent, typeof i5.ActivityComponent, typeof i6.SchedulesComponent, typeof i7.IntegrationCardComponent, typeof i8.RunHistoryPanelComponent, typeof i9.VisualFieldEditorComponent]>;
25
21
  static ɵinj: i0.ɵɵInjectorDeclaration<IntegrationModule>;
26
22
  }
27
23
  //# sourceMappingURL=integration.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integration.module.d.ts","sourceRoot":"","sources":["../../src/Integration/integration.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,qBAwCa,iBAAiB;yCAAjB,iBAAiB;0CAAjB,iBAAiB;0CAAjB,iBAAiB;CAAI"}
1
+ {"version":3,"file":"integration.module.d.ts","sourceRoot":"","sources":["../../src/Integration/integration.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAoBA,qBAuCa,iBAAiB;yCAAjB,iBAAiB;0CAAjB,iBAAiB;0CAAjB,iBAAiB;CAAI"}
@@ -1,11 +1,7 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
- import { ButtonsModule } from '@progress/kendo-angular-buttons';
5
- import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
6
- import { InputsModule } from '@progress/kendo-angular-inputs';
7
- import { GridModule } from '@progress/kendo-angular-grid';
8
- import { LayoutModule } from '@progress/kendo-angular-layout';
4
+ import { MJButtonDirective, MJComboboxComponent, MJDropdownComponent, MJSwitchComponent } from '@memberjunction/ng-ui-components';
9
5
  import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
10
6
  import { CredentialsModule } from '@memberjunction/ng-credentials';
11
7
  import { NgTreesModule } from '@memberjunction/ng-trees';
@@ -28,11 +24,9 @@ export class IntegrationModule {
28
24
  IntegrationDataService
29
25
  ], imports: [CommonModule,
30
26
  FormsModule,
31
- ButtonsModule,
32
- DropDownsModule,
33
- InputsModule,
34
- GridModule,
35
- LayoutModule,
27
+ MJComboboxComponent,
28
+ MJDropdownComponent,
29
+ MJSwitchComponent,
36
30
  SharedGenericModule,
37
31
  CredentialsModule,
38
32
  NgTreesModule,
@@ -55,11 +49,10 @@ export class IntegrationModule {
55
49
  imports: [
56
50
  CommonModule,
57
51
  FormsModule,
58
- ButtonsModule,
59
- DropDownsModule,
60
- InputsModule,
61
- GridModule,
62
- LayoutModule,
52
+ MJButtonDirective,
53
+ MJComboboxComponent,
54
+ MJDropdownComponent,
55
+ MJSwitchComponent,
63
56
  SharedGenericModule,
64
57
  CredentialsModule,
65
58
  NgTreesModule,
@@ -91,11 +84,10 @@ export class IntegrationModule {
91
84
  RunHistoryPanelComponent,
92
85
  VisualFieldEditorComponent], imports: [CommonModule,
93
86
  FormsModule,
94
- ButtonsModule,
95
- DropDownsModule,
96
- InputsModule,
97
- GridModule,
98
- LayoutModule,
87
+ MJButtonDirective,
88
+ MJComboboxComponent,
89
+ MJDropdownComponent,
90
+ MJSwitchComponent,
99
91
  SharedGenericModule,
100
92
  CredentialsModule,
101
93
  NgTreesModule,
@@ -1 +1 @@
1
- {"version":3,"file":"integration.module.js","sourceRoot":"","sources":["../../src/Integration/integration.module.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\nimport { GridModule } from '@progress/kendo-angular-grid';\nimport { LayoutModule } from '@progress/kendo-angular-layout';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { CredentialsModule } from '@memberjunction/ng-credentials';\nimport { NgTreesModule } from '@memberjunction/ng-trees';\nimport { SchedulingModule } from '@memberjunction/ng-scheduling';\n\nimport { OverviewComponent } from './components/overview/overview.component';\nimport { PipelinesComponent } from './components/pipelines/pipelines.component';\nimport { ConnectionsComponent } from './components/connections/connections.component';\nimport { MappingWorkspaceComponent } from './components/mapping-workspace/mapping-workspace.component';\nimport { ActivityComponent } from './components/activity/activity.component';\nimport { SchedulesComponent } from './components/schedules/schedules.component';\nimport { IntegrationCardComponent } from './components/widgets/integration-card.component';\nimport { RunHistoryPanelComponent } from './components/widgets/run-history-panel.component';\nimport { VisualFieldEditorComponent } from './components/visual-editor/visual-editor.component';\nimport { IntegrationDataService } from './services/integration-data.service';\n\n@NgModule({\n declarations: [\n OverviewComponent,\n PipelinesComponent,\n ConnectionsComponent,\n MappingWorkspaceComponent,\n ActivityComponent,\n SchedulesComponent,\n IntegrationCardComponent,\n RunHistoryPanelComponent,\n VisualFieldEditorComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n ButtonsModule,\n DropDownsModule,\n InputsModule,\n GridModule,\n LayoutModule,\n SharedGenericModule,\n CredentialsModule,\n NgTreesModule,\n SchedulingModule\n ],\n providers: [\n IntegrationDataService\n ],\n exports: [\n OverviewComponent,\n PipelinesComponent,\n ConnectionsComponent,\n MappingWorkspaceComponent,\n ActivityComponent,\n SchedulesComponent,\n IntegrationCardComponent,\n RunHistoryPanelComponent,\n VisualFieldEditorComponent\n ]\n})\nexport class IntegrationModule { }\n"]}
1
+ {"version":3,"file":"integration.module.js","sourceRoot":"","sources":["../../src/Integration/integration.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAClI,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,oDAAoD,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;;AAyC7E,MAAM,OAAO,iBAAiB;2GAAjB,iBAAiB;4DAAjB,iBAAiB;iEAfjB;YACT,sBAAsB;SACvB,YAbC,YAAY;YACZ,WAAW;YAEX,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;YACjB,mBAAmB;YACnB,iBAAiB;YACjB,aAAa;YACb,gBAAgB;;iFAiBP,iBAAiB;cAvC7B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,iBAAiB;oBACjB,kBAAkB;oBAClB,oBAAoB;oBACpB,yBAAyB;oBACzB,iBAAiB;oBACjB,kBAAkB;oBAClB,wBAAwB;oBACxB,wBAAwB;oBACxB,0BAA0B;iBAC3B;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;oBACX,iBAAiB;oBACjB,mBAAmB;oBACnB,mBAAmB;oBACnB,iBAAiB;oBACjB,mBAAmB;oBACnB,iBAAiB;oBACjB,aAAa;oBACb,gBAAgB;iBACjB;gBACD,SAAS,EAAE;oBACT,sBAAsB;iBACvB;gBACD,OAAO,EAAE;oBACP,iBAAiB;oBACjB,kBAAkB;oBAClB,oBAAoB;oBACpB,yBAAyB;oBACzB,iBAAiB;oBACjB,kBAAkB;oBAClB,wBAAwB;oBACxB,wBAAwB;oBACxB,0BAA0B;iBAC3B;aACF;;wFACY,iBAAiB,mBArC1B,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,yBAAyB;QACzB,iBAAiB;QACjB,kBAAkB;QAClB,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B,aAG1B,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,iBAAiB;QACjB,aAAa;QACb,gBAAgB,aAMhB,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,yBAAyB;QACzB,iBAAiB;QACjB,kBAAkB;QAClB,wBAAwB;QACxB,wBAAwB;QACxB,0BAA0B","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJButtonDirective, MJComboboxComponent, MJDropdownComponent, MJSwitchComponent } from '@memberjunction/ng-ui-components';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { CredentialsModule } from '@memberjunction/ng-credentials';\nimport { NgTreesModule } from '@memberjunction/ng-trees';\nimport { SchedulingModule } from '@memberjunction/ng-scheduling';\n\nimport { OverviewComponent } from './components/overview/overview.component';\nimport { PipelinesComponent } from './components/pipelines/pipelines.component';\nimport { ConnectionsComponent } from './components/connections/connections.component';\nimport { MappingWorkspaceComponent } from './components/mapping-workspace/mapping-workspace.component';\nimport { ActivityComponent } from './components/activity/activity.component';\nimport { SchedulesComponent } from './components/schedules/schedules.component';\nimport { IntegrationCardComponent } from './components/widgets/integration-card.component';\nimport { RunHistoryPanelComponent } from './components/widgets/run-history-panel.component';\nimport { VisualFieldEditorComponent } from './components/visual-editor/visual-editor.component';\nimport { IntegrationDataService } from './services/integration-data.service';\n\n@NgModule({\n declarations: [\n OverviewComponent,\n PipelinesComponent,\n ConnectionsComponent,\n MappingWorkspaceComponent,\n ActivityComponent,\n SchedulesComponent,\n IntegrationCardComponent,\n RunHistoryPanelComponent,\n VisualFieldEditorComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n MJButtonDirective,\n MJComboboxComponent,\n MJDropdownComponent,\n MJSwitchComponent,\n SharedGenericModule,\n CredentialsModule,\n NgTreesModule,\n SchedulingModule\n ],\n providers: [\n IntegrationDataService\n ],\n exports: [\n OverviewComponent,\n PipelinesComponent,\n ConnectionsComponent,\n MappingWorkspaceComponent,\n ActivityComponent,\n SchedulesComponent,\n IntegrationCardComponent,\n RunHistoryPanelComponent,\n VisualFieldEditorComponent\n ]\n})\nexport class IntegrationModule { }\n"]}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * @fileoverview Knowledge Hub Clusters Dashboard Tab
3
+ *
4
+ * Full-page cluster visualization with:
5
+ * - Left sidebar: saved cluster visualizations (persisted via UserInfoEngine)
6
+ * - Main area: SVG scatter plot (mj-cluster-scatter)
7
+ * - Floating config panel (mj-cluster-config-panel)
8
+ * - Top metrics bar
9
+ *
10
+ * Registered as BaseResourceComponent for the Knowledge Hub application.
11
+ */
12
+ import { OnDestroy, AfterViewInit } from '@angular/core';
13
+ import { ResourceData } from '@memberjunction/core-entities';
14
+ import { BaseResourceComponent } from '@memberjunction/ng-shared';
15
+ import { ClusterConfig, ClusterConfigPanelEntityOption, ClusterConfigPanelEntityDocOption, ClusterVisualizationResult, ClusterMetrics, ClusterPoint, ClusterLabel, SavedClusterVisualization } from '@memberjunction/ng-clustering';
16
+ import { ClusterScatterComponent } from '@memberjunction/ng-clustering';
17
+ import * as i0 from "@angular/core";
18
+ export declare class ClusterVisualizationResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
19
+ scatterPlot?: ClusterScatterComponent;
20
+ private cdr;
21
+ private clusteringService;
22
+ private navigationService;
23
+ private destroy$;
24
+ /** LLM-generated cluster labels for the current result */
25
+ ClusterLabels: ClusterLabel[];
26
+ GetResourceDisplayName(_data: ResourceData): Promise<string>;
27
+ GetResourceIconClass(_data: ResourceData): Promise<string>;
28
+ /** Current visualization result */
29
+ Result: ClusterVisualizationResult | null;
30
+ /** Whether a clustering run is in progress */
31
+ IsRunning: boolean;
32
+ /** The active cluster config */
33
+ ActiveConfig: ClusterConfig;
34
+ /** Title for the top bar */
35
+ VisualizationTitle: string;
36
+ /** Entity options for the config panel dropdown */
37
+ EntityOptions: ClusterConfigPanelEntityOption[];
38
+ /** Entity document options for the selected entity (shown when 2+) */
39
+ EntityDocOptions: ClusterConfigPanelEntityDocOption[];
40
+ SavedVisualizations: SavedClusterVisualization[];
41
+ ActiveSavedId: string | null;
42
+ private userSettingEntity;
43
+ ngAfterViewInit(): Promise<void>;
44
+ ngOnDestroy(): void;
45
+ get Metrics(): ClusterMetrics | null;
46
+ get HasResult(): boolean;
47
+ get SilhouetteScoreFormatted(): string;
48
+ get IsSilhouetteGood(): boolean;
49
+ get ComputationTimeFormatted(): string;
50
+ /** Handle "Run Clustering" from the config panel */
51
+ OnRunClustering(config: ClusterConfig): Promise<void>;
52
+ /** Handle point click — log for now */
53
+ OnPointClicked(_point: ClusterPoint): void;
54
+ /** Handle point hover */
55
+ OnPointHovered(_point: ClusterPoint | null): void;
56
+ /** Navigate to the entity record when "Open Record" is clicked in the detail panel */
57
+ OnOpenRecord(point: ClusterPoint): void;
58
+ /** Save the current visualization */
59
+ OnSaveVisualization(): Promise<void>;
60
+ /** Select a saved visualization — restore from cache if available, otherwise re-run */
61
+ OnSelectSaved(saved: SavedClusterVisualization): Promise<void>;
62
+ /** Delete a saved visualization */
63
+ OnDeleteSaved(saved: SavedClusterVisualization, event: MouseEvent): Promise<void>;
64
+ /** Start a new analysis (clear current) */
65
+ OnNewAnalysis(): void;
66
+ IsActiveSaved(saved: SavedClusterVisualization): boolean;
67
+ TrackSavedBy(_index: number, saved: SavedClusterVisualization): string;
68
+ FormatDate(iso: string): string;
69
+ /** Populate the entity options for the config panel dropdown */
70
+ private loadEntityOptions;
71
+ /** Update entity document options when the selected entity changes */
72
+ private updateEntityDocOptions;
73
+ /**
74
+ * Fetch vectors from Entity Document Runs via RunView.
75
+ * Entity Documents store vectorized entity data; we query for runs
76
+ * that match the requested entity.
77
+ */
78
+ private fetchVectorsForEntity;
79
+ /** Parse the JSON metadata string from the vector DB into a record */
80
+ private parseVectorMetadata;
81
+ /** Build a human-readable label from vector metadata (prefers Name field, falls back to RecordID) */
82
+ private buildLabel;
83
+ /**
84
+ * After clustering completes, send sample records per cluster to an LLM for naming.
85
+ * Updates ClusterLabels and refreshes the view.
86
+ */
87
+ private requestClusterLabelsFromLLM;
88
+ /** Build a text block describing sample records per cluster for the LLM prompt */
89
+ private buildClusterDataForPrompt;
90
+ /** Apply cluster labels to the result's Clusters array (sets the Label property) */
91
+ private applyLabelsToResult;
92
+ /**
93
+ * Strip full vector arrays from the result before saving (they're large and not needed for display).
94
+ * Keeps points with 2D coordinates and metadata but removes the original high-dimensional vectors.
95
+ */
96
+ private stripVectorsFromResult;
97
+ /** Load saved visualizations from UserInfoEngine settings */
98
+ private loadSavedVisualizations;
99
+ /** Persist saved visualizations to UserInfoEngine settings */
100
+ private persistSavedVisualizations;
101
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClusterVisualizationResourceComponent, never>;
102
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClusterVisualizationResourceComponent, "app-cluster-visualization-resource", never, {}, {}, never, never, false, never>;
103
+ }
104
+ /** Tree-shaking prevention */
105
+ export declare function LoadClusterVisualizationResource(): void;
106
+ //# sourceMappingURL=cluster-visualization-resource.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-visualization-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/KnowledgeHub/components/clusters/cluster-visualization-resource.component.ts"],"names":[],"mappings":"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"}