@memberjunction/ng-dashboards 5.34.1 → 5.35.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 (346) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +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 +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.js +773 -783
  235. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  236. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  237. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  239. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  241. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.js +420 -393
  243. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  244. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  245. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  249. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  251. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  252. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  253. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  255. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  256. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  257. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.js +587 -608
  259. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  260. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  261. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  263. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  264. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  265. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  266. package/dist/Testing/components/testing-review.component.js +310 -274
  267. package/dist/Testing/components/testing-review.component.js.map +1 -1
  268. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  269. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  271. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  272. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  273. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.js +307 -273
  275. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  276. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  277. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.js +107 -93
  279. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  280. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  281. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  282. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  283. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  285. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  287. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  288. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  289. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  290. package/dist/actions-dashboards.module.d.ts +15 -16
  291. package/dist/actions-dashboards.module.d.ts.map +1 -1
  292. package/dist/actions-dashboards.module.js +34 -11
  293. package/dist/actions-dashboards.module.js.map +1 -1
  294. package/dist/ai-dashboards.module.d.ts +45 -48
  295. package/dist/ai-dashboards.module.d.ts.map +1 -1
  296. package/dist/ai-dashboards.module.js +36 -10
  297. package/dist/ai-dashboards.module.js.map +1 -1
  298. package/dist/archiving-dashboards.module.d.ts +2 -1
  299. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  300. package/dist/archiving-dashboards.module.js +12 -2
  301. package/dist/archiving-dashboards.module.js.map +1 -1
  302. package/dist/communication-dashboards.module.d.ts +2 -1
  303. package/dist/communication-dashboards.module.d.ts.map +1 -1
  304. package/dist/communication-dashboards.module.js +24 -3
  305. package/dist/communication-dashboards.module.js.map +1 -1
  306. package/dist/core-dashboards.module.d.ts +1 -1
  307. package/dist/core-dashboards.module.d.ts.map +1 -1
  308. package/dist/core-dashboards.module.js +31 -1
  309. package/dist/core-dashboards.module.js.map +1 -1
  310. package/dist/credentials-dashboards.module.d.ts +1 -1
  311. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  312. package/dist/credentials-dashboards.module.js +28 -1
  313. package/dist/credentials-dashboards.module.js.map +1 -1
  314. package/dist/lists-dashboards.module.d.ts +1 -1
  315. package/dist/lists-dashboards.module.d.ts.map +1 -1
  316. package/dist/lists-dashboards.module.js +28 -1
  317. package/dist/lists-dashboards.module.js.map +1 -1
  318. package/dist/public-api.d.ts +2 -2
  319. package/dist/public-api.d.ts.map +1 -1
  320. package/dist/public-api.js +3 -3
  321. package/dist/public-api.js.map +1 -1
  322. package/dist/scheduling-dashboards.module.d.ts +1 -1
  323. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  324. package/dist/scheduling-dashboards.module.js +31 -1
  325. package/dist/scheduling-dashboards.module.js.map +1 -1
  326. package/dist/testing-dashboards.module.d.ts +8 -7
  327. package/dist/testing-dashboards.module.d.ts.map +1 -1
  328. package/dist/testing-dashboards.module.js +30 -0
  329. package/dist/testing-dashboards.module.js.map +1 -1
  330. package/package.json +52 -52
  331. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  332. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  333. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  334. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  335. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  336. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  339. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  340. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  342. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  343. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  344. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  346. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -7,42 +7,72 @@ import { TestEngineBase } from '@memberjunction/testing-engine-base';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../services/testing-instrumentation.service";
9
9
  import * as i2 from "@memberjunction/ng-testing";
10
- import * as i3 from "@memberjunction/ng-shared-generic";
11
- import * as i4 from "../../AI/components/widgets/kpi-card.component";
12
- import * as i5 from "@angular/common";
10
+ import * as i3 from "@angular/common";
11
+ import * as i4 from "@memberjunction/ng-ui-components";
12
+ import * as i5 from "@memberjunction/ng-shared-generic";
13
+ import * as i6 from "../../AI/components/widgets/kpi-card.component";
13
14
  const _forTrack0 = ($index, $item) => $item.title;
14
15
  const _forTrack1 = ($index, $item) => $item.id;
16
+ function TestingDashboardTabComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementContainer(0);
18
+ } }
15
19
  function TestingDashboardTabComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
16
- i0.ɵɵelementStart(0, "div", 0);
17
- i0.ɵɵelement(1, "mj-loading", 2);
20
+ i0.ɵɵtemplate(0, TestingDashboardTabComponent_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 1);
21
+ } if (rf & 2) {
22
+ i0.ɵɵnextContext();
23
+ const content_r1 = i0.ɵɵreference(3);
24
+ i0.ɵɵproperty("ngTemplateOutlet", content_r1);
25
+ } }
26
+ function TestingDashboardTabComponent_Conditional_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelementContainer(0);
28
+ } }
29
+ function TestingDashboardTabComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30
+ const _r2 = i0.ɵɵgetCurrentView();
31
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 2)(2, "div", 3)(3, "mj-refresh-button", 4);
32
+ i0.ɵɵlistener("Clicked", function TestingDashboardTabComponent_Conditional_1_Template_mj_refresh_button_Clicked_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnRefresh()); });
33
+ i0.ɵɵelementEnd()()();
34
+ i0.ɵɵelementStart(4, "mj-page-body");
35
+ i0.ɵɵtemplate(5, TestingDashboardTabComponent_Conditional_1_ng_container_5_Template, 1, 0, "ng-container", 1);
36
+ i0.ɵɵelementEnd()();
37
+ } if (rf & 2) {
38
+ const ctx_r2 = i0.ɵɵnextContext();
39
+ const content_r1 = i0.ɵɵreference(3);
40
+ i0.ɵɵadvance(3);
41
+ i0.ɵɵproperty("Loading", ctx_r2.IsLoading);
42
+ i0.ɵɵadvance(2);
43
+ i0.ɵɵproperty("ngTemplateOutlet", content_r1);
44
+ } }
45
+ function TestingDashboardTabComponent_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelementStart(0, "div", 5);
47
+ i0.ɵɵelement(1, "mj-loading", 7);
18
48
  i0.ɵɵelementEnd();
19
49
  } }
20
- function TestingDashboardTabComponent_Conditional_1_For_10_Template(rf, ctx) { if (rf & 1) {
50
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
21
51
  i0.ɵɵelement(0, "app-kpi-card", 9);
22
52
  } if (rf & 2) {
23
- const kpi_r3 = ctx.$implicit;
24
- i0.ɵɵproperty("data", kpi_r3);
53
+ const kpi_r4 = ctx.$implicit;
54
+ i0.ɵɵproperty("data", kpi_r4);
25
55
  } }
26
- function TestingDashboardTabComponent_Conditional_1_Conditional_13_Template(rf, ctx) { if (rf & 1) {
56
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
27
57
  i0.ɵɵelement(0, "span", 28);
28
58
  i0.ɵɵelementStart(1, "h3");
29
59
  i0.ɵɵtext(2);
30
60
  i0.ɵɵelementEnd();
31
61
  } if (rf & 2) {
32
- const ctx_r1 = i0.ɵɵnextContext(2);
62
+ const ctx_r2 = i0.ɵɵnextContext(3);
33
63
  i0.ɵɵadvance(2);
34
- i0.ɵɵtextInterpolate2("", ctx_r1.RunningTests.length, " test", ctx_r1.RunningTests.length === 1 ? "" : "s", " running");
64
+ i0.ɵɵtextInterpolate2("", ctx_r2.RunningTests.length, " test", ctx_r2.RunningTests.length === 1 ? "" : "s", " running");
35
65
  } }
36
- function TestingDashboardTabComponent_Conditional_1_Conditional_14_Template(rf, ctx) { if (rf & 1) {
66
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
37
67
  i0.ɵɵelement(0, "i", 29);
38
68
  i0.ɵɵelementStart(1, "h3");
39
69
  i0.ɵɵtext(2, "No tests currently running");
40
70
  i0.ɵɵelementEnd();
41
71
  } }
42
- function TestingDashboardTabComponent_Conditional_1_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
43
- const _r4 = i0.ɵɵgetCurrentView();
72
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_8_For_2_Template(rf, ctx) { if (rf & 1) {
73
+ const _r5 = i0.ɵɵgetCurrentView();
44
74
  i0.ɵɵelementStart(0, "div", 31);
45
- i0.ɵɵlistener("click", function TestingDashboardTabComponent_Conditional_1_Conditional_15_For_2_Template_div_click_0_listener() { const run_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnViewRunningTest(run_r5)); });
75
+ i0.ɵɵlistener("click", function TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_8_For_2_Template_div_click_0_listener() { const run_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.OnViewRunningTest(run_r6)); });
46
76
  i0.ɵɵelementStart(1, "div", 32)(2, "div", 33);
47
77
  i0.ɵɵtext(3);
48
78
  i0.ɵɵelementEnd();
@@ -59,32 +89,32 @@ function TestingDashboardTabComponent_Conditional_1_Conditional_15_For_2_Templat
59
89
  i0.ɵɵtext(12);
60
90
  i0.ɵɵelementEnd()()();
61
91
  } if (rf & 2) {
62
- const run_r5 = ctx.$implicit;
63
- const ctx_r1 = i0.ɵɵnextContext(3);
92
+ const run_r6 = ctx.$implicit;
93
+ const ctx_r2 = i0.ɵɵnextContext(4);
64
94
  i0.ɵɵadvance(3);
65
- i0.ɵɵtextInterpolate(run_r5.testName);
95
+ i0.ɵɵtextInterpolate(run_r6.testName);
66
96
  i0.ɵɵadvance(2);
67
- i0.ɵɵtextInterpolate(ctx_r1.GetActiveRunStep(run_r5.testId));
97
+ i0.ɵɵtextInterpolate(ctx_r2.GetActiveRunStep(run_r6.testId));
68
98
  i0.ɵɵadvance(3);
69
- i0.ɵɵtextInterpolate(ctx_r1.FormatDuration(run_r5.duration));
99
+ i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(run_r6.duration));
70
100
  i0.ɵɵadvance(2);
71
- i0.ɵɵstyleProp("width", ctx_r1.GetActiveRunProgress(run_r5.testId), "%");
101
+ i0.ɵɵstyleProp("width", ctx_r2.GetActiveRunProgress(run_r6.testId), "%");
72
102
  i0.ɵɵadvance(2);
73
- i0.ɵɵtextInterpolate1("", ctx_r1.GetActiveRunProgress(run_r5.testId), "%");
103
+ i0.ɵɵtextInterpolate1("", ctx_r2.GetActiveRunProgress(run_r6.testId), "%");
74
104
  } }
75
- function TestingDashboardTabComponent_Conditional_1_Conditional_15_Template(rf, ctx) { if (rf & 1) {
105
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
76
106
  i0.ɵɵelementStart(0, "div", 12);
77
- i0.ɵɵrepeaterCreate(1, TestingDashboardTabComponent_Conditional_1_Conditional_15_For_2_Template, 13, 6, "div", 30, _forTrack1);
107
+ i0.ɵɵrepeaterCreate(1, TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_8_For_2_Template, 13, 6, "div", 30, _forTrack1);
78
108
  i0.ɵɵelementEnd();
79
109
  } if (rf & 2) {
80
- const ctx_r1 = i0.ɵɵnextContext(2);
110
+ const ctx_r2 = i0.ɵɵnextContext(3);
81
111
  i0.ɵɵadvance();
82
- i0.ɵɵrepeater(ctx_r1.RunningTests);
112
+ i0.ɵɵrepeater(ctx_r2.RunningTests);
83
113
  } }
84
- function TestingDashboardTabComponent_Conditional_1_For_24_Template(rf, ctx) { if (rf & 1) {
85
- const _r6 = i0.ɵɵgetCurrentView();
114
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
115
+ const _r7 = i0.ɵɵgetCurrentView();
86
116
  i0.ɵɵelementStart(0, "div", 40);
87
- i0.ɵɵlistener("click", function TestingDashboardTabComponent_Conditional_1_For_24_Template_div_click_0_listener() { const run_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnOpenRun(run_r7)); });
117
+ i0.ɵɵlistener("click", function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_17_Template_div_click_0_listener() { const run_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnOpenRun(run_r8)); });
88
118
  i0.ɵɵelementStart(1, "div", 41)(2, "span", 42);
89
119
  i0.ɵɵtext(3);
90
120
  i0.ɵɵelementEnd();
@@ -99,27 +129,27 @@ function TestingDashboardTabComponent_Conditional_1_For_24_Template(rf, ctx) { i
99
129
  i0.ɵɵelement(11, "app-cost-display", 48);
100
130
  i0.ɵɵelementEnd()();
101
131
  } if (rf & 2) {
102
- const run_r7 = ctx.$implicit;
103
- const ctx_r1 = i0.ɵɵnextContext(2);
132
+ const run_r8 = ctx.$implicit;
133
+ const ctx_r2 = i0.ɵɵnextContext(3);
104
134
  i0.ɵɵadvance(3);
105
- i0.ɵɵtextInterpolate(run_r7.testName);
135
+ i0.ɵɵtextInterpolate(run_r8.testName);
106
136
  i0.ɵɵadvance(2);
107
- i0.ɵɵtextInterpolate(ctx_r1.FormatTimestamp(run_r7.runDateTime));
137
+ i0.ɵɵtextInterpolate(ctx_r2.FormatTimestamp(run_r8.runDateTime));
108
138
  i0.ɵɵadvance(2);
109
- i0.ɵɵproperty("status", run_r7.status);
139
+ i0.ɵɵproperty("status", run_r8.status);
110
140
  i0.ɵɵadvance();
111
- i0.ɵɵproperty("score", run_r7.score)("showBar", true);
141
+ i0.ɵɵproperty("score", run_r8.score)("showBar", true);
112
142
  i0.ɵɵadvance(2);
113
- i0.ɵɵtextInterpolate(ctx_r1.FormatDuration(run_r7.duration));
143
+ i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(run_r8.duration));
114
144
  i0.ɵɵadvance();
115
- i0.ɵɵproperty("cost", run_r7.cost);
145
+ i0.ɵɵproperty("cost", run_r8.cost);
116
146
  } }
117
- function TestingDashboardTabComponent_Conditional_1_ForEmpty_25_Template(rf, ctx) { if (rf & 1) {
147
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_ForEmpty_18_Template(rf, ctx) { if (rf & 1) {
118
148
  i0.ɵɵelementStart(0, "div", 18);
119
149
  i0.ɵɵtext(1, "No completed test runs found");
120
150
  i0.ɵɵelementEnd();
121
151
  } }
122
- function TestingDashboardTabComponent_Conditional_1_For_34_Template(rf, ctx) { if (rf & 1) {
152
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_27_Template(rf, ctx) { if (rf & 1) {
123
153
  i0.ɵɵelementStart(0, "div", 23)(1, "div", 49)(2, "span", 50);
124
154
  i0.ɵɵtext(3);
125
155
  i0.ɵɵelementEnd();
@@ -134,123 +164,115 @@ function TestingDashboardTabComponent_Conditional_1_For_34_Template(rf, ctx) { i
134
164
  i0.ɵɵpipe(11, "number");
135
165
  i0.ɵɵelementEnd()()();
136
166
  } if (rf & 2) {
137
- const suite_r8 = ctx.$implicit;
138
- const ctx_r1 = i0.ɵɵnextContext(2);
167
+ const suite_r9 = ctx.$implicit;
168
+ const ctx_r2 = i0.ɵɵnextContext(3);
139
169
  i0.ɵɵadvance(3);
140
- i0.ɵɵtextInterpolate(suite_r8.name);
170
+ i0.ɵɵtextInterpolate(suite_r9.name);
141
171
  i0.ɵɵadvance(2);
142
- i0.ɵɵtextInterpolate1("", suite_r8.testCount, " tests");
172
+ i0.ɵɵtextInterpolate1("", suite_r9.testCount, " tests");
143
173
  i0.ɵɵadvance(3);
144
- i0.ɵɵstyleProp("width", suite_r8.passRate, "%")("background", ctx_r1.GetPassRateColor(suite_r8.passRate));
174
+ i0.ɵɵstyleProp("width", suite_r9.passRate, "%")("background", ctx_r2.GetPassRateColor(suite_r9.passRate));
145
175
  i0.ɵɵadvance();
146
- i0.ɵɵstyleProp("color", ctx_r1.GetPassRateColor(suite_r8.passRate));
176
+ i0.ɵɵstyleProp("color", ctx_r2.GetPassRateColor(suite_r9.passRate));
147
177
  i0.ɵɵadvance();
148
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(11, 9, suite_r8.passRate, "1.0-0"), "% ");
178
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(11, 9, suite_r9.passRate, "1.0-0"), "% ");
149
179
  } }
150
- function TestingDashboardTabComponent_Conditional_1_ForEmpty_35_Template(rf, ctx) { if (rf & 1) {
180
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_ForEmpty_28_Template(rf, ctx) { if (rf & 1) {
151
181
  i0.ɵɵelementStart(0, "div", 18);
152
182
  i0.ɵɵtext(1, "No test suites found");
153
183
  i0.ɵɵelementEnd();
154
184
  } }
155
- function TestingDashboardTabComponent_Conditional_1_For_43_Conditional_6_Template(rf, ctx) { if (rf & 1) {
185
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Conditional_6_Template(rf, ctx) { if (rf & 1) {
156
186
  i0.ɵɵtext(0, " Regression detected ");
157
187
  } }
158
- function TestingDashboardTabComponent_Conditional_1_For_43_Conditional_7_Template(rf, ctx) { if (rf & 1) {
188
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Conditional_7_Template(rf, ctx) { if (rf & 1) {
159
189
  i0.ɵɵtext(0);
160
190
  i0.ɵɵpipe(1, "number");
161
191
  } if (rf & 2) {
162
- const alert_r10 = i0.ɵɵnextContext().$implicit;
163
- i0.ɵɵtextInterpolate1(" Score below 0.5 (", i0.ɵɵpipeBind2(1, 1, alert_r10.score, "1.2-2"), ") ");
192
+ const alert_r11 = i0.ɵɵnextContext().$implicit;
193
+ i0.ɵɵtextInterpolate1(" Score below 0.5 (", i0.ɵɵpipeBind2(1, 1, alert_r11.score, "1.2-2"), ") ");
164
194
  } }
165
- function TestingDashboardTabComponent_Conditional_1_For_43_Template(rf, ctx) { if (rf & 1) {
166
- const _r9 = i0.ɵɵgetCurrentView();
195
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Template(rf, ctx) { if (rf & 1) {
196
+ const _r10 = i0.ɵɵgetCurrentView();
167
197
  i0.ɵɵelementStart(0, "div", 56);
168
- i0.ɵɵlistener("click", function TestingDashboardTabComponent_Conditional_1_For_43_Template_div_click_0_listener() { const alert_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnOpenAlert(alert_r10)); });
198
+ i0.ɵɵlistener("click", function TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Template_div_click_0_listener() { const alert_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnOpenAlert(alert_r11)); });
169
199
  i0.ɵɵelement(1, "i", 57);
170
200
  i0.ɵɵelementStart(2, "div", 58)(3, "span", 59);
171
201
  i0.ɵɵtext(4);
172
202
  i0.ɵɵelementEnd();
173
203
  i0.ɵɵelementStart(5, "span", 60);
174
- i0.ɵɵconditionalCreate(6, TestingDashboardTabComponent_Conditional_1_For_43_Conditional_6_Template, 1, 0)(7, TestingDashboardTabComponent_Conditional_1_For_43_Conditional_7_Template, 2, 4);
204
+ i0.ɵɵconditionalCreate(6, TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Conditional_6_Template, 1, 0)(7, TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Conditional_7_Template, 2, 4);
175
205
  i0.ɵɵelementEnd()();
176
206
  i0.ɵɵelement(8, "app-test-status-badge", 45);
177
207
  i0.ɵɵelementEnd();
178
208
  } if (rf & 2) {
179
- const alert_r10 = ctx.$implicit;
209
+ const alert_r11 = ctx.$implicit;
180
210
  i0.ɵɵadvance();
181
- i0.ɵɵstyleProp("color", alert_r10.reason === "regression" ? "#ef4444" : "#f59e0b");
182
- i0.ɵɵclassProp("fa-arrow-trend-down", alert_r10.reason === "regression")("fa-circle-exclamation", alert_r10.reason === "low-score");
211
+ i0.ɵɵstyleProp("color", alert_r11.reason === "regression" ? "#ef4444" : "#f59e0b");
212
+ i0.ɵɵclassProp("fa-arrow-trend-down", alert_r11.reason === "regression")("fa-circle-exclamation", alert_r11.reason === "low-score");
183
213
  i0.ɵɵadvance(3);
184
- i0.ɵɵtextInterpolate(alert_r10.testName);
214
+ i0.ɵɵtextInterpolate(alert_r11.testName);
185
215
  i0.ɵɵadvance(2);
186
- i0.ɵɵconditional(alert_r10.reason === "regression" ? 6 : 7);
216
+ i0.ɵɵconditional(alert_r11.reason === "regression" ? 6 : 7);
187
217
  i0.ɵɵadvance(2);
188
- i0.ɵɵproperty("status", alert_r10.status);
218
+ i0.ɵɵproperty("status", alert_r11.status);
189
219
  } }
190
- function TestingDashboardTabComponent_Conditional_1_ForEmpty_44_Template(rf, ctx) { if (rf & 1) {
220
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_ForEmpty_37_Template(rf, ctx) { if (rf & 1) {
191
221
  i0.ɵɵelementStart(0, "div", 18);
192
222
  i0.ɵɵelement(1, "i", 61);
193
223
  i0.ɵɵtext(2, " No alerts - all tests healthy ");
194
224
  i0.ɵɵelementEnd();
195
225
  } }
196
- function TestingDashboardTabComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
197
- const _r1 = i0.ɵɵgetCurrentView();
198
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 3)(2, "h2", 4);
199
- i0.ɵɵelement(3, "i", 5);
200
- i0.ɵɵtext(4, " Testing Dashboard ");
201
- i0.ɵɵelementEnd();
202
- i0.ɵɵelementStart(5, "button", 6);
203
- i0.ɵɵlistener("click", function TestingDashboardTabComponent_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRefresh()); });
204
- i0.ɵɵelement(6, "i", 7);
205
- i0.ɵɵtext(7, " Refresh ");
206
- i0.ɵɵelementEnd()();
207
- i0.ɵɵelementStart(8, "div", 8);
208
- i0.ɵɵrepeaterCreate(9, TestingDashboardTabComponent_Conditional_1_For_10_Template, 1, 1, "app-kpi-card", 9, _forTrack0);
226
+ function TestingDashboardTabComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
227
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 8);
228
+ i0.ɵɵrepeaterCreate(2, TestingDashboardTabComponent_ng_template_2_Conditional_1_For_3_Template, 1, 1, "app-kpi-card", 9, _forTrack0);
209
229
  i0.ɵɵelementEnd();
210
- i0.ɵɵelementStart(11, "div", 10)(12, "div", 11);
211
- i0.ɵɵconditionalCreate(13, TestingDashboardTabComponent_Conditional_1_Conditional_13_Template, 3, 2)(14, TestingDashboardTabComponent_Conditional_1_Conditional_14_Template, 3, 0);
230
+ i0.ɵɵelementStart(4, "div", 10)(5, "div", 11);
231
+ i0.ɵɵconditionalCreate(6, TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_6_Template, 3, 2)(7, TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_7_Template, 3, 0);
212
232
  i0.ɵɵelementEnd();
213
- i0.ɵɵconditionalCreate(15, TestingDashboardTabComponent_Conditional_1_Conditional_15_Template, 3, 0, "div", 12);
233
+ i0.ɵɵconditionalCreate(8, TestingDashboardTabComponent_ng_template_2_Conditional_1_Conditional_8_Template, 3, 0, "div", 12);
214
234
  i0.ɵɵelementEnd();
215
- i0.ɵɵelementStart(16, "div", 13)(17, "div", 14)(18, "div", 11)(19, "h3");
216
- i0.ɵɵelement(20, "i", 15);
217
- i0.ɵɵtext(21, " Recent Runs");
235
+ i0.ɵɵelementStart(9, "div", 13)(10, "div", 14)(11, "div", 11)(12, "h3");
236
+ i0.ɵɵelement(13, "i", 15);
237
+ i0.ɵɵtext(14, " Recent Runs");
218
238
  i0.ɵɵelementEnd()();
219
- i0.ɵɵelementStart(22, "div", 16);
220
- i0.ɵɵrepeaterCreate(23, TestingDashboardTabComponent_Conditional_1_For_24_Template, 12, 7, "div", 17, _forTrack1, false, TestingDashboardTabComponent_Conditional_1_ForEmpty_25_Template, 2, 0, "div", 18);
239
+ i0.ɵɵelementStart(15, "div", 16);
240
+ i0.ɵɵrepeaterCreate(16, TestingDashboardTabComponent_ng_template_2_Conditional_1_For_17_Template, 12, 7, "div", 17, _forTrack1, false, TestingDashboardTabComponent_ng_template_2_Conditional_1_ForEmpty_18_Template, 2, 0, "div", 18);
221
241
  i0.ɵɵelementEnd()();
222
- i0.ɵɵelementStart(26, "div", 19)(27, "div", 20)(28, "div", 11)(29, "h3");
223
- i0.ɵɵelement(30, "i", 21);
224
- i0.ɵɵtext(31, " Suite Health");
242
+ i0.ɵɵelementStart(19, "div", 19)(20, "div", 20)(21, "div", 11)(22, "h3");
243
+ i0.ɵɵelement(23, "i", 21);
244
+ i0.ɵɵtext(24, " Suite Health");
225
245
  i0.ɵɵelementEnd()();
226
- i0.ɵɵelementStart(32, "div", 22);
227
- i0.ɵɵrepeaterCreate(33, TestingDashboardTabComponent_Conditional_1_For_34_Template, 12, 12, "div", 23, _forTrack1, false, TestingDashboardTabComponent_Conditional_1_ForEmpty_35_Template, 2, 0, "div", 18);
246
+ i0.ɵɵelementStart(25, "div", 22);
247
+ i0.ɵɵrepeaterCreate(26, TestingDashboardTabComponent_ng_template_2_Conditional_1_For_27_Template, 12, 12, "div", 23, _forTrack1, false, TestingDashboardTabComponent_ng_template_2_Conditional_1_ForEmpty_28_Template, 2, 0, "div", 18);
228
248
  i0.ɵɵelementEnd()();
229
- i0.ɵɵelementStart(36, "div", 24)(37, "div", 11)(38, "h3");
230
- i0.ɵɵelement(39, "i", 25);
231
- i0.ɵɵtext(40, " Alerts");
249
+ i0.ɵɵelementStart(29, "div", 24)(30, "div", 11)(31, "h3");
250
+ i0.ɵɵelement(32, "i", 25);
251
+ i0.ɵɵtext(33, " Alerts");
232
252
  i0.ɵɵelementEnd()();
233
- i0.ɵɵelementStart(41, "div", 26);
234
- i0.ɵɵrepeaterCreate(42, TestingDashboardTabComponent_Conditional_1_For_43_Template, 9, 9, "div", 27, _forTrack1, false, TestingDashboardTabComponent_Conditional_1_ForEmpty_44_Template, 3, 0, "div", 18);
253
+ i0.ɵɵelementStart(34, "div", 26);
254
+ i0.ɵɵrepeaterCreate(35, TestingDashboardTabComponent_ng_template_2_Conditional_1_For_36_Template, 9, 9, "div", 27, _forTrack1, false, TestingDashboardTabComponent_ng_template_2_Conditional_1_ForEmpty_37_Template, 3, 0, "div", 18);
235
255
  i0.ɵɵelementEnd()()()()();
236
256
  } if (rf & 2) {
237
- const ctx_r1 = i0.ɵɵnextContext();
238
- i0.ɵɵadvance(5);
239
- i0.ɵɵproperty("disabled", ctx_r1.IsLoading);
240
- i0.ɵɵadvance();
241
- i0.ɵɵclassProp("spinning", ctx_r1.IsLoading);
242
- i0.ɵɵadvance(3);
243
- i0.ɵɵrepeater(ctx_r1.KpiCards);
257
+ const ctx_r2 = i0.ɵɵnextContext(2);
258
+ i0.ɵɵadvance(2);
259
+ i0.ɵɵrepeater(ctx_r2.KpiCards);
244
260
  i0.ɵɵadvance(4);
245
- i0.ɵɵconditional(ctx_r1.RunningTests.length > 0 ? 13 : 14);
261
+ i0.ɵɵconditional(ctx_r2.RunningTests.length > 0 ? 6 : 7);
246
262
  i0.ɵɵadvance(2);
247
- i0.ɵɵconditional(ctx_r1.RunningTests.length > 0 ? 15 : -1);
263
+ i0.ɵɵconditional(ctx_r2.RunningTests.length > 0 ? 8 : -1);
248
264
  i0.ɵɵadvance(8);
249
- i0.ɵɵrepeater(ctx_r1.RecentRuns);
265
+ i0.ɵɵrepeater(ctx_r2.RecentRuns);
250
266
  i0.ɵɵadvance(10);
251
- i0.ɵɵrepeater(ctx_r1.SortedSuites);
267
+ i0.ɵɵrepeater(ctx_r2.SortedSuites);
252
268
  i0.ɵɵadvance(9);
253
- i0.ɵɵrepeater(ctx_r1.Alerts);
269
+ i0.ɵɵrepeater(ctx_r2.Alerts);
270
+ } }
271
+ function TestingDashboardTabComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
272
+ i0.ɵɵconditionalCreate(0, TestingDashboardTabComponent_ng_template_2_Conditional_0_Template, 2, 0, "div", 5)(1, TestingDashboardTabComponent_ng_template_2_Conditional_1_Template, 38, 5, "div", 6);
273
+ } if (rf & 2) {
274
+ const ctx_r2 = i0.ɵɵnextContext();
275
+ i0.ɵɵconditional(ctx_r2.IsLoading ? 0 : 1);
254
276
  } }
255
277
  export class TestingDashboardTabComponent {
256
278
  instrumentationService;
@@ -258,6 +280,8 @@ export class TestingDashboardTabComponent {
258
280
  testingDialogService;
259
281
  cdr;
260
282
  initialState = null;
283
+ /** When true, the inner bespoke .page-header is hidden — the parent shell owns the chrome. */
284
+ HideToolbar = false;
261
285
  stateChange = new EventEmitter();
262
286
  destroy$ = new Subject();
263
287
  /** Resolved data for the template */
@@ -518,15 +542,35 @@ export class TestingDashboardTabComponent {
518
542
  }
519
543
  }
520
544
  static ɵfac = function TestingDashboardTabComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingDashboardTabComponent)(i0.ɵɵdirectiveInject(i1.TestingInstrumentationService), i0.ɵɵdirectiveInject(i2.TestingExecutionService), i0.ɵɵdirectiveInject(i2.TestingDialogService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
521
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingDashboardTabComponent, selectors: [["app-testing-dashboard-tab"]], inputs: { initialState: "initialState" }, outputs: { stateChange: "stateChange" }, standalone: false, decls: 2, vars: 1, consts: [[1, "full-page-loading"], [1, "dashboard-container"], ["text", "Loading Testing Dashboard..."], [1, "page-header"], [1, "page-title"], [1, "fa-solid", "fa-gauge-high"], [1, "refresh-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-refresh"], [1, "kpi-row"], [3, "data"], [1, "live-activity-card"], [1, "section-header"], [1, "running-tests-list"], [1, "lower-grid"], [1, "card", "recent-runs-card"], [1, "fa-solid", "fa-history"], [1, "runs-list"], [1, "run-row"], [1, "empty-state"], [1, "right-column"], [1, "card", "suite-health-card"], [1, "fa-solid", "fa-heartbeat"], [1, "suite-health-list"], [1, "suite-health-row"], [1, "card", "alerts-card"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "alerts-list"], [1, "alert-row"], [1, "live-dot"], [1, "fa-solid", "fa-circle-pause", "live-idle-icon"], [1, "running-test-item"], [1, "running-test-item", 3, "click"], [1, "running-test-info"], [1, "running-test-name"], [1, "running-test-step"], [1, "running-test-meta"], [1, "running-elapsed"], [1, "running-progress-bar"], [1, "running-progress-fill"], [1, "running-progress-pct"], [1, "run-row", 3, "click"], [1, "run-row-left"], [1, "run-row-name"], [1, "run-row-time"], [1, "run-row-right"], [3, "status"], [3, "score", "showBar"], [1, "run-row-duration"], [3, "cost"], [1, "suite-health-info"], [1, "suite-health-name"], [1, "suite-health-count"], [1, "suite-health-bar-wrapper"], [1, "suite-health-bar"], [1, "suite-health-bar-fill"], [1, "suite-health-pct"], [1, "alert-row", 3, "click"], [1, "fa-solid"], [1, "alert-info"], [1, "alert-name"], [1, "alert-reason"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)", "margin-right", "6px"]], template: function TestingDashboardTabComponent_Template(rf, ctx) { if (rf & 1) {
522
- i0.ɵɵconditionalCreate(0, TestingDashboardTabComponent_Conditional_0_Template, 2, 0, "div", 0)(1, TestingDashboardTabComponent_Conditional_1_Template, 45, 8, "div", 1);
545
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingDashboardTabComponent, selectors: [["app-testing-dashboard-tab"]], inputs: { initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { stateChange: "stateChange" }, standalone: false, decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Testing Overview", "Icon", "fa-solid fa-gauge-high", "Subtitle", "Test health, recent activity, and KPIs"], ["actions", ""], [3, "Clicked", "Loading"], [1, "full-page-loading"], [1, "dashboard-container"], ["text", "Loading Testing Dashboard..."], [1, "kpi-row"], [3, "data"], [1, "live-activity-card"], [1, "section-header"], [1, "running-tests-list"], [1, "lower-grid"], [1, "card", "recent-runs-card"], [1, "fa-solid", "fa-history"], [1, "runs-list"], [1, "run-row"], [1, "empty-state"], [1, "right-column"], [1, "card", "suite-health-card"], [1, "fa-solid", "fa-heartbeat"], [1, "suite-health-list"], [1, "suite-health-row"], [1, "card", "alerts-card"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "alerts-list"], [1, "alert-row"], [1, "live-dot"], [1, "fa-solid", "fa-circle-pause", "live-idle-icon"], [1, "running-test-item"], [1, "running-test-item", 3, "click"], [1, "running-test-info"], [1, "running-test-name"], [1, "running-test-step"], [1, "running-test-meta"], [1, "running-elapsed"], [1, "running-progress-bar"], [1, "running-progress-fill"], [1, "running-progress-pct"], [1, "run-row", 3, "click"], [1, "run-row-left"], [1, "run-row-name"], [1, "run-row-time"], [1, "run-row-right"], [3, "status"], [3, "score", "showBar"], [1, "run-row-duration"], [3, "cost"], [1, "suite-health-info"], [1, "suite-health-name"], [1, "suite-health-count"], [1, "suite-health-bar-wrapper"], [1, "suite-health-bar"], [1, "suite-health-bar-fill"], [1, "suite-health-pct"], [1, "alert-row", 3, "click"], [1, "fa-solid"], [1, "alert-info"], [1, "alert-name"], [1, "alert-reason"], [1, "fa-solid", "fa-check-circle", 2, "color", "var(--mj-status-success)", "margin-right", "6px"]], template: function TestingDashboardTabComponent_Template(rf, ctx) { if (rf & 1) {
546
+ i0.ɵɵconditionalCreate(0, TestingDashboardTabComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingDashboardTabComponent_Conditional_1_Template, 6, 2, "mj-page-layout");
547
+ i0.ɵɵtemplate(2, TestingDashboardTabComponent_ng_template_2_Template, 2, 1, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
523
548
  } if (rf & 2) {
524
- i0.ɵɵconditional(ctx.IsLoading ? 0 : 1);
525
- } }, dependencies: [i2.TestStatusBadgeComponent, i2.ScoreIndicatorComponent, i2.CostDisplayComponent, i3.LoadingComponent, i4.KPICardComponent, i5.DecimalPipe], styles: ["\n\n .full-page-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-card);\n }\n\n .dashboard-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 24px;\n }\n\n .page-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .page-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n .refresh-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 8px 18px;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s ease;\n }\n\n .refresh-btn[_ngcontent-%COMP%]:hover:not(:disabled) { background: var(--mj-brand-primary-hover); }\n .refresh-btn[_ngcontent-%COMP%]:disabled { opacity: 0.6; cursor: not-allowed; }\n .refresh-btn[_ngcontent-%COMP%] i.spinning[_ngcontent-%COMP%] { animation: _ngcontent-%COMP%_spin 1s linear infinite; }\n\n @keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n \n\n .kpi-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n margin-bottom: 24px;\n }\n\n \n\n .card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); font-size: 13px; }\n\n \n\n .live-activity-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n margin-bottom: 24px;\n overflow: hidden;\n }\n\n .live-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n background: var(--mj-status-success);\n border-radius: 50%;\n display: inline-block;\n animation: _ngcontent-%COMP%_pulse-dot 1.5s ease-in-out infinite;\n }\n\n @keyframes _ngcontent-%COMP%_pulse-dot {\n 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 50%, transparent); }\n 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n }\n\n .live-idle-icon[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 14px; }\n\n .running-tests-list[_ngcontent-%COMP%] {\n padding: 0 20px 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .running-test-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 14px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n border-radius: 8px;\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .running-test-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-success) 16%, var(--mj-bg-surface));\n }\n\n .running-test-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .running-test-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-status-success);\n }\n\n .running-test-step[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n }\n\n .running-test-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .running-elapsed[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-status-success);\n font-weight: 500;\n }\n\n .running-progress-bar[_ngcontent-%COMP%] {\n width: 80px;\n height: 4px;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-radius: 2px;\n overflow: hidden;\n }\n\n .running-progress-fill[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n background: var(--mj-status-success);\n border-radius: 2px;\n transition: width 0.5s ease;\n }\n\n .running-progress-pct[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-status-success);\n min-width: 30px;\n text-align: right;\n }\n\n \n\n .lower-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 24px;\n }\n\n .right-column[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n \n\n .runs-list[_ngcontent-%COMP%] {\n max-height: 520px;\n overflow-y: auto;\n }\n\n .run-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .run-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); }\n\n .run-row-left[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .run-row-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .run-row-time[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n .run-row-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .run-row-duration[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n min-width: 44px;\n text-align: right;\n }\n\n \n\n .suite-health-list[_ngcontent-%COMP%] {\n padding: 8px 0;\n max-height: 260px;\n overflow-y: auto;\n }\n\n .suite-health-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n }\n\n .suite-health-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .suite-health-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .suite-health-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n .suite-health-bar-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .suite-health-bar[_ngcontent-%COMP%] {\n width: 80px;\n height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px;\n overflow: hidden;\n }\n\n .suite-health-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n }\n\n .suite-health-pct[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n min-width: 36px;\n text-align: right;\n }\n\n \n\n .alerts-list[_ngcontent-%COMP%] {\n max-height: 220px;\n overflow-y: auto;\n }\n\n .alert-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .alert-row[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface)); }\n\n .alert-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .alert-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .alert-reason[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 32px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n \n\n @media (max-width: 900px) {\n .lower-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 640px) {\n .dashboard-container[_ngcontent-%COMP%] { padding: 16px; }\n .kpi-row[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"], changeDetection: 0 });
549
+ i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
550
+ } }, dependencies: [i3.NgTemplateOutlet, i4.MJPageHeaderComponent, i4.MJPageLayoutComponent, i4.MJPageBodyComponent, i4.MJRefreshButtonComponent, i2.TestStatusBadgeComponent, i2.ScoreIndicatorComponent, i2.CostDisplayComponent, i5.LoadingComponent, i6.KPICardComponent, i3.DecimalPipe], styles: ["\n\n .full-page-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-card);\n }\n\n .dashboard-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 24px;\n }\n\n .page-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .page-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n\n .refresh-btn[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 8px 18px;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s ease;\n }\n\n .refresh-btn[_ngcontent-%COMP%]:hover:not(:disabled) { background: var(--mj-brand-primary-hover); }\n .refresh-btn[_ngcontent-%COMP%]:disabled { opacity: 0.6; cursor: not-allowed; }\n .refresh-btn[_ngcontent-%COMP%] i.spinning[_ngcontent-%COMP%] { animation: _ngcontent-%COMP%_spin 1s linear infinite; }\n\n @keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n \n\n .kpi-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n margin-bottom: 24px;\n }\n\n \n\n .card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); font-size: 13px; }\n\n \n\n .live-activity-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n margin-bottom: 24px;\n overflow: hidden;\n }\n\n .live-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n background: var(--mj-status-success);\n border-radius: 50%;\n display: inline-block;\n animation: _ngcontent-%COMP%_pulse-dot 1.5s ease-in-out infinite;\n }\n\n @keyframes _ngcontent-%COMP%_pulse-dot {\n 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 50%, transparent); }\n 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n }\n\n .live-idle-icon[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 14px; }\n\n .running-tests-list[_ngcontent-%COMP%] {\n padding: 0 20px 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .running-test-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 14px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n border-radius: 8px;\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .running-test-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-status-success) 16%, var(--mj-bg-surface));\n }\n\n .running-test-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .running-test-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-status-success);\n }\n\n .running-test-step[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n }\n\n .running-test-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .running-elapsed[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-status-success);\n font-weight: 500;\n }\n\n .running-progress-bar[_ngcontent-%COMP%] {\n width: 80px;\n height: 4px;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-radius: 2px;\n overflow: hidden;\n }\n\n .running-progress-fill[_ngcontent-%COMP%] {\n display: block;\n height: 100%;\n background: var(--mj-status-success);\n border-radius: 2px;\n transition: width 0.5s ease;\n }\n\n .running-progress-pct[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-status-success);\n min-width: 30px;\n text-align: right;\n }\n\n \n\n .lower-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 24px;\n }\n\n .right-column[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n \n\n .runs-list[_ngcontent-%COMP%] {\n max-height: 520px;\n overflow-y: auto;\n }\n\n .run-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .run-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); }\n\n .run-row-left[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .run-row-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .run-row-time[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n .run-row-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .run-row-duration[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n min-width: 44px;\n text-align: right;\n }\n\n \n\n .suite-health-list[_ngcontent-%COMP%] {\n padding: 8px 0;\n max-height: 260px;\n overflow-y: auto;\n }\n\n .suite-health-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n }\n\n .suite-health-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .suite-health-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .suite-health-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n .suite-health-bar-wrapper[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .suite-health-bar[_ngcontent-%COMP%] {\n width: 80px;\n height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px;\n overflow: hidden;\n }\n\n .suite-health-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n }\n\n .suite-health-pct[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n min-width: 36px;\n text-align: right;\n }\n\n \n\n .alerts-list[_ngcontent-%COMP%] {\n max-height: 220px;\n overflow-y: auto;\n }\n\n .alert-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .alert-row[_ngcontent-%COMP%]:hover { background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface)); }\n\n .alert-info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .alert-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .alert-reason[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 32px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n \n\n @media (max-width: 900px) {\n .lower-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 640px) {\n .dashboard-container[_ngcontent-%COMP%] { padding: 16px; }\n .kpi-row[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"], changeDetection: 0 });
526
551
  }
527
552
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingDashboardTabComponent, [{
528
553
  type: Component,
529
554
  args: [{ standalone: false, selector: 'app-testing-dashboard-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: `
555
+ @if (HideToolbar) {
556
+ <ng-container *ngTemplateOutlet="content"></ng-container>
557
+ } @else {
558
+ <mj-page-layout>
559
+ <mj-page-header
560
+ Title="Testing Overview"
561
+ Icon="fa-solid fa-gauge-high"
562
+ Subtitle="Test health, recent activity, and KPIs">
563
+ <div actions>
564
+ <mj-refresh-button [Loading]="IsLoading" (Clicked)="OnRefresh()"></mj-refresh-button>
565
+ </div>
566
+ </mj-page-header>
567
+ <mj-page-body>
568
+ <ng-container *ngTemplateOutlet="content"></ng-container>
569
+ </mj-page-body>
570
+ </mj-page-layout>
571
+ }
572
+
573
+ <ng-template #content>
530
574
  <!-- Full-page loading state -->
531
575
  @if (IsLoading) {
532
576
  <div class="full-page-loading">
@@ -535,18 +579,6 @@ export class TestingDashboardTabComponent {
535
579
  } @else {
536
580
  <div class="dashboard-container">
537
581
 
538
- <!-- Page Header -->
539
- <div class="page-header">
540
- <h2 class="page-title">
541
- <i class="fa-solid fa-gauge-high"></i>
542
- Testing Dashboard
543
- </h2>
544
- <button class="refresh-btn" (click)="OnRefresh()" [disabled]="IsLoading">
545
- <i class="fa-solid fa-refresh" [class.spinning]="IsLoading"></i>
546
- Refresh
547
- </button>
548
- </div>
549
-
550
582
  <!-- KPI Row -->
551
583
  <div class="kpi-row">
552
584
  @for (kpi of KpiCards; track kpi.title) {
@@ -686,11 +718,14 @@ export class TestingDashboardTabComponent {
686
718
  </div>
687
719
  </div>
688
720
  }
721
+ </ng-template>
689
722
  `, styles: ["\n /* ===== Layout ===== */\n .full-page-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-card);\n }\n\n .dashboard-container {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n }\n\n /* ===== Page Header ===== */\n .page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 24px;\n }\n\n .page-title {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .page-title i { color: var(--mj-brand-primary); }\n\n .refresh-btn {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border: none;\n padding: 8px 18px;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n font-weight: 500;\n transition: background 0.2s ease;\n }\n\n .refresh-btn:hover:not(:disabled) { background: var(--mj-brand-primary-hover); }\n .refresh-btn:disabled { opacity: 0.6; cursor: not-allowed; }\n .refresh-btn i.spinning { animation: spin 1s linear infinite; }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n /* ===== KPI Row ===== */\n .kpi-row {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 16px;\n margin-bottom: 24px;\n }\n\n /* ===== Card Base ===== */\n .card {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .section-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .section-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .section-header h3 i { color: var(--mj-brand-primary); font-size: 13px; }\n\n /* ===== Live Activity ===== */\n .live-activity-card {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n margin-bottom: 24px;\n overflow: hidden;\n }\n\n .live-dot {\n width: 10px;\n height: 10px;\n background: var(--mj-status-success);\n border-radius: 50%;\n display: inline-block;\n animation: pulse-dot 1.5s ease-in-out infinite;\n }\n\n @keyframes pulse-dot {\n 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--mj-status-success) 50%, transparent); }\n 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--mj-status-success) 0%, transparent); }\n }\n\n .live-idle-icon { color: var(--mj-text-disabled); font-size: 14px; }\n\n .running-tests-list {\n padding: 0 20px 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .running-test-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 14px;\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n border-radius: 8px;\n border: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n cursor: pointer;\n transition: background 0.2s;\n }\n\n .running-test-item:hover {\n background: color-mix(in srgb, var(--mj-status-success) 16%, var(--mj-bg-surface));\n }\n\n .running-test-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .running-test-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-status-success);\n }\n\n .running-test-step {\n font-size: 11px;\n color: var(--mj-text-muted);\n }\n\n .running-test-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .running-elapsed {\n font-size: 12px;\n color: var(--mj-status-success);\n font-weight: 500;\n }\n\n .running-progress-bar {\n width: 80px;\n height: 4px;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-radius: 2px;\n overflow: hidden;\n }\n\n .running-progress-fill {\n display: block;\n height: 100%;\n background: var(--mj-status-success);\n border-radius: 2px;\n transition: width 0.5s ease;\n }\n\n .running-progress-pct {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-status-success);\n min-width: 30px;\n text-align: right;\n }\n\n /* ===== Lower Grid ===== */\n .lower-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 24px;\n }\n\n .right-column {\n display: flex;\n flex-direction: column;\n gap: 24px;\n }\n\n /* ===== Recent Runs ===== */\n .runs-list {\n max-height: 520px;\n overflow-y: auto;\n }\n\n .run-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .run-row:hover { background: var(--mj-bg-surface-card); }\n\n .run-row-left {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .run-row-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .run-row-time {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n .run-row-right {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .run-row-duration {\n font-size: 11px;\n color: var(--mj-text-muted);\n min-width: 44px;\n text-align: right;\n }\n\n /* ===== Suite Health ===== */\n .suite-health-list {\n padding: 8px 0;\n max-height: 260px;\n overflow-y: auto;\n }\n\n .suite-health-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n }\n\n .suite-health-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .suite-health-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .suite-health-count {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n .suite-health-bar-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n }\n\n .suite-health-bar {\n width: 80px;\n height: 6px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 3px;\n overflow: hidden;\n }\n\n .suite-health-bar-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n }\n\n .suite-health-pct {\n font-size: 12px;\n font-weight: 600;\n min-width: 36px;\n text-align: right;\n }\n\n /* ===== Alerts ===== */\n .alerts-list {\n max-height: 220px;\n overflow-y: auto;\n }\n\n .alert-row {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-card);\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .alert-row:hover { background: color-mix(in srgb, var(--mj-status-error) 8%, var(--mj-bg-surface)); }\n\n .alert-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n min-width: 0;\n }\n\n .alert-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .alert-reason {\n font-size: 11px;\n color: var(--mj-text-disabled);\n }\n\n /* ===== Empty State ===== */\n .empty-state {\n padding: 32px 20px;\n text-align: center;\n color: var(--mj-text-disabled);\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* ===== Responsive ===== */\n @media (max-width: 900px) {\n .lower-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 640px) {\n .dashboard-container { padding: 16px; }\n .kpi-row { grid-template-columns: 1fr; }\n }\n "] }]
690
723
  }], () => [{ type: i1.TestingInstrumentationService }, { type: i2.TestingExecutionService }, { type: i2.TestingDialogService }, { type: i0.ChangeDetectorRef }], { initialState: [{
691
724
  type: Input
725
+ }], HideToolbar: [{
726
+ type: Input
692
727
  }], stateChange: [{
693
728
  type: Output
694
729
  }] }); })();
695
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingDashboardTabComponent, { className: "TestingDashboardTabComponent", filePath: "src/Testing/components/testing-dashboard-tab.component.ts", lineNumber: 591 }); })();
730
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingDashboardTabComponent, { className: "TestingDashboardTabComponent", filePath: "src/Testing/components/testing-dashboard-tab.component.ts", lineNumber: 599 }); })();
696
731
  //# sourceMappingURL=testing-dashboard-tab.component.js.map