@memberjunction/ng-dashboards 5.34.0 → 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 (348) 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.d.ts +4 -0
  235. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  236. package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
  237. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  239. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  240. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  241. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  243. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  244. package/dist/Testing/components/testing-analytics.component.js +420 -393
  245. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  249. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  251. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  252. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  253. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  255. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  256. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  257. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  259. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  260. package/dist/Testing/components/testing-explorer.component.js +587 -608
  261. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  263. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  264. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  265. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  266. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  267. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  268. package/dist/Testing/components/testing-review.component.js +310 -274
  269. package/dist/Testing/components/testing-review.component.js.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  271. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  272. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  273. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  275. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  276. package/dist/Testing/components/testing-runs.component.js +307 -273
  277. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  279. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  280. package/dist/Testing/testing-dashboard.component.js +107 -93
  281. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  282. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  283. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  285. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  287. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  288. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  289. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  290. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  291. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  292. package/dist/actions-dashboards.module.d.ts +15 -16
  293. package/dist/actions-dashboards.module.d.ts.map +1 -1
  294. package/dist/actions-dashboards.module.js +34 -11
  295. package/dist/actions-dashboards.module.js.map +1 -1
  296. package/dist/ai-dashboards.module.d.ts +45 -48
  297. package/dist/ai-dashboards.module.d.ts.map +1 -1
  298. package/dist/ai-dashboards.module.js +36 -10
  299. package/dist/ai-dashboards.module.js.map +1 -1
  300. package/dist/archiving-dashboards.module.d.ts +2 -1
  301. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  302. package/dist/archiving-dashboards.module.js +12 -2
  303. package/dist/archiving-dashboards.module.js.map +1 -1
  304. package/dist/communication-dashboards.module.d.ts +2 -1
  305. package/dist/communication-dashboards.module.d.ts.map +1 -1
  306. package/dist/communication-dashboards.module.js +24 -3
  307. package/dist/communication-dashboards.module.js.map +1 -1
  308. package/dist/core-dashboards.module.d.ts +1 -1
  309. package/dist/core-dashboards.module.d.ts.map +1 -1
  310. package/dist/core-dashboards.module.js +31 -1
  311. package/dist/core-dashboards.module.js.map +1 -1
  312. package/dist/credentials-dashboards.module.d.ts +1 -1
  313. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  314. package/dist/credentials-dashboards.module.js +28 -1
  315. package/dist/credentials-dashboards.module.js.map +1 -1
  316. package/dist/lists-dashboards.module.d.ts +1 -1
  317. package/dist/lists-dashboards.module.d.ts.map +1 -1
  318. package/dist/lists-dashboards.module.js +28 -1
  319. package/dist/lists-dashboards.module.js.map +1 -1
  320. package/dist/public-api.d.ts +2 -2
  321. package/dist/public-api.d.ts.map +1 -1
  322. package/dist/public-api.js +3 -3
  323. package/dist/public-api.js.map +1 -1
  324. package/dist/scheduling-dashboards.module.d.ts +1 -1
  325. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  326. package/dist/scheduling-dashboards.module.js +31 -1
  327. package/dist/scheduling-dashboards.module.js.map +1 -1
  328. package/dist/testing-dashboards.module.d.ts +8 -7
  329. package/dist/testing-dashboards.module.d.ts.map +1 -1
  330. package/dist/testing-dashboards.module.js +30 -0
  331. package/dist/testing-dashboards.module.js.map +1 -1
  332. package/package.json +52 -52
  333. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  334. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  335. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  336. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  339. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  340. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  342. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  343. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  344. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  346. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  347. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  348. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
2
  import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
3
3
  import { takeUntil, debounceTime } from 'rxjs/operators';
4
4
  import { RunView, CompositeKey } from '@memberjunction/core';
@@ -12,90 +12,168 @@ import * as i1 from "@memberjunction/ng-testing";
12
12
  import * as i2 from "../services/testing-instrumentation.service";
13
13
  import * as i3 from "@angular/common";
14
14
  import * as i4 from "@angular/forms";
15
- import * as i5 from "@memberjunction/ng-versions";
16
- import * as i6 from "@memberjunction/ng-shared-generic";
17
- import * as i7 from "../../shared/pipes/highlight-search.pipe";
15
+ import * as i5 from "@memberjunction/ng-ui-components";
16
+ import * as i6 from "@memberjunction/ng-versions";
17
+ import * as i7 from "@memberjunction/ng-shared-generic";
18
+ import * as i8 from "../../shared/pipes/highlight-search.pipe";
18
19
  const _c0 = a0 => ({ node: a0, depth: 0 });
19
20
  const _c1 = (a0, a1) => ({ node: a0, depth: a1 });
20
21
  const _forTrack0 = ($index, $item) => $item.ID;
21
22
  const _forTrack1 = ($index, $item) => $item.TestID;
23
+ function TestingExplorerComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementContainer(0);
25
+ } }
22
26
  function TestingExplorerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
23
- i0.ɵɵelementStart(0, "div", 1);
24
- i0.ɵɵelement(1, "mj-loading", 8);
27
+ i0.ɵɵtemplate(0, TestingExplorerComponent_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 2);
28
+ } if (rf & 2) {
29
+ i0.ɵɵnextContext();
30
+ const content_r1 = i0.ɵɵreference(3);
31
+ i0.ɵɵproperty("ngTemplateOutlet", content_r1);
32
+ } }
33
+ function TestingExplorerComponent_Conditional_1_For_18_Template(rf, ctx) { if (rf & 1) {
34
+ const _r4 = i0.ɵɵgetCurrentView();
35
+ i0.ɵɵelementStart(0, "mj-filter-chip", 19);
36
+ i0.ɵɵlistener("Clicked", function TestingExplorerComponent_Conditional_1_For_18_Template_mj_filter_chip_Clicked_0_listener() { const status_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleStatus(status_r5)); });
37
+ i0.ɵɵelementEnd();
38
+ } if (rf & 2) {
39
+ const status_r5 = ctx.$implicit;
40
+ const ctx_r2 = i0.ɵɵnextContext(2);
41
+ i0.ɵɵproperty("Label", status_r5)("Active", ctx_r2.IsStatusActive(status_r5));
42
+ } }
43
+ function TestingExplorerComponent_Conditional_1_ng_container_21_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementContainer(0);
45
+ } }
46
+ function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
47
+ const _r2 = i0.ɵɵgetCurrentView();
48
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 3)(2, "div", 4);
49
+ i0.ɵɵelement(3, "mj-stat-badge", 5);
50
+ i0.ɵɵelementEnd();
51
+ i0.ɵɵelementStart(4, "div", 6)(5, "mj-view-toggle", 7);
52
+ i0.ɵɵlistener("KeyChange", function TestingExplorerComponent_Conditional_1_Template_mj_view_toggle_KeyChange_5_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode($event)); });
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵelementStart(6, "button", 8);
55
+ i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSortDirection()); });
56
+ i0.ɵɵelement(7, "i", 9)(8, "i", 10);
57
+ i0.ɵɵelementEnd();
58
+ i0.ɵɵelementStart(9, "button", 11);
59
+ i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewSuite()); });
60
+ i0.ɵɵelement(10, "i", 12);
61
+ i0.ɵɵtext(11, " New Suite ");
62
+ i0.ɵɵelementEnd();
63
+ i0.ɵɵelementStart(12, "button", 13);
64
+ i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewTest()); });
65
+ i0.ɵɵelement(13, "i", 14);
66
+ i0.ɵɵtext(14, " New Test ");
67
+ i0.ɵɵelementEnd()();
68
+ i0.ɵɵelementStart(15, "div", 15)(16, "mj-page-search", 16);
69
+ i0.ɵɵlistener("ValueChange", function TestingExplorerComponent_Conditional_1_Template_mj_page_search_ValueChange_16_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInputValue($event)); });
70
+ i0.ɵɵelementEnd();
71
+ i0.ɵɵrepeaterCreate(17, TestingExplorerComponent_Conditional_1_For_18_Template, 1, 2, "mj-filter-chip", 17, i0.ɵɵrepeaterTrackByIdentity);
72
+ i0.ɵɵelementStart(19, "mj-view-toggle", 7);
73
+ i0.ɵɵlistener("KeyChange", function TestingExplorerComponent_Conditional_1_Template_mj_view_toggle_KeyChange_19_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode($event)); });
74
+ i0.ɵɵelementEnd()()();
75
+ i0.ɵɵelementStart(20, "mj-page-body", 18);
76
+ i0.ɵɵtemplate(21, TestingExplorerComponent_Conditional_1_ng_container_21_Template, 1, 0, "ng-container", 2);
77
+ i0.ɵɵelementEnd()();
78
+ } if (rf & 2) {
79
+ const ctx_r2 = i0.ɵɵnextContext();
80
+ const content_r1 = i0.ɵɵreference(3);
81
+ i0.ɵɵadvance(3);
82
+ i0.ɵɵproperty("Count", ctx_r2.FilteredResultCount);
83
+ i0.ɵɵadvance(2);
84
+ i0.ɵɵproperty("Options", ctx_r2.HeaderViewOptions)("ActiveKey", ctx_r2.ViewMode);
85
+ i0.ɵɵadvance();
86
+ i0.ɵɵproperty("title", "Sort by " + ctx_r2.SortFieldLabel + " (" + (ctx_r2.SortDirection === "asc" ? "ascending" : "descending") + ")");
87
+ i0.ɵɵadvance(2);
88
+ i0.ɵɵclassProp("fa-arrow-up", ctx_r2.SortDirection === "asc")("fa-arrow-down", ctx_r2.SortDirection === "desc");
89
+ i0.ɵɵadvance(8);
90
+ i0.ɵɵproperty("Value", ctx_r2.SearchTerm);
91
+ i0.ɵɵadvance();
92
+ i0.ɵɵrepeater(ctx_r2.StatusOptions);
93
+ i0.ɵɵadvance(2);
94
+ i0.ɵɵproperty("Options", ctx_r2.DisplayModeOptions)("ActiveKey", ctx_r2.DisplayMode);
95
+ i0.ɵɵadvance();
96
+ i0.ɵɵproperty("Flex", true);
97
+ i0.ɵɵadvance();
98
+ i0.ɵɵproperty("ngTemplateOutlet", content_r1);
99
+ } }
100
+ function TestingExplorerComponent_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
101
+ i0.ɵɵelementStart(0, "div", 20);
102
+ i0.ɵɵelement(1, "mj-loading", 27);
25
103
  i0.ɵɵelementEnd();
26
104
  } }
27
- function TestingExplorerComponent_Conditional_1_Conditional_7_For_20_ng_container_0_Template(rf, ctx) { if (rf & 1) {
105
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_20_ng_container_0_Template(rf, ctx) { if (rf & 1) {
28
106
  i0.ɵɵelementContainer(0);
29
107
  } }
30
- function TestingExplorerComponent_Conditional_1_Conditional_7_For_20_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵtemplate(0, TestingExplorerComponent_Conditional_1_Conditional_7_For_20_ng_container_0_Template, 1, 0, "ng-container", 50);
108
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_20_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵtemplate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_20_ng_container_0_Template, 1, 0, "ng-container", 43);
32
110
  } if (rf & 2) {
33
- const node_r5 = ctx.$implicit;
111
+ const node_r9 = ctx.$implicit;
34
112
  i0.ɵɵnextContext(3);
35
- const suiteTreeTpl_r6 = i0.ɵɵreference(3);
36
- i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r5));
113
+ const suiteTreeTpl_r10 = i0.ɵɵreference(3);
114
+ i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r10)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r9));
37
115
  } }
38
- function TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template(rf, ctx) { if (rf & 1) {
39
- i0.ɵɵelementStart(0, "div", 48);
116
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_Conditional_21_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelementStart(0, "div", 41);
40
118
  i0.ɵɵtext(1, "No suites found");
41
119
  i0.ɵɵelementEnd();
42
120
  } }
43
- function TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template(rf, ctx) { if (rf & 1) {
44
- const _r7 = i0.ɵɵgetCurrentView();
45
- i0.ɵɵelementStart(0, "div", 44);
46
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template_div_click_0_listener() { const tt_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "testType", ID: tt_r8.ID })); });
47
- i0.ɵɵelement(1, "i", 51);
121
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_26_Template(rf, ctx) { if (rf & 1) {
122
+ const _r11 = i0.ɵɵgetCurrentView();
123
+ i0.ɵɵelementStart(0, "div", 37);
124
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_26_Template_div_click_0_listener() { const tt_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "testType", ID: tt_r12.ID })); });
125
+ i0.ɵɵelement(1, "i", 44);
48
126
  i0.ɵɵelementStart(2, "span");
49
127
  i0.ɵɵtext(3);
50
128
  i0.ɵɵelementEnd();
51
- i0.ɵɵelementStart(4, "span", 46);
129
+ i0.ɵɵelementStart(4, "span", 39);
52
130
  i0.ɵɵtext(5);
53
131
  i0.ɵɵelementEnd()();
54
132
  } if (rf & 2) {
55
- const tt_r8 = ctx.$implicit;
56
- const ctx_r2 = i0.ɵɵnextContext(3);
57
- i0.ɵɵclassProp("active", ctx_r2.SelectedSidebar.Type === "testType" && ctx_r2.IsSidebarSelected(tt_r8.ID));
133
+ const tt_r12 = ctx.$implicit;
134
+ const ctx_r2 = i0.ɵɵnextContext(4);
135
+ i0.ɵɵclassProp("active", ctx_r2.SelectedSidebar.Type === "testType" && ctx_r2.IsSidebarSelected(tt_r12.ID));
58
136
  i0.ɵɵadvance(3);
59
- i0.ɵɵtextInterpolate(tt_r8.Name);
137
+ i0.ɵɵtextInterpolate(tt_r12.Name);
60
138
  i0.ɵɵadvance(2);
61
- i0.ɵɵtextInterpolate(ctx_r2.GetTestCountForType(tt_r8.ID));
139
+ i0.ɵɵtextInterpolate(ctx_r2.GetTestCountForType(tt_r12.ID));
62
140
  } }
63
- function TestingExplorerComponent_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
64
- const _r4 = i0.ɵɵgetCurrentView();
65
- i0.ɵɵelementStart(0, "div", 13)(1, "div", 42)(2, "div", 43);
141
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
142
+ const _r8 = i0.ɵɵgetCurrentView();
143
+ i0.ɵɵelementStart(0, "div", 31)(1, "div", 35)(2, "div", 36);
66
144
  i0.ɵɵtext(3, "Browse");
67
145
  i0.ɵɵelementEnd();
68
- i0.ɵɵelementStart(4, "div", 44);
69
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_7_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "all", ID: null })); });
70
- i0.ɵɵelement(5, "i", 45);
146
+ i0.ɵɵelementStart(4, "div", 37);
147
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "all", ID: null })); });
148
+ i0.ɵɵelement(5, "i", 38);
71
149
  i0.ɵɵelementStart(6, "span");
72
150
  i0.ɵɵtext(7, "All Items");
73
151
  i0.ɵɵelementEnd();
74
- i0.ɵɵelementStart(8, "span", 46);
152
+ i0.ɵɵelementStart(8, "span", 39);
75
153
  i0.ɵɵtext(9);
76
154
  i0.ɵɵelementEnd()();
77
- i0.ɵɵelementStart(10, "div", 44);
78
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_7_Template_div_click_10_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "standalone", ID: null })); });
79
- i0.ɵɵelement(11, "i", 47);
155
+ i0.ɵɵelementStart(10, "div", 37);
156
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_Template_div_click_10_listener() { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "standalone", ID: null })); });
157
+ i0.ɵɵelement(11, "i", 40);
80
158
  i0.ɵɵelementStart(12, "span");
81
159
  i0.ɵɵtext(13, "Standalone Tests");
82
160
  i0.ɵɵelementEnd();
83
- i0.ɵɵelementStart(14, "span", 46);
161
+ i0.ɵɵelementStart(14, "span", 39);
84
162
  i0.ɵɵtext(15);
85
163
  i0.ɵɵelementEnd()()();
86
- i0.ɵɵelementStart(16, "div", 42)(17, "div", 43);
164
+ i0.ɵɵelementStart(16, "div", 35)(17, "div", 36);
87
165
  i0.ɵɵtext(18, "Test Suites");
88
166
  i0.ɵɵelementEnd();
89
- i0.ɵɵrepeaterCreate(19, TestingExplorerComponent_Conditional_1_Conditional_7_For_20_Template, 1, 4, "ng-container", null, _forTrack0);
90
- i0.ɵɵconditionalCreate(21, TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template, 2, 0, "div", 48);
167
+ i0.ɵɵrepeaterCreate(19, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_20_Template, 1, 4, "ng-container", null, _forTrack0);
168
+ i0.ɵɵconditionalCreate(21, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_Conditional_21_Template, 2, 0, "div", 41);
91
169
  i0.ɵɵelementEnd();
92
- i0.ɵɵelementStart(22, "div", 42)(23, "div", 43);
170
+ i0.ɵɵelementStart(22, "div", 35)(23, "div", 36);
93
171
  i0.ɵɵtext(24, "Test Types");
94
172
  i0.ɵɵelementEnd();
95
- i0.ɵɵrepeaterCreate(25, TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template, 6, 4, "div", 49, _forTrack0);
173
+ i0.ɵɵrepeaterCreate(25, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_For_26_Template, 6, 4, "div", 42, _forTrack0);
96
174
  i0.ɵɵelementEnd()();
97
175
  } if (rf & 2) {
98
- const ctx_r2 = i0.ɵɵnextContext(2);
176
+ const ctx_r2 = i0.ɵɵnextContext(3);
99
177
  i0.ɵɵadvance(4);
100
178
  i0.ɵɵclassProp("active", ctx_r2.SelectedSidebar.Type === "all");
101
179
  i0.ɵɵadvance(5);
@@ -111,777 +189,685 @@ function TestingExplorerComponent_Conditional_1_Conditional_7_Template(rf, ctx)
111
189
  i0.ɵɵadvance(4);
112
190
  i0.ɵɵrepeater(ctx_r2.FilteredTestTypes);
113
191
  } }
114
- function TestingExplorerComponent_Conditional_1_Conditional_14_Template(rf, ctx) { if (rf & 1) {
115
- const _r9 = i0.ɵɵgetCurrentView();
116
- i0.ɵɵelementStart(0, "button", 52);
117
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ClearSearch()); });
118
- i0.ɵɵelement(1, "i", 53);
119
- i0.ɵɵelementEnd();
120
- } }
121
- function TestingExplorerComponent_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
122
- const _r10 = i0.ɵɵgetCurrentView();
123
- i0.ɵɵelementStart(0, "button", 54);
124
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_For_17_Template_button_click_0_listener() { const status_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleStatus(status_r11)); });
192
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
193
+ i0.ɵɵelement(0, "span", 69);
125
194
  i0.ɵɵtext(1);
126
- i0.ɵɵelementEnd();
127
195
  } if (rf & 2) {
128
- const status_r11 = ctx.$implicit;
129
- const ctx_r2 = i0.ɵɵnextContext(2);
130
- i0.ɵɵclassProp("active", ctx_r2.IsStatusActive(status_r11));
131
- i0.ɵɵattribute("data-status", status_r11.toLowerCase());
196
+ const suite_r14 = i0.ɵɵnextContext().$implicit;
197
+ const ctx_r2 = i0.ɵɵnextContext(5);
132
198
  i0.ɵɵadvance();
133
- i0.ɵɵtextInterpolate1(" ", status_r11, " ");
199
+ i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(suite_r14.LastRunDate), " ");
134
200
  } }
135
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
136
- i0.ɵɵelement(0, "span", 79);
137
- i0.ɵɵtext(1);
138
- } if (rf & 2) {
139
- const suite_r13 = i0.ɵɵnextContext().$implicit;
140
- const ctx_r2 = i0.ɵɵnextContext(4);
141
- i0.ɵɵadvance();
142
- i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(suite_r13.LastRunDate), " ");
143
- } }
144
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
145
- i0.ɵɵelement(0, "p", 67);
201
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
202
+ i0.ɵɵelement(0, "p", 57);
146
203
  i0.ɵɵpipe(1, "highlightSearch");
147
204
  } if (rf & 2) {
148
- const suite_r13 = i0.ɵɵnextContext().$implicit;
149
- const ctx_r2 = i0.ɵɵnextContext(4);
150
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, suite_r13.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
205
+ const suite_r14 = i0.ɵɵnextContext().$implicit;
206
+ const ctx_r2 = i0.ɵɵnextContext(5);
207
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, suite_r14.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
151
208
  } }
152
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
153
- i0.ɵɵelementStart(0, "div", 81);
154
- i0.ɵɵelement(1, "span", 82);
155
- i0.ɵɵelementStart(2, "span", 83);
209
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵelementStart(0, "div", 71);
211
+ i0.ɵɵelement(1, "span", 72);
212
+ i0.ɵɵelementStart(2, "span", 73);
156
213
  i0.ɵɵtext(3);
157
214
  i0.ɵɵelementEnd();
158
- i0.ɵɵelementStart(4, "span", 84);
215
+ i0.ɵɵelementStart(4, "span", 74);
159
216
  i0.ɵɵtext(5);
160
217
  i0.ɵɵelementEnd();
161
- i0.ɵɵelementStart(6, "span", 85);
162
- i0.ɵɵelement(7, "span", 86);
218
+ i0.ɵɵelementStart(6, "span", 75);
219
+ i0.ɵɵelement(7, "span", 76);
163
220
  i0.ɵɵelementEnd();
164
- i0.ɵɵelementStart(8, "span", 87);
221
+ i0.ɵɵelementStart(8, "span", 77);
165
222
  i0.ɵɵtext(9);
166
223
  i0.ɵɵelementEnd()();
167
224
  } if (rf & 2) {
168
- const t_r14 = i0.ɵɵnextContext().$implicit;
169
- const ctx_r2 = i0.ɵɵnextContext(6);
225
+ const t_r15 = i0.ɵɵnextContext().$implicit;
226
+ const ctx_r2 = i0.ɵɵnextContext(7);
170
227
  i0.ɵɵadvance();
171
- i0.ɵɵattribute("data-status", t_r14.LastStatus.toLowerCase());
228
+ i0.ɵɵattribute("data-status", t_r15.LastStatus.toLowerCase());
172
229
  i0.ɵɵadvance(2);
173
- i0.ɵɵtextInterpolate(t_r14.TestName);
230
+ i0.ɵɵtextInterpolate(t_r15.TestName);
174
231
  i0.ɵɵadvance();
175
- i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r14.LastScore));
232
+ i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r15.LastScore));
176
233
  i0.ɵɵadvance();
177
- i0.ɵɵtextInterpolate1("", (t_r14.LastScore * 100).toFixed(0), "%");
234
+ i0.ɵɵtextInterpolate1("", (t_r15.LastScore * 100).toFixed(0), "%");
178
235
  i0.ɵɵadvance(2);
179
- i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r14.LastScore) + "-bg");
180
- i0.ɵɵstyleProp("width", t_r14.LastScore * 100, "%");
236
+ i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r15.LastScore) + "-bg");
237
+ i0.ɵɵstyleProp("width", t_r15.LastScore * 100, "%");
181
238
  i0.ɵɵadvance();
182
- i0.ɵɵattribute("data-status", t_r14.LastStatus.toLowerCase());
239
+ i0.ɵɵattribute("data-status", t_r15.LastStatus.toLowerCase());
183
240
  i0.ɵɵadvance();
184
- i0.ɵɵtextInterpolate(t_r14.LastStatus);
241
+ i0.ɵɵtextInterpolate(t_r15.LastStatus);
185
242
  } }
186
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Template(rf, ctx) { if (rf & 1) {
187
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template, 10, 11, "div", 81);
243
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_For_2_Template(rf, ctx) { if (rf & 1) {
244
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template, 10, 11, "div", 71);
188
245
  } if (rf & 2) {
189
- const ɵ$index_227_r15 = ctx.$index;
190
- i0.ɵɵconditional(ɵ$index_227_r15 < 4 ? 0 : -1);
246
+ const ɵ$index_210_r16 = ctx.$index;
247
+ i0.ɵɵconditional(ɵ$index_210_r16 < 4 ? 0 : -1);
191
248
  } }
192
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
193
- i0.ɵɵelementStart(0, "div", 80);
249
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
250
+ i0.ɵɵelementStart(0, "div", 70);
194
251
  i0.ɵɵtext(1);
195
252
  i0.ɵɵelementEnd();
196
253
  } if (rf & 2) {
197
- const suite_r13 = i0.ɵɵnextContext(2).$implicit;
254
+ const suite_r14 = i0.ɵɵnextContext(2).$implicit;
198
255
  i0.ɵɵadvance();
199
- i0.ɵɵtextInterpolate1("+", suite_r13.TotalTestsInSuite - 4, " more tests");
256
+ i0.ɵɵtextInterpolate1("+", suite_r14.TotalTestsInSuite - 4, " more tests");
200
257
  } }
201
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Template(rf, ctx) { if (rf & 1) {
202
- i0.ɵɵelementStart(0, "div", 72);
203
- i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Template, 1, 1, null, null, _forTrack1);
204
- i0.ɵɵconditionalCreate(3, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Conditional_3_Template, 2, 1, "div", 80);
258
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_Template(rf, ctx) { if (rf & 1) {
259
+ i0.ɵɵelementStart(0, "div", 62);
260
+ i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_For_2_Template, 1, 1, null, null, _forTrack1);
261
+ i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_Conditional_3_Template, 2, 1, "div", 70);
205
262
  i0.ɵɵelementEnd();
206
263
  } if (rf & 2) {
207
- const suite_r13 = i0.ɵɵnextContext().$implicit;
264
+ const suite_r14 = i0.ɵɵnextContext().$implicit;
208
265
  i0.ɵɵadvance();
209
- i0.ɵɵrepeater(suite_r13.Tests);
266
+ i0.ɵɵrepeater(suite_r14.Tests);
210
267
  i0.ɵɵadvance(2);
211
- i0.ɵɵconditional(suite_r13.TotalTestsInSuite > 4 ? 3 : -1);
268
+ i0.ɵɵconditional(suite_r14.TotalTestsInSuite > 4 ? 3 : -1);
212
269
  } }
213
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
214
- const _r12 = i0.ɵɵgetCurrentView();
215
- i0.ɵɵelementStart(0, "div", 60)(1, "div", 61)(2, "div", 62);
216
- i0.ɵɵelement(3, "i", 63)(4, "span", 64);
270
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
271
+ const _r13 = i0.ɵɵgetCurrentView();
272
+ i0.ɵɵelementStart(0, "div", 50)(1, "div", 51)(2, "div", 52);
273
+ i0.ɵɵelement(3, "i", 53)(4, "span", 54);
217
274
  i0.ɵɵpipe(5, "highlightSearch");
218
- i0.ɵɵelementStart(6, "span", 65);
275
+ i0.ɵɵelementStart(6, "span", 55);
219
276
  i0.ɵɵtext(7);
220
277
  i0.ɵɵelementEnd()();
221
- i0.ɵɵelementStart(8, "div", 66);
278
+ i0.ɵɵelementStart(8, "div", 56);
222
279
  i0.ɵɵtext(9);
223
- i0.ɵɵconditionalCreate(10, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_10_Template, 2, 1);
280
+ i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_10_Template, 2, 1);
224
281
  i0.ɵɵelementEnd();
225
- i0.ɵɵconditionalCreate(11, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 67);
282
+ i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 57);
226
283
  i0.ɵɵelementEnd();
227
- i0.ɵɵelementStart(12, "div", 68)(13, "div", 69)(14, "span", 70);
284
+ i0.ɵɵelementStart(12, "div", 58)(13, "div", 59)(14, "span", 60);
228
285
  i0.ɵɵtext(15, "Pass Rate");
229
286
  i0.ɵɵelementEnd();
230
- i0.ɵɵelementStart(16, "span", 71);
287
+ i0.ɵɵelementStart(16, "span", 61);
231
288
  i0.ɵɵtext(17);
232
289
  i0.ɵɵelementEnd()();
233
- i0.ɵɵelementStart(18, "div", 69)(19, "span", 70);
290
+ i0.ɵɵelementStart(18, "div", 59)(19, "span", 60);
234
291
  i0.ɵɵtext(20, "Tests");
235
292
  i0.ɵɵelementEnd();
236
- i0.ɵɵelementStart(21, "span", 71);
293
+ i0.ɵɵelementStart(21, "span", 61);
237
294
  i0.ɵɵtext(22);
238
295
  i0.ɵɵelementEnd()();
239
- i0.ɵɵelementStart(23, "div", 69)(24, "span", 70);
296
+ i0.ɵɵelementStart(23, "div", 59)(24, "span", 60);
240
297
  i0.ɵɵtext(25, "Avg Score");
241
298
  i0.ɵɵelementEnd();
242
- i0.ɵɵelementStart(26, "span", 71);
299
+ i0.ɵɵelementStart(26, "span", 61);
243
300
  i0.ɵɵtext(27);
244
301
  i0.ɵɵelementEnd()();
245
- i0.ɵɵelementStart(28, "div", 69)(29, "span", 70);
302
+ i0.ɵɵelementStart(28, "div", 59)(29, "span", 60);
246
303
  i0.ɵɵtext(30, "Avg Duration");
247
304
  i0.ɵɵelementEnd();
248
- i0.ɵɵelementStart(31, "span", 71);
305
+ i0.ɵɵelementStart(31, "span", 61);
249
306
  i0.ɵɵtext(32);
250
307
  i0.ɵɵelementEnd()()();
251
- i0.ɵɵconditionalCreate(33, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Template, 4, 1, "div", 72);
252
- i0.ɵɵelementStart(34, "div", 73)(35, "button", 74);
253
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template_button_click_35_listener() { const suite_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.RunSuite(suite_r13.ID)); });
254
- i0.ɵɵelement(36, "i", 75);
308
+ i0.ɵɵconditionalCreate(33, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Conditional_33_Template, 4, 1, "div", 62);
309
+ i0.ɵɵelementStart(34, "div", 63)(35, "button", 64);
310
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Template_button_click_35_listener() { const suite_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.RunSuite(suite_r14.ID)); });
311
+ i0.ɵɵelement(36, "i", 65);
255
312
  i0.ɵɵtext(37, " Run Suite ");
256
313
  i0.ɵɵelementEnd();
257
- i0.ɵɵelementStart(38, "button", 76);
258
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template_button_click_38_listener() { const suite_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ViewSuiteResults(suite_r13.ID)); });
259
- i0.ɵɵelement(39, "i", 77);
314
+ i0.ɵɵelementStart(38, "button", 66);
315
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Template_button_click_38_listener() { const suite_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.ViewSuiteResults(suite_r14.ID)); });
316
+ i0.ɵɵelement(39, "i", 67);
260
317
  i0.ɵɵtext(40, " Results ");
261
318
  i0.ɵɵelementEnd();
262
- i0.ɵɵelementStart(41, "button", 76);
263
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template_button_click_41_listener() { const suite_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Test Suites", suite_r13.ID)); });
264
- i0.ɵɵelement(42, "i", 78);
319
+ i0.ɵɵelementStart(41, "button", 66);
320
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Template_button_click_41_listener() { const suite_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Test Suites", suite_r14.ID)); });
321
+ i0.ɵɵelement(42, "i", 68);
265
322
  i0.ɵɵtext(43, " Edit ");
266
323
  i0.ɵɵelementEnd()()();
267
324
  } if (rf & 2) {
268
- const suite_r13 = ctx.$implicit;
269
- const ctx_r2 = i0.ɵɵnextContext(4);
325
+ const suite_r14 = ctx.$implicit;
326
+ const ctx_r2 = i0.ɵɵnextContext(5);
270
327
  i0.ɵɵadvance(4);
271
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 15, suite_r13.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
328
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 15, suite_r14.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
272
329
  i0.ɵɵadvance(2);
273
- i0.ɵɵattribute("data-status", suite_r13.Status.toLowerCase());
330
+ i0.ɵɵattribute("data-status", suite_r14.Status.toLowerCase());
274
331
  i0.ɵɵadvance();
275
- i0.ɵɵtextInterpolate(suite_r13.Status);
332
+ i0.ɵɵtextInterpolate(suite_r14.Status);
276
333
  i0.ɵɵadvance(2);
277
- i0.ɵɵtextInterpolate1(" ", suite_r13.TestCount, " tests ");
334
+ i0.ɵɵtextInterpolate1(" ", suite_r14.TestCount, " tests ");
278
335
  i0.ɵɵadvance();
279
- i0.ɵɵconditional(suite_r13.LastRunDate ? 10 : -1);
336
+ i0.ɵɵconditional(suite_r14.LastRunDate ? 10 : -1);
280
337
  i0.ɵɵadvance();
281
- i0.ɵɵconditional(suite_r13.Description ? 11 : -1);
338
+ i0.ɵɵconditional(suite_r14.Description ? 11 : -1);
282
339
  i0.ɵɵadvance(5);
283
- i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r13.PassRate / 100));
340
+ i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r14.PassRate / 100));
284
341
  i0.ɵɵadvance();
285
- i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(suite_r13.PassRate));
342
+ i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(suite_r14.PassRate));
286
343
  i0.ɵɵadvance(5);
287
- i0.ɵɵtextInterpolate(suite_r13.TestCount);
344
+ i0.ɵɵtextInterpolate(suite_r14.TestCount);
288
345
  i0.ɵɵadvance(4);
289
- i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r13.AvgScore));
346
+ i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r14.AvgScore));
290
347
  i0.ɵɵadvance();
291
- i0.ɵɵtextInterpolate1("", (suite_r13.AvgScore * 100).toFixed(0), "%");
348
+ i0.ɵɵtextInterpolate1("", (suite_r14.AvgScore * 100).toFixed(0), "%");
292
349
  i0.ɵɵadvance(5);
293
- i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(suite_r13.AvgDuration));
350
+ i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(suite_r14.AvgDuration));
294
351
  i0.ɵɵadvance();
295
- i0.ɵɵconditional(suite_r13.Tests.length > 0 ? 33 : -1);
352
+ i0.ɵɵconditional(suite_r14.Tests.length > 0 ? 33 : -1);
296
353
  } }
297
- function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_Template(rf, ctx) { if (rf & 1) {
298
- i0.ɵɵelementStart(0, "div", 55)(1, "h3", 56);
299
- i0.ɵɵelement(2, "i", 57);
354
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_Template(rf, ctx) { if (rf & 1) {
355
+ i0.ɵɵelementStart(0, "div", 45)(1, "h3", 46);
356
+ i0.ɵɵelement(2, "i", 47);
300
357
  i0.ɵɵtext(3, " Test Suites ");
301
- i0.ɵɵelementStart(4, "span", 58);
358
+ i0.ɵɵelementStart(4, "span", 48);
302
359
  i0.ɵɵtext(5);
303
360
  i0.ɵɵelementEnd()();
304
- i0.ɵɵelementStart(6, "div", 59);
305
- i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template, 44, 18, "div", 60, _forTrack0);
361
+ i0.ɵɵelementStart(6, "div", 49);
362
+ i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_For_8_Template, 44, 18, "div", 50, _forTrack0);
306
363
  i0.ɵɵelementEnd()();
307
364
  } if (rf & 2) {
308
- const ctx_r2 = i0.ɵɵnextContext(3);
365
+ const ctx_r2 = i0.ɵɵnextContext(4);
309
366
  i0.ɵɵadvance(5);
310
367
  i0.ɵɵtextInterpolate(ctx_r2.FilteredSuites.length);
311
368
  i0.ɵɵadvance(2);
312
369
  i0.ɵɵrepeater(ctx_r2.FilteredSuites);
313
370
  } }
314
- function TestingExplorerComponent_Conditional_1_Conditional_46_Template(rf, ctx) { if (rf & 1) {
315
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_Template, 9, 1, "div", 55);
371
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Template(rf, ctx) { if (rf & 1) {
372
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Conditional_0_Template, 9, 1, "div", 45);
316
373
  } if (rf & 2) {
317
- const ctx_r2 = i0.ɵɵnextContext(2);
374
+ const ctx_r2 = i0.ɵɵnextContext(3);
318
375
  i0.ɵɵconditional(ctx_r2.FilteredSuites.length > 0 ? 0 : -1);
319
376
  } }
320
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
321
- i0.ɵɵelement(0, "span", 79);
377
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
378
+ i0.ɵɵelement(0, "span", 69);
322
379
  i0.ɵɵtext(1);
323
380
  } if (rf & 2) {
324
- const test_r17 = i0.ɵɵnextContext().$implicit;
381
+ const test_r18 = i0.ɵɵnextContext().$implicit;
325
382
  i0.ɵɵadvance();
326
- i0.ɵɵtextInterpolate1(" ", test_r17.SuiteName, " ");
383
+ i0.ɵɵtextInterpolate1(" ", test_r18.SuiteName, " ");
327
384
  } }
328
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
329
- i0.ɵɵelement(0, "p", 67);
385
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
386
+ i0.ɵɵelement(0, "p", 57);
330
387
  i0.ɵɵpipe(1, "highlightSearch");
331
388
  } if (rf & 2) {
332
- const test_r17 = i0.ɵɵnextContext().$implicit;
333
- const ctx_r2 = i0.ɵɵnextContext(4);
334
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, test_r17.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
389
+ const test_r18 = i0.ɵɵnextContext().$implicit;
390
+ const ctx_r2 = i0.ɵɵnextContext(5);
391
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, test_r18.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
335
392
  } }
336
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_13_Template(rf, ctx) { if (rf & 1) {
337
- i0.ɵɵelementStart(0, "span", 91);
338
- i0.ɵɵelement(1, "i", 96);
393
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_13_Template(rf, ctx) { if (rf & 1) {
394
+ i0.ɵɵelementStart(0, "span", 81);
395
+ i0.ɵɵelement(1, "i", 86);
339
396
  i0.ɵɵtext(2);
340
397
  i0.ɵɵelementEnd();
341
398
  } if (rf & 2) {
342
- const test_r17 = i0.ɵɵnextContext().$implicit;
399
+ const test_r18 = i0.ɵɵnextContext().$implicit;
343
400
  i0.ɵɵadvance(2);
344
- i0.ɵɵtextInterpolate1(" ", test_r17.TypeName);
401
+ i0.ɵɵtextInterpolate1(" ", test_r18.TypeName);
345
402
  } }
346
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_14_Template(rf, ctx) { if (rf & 1) {
347
- i0.ɵɵelementStart(0, "span", 91);
348
- i0.ɵɵelement(1, "i", 97);
403
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_14_Template(rf, ctx) { if (rf & 1) {
404
+ i0.ɵɵelementStart(0, "span", 81);
405
+ i0.ɵɵelement(1, "i", 87);
349
406
  i0.ɵɵtext(2);
350
407
  i0.ɵɵelementEnd();
351
408
  } if (rf & 2) {
352
- const test_r17 = i0.ɵɵnextContext().$implicit;
353
- const ctx_r2 = i0.ɵɵnextContext(4);
409
+ const test_r18 = i0.ɵɵnextContext().$implicit;
410
+ const ctx_r2 = i0.ɵɵnextContext(5);
354
411
  i0.ɵɵadvance(2);
355
- i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(test_r17.EstDuration));
412
+ i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(test_r18.EstDuration));
356
413
  } }
357
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_15_Template(rf, ctx) { if (rf & 1) {
358
- i0.ɵɵelementStart(0, "span", 91);
359
- i0.ɵɵelement(1, "i", 98);
414
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_15_Template(rf, ctx) { if (rf & 1) {
415
+ i0.ɵɵelementStart(0, "span", 81);
416
+ i0.ɵɵelement(1, "i", 88);
360
417
  i0.ɵɵtext(2);
361
418
  i0.ɵɵelementEnd();
362
419
  } if (rf & 2) {
363
- const test_r17 = i0.ɵɵnextContext().$implicit;
364
- const ctx_r2 = i0.ɵɵnextContext(4);
420
+ const test_r18 = i0.ɵɵnextContext().$implicit;
421
+ const ctx_r2 = i0.ɵɵnextContext(5);
365
422
  i0.ɵɵadvance(2);
366
- i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(test_r17.EstCost));
423
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(test_r18.EstCost));
367
424
  } }
368
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
369
- i0.ɵɵelementStart(0, "span", 100);
425
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
426
+ i0.ɵɵelementStart(0, "span", 90);
370
427
  i0.ɵɵtext(1);
371
428
  i0.ɵɵelementEnd();
372
429
  } if (rf & 2) {
373
- const tag_r18 = i0.ɵɵnextContext().$implicit;
430
+ const tag_r19 = i0.ɵɵnextContext().$implicit;
374
431
  i0.ɵɵadvance();
375
- i0.ɵɵtextInterpolate(tag_r18);
432
+ i0.ɵɵtextInterpolate(tag_r19);
376
433
  } }
377
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Template(rf, ctx) { if (rf & 1) {
378
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template, 2, 1, "span", 100);
434
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_For_2_Template(rf, ctx) { if (rf & 1) {
435
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template, 2, 1, "span", 90);
379
436
  } if (rf & 2) {
380
- const ɵ$index_335_r19 = ctx.$index;
381
- i0.ɵɵconditional(ɵ$index_335_r19 < 4 ? 0 : -1);
437
+ const ɵ$index_318_r20 = ctx.$index;
438
+ i0.ɵɵconditional(ɵ$index_318_r20 < 4 ? 0 : -1);
382
439
  } }
383
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
384
- i0.ɵɵelementStart(0, "span", 99);
440
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
441
+ i0.ɵɵelementStart(0, "span", 89);
385
442
  i0.ɵɵtext(1);
386
443
  i0.ɵɵelementEnd();
387
444
  } if (rf & 2) {
388
- const test_r17 = i0.ɵɵnextContext(2).$implicit;
445
+ const test_r18 = i0.ɵɵnextContext(2).$implicit;
389
446
  i0.ɵɵadvance();
390
- i0.ɵɵtextInterpolate1("+", test_r17.Tags.length - 4);
447
+ i0.ɵɵtextInterpolate1("+", test_r18.Tags.length - 4);
391
448
  } }
392
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Template(rf, ctx) { if (rf & 1) {
393
- i0.ɵɵelementStart(0, "div", 93);
394
- i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
395
- i0.ɵɵconditionalCreate(3, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Conditional_3_Template, 2, 1, "span", 99);
449
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_Template(rf, ctx) { if (rf & 1) {
450
+ i0.ɵɵelementStart(0, "div", 83);
451
+ i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
452
+ i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_Conditional_3_Template, 2, 1, "span", 89);
396
453
  i0.ɵɵelementEnd();
397
454
  } if (rf & 2) {
398
- const test_r17 = i0.ɵɵnextContext().$implicit;
455
+ const test_r18 = i0.ɵɵnextContext().$implicit;
399
456
  i0.ɵɵadvance();
400
- i0.ɵɵrepeater(test_r17.Tags);
457
+ i0.ɵɵrepeater(test_r18.Tags);
401
458
  i0.ɵɵadvance(2);
402
- i0.ɵɵconditional(test_r17.Tags.length > 4 ? 3 : -1);
459
+ i0.ɵɵconditional(test_r18.Tags.length > 4 ? 3 : -1);
403
460
  } }
404
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
405
- const _r16 = i0.ɵɵgetCurrentView();
406
- i0.ɵɵelementStart(0, "div", 88)(1, "div", 61)(2, "div", 62);
407
- i0.ɵɵelement(3, "i", 89)(4, "span", 64);
461
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
462
+ const _r17 = i0.ɵɵgetCurrentView();
463
+ i0.ɵɵelementStart(0, "div", 78)(1, "div", 51)(2, "div", 52);
464
+ i0.ɵɵelement(3, "i", 79)(4, "span", 54);
408
465
  i0.ɵɵpipe(5, "highlightSearch");
409
- i0.ɵɵelementStart(6, "span", 65);
466
+ i0.ɵɵelementStart(6, "span", 55);
410
467
  i0.ɵɵtext(7);
411
468
  i0.ɵɵelementEnd()();
412
- i0.ɵɵelementStart(8, "div", 66);
469
+ i0.ɵɵelementStart(8, "div", 56);
413
470
  i0.ɵɵtext(9);
414
- i0.ɵɵconditionalCreate(10, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_10_Template, 2, 1);
415
- i0.ɵɵelementEnd();
416
- i0.ɵɵconditionalCreate(11, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 67);
417
- i0.ɵɵelementStart(12, "div", 90);
418
- i0.ɵɵconditionalCreate(13, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_13_Template, 3, 1, "span", 91);
419
- i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_14_Template, 3, 1, "span", 91);
420
- i0.ɵɵconditionalCreate(15, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_15_Template, 3, 1, "span", 91);
421
- i0.ɵɵelementStart(16, "span", 91);
422
- i0.ɵɵelement(17, "i", 92);
471
+ i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_10_Template, 2, 1);
472
+ i0.ɵɵelementEnd();
473
+ i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 57);
474
+ i0.ɵɵelementStart(12, "div", 80);
475
+ i0.ɵɵconditionalCreate(13, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_13_Template, 3, 1, "span", 81);
476
+ i0.ɵɵconditionalCreate(14, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_14_Template, 3, 1, "span", 81);
477
+ i0.ɵɵconditionalCreate(15, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_15_Template, 3, 1, "span", 81);
478
+ i0.ɵɵelementStart(16, "span", 81);
479
+ i0.ɵɵelement(17, "i", 82);
423
480
  i0.ɵɵtext(18);
424
481
  i0.ɵɵelementEnd()();
425
- i0.ɵɵconditionalCreate(19, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Template, 4, 1, "div", 93);
482
+ i0.ɵɵconditionalCreate(19, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Conditional_19_Template, 4, 1, "div", 83);
426
483
  i0.ɵɵelementEnd();
427
- i0.ɵɵelementStart(20, "div", 68)(21, "div", 69)(22, "span", 70);
484
+ i0.ɵɵelementStart(20, "div", 58)(21, "div", 59)(22, "span", 60);
428
485
  i0.ɵɵtext(23, "Last Status");
429
486
  i0.ɵɵelementEnd();
430
- i0.ɵɵelementStart(24, "span", 94);
487
+ i0.ɵɵelementStart(24, "span", 84);
431
488
  i0.ɵɵtext(25);
432
489
  i0.ɵɵelementEnd()();
433
- i0.ɵɵelementStart(26, "div", 69)(27, "span", 70);
490
+ i0.ɵɵelementStart(26, "div", 59)(27, "span", 60);
434
491
  i0.ɵɵtext(28, "Score");
435
492
  i0.ɵɵelementEnd();
436
- i0.ɵɵelementStart(29, "span", 71);
493
+ i0.ɵɵelementStart(29, "span", 61);
437
494
  i0.ɵɵtext(30);
438
495
  i0.ɵɵelementEnd()();
439
- i0.ɵɵelementStart(31, "div", 69)(32, "span", 70);
496
+ i0.ɵɵelementStart(31, "div", 59)(32, "span", 60);
440
497
  i0.ɵɵtext(33, "Total Runs");
441
498
  i0.ɵɵelementEnd();
442
- i0.ɵɵelementStart(34, "span", 71);
499
+ i0.ɵɵelementStart(34, "span", 61);
443
500
  i0.ɵɵtext(35);
444
501
  i0.ɵɵelementEnd()();
445
- i0.ɵɵelementStart(36, "div", 69)(37, "span", 70);
502
+ i0.ɵɵelementStart(36, "div", 59)(37, "span", 60);
446
503
  i0.ɵɵtext(38, "Pass Rate");
447
504
  i0.ɵɵelementEnd();
448
- i0.ɵɵelementStart(39, "span", 71);
505
+ i0.ɵɵelementStart(39, "span", 61);
449
506
  i0.ɵɵtext(40);
450
507
  i0.ɵɵelementEnd()()();
451
- i0.ɵɵelementStart(41, "div", 73)(42, "button", 74);
452
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template_button_click_42_listener() { const test_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.RunTest(test_r17.ID)); });
453
- i0.ɵɵelement(43, "i", 75);
508
+ i0.ɵɵelementStart(41, "div", 63)(42, "button", 64);
509
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Template_button_click_42_listener() { const test_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.RunTest(test_r18.ID)); });
510
+ i0.ɵɵelement(43, "i", 65);
454
511
  i0.ɵɵtext(44, " Run ");
455
512
  i0.ɵɵelementEnd();
456
- i0.ɵɵelementStart(45, "button", 76);
457
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template_button_click_45_listener() { const test_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ViewTestHistory(test_r17.ID)); });
458
- i0.ɵɵelement(46, "i", 95);
513
+ i0.ɵɵelementStart(45, "button", 66);
514
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Template_button_click_45_listener() { const test_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.ViewTestHistory(test_r18.ID)); });
515
+ i0.ɵɵelement(46, "i", 85);
459
516
  i0.ɵɵtext(47, " History ");
460
517
  i0.ɵɵelementEnd();
461
- i0.ɵɵelementStart(48, "button", 76);
462
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template_button_click_48_listener() { const test_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Tests", test_r17.ID)); });
463
- i0.ɵɵelement(49, "i", 78);
518
+ i0.ɵɵelementStart(48, "button", 66);
519
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Template_button_click_48_listener() { const test_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Tests", test_r18.ID)); });
520
+ i0.ɵɵelement(49, "i", 68);
464
521
  i0.ɵɵtext(50, " Edit ");
465
522
  i0.ɵɵelementEnd()()();
466
523
  } if (rf & 2) {
467
- const test_r17 = ctx.$implicit;
468
- const ctx_r2 = i0.ɵɵnextContext(4);
524
+ const test_r18 = ctx.$implicit;
525
+ const ctx_r2 = i0.ɵɵnextContext(5);
469
526
  i0.ɵɵadvance(4);
470
- i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 20, test_r17.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
527
+ i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 20, test_r18.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
471
528
  i0.ɵɵadvance(2);
472
- i0.ɵɵattribute("data-status", test_r17.Status.toLowerCase());
529
+ i0.ɵɵattribute("data-status", test_r18.Status.toLowerCase());
473
530
  i0.ɵɵadvance();
474
- i0.ɵɵtextInterpolate(test_r17.Status);
531
+ i0.ɵɵtextInterpolate(test_r18.Status);
475
532
  i0.ɵɵadvance(2);
476
- i0.ɵɵtextInterpolate1(" ", test_r17.TypeName, " ");
533
+ i0.ɵɵtextInterpolate1(" ", test_r18.TypeName, " ");
477
534
  i0.ɵɵadvance();
478
- i0.ɵɵconditional(test_r17.SuiteName ? 10 : -1);
535
+ i0.ɵɵconditional(test_r18.SuiteName ? 10 : -1);
479
536
  i0.ɵɵadvance();
480
- i0.ɵɵconditional(test_r17.Description ? 11 : -1);
537
+ i0.ɵɵconditional(test_r18.Description ? 11 : -1);
481
538
  i0.ɵɵadvance(2);
482
- i0.ɵɵconditional(test_r17.TypeName ? 13 : -1);
539
+ i0.ɵɵconditional(test_r18.TypeName ? 13 : -1);
483
540
  i0.ɵɵadvance();
484
- i0.ɵɵconditional(test_r17.EstDuration > 0 ? 14 : -1);
541
+ i0.ɵɵconditional(test_r18.EstDuration > 0 ? 14 : -1);
485
542
  i0.ɵɵadvance();
486
- i0.ɵɵconditional(test_r17.EstCost > 0 ? 15 : -1);
543
+ i0.ɵɵconditional(test_r18.EstCost > 0 ? 15 : -1);
487
544
  i0.ɵɵadvance(3);
488
- i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(test_r17.UpdatedAt));
545
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(test_r18.UpdatedAt));
489
546
  i0.ɵɵadvance();
490
- i0.ɵɵconditional(test_r17.Tags.length > 0 ? 19 : -1);
547
+ i0.ɵɵconditional(test_r18.Tags.length > 0 ? 19 : -1);
491
548
  i0.ɵɵadvance(5);
492
- i0.ɵɵattribute("data-status", test_r17.LastRunStatus.toLowerCase());
549
+ i0.ɵɵattribute("data-status", test_r18.LastRunStatus.toLowerCase());
493
550
  i0.ɵɵadvance();
494
- i0.ɵɵtextInterpolate(test_r17.LastRunStatus || "N/A");
551
+ i0.ɵɵtextInterpolate(test_r18.LastRunStatus || "N/A");
495
552
  i0.ɵɵadvance(4);
496
- i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r17.LastScore));
553
+ i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r18.LastScore));
497
554
  i0.ɵɵadvance();
498
- i0.ɵɵtextInterpolate(test_r17.LastScore > 0 ? (test_r17.LastScore * 100).toFixed(0) + "%" : "N/A");
555
+ i0.ɵɵtextInterpolate(test_r18.LastScore > 0 ? (test_r18.LastScore * 100).toFixed(0) + "%" : "N/A");
499
556
  i0.ɵɵadvance(5);
500
- i0.ɵɵtextInterpolate(test_r17.TotalRuns);
557
+ i0.ɵɵtextInterpolate(test_r18.TotalRuns);
501
558
  i0.ɵɵadvance(4);
502
- i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r17.PassRate / 100));
559
+ i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r18.PassRate / 100));
503
560
  i0.ɵɵadvance();
504
- i0.ɵɵtextInterpolate(test_r17.TotalRuns > 0 ? ctx_r2.FormatPercent(test_r17.PassRate) : "N/A");
561
+ i0.ɵɵtextInterpolate(test_r18.TotalRuns > 0 ? ctx_r2.FormatPercent(test_r18.PassRate) : "N/A");
505
562
  } }
506
- function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_Template(rf, ctx) { if (rf & 1) {
507
- i0.ɵɵelementStart(0, "div", 55)(1, "h3", 56);
508
- i0.ɵɵelement(2, "i", 47);
563
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
564
+ i0.ɵɵelementStart(0, "div", 45)(1, "h3", 46);
565
+ i0.ɵɵelement(2, "i", 40);
509
566
  i0.ɵɵtext(3, " Tests ");
510
- i0.ɵɵelementStart(4, "span", 58);
567
+ i0.ɵɵelementStart(4, "span", 48);
511
568
  i0.ɵɵtext(5);
512
569
  i0.ɵɵelementEnd()();
513
- i0.ɵɵelementStart(6, "div", 59);
514
- i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template, 51, 23, "div", 88, _forTrack0);
570
+ i0.ɵɵelementStart(6, "div", 49);
571
+ i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_For_8_Template, 51, 23, "div", 78, _forTrack0);
515
572
  i0.ɵɵelementEnd()();
516
573
  } if (rf & 2) {
517
- const ctx_r2 = i0.ɵɵnextContext(3);
574
+ const ctx_r2 = i0.ɵɵnextContext(4);
518
575
  i0.ɵɵadvance(5);
519
576
  i0.ɵɵtextInterpolate(ctx_r2.FilteredTests.length);
520
577
  i0.ɵɵadvance(2);
521
578
  i0.ɵɵrepeater(ctx_r2.FilteredTests);
522
579
  } }
523
- function TestingExplorerComponent_Conditional_1_Conditional_47_Template(rf, ctx) { if (rf & 1) {
524
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_Template, 9, 1, "div", 55);
580
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Template(rf, ctx) { if (rf & 1) {
581
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Conditional_0_Template, 9, 1, "div", 45);
525
582
  } if (rf & 2) {
526
- const ctx_r2 = i0.ɵɵnextContext(2);
583
+ const ctx_r2 = i0.ɵɵnextContext(3);
527
584
  i0.ɵɵconditional(ctx_r2.FilteredTests.length > 0 ? 0 : -1);
528
585
  } }
529
- function TestingExplorerComponent_Conditional_1_Conditional_48_Template(rf, ctx) { if (rf & 1) {
530
- i0.ɵɵelementStart(0, "div", 41);
531
- i0.ɵɵelement(1, "i", 101);
586
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_12_Template(rf, ctx) { if (rf & 1) {
587
+ i0.ɵɵelementStart(0, "div", 34);
588
+ i0.ɵɵelement(1, "i", 91);
532
589
  i0.ɵɵelementStart(2, "p");
533
590
  i0.ɵɵtext(3, "No tests or suites found");
534
591
  i0.ɵɵelementEnd();
535
- i0.ɵɵelementStart(4, "span", 102);
592
+ i0.ɵɵelementStart(4, "span", 92);
536
593
  i0.ɵɵtext(5, "Try adjusting your search or filters.");
537
594
  i0.ɵɵelementEnd()();
538
595
  } }
539
- function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
540
- const _r2 = i0.ɵɵgetCurrentView();
541
- i0.ɵɵelementStart(0, "div", 2)(1, "aside", 9)(2, "div", 10)(3, "h3");
596
+ function TestingExplorerComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
597
+ const _r7 = i0.ɵɵgetCurrentView();
598
+ i0.ɵɵelementStart(0, "div", 21)(1, "aside", 28)(2, "div", 29)(3, "h3");
542
599
  i0.ɵɵtext(4, "Explorer");
543
600
  i0.ɵɵelementEnd();
544
- i0.ɵɵelementStart(5, "button", 11);
545
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSidebar()); });
546
- i0.ɵɵelement(6, "i", 12);
601
+ i0.ɵɵelementStart(5, "button", 30);
602
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleSidebar()); });
603
+ i0.ɵɵelement(6, "i", 10);
547
604
  i0.ɵɵelementEnd()();
548
- i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_1_Conditional_7_Template, 27, 7, "div", 13);
549
- i0.ɵɵelementEnd();
550
- i0.ɵɵelementStart(8, "main", 14)(9, "div", 15)(10, "div", 16)(11, "div", 17);
551
- i0.ɵɵelement(12, "i", 18);
552
- i0.ɵɵelementStart(13, "input", 19);
553
- i0.ɵɵlistener("input", function TestingExplorerComponent_Conditional_1_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInput($event)); });
605
+ i0.ɵɵconditionalCreate(7, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_7_Template, 27, 7, "div", 31);
554
606
  i0.ɵɵelementEnd();
555
- i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_14_Template, 2, 0, "button", 20);
556
- i0.ɵɵelementEnd();
557
- i0.ɵɵelementStart(15, "div", 21);
558
- i0.ɵɵrepeaterCreate(16, TestingExplorerComponent_Conditional_1_For_17_Template, 2, 4, "button", 22, i0.ɵɵrepeaterTrackByIdentity);
559
- i0.ɵɵelementEnd()();
560
- i0.ɵɵelementStart(18, "div", 23)(19, "span", 24);
561
- i0.ɵɵtext(20);
562
- i0.ɵɵelementEnd();
563
- i0.ɵɵelementStart(21, "div", 25)(22, "button", 26);
564
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("card")); });
565
- i0.ɵɵelement(23, "i", 27);
566
- i0.ɵɵelementEnd();
567
- i0.ɵɵelementStart(24, "button", 28);
568
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("list")); });
569
- i0.ɵɵelement(25, "i", 29);
570
- i0.ɵɵelementEnd()();
571
- i0.ɵɵelementStart(26, "button", 30);
572
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewSuite()); });
573
- i0.ɵɵelement(27, "i", 31);
574
- i0.ɵɵtext(28, " New Suite ");
575
- i0.ɵɵelementEnd();
576
- i0.ɵɵelementStart(29, "button", 32);
577
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewTest()); });
578
- i0.ɵɵelement(30, "i", 33);
579
- i0.ɵɵtext(31, " New Test ");
580
- i0.ɵɵelementEnd()()();
581
- i0.ɵɵelementStart(32, "div", 34)(33, "div", 35)(34, "button", 36);
582
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("all")); });
583
- i0.ɵɵtext(35, "All");
584
- i0.ɵɵelementEnd();
585
- i0.ɵɵelementStart(36, "button", 36);
586
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_36_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("suites")); });
587
- i0.ɵɵtext(37, "Suites Only");
588
- i0.ɵɵelementEnd();
589
- i0.ɵɵelementStart(38, "button", 36);
590
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_38_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("tests")); });
591
- i0.ɵɵtext(39, "Tests Only");
592
- i0.ɵɵelementEnd()();
593
- i0.ɵɵelementStart(40, "div", 37)(41, "button", 38);
594
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_41_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSortDirection()); });
595
- i0.ɵɵelement(42, "i", 39);
596
- i0.ɵɵtext(43);
597
- i0.ɵɵelement(44, "i", 12);
598
- i0.ɵɵelementEnd()()();
599
- i0.ɵɵelementStart(45, "div", 40);
600
- i0.ɵɵconditionalCreate(46, TestingExplorerComponent_Conditional_1_Conditional_46_Template, 1, 1);
601
- i0.ɵɵconditionalCreate(47, TestingExplorerComponent_Conditional_1_Conditional_47_Template, 1, 1);
602
- i0.ɵɵconditionalCreate(48, TestingExplorerComponent_Conditional_1_Conditional_48_Template, 6, 0, "div", 41);
607
+ i0.ɵɵelementStart(8, "main", 32)(9, "div", 33);
608
+ i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_10_Template, 1, 1);
609
+ i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_11_Template, 1, 1);
610
+ i0.ɵɵconditionalCreate(12, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_12_Template, 6, 0, "div", 34);
603
611
  i0.ɵɵelementEnd()()();
604
612
  } if (rf & 2) {
605
- const ctx_r2 = i0.ɵɵnextContext();
613
+ const ctx_r2 = i0.ɵɵnextContext(2);
606
614
  i0.ɵɵadvance();
607
615
  i0.ɵɵclassProp("collapsed", ctx_r2.IsSidebarCollapsed);
608
616
  i0.ɵɵadvance(5);
609
617
  i0.ɵɵclassProp("fa-chevron-left", !ctx_r2.IsSidebarCollapsed)("fa-chevron-right", ctx_r2.IsSidebarCollapsed);
610
618
  i0.ɵɵadvance();
611
619
  i0.ɵɵconditional(!ctx_r2.IsSidebarCollapsed ? 7 : -1);
612
- i0.ɵɵadvance(6);
613
- i0.ɵɵproperty("value", ctx_r2.SearchTerm);
614
- i0.ɵɵadvance();
615
- i0.ɵɵconditional(ctx_r2.SearchTerm ? 14 : -1);
616
- i0.ɵɵadvance(2);
617
- i0.ɵɵrepeater(ctx_r2.StatusOptions);
618
- i0.ɵɵadvance(4);
619
- i0.ɵɵtextInterpolate1("", ctx_r2.FilteredResultCount, " results");
620
- i0.ɵɵadvance(2);
621
- i0.ɵɵclassProp("active", ctx_r2.ViewMode === "card");
622
- i0.ɵɵadvance(2);
623
- i0.ɵɵclassProp("active", ctx_r2.ViewMode === "list");
624
- i0.ɵɵadvance(10);
625
- i0.ɵɵclassProp("active", ctx_r2.DisplayMode === "all");
626
- i0.ɵɵadvance(2);
627
- i0.ɵɵclassProp("active", ctx_r2.DisplayMode === "suites");
628
- i0.ɵɵadvance(2);
629
- i0.ɵɵclassProp("active", ctx_r2.DisplayMode === "tests");
630
- i0.ɵɵadvance(5);
631
- i0.ɵɵtextInterpolate1(" ", ctx_r2.SortFieldLabel, " ");
632
- i0.ɵɵadvance();
633
- i0.ɵɵclassProp("fa-arrow-up", ctx_r2.SortDirection === "asc")("fa-arrow-down", ctx_r2.SortDirection === "desc");
634
- i0.ɵɵadvance(2);
635
- i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "suites" ? 46 : -1);
620
+ i0.ɵɵadvance(3);
621
+ i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "suites" ? 10 : -1);
636
622
  i0.ɵɵadvance();
637
- i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "tests" ? 47 : -1);
623
+ i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "tests" ? 11 : -1);
638
624
  i0.ɵɵadvance();
639
- i0.ɵɵconditional(ctx_r2.FilteredSuites.length === 0 && ctx_r2.FilteredTests.length === 0 ? 48 : -1);
625
+ i0.ɵɵconditional(ctx_r2.FilteredSuites.length === 0 && ctx_r2.FilteredTests.length === 0 ? 12 : -1);
640
626
  } }
641
- function TestingExplorerComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
642
- const _r22 = i0.ɵɵgetCurrentView();
643
- i0.ɵɵelementStart(0, "button", 106);
644
- i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r22); const node_r21 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSuiteExpand(node_r21, $event)); });
645
- i0.ɵɵelement(1, "i", 12);
627
+ function TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
628
+ const _r23 = i0.ɵɵgetCurrentView();
629
+ i0.ɵɵelementStart(0, "button", 96);
630
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r23); const node_r22 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleSuiteExpand(node_r22, $event)); });
631
+ i0.ɵɵelement(1, "i", 10);
646
632
  i0.ɵɵelementEnd();
647
633
  } if (rf & 2) {
648
- const node_r21 = i0.ɵɵnextContext().node;
634
+ const node_r22 = i0.ɵɵnextContext().node;
649
635
  i0.ɵɵadvance();
650
- i0.ɵɵclassProp("fa-chevron-right", !node_r21.Expanded)("fa-chevron-down", node_r21.Expanded);
636
+ i0.ɵɵclassProp("fa-chevron-right", !node_r22.Expanded)("fa-chevron-down", node_r22.Expanded);
651
637
  } }
652
- function TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
638
+ function TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_7_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
653
639
  i0.ɵɵelementContainer(0);
654
640
  } }
655
- function TestingExplorerComponent_ng_template_2_Conditional_7_For_1_Template(rf, ctx) { if (rf & 1) {
656
- i0.ɵɵtemplate(0, TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container_0_Template, 1, 0, "ng-container", 50);
641
+ function TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_7_For_1_Template(rf, ctx) { if (rf & 1) {
642
+ i0.ɵɵtemplate(0, TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_7_For_1_ng_container_0_Template, 1, 0, "ng-container", 43);
657
643
  } if (rf & 2) {
658
- const child_r23 = ctx.$implicit;
659
- const depth_r24 = i0.ɵɵnextContext(2).depth;
644
+ const child_r24 = ctx.$implicit;
645
+ const depth_r25 = i0.ɵɵnextContext(2).depth;
660
646
  i0.ɵɵnextContext();
661
- const suiteTreeTpl_r6 = i0.ɵɵreference(3);
662
- i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, child_r23, depth_r24 + 1));
647
+ const suiteTreeTpl_r10 = i0.ɵɵreference(3);
648
+ i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r10)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, child_r24, depth_r25 + 1));
663
649
  } }
664
- function TestingExplorerComponent_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
665
- i0.ɵɵrepeaterCreate(0, TestingExplorerComponent_ng_template_2_Conditional_7_For_1_Template, 1, 5, "ng-container", null, _forTrack0);
650
+ function TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
651
+ i0.ɵɵrepeaterCreate(0, TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_7_For_1_Template, 1, 5, "ng-container", null, _forTrack0);
666
652
  } if (rf & 2) {
667
- const node_r21 = i0.ɵɵnextContext().node;
668
- i0.ɵɵrepeater(node_r21.Children);
653
+ const node_r22 = i0.ɵɵnextContext().node;
654
+ i0.ɵɵrepeater(node_r22.Children);
669
655
  } }
670
- function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
671
- const _r20 = i0.ɵɵgetCurrentView();
672
- i0.ɵɵelementStart(0, "div", 103);
673
- i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Template_div_click_0_listener() { const node_r21 = i0.ɵɵrestoreView(_r20).node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "suite", ID: node_r21.ID })); });
674
- i0.ɵɵconditionalCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 2, 4, "button", 104);
675
- i0.ɵɵelement(2, "i", 57);
676
- i0.ɵɵelementStart(3, "span", 105);
656
+ function TestingExplorerComponent_ng_template_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
657
+ const _r21 = i0.ɵɵgetCurrentView();
658
+ i0.ɵɵelementStart(0, "div", 93);
659
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_ng_template_2_Template_div_click_0_listener() { const node_r22 = i0.ɵɵrestoreView(_r21).node; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "suite", ID: node_r22.ID })); });
660
+ i0.ɵɵconditionalCreate(1, TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_1_Template, 2, 4, "button", 94);
661
+ i0.ɵɵelement(2, "i", 47);
662
+ i0.ɵɵelementStart(3, "span", 95);
677
663
  i0.ɵɵtext(4);
678
664
  i0.ɵɵelementEnd();
679
- i0.ɵɵelementStart(5, "span", 46);
665
+ i0.ɵɵelementStart(5, "span", 39);
680
666
  i0.ɵɵtext(6);
681
667
  i0.ɵɵelementEnd()();
682
- i0.ɵɵconditionalCreate(7, TestingExplorerComponent_ng_template_2_Conditional_7_Template, 2, 0);
668
+ i0.ɵɵconditionalCreate(7, TestingExplorerComponent_ng_template_2_ng_template_2_Conditional_7_Template, 2, 0);
683
669
  } if (rf & 2) {
684
- const node_r21 = ctx.node;
685
- const depth_r24 = ctx.depth;
686
- const ctx_r2 = i0.ɵɵnextContext();
687
- i0.ɵɵstyleProp("padding-left", 16 + depth_r24 * 14, "px");
688
- i0.ɵɵclassProp("active", ctx_r2.SelectedSidebar.Type === "suite" && ctx_r2.IsSidebarSelected(node_r21.ID));
670
+ const node_r22 = ctx.node;
671
+ const depth_r25 = ctx.depth;
672
+ const ctx_r2 = i0.ɵɵnextContext(2);
673
+ i0.ɵɵstyleProp("padding-left", 16 + depth_r25 * 14, "px");
674
+ i0.ɵɵclassProp("active", ctx_r2.SelectedSidebar.Type === "suite" && ctx_r2.IsSidebarSelected(node_r22.ID));
689
675
  i0.ɵɵadvance();
690
- i0.ɵɵconditional(node_r21.Children.length > 0 ? 1 : -1);
676
+ i0.ɵɵconditional(node_r22.Children.length > 0 ? 1 : -1);
691
677
  i0.ɵɵadvance(3);
692
- i0.ɵɵtextInterpolate(node_r21.Name);
678
+ i0.ɵɵtextInterpolate(node_r22.Name);
693
679
  i0.ɵɵadvance(2);
694
- i0.ɵɵtextInterpolate(node_r21.TestCount);
680
+ i0.ɵɵtextInterpolate(node_r22.TestCount);
695
681
  i0.ɵɵadvance();
696
- i0.ɵɵconditional(node_r21.Expanded && node_r21.Children.length > 0 ? 7 : -1);
682
+ i0.ɵɵconditional(node_r22.Expanded && node_r22.Children.length > 0 ? 7 : -1);
697
683
  } }
698
- function TestingExplorerComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
699
- const _r25 = i0.ɵɵgetCurrentView();
700
- i0.ɵɵelementStart(0, "div", 107);
701
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
684
+ function TestingExplorerComponent_ng_template_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
685
+ const _r26 = i0.ɵɵgetCurrentView();
686
+ i0.ɵɵelementStart(0, "div", 97);
687
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
702
688
  i0.ɵɵelementEnd();
703
689
  } }
704
- function TestingExplorerComponent_Conditional_7_Conditional_15_Template(rf, ctx) { if (rf & 1) {
705
- i0.ɵɵelementStart(0, "div", 116);
706
- i0.ɵɵelement(1, "i", 134);
690
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_15_Template(rf, ctx) { if (rf & 1) {
691
+ i0.ɵɵelementStart(0, "div", 106);
692
+ i0.ɵɵelement(1, "i", 125);
707
693
  i0.ɵɵelementStart(2, "span");
708
694
  i0.ɵɵtext(3);
709
695
  i0.ɵɵelementEnd()();
710
696
  } if (rf & 2) {
711
- const ctx_r2 = i0.ɵɵnextContext(2);
697
+ const ctx_r2 = i0.ɵɵnextContext(3);
712
698
  i0.ɵɵadvance(3);
713
699
  i0.ɵɵtextInterpolate(ctx_r2.FormErrorMessage);
714
700
  } }
715
- function TestingExplorerComponent_Conditional_7_Conditional_31_For_9_Template(rf, ctx) { if (rf & 1) {
716
- i0.ɵɵelementStart(0, "option", 127);
701
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_31_For_9_Template(rf, ctx) { if (rf & 1) {
702
+ i0.ɵɵelementStart(0, "option", 117);
717
703
  i0.ɵɵtext(1);
718
704
  i0.ɵɵelementEnd();
719
705
  } if (rf & 2) {
720
- const tt_r28 = ctx.$implicit;
721
- i0.ɵɵproperty("value", tt_r28.ID);
706
+ const tt_r29 = ctx.$implicit;
707
+ i0.ɵɵproperty("value", tt_r29.ID);
722
708
  i0.ɵɵadvance();
723
- i0.ɵɵtextInterpolate(tt_r28.Name);
709
+ i0.ɵɵtextInterpolate(tt_r29.Name);
724
710
  } }
725
- function TestingExplorerComponent_Conditional_7_Conditional_31_Template(rf, ctx) { if (rf & 1) {
726
- const _r27 = i0.ɵɵgetCurrentView();
727
- i0.ɵɵelementStart(0, "div", 120)(1, "label", 121);
711
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_31_Template(rf, ctx) { if (rf & 1) {
712
+ const _r28 = i0.ɵɵgetCurrentView();
713
+ i0.ɵɵelementStart(0, "div", 110)(1, "label", 111);
728
714
  i0.ɵɵtext(2, "Test Type ");
729
- i0.ɵɵelementStart(3, "span", 122);
715
+ i0.ɵɵelementStart(3, "span", 112);
730
716
  i0.ɵɵtext(4, "*");
731
717
  i0.ɵɵelementEnd()();
732
- i0.ɵɵelementStart(5, "select", 126);
733
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_31_Template_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTypeID, $event) || (ctx_r2.FormTypeID = $event); return i0.ɵɵresetView($event); });
734
- i0.ɵɵelementStart(6, "option", 135);
718
+ i0.ɵɵelementStart(5, "select", 116);
719
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_31_Template_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r28); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTypeID, $event) || (ctx_r2.FormTypeID = $event); return i0.ɵɵresetView($event); });
720
+ i0.ɵɵelementStart(6, "option", 126);
735
721
  i0.ɵɵtext(7, "Select type...");
736
722
  i0.ɵɵelementEnd();
737
- i0.ɵɵrepeaterCreate(8, TestingExplorerComponent_Conditional_7_Conditional_31_For_9_Template, 2, 2, "option", 127, _forTrack0);
723
+ i0.ɵɵrepeaterCreate(8, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_31_For_9_Template, 2, 2, "option", 117, _forTrack0);
738
724
  i0.ɵɵelementEnd()();
739
725
  } if (rf & 2) {
740
- const ctx_r2 = i0.ɵɵnextContext(2);
726
+ const ctx_r2 = i0.ɵɵnextContext(3);
741
727
  i0.ɵɵadvance(5);
742
728
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormTypeID);
743
729
  i0.ɵɵadvance(3);
744
730
  i0.ɵɵrepeater(ctx_r2.AllTestTypes);
745
731
  } }
746
- function TestingExplorerComponent_Conditional_7_Conditional_32_For_7_Template(rf, ctx) { if (rf & 1) {
747
- i0.ɵɵelementStart(0, "option", 127);
732
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_32_For_7_Template(rf, ctx) { if (rf & 1) {
733
+ i0.ɵɵelementStart(0, "option", 117);
748
734
  i0.ɵɵtext(1);
749
735
  i0.ɵɵelementEnd();
750
736
  } if (rf & 2) {
751
- const s_r30 = ctx.$implicit;
752
- i0.ɵɵproperty("value", s_r30.ID);
737
+ const s_r31 = ctx.$implicit;
738
+ i0.ɵɵproperty("value", s_r31.ID);
753
739
  i0.ɵɵadvance();
754
- i0.ɵɵtextInterpolate(s_r30.Name);
740
+ i0.ɵɵtextInterpolate(s_r31.Name);
755
741
  } }
756
- function TestingExplorerComponent_Conditional_7_Conditional_32_Template(rf, ctx) { if (rf & 1) {
757
- const _r29 = i0.ɵɵgetCurrentView();
758
- i0.ɵɵelementStart(0, "div", 120)(1, "label", 121);
742
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_32_Template(rf, ctx) { if (rf & 1) {
743
+ const _r30 = i0.ɵɵgetCurrentView();
744
+ i0.ɵɵelementStart(0, "div", 110)(1, "label", 111);
759
745
  i0.ɵɵtext(2, "Parent Suite");
760
746
  i0.ɵɵelementEnd();
761
- i0.ɵɵelementStart(3, "select", 126);
762
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_32_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormParentSuiteID, $event) || (ctx_r2.FormParentSuiteID = $event); return i0.ɵɵresetView($event); });
763
- i0.ɵɵelementStart(4, "option", 136);
747
+ i0.ɵɵelementStart(3, "select", 116);
748
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_32_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r30); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormParentSuiteID, $event) || (ctx_r2.FormParentSuiteID = $event); return i0.ɵɵresetView($event); });
749
+ i0.ɵɵelementStart(4, "option", 127);
764
750
  i0.ɵɵtext(5, "None (top-level)");
765
751
  i0.ɵɵelementEnd();
766
- i0.ɵɵrepeaterCreate(6, TestingExplorerComponent_Conditional_7_Conditional_32_For_7_Template, 2, 2, "option", 127, _forTrack0);
752
+ i0.ɵɵrepeaterCreate(6, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_32_For_7_Template, 2, 2, "option", 117, _forTrack0);
767
753
  i0.ɵɵelementEnd()();
768
754
  } if (rf & 2) {
769
- const ctx_r2 = i0.ɵɵnextContext(2);
755
+ const ctx_r2 = i0.ɵɵnextContext(3);
770
756
  i0.ɵɵadvance(3);
771
757
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormParentSuiteID);
772
758
  i0.ɵɵadvance(3);
773
759
  i0.ɵɵrepeater(ctx_r2.AllSuites);
774
760
  } }
775
- function TestingExplorerComponent_Conditional_7_For_38_Template(rf, ctx) { if (rf & 1) {
776
- i0.ɵɵelementStart(0, "option", 127);
761
+ function TestingExplorerComponent_ng_template_2_Conditional_7_For_38_Template(rf, ctx) { if (rf & 1) {
762
+ i0.ɵɵelementStart(0, "option", 117);
777
763
  i0.ɵɵtext(1);
778
764
  i0.ɵɵelementEnd();
779
765
  } if (rf & 2) {
780
- const status_r31 = ctx.$implicit;
781
- i0.ɵɵproperty("value", status_r31);
766
+ const status_r32 = ctx.$implicit;
767
+ i0.ɵɵproperty("value", status_r32);
782
768
  i0.ɵɵadvance();
783
- i0.ɵɵtextInterpolate(status_r31);
769
+ i0.ɵɵtextInterpolate(status_r32);
784
770
  } }
785
- function TestingExplorerComponent_Conditional_7_Conditional_39_Template(rf, ctx) { if (rf & 1) {
786
- const _r32 = i0.ɵɵgetCurrentView();
787
- i0.ɵɵelementStart(0, "div", 118)(1, "div", 119);
771
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_39_Template(rf, ctx) { if (rf & 1) {
772
+ const _r33 = i0.ɵɵgetCurrentView();
773
+ i0.ɵɵelementStart(0, "div", 108)(1, "div", 109);
788
774
  i0.ɵɵtext(2, "Estimates");
789
775
  i0.ɵɵelementEnd();
790
- i0.ɵɵelementStart(3, "div", 125)(4, "div", 120)(5, "label", 121);
776
+ i0.ɵɵelementStart(3, "div", 115)(4, "div", 110)(5, "label", 111);
791
777
  i0.ɵɵtext(6, "Duration (seconds)");
792
778
  i0.ɵɵelementEnd();
793
- i0.ɵɵelementStart(7, "input", 137);
794
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_39_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstDuration, $event) || (ctx_r2.FormEstDuration = $event); return i0.ɵɵresetView($event); });
779
+ i0.ɵɵelementStart(7, "input", 128);
780
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_39_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstDuration, $event) || (ctx_r2.FormEstDuration = $event); return i0.ɵɵresetView($event); });
795
781
  i0.ɵɵelementEnd()();
796
- i0.ɵɵelementStart(8, "div", 120)(9, "label", 121);
782
+ i0.ɵɵelementStart(8, "div", 110)(9, "label", 111);
797
783
  i0.ɵɵtext(10, "Cost (USD)");
798
784
  i0.ɵɵelementEnd();
799
- i0.ɵɵelementStart(11, "input", 138);
800
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_39_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstCost, $event) || (ctx_r2.FormEstCost = $event); return i0.ɵɵresetView($event); });
785
+ i0.ɵɵelementStart(11, "input", 129);
786
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_39_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstCost, $event) || (ctx_r2.FormEstCost = $event); return i0.ɵɵresetView($event); });
801
787
  i0.ɵɵelementEnd()()()();
802
788
  } if (rf & 2) {
803
- const ctx_r2 = i0.ɵɵnextContext(2);
789
+ const ctx_r2 = i0.ɵɵnextContext(3);
804
790
  i0.ɵɵadvance(7);
805
791
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormEstDuration);
806
792
  i0.ɵɵadvance(4);
807
793
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormEstCost);
808
794
  } }
809
- function TestingExplorerComponent_Conditional_7_Conditional_51_Template(rf, ctx) { if (rf & 1) {
810
- i0.ɵɵelement(0, "i", 132);
795
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_51_Template(rf, ctx) { if (rf & 1) {
796
+ i0.ɵɵelement(0, "i", 123);
811
797
  } }
812
- function TestingExplorerComponent_Conditional_7_Conditional_52_Template(rf, ctx) { if (rf & 1) {
813
- i0.ɵɵelement(0, "i", 133);
798
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_52_Template(rf, ctx) { if (rf & 1) {
799
+ i0.ɵɵelement(0, "i", 124);
814
800
  } }
815
- function TestingExplorerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
816
- const _r26 = i0.ɵɵgetCurrentView();
817
- i0.ɵɵelementStart(0, "div", 6)(1, "div", 108)(2, "div", 109);
818
- i0.ɵɵelement(3, "i", 110);
819
- i0.ɵɵelementStart(4, "span", 111);
801
+ function TestingExplorerComponent_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
802
+ const _r27 = i0.ɵɵgetCurrentView();
803
+ i0.ɵɵelementStart(0, "div", 25)(1, "div", 98)(2, "div", 99);
804
+ i0.ɵɵelement(3, "i", 100);
805
+ i0.ɵɵelementStart(4, "span", 101);
820
806
  i0.ɵɵtext(5);
821
807
  i0.ɵɵelementEnd()();
822
- i0.ɵɵelementStart(6, "button", 112);
823
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
824
- i0.ɵɵelement(7, "i", 113);
808
+ i0.ɵɵelementStart(6, "button", 102);
809
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
810
+ i0.ɵɵelement(7, "i", 103);
825
811
  i0.ɵɵelementEnd()();
826
- i0.ɵɵelementStart(8, "div", 114)(9, "button", 115);
827
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("test")); });
828
- i0.ɵɵelement(10, "i", 47);
812
+ i0.ɵɵelementStart(8, "div", 104)(9, "button", 105);
813
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("test")); });
814
+ i0.ɵɵelement(10, "i", 40);
829
815
  i0.ɵɵtext(11, " Test ");
830
816
  i0.ɵɵelementEnd();
831
- i0.ɵɵelementStart(12, "button", 115);
832
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("suite")); });
833
- i0.ɵɵelement(13, "i", 57);
817
+ i0.ɵɵelementStart(12, "button", 105);
818
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("suite")); });
819
+ i0.ɵɵelement(13, "i", 47);
834
820
  i0.ɵɵtext(14, " Suite ");
835
821
  i0.ɵɵelementEnd()();
836
- i0.ɵɵconditionalCreate(15, TestingExplorerComponent_Conditional_7_Conditional_15_Template, 4, 1, "div", 116);
837
- i0.ɵɵelementStart(16, "div", 117)(17, "div", 118)(18, "div", 119);
822
+ i0.ɵɵconditionalCreate(15, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_15_Template, 4, 1, "div", 106);
823
+ i0.ɵɵelementStart(16, "div", 107)(17, "div", 108)(18, "div", 109);
838
824
  i0.ɵɵtext(19, "General");
839
825
  i0.ɵɵelementEnd();
840
- i0.ɵɵelementStart(20, "div", 120)(21, "label", 121);
826
+ i0.ɵɵelementStart(20, "div", 110)(21, "label", 111);
841
827
  i0.ɵɵtext(22, "Name ");
842
- i0.ɵɵelementStart(23, "span", 122);
828
+ i0.ɵɵelementStart(23, "span", 112);
843
829
  i0.ɵɵtext(24, "*");
844
830
  i0.ɵɵelementEnd()();
845
- i0.ɵɵelementStart(25, "input", 123);
846
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_input_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormName, $event) || (ctx_r2.FormName = $event); return i0.ɵɵresetView($event); });
831
+ i0.ɵɵelementStart(25, "input", 113);
832
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_input_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormName, $event) || (ctx_r2.FormName = $event); return i0.ɵɵresetView($event); });
847
833
  i0.ɵɵelementEnd()();
848
- i0.ɵɵelementStart(26, "div", 120)(27, "label", 121);
834
+ i0.ɵɵelementStart(26, "div", 110)(27, "label", 111);
849
835
  i0.ɵɵtext(28, "Description");
850
836
  i0.ɵɵelementEnd();
851
- i0.ɵɵelementStart(29, "textarea", 124);
852
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_textarea_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormDescription, $event) || (ctx_r2.FormDescription = $event); return i0.ɵɵresetView($event); });
837
+ i0.ɵɵelementStart(29, "textarea", 114);
838
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_textarea_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormDescription, $event) || (ctx_r2.FormDescription = $event); return i0.ɵɵresetView($event); });
853
839
  i0.ɵɵelementEnd()();
854
- i0.ɵɵelementStart(30, "div", 125);
855
- i0.ɵɵconditionalCreate(31, TestingExplorerComponent_Conditional_7_Conditional_31_Template, 10, 1, "div", 120);
856
- i0.ɵɵconditionalCreate(32, TestingExplorerComponent_Conditional_7_Conditional_32_Template, 8, 1, "div", 120);
857
- i0.ɵɵelementStart(33, "div", 120)(34, "label", 121);
840
+ i0.ɵɵelementStart(30, "div", 115);
841
+ i0.ɵɵconditionalCreate(31, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_31_Template, 10, 1, "div", 110);
842
+ i0.ɵɵconditionalCreate(32, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_32_Template, 8, 1, "div", 110);
843
+ i0.ɵɵelementStart(33, "div", 110)(34, "label", 111);
858
844
  i0.ɵɵtext(35, "Status");
859
845
  i0.ɵɵelementEnd();
860
- i0.ɵɵelementStart(36, "select", 126);
861
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_select_ngModelChange_36_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormStatus, $event) || (ctx_r2.FormStatus = $event); return i0.ɵɵresetView($event); });
862
- i0.ɵɵrepeaterCreate(37, TestingExplorerComponent_Conditional_7_For_38_Template, 2, 2, "option", 127, i0.ɵɵrepeaterTrackByIdentity);
846
+ i0.ɵɵelementStart(36, "select", 116);
847
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_select_ngModelChange_36_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormStatus, $event) || (ctx_r2.FormStatus = $event); return i0.ɵɵresetView($event); });
848
+ i0.ɵɵrepeaterCreate(37, TestingExplorerComponent_ng_template_2_Conditional_7_For_38_Template, 2, 2, "option", 117, i0.ɵɵrepeaterTrackByIdentity);
863
849
  i0.ɵɵelementEnd()()()();
864
- i0.ɵɵconditionalCreate(39, TestingExplorerComponent_Conditional_7_Conditional_39_Template, 12, 2, "div", 118);
865
- i0.ɵɵelementStart(40, "div", 118)(41, "div", 119);
850
+ i0.ɵɵconditionalCreate(39, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_39_Template, 12, 2, "div", 108);
851
+ i0.ɵɵelementStart(40, "div", 108)(41, "div", 109);
866
852
  i0.ɵɵtext(42, "Tags");
867
853
  i0.ɵɵelementEnd();
868
- i0.ɵɵelementStart(43, "div", 120)(44, "input", 128);
869
- i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_input_ngModelChange_44_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTags, $event) || (ctx_r2.FormTags = $event); return i0.ɵɵresetView($event); });
854
+ i0.ɵɵelementStart(43, "div", 110)(44, "input", 118);
855
+ i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_input_ngModelChange_44_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTags, $event) || (ctx_r2.FormTags = $event); return i0.ɵɵresetView($event); });
870
856
  i0.ɵɵelementEnd();
871
- i0.ɵɵelementStart(45, "span", 129);
857
+ i0.ɵɵelementStart(45, "span", 119);
872
858
  i0.ɵɵtext(46, "Separate multiple tags with commas");
873
859
  i0.ɵɵelementEnd()()()();
874
- i0.ɵɵelementStart(47, "div", 130)(48, "button", 30);
875
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_48_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
860
+ i0.ɵɵelementStart(47, "div", 120)(48, "button", 121);
861
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_button_click_48_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
876
862
  i0.ɵɵtext(49, "Cancel");
877
863
  i0.ɵɵelementEnd();
878
- i0.ɵɵelementStart(50, "button", 131);
879
- i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_50_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SaveForm()); });
880
- i0.ɵɵconditionalCreate(51, TestingExplorerComponent_Conditional_7_Conditional_51_Template, 1, 0, "i", 132)(52, TestingExplorerComponent_Conditional_7_Conditional_52_Template, 1, 0, "i", 133);
864
+ i0.ɵɵelementStart(50, "button", 122);
865
+ i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_button_click_50_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SaveForm()); });
866
+ i0.ɵɵconditionalCreate(51, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_51_Template, 1, 0, "i", 123)(52, TestingExplorerComponent_ng_template_2_Conditional_7_Conditional_52_Template, 1, 0, "i", 124);
881
867
  i0.ɵɵtext(53);
882
868
  i0.ɵɵelementEnd()()();
883
869
  } if (rf & 2) {
884
- const ctx_r2 = i0.ɵɵnextContext();
870
+ const ctx_r2 = i0.ɵɵnextContext(2);
885
871
  i0.ɵɵadvance(5);
886
872
  i0.ɵɵtextInterpolate1(" Create ", ctx_r2.SlideoutCreateType === "test" ? "Test" : "Test Suite", " ");
887
873
  i0.ɵɵadvance(4);
@@ -915,24 +901,64 @@ function TestingExplorerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1)
915
901
  i0.ɵɵadvance(2);
916
902
  i0.ɵɵtextInterpolate1(" Create ", ctx_r2.SlideoutCreateType === "test" ? "Test" : "Suite", " ");
917
903
  } }
918
- function TestingExplorerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
919
- const _r33 = i0.ɵɵgetCurrentView();
920
- i0.ɵɵelementStart(0, "mj-slide-panel", 139);
921
- i0.ɵɵlistener("Closed", function TestingExplorerComponent_Conditional_8_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
922
- i0.ɵɵelementStart(1, "app-test-run-dialog", 140);
923
- i0.ɵɵlistener("PanelClose", function TestingExplorerComponent_Conditional_8_Template_app_test_run_dialog_PanelClose_1_listener() { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
904
+ function TestingExplorerComponent_ng_template_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
905
+ const _r34 = i0.ɵɵgetCurrentView();
906
+ i0.ɵɵelementStart(0, "mj-slide-panel", 130);
907
+ i0.ɵɵlistener("Closed", function TestingExplorerComponent_ng_template_2_Conditional_8_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
908
+ i0.ɵɵelementStart(1, "app-test-run-dialog", 131);
909
+ i0.ɵɵlistener("PanelClose", function TestingExplorerComponent_ng_template_2_Conditional_8_Template_app_test_run_dialog_PanelClose_1_listener() { i0.ɵɵrestoreView(_r34); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
924
910
  i0.ɵɵelementEnd()();
925
911
  } if (rf & 2) {
926
- const ctx_r2 = i0.ɵɵnextContext();
912
+ const ctx_r2 = i0.ɵɵnextContext(2);
927
913
  i0.ɵɵproperty("Resizable", true);
928
914
  i0.ɵɵadvance();
929
915
  i0.ɵɵproperty("PanelMode", true)("selectedTestId", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.testId) ?? null)("selectedSuiteId", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.suiteId) ?? null)("runMode", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.mode) ?? "test");
930
916
  } }
917
+ function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
918
+ const _r6 = i0.ɵɵgetCurrentView();
919
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_0_Template, 2, 0, "div", 20)(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 13, 10, "div", 21);
920
+ i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_ng_template_2_Template, 8, 8, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
921
+ i0.ɵɵconditionalCreate(4, TestingExplorerComponent_ng_template_2_Conditional_4_Template, 1, 0, "div", 22);
922
+ i0.ɵɵelementStart(5, "div", 23)(6, "div", 24);
923
+ i0.ɵɵlistener("mousedown", function TestingExplorerComponent_ng_template_2_Template_div_mousedown_6_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnResizeStart($event)); });
924
+ i0.ɵɵelementEnd();
925
+ i0.ɵɵconditionalCreate(7, TestingExplorerComponent_ng_template_2_Conditional_7_Template, 54, 18, "div", 25);
926
+ i0.ɵɵelementEnd();
927
+ i0.ɵɵconditionalCreate(8, TestingExplorerComponent_ng_template_2_Conditional_8_Template, 2, 5, "mj-slide-panel", 26);
928
+ } if (rf & 2) {
929
+ const ctx_r2 = i0.ɵɵnextContext();
930
+ i0.ɵɵconditional(ctx_r2.IsLoading ? 0 : 1);
931
+ i0.ɵɵadvance(4);
932
+ i0.ɵɵconditional(ctx_r2.SlideoutOpen ? 4 : -1);
933
+ i0.ɵɵadvance();
934
+ i0.ɵɵstyleProp("width", ctx_r2.SlideoutWidth, "px");
935
+ i0.ɵɵclassProp("open", ctx_r2.SlideoutOpen);
936
+ i0.ɵɵadvance(2);
937
+ i0.ɵɵconditional(ctx_r2.SlideoutOpen ? 7 : -1);
938
+ i0.ɵɵadvance();
939
+ i0.ɵɵconditional(ctx_r2.testingDialogService.IsPanelOpen ? 8 : -1);
940
+ } }
931
941
  export class TestingExplorerComponent extends BaseAngularComponent {
932
942
  cdr;
933
943
  viewContainerRef;
934
944
  testingDialogService;
935
945
  instrumentationService;
946
+ HeaderViewOptions = [
947
+ { key: 'card', icon: 'fa-solid fa-grip', title: 'Card view' },
948
+ { key: 'list', icon: 'fa-solid fa-list', title: 'List view' }
949
+ ];
950
+ DisplayModeOptions = [
951
+ { key: 'all', label: 'All' },
952
+ { key: 'suites', label: 'Suites' },
953
+ { key: 'tests', label: 'Tests' }
954
+ ];
955
+ /** mj-page-search emits a string; bridge it to the inner's Event-based OnSearchInput. */
956
+ OnSearchInputValue(value) {
957
+ const fakeEvent = { target: { value } };
958
+ this.OnSearchInput(fakeEvent);
959
+ }
960
+ /** When true, the inner bespoke .toolbar is hidden — the parent shell owns the chrome. */
961
+ HideToolbar = false;
936
962
  destroy$ = new Subject();
937
963
  // Raw cached data
938
964
  allTests = [];
@@ -1666,33 +1692,72 @@ export class TestingExplorerComponent extends BaseAngularComponent {
1666
1692
  throw new Error('Failed to save test suite. Please check your input and try again.');
1667
1693
  }
1668
1694
  static ɵfac = function TestingExplorerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingExplorerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.TestingDialogService), i0.ɵɵdirectiveInject(i2.TestingInstrumentationService)); };
1669
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingExplorerComponent, selectors: [["app-testing-explorer"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 9, vars: 8, consts: [["suiteTreeTpl", ""], [1, "explorer-loading"], [1, "explorer-layout"], [1, "slideout-backdrop"], [1, "slideout-panel"], [1, "slideout-resize-handle", 3, "mousedown"], [1, "slideout-container"], ["Mode", "slide", "Title", "Run Test", 3, "Resizable"], ["text", "Loading test explorer..."], [1, "sidebar"], [1, "sidebar-header"], [1, "sidebar-toggle", 3, "click"], [1, "fa-solid"], [1, "sidebar-content"], [1, "main-content"], [1, "toolbar"], [1, "toolbar-left"], [1, "toolbar-search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search tests and suites...", 3, "input", "value"], [1, "clear-search"], [1, "status-chips"], [1, "chip", 3, "active"], [1, "toolbar-right"], [1, "result-count"], [1, "view-toggle"], ["title", "Card View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-list"], [1, "btn", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "btn", "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "toggle-bar"], [1, "toggle-group"], [1, "toggle-btn", 3, "click"], [1, "sort-indicator"], [1, "sort-btn", 3, "click"], [1, "fa-solid", "fa-arrow-down-short-wide"], [1, "content-area"], [1, "empty-state"], [1, "sidebar-section"], [1, "sidebar-section-title"], [1, "sidebar-item", 3, "click"], [1, "fa-solid", "fa-layer-group"], [1, "sidebar-count"], [1, "fa-solid", "fa-vial"], [1, "sidebar-empty"], [1, "sidebar-item", 3, "active"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "fa-solid", "fa-tag"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], [1, "chip", 3, "click"], [1, "content-section"], [1, "section-title"], [1, "fa-solid", "fa-folder"], [1, "section-count"], [1, "card-grid"], [1, "suite-card"], [1, "card-header"], [1, "card-title-row"], [1, "fa-solid", "fa-folder-open", "card-icon", "suite-icon"], [1, "card-name", 3, "innerHTML"], [1, "status-badge"], [1, "card-subtitle"], [1, "card-description", 3, "innerHTML"], [1, "card-stats"], [1, "stat"], [1, "stat-label"], [1, "stat-value"], [1, "card-tests-preview"], [1, "card-actions"], [1, "btn", "btn-sm", "btn-primary", 3, "click"], [1, "fa-solid", "fa-play"], [1, "btn", "btn-sm", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-chart-bar"], [1, "fa-solid", "fa-pen"], [1, "dot-sep"], [1, "preview-more"], [1, "preview-test-row"], [1, "preview-dot"], [1, "preview-test-name"], [1, "preview-score"], [1, "preview-bar"], [1, "preview-bar-fill"], [1, "preview-status"], [1, "test-card"], [1, "fa-solid", "fa-vial", "card-icon", "test-icon"], [1, "card-meta-row"], [1, "meta-item"], [1, "fa-solid", "fa-calendar"], [1, "card-tags"], [1, "stat-value", "status-text"], [1, "fa-solid", "fa-history"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-dollar-sign"], [1, "tag", "tag-more"], [1, "tag"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "sidebar-item", "suite-tree-item", 3, "click"], [1, "tree-toggle"], [1, "tree-name"], [1, "tree-toggle", 3, "click"], [1, "slideout-backdrop", 3, "click"], [1, "slideout-header"], [1, "slideout-title-row"], [1, "fa-solid", "fa-plus-circle", "slideout-title-icon"], [1, "slideout-title-text"], [1, "slideout-close-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "slideout-type-toggle"], [1, "type-toggle-btn", 3, "click"], [1, "slideout-error"], [1, "slideout-body"], [1, "form-section"], [1, "form-section-title"], [1, "form-group"], [1, "form-label"], [1, "form-required"], ["type", "text", 1, "form-input", 3, "ngModelChange", "ngModel", "placeholder"], ["rows", "3", 1, "form-textarea", 3, "ngModelChange", "ngModel", "placeholder"], [1, "form-row"], [1, "form-input", 3, "ngModelChange", "ngModel"], [3, "value"], ["type", "text", "placeholder", "Comma-separated tags, e.g., agent, quality, v2", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "form-hint"], [1, "slideout-footer"], [1, "btn", "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-circle-exclamation"], ["value", "", "disabled", ""], ["value", ""], ["type", "number", "min", "0", "placeholder", "0", 1, "form-input", 3, "ngModelChange", "ngModel"], ["type", "number", "min", "0", "step", "0.01", "placeholder", "0.00", 1, "form-input", 3, "ngModelChange", "ngModel"], ["Mode", "slide", "Title", "Run Test", 3, "Closed", "Resizable"], [3, "PanelClose", "PanelMode", "selectedTestId", "selectedSuiteId", "runMode"]], template: function TestingExplorerComponent_Template(rf, ctx) { if (rf & 1) {
1670
- const _r1 = i0.ɵɵgetCurrentView();
1671
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_0_Template, 2, 0, "div", 1)(1, TestingExplorerComponent_Conditional_1_Template, 49, 28, "div", 2);
1672
- i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template, 8, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1673
- i0.ɵɵconditionalCreate(4, TestingExplorerComponent_Conditional_4_Template, 1, 0, "div", 3);
1674
- i0.ɵɵelementStart(5, "div", 4)(6, "div", 5);
1675
- i0.ɵɵlistener("mousedown", function TestingExplorerComponent_Template_div_mousedown_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnResizeStart($event)); });
1676
- i0.ɵɵelementEnd();
1677
- i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_7_Template, 54, 18, "div", 6);
1678
- i0.ɵɵelementEnd();
1679
- i0.ɵɵconditionalCreate(8, TestingExplorerComponent_Conditional_8_Template, 2, 5, "mj-slide-panel", 7);
1695
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingExplorerComponent, selectors: [["app-testing-explorer"]], inputs: { HideToolbar: "HideToolbar" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 1, consts: [["content", ""], ["suiteTreeTpl", ""], [4, "ngTemplateOutlet"], ["Title", "Test Explorer", "Icon", "fa-solid fa-compass", "Subtitle", "Browse tests and test suites"], ["meta", ""], ["Label", "results", 3, "Count"], ["actions", ""], [3, "KeyChange", "Options", "ActiveKey"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click", "title"], [1, "fa-solid", "fa-arrow-down-short-wide"], [1, "fa-solid"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-folder-plus"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search tests and suites...", 3, "ValueChange", "Value"], [3, "Label", "Active"], [3, "Flex"], [3, "Clicked", "Label", "Active"], [1, "explorer-loading"], [1, "explorer-layout"], [1, "slideout-backdrop"], [1, "slideout-panel"], [1, "slideout-resize-handle", 3, "mousedown"], [1, "slideout-container"], ["Mode", "slide", "Title", "Run Test", 3, "Resizable"], ["text", "Loading test explorer..."], [1, "sidebar"], [1, "sidebar-header"], [1, "sidebar-toggle", 3, "click"], [1, "sidebar-content"], [1, "main-content"], [1, "content-area"], [1, "empty-state"], [1, "sidebar-section"], [1, "sidebar-section-title"], [1, "sidebar-item", 3, "click"], [1, "fa-solid", "fa-layer-group"], [1, "sidebar-count"], [1, "fa-solid", "fa-vial"], [1, "sidebar-empty"], [1, "sidebar-item", 3, "active"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "fa-solid", "fa-tag"], [1, "content-section"], [1, "section-title"], [1, "fa-solid", "fa-folder"], [1, "section-count"], [1, "card-grid"], [1, "suite-card"], [1, "card-header"], [1, "card-title-row"], [1, "fa-solid", "fa-folder-open", "card-icon", "suite-icon"], [1, "card-name", 3, "innerHTML"], [1, "status-badge"], [1, "card-subtitle"], [1, "card-description", 3, "innerHTML"], [1, "card-stats"], [1, "stat"], [1, "stat-label"], [1, "stat-value"], [1, "card-tests-preview"], [1, "card-actions"], [1, "btn", "btn-sm", "btn-primary", 3, "click"], [1, "fa-solid", "fa-play"], [1, "btn", "btn-sm", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-chart-bar"], [1, "fa-solid", "fa-pen"], [1, "dot-sep"], [1, "preview-more"], [1, "preview-test-row"], [1, "preview-dot"], [1, "preview-test-name"], [1, "preview-score"], [1, "preview-bar"], [1, "preview-bar-fill"], [1, "preview-status"], [1, "test-card"], [1, "fa-solid", "fa-vial", "card-icon", "test-icon"], [1, "card-meta-row"], [1, "meta-item"], [1, "fa-solid", "fa-calendar"], [1, "card-tags"], [1, "stat-value", "status-text"], [1, "fa-solid", "fa-history"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-dollar-sign"], [1, "tag", "tag-more"], [1, "tag"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "sidebar-item", "suite-tree-item", 3, "click"], [1, "tree-toggle"], [1, "tree-name"], [1, "tree-toggle", 3, "click"], [1, "slideout-backdrop", 3, "click"], [1, "slideout-header"], [1, "slideout-title-row"], [1, "fa-solid", "fa-plus-circle", "slideout-title-icon"], [1, "slideout-title-text"], [1, "slideout-close-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "slideout-type-toggle"], [1, "type-toggle-btn", 3, "click"], [1, "slideout-error"], [1, "slideout-body"], [1, "form-section"], [1, "form-section-title"], [1, "form-group"], [1, "form-label"], [1, "form-required"], ["type", "text", 1, "form-input", 3, "ngModelChange", "ngModel", "placeholder"], ["rows", "3", 1, "form-textarea", 3, "ngModelChange", "ngModel", "placeholder"], [1, "form-row"], [1, "form-input", 3, "ngModelChange", "ngModel"], [3, "value"], ["type", "text", "placeholder", "Comma-separated tags, e.g., agent, quality, v2", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "form-hint"], [1, "slideout-footer"], [1, "btn", "btn-secondary", 3, "click"], [1, "btn", "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-circle-exclamation"], ["value", "", "disabled", ""], ["value", ""], ["type", "number", "min", "0", "placeholder", "0", 1, "form-input", 3, "ngModelChange", "ngModel"], ["type", "number", "min", "0", "step", "0.01", "placeholder", "0.00", 1, "form-input", 3, "ngModelChange", "ngModel"], ["Mode", "slide", "Title", "Run Test", 3, "Closed", "Resizable"], [3, "PanelClose", "PanelMode", "selectedTestId", "selectedSuiteId", "runMode"]], template: function TestingExplorerComponent_Template(rf, ctx) { if (rf & 1) {
1696
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingExplorerComponent_Conditional_1_Template, 22, 13, "mj-page-layout");
1697
+ i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template, 9, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
1680
1698
  } if (rf & 2) {
1681
- i0.ɵɵconditional(ctx.IsLoading ? 0 : 1);
1682
- i0.ɵɵadvance(4);
1683
- i0.ɵɵconditional(ctx.SlideoutOpen ? 4 : -1);
1684
- i0.ɵɵadvance();
1685
- i0.ɵɵstyleProp("width", ctx.SlideoutWidth, "px");
1686
- i0.ɵɵclassProp("open", ctx.SlideoutOpen);
1687
- i0.ɵɵadvance(2);
1688
- i0.ɵɵconditional(ctx.SlideoutOpen ? 7 : -1);
1689
- i0.ɵɵadvance();
1690
- i0.ɵɵconditional(ctx.testingDialogService.IsPanelOpen ? 8 : -1);
1691
- } }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.MinValidator, i4.NgModel, i1.TestRunDialogComponent, i5.MjSlidePanelComponent, i6.LoadingComponent, i7.HighlightSearchPipe], styles: ["\n\n\n\n\n [_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n \n\n .explorer-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-sunken);\n }\n\n \n\n .explorer-layout[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n \n\n\n\n .sidebar[_ngcontent-%COMP%] {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: none;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title[_ngcontent-%COMP%] {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] .sidebar-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .suite-tree-item[_ngcontent-%COMP%] {\n gap: 6px;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n .main-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n \n\n .toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n }\n\n .chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn[_ngcontent-%COMP%] {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm[_ngcontent-%COMP%] {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n \n\n .toggle-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .sort-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n \n\n .content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n }\n\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n \n\n .card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n \n\n .suite-card[_ngcontent-%COMP%], \n .test-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card[_ngcontent-%COMP%]:hover, \n .test-card[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 16px 16px 12px;\n }\n\n .card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .test-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .card-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep[_ngcontent-%COMP%] {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n \n\n .card-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .stat-value.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .stat-value.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"][_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n \n\n .card-tests-preview[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"][_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"][_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .preview-test-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-score.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-score.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .preview-bar[_ngcontent-%COMP%] {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .warn-bg[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .bad-bg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .preview-status[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n .preview-more[_ngcontent-%COMP%] {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n\n\n .slideout-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeInBackdrop 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open[_ngcontent-%COMP%] {\n right: 0;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n \n\n .slideout-type-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n \n\n .slideout-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n \n\n .slideout-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .form-section-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .form-input[_ngcontent-%COMP%], \n .form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input[_ngcontent-%COMP%]:focus, \n .form-textarea[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input[_ngcontent-%COMP%]::placeholder, \n .form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n \n\n .slideout-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n \n\n mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n \n\n\n\n @media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar[_ngcontent-%COMP%] {\n display: none;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%], .toolbar-right[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .card-stats[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .form-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"], changeDetection: 0 });
1699
+ i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
1700
+ } }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.MinValidator, i4.NgModel, i5.MJButtonDirective, i5.MJPageHeaderComponent, i5.MJPageLayoutComponent, i5.MJPageBodyComponent, i5.MJFilterChipComponent, i5.MJPageSearchComponent, i5.MJViewToggleComponent, i5.MJStatBadgeComponent, i1.TestRunDialogComponent, i6.MjSlidePanelComponent, i7.LoadingComponent, i8.HighlightSearchPipe], styles: ["\n\n\n\n\n [_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n \n\n .explorer-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-sunken);\n }\n\n \n\n .explorer-layout[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n \n\n\n\n .sidebar[_ngcontent-%COMP%] {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: none;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title[_ngcontent-%COMP%] {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] .sidebar-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .suite-tree-item[_ngcontent-%COMP%] {\n gap: 6px;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n .main-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm[_ngcontent-%COMP%] {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n \n\n .content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n }\n\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n \n\n .card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n \n\n .suite-card[_ngcontent-%COMP%], \n .test-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card[_ngcontent-%COMP%]:hover, \n .test-card[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 16px 16px 12px;\n }\n\n .card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .test-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .card-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep[_ngcontent-%COMP%] {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n \n\n .card-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .stat-value.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .stat-value.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"][_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n \n\n .card-tests-preview[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"][_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"][_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .preview-test-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-score.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-score.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .preview-bar[_ngcontent-%COMP%] {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .warn-bg[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .bad-bg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .preview-status[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n .preview-more[_ngcontent-%COMP%] {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n\n\n .slideout-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeInBackdrop 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open[_ngcontent-%COMP%] {\n right: 0;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n \n\n .slideout-type-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n \n\n .slideout-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n \n\n .slideout-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .form-section-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .form-input[_ngcontent-%COMP%], \n .form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input[_ngcontent-%COMP%]:focus, \n .form-textarea[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input[_ngcontent-%COMP%]::placeholder, \n .form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n \n\n .slideout-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n \n\n mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n \n\n\n\n @media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar[_ngcontent-%COMP%] {\n display: none;\n }\n }\n\n @media (max-width: 600px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .card-stats[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .form-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"], changeDetection: 0 });
1692
1701
  }
1693
1702
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingExplorerComponent, [{
1694
1703
  type: Component,
1695
1704
  args: [{ standalone: false, selector: 'app-testing-explorer', changeDetection: ChangeDetectionStrategy.OnPush, template: `
1705
+ @if (HideToolbar) {
1706
+ <ng-container *ngTemplateOutlet="content"></ng-container>
1707
+ } @else {
1708
+ <mj-page-layout>
1709
+ <mj-page-header
1710
+ Title="Test Explorer"
1711
+ Icon="fa-solid fa-compass"
1712
+ Subtitle="Browse tests and test suites">
1713
+ <div meta>
1714
+ <mj-stat-badge [Count]="FilteredResultCount" Label="results"></mj-stat-badge>
1715
+ </div>
1716
+ <div actions>
1717
+ <mj-view-toggle
1718
+ [Options]="HeaderViewOptions"
1719
+ [ActiveKey]="ViewMode"
1720
+ (KeyChange)="SetViewMode($any($event))">
1721
+ </mj-view-toggle>
1722
+ <button mjButton variant="secondary" size="sm" (click)="ToggleSortDirection()"
1723
+ [title]="'Sort by ' + SortFieldLabel + ' (' + (SortDirection === 'asc' ? 'ascending' : 'descending') + ')'">
1724
+ <i class="fa-solid fa-arrow-down-short-wide"></i>
1725
+ <i class="fa-solid" [class.fa-arrow-up]="SortDirection === 'asc'" [class.fa-arrow-down]="SortDirection === 'desc'"></i>
1726
+ </button>
1727
+ <button mjButton variant="secondary" size="sm" (click)="OnNewSuite()">
1728
+ <i class="fa-solid fa-folder-plus"></i> New Suite
1729
+ </button>
1730
+ <button mjButton variant="primary" size="sm" (click)="OnNewTest()">
1731
+ <i class="fa-solid fa-plus"></i> New Test
1732
+ </button>
1733
+ </div>
1734
+ <div toolbar>
1735
+ <mj-page-search
1736
+ Placeholder="Search tests and suites..."
1737
+ [Value]="SearchTerm"
1738
+ (ValueChange)="OnSearchInputValue($event)">
1739
+ </mj-page-search>
1740
+ @for (status of StatusOptions; track status) {
1741
+ <mj-filter-chip
1742
+ [Label]="status"
1743
+ [Active]="IsStatusActive(status)"
1744
+ (Clicked)="ToggleStatus(status)">
1745
+ </mj-filter-chip>
1746
+ }
1747
+ <mj-view-toggle
1748
+ [Options]="DisplayModeOptions"
1749
+ [ActiveKey]="DisplayMode"
1750
+ (KeyChange)="SetDisplayMode($any($event))">
1751
+ </mj-view-toggle>
1752
+ </div>
1753
+ </mj-page-header>
1754
+ <mj-page-body [Flex]="true">
1755
+ <ng-container *ngTemplateOutlet="content"></ng-container>
1756
+ </mj-page-body>
1757
+ </mj-page-layout>
1758
+ }
1759
+
1760
+ <ng-template #content>
1696
1761
  @if (IsLoading) {
1697
1762
  <div class="explorer-loading">
1698
1763
  <mj-loading text="Loading test explorer..."></mj-loading>
@@ -1767,95 +1832,6 @@ export class TestingExplorerComponent extends BaseAngularComponent {
1767
1832
 
1768
1833
  <!-- Main Content -->
1769
1834
  <main class="main-content">
1770
- <!-- Toolbar -->
1771
- <div class="toolbar">
1772
- <div class="toolbar-left">
1773
- <div class="toolbar-search-box">
1774
- <i class="fa-solid fa-search"></i>
1775
- <input
1776
- type="text"
1777
- placeholder="Search tests and suites..."
1778
- [value]="SearchTerm"
1779
- (input)="OnSearchInput($event)"
1780
- />
1781
- @if (SearchTerm) {
1782
- <button class="clear-search" (click)="ClearSearch()">
1783
- <i class="fa-solid fa-times"></i>
1784
- </button>
1785
- }
1786
- </div>
1787
- <div class="status-chips">
1788
- @for (status of StatusOptions; track status) {
1789
- <button
1790
- class="chip"
1791
- [class.active]="IsStatusActive(status)"
1792
- [attr.data-status]="status.toLowerCase()"
1793
- (click)="ToggleStatus(status)"
1794
- >
1795
- {{ status }}
1796
- </button>
1797
- }
1798
- </div>
1799
- </div>
1800
- <div class="toolbar-right">
1801
- <span class="result-count">{{ FilteredResultCount }} results</span>
1802
- <div class="view-toggle">
1803
- <button
1804
- class="view-btn"
1805
- [class.active]="ViewMode === 'card'"
1806
- (click)="SetViewMode('card')"
1807
- title="Card View"
1808
- >
1809
- <i class="fa-solid fa-grip"></i>
1810
- </button>
1811
- <button
1812
- class="view-btn"
1813
- [class.active]="ViewMode === 'list'"
1814
- (click)="SetViewMode('list')"
1815
- title="List View"
1816
- >
1817
- <i class="fa-solid fa-list"></i>
1818
- </button>
1819
- </div>
1820
- <button class="btn btn-secondary" (click)="OnNewSuite()">
1821
- <i class="fa-solid fa-folder-plus"></i>
1822
- New Suite
1823
- </button>
1824
- <button class="btn btn-primary" (click)="OnNewTest()">
1825
- <i class="fa-solid fa-plus"></i>
1826
- New Test
1827
- </button>
1828
- </div>
1829
- </div>
1830
-
1831
- <!-- Toggle Bar -->
1832
- <div class="toggle-bar">
1833
- <div class="toggle-group">
1834
- <button
1835
- class="toggle-btn"
1836
- [class.active]="DisplayMode === 'all'"
1837
- (click)="SetDisplayMode('all')"
1838
- >All</button>
1839
- <button
1840
- class="toggle-btn"
1841
- [class.active]="DisplayMode === 'suites'"
1842
- (click)="SetDisplayMode('suites')"
1843
- >Suites Only</button>
1844
- <button
1845
- class="toggle-btn"
1846
- [class.active]="DisplayMode === 'tests'"
1847
- (click)="SetDisplayMode('tests')"
1848
- >Tests Only</button>
1849
- </div>
1850
- <div class="sort-indicator">
1851
- <button class="sort-btn" (click)="ToggleSortDirection()">
1852
- <i class="fa-solid fa-arrow-down-short-wide"></i>
1853
- {{ SortFieldLabel }}
1854
- <i class="fa-solid" [class.fa-arrow-up]="SortDirection === 'asc'" [class.fa-arrow-down]="SortDirection === 'desc'"></i>
1855
- </button>
1856
- </div>
1857
- </div>
1858
-
1859
1835
  <!-- Content Area -->
1860
1836
  <div class="content-area">
1861
1837
  <!-- Suites Section -->
@@ -2260,7 +2236,10 @@ export class TestingExplorerComponent extends BaseAngularComponent {
2260
2236
  </app-test-run-dialog>
2261
2237
  </mj-slide-panel>
2262
2238
  }
2263
- `, styles: ["\n /* ==========================================\n Testing Explorer Component\n ========================================== */\n\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n /* Loading */\n .explorer-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-sunken);\n }\n\n /* Layout */\n .explorer-layout {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n /* ==========================================\n Sidebar\n ========================================== */\n .sidebar {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed .sidebar-header h3 {\n display: none;\n }\n\n .sidebar-toggle {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item i {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item span:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active .sidebar-count {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Tree nodes */\n .suite-tree-item {\n gap: 6px;\n }\n\n .tree-toggle {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* ==========================================\n Main Content\n ========================================== */\n .main-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n /* Toolbar */\n .toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box i {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box input {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box input::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips {\n display: flex;\n gap: 6px;\n }\n\n .chip {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n /* Buttons */\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n /* Toggle Bar */\n .toggle-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator {\n display: flex;\n align-items: center;\n }\n\n .sort-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn i {\n font-size: 11px;\n }\n\n /* Content Area */\n .content-area {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section {\n margin-bottom: 32px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Card Grid */\n .card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n /* Suite Card */\n .suite-card,\n .test-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card:hover,\n .test-card:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header {\n padding: 16px 16px 12px;\n }\n\n .card-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon {\n color: var(--mj-brand-primary);\n }\n\n .test-icon {\n color: var(--mj-brand-primary);\n }\n\n .card-name {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n /* Card Stats */\n .card-stats {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good { color: var(--mj-status-success); }\n .stat-value.warn { color: var(--mj-status-warning); }\n .stat-value.bad { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"] { color: var(--mj-text-muted); }\n\n /* Suite Tests Preview */\n .card-tests-preview {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"] { background: var(--mj-text-disabled); }\n\n .preview-test-name {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good { color: var(--mj-status-success); }\n .preview-score.warn { color: var(--mj-status-warning); }\n .preview-score.bad { color: var(--mj-status-error); }\n\n .preview-bar {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg { background: var(--mj-status-success); }\n .warn-bg { background: var(--mj-status-warning); }\n .bad-bg { background: var(--mj-status-error); }\n\n .preview-status {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"] { color: var(--mj-text-disabled); }\n\n .preview-more {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Card Actions */\n .card-actions {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n /* Empty State */\n .empty-state {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state p {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n /* ==========================================\n Slideout Panel\n ========================================== */\n .slideout-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeInBackdrop 0.2s ease;\n }\n\n @keyframes fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open {\n right: 0;\n }\n\n .slideout-resize-handle {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n /* Type Toggle */\n .slideout-type-toggle {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n /* Error Banner */\n .slideout-error {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error i {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n /* Slideout Body */\n .slideout-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section {\n margin-bottom: 24px;\n }\n\n .form-section-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required {\n color: var(--mj-status-error);\n }\n\n .form-input,\n .form-textarea {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input:focus,\n .form-textarea:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input::placeholder,\n .form-textarea::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n /* Slideout Footer */\n .slideout-footer {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer .btn {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer .btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n /* Search Highlight */\n ::ng-deep mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n /* ==========================================\n Responsive\n ========================================== */\n @media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar {\n display: none;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left, .toolbar-right {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area {\n padding: 16px;\n }\n\n .card-stats {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel {\n width: 100% !important;\n }\n\n .slideout-resize-handle {\n display: none;\n }\n\n .form-row {\n grid-template-columns: 1fr;\n }\n }\n "] }]
2264
- }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.TestingDialogService }, { type: i2.TestingInstrumentationService }], null); })();
2265
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber: 1823 }); })();
2239
+ </ng-template>
2240
+ `, styles: ["\n /* ==========================================\n Testing Explorer Component\n ========================================== */\n\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n /* Loading */\n .explorer-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-sunken);\n }\n\n /* Layout */\n .explorer-layout {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n /* ==========================================\n Sidebar\n ========================================== */\n .sidebar {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed .sidebar-header h3 {\n display: none;\n }\n\n .sidebar-toggle {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item i {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item span:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active .sidebar-count {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Tree nodes */\n .suite-tree-item {\n gap: 6px;\n }\n\n .tree-toggle {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* ==========================================\n Main Content\n ========================================== */\n .main-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n /* Buttons */\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n /* Content Area */\n .content-area {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section {\n margin-bottom: 32px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Card Grid */\n .card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n /* Suite Card */\n .suite-card,\n .test-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card:hover,\n .test-card:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header {\n padding: 16px 16px 12px;\n }\n\n .card-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon {\n color: var(--mj-brand-primary);\n }\n\n .test-icon {\n color: var(--mj-brand-primary);\n }\n\n .card-name {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n /* Card Stats */\n .card-stats {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good { color: var(--mj-status-success); }\n .stat-value.warn { color: var(--mj-status-warning); }\n .stat-value.bad { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"] { color: var(--mj-text-muted); }\n\n /* Suite Tests Preview */\n .card-tests-preview {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"] { background: var(--mj-text-disabled); }\n\n .preview-test-name {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good { color: var(--mj-status-success); }\n .preview-score.warn { color: var(--mj-status-warning); }\n .preview-score.bad { color: var(--mj-status-error); }\n\n .preview-bar {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg { background: var(--mj-status-success); }\n .warn-bg { background: var(--mj-status-warning); }\n .bad-bg { background: var(--mj-status-error); }\n\n .preview-status {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"] { color: var(--mj-text-disabled); }\n\n .preview-more {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Card Actions */\n .card-actions {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n /* Empty State */\n .empty-state {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state p {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n /* ==========================================\n Slideout Panel\n ========================================== */\n .slideout-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeInBackdrop 0.2s ease;\n }\n\n @keyframes fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open {\n right: 0;\n }\n\n .slideout-resize-handle {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n /* Type Toggle */\n .slideout-type-toggle {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n /* Error Banner */\n .slideout-error {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error i {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n /* Slideout Body */\n .slideout-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section {\n margin-bottom: 24px;\n }\n\n .form-section-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required {\n color: var(--mj-status-error);\n }\n\n .form-input,\n .form-textarea {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input:focus,\n .form-textarea:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input::placeholder,\n .form-textarea::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n /* Slideout Footer */\n .slideout-footer {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer .btn {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer .btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n /* Search Highlight */\n ::ng-deep mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n /* ==========================================\n Responsive\n ========================================== */\n @media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar {\n display: none;\n }\n }\n\n @media (max-width: 600px) {\n .content-area {\n padding: 16px;\n }\n\n .card-stats {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel {\n width: 100% !important;\n }\n\n .slideout-resize-handle {\n display: none;\n }\n\n .form-row {\n grid-template-columns: 1fr;\n }\n }\n "] }]
2241
+ }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.TestingDialogService }, { type: i2.TestingInstrumentationService }], { HideToolbar: [{
2242
+ type: Input
2243
+ }] }); })();
2244
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber: 1552 }); })();
2266
2245
  //# sourceMappingURL=testing-explorer.component.js.map