@memberjunction/ng-dashboards 5.23.0 → 5.25.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 (296) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +15 -33
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +233 -493
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.d.ts +2 -2
  6. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-editor.component.js +7 -7
  8. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  9. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +717 -8
  10. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +7166 -1889
  12. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  13. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +50 -4
  14. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  15. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +759 -491
  16. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  17. package/dist/AI/components/execution-monitoring.component.d.ts +4 -5
  18. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  19. package/dist/AI/components/execution-monitoring.component.js +14 -15
  20. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  21. package/dist/AI/components/models/model-management.component.d.ts +4 -4
  22. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  23. package/dist/AI/components/models/model-management.component.js +5 -5
  24. package/dist/AI/components/models/model-management.component.js.map +1 -1
  25. package/dist/AI/components/prompts/prompt-management.component.d.ts +4 -4
  26. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  27. package/dist/AI/components/prompts/prompt-management.component.js +5 -5
  28. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  29. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +2 -1
  30. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  31. package/dist/AI/components/requests/agent-requests-resource.component.js +1 -0
  32. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  33. package/dist/AI/components/system/system-configuration.component.d.ts +2 -3
  34. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  35. package/dist/AI/components/system/system-configuration.component.js +9 -11
  36. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  37. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +62 -7
  38. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  39. package/dist/AI/components/vectors/vector-management-resource.component.js +825 -359
  40. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  41. package/dist/APIKeys/api-keys-resource.component.d.ts +2 -1
  42. package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
  43. package/dist/APIKeys/api-keys-resource.component.js +2 -0
  44. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  45. package/dist/Actions/components/actions-overview.component.d.ts +4 -5
  46. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  47. package/dist/Actions/components/actions-overview.component.js +11 -12
  48. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  49. package/dist/Actions/components/code-management.component.d.ts +2 -3
  50. package/dist/Actions/components/code-management.component.d.ts.map +1 -1
  51. package/dist/Actions/components/code-management.component.js +4 -6
  52. package/dist/Actions/components/code-management.component.js.map +1 -1
  53. package/dist/Actions/components/entity-integration.component.d.ts +2 -3
  54. package/dist/Actions/components/entity-integration.component.d.ts.map +1 -1
  55. package/dist/Actions/components/entity-integration.component.js +4 -6
  56. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  57. package/dist/Actions/components/execution-monitoring.component.d.ts +4 -5
  58. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  59. package/dist/Actions/components/execution-monitoring.component.js +10 -11
  60. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  61. package/dist/Actions/components/explorer/action-explorer.component.d.ts +13 -12
  62. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  63. package/dist/Actions/components/explorer/action-explorer.component.js +39 -66
  64. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  65. package/dist/Actions/components/scheduled-actions.component.d.ts +2 -3
  66. package/dist/Actions/components/scheduled-actions.component.d.ts.map +1 -1
  67. package/dist/Actions/components/scheduled-actions.component.js +4 -6
  68. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  69. package/dist/Actions/components/security-permissions.component.d.ts +2 -3
  70. package/dist/Actions/components/security-permissions.component.d.ts.map +1 -1
  71. package/dist/Actions/components/security-permissions.component.js +4 -6
  72. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  73. package/dist/ApplicationRoles/application-roles-resource.component.d.ts +112 -0
  74. package/dist/ApplicationRoles/application-roles-resource.component.d.ts.map +1 -0
  75. package/dist/ApplicationRoles/application-roles-resource.component.js +532 -0
  76. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -0
  77. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  78. package/dist/Communication/communication-dashboard.component.js +1 -0
  79. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  80. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  81. package/dist/Communication/communication-logs-resource.component.js +4 -1
  82. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  83. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  84. package/dist/Communication/communication-monitor-resource.component.js +4 -1
  85. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  86. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  87. package/dist/Communication/communication-providers-resource.component.js +4 -1
  88. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  89. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  90. package/dist/Communication/communication-runs-resource.component.js +4 -1
  91. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  92. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  93. package/dist/Communication/communication-templates-resource.component.js +4 -1
  94. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  95. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +2 -1
  96. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  97. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  98. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  99. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  100. package/dist/Credentials/components/credentials-audit-resource.component.js +2 -0
  101. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  102. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +2 -3
  103. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
  104. package/dist/Credentials/components/credentials-categories-resource.component.js +10 -11
  105. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  106. package/dist/Credentials/components/credentials-list-resource.component.d.ts +2 -1
  107. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  108. package/dist/Credentials/components/credentials-list-resource.component.js +2 -0
  109. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  110. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +4 -4
  111. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
  112. package/dist/Credentials/components/credentials-overview-resource.component.js +8 -9
  113. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  114. package/dist/Credentials/components/credentials-types-resource.component.d.ts +2 -3
  115. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  116. package/dist/Credentials/components/credentials-types-resource.component.js +11 -12
  117. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  118. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -1
  119. package/dist/Credentials/credentials-dashboard.component.js +1 -0
  120. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  121. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +2 -3
  122. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  123. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +9 -10
  124. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  125. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +2 -2
  126. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +23 -15
  127. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  128. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +167 -213
  129. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  130. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +68 -32
  131. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  132. package/dist/DataExplorer/data-explorer-dashboard.component.js +470 -437
  133. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  134. package/dist/DataExplorer/data-explorer-resource.component.d.ts +10 -3
  135. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  136. package/dist/DataExplorer/data-explorer-resource.component.js +35 -11
  137. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  138. package/dist/DataExplorer/models/explorer-state.interface.d.ts +12 -3
  139. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  140. package/dist/DataExplorer/models/explorer-state.interface.js +5 -1
  141. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  142. package/dist/Home/home-dashboard.component.d.ts +4 -4
  143. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  144. package/dist/Home/home-dashboard.component.js +4 -5
  145. package/dist/Home/home-dashboard.component.js.map +1 -1
  146. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.js +2 -0
  148. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  149. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  150. package/dist/Integration/components/connections/connections.component.js +3 -0
  151. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  152. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2 -0
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
  156. package/dist/Integration/components/overview/overview.component.js +3 -0
  157. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +3 -0
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
  162. package/dist/Integration/components/schedules/schedules.component.js +3 -0
  163. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  164. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +412 -0
  165. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -0
  166. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +4267 -0
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -0
  168. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +39 -4
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +187 -13
  171. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +13 -2
  173. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
  174. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +329 -224
  175. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +76 -0
  177. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -0
  178. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +602 -0
  179. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -0
  180. package/dist/KnowledgeHub/index.d.ts +2 -1
  181. package/dist/KnowledgeHub/index.d.ts.map +1 -1
  182. package/dist/KnowledgeHub/index.js +2 -1
  183. package/dist/KnowledgeHub/index.js.map +1 -1
  184. package/dist/Lists/components/lists-browse-resource.component.d.ts +2 -1
  185. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  186. package/dist/Lists/components/lists-browse-resource.component.js +2 -0
  187. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  188. package/dist/Lists/components/lists-categories-resource.component.d.ts +2 -1
  189. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  190. package/dist/Lists/components/lists-categories-resource.component.js +2 -0
  191. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  192. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +2 -1
  193. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  194. package/dist/Lists/components/lists-my-lists-resource.component.js +2 -0
  195. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  196. package/dist/Lists/components/lists-operations-resource.component.d.ts +2 -1
  197. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  198. package/dist/Lists/components/lists-operations-resource.component.js +2 -0
  199. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  200. package/dist/MCP/mcp-dashboard.component.d.ts +7 -28
  201. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  202. package/dist/MCP/mcp-dashboard.component.js +25 -107
  203. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  204. package/dist/MCP/mcp-resource.component.d.ts.map +1 -1
  205. package/dist/MCP/mcp-resource.component.js +1 -0
  206. package/dist/MCP/mcp-resource.component.js.map +1 -1
  207. package/dist/QueryBrowser/query-browser-resource.component.d.ts +10 -23
  208. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  209. package/dist/QueryBrowser/query-browser-resource.component.js +41 -103
  210. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  211. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity-resource.component.js +1 -0
  213. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +1 -0
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  217. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  218. package/dist/Scheduling/components/scheduling-overview-resource.component.js +1 -0
  219. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  220. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  221. package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
  222. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  223. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -4
  224. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  225. package/dist/SystemDiagnostics/system-diagnostics.component.js +9 -10
  226. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  227. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  228. package/dist/Testing/components/testing-analytics-resource.component.js +2 -0
  229. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  230. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  231. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  232. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +2 -0
  233. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  234. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  235. package/dist/Testing/components/testing-explorer-resource.component.js +2 -0
  236. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  237. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-review-resource.component.js +2 -0
  239. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  241. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-runs-resource.component.js +2 -0
  243. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  244. package/dist/Testing/testing-dashboard.component.d.ts +2 -1
  245. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  246. package/dist/Testing/testing-dashboard.component.js +1 -0
  247. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  248. package/dist/VersionHistory/components/diff-resource.component.d.ts +4 -4
  249. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  250. package/dist/VersionHistory/components/diff-resource.component.js +9 -10
  251. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  252. package/dist/VersionHistory/components/graph-resource.component.d.ts +2 -1
  253. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
  254. package/dist/VersionHistory/components/graph-resource.component.js +2 -0
  255. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  256. package/dist/VersionHistory/components/labels-resource.component.d.ts +4 -4
  257. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  258. package/dist/VersionHistory/components/labels-resource.component.js +10 -11
  259. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  260. package/dist/VersionHistory/components/restore-resource.component.d.ts +2 -1
  261. package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
  262. package/dist/VersionHistory/components/restore-resource.component.js +2 -0
  263. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  264. package/dist/__tests__/analytics-resource.test.d.ts +2 -0
  265. package/dist/__tests__/analytics-resource.test.d.ts.map +1 -0
  266. package/dist/__tests__/analytics-resource.test.js +181 -0
  267. package/dist/__tests__/analytics-resource.test.js.map +1 -0
  268. package/dist/__tests__/scheduling.test.d.ts +2 -0
  269. package/dist/__tests__/scheduling.test.d.ts.map +1 -0
  270. package/dist/__tests__/scheduling.test.js +205 -0
  271. package/dist/__tests__/scheduling.test.js.map +1 -0
  272. package/dist/ai-dashboards.module.d.ts +22 -18
  273. package/dist/ai-dashboards.module.d.ts.map +1 -1
  274. package/dist/ai-dashboards.module.js +29 -10
  275. package/dist/ai-dashboards.module.js.map +1 -1
  276. package/dist/core-dashboards.module.d.ts +19 -18
  277. package/dist/core-dashboards.module.d.ts.map +1 -1
  278. package/dist/core-dashboards.module.js +8 -0
  279. package/dist/core-dashboards.module.js.map +1 -1
  280. package/dist/data-explorer-dashboards.module.d.ts +2 -1
  281. package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
  282. package/dist/data-explorer-dashboards.module.js +7 -3
  283. package/dist/data-explorer-dashboards.module.js.map +1 -1
  284. package/dist/public-api.d.ts +2 -1
  285. package/dist/public-api.d.ts.map +1 -1
  286. package/dist/public-api.js +3 -1
  287. package/dist/public-api.js.map +1 -1
  288. package/dist/shared/entity-field-display.d.ts +44 -0
  289. package/dist/shared/entity-field-display.d.ts.map +1 -0
  290. package/dist/shared/entity-field-display.js +118 -0
  291. package/dist/shared/entity-field-display.js.map +1 -0
  292. package/package.json +47 -46
  293. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +0 -85
  294. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +0 -1
  295. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +0 -461
  296. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"overview.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/overview/overview.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAGL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,yCAAyC,CAAC;;AAEjD,KAAK,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1D,UAAU,kBAAkB;IAC1B,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAOa,iBAAkB,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAEvF,SAAS,EAAE,kBAAkB,EAAE,CAAM;IACrC,IAAI,EAAE,eAAe,CAMnB;IACF,YAAY,EAAE,gBAAgB,EAAE,CAAM;IACtC,WAAW,EAAE,gBAAgB,EAAE,CAAM;IACrC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEjD,SAAS,UAAS;IAClB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAE/C,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,iBAAiB,CAA8C;IAEjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,WAAW,IAAI,IAAI;IAQb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAQzC,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,IAAI,mBAAmB,IAAI,MAAM,CAIhC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAIzC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAUnC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAUvD,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAIjD,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAO9C,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAOhD,oBAAoB,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAOrD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAQlD,IAAI,eAAe,IAAI,MAAM,CAI5B;IAED,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQlC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAW1C,mBAAmB,IAAI,IAAI;IASrB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YAQlD,mBAAmB;YASnB,iBAAiB;IAc/B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,sBAAsB;yCAtQnB,iBAAiB;2CAAjB,iBAAiB;CA4Q7B;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
1
+ {"version":3,"file":"overview.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/overview/overview.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAGL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,yCAAyC,CAAC;;AAEjD,KAAK,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1D,UAAU,kBAAkB;IAC1B,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAOa,iBAAkB,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAEvF,SAAS,EAAE,kBAAkB,EAAE,CAAM;IACrC,IAAI,EAAE,eAAe,CAMnB;IACF,YAAY,EAAE,gBAAgB,EAAE,CAAM;IACtC,WAAW,EAAE,gBAAgB,EAAE,CAAM;IACrC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEjD,SAAS,UAAS;IAClB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAE/C,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,iBAAiB,CAA8C;IAEjE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,WAAW,IAAI,IAAI;IASb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAQzC,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,IAAI,mBAAmB,IAAI,MAAM,CAIhC;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAIzC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAUnC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAUvD,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAIjD,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAO9C,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAOhD,oBAAoB,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAOrD,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAQlD,IAAI,eAAe,IAAI,MAAM,CAI5B;IAED,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQlC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAW1C,mBAAmB,IAAI,IAAI;IASrB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YAQlD,mBAAmB;YASnB,iBAAiB;IAc/B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,sBAAsB;yCAzQnB,iBAAiB;2CAAjB,iBAAiB;CA+Q7B;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
@@ -377,9 +377,12 @@ let OverviewComponent = class OverviewComponent extends BaseResourceComponent {
377
377
  cdr = inject(ChangeDetectorRef);
378
378
  notificationTimer = null;
379
379
  async ngOnInit() {
380
+ super.ngOnInit();
380
381
  await this.LoadData();
382
+ this.NotifyLoadComplete();
381
383
  }
382
384
  ngOnDestroy() {
385
+ super.ngOnDestroy();
383
386
  this.clearNotificationTimer();
384
387
  }
385
388
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"overview.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/overview/overview.component.ts","../../../../src/Integration/components/overview/overview.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { RunView, IRunViewProvider } from '@memberjunction/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport {\n IntegrationDataService,\n ResolveIntegrationIcon,\n IntegrationSummary,\n IntegrationKPIs,\n ActivityFeedItem,\n DailyRecordCount,\n EntityMapRow\n} from '../../services/integration-data.service';\n\ntype StatusColorType = 'green' | 'amber' | 'red' | 'gray';\n\ninterface NotificationBanner {\n Type: 'success' | 'error';\n Message: string;\n}\n\n@RegisterClass(BaseResourceComponent, 'IntegrationOverview')\n@Component({\n standalone: false,\n selector: 'app-integration-overview',\n templateUrl: './overview.component.html',\n styleUrls: ['./overview.component.css']\n})\nexport class OverviewComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n Summaries: IntegrationSummary[] = [];\n KPIs: IntegrationKPIs = {\n TotalIntegrations: 0,\n ActiveSyncs: 0,\n RecordsSyncedToday: 0,\n ErrorRate: 0,\n AverageSyncDurationMs: null\n };\n ActivityFeed: ActivityFeedItem[] = [];\n DailyCounts: DailyRecordCount[] = [];\n EntityMapCounts: Map<string, number> = new Map();\n\n IsLoading = false;\n RunningIntegrationID: string | null = null;\n Notification: NotificationBanner | null = null;\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n private notificationTimer: ReturnType<typeof setTimeout> | null = null;\n\n async ngOnInit(): Promise<void> {\n await this.LoadData();\n }\n\n ngOnDestroy(): void {\n this.clearNotificationTimer();\n }\n\n // ---------------------------------------------------------------------------\n // Data Loading\n // ---------------------------------------------------------------------------\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const [summaries, activityFeed, dailyCounts] = await Promise.all([\n this.dataService.LoadIntegrationSummaries(provider),\n this.dataService.LoadRecentRuns(10, provider),\n this.dataService.LoadDailyRecordCounts(7, provider)\n ]);\n this.Summaries = summaries;\n this.KPIs = this.dataService.ComputeKPIs(summaries);\n this.ActivityFeed = activityFeed;\n this.DailyCounts = dailyCounts;\n await this.loadEntityMapCounts(summaries, provider);\n } catch (err) {\n console.error('[IntegrationOverview] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n async Refresh(): Promise<void> {\n await this.LoadData();\n }\n\n // ---------------------------------------------------------------------------\n // Sync Actions\n // ---------------------------------------------------------------------------\n\n async RunSync(integrationID: string): Promise<void> {\n if (this.RunningIntegrationID) return;\n this.RunningIntegrationID = integrationID;\n this.dismissNotification();\n this.cdr.detectChanges();\n\n try {\n const result = await this.dataService.RunSync(integrationID);\n if (result.Success) {\n this.showNotification('success', result.Message || 'Sync started successfully');\n await this.LoadData();\n } else {\n this.showNotification('error', result.Message || 'Sync failed');\n }\n } catch (err) {\n const error = err as Error;\n this.showNotification('error', `Unexpected error: ${error.message}`);\n console.error('[IntegrationOverview] RunSync error:', err);\n } finally {\n this.RunningIntegrationID = null;\n this.cdr.detectChanges();\n }\n }\n\n IsRunning(integrationID: string): boolean {\n return UUIDsEqual(this.RunningIntegrationID, integrationID);\n }\n\n // ---------------------------------------------------------------------------\n // KPI Helpers\n // ---------------------------------------------------------------------------\n\n get SuccessRate(): number {\n if (this.KPIs.ErrorRate == null) return 100;\n return Math.round((100 - this.KPIs.ErrorRate) * 10) / 10;\n }\n\n get SuccessRateGradient(): string {\n const pct = this.SuccessRate;\n const angle = (pct / 100) * 360;\n return `conic-gradient(#10b981 ${angle}deg, #e5e7eb ${angle}deg)`;\n }\n\n get ActiveCount(): number {\n return this.KPIs.ActiveSyncs;\n }\n\n FormatDuration(ms: number | null): string {\n return this.dataService.FormatDuration(ms);\n }\n\n FormatNumber(value: number): string {\n if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (value >= 1_000) return `${(value / 1_000).toFixed(1)}K`;\n return value.toLocaleString();\n }\n\n // ---------------------------------------------------------------------------\n // Pipeline Card Helpers\n // ---------------------------------------------------------------------------\n\n GetIntegrationIcon(summary: IntegrationSummary): string {\n if (summary.SourceType?.IconClass) {\n return summary.SourceType.IconClass;\n }\n return ResolveIntegrationIcon(\n summary.Integration.Integration ?? summary.Integration.Name,\n summary.Icon\n );\n }\n\n GetStatusDotClass(color: StatusColorType): string {\n return `status-dot status-dot-${color}`;\n }\n\n GetStatusLabel(color: StatusColorType): string {\n if (color === 'green') return 'Healthy';\n if (color === 'amber') return 'Warning';\n if (color === 'red') return 'Error';\n return 'Inactive';\n }\n\n GetEntityMapCount(integrationID: string): number {\n for (const [key, value] of this.EntityMapCounts) {\n if (UUIDsEqual(key, integrationID)) return value;\n }\n return 0;\n }\n\n GetSparklineDotClass(run: { Status: string }): string {\n if (run.Status === 'Success') return 'spark-dot spark-green';\n if (run.Status === 'Failed') return 'spark-dot spark-red';\n if (run.Status === 'In Progress' || run.Status === 'Pending') return 'spark-dot spark-amber';\n return 'spark-dot spark-gray';\n }\n\n GetCardBorderClass(color: StatusColorType): string {\n return color === 'red' ? 'pipeline-card pipeline-card-error' : 'pipeline-card';\n }\n\n // ---------------------------------------------------------------------------\n // Bar Chart Helpers\n // ---------------------------------------------------------------------------\n\n get MaxDailyRecords(): number {\n if (this.DailyCounts.length === 0) return 1;\n const maxVal = Math.max(...this.DailyCounts.map(d => d.Records));\n return maxVal > 0 ? maxVal : 1;\n }\n\n BarHeight(records: number): number {\n return Math.max((records / this.MaxDailyRecords) * 100, 2);\n }\n\n // ---------------------------------------------------------------------------\n // Activity Feed Helpers\n // ---------------------------------------------------------------------------\n\n ActivityStatusIcon(status: string): string {\n if (status === 'Success') return 'fa-solid fa-circle-check';\n if (status === 'Failed') return 'fa-solid fa-circle-xmark';\n if (status === 'In Progress') return 'fa-solid fa-spinner fa-spin';\n return 'fa-solid fa-clock';\n }\n\n // ---------------------------------------------------------------------------\n // Notification Management\n // ---------------------------------------------------------------------------\n\n DismissNotification(): void {\n this.dismissNotification();\n this.cdr.detectChanges();\n }\n\n // ---------------------------------------------------------------------------\n // Resource Overrides\n // ---------------------------------------------------------------------------\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Overview';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-gauge-high';\n }\n\n // ---------------------------------------------------------------------------\n // Private Helpers\n // ---------------------------------------------------------------------------\n\n private async loadEntityMapCounts(\n summaries: IntegrationSummary[],\n provider: IRunViewProvider | null\n ): Promise<void> {\n if (summaries.length === 0) return;\n const allMaps = await this.loadAllEntityMaps(provider);\n this.EntityMapCounts = this.countMapsByIntegration(allMaps);\n }\n\n private async loadAllEntityMaps(\n provider: IRunViewProvider | null\n ): Promise<EntityMapRow[]> {\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<EntityMapRow>({\n EntityName: 'MJ: Company Integration Entity Maps',\n ExtraFilter: '',\n OrderBy: 'CompanyIntegrationID',\n Fields: ['ID', 'CompanyIntegrationID'],\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n private countMapsByIntegration(maps: EntityMapRow[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const map of maps) {\n const current = counts.get(map.CompanyIntegrationID) ?? 0;\n counts.set(map.CompanyIntegrationID, current + 1);\n }\n return counts;\n }\n\n\n private showNotification(type: 'success' | 'error', message: string): void {\n this.clearNotificationTimer();\n this.Notification = { Type: type, Message: message };\n this.notificationTimer = setTimeout(() => {\n this.Notification = null;\n this.cdr.detectChanges();\n }, 5000);\n }\n\n private dismissNotification(): void {\n this.clearNotificationTimer();\n this.Notification = null;\n }\n\n private clearNotificationTimer(): void {\n if (this.notificationTimer) {\n clearTimeout(this.notificationTimer);\n this.notificationTimer = null;\n }\n }\n}\n\nexport function LoadOverviewComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<div class=\"overview\">\n <!-- Notification Banner -->\n @if (Notification) {\n <div class=\"notification\" [class.notification-success]=\"Notification.Type === 'success'\"\n [class.notification-error]=\"Notification.Type === 'error'\">\n @if (Notification.Type === 'success') {\n <i class=\"fa-solid fa-circle-check\"></i>\n } @else {\n <i class=\"fa-solid fa-circle-xmark\"></i>\n }\n <span class=\"notification-message\">{{ Notification.Message }}</span>\n <button class=\"notification-dismiss\" (click)=\"DismissNotification()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n\n @if (IsLoading) {\n <mj-loading text=\"Loading integrations...\" size=\"medium\"></mj-loading>\n } @else if (Summaries.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-plug-circle-xmark\"></i>\n <h3>No Integrations Configured</h3>\n <p>Set up your first integration using the Connection Studio to start syncing data.</p>\n </div>\n } @else {\n <!-- ====================================================================\n SECTION 1: Metric Strip\n ==================================================================== -->\n <div class=\"metric-strip\">\n <!-- Total Pipelines -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-blue\">\n <i class=\"fa-solid fa-diagram-project\"></i>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ KPIs.TotalIntegrations }}</span>\n <span class=\"metric-label\">Total Pipelines</span>\n </div>\n </div>\n\n <!-- Records Today -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-green\">\n <i class=\"fa-solid fa-database\"></i>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ FormatNumber(KPIs.RecordsSyncedToday) }}</span>\n <span class=\"metric-label\">Records Today</span>\n </div>\n </div>\n\n <!-- Success Rate (with conic gradient ring) -->\n <div class=\"metric-card\">\n <div class=\"metric-ring\" [style.background]=\"SuccessRateGradient\">\n <div class=\"metric-ring-inner\">\n <span class=\"metric-ring-value\">{{ SuccessRate }}%</span>\n </div>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value metric-value-indigo\">{{ SuccessRate }}%</span>\n <span class=\"metric-label\">Success Rate</span>\n </div>\n </div>\n\n <!-- Active Now -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-emerald\">\n <i class=\"fa-solid fa-bolt\"></i>\n @if (ActiveCount > 0) {\n <span class=\"pulse-dot\"></span>\n }\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ ActiveCount }}</span>\n <span class=\"metric-label\">Active Now</span>\n </div>\n </div>\n\n <!-- Avg Duration -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-orange\">\n <i class=\"fa-solid fa-clock\"></i>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ FormatDuration(KPIs.AverageSyncDurationMs) }}</span>\n <span class=\"metric-label\">Avg Duration</span>\n </div>\n </div>\n </div>\n\n <!-- ====================================================================\n SECTION 2: Pipeline Health Grid\n ==================================================================== -->\n <div class=\"section-heading\">\n <h3><i class=\"fa-solid fa-heart-pulse\"></i> Pipeline Health</h3>\n <button class=\"refresh-btn\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i> Refresh\n </button>\n </div>\n\n <div class=\"pipeline-grid\">\n @for (summary of Summaries; track summary.Integration.ID) {\n <div [class]=\"GetCardBorderClass(summary.StatusColor)\">\n <!-- Card Header -->\n <div class=\"card-header\">\n <div class=\"card-header-left\">\n <div class=\"card-icon-wrap\">\n <i [class]=\"GetIntegrationIcon(summary)\"></i>\n </div>\n <div class=\"card-title-wrap\">\n <span class=\"card-title\">{{ summary.Integration.Name }}</span>\n <span class=\"card-subtitle\">{{ summary.SourceType?.Name ?? 'Custom' }}</span>\n </div>\n </div>\n <div [class]=\"GetStatusDotClass(summary.StatusColor)\"\n [title]=\"GetStatusLabel(summary.StatusColor)\">\n @if (summary.LatestRun?.Status === 'In Progress') {\n <span class=\"dot-pulse\"></span>\n }\n </div>\n </div>\n\n <!-- Pipeline Flow Visual -->\n <div class=\"pipeline-flow\">\n <div class=\"flow-node\">\n <i [class]=\"GetIntegrationIcon(summary)\"></i>\n </div>\n <div class=\"flow-arrow\">\n <div class=\"flow-line\"></div>\n <span class=\"flow-count\">{{ GetEntityMapCount(summary.Integration.ID) }} maps</span>\n <div class=\"flow-line\"></div>\n </div>\n <div class=\"flow-node flow-node-mj\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n </div>\n\n <!-- Stats Row -->\n <div class=\"card-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-label\">Last sync</span>\n <span class=\"stat-value\">{{ summary.RelativeTime }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Records</span>\n <span class=\"stat-value\">{{ FormatNumber(summary.LatestRun?.TotalRecords ?? 0) }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Duration</span>\n <span class=\"stat-value\">{{ FormatDuration(summary.DurationMs) }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Errors</span>\n <span class=\"stat-value\" [class.stat-error]=\"summary.TotalErrors > 0\">\n {{ summary.TotalErrors }}\n </span>\n </div>\n </div>\n\n <!-- Sparkline (last 5 runs) -->\n <div class=\"sparkline-row\">\n <span class=\"sparkline-label\">Recent runs</span>\n <div class=\"sparkline-dots\">\n @for (run of summary.RecentRuns; track run.ID) {\n <span [class]=\"GetSparklineDotClass(run)\"\n [title]=\"run.Status + ' - ' + (run.StartedAt ?? 'N/A')\"></span>\n }\n @if (summary.RecentRuns.length === 0) {\n <span class=\"sparkline-none\">No runs</span>\n }\n </div>\n </div>\n\n <!-- Card Footer -->\n <div class=\"card-footer\">\n @if (IsRunning(summary.Integration.ID)) {\n <button class=\"btn-sync btn-sync-disabled\" disabled>\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running...\n </button>\n } @else {\n <button class=\"btn-sync\"\n (click)=\"RunSync(summary.Integration.ID)\"\n [disabled]=\"!summary.Integration.IsActive || RunningIntegrationID !== null\">\n <i class=\"fa-solid fa-play\"></i> Sync Now\n </button>\n }\n </div>\n </div>\n }\n </div>\n\n <!-- ====================================================================\n SECTION 3: Bottom - Bar Chart & Activity Feed\n ==================================================================== -->\n <div class=\"bottom-split\">\n <!-- Bar Chart (left, 60%) -->\n <div class=\"chart-panel\">\n <h3 class=\"panel-title\"><i class=\"fa-solid fa-chart-bar\"></i> Records Synced (7 days)</h3>\n @if (DailyCounts.length === 0) {\n <p class=\"empty-hint\">No data available.</p>\n } @else {\n <div class=\"bar-chart\">\n @for (day of DailyCounts; track day.Date) {\n <div class=\"bar-column\">\n <div class=\"bar-count\">{{ FormatNumber(day.Records) }}</div>\n <div class=\"bar-fill\" [style.height.%]=\"BarHeight(day.Records)\"></div>\n <div class=\"bar-day\">{{ day.Label }}</div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Activity Feed (right, 40%) -->\n <div class=\"feed-panel\">\n <h3 class=\"panel-title\"><i class=\"fa-solid fa-stream\"></i> Recent Activity</h3>\n @if (ActivityFeed.length === 0) {\n <p class=\"empty-hint\">No recent activity.</p>\n } @else {\n <div class=\"feed-list\">\n @for (item of ActivityFeed; track item.RunID) {\n <div class=\"feed-item\">\n <i [class]=\"ActivityStatusIcon(item.Status)\"\n [class.feed-icon-green]=\"item.StatusColor === 'green'\"\n [class.feed-icon-red]=\"item.StatusColor === 'red'\"\n [class.feed-icon-amber]=\"item.StatusColor === 'amber'\">\n </i>\n <div class=\"feed-details\">\n <span class=\"feed-name\">{{ item.IntegrationName }}</span>\n <span class=\"feed-meta\">{{ item.TotalRecords | number }} records &middot; {{ item.RelativeTime }}</span>\n </div>\n <span class=\"feed-badge\" [class]=\"'feed-badge-' + item.StatusColor\">\n {{ item.Status }}\n </span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n</div>\n"]}
1
+ {"version":3,"file":"overview.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/overview/overview.component.ts","../../../../src/Integration/components/overview/overview.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { RunView, IRunViewProvider } from '@memberjunction/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData } from '@memberjunction/core-entities';\nimport {\n IntegrationDataService,\n ResolveIntegrationIcon,\n IntegrationSummary,\n IntegrationKPIs,\n ActivityFeedItem,\n DailyRecordCount,\n EntityMapRow\n} from '../../services/integration-data.service';\n\ntype StatusColorType = 'green' | 'amber' | 'red' | 'gray';\n\ninterface NotificationBanner {\n Type: 'success' | 'error';\n Message: string;\n}\n\n@RegisterClass(BaseResourceComponent, 'IntegrationOverview')\n@Component({\n standalone: false,\n selector: 'app-integration-overview',\n templateUrl: './overview.component.html',\n styleUrls: ['./overview.component.css']\n})\nexport class OverviewComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n Summaries: IntegrationSummary[] = [];\n KPIs: IntegrationKPIs = {\n TotalIntegrations: 0,\n ActiveSyncs: 0,\n RecordsSyncedToday: 0,\n ErrorRate: 0,\n AverageSyncDurationMs: null\n };\n ActivityFeed: ActivityFeedItem[] = [];\n DailyCounts: DailyRecordCount[] = [];\n EntityMapCounts: Map<string, number> = new Map();\n\n IsLoading = false;\n RunningIntegrationID: string | null = null;\n Notification: NotificationBanner | null = null;\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n private notificationTimer: ReturnType<typeof setTimeout> | null = null;\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n await this.LoadData();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.clearNotificationTimer();\n }\n\n // ---------------------------------------------------------------------------\n // Data Loading\n // ---------------------------------------------------------------------------\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const [summaries, activityFeed, dailyCounts] = await Promise.all([\n this.dataService.LoadIntegrationSummaries(provider),\n this.dataService.LoadRecentRuns(10, provider),\n this.dataService.LoadDailyRecordCounts(7, provider)\n ]);\n this.Summaries = summaries;\n this.KPIs = this.dataService.ComputeKPIs(summaries);\n this.ActivityFeed = activityFeed;\n this.DailyCounts = dailyCounts;\n await this.loadEntityMapCounts(summaries, provider);\n } catch (err) {\n console.error('[IntegrationOverview] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n async Refresh(): Promise<void> {\n await this.LoadData();\n }\n\n // ---------------------------------------------------------------------------\n // Sync Actions\n // ---------------------------------------------------------------------------\n\n async RunSync(integrationID: string): Promise<void> {\n if (this.RunningIntegrationID) return;\n this.RunningIntegrationID = integrationID;\n this.dismissNotification();\n this.cdr.detectChanges();\n\n try {\n const result = await this.dataService.RunSync(integrationID);\n if (result.Success) {\n this.showNotification('success', result.Message || 'Sync started successfully');\n await this.LoadData();\n } else {\n this.showNotification('error', result.Message || 'Sync failed');\n }\n } catch (err) {\n const error = err as Error;\n this.showNotification('error', `Unexpected error: ${error.message}`);\n console.error('[IntegrationOverview] RunSync error:', err);\n } finally {\n this.RunningIntegrationID = null;\n this.cdr.detectChanges();\n }\n }\n\n IsRunning(integrationID: string): boolean {\n return UUIDsEqual(this.RunningIntegrationID, integrationID);\n }\n\n // ---------------------------------------------------------------------------\n // KPI Helpers\n // ---------------------------------------------------------------------------\n\n get SuccessRate(): number {\n if (this.KPIs.ErrorRate == null) return 100;\n return Math.round((100 - this.KPIs.ErrorRate) * 10) / 10;\n }\n\n get SuccessRateGradient(): string {\n const pct = this.SuccessRate;\n const angle = (pct / 100) * 360;\n return `conic-gradient(#10b981 ${angle}deg, #e5e7eb ${angle}deg)`;\n }\n\n get ActiveCount(): number {\n return this.KPIs.ActiveSyncs;\n }\n\n FormatDuration(ms: number | null): string {\n return this.dataService.FormatDuration(ms);\n }\n\n FormatNumber(value: number): string {\n if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (value >= 1_000) return `${(value / 1_000).toFixed(1)}K`;\n return value.toLocaleString();\n }\n\n // ---------------------------------------------------------------------------\n // Pipeline Card Helpers\n // ---------------------------------------------------------------------------\n\n GetIntegrationIcon(summary: IntegrationSummary): string {\n if (summary.SourceType?.IconClass) {\n return summary.SourceType.IconClass;\n }\n return ResolveIntegrationIcon(\n summary.Integration.Integration ?? summary.Integration.Name,\n summary.Icon\n );\n }\n\n GetStatusDotClass(color: StatusColorType): string {\n return `status-dot status-dot-${color}`;\n }\n\n GetStatusLabel(color: StatusColorType): string {\n if (color === 'green') return 'Healthy';\n if (color === 'amber') return 'Warning';\n if (color === 'red') return 'Error';\n return 'Inactive';\n }\n\n GetEntityMapCount(integrationID: string): number {\n for (const [key, value] of this.EntityMapCounts) {\n if (UUIDsEqual(key, integrationID)) return value;\n }\n return 0;\n }\n\n GetSparklineDotClass(run: { Status: string }): string {\n if (run.Status === 'Success') return 'spark-dot spark-green';\n if (run.Status === 'Failed') return 'spark-dot spark-red';\n if (run.Status === 'In Progress' || run.Status === 'Pending') return 'spark-dot spark-amber';\n return 'spark-dot spark-gray';\n }\n\n GetCardBorderClass(color: StatusColorType): string {\n return color === 'red' ? 'pipeline-card pipeline-card-error' : 'pipeline-card';\n }\n\n // ---------------------------------------------------------------------------\n // Bar Chart Helpers\n // ---------------------------------------------------------------------------\n\n get MaxDailyRecords(): number {\n if (this.DailyCounts.length === 0) return 1;\n const maxVal = Math.max(...this.DailyCounts.map(d => d.Records));\n return maxVal > 0 ? maxVal : 1;\n }\n\n BarHeight(records: number): number {\n return Math.max((records / this.MaxDailyRecords) * 100, 2);\n }\n\n // ---------------------------------------------------------------------------\n // Activity Feed Helpers\n // ---------------------------------------------------------------------------\n\n ActivityStatusIcon(status: string): string {\n if (status === 'Success') return 'fa-solid fa-circle-check';\n if (status === 'Failed') return 'fa-solid fa-circle-xmark';\n if (status === 'In Progress') return 'fa-solid fa-spinner fa-spin';\n return 'fa-solid fa-clock';\n }\n\n // ---------------------------------------------------------------------------\n // Notification Management\n // ---------------------------------------------------------------------------\n\n DismissNotification(): void {\n this.dismissNotification();\n this.cdr.detectChanges();\n }\n\n // ---------------------------------------------------------------------------\n // Resource Overrides\n // ---------------------------------------------------------------------------\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Overview';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-gauge-high';\n }\n\n // ---------------------------------------------------------------------------\n // Private Helpers\n // ---------------------------------------------------------------------------\n\n private async loadEntityMapCounts(\n summaries: IntegrationSummary[],\n provider: IRunViewProvider | null\n ): Promise<void> {\n if (summaries.length === 0) return;\n const allMaps = await this.loadAllEntityMaps(provider);\n this.EntityMapCounts = this.countMapsByIntegration(allMaps);\n }\n\n private async loadAllEntityMaps(\n provider: IRunViewProvider | null\n ): Promise<EntityMapRow[]> {\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<EntityMapRow>({\n EntityName: 'MJ: Company Integration Entity Maps',\n ExtraFilter: '',\n OrderBy: 'CompanyIntegrationID',\n Fields: ['ID', 'CompanyIntegrationID'],\n ResultType: 'simple'\n });\n return result.Results;\n }\n\n private countMapsByIntegration(maps: EntityMapRow[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const map of maps) {\n const current = counts.get(map.CompanyIntegrationID) ?? 0;\n counts.set(map.CompanyIntegrationID, current + 1);\n }\n return counts;\n }\n\n\n private showNotification(type: 'success' | 'error', message: string): void {\n this.clearNotificationTimer();\n this.Notification = { Type: type, Message: message };\n this.notificationTimer = setTimeout(() => {\n this.Notification = null;\n this.cdr.detectChanges();\n }, 5000);\n }\n\n private dismissNotification(): void {\n this.clearNotificationTimer();\n this.Notification = null;\n }\n\n private clearNotificationTimer(): void {\n if (this.notificationTimer) {\n clearTimeout(this.notificationTimer);\n this.notificationTimer = null;\n }\n }\n}\n\nexport function LoadOverviewComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<div class=\"overview\">\n <!-- Notification Banner -->\n @if (Notification) {\n <div class=\"notification\" [class.notification-success]=\"Notification.Type === 'success'\"\n [class.notification-error]=\"Notification.Type === 'error'\">\n @if (Notification.Type === 'success') {\n <i class=\"fa-solid fa-circle-check\"></i>\n } @else {\n <i class=\"fa-solid fa-circle-xmark\"></i>\n }\n <span class=\"notification-message\">{{ Notification.Message }}</span>\n <button class=\"notification-dismiss\" (click)=\"DismissNotification()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n\n @if (IsLoading) {\n <mj-loading text=\"Loading integrations...\" size=\"medium\"></mj-loading>\n } @else if (Summaries.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-plug-circle-xmark\"></i>\n <h3>No Integrations Configured</h3>\n <p>Set up your first integration using the Connection Studio to start syncing data.</p>\n </div>\n } @else {\n <!-- ====================================================================\n SECTION 1: Metric Strip\n ==================================================================== -->\n <div class=\"metric-strip\">\n <!-- Total Pipelines -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-blue\">\n <i class=\"fa-solid fa-diagram-project\"></i>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ KPIs.TotalIntegrations }}</span>\n <span class=\"metric-label\">Total Pipelines</span>\n </div>\n </div>\n\n <!-- Records Today -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-green\">\n <i class=\"fa-solid fa-database\"></i>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ FormatNumber(KPIs.RecordsSyncedToday) }}</span>\n <span class=\"metric-label\">Records Today</span>\n </div>\n </div>\n\n <!-- Success Rate (with conic gradient ring) -->\n <div class=\"metric-card\">\n <div class=\"metric-ring\" [style.background]=\"SuccessRateGradient\">\n <div class=\"metric-ring-inner\">\n <span class=\"metric-ring-value\">{{ SuccessRate }}%</span>\n </div>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value metric-value-indigo\">{{ SuccessRate }}%</span>\n <span class=\"metric-label\">Success Rate</span>\n </div>\n </div>\n\n <!-- Active Now -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-emerald\">\n <i class=\"fa-solid fa-bolt\"></i>\n @if (ActiveCount > 0) {\n <span class=\"pulse-dot\"></span>\n }\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ ActiveCount }}</span>\n <span class=\"metric-label\">Active Now</span>\n </div>\n </div>\n\n <!-- Avg Duration -->\n <div class=\"metric-card\">\n <div class=\"metric-icon metric-icon-orange\">\n <i class=\"fa-solid fa-clock\"></i>\n </div>\n <div class=\"metric-body\">\n <span class=\"metric-value\">{{ FormatDuration(KPIs.AverageSyncDurationMs) }}</span>\n <span class=\"metric-label\">Avg Duration</span>\n </div>\n </div>\n </div>\n\n <!-- ====================================================================\n SECTION 2: Pipeline Health Grid\n ==================================================================== -->\n <div class=\"section-heading\">\n <h3><i class=\"fa-solid fa-heart-pulse\"></i> Pipeline Health</h3>\n <button class=\"refresh-btn\" (click)=\"Refresh()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i> Refresh\n </button>\n </div>\n\n <div class=\"pipeline-grid\">\n @for (summary of Summaries; track summary.Integration.ID) {\n <div [class]=\"GetCardBorderClass(summary.StatusColor)\">\n <!-- Card Header -->\n <div class=\"card-header\">\n <div class=\"card-header-left\">\n <div class=\"card-icon-wrap\">\n <i [class]=\"GetIntegrationIcon(summary)\"></i>\n </div>\n <div class=\"card-title-wrap\">\n <span class=\"card-title\">{{ summary.Integration.Name }}</span>\n <span class=\"card-subtitle\">{{ summary.SourceType?.Name ?? 'Custom' }}</span>\n </div>\n </div>\n <div [class]=\"GetStatusDotClass(summary.StatusColor)\"\n [title]=\"GetStatusLabel(summary.StatusColor)\">\n @if (summary.LatestRun?.Status === 'In Progress') {\n <span class=\"dot-pulse\"></span>\n }\n </div>\n </div>\n\n <!-- Pipeline Flow Visual -->\n <div class=\"pipeline-flow\">\n <div class=\"flow-node\">\n <i [class]=\"GetIntegrationIcon(summary)\"></i>\n </div>\n <div class=\"flow-arrow\">\n <div class=\"flow-line\"></div>\n <span class=\"flow-count\">{{ GetEntityMapCount(summary.Integration.ID) }} maps</span>\n <div class=\"flow-line\"></div>\n </div>\n <div class=\"flow-node flow-node-mj\">\n <i class=\"fa-solid fa-layer-group\"></i>\n </div>\n </div>\n\n <!-- Stats Row -->\n <div class=\"card-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-label\">Last sync</span>\n <span class=\"stat-value\">{{ summary.RelativeTime }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Records</span>\n <span class=\"stat-value\">{{ FormatNumber(summary.LatestRun?.TotalRecords ?? 0) }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Duration</span>\n <span class=\"stat-value\">{{ FormatDuration(summary.DurationMs) }}</span>\n </div>\n <div class=\"stat-item\">\n <span class=\"stat-label\">Errors</span>\n <span class=\"stat-value\" [class.stat-error]=\"summary.TotalErrors > 0\">\n {{ summary.TotalErrors }}\n </span>\n </div>\n </div>\n\n <!-- Sparkline (last 5 runs) -->\n <div class=\"sparkline-row\">\n <span class=\"sparkline-label\">Recent runs</span>\n <div class=\"sparkline-dots\">\n @for (run of summary.RecentRuns; track run.ID) {\n <span [class]=\"GetSparklineDotClass(run)\"\n [title]=\"run.Status + ' - ' + (run.StartedAt ?? 'N/A')\"></span>\n }\n @if (summary.RecentRuns.length === 0) {\n <span class=\"sparkline-none\">No runs</span>\n }\n </div>\n </div>\n\n <!-- Card Footer -->\n <div class=\"card-footer\">\n @if (IsRunning(summary.Integration.ID)) {\n <button class=\"btn-sync btn-sync-disabled\" disabled>\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running...\n </button>\n } @else {\n <button class=\"btn-sync\"\n (click)=\"RunSync(summary.Integration.ID)\"\n [disabled]=\"!summary.Integration.IsActive || RunningIntegrationID !== null\">\n <i class=\"fa-solid fa-play\"></i> Sync Now\n </button>\n }\n </div>\n </div>\n }\n </div>\n\n <!-- ====================================================================\n SECTION 3: Bottom - Bar Chart & Activity Feed\n ==================================================================== -->\n <div class=\"bottom-split\">\n <!-- Bar Chart (left, 60%) -->\n <div class=\"chart-panel\">\n <h3 class=\"panel-title\"><i class=\"fa-solid fa-chart-bar\"></i> Records Synced (7 days)</h3>\n @if (DailyCounts.length === 0) {\n <p class=\"empty-hint\">No data available.</p>\n } @else {\n <div class=\"bar-chart\">\n @for (day of DailyCounts; track day.Date) {\n <div class=\"bar-column\">\n <div class=\"bar-count\">{{ FormatNumber(day.Records) }}</div>\n <div class=\"bar-fill\" [style.height.%]=\"BarHeight(day.Records)\"></div>\n <div class=\"bar-day\">{{ day.Label }}</div>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Activity Feed (right, 40%) -->\n <div class=\"feed-panel\">\n <h3 class=\"panel-title\"><i class=\"fa-solid fa-stream\"></i> Recent Activity</h3>\n @if (ActivityFeed.length === 0) {\n <p class=\"empty-hint\">No recent activity.</p>\n } @else {\n <div class=\"feed-list\">\n @for (item of ActivityFeed; track item.RunID) {\n <div class=\"feed-item\">\n <i [class]=\"ActivityStatusIcon(item.Status)\"\n [class.feed-icon-green]=\"item.StatusColor === 'green'\"\n [class.feed-icon-red]=\"item.StatusColor === 'red'\"\n [class.feed-icon-amber]=\"item.StatusColor === 'amber'\">\n </i>\n <div class=\"feed-details\">\n <span class=\"feed-name\">{{ item.IntegrationName }}</span>\n <span class=\"feed-meta\">{{ item.TotalRecords | number }} records &middot; {{ item.RelativeTime }}</span>\n </div>\n <span class=\"feed-badge\" [class]=\"'feed-badge-' + item.StatusColor\">\n {{ item.Status }}\n </span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n</div>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pipelines.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/pipelines/pipelines.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipelines.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/pipelines/pipelines.component.ts"],"names":[],"mappings":"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"}
@@ -1199,9 +1199,12 @@ let PipelinesComponent = class PipelinesComponent extends BaseResourceComponent
1199
1199
  // Lifecycle
1200
1200
  // ---------------------------------------------------------------------------
1201
1201
  async ngOnInit() {
1202
+ super.ngOnInit();
1202
1203
  await this.LoadData();
1204
+ this.NotifyLoadComplete();
1203
1205
  }
1204
1206
  ngOnDestroy() {
1207
+ super.ngOnDestroy();
1205
1208
  // Clean up if needed
1206
1209
  }
1207
1210
  // ---------------------------------------------------------------------------