@memberjunction/ng-core-entity-forms 3.3.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1916) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js +1 -1
  3. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts +13 -25
  4. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts.map +1 -1
  5. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +33 -379
  6. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js.map +1 -1
  7. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.js +1 -1
  8. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
  9. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.js +1 -1
  10. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.js +1 -1
  11. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.js +1 -1
  12. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.js +1 -1
  13. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.js +1 -1
  14. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.js +1 -1
  15. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.js +1 -1
  16. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.js +1 -1
  17. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js +1 -1
  18. package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.js +1 -1
  19. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  20. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +15 -14
  21. package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
  22. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +1 -0
  23. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
  24. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js +1 -1
  25. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  26. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +14 -13
  27. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  28. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +41 -4
  29. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  30. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1335 -1159
  31. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  32. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  33. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +15 -14
  34. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  35. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  36. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +12 -12
  37. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  38. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
  39. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +9 -8
  40. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  41. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  42. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +14 -14
  43. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  44. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  45. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +12 -11
  46. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  47. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  48. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +18 -16
  49. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  50. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  51. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +91 -59
  52. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  53. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
  54. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +9 -9
  55. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
  56. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +0 -1
  57. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  58. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +546 -532
  59. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  60. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +12 -11
  61. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  62. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +0 -1
  63. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  64. package/dist/lib/custom/Actions/action-execution-log-form.component.js +12 -10
  65. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  66. package/dist/lib/custom/Actions/action-form.component.d.ts +0 -1
  67. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  68. package/dist/lib/custom/Actions/action-form.component.js +62 -68
  69. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  70. package/dist/lib/custom/Actions/action-param-dialog.component.js +1 -1
  71. package/dist/lib/custom/Actions/action-result-code-dialog.component.js +1 -1
  72. package/dist/lib/custom/Actions/action-test-harness-dialog.component.js +1 -1
  73. package/dist/lib/custom/Actions/action-test-harness.component.js +1 -1
  74. package/dist/lib/custom/Actions/actions-top-area-extended.d.ts +8 -0
  75. package/dist/lib/custom/Actions/actions-top-area-extended.d.ts.map +1 -0
  76. package/dist/lib/custom/Actions/actions-top-area-extended.js +64 -0
  77. package/dist/lib/custom/Actions/actions-top-area-extended.js.map +1 -0
  78. package/dist/lib/custom/Entities/entities-form.component.d.ts +10 -0
  79. package/dist/lib/custom/Entities/entities-form.component.d.ts.map +1 -0
  80. package/dist/lib/custom/Entities/entities-form.component.js +198 -0
  81. package/dist/lib/custom/Entities/entities-form.component.js.map +1 -0
  82. package/dist/lib/custom/Entities/entity-form.component.d.ts +0 -1
  83. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  84. package/dist/lib/custom/Entities/entity-form.component.js +722 -691
  85. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  86. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +0 -1
  87. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
  88. package/dist/lib/custom/EntityActions/entityaction.form.component.js +25 -29
  89. package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
  90. package/dist/lib/custom/Lists/list-form.component.d.ts +0 -1
  91. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  92. package/dist/lib/custom/Lists/list-form.component.js +425 -438
  93. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  94. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +1 -1
  95. package/dist/lib/custom/Queries/query-category-dialog.component.js +28 -29
  96. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
  97. package/dist/lib/custom/Queries/query-form.component.d.ts +0 -1
  98. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  99. package/dist/lib/custom/Queries/query-form.component.js +187 -185
  100. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  101. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
  102. package/dist/lib/custom/Queries/query-run-dialog.component.js +90 -89
  103. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  104. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
  105. package/dist/lib/custom/Templates/template-param-dialog.component.js +76 -75
  106. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  107. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  108. package/dist/lib/custom/Templates/template-params-grid.component.js +98 -93
  109. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  110. package/dist/lib/custom/Templates/templates-form.component.d.ts +0 -1
  111. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  112. package/dist/lib/custom/Templates/templates-form.component.js +199 -126
  113. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  114. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +0 -1
  115. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
  116. package/dist/lib/custom/Tests/entity-link-pill.component.js +16 -18
  117. package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
  118. package/dist/lib/custom/Tests/test-form.component.d.ts +4 -2
  119. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  120. package/dist/lib/custom/Tests/test-form.component.js +485 -445
  121. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  122. package/dist/lib/custom/Tests/test-rubric-form.component.d.ts +0 -1
  123. package/dist/lib/custom/Tests/test-rubric-form.component.d.ts.map +1 -1
  124. package/dist/lib/custom/Tests/test-rubric-form.component.js +6 -8
  125. package/dist/lib/custom/Tests/test-rubric-form.component.js.map +1 -1
  126. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +0 -1
  127. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
  128. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +17 -17
  129. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  130. package/dist/lib/custom/Tests/test-run-form.component.d.ts +0 -1
  131. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  132. package/dist/lib/custom/Tests/test-run-form.component.js +405 -390
  133. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  134. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +4 -2
  135. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  136. package/dist/lib/custom/Tests/test-suite-form.component.js +739 -693
  137. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  138. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +4 -2
  139. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  140. package/dist/lib/custom/Tests/test-suite-run-form.component.js +685 -637
  141. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  142. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  143. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +240 -243
  144. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  145. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  146. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +42 -40
  147. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  148. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
  149. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +37 -36
  150. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
  151. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  152. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +68 -78
  153. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  154. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
  155. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +6 -6
  156. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  157. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +0 -1
  158. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  159. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +289 -271
  160. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  161. package/dist/lib/custom/custom-forms.module.d.ts +51 -58
  162. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  163. package/dist/lib/custom/custom-forms.module.js +37 -81
  164. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  165. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  166. package/dist/lib/custom/shared/entity-selector-dialog.component.js +85 -82
  167. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  168. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.d.ts.map +1 -1
  169. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js +17 -18
  170. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/AIAction/sections/details.component.d.ts +11 -0
  172. package/dist/lib/generated/Entities/AIAction/sections/details.component.d.ts.map +1 -0
  173. package/dist/lib/generated/Entities/AIAction/sections/details.component.js +127 -0
  174. package/dist/lib/generated/Entities/AIAction/sections/details.component.js.map +1 -0
  175. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.d.ts.map +1 -1
  176. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +137 -138
  177. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  178. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts +54 -0
  179. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts.map +1 -0
  180. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js +492 -0
  181. package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js.map +1 -0
  182. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts +11 -0
  183. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -0
  184. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +576 -0
  185. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -0
  186. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.d.ts.map +1 -1
  187. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js +3 -3
  188. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js.map +1 -1
  189. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts +11 -0
  190. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts.map +1 -0
  191. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js +194 -0
  192. package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js.map +1 -0
  193. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.d.ts.map +1 -1
  194. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js +3 -3
  195. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js.map +1 -1
  196. package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.d.ts +11 -0
  197. package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.d.ts.map +1 -0
  198. package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.js +120 -0
  199. package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.js.map +1 -0
  200. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.d.ts.map +1 -1
  201. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.js +3 -3
  202. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.d.ts.map +1 -1
  204. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js +3 -3
  205. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js.map +1 -1
  206. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.d.ts +11 -0
  207. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.d.ts.map +1 -0
  208. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.js +253 -0
  209. package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.js.map +1 -0
  210. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.d.ts.map +1 -1
  211. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.js +3 -3
  212. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.js.map +1 -1
  213. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.d.ts +11 -0
  214. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.d.ts.map +1 -0
  215. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.js +265 -0
  216. package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.js.map +1 -0
  217. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.d.ts.map +1 -1
  218. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js +3 -3
  219. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js.map +1 -1
  220. package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.d.ts +11 -0
  221. package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.d.ts.map +1 -0
  222. package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.js +127 -0
  223. package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.js.map +1 -0
  224. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.d.ts.map +1 -1
  225. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js +3 -3
  226. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js.map +1 -1
  227. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.d.ts.map +1 -1
  228. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js +3 -3
  229. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js.map +1 -1
  230. package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.d.ts +11 -0
  231. package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.d.ts.map +1 -0
  232. package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.js +129 -0
  233. package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.js.map +1 -0
  234. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.d.ts.map +1 -1
  235. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js +3 -3
  236. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js.map +1 -1
  237. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.d.ts +11 -0
  238. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.d.ts.map +1 -0
  239. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.js +267 -0
  240. package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.js.map +1 -0
  241. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.d.ts.map +1 -1
  242. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js +11 -12
  243. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js.map +1 -1
  244. package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.d.ts +11 -0
  245. package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.d.ts.map +1 -0
  246. package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.js +107 -0
  247. package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.js.map +1 -0
  248. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.d.ts.map +1 -1
  249. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js +3 -3
  250. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js.map +1 -1
  251. package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.d.ts +11 -0
  252. package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.d.ts.map +1 -0
  253. package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.js +176 -0
  254. package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.js.map +1 -0
  255. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.d.ts.map +1 -1
  256. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js +3 -3
  257. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js.map +1 -1
  258. package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.d.ts +11 -0
  259. package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.d.ts.map +1 -0
  260. package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.js +176 -0
  261. package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.js.map +1 -0
  262. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.d.ts.map +1 -1
  263. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.js +3 -3
  264. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.js.map +1 -1
  265. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.d.ts +11 -0
  266. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.d.ts.map +1 -0
  267. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js +165 -0
  268. package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js.map +1 -0
  269. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.d.ts.map +1 -1
  270. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js +3 -3
  271. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js.map +1 -1
  272. package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.d.ts +11 -0
  273. package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.d.ts.map +1 -0
  274. package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.js +185 -0
  275. package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.js.map +1 -0
  276. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.d.ts.map +1 -1
  277. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +41 -42
  278. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
  279. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts +11 -0
  280. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -0
  281. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +496 -0
  282. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -0
  283. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.d.ts.map +1 -1
  284. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.js +3 -3
  285. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.js.map +1 -1
  286. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.d.ts.map +1 -1
  287. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +24 -31
  288. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
  289. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts +11 -0
  290. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -0
  291. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +255 -0
  292. package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -0
  293. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.d.ts.map +1 -1
  294. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js +16 -17
  295. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js.map +1 -1
  296. package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.d.ts +11 -0
  297. package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.d.ts.map +1 -0
  298. package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.js +295 -0
  299. package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.js.map +1 -0
  300. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.d.ts.map +1 -1
  301. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js +3 -3
  302. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js.map +1 -1
  303. package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.d.ts +11 -0
  304. package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.d.ts.map +1 -0
  305. package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.js +147 -0
  306. package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.js.map +1 -0
  307. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.d.ts.map +1 -1
  308. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +11 -12
  309. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
  310. package/dist/lib/generated/Entities/AIAgentType/sections/details.component.d.ts +11 -0
  311. package/dist/lib/generated/Entities/AIAgentType/sections/details.component.d.ts.map +1 -0
  312. package/dist/lib/generated/Entities/AIAgentType/sections/details.component.js +163 -0
  313. package/dist/lib/generated/Entities/AIAgentType/sections/details.component.js.map +1 -0
  314. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.d.ts.map +1 -1
  315. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js +17 -18
  316. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js.map +1 -1
  317. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.d.ts.map +1 -1
  318. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +53 -54
  319. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
  320. package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.d.ts +11 -0
  321. package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.d.ts.map +1 -0
  322. package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.js +147 -0
  323. package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.js.map +1 -0
  324. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.d.ts.map +1 -1
  325. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js +3 -3
  326. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js.map +1 -1
  327. package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.d.ts +11 -0
  328. package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.d.ts.map +1 -0
  329. package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.js +127 -0
  330. package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.js.map +1 -0
  331. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.d.ts.map +1 -1
  332. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.js +3 -3
  333. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.js.map +1 -1
  334. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.d.ts.map +1 -1
  335. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js +47 -48
  336. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js.map +1 -1
  337. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.d.ts.map +1 -1
  338. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +125 -126
  339. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  340. package/dist/lib/generated/Entities/AIModel/sections/details.component.d.ts +11 -0
  341. package/dist/lib/generated/Entities/AIModel/sections/details.component.d.ts.map +1 -0
  342. package/dist/lib/generated/Entities/AIModel/sections/details.component.js +217 -0
  343. package/dist/lib/generated/Entities/AIModel/sections/details.component.js.map +1 -0
  344. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.d.ts.map +1 -1
  345. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js +3 -3
  346. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js.map +1 -1
  347. package/dist/lib/generated/Entities/AIModelAction/sections/details.component.d.ts +11 -0
  348. package/dist/lib/generated/Entities/AIModelAction/sections/details.component.d.ts.map +1 -0
  349. package/dist/lib/generated/Entities/AIModelAction/sections/details.component.js +120 -0
  350. package/dist/lib/generated/Entities/AIModelAction/sections/details.component.js.map +1 -0
  351. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.d.ts.map +1 -1
  352. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js +3 -3
  353. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js.map +1 -1
  354. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.d.ts.map +1 -1
  355. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +3 -3
  356. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
  357. package/dist/lib/generated/Entities/AIModelCost/sections/details.component.d.ts +11 -0
  358. package/dist/lib/generated/Entities/AIModelCost/sections/details.component.d.ts.map +1 -0
  359. package/dist/lib/generated/Entities/AIModelCost/sections/details.component.js +223 -0
  360. package/dist/lib/generated/Entities/AIModelCost/sections/details.component.js.map +1 -0
  361. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.d.ts.map +1 -1
  362. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js +3 -3
  363. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js.map +1 -1
  364. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.d.ts.map +1 -1
  365. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +11 -12
  366. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
  367. package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.d.ts +11 -0
  368. package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.d.ts.map +1 -0
  369. package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.js +89 -0
  370. package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.js.map +1 -0
  371. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.d.ts.map +1 -1
  372. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +11 -12
  373. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
  374. package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.d.ts +11 -0
  375. package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.d.ts.map +1 -0
  376. package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.js +98 -0
  377. package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.js.map +1 -0
  378. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.d.ts.map +1 -1
  379. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +17 -18
  380. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
  381. package/dist/lib/generated/Entities/AIModelType/sections/details.component.d.ts +11 -0
  382. package/dist/lib/generated/Entities/AIModelType/sections/details.component.d.ts.map +1 -0
  383. package/dist/lib/generated/Entities/AIModelType/sections/details.component.js +89 -0
  384. package/dist/lib/generated/Entities/AIModelType/sections/details.component.js.map +1 -0
  385. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.d.ts.map +1 -1
  386. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js +11 -12
  387. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js.map +1 -1
  388. package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.d.ts +11 -0
  389. package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.d.ts.map +1 -0
  390. package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.js +221 -0
  391. package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.js.map +1 -0
  392. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.d.ts.map +1 -1
  393. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +77 -78
  394. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
  395. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts +11 -0
  396. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts.map +1 -0
  397. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js +567 -0
  398. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js.map +1 -0
  399. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.d.ts.map +1 -1
  400. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js +17 -18
  401. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js.map +1 -1
  402. package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.d.ts +11 -0
  403. package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.d.ts.map +1 -0
  404. package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.js +118 -0
  405. package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.js.map +1 -0
  406. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.d.ts.map +1 -1
  407. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js +11 -12
  408. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js.map +1 -1
  409. package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.d.ts +11 -0
  410. package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.d.ts.map +1 -0
  411. package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.js +214 -0
  412. package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.js.map +1 -0
  413. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.d.ts.map +1 -1
  414. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js +23 -24
  415. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js.map +1 -1
  416. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts +11 -0
  417. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -0
  418. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +903 -0
  419. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -0
  420. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.d.ts.map +1 -1
  421. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.js +11 -12
  422. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.js.map +1 -1
  423. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.d.ts.map +1 -1
  424. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js +11 -12
  425. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js.map +1 -1
  426. package/dist/lib/generated/Entities/AIPromptType/sections/details.component.d.ts +11 -0
  427. package/dist/lib/generated/Entities/AIPromptType/sections/details.component.d.ts.map +1 -0
  428. package/dist/lib/generated/Entities/AIPromptType/sections/details.component.js +89 -0
  429. package/dist/lib/generated/Entities/AIPromptType/sections/details.component.js.map +1 -0
  430. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.d.ts.map +1 -1
  431. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js +12 -18
  432. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js.map +1 -1
  433. package/dist/lib/generated/Entities/AIResultCache/sections/details.component.d.ts +11 -0
  434. package/dist/lib/generated/Entities/AIResultCache/sections/details.component.d.ts.map +1 -0
  435. package/dist/lib/generated/Entities/AIResultCache/sections/details.component.js +236 -0
  436. package/dist/lib/generated/Entities/AIResultCache/sections/details.component.js.map +1 -0
  437. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.d.ts.map +1 -1
  438. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +53 -54
  439. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
  440. package/dist/lib/generated/Entities/AIVendor/sections/details.component.d.ts +11 -0
  441. package/dist/lib/generated/Entities/AIVendor/sections/details.component.d.ts.map +1 -0
  442. package/dist/lib/generated/Entities/AIVendor/sections/details.component.js +89 -0
  443. package/dist/lib/generated/Entities/AIVendor/sections/details.component.js.map +1 -0
  444. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.d.ts.map +1 -1
  445. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js +3 -3
  446. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js.map +1 -1
  447. package/dist/lib/generated/Entities/AIVendorType/sections/details.component.d.ts +11 -0
  448. package/dist/lib/generated/Entities/AIVendorType/sections/details.component.d.ts.map +1 -0
  449. package/dist/lib/generated/Entities/AIVendorType/sections/details.component.js +129 -0
  450. package/dist/lib/generated/Entities/AIVendorType/sections/details.component.js.map +1 -0
  451. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.d.ts.map +1 -1
  452. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js +17 -18
  453. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js.map +1 -1
  454. package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.d.ts +11 -0
  455. package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.d.ts.map +1 -0
  456. package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.js +89 -0
  457. package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.js.map +1 -0
  458. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.d.ts.map +1 -1
  459. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.js +23 -24
  460. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.js.map +1 -1
  461. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.d.ts.map +1 -1
  462. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.js +3 -3
  463. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.js.map +1 -1
  464. package/dist/lib/generated/Entities/APIKey/apikey.form.component.d.ts.map +1 -1
  465. package/dist/lib/generated/Entities/APIKey/apikey.form.component.js +23 -24
  466. package/dist/lib/generated/Entities/APIKey/apikey.form.component.js.map +1 -1
  467. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.d.ts.map +1 -1
  468. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.js +3 -3
  469. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.js.map +1 -1
  470. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.d.ts.map +1 -1
  471. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.js +3 -3
  472. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.js.map +1 -1
  473. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.d.ts.map +1 -1
  474. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.js +3 -3
  475. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.js.map +1 -1
  476. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.d.ts.map +1 -1
  477. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js +28 -27
  478. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js.map +1 -1
  479. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.d.ts.map +1 -1
  480. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.js +3 -3
  481. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.js.map +1 -1
  482. package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.d.ts +11 -0
  483. package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.d.ts.map +1 -0
  484. package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.js +192 -0
  485. package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.js.map +1 -0
  486. package/dist/lib/generated/Entities/Action/action.form.component.d.ts.map +1 -1
  487. package/dist/lib/generated/Entities/Action/action.form.component.js +84 -67
  488. package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
  489. package/dist/lib/generated/Entities/Action/sections/code.component.d.ts +11 -0
  490. package/dist/lib/generated/Entities/Action/sections/code.component.d.ts.map +1 -0
  491. package/dist/lib/generated/Entities/Action/sections/code.component.js +62 -0
  492. package/dist/lib/generated/Entities/Action/sections/code.component.js.map +1 -0
  493. package/dist/lib/generated/Entities/Action/sections/details.component.d.ts +11 -0
  494. package/dist/lib/generated/Entities/Action/sections/details.component.d.ts.map +1 -0
  495. package/dist/lib/generated/Entities/Action/sections/details.component.js +277 -0
  496. package/dist/lib/generated/Entities/Action/sections/details.component.js.map +1 -0
  497. package/dist/lib/generated/Entities/Action/sections/top.component.d.ts +11 -0
  498. package/dist/lib/generated/Entities/Action/sections/top.component.d.ts.map +1 -0
  499. package/dist/lib/generated/Entities/Action/sections/top.component.js +71 -0
  500. package/dist/lib/generated/Entities/Action/sections/top.component.js.map +1 -0
  501. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.d.ts.map +1 -1
  502. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +3 -3
  503. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
  504. package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.d.ts +11 -0
  505. package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.d.ts.map +1 -0
  506. package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.js +120 -0
  507. package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.js.map +1 -0
  508. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.d.ts.map +1 -1
  509. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js +34 -17
  510. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js.map +1 -1
  511. package/dist/lib/generated/Entities/ActionCategory/sections/details.component.d.ts +11 -0
  512. package/dist/lib/generated/Entities/ActionCategory/sections/details.component.d.ts.map +1 -0
  513. package/dist/lib/generated/Entities/ActionCategory/sections/details.component.js +127 -0
  514. package/dist/lib/generated/Entities/ActionCategory/sections/details.component.js.map +1 -0
  515. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.d.ts.map +1 -1
  516. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +3 -3
  517. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
  518. package/dist/lib/generated/Entities/ActionContext/sections/details.component.d.ts +11 -0
  519. package/dist/lib/generated/Entities/ActionContext/sections/details.component.d.ts.map +1 -0
  520. package/dist/lib/generated/Entities/ActionContext/sections/details.component.js +120 -0
  521. package/dist/lib/generated/Entities/ActionContext/sections/details.component.js.map +1 -0
  522. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.d.ts.map +1 -1
  523. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js +11 -12
  524. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js.map +1 -1
  525. package/dist/lib/generated/Entities/ActionContextType/sections/details.component.d.ts +11 -0
  526. package/dist/lib/generated/Entities/ActionContextType/sections/details.component.d.ts.map +1 -0
  527. package/dist/lib/generated/Entities/ActionContextType/sections/details.component.js +89 -0
  528. package/dist/lib/generated/Entities/ActionContextType/sections/details.component.js.map +1 -0
  529. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.d.ts.map +1 -1
  530. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js +3 -3
  531. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js.map +1 -1
  532. package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.d.ts +11 -0
  533. package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.d.ts.map +1 -0
  534. package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.js +165 -0
  535. package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.js.map +1 -0
  536. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.d.ts.map +1 -1
  537. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js +11 -12
  538. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js.map +1 -1
  539. package/dist/lib/generated/Entities/ActionFilter/sections/details.component.d.ts +11 -0
  540. package/dist/lib/generated/Entities/ActionFilter/sections/details.component.d.ts.map +1 -0
  541. package/dist/lib/generated/Entities/ActionFilter/sections/details.component.js +107 -0
  542. package/dist/lib/generated/Entities/ActionFilter/sections/details.component.js.map +1 -0
  543. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.d.ts.map +1 -1
  544. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js +3 -3
  545. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js.map +1 -1
  546. package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.d.ts +11 -0
  547. package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.d.ts.map +1 -0
  548. package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.js +120 -0
  549. package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.js.map +1 -0
  550. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.d.ts.map +1 -1
  551. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js +17 -18
  552. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js.map +1 -1
  553. package/dist/lib/generated/Entities/ActionParam/sections/details.component.d.ts +11 -0
  554. package/dist/lib/generated/Entities/ActionParam/sections/details.component.d.ts.map +1 -0
  555. package/dist/lib/generated/Entities/ActionParam/sections/details.component.js +154 -0
  556. package/dist/lib/generated/Entities/ActionParam/sections/details.component.js.map +1 -0
  557. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.d.ts.map +1 -1
  558. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js +3 -3
  559. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js.map +1 -1
  560. package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.d.ts +11 -0
  561. package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.d.ts.map +1 -0
  562. package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.js +118 -0
  563. package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.js.map +1 -0
  564. package/dist/lib/generated/Entities/Application/application.form.component.d.ts.map +1 -1
  565. package/dist/lib/generated/Entities/Application/application.form.component.js +35 -36
  566. package/dist/lib/generated/Entities/Application/application.form.component.js.map +1 -1
  567. package/dist/lib/generated/Entities/Application/sections/details.component.d.ts +11 -0
  568. package/dist/lib/generated/Entities/Application/sections/details.component.d.ts.map +1 -0
  569. package/dist/lib/generated/Entities/Application/sections/details.component.js +116 -0
  570. package/dist/lib/generated/Entities/Application/sections/details.component.js.map +1 -0
  571. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.d.ts.map +1 -1
  572. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js +3 -3
  573. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js.map +1 -1
  574. package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.d.ts +11 -0
  575. package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.d.ts.map +1 -0
  576. package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.js +165 -0
  577. package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.js.map +1 -0
  578. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.d.ts.map +1 -1
  579. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js +3 -3
  580. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js.map +1 -1
  581. package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.d.ts +11 -0
  582. package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.d.ts.map +1 -0
  583. package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.js +118 -0
  584. package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.js.map +1 -0
  585. package/dist/lib/generated/Entities/Artifact/artifact.form.component.d.ts.map +1 -1
  586. package/dist/lib/generated/Entities/Artifact/artifact.form.component.js +23 -24
  587. package/dist/lib/generated/Entities/Artifact/artifact.form.component.js.map +1 -1
  588. package/dist/lib/generated/Entities/Artifact/sections/details.component.d.ts +11 -0
  589. package/dist/lib/generated/Entities/Artifact/sections/details.component.d.ts.map +1 -0
  590. package/dist/lib/generated/Entities/Artifact/sections/details.component.js +167 -0
  591. package/dist/lib/generated/Entities/Artifact/sections/details.component.js.map +1 -0
  592. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.d.ts.map +1 -1
  593. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js +3 -3
  594. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js.map +1 -1
  595. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.d.ts +11 -0
  596. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.d.ts.map +1 -0
  597. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.js +167 -0
  598. package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.js.map +1 -0
  599. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.d.ts.map +1 -1
  600. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js +35 -36
  601. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js.map +1 -1
  602. package/dist/lib/generated/Entities/ArtifactType/sections/details.component.d.ts +11 -0
  603. package/dist/lib/generated/Entities/ArtifactType/sections/details.component.d.ts.map +1 -0
  604. package/dist/lib/generated/Entities/ArtifactType/sections/details.component.js +154 -0
  605. package/dist/lib/generated/Entities/ArtifactType/sections/details.component.js.map +1 -0
  606. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.d.ts.map +1 -1
  607. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js +3 -3
  608. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js.map +1 -1
  609. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.d.ts +11 -0
  610. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.d.ts.map +1 -0
  611. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.js +129 -0
  612. package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.js.map +1 -0
  613. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.d.ts.map +1 -1
  614. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js +29 -30
  615. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js.map +1 -1
  616. package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.d.ts +11 -0
  617. package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.d.ts.map +1 -0
  618. package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.js +174 -0
  619. package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.js.map +1 -0
  620. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.d.ts.map +1 -1
  621. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js +3 -3
  622. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js.map +1 -1
  623. package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.d.ts +11 -0
  624. package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.d.ts.map +1 -0
  625. package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.js +127 -0
  626. package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.js.map +1 -0
  627. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.d.ts.map +1 -1
  628. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js +3 -3
  629. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js.map +1 -1
  630. package/dist/lib/generated/Entities/AuditLog/sections/details.component.d.ts +11 -0
  631. package/dist/lib/generated/Entities/AuditLog/sections/details.component.d.ts.map +1 -0
  632. package/dist/lib/generated/Entities/AuditLog/sections/details.component.js +187 -0
  633. package/dist/lib/generated/Entities/AuditLog/sections/details.component.js.map +1 -0
  634. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.d.ts.map +1 -1
  635. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js +17 -18
  636. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js.map +1 -1
  637. package/dist/lib/generated/Entities/AuditLogType/sections/details.component.d.ts +11 -0
  638. package/dist/lib/generated/Entities/AuditLogType/sections/details.component.d.ts.map +1 -0
  639. package/dist/lib/generated/Entities/AuditLogType/sections/details.component.js +138 -0
  640. package/dist/lib/generated/Entities/AuditLogType/sections/details.component.js.map +1 -0
  641. package/dist/lib/generated/Entities/Authorization/authorization.form.component.d.ts.map +1 -1
  642. package/dist/lib/generated/Entities/Authorization/authorization.form.component.js +35 -36
  643. package/dist/lib/generated/Entities/Authorization/authorization.form.component.js.map +1 -1
  644. package/dist/lib/generated/Entities/Authorization/sections/details.component.d.ts +11 -0
  645. package/dist/lib/generated/Entities/Authorization/sections/details.component.d.ts.map +1 -0
  646. package/dist/lib/generated/Entities/Authorization/sections/details.component.js +136 -0
  647. package/dist/lib/generated/Entities/Authorization/sections/details.component.js.map +1 -0
  648. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.d.ts.map +1 -1
  649. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js +3 -3
  650. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js.map +1 -1
  651. package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.d.ts +11 -0
  652. package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.d.ts.map +1 -0
  653. package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.js +120 -0
  654. package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.js.map +1 -0
  655. package/dist/lib/generated/Entities/Collection/collection.form.component.d.ts.map +1 -1
  656. package/dist/lib/generated/Entities/Collection/collection.form.component.js +23 -24
  657. package/dist/lib/generated/Entities/Collection/collection.form.component.js.map +1 -1
  658. package/dist/lib/generated/Entities/Collection/sections/details.component.d.ts +11 -0
  659. package/dist/lib/generated/Entities/Collection/sections/details.component.d.ts.map +1 -0
  660. package/dist/lib/generated/Entities/Collection/sections/details.component.js +185 -0
  661. package/dist/lib/generated/Entities/Collection/sections/details.component.js.map +1 -0
  662. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.d.ts.map +1 -1
  663. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.js +3 -3
  664. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.js.map +1 -1
  665. package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.d.ts +11 -0
  666. package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.d.ts.map +1 -0
  667. package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.js +120 -0
  668. package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.js.map +1 -0
  669. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.d.ts.map +1 -1
  670. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js +3 -3
  671. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js.map +1 -1
  672. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.d.ts +11 -0
  673. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.d.ts.map +1 -0
  674. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.js +167 -0
  675. package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.js.map +1 -0
  676. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.d.ts.map +1 -1
  677. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js +17 -18
  678. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js.map +1 -1
  679. package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.d.ts +11 -0
  680. package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.d.ts.map +1 -0
  681. package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.js +116 -0
  682. package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.js.map +1 -0
  683. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.d.ts.map +1 -1
  684. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js +3 -3
  685. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js.map +1 -1
  686. package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.d.ts +11 -0
  687. package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.d.ts.map +1 -0
  688. package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.js +167 -0
  689. package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.js.map +1 -0
  690. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.d.ts.map +1 -1
  691. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js +17 -18
  692. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js.map +1 -1
  693. package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.d.ts +11 -0
  694. package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.d.ts.map +1 -0
  695. package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.js +152 -0
  696. package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.js.map +1 -0
  697. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.d.ts.map +1 -1
  698. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js +11 -12
  699. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js.map +1 -1
  700. package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.d.ts +11 -0
  701. package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.d.ts.map +1 -0
  702. package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.js +138 -0
  703. package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.js.map +1 -0
  704. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.d.ts.map +1 -1
  705. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js +11 -12
  706. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js.map +1 -1
  707. package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.d.ts +11 -0
  708. package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.d.ts.map +1 -0
  709. package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.js +145 -0
  710. package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.js.map +1 -0
  711. package/dist/lib/generated/Entities/Company/company.form.component.d.ts.map +1 -1
  712. package/dist/lib/generated/Entities/Company/company.form.component.js +49 -32
  713. package/dist/lib/generated/Entities/Company/company.form.component.js.map +1 -1
  714. package/dist/lib/generated/Entities/Company/sections/details.component.d.ts +11 -0
  715. package/dist/lib/generated/Entities/Company/sections/details.component.d.ts.map +1 -0
  716. package/dist/lib/generated/Entities/Company/sections/details.component.js +118 -0
  717. package/dist/lib/generated/Entities/Company/sections/details.component.js.map +1 -0
  718. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.d.ts.map +1 -1
  719. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js +29 -30
  720. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js.map +1 -1
  721. package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.d.ts +11 -0
  722. package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.d.ts.map +1 -0
  723. package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.js +255 -0
  724. package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.js.map +1 -0
  725. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.d.ts.map +1 -1
  726. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js +3 -3
  727. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js.map +1 -1
  728. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.d.ts +11 -0
  729. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.d.ts.map +1 -0
  730. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.js +129 -0
  731. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.js.map +1 -0
  732. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.d.ts.map +1 -1
  733. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js +23 -24
  734. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js.map +1 -1
  735. package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.d.ts +11 -0
  736. package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.d.ts.map +1 -0
  737. package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.js +183 -0
  738. package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.js.map +1 -0
  739. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.d.ts.map +1 -1
  740. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js +3 -3
  741. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js.map +1 -1
  742. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.d.ts +11 -0
  743. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.d.ts.map +1 -0
  744. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.js +127 -0
  745. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.js.map +1 -0
  746. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.d.ts.map +1 -1
  747. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js +11 -12
  748. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js.map +1 -1
  749. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.d.ts +11 -0
  750. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.d.ts.map +1 -0
  751. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.js +156 -0
  752. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.js.map +1 -0
  753. package/dist/lib/generated/Entities/Component/component.form.component.d.ts.map +1 -1
  754. package/dist/lib/generated/Entities/Component/component.form.component.js +22 -23
  755. package/dist/lib/generated/Entities/Component/component.form.component.js.map +1 -1
  756. package/dist/lib/generated/Entities/Component/sections/details.component.d.ts +11 -0
  757. package/dist/lib/generated/Entities/Component/sections/details.component.d.ts.map +1 -0
  758. package/dist/lib/generated/Entities/Component/sections/details.component.js +316 -0
  759. package/dist/lib/generated/Entities/Component/sections/details.component.js.map +1 -0
  760. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.d.ts.map +1 -1
  761. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.js +3 -3
  762. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.js.map +1 -1
  763. package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.d.ts +11 -0
  764. package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.d.ts.map +1 -0
  765. package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.js +111 -0
  766. package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.js.map +1 -0
  767. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.d.ts.map +1 -1
  768. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.js +11 -12
  769. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.js.map +1 -1
  770. package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.d.ts +11 -0
  771. package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.d.ts.map +1 -0
  772. package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.js +179 -0
  773. package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.js.map +1 -0
  774. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.d.ts.map +1 -1
  775. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.js +3 -3
  776. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.js.map +1 -1
  777. package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.d.ts +11 -0
  778. package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.d.ts.map +1 -0
  779. package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.js +120 -0
  780. package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.js.map +1 -0
  781. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.d.ts.map +1 -1
  782. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.js +11 -12
  783. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.js.map +1 -1
  784. package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.d.ts +11 -0
  785. package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.d.ts.map +1 -0
  786. package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.js +125 -0
  787. package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.js.map +1 -0
  788. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.d.ts.map +1 -1
  789. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js +17 -18
  790. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js.map +1 -1
  791. package/dist/lib/generated/Entities/ContentFileType/sections/details.component.d.ts +11 -0
  792. package/dist/lib/generated/Entities/ContentFileType/sections/details.component.d.ts.map +1 -0
  793. package/dist/lib/generated/Entities/ContentFileType/sections/details.component.js +89 -0
  794. package/dist/lib/generated/Entities/ContentFileType/sections/details.component.js.map +1 -0
  795. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.d.ts.map +1 -1
  796. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js +17 -18
  797. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js.map +1 -1
  798. package/dist/lib/generated/Entities/ContentItem/sections/details.component.d.ts +11 -0
  799. package/dist/lib/generated/Entities/ContentItem/sections/details.component.d.ts.map +1 -0
  800. package/dist/lib/generated/Entities/ContentItem/sections/details.component.js +196 -0
  801. package/dist/lib/generated/Entities/ContentItem/sections/details.component.js.map +1 -0
  802. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.d.ts.map +1 -1
  803. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js +3 -3
  804. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js.map +1 -1
  805. package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.d.ts +11 -0
  806. package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.d.ts.map +1 -0
  807. package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.js +109 -0
  808. package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.js.map +1 -0
  809. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.d.ts.map +1 -1
  810. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js +3 -3
  811. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js.map +1 -1
  812. package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.d.ts +11 -0
  813. package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.d.ts.map +1 -0
  814. package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.js +100 -0
  815. package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.js.map +1 -0
  816. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.d.ts.map +1 -1
  817. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js +3 -3
  818. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js.map +1 -1
  819. package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.d.ts +11 -0
  820. package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.d.ts.map +1 -0
  821. package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.js +127 -0
  822. package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.js.map +1 -0
  823. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.d.ts.map +1 -1
  824. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js +23 -24
  825. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js.map +1 -1
  826. package/dist/lib/generated/Entities/ContentSource/sections/details.component.d.ts +11 -0
  827. package/dist/lib/generated/Entities/ContentSource/sections/details.component.d.ts.map +1 -0
  828. package/dist/lib/generated/Entities/ContentSource/sections/details.component.js +149 -0
  829. package/dist/lib/generated/Entities/ContentSource/sections/details.component.js.map +1 -0
  830. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.d.ts.map +1 -1
  831. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js +3 -3
  832. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js.map +1 -1
  833. package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.d.ts +11 -0
  834. package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.d.ts.map +1 -0
  835. package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.js +109 -0
  836. package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.js.map +1 -0
  837. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.d.ts.map +1 -1
  838. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js +17 -18
  839. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js.map +1 -1
  840. package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.d.ts +11 -0
  841. package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.d.ts.map +1 -0
  842. package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.js +89 -0
  843. package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.js.map +1 -0
  844. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.d.ts.map +1 -1
  845. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js +3 -3
  846. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js.map +1 -1
  847. package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.d.ts +11 -0
  848. package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.d.ts.map +1 -0
  849. package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.js +116 -0
  850. package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.js.map +1 -0
  851. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.d.ts.map +1 -1
  852. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js +17 -18
  853. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js.map +1 -1
  854. package/dist/lib/generated/Entities/ContentType/sections/details.component.d.ts +11 -0
  855. package/dist/lib/generated/Entities/ContentType/sections/details.component.d.ts.map +1 -0
  856. package/dist/lib/generated/Entities/ContentType/sections/details.component.js +127 -0
  857. package/dist/lib/generated/Entities/ContentType/sections/details.component.js.map +1 -0
  858. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.d.ts.map +1 -1
  859. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js +3 -3
  860. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js.map +1 -1
  861. package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.d.ts +11 -0
  862. package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.d.ts.map +1 -0
  863. package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.js +107 -0
  864. package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.js.map +1 -0
  865. package/dist/lib/generated/Entities/Conversation/conversation.form.component.d.ts.map +1 -1
  866. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +42 -43
  867. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
  868. package/dist/lib/generated/Entities/Conversation/sections/details.component.d.ts +11 -0
  869. package/dist/lib/generated/Entities/Conversation/sections/details.component.d.ts.map +1 -0
  870. package/dist/lib/generated/Entities/Conversation/sections/details.component.js +243 -0
  871. package/dist/lib/generated/Entities/Conversation/sections/details.component.js.map +1 -0
  872. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.d.ts.map +1 -1
  873. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js +23 -24
  874. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js.map +1 -1
  875. package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.d.ts +11 -0
  876. package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.d.ts.map +1 -0
  877. package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.js +147 -0
  878. package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.js.map +1 -0
  879. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.d.ts.map +1 -1
  880. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js +3 -3
  881. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js.map +1 -1
  882. package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.d.ts +11 -0
  883. package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.d.ts.map +1 -0
  884. package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.js +109 -0
  885. package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.js.map +1 -0
  886. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.d.ts.map +1 -1
  887. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js +11 -12
  888. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js.map +1 -1
  889. package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.d.ts +11 -0
  890. package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.d.ts.map +1 -0
  891. package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.js +127 -0
  892. package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.js.map +1 -0
  893. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.d.ts.map +1 -1
  894. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js +59 -60
  895. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js.map +1 -1
  896. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.d.ts +11 -0
  897. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.d.ts.map +1 -0
  898. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js +299 -0
  899. package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js.map +1 -0
  900. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.d.ts.map +1 -1
  901. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js +4 -4
  902. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js.map +1 -1
  903. package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.d.ts +11 -0
  904. package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.d.ts.map +1 -0
  905. package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.js +111 -0
  906. package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.js.map +1 -0
  907. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.d.ts.map +1 -1
  908. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js +3 -3
  909. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js.map +1 -1
  910. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.d.ts.map +1 -1
  911. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js +7 -13
  912. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js.map +1 -1
  913. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.d.ts +11 -0
  914. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.d.ts.map +1 -0
  915. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.js +120 -0
  916. package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.js.map +1 -0
  917. package/dist/lib/generated/Entities/Credential/credential.form.component.d.ts.map +1 -1
  918. package/dist/lib/generated/Entities/Credential/credential.form.component.js +54 -19
  919. package/dist/lib/generated/Entities/Credential/credential.form.component.js.map +1 -1
  920. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.d.ts.map +1 -1
  921. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.js +17 -18
  922. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.js.map +1 -1
  923. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.d.ts.map +1 -1
  924. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js +33 -16
  925. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js.map +1 -1
  926. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.d.ts.map +1 -1
  927. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js +29 -30
  928. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js.map +1 -1
  929. package/dist/lib/generated/Entities/Dashboard/sections/details.component.d.ts +11 -0
  930. package/dist/lib/generated/Entities/Dashboard/sections/details.component.d.ts.map +1 -0
  931. package/dist/lib/generated/Entities/Dashboard/sections/details.component.js +223 -0
  932. package/dist/lib/generated/Entities/Dashboard/sections/details.component.js.map +1 -0
  933. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.d.ts.map +1 -1
  934. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js +29 -30
  935. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js.map +1 -1
  936. package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.d.ts +11 -0
  937. package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.d.ts.map +1 -0
  938. package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.js +138 -0
  939. package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.js.map +1 -0
  940. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.d.ts.map +1 -1
  941. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.js +3 -3
  942. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.js.map +1 -1
  943. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.d.ts.map +1 -1
  944. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.js +3 -3
  945. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.js.map +1 -1
  946. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.d.ts.map +1 -1
  947. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.js +3 -3
  948. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.js.map +1 -1
  949. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.d.ts.map +1 -1
  950. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.js +3 -3
  951. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.js.map +1 -1
  952. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.d.ts.map +1 -1
  953. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js +3 -3
  954. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js.map +1 -1
  955. package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.d.ts +11 -0
  956. package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.d.ts.map +1 -0
  957. package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.js +149 -0
  958. package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.js.map +1 -0
  959. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.d.ts.map +1 -1
  960. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js +3 -3
  961. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js.map +1 -1
  962. package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.d.ts +11 -0
  963. package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.d.ts.map +1 -0
  964. package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.js +120 -0
  965. package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.js.map +1 -0
  966. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.d.ts.map +1 -1
  967. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js +23 -24
  968. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js.map +1 -1
  969. package/dist/lib/generated/Entities/DataContext/sections/details.component.d.ts +11 -0
  970. package/dist/lib/generated/Entities/DataContext/sections/details.component.d.ts.map +1 -0
  971. package/dist/lib/generated/Entities/DataContext/sections/details.component.js +118 -0
  972. package/dist/lib/generated/Entities/DataContext/sections/details.component.js.map +1 -0
  973. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.d.ts.map +1 -1
  974. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js +3 -3
  975. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js.map +1 -1
  976. package/dist/lib/generated/Entities/DataContextItem/sections/details.component.d.ts +11 -0
  977. package/dist/lib/generated/Entities/DataContextItem/sections/details.component.d.ts.map +1 -0
  978. package/dist/lib/generated/Entities/DataContextItem/sections/details.component.js +214 -0
  979. package/dist/lib/generated/Entities/DataContextItem/sections/details.component.js.map +1 -0
  980. package/dist/lib/generated/Entities/Dataset/dataset.form.component.d.ts.map +1 -1
  981. package/dist/lib/generated/Entities/Dataset/dataset.form.component.js +11 -12
  982. package/dist/lib/generated/Entities/Dataset/dataset.form.component.js.map +1 -1
  983. package/dist/lib/generated/Entities/Dataset/sections/details.component.d.ts +11 -0
  984. package/dist/lib/generated/Entities/Dataset/sections/details.component.d.ts.map +1 -0
  985. package/dist/lib/generated/Entities/Dataset/sections/details.component.js +89 -0
  986. package/dist/lib/generated/Entities/Dataset/sections/details.component.js.map +1 -0
  987. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.d.ts.map +1 -1
  988. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js +3 -3
  989. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js.map +1 -1
  990. package/dist/lib/generated/Entities/DatasetItem/sections/details.component.d.ts +11 -0
  991. package/dist/lib/generated/Entities/DatasetItem/sections/details.component.d.ts.map +1 -0
  992. package/dist/lib/generated/Entities/DatasetItem/sections/details.component.js +165 -0
  993. package/dist/lib/generated/Entities/DatasetItem/sections/details.component.js.map +1 -0
  994. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.d.ts.map +1 -1
  995. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js +11 -12
  996. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js.map +1 -1
  997. package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.d.ts +11 -0
  998. package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.d.ts.map +1 -0
  999. package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.js +205 -0
  1000. package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.js.map +1 -0
  1001. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.d.ts.map +1 -1
  1002. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js +19 -26
  1003. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js.map +1 -1
  1004. package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.d.ts +11 -0
  1005. package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.d.ts.map +1 -0
  1006. package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.js +136 -0
  1007. package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.js.map +1 -0
  1008. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.d.ts.map +1 -1
  1009. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js +3 -3
  1010. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js.map +1 -1
  1011. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.d.ts +11 -0
  1012. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.d.ts.map +1 -0
  1013. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.js +165 -0
  1014. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.js.map +1 -0
  1015. package/dist/lib/generated/Entities/Employee/employee.form.component.d.ts.map +1 -1
  1016. package/dist/lib/generated/Entities/Employee/employee.form.component.js +35 -36
  1017. package/dist/lib/generated/Entities/Employee/employee.form.component.js.map +1 -1
  1018. package/dist/lib/generated/Entities/Employee/sections/details.component.d.ts +11 -0
  1019. package/dist/lib/generated/Entities/Employee/sections/details.component.d.ts.map +1 -0
  1020. package/dist/lib/generated/Entities/Employee/sections/details.component.js +202 -0
  1021. package/dist/lib/generated/Entities/Employee/sections/details.component.js.map +1 -0
  1022. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.d.ts.map +1 -1
  1023. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js +10 -16
  1024. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js.map +1 -1
  1025. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.d.ts +11 -0
  1026. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.d.ts.map +1 -0
  1027. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.js +120 -0
  1028. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.js.map +1 -0
  1029. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.d.ts.map +1 -1
  1030. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js +4 -4
  1031. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js.map +1 -1
  1032. package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.d.ts +11 -0
  1033. package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.d.ts.map +1 -0
  1034. package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.js +102 -0
  1035. package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.js.map +1 -0
  1036. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.d.ts.map +1 -1
  1037. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js +7 -13
  1038. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js.map +1 -1
  1039. package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.d.ts +11 -0
  1040. package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.d.ts.map +1 -0
  1041. package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.js +102 -0
  1042. package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.js.map +1 -0
  1043. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.d.ts.map +1 -1
  1044. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.js +11 -12
  1045. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.js.map +1 -1
  1046. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.d.ts.map +1 -1
  1047. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.js +11 -12
  1048. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.js.map +1 -1
  1049. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.d.ts.map +1 -1
  1050. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.js +11 -12
  1051. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.js.map +1 -1
  1052. package/dist/lib/generated/Entities/Entity/entity.form.component.d.ts.map +1 -1
  1053. package/dist/lib/generated/Entities/Entity/entity.form.component.js +308 -273
  1054. package/dist/lib/generated/Entities/Entity/entity.form.component.js.map +1 -1
  1055. package/dist/lib/generated/Entities/Entity/sections/api.component.d.ts +11 -0
  1056. package/dist/lib/generated/Entities/Entity/sections/api.component.d.ts.map +1 -0
  1057. package/dist/lib/generated/Entities/Entity/sections/api.component.js +116 -0
  1058. package/dist/lib/generated/Entities/Entity/sections/api.component.js.map +1 -0
  1059. package/dist/lib/generated/Entities/Entity/sections/audit.component.d.ts +11 -0
  1060. package/dist/lib/generated/Entities/Entity/sections/audit.component.d.ts.map +1 -0
  1061. package/dist/lib/generated/Entities/Entity/sections/audit.component.js +71 -0
  1062. package/dist/lib/generated/Entities/Entity/sections/audit.component.js.map +1 -0
  1063. package/dist/lib/generated/Entities/Entity/sections/db.component.d.ts +11 -0
  1064. package/dist/lib/generated/Entities/Entity/sections/db.component.d.ts.map +1 -0
  1065. package/dist/lib/generated/Entities/Entity/sections/db.component.js +107 -0
  1066. package/dist/lib/generated/Entities/Entity/sections/db.component.js.map +1 -0
  1067. package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts +11 -0
  1068. package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts.map +1 -0
  1069. package/dist/lib/generated/Entities/Entity/sections/details.component.js +415 -0
  1070. package/dist/lib/generated/Entities/Entity/sections/details.component.js.map +1 -0
  1071. package/dist/lib/generated/Entities/Entity/sections/top.component.d.ts +11 -0
  1072. package/dist/lib/generated/Entities/Entity/sections/top.component.d.ts.map +1 -0
  1073. package/dist/lib/generated/Entities/Entity/sections/top.component.js +107 -0
  1074. package/dist/lib/generated/Entities/Entity/sections/top.component.js.map +1 -0
  1075. package/dist/lib/generated/Entities/Entity/sections/ui.component.d.ts +11 -0
  1076. package/dist/lib/generated/Entities/Entity/sections/ui.component.d.ts.map +1 -0
  1077. package/dist/lib/generated/Entities/Entity/sections/ui.component.js +62 -0
  1078. package/dist/lib/generated/Entities/Entity/sections/ui.component.js.map +1 -0
  1079. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.d.ts.map +1 -1
  1080. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js +3 -3
  1081. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js.map +1 -1
  1082. package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.d.ts +11 -0
  1083. package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.d.ts.map +1 -0
  1084. package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.js +223 -0
  1085. package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.js.map +1 -0
  1086. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.d.ts.map +1 -1
  1087. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js +23 -24
  1088. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js.map +1 -1
  1089. package/dist/lib/generated/Entities/EntityAction/sections/details.component.d.ts +11 -0
  1090. package/dist/lib/generated/Entities/EntityAction/sections/details.component.d.ts.map +1 -0
  1091. package/dist/lib/generated/Entities/EntityAction/sections/details.component.js +120 -0
  1092. package/dist/lib/generated/Entities/EntityAction/sections/details.component.js.map +1 -0
  1093. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.d.ts.map +1 -1
  1094. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js +4 -4
  1095. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js.map +1 -1
  1096. package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.d.ts +11 -0
  1097. package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.d.ts.map +1 -0
  1098. package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.js +111 -0
  1099. package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.js.map +1 -0
  1100. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.d.ts.map +1 -1
  1101. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js +9 -15
  1102. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js.map +1 -1
  1103. package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.d.ts +11 -0
  1104. package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.d.ts.map +1 -0
  1105. package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.js +111 -0
  1106. package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.js.map +1 -0
  1107. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.d.ts.map +1 -1
  1108. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js +11 -12
  1109. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js.map +1 -1
  1110. package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.d.ts +11 -0
  1111. package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.d.ts.map +1 -0
  1112. package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.js +98 -0
  1113. package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.js.map +1 -0
  1114. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.d.ts.map +1 -1
  1115. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js +4 -4
  1116. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js.map +1 -1
  1117. package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.d.ts +11 -0
  1118. package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.d.ts.map +1 -0
  1119. package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.js +129 -0
  1120. package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.js.map +1 -0
  1121. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.d.ts.map +1 -1
  1122. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js +7 -13
  1123. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js.map +1 -1
  1124. package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.d.ts +11 -0
  1125. package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.d.ts.map +1 -0
  1126. package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.js +100 -0
  1127. package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.js.map +1 -0
  1128. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.d.ts.map +1 -1
  1129. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js +11 -12
  1130. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js.map +1 -1
  1131. package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.d.ts +11 -0
  1132. package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.d.ts.map +1 -0
  1133. package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.js +120 -0
  1134. package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.js.map +1 -0
  1135. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.d.ts.map +1 -1
  1136. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js +23 -24
  1137. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js.map +1 -1
  1138. package/dist/lib/generated/Entities/EntityDocument/sections/details.component.d.ts +11 -0
  1139. package/dist/lib/generated/Entities/EntityDocument/sections/details.component.d.ts.map +1 -0
  1140. package/dist/lib/generated/Entities/EntityDocument/sections/details.component.js +207 -0
  1141. package/dist/lib/generated/Entities/EntityDocument/sections/details.component.js.map +1 -0
  1142. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.d.ts.map +1 -1
  1143. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js +3 -3
  1144. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js.map +1 -1
  1145. package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.d.ts +11 -0
  1146. package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.d.ts.map +1 -0
  1147. package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.js +118 -0
  1148. package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.js.map +1 -0
  1149. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.d.ts.map +1 -1
  1150. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js +3 -3
  1151. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js.map +1 -1
  1152. package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.d.ts +11 -0
  1153. package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.d.ts.map +1 -0
  1154. package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.js +118 -0
  1155. package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.js.map +1 -0
  1156. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.d.ts.map +1 -1
  1157. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js +11 -12
  1158. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js.map +1 -1
  1159. package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.d.ts +11 -0
  1160. package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.d.ts.map +1 -0
  1161. package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.js +89 -0
  1162. package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.js.map +1 -0
  1163. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.d.ts.map +1 -1
  1164. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js +31 -26
  1165. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js.map +1 -1
  1166. package/dist/lib/generated/Entities/EntityField/sections/details.component.d.ts +11 -0
  1167. package/dist/lib/generated/Entities/EntityField/sections/details.component.d.ts.map +1 -0
  1168. package/dist/lib/generated/Entities/EntityField/sections/details.component.js +561 -0
  1169. package/dist/lib/generated/Entities/EntityField/sections/details.component.js.map +1 -0
  1170. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.d.ts.map +1 -1
  1171. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js +3 -3
  1172. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js.map +1 -1
  1173. package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.d.ts +11 -0
  1174. package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.d.ts.map +1 -0
  1175. package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.js +145 -0
  1176. package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.js.map +1 -0
  1177. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.d.ts.map +1 -1
  1178. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js +3 -3
  1179. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js.map +1 -1
  1180. package/dist/lib/generated/Entities/EntityPermission/sections/details.component.d.ts +11 -0
  1181. package/dist/lib/generated/Entities/EntityPermission/sections/details.component.d.ts.map +1 -0
  1182. package/dist/lib/generated/Entities/EntityPermission/sections/details.component.js +236 -0
  1183. package/dist/lib/generated/Entities/EntityPermission/sections/details.component.js.map +1 -0
  1184. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.d.ts.map +1 -1
  1185. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js +3 -3
  1186. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js.map +1 -1
  1187. package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.d.ts +11 -0
  1188. package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.d.ts.map +1 -0
  1189. package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.js +176 -0
  1190. package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.js.map +1 -0
  1191. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.d.ts.map +1 -1
  1192. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js +3 -3
  1193. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js.map +1 -1
  1194. package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.d.ts +11 -0
  1195. package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.d.ts.map +1 -0
  1196. package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.js +349 -0
  1197. package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.js.map +1 -0
  1198. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.d.ts.map +1 -1
  1199. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js +11 -12
  1200. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js.map +1 -1
  1201. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.d.ts +11 -0
  1202. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.d.ts.map +1 -0
  1203. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.js +98 -0
  1204. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.js.map +1 -0
  1205. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.d.ts.map +1 -1
  1206. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js +3 -3
  1207. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js.map +1 -1
  1208. package/dist/lib/generated/Entities/EntitySetting/sections/details.component.d.ts +11 -0
  1209. package/dist/lib/generated/Entities/EntitySetting/sections/details.component.d.ts.map +1 -0
  1210. package/dist/lib/generated/Entities/EntitySetting/sections/details.component.js +118 -0
  1211. package/dist/lib/generated/Entities/EntitySetting/sections/details.component.js.map +1 -0
  1212. package/dist/lib/generated/Entities/Environment/environment.form.component.d.ts.map +1 -1
  1213. package/dist/lib/generated/Entities/Environment/environment.form.component.js +47 -48
  1214. package/dist/lib/generated/Entities/Environment/environment.form.component.js.map +1 -1
  1215. package/dist/lib/generated/Entities/Environment/sections/details.component.d.ts +11 -0
  1216. package/dist/lib/generated/Entities/Environment/sections/details.component.d.ts.map +1 -0
  1217. package/dist/lib/generated/Entities/Environment/sections/details.component.js +107 -0
  1218. package/dist/lib/generated/Entities/Environment/sections/details.component.js.map +1 -0
  1219. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.d.ts.map +1 -1
  1220. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js +4 -4
  1221. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js.map +1 -1
  1222. package/dist/lib/generated/Entities/ErrorLog/sections/details.component.d.ts +11 -0
  1223. package/dist/lib/generated/Entities/ErrorLog/sections/details.component.d.ts.map +1 -0
  1224. package/dist/lib/generated/Entities/ErrorLog/sections/details.component.js +147 -0
  1225. package/dist/lib/generated/Entities/ErrorLog/sections/details.component.js.map +1 -0
  1226. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.d.ts.map +1 -1
  1227. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js +3 -3
  1228. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js.map +1 -1
  1229. package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.d.ts +11 -0
  1230. package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.d.ts.map +1 -0
  1231. package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.js +152 -0
  1232. package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.js.map +1 -0
  1233. package/dist/lib/generated/Entities/File/file.form.component.d.ts.map +1 -1
  1234. package/dist/lib/generated/Entities/File/file.form.component.js +29 -30
  1235. package/dist/lib/generated/Entities/File/file.form.component.js.map +1 -1
  1236. package/dist/lib/generated/Entities/File/sections/details.component.d.ts +11 -0
  1237. package/dist/lib/generated/Entities/File/sections/details.component.d.ts.map +1 -0
  1238. package/dist/lib/generated/Entities/File/sections/details.component.js +156 -0
  1239. package/dist/lib/generated/Entities/File/sections/details.component.js.map +1 -0
  1240. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.d.ts.map +1 -1
  1241. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js +17 -18
  1242. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js.map +1 -1
  1243. package/dist/lib/generated/Entities/FileCategory/sections/details.component.d.ts +11 -0
  1244. package/dist/lib/generated/Entities/FileCategory/sections/details.component.d.ts.map +1 -0
  1245. package/dist/lib/generated/Entities/FileCategory/sections/details.component.js +118 -0
  1246. package/dist/lib/generated/Entities/FileCategory/sections/details.component.js.map +1 -0
  1247. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.d.ts.map +1 -1
  1248. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js +3 -3
  1249. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js.map +1 -1
  1250. package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.d.ts +11 -0
  1251. package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.d.ts.map +1 -0
  1252. package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.js +120 -0
  1253. package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.js.map +1 -0
  1254. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.d.ts.map +1 -1
  1255. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.js +3 -3
  1256. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.js.map +1 -1
  1257. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.d.ts.map +1 -1
  1258. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js +29 -30
  1259. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js.map +1 -1
  1260. package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.d.ts +11 -0
  1261. package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.d.ts.map +1 -0
  1262. package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.js +134 -0
  1263. package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.js.map +1 -0
  1264. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.d.ts.map +1 -1
  1265. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js +3 -3
  1266. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js.map +1 -1
  1267. package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.d.ts +11 -0
  1268. package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.d.ts.map +1 -0
  1269. package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.js +203 -0
  1270. package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.js.map +1 -0
  1271. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.d.ts.map +1 -1
  1272. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js +17 -18
  1273. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js.map +1 -1
  1274. package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.d.ts +11 -0
  1275. package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.d.ts.map +1 -0
  1276. package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.js +118 -0
  1277. package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.js.map +1 -0
  1278. package/dist/lib/generated/Entities/Integration/integration.form.component.d.ts.map +1 -1
  1279. package/dist/lib/generated/Entities/Integration/integration.form.component.js +23 -24
  1280. package/dist/lib/generated/Entities/Integration/integration.form.component.js.map +1 -1
  1281. package/dist/lib/generated/Entities/Integration/sections/details.component.d.ts +11 -0
  1282. package/dist/lib/generated/Entities/Integration/sections/details.component.d.ts.map +1 -0
  1283. package/dist/lib/generated/Entities/Integration/sections/details.component.js +135 -0
  1284. package/dist/lib/generated/Entities/Integration/sections/details.component.js.map +1 -0
  1285. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.d.ts.map +1 -1
  1286. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js +3 -3
  1287. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js.map +1 -1
  1288. package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.d.ts +11 -0
  1289. package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.d.ts.map +1 -0
  1290. package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.js +139 -0
  1291. package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.js.map +1 -0
  1292. package/dist/lib/generated/Entities/Library/library.form.component.d.ts.map +1 -1
  1293. package/dist/lib/generated/Entities/Library/library.form.component.js +17 -18
  1294. package/dist/lib/generated/Entities/Library/library.form.component.js.map +1 -1
  1295. package/dist/lib/generated/Entities/Library/sections/details.component.d.ts +11 -0
  1296. package/dist/lib/generated/Entities/Library/sections/details.component.d.ts.map +1 -0
  1297. package/dist/lib/generated/Entities/Library/sections/details.component.js +116 -0
  1298. package/dist/lib/generated/Entities/Library/sections/details.component.js.map +1 -0
  1299. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.d.ts.map +1 -1
  1300. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js +3 -3
  1301. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js.map +1 -1
  1302. package/dist/lib/generated/Entities/LibraryItem/sections/details.component.d.ts +11 -0
  1303. package/dist/lib/generated/Entities/LibraryItem/sections/details.component.d.ts.map +1 -0
  1304. package/dist/lib/generated/Entities/LibraryItem/sections/details.component.js +109 -0
  1305. package/dist/lib/generated/Entities/LibraryItem/sections/details.component.js.map +1 -0
  1306. package/dist/lib/generated/Entities/List/list.form.component.d.ts.map +1 -1
  1307. package/dist/lib/generated/Entities/List/list.form.component.js +29 -30
  1308. package/dist/lib/generated/Entities/List/list.form.component.js.map +1 -1
  1309. package/dist/lib/generated/Entities/List/sections/details.component.d.ts +11 -0
  1310. package/dist/lib/generated/Entities/List/sections/details.component.d.ts.map +1 -0
  1311. package/dist/lib/generated/Entities/List/sections/details.component.js +178 -0
  1312. package/dist/lib/generated/Entities/List/sections/details.component.js.map +1 -0
  1313. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.d.ts.map +1 -1
  1314. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js +17 -18
  1315. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js.map +1 -1
  1316. package/dist/lib/generated/Entities/ListCategory/sections/details.component.d.ts +11 -0
  1317. package/dist/lib/generated/Entities/ListCategory/sections/details.component.d.ts.map +1 -0
  1318. package/dist/lib/generated/Entities/ListCategory/sections/details.component.js +138 -0
  1319. package/dist/lib/generated/Entities/ListCategory/sections/details.component.js.map +1 -0
  1320. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.d.ts.map +1 -1
  1321. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js +3 -3
  1322. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js.map +1 -1
  1323. package/dist/lib/generated/Entities/ListDetail/sections/details.component.d.ts +11 -0
  1324. package/dist/lib/generated/Entities/ListDetail/sections/details.component.d.ts.map +1 -0
  1325. package/dist/lib/generated/Entities/ListDetail/sections/details.component.js +127 -0
  1326. package/dist/lib/generated/Entities/ListDetail/sections/details.component.js.map +1 -0
  1327. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.d.ts.map +1 -1
  1328. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.js +3 -3
  1329. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.js.map +1 -1
  1330. package/dist/lib/generated/Entities/ListShare/listshare.form.component.d.ts.map +1 -1
  1331. package/dist/lib/generated/Entities/ListShare/listshare.form.component.js +3 -3
  1332. package/dist/lib/generated/Entities/ListShare/listshare.form.component.js.map +1 -1
  1333. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts +11 -0
  1334. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts.map +1 -0
  1335. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js +177 -0
  1336. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js.map +1 -0
  1337. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts +11 -0
  1338. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts.map +1 -0
  1339. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js +211 -0
  1340. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js.map +1 -0
  1341. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts +11 -0
  1342. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts.map +1 -0
  1343. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js +77 -0
  1344. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js.map +1 -0
  1345. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts +11 -0
  1346. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts.map +1 -0
  1347. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js +73 -0
  1348. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js.map +1 -0
  1349. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts +11 -0
  1350. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts.map +1 -0
  1351. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js +131 -0
  1352. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js.map +1 -0
  1353. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts +11 -0
  1354. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts.map +1 -0
  1355. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js +101 -0
  1356. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js.map +1 -0
  1357. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.d.ts +11 -0
  1358. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.d.ts.map +1 -0
  1359. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.js +75 -0
  1360. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.js.map +1 -0
  1361. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.d.ts +11 -0
  1362. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.d.ts.map +1 -0
  1363. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.js +81 -0
  1364. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.js.map +1 -0
  1365. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.d.ts +11 -0
  1366. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.d.ts.map +1 -0
  1367. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.js +81 -0
  1368. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.js.map +1 -0
  1369. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.d.ts +11 -0
  1370. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.d.ts.map +1 -0
  1371. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.js +67 -0
  1372. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.js.map +1 -0
  1373. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.d.ts.map +1 -1
  1374. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js +11 -12
  1375. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js.map +1 -1
  1376. package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.d.ts +11 -0
  1377. package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.d.ts.map +1 -0
  1378. package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.js +89 -0
  1379. package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.js.map +1 -0
  1380. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.d.ts.map +1 -1
  1381. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js +11 -12
  1382. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js.map +1 -1
  1383. package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.d.ts +11 -0
  1384. package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.d.ts.map +1 -0
  1385. package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.js +98 -0
  1386. package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.js.map +1 -0
  1387. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.d.ts.map +1 -1
  1388. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js +11 -12
  1389. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js.map +1 -1
  1390. package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.d.ts +11 -0
  1391. package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.d.ts.map +1 -0
  1392. package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.js +89 -0
  1393. package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.js.map +1 -0
  1394. package/dist/lib/generated/Entities/Project/project.form.component.d.ts.map +1 -1
  1395. package/dist/lib/generated/Entities/Project/project.form.component.js +23 -24
  1396. package/dist/lib/generated/Entities/Project/project.form.component.js.map +1 -1
  1397. package/dist/lib/generated/Entities/Project/sections/details.component.d.ts +11 -0
  1398. package/dist/lib/generated/Entities/Project/sections/details.component.d.ts.map +1 -0
  1399. package/dist/lib/generated/Entities/Project/sections/details.component.js +165 -0
  1400. package/dist/lib/generated/Entities/Project/sections/details.component.js.map +1 -0
  1401. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.d.ts.map +1 -1
  1402. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.js +3 -3
  1403. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.js.map +1 -1
  1404. package/dist/lib/generated/Entities/PublicLink/sections/details.component.d.ts +11 -0
  1405. package/dist/lib/generated/Entities/PublicLink/sections/details.component.d.ts.map +1 -0
  1406. package/dist/lib/generated/Entities/PublicLink/sections/details.component.js +163 -0
  1407. package/dist/lib/generated/Entities/PublicLink/sections/details.component.js.map +1 -0
  1408. package/dist/lib/generated/Entities/Query/query.form.component.d.ts.map +1 -1
  1409. package/dist/lib/generated/Entities/Query/query.form.component.js +35 -36
  1410. package/dist/lib/generated/Entities/Query/query.form.component.js.map +1 -1
  1411. package/dist/lib/generated/Entities/Query/sections/details.component.d.ts +11 -0
  1412. package/dist/lib/generated/Entities/Query/sections/details.component.d.ts.map +1 -0
  1413. package/dist/lib/generated/Entities/Query/sections/details.component.js +255 -0
  1414. package/dist/lib/generated/Entities/Query/sections/details.component.js.map +1 -0
  1415. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.d.ts.map +1 -1
  1416. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js +17 -18
  1417. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js.map +1 -1
  1418. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts +11 -0
  1419. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts.map +1 -0
  1420. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js +174 -0
  1421. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js.map +1 -0
  1422. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.d.ts.map +1 -1
  1423. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js +3 -3
  1424. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js.map +1 -1
  1425. package/dist/lib/generated/Entities/QueryEntity/sections/details.component.d.ts +11 -0
  1426. package/dist/lib/generated/Entities/QueryEntity/sections/details.component.d.ts.map +1 -0
  1427. package/dist/lib/generated/Entities/QueryEntity/sections/details.component.js +129 -0
  1428. package/dist/lib/generated/Entities/QueryEntity/sections/details.component.js.map +1 -0
  1429. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.d.ts.map +1 -1
  1430. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js +3 -3
  1431. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js.map +1 -1
  1432. package/dist/lib/generated/Entities/QueryField/sections/details.component.d.ts +11 -0
  1433. package/dist/lib/generated/Entities/QueryField/sections/details.component.d.ts.map +1 -0
  1434. package/dist/lib/generated/Entities/QueryField/sections/details.component.js +219 -0
  1435. package/dist/lib/generated/Entities/QueryField/sections/details.component.js.map +1 -0
  1436. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.d.ts.map +1 -1
  1437. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.js +3 -3
  1438. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.js.map +1 -1
  1439. package/dist/lib/generated/Entities/QueryParameter/sections/details.component.d.ts +11 -0
  1440. package/dist/lib/generated/Entities/QueryParameter/sections/details.component.d.ts.map +1 -0
  1441. package/dist/lib/generated/Entities/QueryParameter/sections/details.component.js +172 -0
  1442. package/dist/lib/generated/Entities/QueryParameter/sections/details.component.js.map +1 -0
  1443. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.d.ts.map +1 -1
  1444. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js +3 -3
  1445. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js.map +1 -1
  1446. package/dist/lib/generated/Entities/QueryPermission/sections/details.component.d.ts +11 -0
  1447. package/dist/lib/generated/Entities/QueryPermission/sections/details.component.d.ts.map +1 -0
  1448. package/dist/lib/generated/Entities/QueryPermission/sections/details.component.js +111 -0
  1449. package/dist/lib/generated/Entities/QueryPermission/sections/details.component.js.map +1 -0
  1450. package/dist/lib/generated/Entities/Queue/queue.form.component.d.ts.map +1 -1
  1451. package/dist/lib/generated/Entities/Queue/queue.form.component.js +11 -12
  1452. package/dist/lib/generated/Entities/Queue/queue.form.component.js.map +1 -1
  1453. package/dist/lib/generated/Entities/Queue/sections/details.component.d.ts +11 -0
  1454. package/dist/lib/generated/Entities/Queue/sections/details.component.d.ts.map +1 -0
  1455. package/dist/lib/generated/Entities/Queue/sections/details.component.js +226 -0
  1456. package/dist/lib/generated/Entities/Queue/sections/details.component.js.map +1 -0
  1457. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.d.ts.map +1 -1
  1458. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js +3 -3
  1459. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js.map +1 -1
  1460. package/dist/lib/generated/Entities/QueueTask/sections/details.component.d.ts +11 -0
  1461. package/dist/lib/generated/Entities/QueueTask/sections/details.component.d.ts.map +1 -0
  1462. package/dist/lib/generated/Entities/QueueTask/sections/details.component.js +163 -0
  1463. package/dist/lib/generated/Entities/QueueTask/sections/details.component.js.map +1 -0
  1464. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.d.ts.map +1 -1
  1465. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js +11 -12
  1466. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js.map +1 -1
  1467. package/dist/lib/generated/Entities/QueueType/sections/details.component.d.ts +11 -0
  1468. package/dist/lib/generated/Entities/QueueType/sections/details.component.d.ts.map +1 -0
  1469. package/dist/lib/generated/Entities/QueueType/sections/details.component.js +116 -0
  1470. package/dist/lib/generated/Entities/QueueType/sections/details.component.js.map +1 -0
  1471. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.d.ts.map +1 -1
  1472. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js +16 -23
  1473. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js.map +1 -1
  1474. package/dist/lib/generated/Entities/Recommendation/sections/details.component.d.ts +11 -0
  1475. package/dist/lib/generated/Entities/Recommendation/sections/details.component.d.ts.map +1 -0
  1476. package/dist/lib/generated/Entities/Recommendation/sections/details.component.js +111 -0
  1477. package/dist/lib/generated/Entities/Recommendation/sections/details.component.js.map +1 -0
  1478. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.d.ts.map +1 -1
  1479. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js +7 -13
  1480. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js.map +1 -1
  1481. package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.d.ts +11 -0
  1482. package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.d.ts.map +1 -0
  1483. package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.js +120 -0
  1484. package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.js.map +1 -0
  1485. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.d.ts.map +1 -1
  1486. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js +11 -12
  1487. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js.map +1 -1
  1488. package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.d.ts +11 -0
  1489. package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.d.ts.map +1 -0
  1490. package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.js +89 -0
  1491. package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.js.map +1 -0
  1492. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.d.ts.map +1 -1
  1493. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js +11 -12
  1494. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js.map +1 -1
  1495. package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.d.ts +11 -0
  1496. package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.d.ts.map +1 -0
  1497. package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.js +147 -0
  1498. package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.js.map +1 -0
  1499. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.d.ts.map +1 -1
  1500. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js +31 -19
  1501. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js.map +1 -1
  1502. package/dist/lib/generated/Entities/RecordChange/sections/details.component.d.ts +11 -0
  1503. package/dist/lib/generated/Entities/RecordChange/sections/details.component.d.ts.map +1 -0
  1504. package/dist/lib/generated/Entities/RecordChange/sections/details.component.js +232 -0
  1505. package/dist/lib/generated/Entities/RecordChange/sections/details.component.js.map +1 -0
  1506. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.d.ts.map +1 -1
  1507. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js +11 -12
  1508. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js.map +1 -1
  1509. package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.d.ts +11 -0
  1510. package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.d.ts.map +1 -0
  1511. package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.js +118 -0
  1512. package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.js.map +1 -0
  1513. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.d.ts.map +1 -1
  1514. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.js +3 -3
  1515. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.js.map +1 -1
  1516. package/dist/lib/generated/Entities/RecordLink/sections/details.component.d.ts +11 -0
  1517. package/dist/lib/generated/Entities/RecordLink/sections/details.component.d.ts.map +1 -0
  1518. package/dist/lib/generated/Entities/RecordLink/sections/details.component.js +156 -0
  1519. package/dist/lib/generated/Entities/RecordLink/sections/details.component.js.map +1 -0
  1520. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.d.ts.map +1 -1
  1521. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js +7 -13
  1522. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js.map +1 -1
  1523. package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.d.ts +11 -0
  1524. package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.d.ts.map +1 -0
  1525. package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.js +109 -0
  1526. package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.js.map +1 -0
  1527. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.d.ts.map +1 -1
  1528. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js +17 -18
  1529. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js.map +1 -1
  1530. package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.d.ts +11 -0
  1531. package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.d.ts.map +1 -0
  1532. package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.js +194 -0
  1533. package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.js.map +1 -0
  1534. package/dist/lib/generated/Entities/Report/report.form.component.d.ts.map +1 -1
  1535. package/dist/lib/generated/Entities/Report/report.form.component.js +28 -35
  1536. package/dist/lib/generated/Entities/Report/report.form.component.js.map +1 -1
  1537. package/dist/lib/generated/Entities/Report/sections/details.component.d.ts +11 -0
  1538. package/dist/lib/generated/Entities/Report/sections/details.component.d.ts.map +1 -0
  1539. package/dist/lib/generated/Entities/Report/sections/details.component.js +325 -0
  1540. package/dist/lib/generated/Entities/Report/sections/details.component.js.map +1 -0
  1541. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.d.ts.map +1 -1
  1542. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js +17 -18
  1543. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js.map +1 -1
  1544. package/dist/lib/generated/Entities/ReportCategory/sections/details.component.d.ts +11 -0
  1545. package/dist/lib/generated/Entities/ReportCategory/sections/details.component.d.ts.map +1 -0
  1546. package/dist/lib/generated/Entities/ReportCategory/sections/details.component.js +138 -0
  1547. package/dist/lib/generated/Entities/ReportCategory/sections/details.component.js.map +1 -0
  1548. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.d.ts.map +1 -1
  1549. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js +3 -3
  1550. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js.map +1 -1
  1551. package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.d.ts +11 -0
  1552. package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.d.ts.map +1 -0
  1553. package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.js +120 -0
  1554. package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.js.map +1 -0
  1555. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.d.ts.map +1 -1
  1556. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js +3 -3
  1557. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js.map +1 -1
  1558. package/dist/lib/generated/Entities/ReportUserState/sections/details.component.d.ts +11 -0
  1559. package/dist/lib/generated/Entities/ReportUserState/sections/details.component.d.ts.map +1 -0
  1560. package/dist/lib/generated/Entities/ReportUserState/sections/details.component.js +120 -0
  1561. package/dist/lib/generated/Entities/ReportUserState/sections/details.component.js.map +1 -0
  1562. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.d.ts.map +1 -1
  1563. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js +3 -3
  1564. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js.map +1 -1
  1565. package/dist/lib/generated/Entities/ReportVersion/sections/details.component.d.ts +11 -0
  1566. package/dist/lib/generated/Entities/ReportVersion/sections/details.component.d.ts.map +1 -0
  1567. package/dist/lib/generated/Entities/ReportVersion/sections/details.component.js +136 -0
  1568. package/dist/lib/generated/Entities/ReportVersion/sections/details.component.js.map +1 -0
  1569. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.d.ts.map +1 -1
  1570. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js +3 -3
  1571. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js.map +1 -1
  1572. package/dist/lib/generated/Entities/ResourceLink/sections/details.component.d.ts +11 -0
  1573. package/dist/lib/generated/Entities/ResourceLink/sections/details.component.d.ts.map +1 -0
  1574. package/dist/lib/generated/Entities/ResourceLink/sections/details.component.js +129 -0
  1575. package/dist/lib/generated/Entities/ResourceLink/sections/details.component.js.map +1 -0
  1576. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.d.ts.map +1 -1
  1577. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js +3 -3
  1578. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js.map +1 -1
  1579. package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.d.ts +11 -0
  1580. package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.d.ts.map +1 -0
  1581. package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.js +185 -0
  1582. package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.js.map +1 -0
  1583. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.d.ts.map +1 -1
  1584. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js +29 -30
  1585. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js.map +1 -1
  1586. package/dist/lib/generated/Entities/ResourceType/sections/details.component.d.ts +11 -0
  1587. package/dist/lib/generated/Entities/ResourceType/sections/details.component.d.ts.map +1 -0
  1588. package/dist/lib/generated/Entities/ResourceType/sections/details.component.js +147 -0
  1589. package/dist/lib/generated/Entities/ResourceType/sections/details.component.js.map +1 -0
  1590. package/dist/lib/generated/Entities/Role/role.form.component.d.ts.map +1 -1
  1591. package/dist/lib/generated/Entities/Role/role.form.component.js +59 -42
  1592. package/dist/lib/generated/Entities/Role/role.form.component.js.map +1 -1
  1593. package/dist/lib/generated/Entities/Role/sections/details.component.d.ts +11 -0
  1594. package/dist/lib/generated/Entities/Role/sections/details.component.d.ts.map +1 -0
  1595. package/dist/lib/generated/Entities/Role/sections/details.component.js +107 -0
  1596. package/dist/lib/generated/Entities/Role/sections/details.component.js.map +1 -0
  1597. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.d.ts.map +1 -1
  1598. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js +11 -12
  1599. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js.map +1 -1
  1600. package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.d.ts +11 -0
  1601. package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.d.ts.map +1 -0
  1602. package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.js +98 -0
  1603. package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.js.map +1 -0
  1604. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.d.ts.map +1 -1
  1605. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js +11 -12
  1606. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js.map +1 -1
  1607. package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.d.ts +11 -0
  1608. package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.d.ts.map +1 -0
  1609. package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.js +210 -0
  1610. package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.js.map +1 -0
  1611. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.d.ts.map +1 -1
  1612. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js +3 -3
  1613. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js.map +1 -1
  1614. package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.d.ts +11 -0
  1615. package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.d.ts.map +1 -0
  1616. package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.js +138 -0
  1617. package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.js.map +1 -0
  1618. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.d.ts.map +1 -1
  1619. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.js +11 -12
  1620. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.js.map +1 -1
  1621. package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.d.ts +11 -0
  1622. package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.d.ts.map +1 -0
  1623. package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.js +329 -0
  1624. package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.js.map +1 -0
  1625. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.d.ts.map +1 -1
  1626. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.js +11 -12
  1627. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.js.map +1 -1
  1628. package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.d.ts +11 -0
  1629. package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.d.ts.map +1 -0
  1630. package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.js +174 -0
  1631. package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.js.map +1 -0
  1632. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.d.ts.map +1 -1
  1633. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.js +11 -12
  1634. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.js.map +1 -1
  1635. package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.d.ts +11 -0
  1636. package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.d.ts.map +1 -0
  1637. package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.js +125 -0
  1638. package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.js.map +1 -0
  1639. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.d.ts.map +1 -1
  1640. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js +3 -3
  1641. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js.map +1 -1
  1642. package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.d.ts +11 -0
  1643. package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.d.ts.map +1 -0
  1644. package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.js +107 -0
  1645. package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.js.map +1 -0
  1646. package/dist/lib/generated/Entities/Skill/sections/details.component.d.ts +11 -0
  1647. package/dist/lib/generated/Entities/Skill/sections/details.component.d.ts.map +1 -0
  1648. package/dist/lib/generated/Entities/Skill/sections/details.component.js +109 -0
  1649. package/dist/lib/generated/Entities/Skill/sections/details.component.js.map +1 -0
  1650. package/dist/lib/generated/Entities/Skill/skill.form.component.d.ts.map +1 -1
  1651. package/dist/lib/generated/Entities/Skill/skill.form.component.js +17 -18
  1652. package/dist/lib/generated/Entities/Skill/skill.form.component.js.map +1 -1
  1653. package/dist/lib/generated/Entities/Tag/sections/details.component.d.ts +11 -0
  1654. package/dist/lib/generated/Entities/Tag/sections/details.component.d.ts.map +1 -0
  1655. package/dist/lib/generated/Entities/Tag/sections/details.component.js +127 -0
  1656. package/dist/lib/generated/Entities/Tag/sections/details.component.js.map +1 -0
  1657. package/dist/lib/generated/Entities/Tag/tag.form.component.d.ts.map +1 -1
  1658. package/dist/lib/generated/Entities/Tag/tag.form.component.js +17 -18
  1659. package/dist/lib/generated/Entities/Tag/tag.form.component.js.map +1 -1
  1660. package/dist/lib/generated/Entities/TaggedItem/sections/details.component.d.ts +11 -0
  1661. package/dist/lib/generated/Entities/TaggedItem/sections/details.component.d.ts.map +1 -0
  1662. package/dist/lib/generated/Entities/TaggedItem/sections/details.component.js +120 -0
  1663. package/dist/lib/generated/Entities/TaggedItem/sections/details.component.js.map +1 -0
  1664. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.d.ts.map +1 -1
  1665. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js +3 -3
  1666. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js.map +1 -1
  1667. package/dist/lib/generated/Entities/Task/sections/details.component.d.ts +11 -0
  1668. package/dist/lib/generated/Entities/Task/sections/details.component.d.ts.map +1 -0
  1669. package/dist/lib/generated/Entities/Task/sections/details.component.js +274 -0
  1670. package/dist/lib/generated/Entities/Task/sections/details.component.js.map +1 -0
  1671. package/dist/lib/generated/Entities/Task/task.form.component.d.ts.map +1 -1
  1672. package/dist/lib/generated/Entities/Task/task.form.component.js +33 -40
  1673. package/dist/lib/generated/Entities/Task/task.form.component.js.map +1 -1
  1674. package/dist/lib/generated/Entities/TaskDependency/sections/details.component.d.ts +11 -0
  1675. package/dist/lib/generated/Entities/TaskDependency/sections/details.component.d.ts.map +1 -0
  1676. package/dist/lib/generated/Entities/TaskDependency/sections/details.component.js +120 -0
  1677. package/dist/lib/generated/Entities/TaskDependency/sections/details.component.js.map +1 -0
  1678. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.d.ts.map +1 -1
  1679. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.js +3 -3
  1680. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.js.map +1 -1
  1681. package/dist/lib/generated/Entities/TaskType/sections/details.component.d.ts +11 -0
  1682. package/dist/lib/generated/Entities/TaskType/sections/details.component.d.ts.map +1 -0
  1683. package/dist/lib/generated/Entities/TaskType/sections/details.component.js +89 -0
  1684. package/dist/lib/generated/Entities/TaskType/sections/details.component.js.map +1 -0
  1685. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.d.ts.map +1 -1
  1686. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.js +11 -12
  1687. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.js.map +1 -1
  1688. package/dist/lib/generated/Entities/Template/sections/details.component.d.ts +11 -0
  1689. package/dist/lib/generated/Entities/Template/sections/details.component.d.ts.map +1 -0
  1690. package/dist/lib/generated/Entities/Template/sections/details.component.js +165 -0
  1691. package/dist/lib/generated/Entities/Template/sections/details.component.js.map +1 -0
  1692. package/dist/lib/generated/Entities/Template/template.form.component.d.ts.map +1 -1
  1693. package/dist/lib/generated/Entities/Template/template.form.component.js +41 -42
  1694. package/dist/lib/generated/Entities/Template/template.form.component.js.map +1 -1
  1695. package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.d.ts +11 -0
  1696. package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.d.ts.map +1 -0
  1697. package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.js +138 -0
  1698. package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.js.map +1 -0
  1699. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.d.ts.map +1 -1
  1700. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js +17 -18
  1701. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js.map +1 -1
  1702. package/dist/lib/generated/Entities/TemplateContent/sections/details.component.d.ts +11 -0
  1703. package/dist/lib/generated/Entities/TemplateContent/sections/details.component.d.ts.map +1 -0
  1704. package/dist/lib/generated/Entities/TemplateContent/sections/details.component.js +138 -0
  1705. package/dist/lib/generated/Entities/TemplateContent/sections/details.component.js.map +1 -0
  1706. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.d.ts.map +1 -1
  1707. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +11 -12
  1708. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
  1709. package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.d.ts +11 -0
  1710. package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.d.ts.map +1 -0
  1711. package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.js +98 -0
  1712. package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.js.map +1 -0
  1713. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.d.ts.map +1 -1
  1714. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js +11 -12
  1715. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js.map +1 -1
  1716. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.d.ts +11 -0
  1717. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.d.ts.map +1 -0
  1718. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.js +212 -0
  1719. package/dist/lib/generated/Entities/TemplateParam/sections/details.component.js.map +1 -0
  1720. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.d.ts.map +1 -1
  1721. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js +12 -18
  1722. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js.map +1 -1
  1723. package/dist/lib/generated/Entities/Test/test.form.component.d.ts.map +1 -1
  1724. package/dist/lib/generated/Entities/Test/test.form.component.js +17 -18
  1725. package/dist/lib/generated/Entities/Test/test.form.component.js.map +1 -1
  1726. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.d.ts.map +1 -1
  1727. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.js +3 -3
  1728. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.js.map +1 -1
  1729. package/dist/lib/generated/Entities/TestRun/testrun.form.component.d.ts.map +1 -1
  1730. package/dist/lib/generated/Entities/TestRun/testrun.form.component.js +35 -36
  1731. package/dist/lib/generated/Entities/TestRun/testrun.form.component.js.map +1 -1
  1732. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.d.ts.map +1 -1
  1733. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js +3 -3
  1734. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js.map +1 -1
  1735. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.d.ts.map +1 -1
  1736. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js +23 -24
  1737. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js.map +1 -1
  1738. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.d.ts.map +1 -1
  1739. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js +11 -12
  1740. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js.map +1 -1
  1741. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.d.ts.map +1 -1
  1742. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.js +3 -3
  1743. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.js.map +1 -1
  1744. package/dist/lib/generated/Entities/TestType/testtype.form.component.d.ts.map +1 -1
  1745. package/dist/lib/generated/Entities/TestType/testtype.form.component.js +17 -18
  1746. package/dist/lib/generated/Entities/TestType/testtype.form.component.js.map +1 -1
  1747. package/dist/lib/generated/Entities/User/sections/details.component.d.ts +11 -0
  1748. package/dist/lib/generated/Entities/User/sections/details.component.d.ts.map +1 -0
  1749. package/dist/lib/generated/Entities/User/sections/details.component.js +247 -0
  1750. package/dist/lib/generated/Entities/User/sections/details.component.js.map +1 -0
  1751. package/dist/lib/generated/Entities/User/user.form.component.d.ts.map +1 -1
  1752. package/dist/lib/generated/Entities/User/user.form.component.js +560 -471
  1753. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  1754. package/dist/lib/generated/Entities/UserApplication/sections/details.component.d.ts +11 -0
  1755. package/dist/lib/generated/Entities/UserApplication/sections/details.component.d.ts.map +1 -0
  1756. package/dist/lib/generated/Entities/UserApplication/sections/details.component.js +129 -0
  1757. package/dist/lib/generated/Entities/UserApplication/sections/details.component.js.map +1 -0
  1758. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.d.ts.map +1 -1
  1759. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js +11 -12
  1760. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js.map +1 -1
  1761. package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.d.ts +11 -0
  1762. package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.d.ts.map +1 -0
  1763. package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.js +129 -0
  1764. package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.js.map +1 -0
  1765. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.d.ts.map +1 -1
  1766. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js +3 -3
  1767. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js.map +1 -1
  1768. package/dist/lib/generated/Entities/UserFavorite/sections/details.component.d.ts +11 -0
  1769. package/dist/lib/generated/Entities/UserFavorite/sections/details.component.d.ts.map +1 -0
  1770. package/dist/lib/generated/Entities/UserFavorite/sections/details.component.js +129 -0
  1771. package/dist/lib/generated/Entities/UserFavorite/sections/details.component.js.map +1 -0
  1772. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.d.ts.map +1 -1
  1773. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js +3 -3
  1774. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js.map +1 -1
  1775. package/dist/lib/generated/Entities/UserNotification/sections/details.component.d.ts +11 -0
  1776. package/dist/lib/generated/Entities/UserNotification/sections/details.component.d.ts.map +1 -0
  1777. package/dist/lib/generated/Entities/UserNotification/sections/details.component.js +165 -0
  1778. package/dist/lib/generated/Entities/UserNotification/sections/details.component.js.map +1 -0
  1779. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.d.ts.map +1 -1
  1780. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js +3 -3
  1781. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js.map +1 -1
  1782. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.d.ts.map +1 -1
  1783. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.js +3 -3
  1784. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.js.map +1 -1
  1785. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.d.ts.map +1 -1
  1786. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.js +17 -18
  1787. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.js.map +1 -1
  1788. package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.d.ts +11 -0
  1789. package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.d.ts.map +1 -0
  1790. package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.js +183 -0
  1791. package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.js.map +1 -0
  1792. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.d.ts.map +1 -1
  1793. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js +3 -3
  1794. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js.map +1 -1
  1795. package/dist/lib/generated/Entities/UserRole/sections/details.component.d.ts +11 -0
  1796. package/dist/lib/generated/Entities/UserRole/sections/details.component.d.ts.map +1 -0
  1797. package/dist/lib/generated/Entities/UserRole/sections/details.component.js +111 -0
  1798. package/dist/lib/generated/Entities/UserRole/sections/details.component.js.map +1 -0
  1799. package/dist/lib/generated/Entities/UserRole/userrole.form.component.d.ts.map +1 -1
  1800. package/dist/lib/generated/Entities/UserRole/userrole.form.component.js +3 -3
  1801. package/dist/lib/generated/Entities/UserRole/userrole.form.component.js.map +1 -1
  1802. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.d.ts.map +1 -1
  1803. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js +3 -3
  1804. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js.map +1 -1
  1805. package/dist/lib/generated/Entities/UserView/sections/details.component.d.ts +11 -0
  1806. package/dist/lib/generated/Entities/UserView/sections/details.component.d.ts.map +1 -0
  1807. package/dist/lib/generated/Entities/UserView/sections/details.component.js +293 -0
  1808. package/dist/lib/generated/Entities/UserView/sections/details.component.js.map +1 -0
  1809. package/dist/lib/generated/Entities/UserView/userview.form.component.d.ts.map +1 -1
  1810. package/dist/lib/generated/Entities/UserView/userview.form.component.js +23 -24
  1811. package/dist/lib/generated/Entities/UserView/userview.form.component.js.map +1 -1
  1812. package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.d.ts +11 -0
  1813. package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.d.ts.map +1 -0
  1814. package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.js +158 -0
  1815. package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.js.map +1 -0
  1816. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.d.ts.map +1 -1
  1817. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js +17 -18
  1818. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js.map +1 -1
  1819. package/dist/lib/generated/Entities/UserViewRun/sections/details.component.d.ts +11 -0
  1820. package/dist/lib/generated/Entities/UserViewRun/sections/details.component.d.ts.map +1 -0
  1821. package/dist/lib/generated/Entities/UserViewRun/sections/details.component.js +120 -0
  1822. package/dist/lib/generated/Entities/UserViewRun/sections/details.component.js.map +1 -0
  1823. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.d.ts.map +1 -1
  1824. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js +11 -12
  1825. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js.map +1 -1
  1826. package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.d.ts +11 -0
  1827. package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.d.ts.map +1 -0
  1828. package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.js +109 -0
  1829. package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.js.map +1 -0
  1830. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.d.ts.map +1 -1
  1831. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js +3 -3
  1832. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js.map +1 -1
  1833. package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.d.ts +11 -0
  1834. package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.d.ts.map +1 -0
  1835. package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.js +107 -0
  1836. package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.js.map +1 -0
  1837. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.d.ts.map +1 -1
  1838. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js +17 -18
  1839. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js.map +1 -1
  1840. package/dist/lib/generated/Entities/VectorIndex/sections/details.component.d.ts +11 -0
  1841. package/dist/lib/generated/Entities/VectorIndex/sections/details.component.d.ts.map +1 -0
  1842. package/dist/lib/generated/Entities/VectorIndex/sections/details.component.js +129 -0
  1843. package/dist/lib/generated/Entities/VectorIndex/sections/details.component.js.map +1 -0
  1844. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.d.ts.map +1 -1
  1845. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js +11 -12
  1846. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js.map +1 -1
  1847. package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.d.ts +11 -0
  1848. package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.d.ts.map +1 -0
  1849. package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.js +152 -0
  1850. package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.js.map +1 -0
  1851. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.d.ts.map +1 -1
  1852. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js +3 -3
  1853. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js.map +1 -1
  1854. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.d.ts +11 -0
  1855. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.d.ts.map +1 -0
  1856. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.js +167 -0
  1857. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.js.map +1 -0
  1858. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.d.ts +11 -0
  1859. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.d.ts.map +1 -0
  1860. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.js +73 -0
  1861. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.js.map +1 -0
  1862. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.d.ts +11 -0
  1863. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.d.ts.map +1 -0
  1864. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.js +85 -0
  1865. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.js.map +1 -0
  1866. package/dist/lib/generated/Entities/Workflow/sections/details.component.d.ts +11 -0
  1867. package/dist/lib/generated/Entities/Workflow/sections/details.component.d.ts.map +1 -0
  1868. package/dist/lib/generated/Entities/Workflow/sections/details.component.js +154 -0
  1869. package/dist/lib/generated/Entities/Workflow/sections/details.component.js.map +1 -0
  1870. package/dist/lib/generated/Entities/Workflow/workflow.form.component.d.ts.map +1 -1
  1871. package/dist/lib/generated/Entities/Workflow/workflow.form.component.js +17 -18
  1872. package/dist/lib/generated/Entities/Workflow/workflow.form.component.js.map +1 -1
  1873. package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.d.ts +11 -0
  1874. package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.d.ts.map +1 -0
  1875. package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.js +107 -0
  1876. package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.js.map +1 -0
  1877. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.d.ts.map +1 -1
  1878. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js +11 -12
  1879. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js.map +1 -1
  1880. package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.d.ts +11 -0
  1881. package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.d.ts.map +1 -0
  1882. package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.js +145 -0
  1883. package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.js.map +1 -0
  1884. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.d.ts.map +1 -1
  1885. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js +3 -3
  1886. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js.map +1 -1
  1887. package/dist/lib/generated/Entities/Workspace/sections/details.component.d.ts +11 -0
  1888. package/dist/lib/generated/Entities/Workspace/sections/details.component.d.ts.map +1 -0
  1889. package/dist/lib/generated/Entities/Workspace/sections/details.component.js +109 -0
  1890. package/dist/lib/generated/Entities/Workspace/sections/details.component.js.map +1 -0
  1891. package/dist/lib/generated/Entities/Workspace/workspace.form.component.d.ts.map +1 -1
  1892. package/dist/lib/generated/Entities/Workspace/workspace.form.component.js +11 -12
  1893. package/dist/lib/generated/Entities/Workspace/workspace.form.component.js.map +1 -1
  1894. package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.d.ts +11 -0
  1895. package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.d.ts.map +1 -0
  1896. package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.js +156 -0
  1897. package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.js.map +1 -0
  1898. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.d.ts.map +1 -1
  1899. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js +3 -3
  1900. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js.map +1 -1
  1901. package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.d.ts +11 -0
  1902. package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.d.ts.map +1 -0
  1903. package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.js +67 -0
  1904. package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.js.map +1 -0
  1905. package/dist/lib/generated/generated-forms.module.d.ts +104 -86
  1906. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  1907. package/dist/lib/generated/generated-forms.module.js +188 -79
  1908. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  1909. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  1910. package/dist/lib/shared/components/template-editor.component.js +167 -164
  1911. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  1912. package/dist/public-api.d.ts +0 -1
  1913. package/dist/public-api.d.ts.map +1 -1
  1914. package/dist/public-api.js +2 -1
  1915. package/dist/public-api.js.map +1 -1
  1916. package/package.json +54 -52
@@ -18,33 +18,31 @@ import * as i0 from "@angular/core";
18
18
  import * as i1 from "@memberjunction/ng-shared";
19
19
  import * as i2 from "@angular/router";
20
20
  import * as i3 from "@memberjunction/ng-testing";
21
- import * as i4 from "@angular/common";
22
- import * as i5 from "@angular/forms";
23
- import * as i6 from "@progress/kendo-angular-dialog";
24
- import * as i7 from "@progress/kendo-angular-buttons";
25
- import * as i8 from "./entity-link-pill.component";
21
+ import * as i4 from "@memberjunction/ng-base-application";
22
+ import * as i5 from "@angular/common";
23
+ import * as i6 from "@angular/forms";
24
+ import * as i7 from "@progress/kendo-angular-dialog";
25
+ import * as i8 from "@progress/kendo-angular-buttons";
26
+ import * as i9 from "./entity-link-pill.component";
26
27
  const _c0 = () => [1, 2, 3, 4, 5];
27
28
  const _c1 = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
28
- function TestSuiteRunFormComponentExtended_div_2_Template(rf, ctx) { if (rf & 1) {
29
+ function TestSuiteRunFormComponentExtended_Conditional_9_Template(rf, ctx) { if (rf & 1) {
29
30
  const _r1 = i0.ɵɵgetCurrentView();
30
- i0.ɵɵelementStart(0, "div", 61)(1, "a", 62);
31
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openTestSuite()); });
32
- i0.ɵɵelement(2, "i", 63);
33
- i0.ɵɵtext(3);
34
- i0.ɵɵelementEnd();
35
- i0.ɵɵelement(4, "i", 64);
36
- i0.ɵɵelementStart(5, "span", 65);
37
- i0.ɵɵtext(6);
38
- i0.ɵɵelementEnd()();
31
+ i0.ɵɵelementStart(0, "li");
32
+ i0.ɵɵelement(1, "i", 7);
33
+ i0.ɵɵelementStart(2, "a", 3);
34
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_9_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openTestSuite()); });
35
+ i0.ɵɵelement(3, "i", 66);
36
+ i0.ɵɵelementStart(4, "span", 5);
37
+ i0.ɵɵtext(5);
38
+ i0.ɵɵelementEnd()()();
39
39
  } if (rf & 2) {
40
40
  const ctx_r1 = i0.ɵɵnextContext();
41
- i0.ɵɵadvance(3);
42
- i0.ɵɵtextInterpolate1(" ", ctx_r1.testSuite.Name, " ");
43
- i0.ɵɵadvance(3);
44
- i0.ɵɵtextInterpolate1("Run #", ctx_r1.record.ID.substring(0, 8), "");
41
+ i0.ɵɵadvance(5);
42
+ i0.ɵɵtextInterpolate(ctx_r1.testSuite.Name);
45
43
  } }
46
- function TestSuiteRunFormComponentExtended_span_14_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelementStart(0, "span", 66);
44
+ function TestSuiteRunFormComponentExtended_Conditional_25_Template(rf, ctx) { if (rf & 1) {
45
+ i0.ɵɵelementStart(0, "span", 15);
48
46
  i0.ɵɵelement(1, "i", 67);
49
47
  i0.ɵɵtext(2);
50
48
  i0.ɵɵelementEnd();
@@ -53,9 +51,9 @@ function TestSuiteRunFormComponentExtended_span_14_Template(rf, ctx) { if (rf &
53
51
  i0.ɵɵadvance(2);
54
52
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Environment, " ");
55
53
  } }
56
- function TestSuiteRunFormComponentExtended_span_15_Template(rf, ctx) { if (rf & 1) {
57
- i0.ɵɵelementStart(0, "span", 68);
58
- i0.ɵɵelement(1, "i", 69);
54
+ function TestSuiteRunFormComponentExtended_Conditional_26_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelementStart(0, "span", 16);
56
+ i0.ɵɵelement(1, "i", 68);
59
57
  i0.ɵɵtext(2);
60
58
  i0.ɵɵelementEnd();
61
59
  } if (rf & 2) {
@@ -63,16 +61,16 @@ function TestSuiteRunFormComponentExtended_span_15_Template(rf, ctx) { if (rf &
63
61
  i0.ɵɵadvance(2);
64
62
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.TriggerType, " ");
65
63
  } }
66
- function TestSuiteRunFormComponentExtended_button_18_Template(rf, ctx) { if (rf & 1) {
64
+ function TestSuiteRunFormComponentExtended_Conditional_29_Template(rf, ctx) { if (rf & 1) {
67
65
  const _r3 = i0.ɵɵgetCurrentView();
68
- i0.ɵɵelementStart(0, "button", 70);
69
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_button_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.reRunSuite()); });
70
- i0.ɵɵelement(1, "i", 71);
66
+ i0.ɵɵelementStart(0, "button", 69);
67
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_29_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.reRunSuite()); });
68
+ i0.ɵɵelement(1, "i", 70);
71
69
  i0.ɵɵtext(2, " Re-run Suite ");
72
70
  i0.ɵɵelementEnd();
73
71
  } }
74
- function TestSuiteRunFormComponentExtended_div_96_div_4_span_1_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelementStart(0, "span", 82);
72
+ function TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "span", 78);
76
74
  i0.ɵɵtext(1);
77
75
  i0.ɵɵelementEnd();
78
76
  } if (rf & 2) {
@@ -80,91 +78,93 @@ function TestSuiteRunFormComponentExtended_div_96_div_4_span_1_Template(rf, ctx)
80
78
  i0.ɵɵadvance();
81
79
  i0.ɵɵtextInterpolate(tag_r5);
82
80
  } }
83
- function TestSuiteRunFormComponentExtended_div_96_div_4_Template(rf, ctx) { if (rf & 1) {
84
- i0.ɵɵelementStart(0, "div", 80);
85
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_96_div_4_span_1_Template, 2, 1, "span", 81);
81
+ function TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_Template(rf, ctx) { if (rf & 1) {
82
+ i0.ɵɵelementStart(0, "div", 74);
83
+ i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_For_2_Template, 2, 1, "span", 78, i0.ɵɵrepeaterTrackByIdentity);
86
84
  i0.ɵɵelementEnd();
87
85
  } if (rf & 2) {
88
86
  const ctx_r1 = i0.ɵɵnextContext(2);
89
87
  i0.ɵɵadvance();
90
- i0.ɵɵproperty("ngForOf", ctx_r1.tags);
88
+ i0.ɵɵrepeater(ctx_r1.tags);
91
89
  } }
92
- function TestSuiteRunFormComponentExtended_div_96_span_5_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵelementStart(0, "span", 83);
90
+ function TestSuiteRunFormComponentExtended_Conditional_107_Conditional_5_Template(rf, ctx) { if (rf & 1) {
91
+ i0.ɵɵelementStart(0, "span", 75);
94
92
  i0.ɵɵtext(1, "No tags");
95
93
  i0.ɵɵelementEnd();
96
94
  } }
97
- function TestSuiteRunFormComponentExtended_div_96_Template(rf, ctx) { if (rf & 1) {
95
+ function TestSuiteRunFormComponentExtended_Conditional_107_Template(rf, ctx) { if (rf & 1) {
98
96
  const _r4 = i0.ɵɵgetCurrentView();
99
- i0.ɵɵelementStart(0, "div", 72)(1, "div", 73)(2, "span", 74);
100
- i0.ɵɵelement(3, "i", 75);
101
- i0.ɵɵelementEnd();
102
- i0.ɵɵtemplate(4, TestSuiteRunFormComponentExtended_div_96_div_4_Template, 2, 1, "div", 76)(5, TestSuiteRunFormComponentExtended_div_96_span_5_Template, 2, 0, "span", 77);
103
- i0.ɵɵelementStart(6, "button", 78);
104
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_96_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.startEditingTags()); });
105
- i0.ɵɵelement(7, "i", 79);
97
+ i0.ɵɵelementStart(0, "div", 45)(1, "div", 71)(2, "span", 72);
98
+ i0.ɵɵelement(3, "i", 73);
99
+ i0.ɵɵelementEnd();
100
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_Template, 3, 0, "div", 74);
101
+ i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_107_Conditional_5_Template, 2, 0, "span", 75);
102
+ i0.ɵɵelementStart(6, "button", 76);
103
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_107_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.startEditingTags()); });
104
+ i0.ɵɵelement(7, "i", 77);
106
105
  i0.ɵɵtext(8, " Add ");
107
106
  i0.ɵɵelementEnd()()();
108
107
  } if (rf & 2) {
109
108
  const ctx_r1 = i0.ɵɵnextContext();
110
109
  i0.ɵɵadvance(4);
111
- i0.ɵɵproperty("ngIf", ctx_r1.tags.length > 0);
110
+ i0.ɵɵconditional(ctx_r1.tags.length > 0 ? 4 : -1);
112
111
  i0.ɵɵadvance();
113
- i0.ɵɵproperty("ngIf", ctx_r1.tags.length === 0);
112
+ i0.ɵɵconditional(ctx_r1.tags.length === 0 ? 5 : -1);
114
113
  } }
115
- function TestSuiteRunFormComponentExtended_div_97_span_7_Template(rf, ctx) { if (rf & 1) {
114
+ function TestSuiteRunFormComponentExtended_Conditional_108_For_8_Template(rf, ctx) { if (rf & 1) {
116
115
  const _r7 = i0.ɵɵgetCurrentView();
117
- i0.ɵɵelementStart(0, "span", 98);
116
+ i0.ɵɵelementStart(0, "span", 83);
118
117
  i0.ɵɵtext(1);
119
- i0.ɵɵelementStart(2, "button", 99);
120
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_97_span_7_Template_button_click_2_listener() { const tag_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.removeTag(tag_r8)); });
121
- i0.ɵɵelement(3, "i", 100);
118
+ i0.ɵɵelementStart(2, "button", 92);
119
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_For_8_Template_button_click_2_listener() { const tag_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.removeTag(tag_r8)); });
120
+ i0.ɵɵelement(3, "i", 93);
122
121
  i0.ɵɵelementEnd()();
123
122
  } if (rf & 2) {
124
123
  const tag_r8 = ctx.$implicit;
125
124
  i0.ɵɵadvance();
126
125
  i0.ɵɵtextInterpolate1(" ", tag_r8, " ");
127
126
  } }
128
- function TestSuiteRunFormComponentExtended_div_97_span_8_Template(rf, ctx) { if (rf & 1) {
129
- i0.ɵɵelementStart(0, "span", 101);
127
+ function TestSuiteRunFormComponentExtended_Conditional_108_Conditional_9_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵelementStart(0, "span", 84);
130
129
  i0.ɵɵtext(1, "No tags yet");
131
130
  i0.ɵɵelementEnd();
132
131
  } }
133
- function TestSuiteRunFormComponentExtended_div_97_i_15_Template(rf, ctx) { if (rf & 1) {
134
- i0.ɵɵelement(0, "i", 102);
132
+ function TestSuiteRunFormComponentExtended_Conditional_108_Conditional_16_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵelement(0, "i", 90);
135
134
  } }
136
- function TestSuiteRunFormComponentExtended_div_97_Template(rf, ctx) { if (rf & 1) {
135
+ function TestSuiteRunFormComponentExtended_Conditional_108_Template(rf, ctx) { if (rf & 1) {
137
136
  const _r6 = i0.ɵɵgetCurrentView();
138
- i0.ɵɵelementStart(0, "div", 84)(1, "div", 85)(2, "span", 86);
139
- i0.ɵɵelement(3, "i", 75);
137
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 79)(2, "span", 80);
138
+ i0.ɵɵelement(3, "i", 73);
140
139
  i0.ɵɵtext(4, " Edit Tags");
141
140
  i0.ɵɵelementEnd()();
142
- i0.ɵɵelementStart(5, "div", 87)(6, "div", 88);
143
- i0.ɵɵtemplate(7, TestSuiteRunFormComponentExtended_div_97_span_7_Template, 4, 1, "span", 89)(8, TestSuiteRunFormComponentExtended_div_97_span_8_Template, 2, 0, "span", 90);
141
+ i0.ɵɵelementStart(5, "div", 81)(6, "div", 82);
142
+ i0.ɵɵrepeaterCreate(7, TestSuiteRunFormComponentExtended_Conditional_108_For_8_Template, 4, 1, "span", 83, i0.ɵɵrepeaterTrackByIdentity);
143
+ i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_108_Conditional_9_Template, 2, 0, "span", 84);
144
144
  i0.ɵɵelementEnd();
145
- i0.ɵɵelementStart(9, "div", 91)(10, "input", 92);
146
- i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_div_97_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newTag, $event) || (ctx_r1.newTag = $event); return i0.ɵɵresetView($event); });
147
- i0.ɵɵlistener("keyup.enter", function TestSuiteRunFormComponentExtended_div_97_Template_input_keyup_enter_10_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
145
+ i0.ɵɵelementStart(10, "div", 85)(11, "input", 86);
146
+ i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_108_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newTag, $event) || (ctx_r1.newTag = $event); return i0.ɵɵresetView($event); });
147
+ i0.ɵɵlistener("keyup.enter", function TestSuiteRunFormComponentExtended_Conditional_108_Template_input_keyup_enter_11_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
148
148
  i0.ɵɵelementEnd();
149
- i0.ɵɵelementStart(11, "button", 93);
150
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_97_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
151
- i0.ɵɵelement(12, "i", 79);
149
+ i0.ɵɵelementStart(12, "button", 87);
150
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
151
+ i0.ɵɵelement(13, "i", 77);
152
152
  i0.ɵɵelementEnd()()();
153
- i0.ɵɵelementStart(13, "div", 94)(14, "button", 95);
154
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_97_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveTags()); });
155
- i0.ɵɵtemplate(15, TestSuiteRunFormComponentExtended_div_97_i_15_Template, 1, 0, "i", 96);
156
- i0.ɵɵtext(16);
157
- i0.ɵɵelementEnd();
158
- i0.ɵɵelementStart(17, "button", 97);
159
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_97_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelEditingTags()); });
160
- i0.ɵɵtext(18, "Cancel");
153
+ i0.ɵɵelementStart(14, "div", 88)(15, "button", 89);
154
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveTags()); });
155
+ i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_108_Conditional_16_Template, 1, 0, "i", 90);
156
+ i0.ɵɵtext(17);
157
+ i0.ɵɵelementEnd();
158
+ i0.ɵɵelementStart(18, "button", 91);
159
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelEditingTags()); });
160
+ i0.ɵɵtext(19, "Cancel");
161
161
  i0.ɵɵelementEnd()()();
162
162
  } if (rf & 2) {
163
163
  const ctx_r1 = i0.ɵɵnextContext();
164
164
  i0.ɵɵadvance(7);
165
- i0.ɵɵproperty("ngForOf", ctx_r1.tags);
166
- i0.ɵɵadvance();
167
- i0.ɵɵproperty("ngIf", ctx_r1.tags.length === 0);
165
+ i0.ɵɵrepeater(ctx_r1.tags);
166
+ i0.ɵɵadvance(2);
167
+ i0.ɵɵconditional(ctx_r1.tags.length === 0 ? 9 : -1);
168
168
  i0.ɵɵadvance(2);
169
169
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.newTag);
170
170
  i0.ɵɵadvance();
@@ -172,12 +172,12 @@ function TestSuiteRunFormComponentExtended_div_97_Template(rf, ctx) { if (rf & 1
172
172
  i0.ɵɵadvance(3);
173
173
  i0.ɵɵproperty("disabled", ctx_r1.savingTags);
174
174
  i0.ɵɵadvance();
175
- i0.ɵɵproperty("ngIf", ctx_r1.savingTags);
175
+ i0.ɵɵconditional(ctx_r1.savingTags ? 16 : -1);
176
176
  i0.ɵɵadvance();
177
177
  i0.ɵɵtextInterpolate1(" ", ctx_r1.savingTags ? "Saving..." : "Save", " ");
178
178
  } }
179
- function TestSuiteRunFormComponentExtended_span_106_Template(rf, ctx) { if (rf & 1) {
180
- i0.ɵɵelementStart(0, "span", 103);
179
+ function TestSuiteRunFormComponentExtended_Conditional_117_Template(rf, ctx) { if (rf & 1) {
180
+ i0.ɵɵelementStart(0, "span", 51);
181
181
  i0.ɵɵtext(1);
182
182
  i0.ɵɵelementEnd();
183
183
  } if (rf & 2) {
@@ -185,11 +185,11 @@ function TestSuiteRunFormComponentExtended_span_106_Template(rf, ctx) { if (rf &
185
185
  i0.ɵɵadvance();
186
186
  i0.ɵɵtextInterpolate(ctx_r1.testRuns.length);
187
187
  } }
188
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_11_Template(rf, ctx) { if (rf & 1) {
189
- i0.ɵɵelementStart(0, "div", 123)(1, "span", 124);
188
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
189
+ i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
190
190
  i0.ɵɵtext(2, "Avg Rating");
191
191
  i0.ɵɵelementEnd();
192
- i0.ɵɵelementStart(3, "span", 125);
192
+ i0.ɵɵelementStart(3, "span", 112);
193
193
  i0.ɵɵtext(4);
194
194
  i0.ɵɵelementEnd()();
195
195
  } if (rf & 2) {
@@ -197,8 +197,8 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_11_Template(
197
197
  i0.ɵɵadvance(4);
198
198
  i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.humanAvgRating.toFixed(1), "/10");
199
199
  } }
200
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_12_span_5_Template(rf, ctx) { if (rf & 1) {
201
- i0.ɵɵelementStart(0, "span", 130);
200
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
201
+ i0.ɵɵelementStart(0, "span", 115);
202
202
  i0.ɵɵtext(1);
203
203
  i0.ɵɵelementEnd();
204
204
  } if (rf & 2) {
@@ -206,25 +206,25 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_12_span_5_Te
206
206
  i0.ɵɵadvance();
207
207
  i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.humanIncorrectCount, " incorrect");
208
208
  } }
209
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_12_Template(rf, ctx) { if (rf & 1) {
210
- i0.ɵɵelementStart(0, "div", 123)(1, "span", 124);
209
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
211
211
  i0.ɵɵtext(2, "Correct");
212
212
  i0.ɵɵelementEnd();
213
- i0.ɵɵelementStart(3, "span", 128);
213
+ i0.ɵɵelementStart(3, "span", 114);
214
214
  i0.ɵɵtext(4);
215
215
  i0.ɵɵelementEnd();
216
- i0.ɵɵtemplate(5, TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_12_span_5_Template, 2, 1, "span", 129);
216
+ i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Conditional_5_Template, 2, 1, "span", 115);
217
217
  i0.ɵɵelementEnd();
218
218
  } if (rf & 2) {
219
219
  const ctx_r1 = i0.ɵɵnextContext(4);
220
220
  i0.ɵɵadvance(4);
221
221
  i0.ɵɵtextInterpolate(ctx_r1.evaluationMetrics.humanCorrectCount);
222
222
  i0.ɵɵadvance();
223
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.humanIncorrectCount > 0);
223
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanIncorrectCount > 0 ? 5 : -1);
224
224
  } }
225
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_13_Template(rf, ctx) { if (rf & 1) {
226
- i0.ɵɵelementStart(0, "div", 131)(1, "span", 132);
227
- i0.ɵɵelement(2, "i", 133);
225
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
226
+ i0.ɵɵelementStart(0, "div", 113)(1, "span", 116);
227
+ i0.ɵɵelement(2, "i", 117);
228
228
  i0.ɵɵtext(3);
229
229
  i0.ɵɵelementEnd()();
230
230
  } if (rf & 2) {
@@ -232,38 +232,39 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_13_Template(
232
232
  i0.ɵɵadvance(3);
233
233
  i0.ɵɵtextInterpolate1(" ", ctx_r1.evaluationMetrics.humanPendingCount, " need review ");
234
234
  } }
235
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_Template(rf, ctx) { if (rf & 1) {
236
- i0.ɵɵelementStart(0, "div", 119)(1, "div", 120);
237
- i0.ɵɵelement(2, "i", 121);
235
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
236
+ i0.ɵɵelementStart(0, "div", 106)(1, "div", 107);
237
+ i0.ɵɵelement(2, "i", 108);
238
238
  i0.ɵɵelementStart(3, "span");
239
239
  i0.ɵɵtext(4, "Human Feedback");
240
240
  i0.ɵɵelementEnd()();
241
- i0.ɵɵelementStart(5, "div", 122)(6, "div", 123)(7, "span", 124);
241
+ i0.ɵɵelementStart(5, "div", 109)(6, "div", 110)(7, "span", 111);
242
242
  i0.ɵɵtext(8, "Reviewed");
243
243
  i0.ɵɵelementEnd();
244
- i0.ɵɵelementStart(9, "span", 125);
244
+ i0.ɵɵelementStart(9, "span", 112);
245
245
  i0.ɵɵtext(10);
246
246
  i0.ɵɵelementEnd()();
247
- i0.ɵɵtemplate(11, TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_11_Template, 5, 1, "div", 126)(12, TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_12_Template, 6, 2, "div", 126);
247
+ i0.ɵɵconditionalCreate(11, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_11_Template, 5, 1, "div", 110);
248
+ i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Template, 6, 2, "div", 110);
248
249
  i0.ɵɵelementEnd();
249
- i0.ɵɵtemplate(13, TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_13_Template, 4, 1, "div", 127);
250
+ i0.ɵɵconditionalCreate(13, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_13_Template, 4, 1, "div", 113);
250
251
  i0.ɵɵelementEnd();
251
252
  } if (rf & 2) {
252
253
  const ctx_r1 = i0.ɵɵnextContext(3);
253
254
  i0.ɵɵadvance(10);
254
- i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.humanReviewedCount, " / ", ctx_r1.evaluationMetrics.totalRuns, "");
255
+ i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.humanReviewedCount, " / ", ctx_r1.evaluationMetrics.totalRuns);
255
256
  i0.ɵɵadvance();
256
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.humanReviewedCount > 0);
257
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanReviewedCount > 0 ? 11 : -1);
257
258
  i0.ɵɵadvance();
258
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.humanReviewedCount > 0);
259
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanReviewedCount > 0 ? 12 : -1);
259
260
  i0.ɵɵadvance();
260
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.humanPendingCount > 0);
261
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanPendingCount > 0 ? 13 : -1);
261
262
  } }
262
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_11_Template(rf, ctx) { if (rf & 1) {
263
- i0.ɵɵelementStart(0, "div", 123)(1, "span", 124);
263
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_11_Template(rf, ctx) { if (rf & 1) {
264
+ i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
264
265
  i0.ɵɵtext(2, "Avg Score");
265
266
  i0.ɵɵelementEnd();
266
- i0.ɵɵelementStart(3, "span", 125);
267
+ i0.ɵɵelementStart(3, "span", 112);
267
268
  i0.ɵɵtext(4);
268
269
  i0.ɵɵelementEnd()();
269
270
  } if (rf & 2) {
@@ -271,11 +272,11 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_11_Template(
271
272
  i0.ɵɵadvance(4);
272
273
  i0.ɵɵtextInterpolate1("", (ctx_r1.evaluationMetrics.autoAvgScore * 100).toFixed(0), "%");
273
274
  } }
274
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_12_Template(rf, ctx) { if (rf & 1) {
275
- i0.ɵɵelementStart(0, "div", 123)(1, "span", 124);
275
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_12_Template(rf, ctx) { if (rf & 1) {
276
+ i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
276
277
  i0.ɵɵtext(2, "Pass Rate");
277
278
  i0.ɵɵelementEnd();
278
- i0.ɵɵelementStart(3, "span", 125);
279
+ i0.ɵɵelementStart(3, "span", 112);
279
280
  i0.ɵɵtext(4);
280
281
  i0.ɵɵelementEnd()();
281
282
  } if (rf & 2) {
@@ -283,31 +284,32 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_12_Template(
283
284
  i0.ɵɵadvance(4);
284
285
  i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.autoPassRate.toFixed(0), "%");
285
286
  } }
286
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_Template(rf, ctx) { if (rf & 1) {
287
- i0.ɵɵelementStart(0, "div", 119)(1, "div", 120);
288
- i0.ɵɵelement(2, "i", 134);
287
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
288
+ i0.ɵɵelementStart(0, "div", 106)(1, "div", 107);
289
+ i0.ɵɵelement(2, "i", 118);
289
290
  i0.ɵɵelementStart(3, "span");
290
291
  i0.ɵɵtext(4, "Auto Evaluation");
291
292
  i0.ɵɵelementEnd()();
292
- i0.ɵɵelementStart(5, "div", 122)(6, "div", 123)(7, "span", 124);
293
+ i0.ɵɵelementStart(5, "div", 109)(6, "div", 110)(7, "span", 111);
293
294
  i0.ɵɵtext(8, "Evaluated");
294
295
  i0.ɵɵelementEnd();
295
- i0.ɵɵelementStart(9, "span", 125);
296
+ i0.ɵɵelementStart(9, "span", 112);
296
297
  i0.ɵɵtext(10);
297
298
  i0.ɵɵelementEnd()();
298
- i0.ɵɵtemplate(11, TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_11_Template, 5, 1, "div", 126)(12, TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_12_Template, 5, 1, "div", 126);
299
+ i0.ɵɵconditionalCreate(11, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_11_Template, 5, 1, "div", 110);
300
+ i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_12_Template, 5, 1, "div", 110);
299
301
  i0.ɵɵelementEnd()();
300
302
  } if (rf & 2) {
301
303
  const ctx_r1 = i0.ɵɵnextContext(3);
302
304
  i0.ɵɵadvance(10);
303
- i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.autoEvaluatedCount, " / ", ctx_r1.evaluationMetrics.totalRuns, "");
305
+ i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.autoEvaluatedCount, " / ", ctx_r1.evaluationMetrics.totalRuns);
304
306
  i0.ɵɵadvance();
305
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.autoEvaluatedCount > 0);
307
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.autoEvaluatedCount > 0 ? 11 : -1);
306
308
  i0.ɵɵadvance();
307
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.autoEvaluatedCount > 0);
309
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.autoEvaluatedCount > 0 ? 12 : -1);
308
310
  } }
309
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_3_Template(rf, ctx) { if (rf & 1) {
310
- i0.ɵɵelementStart(0, "span", 138);
311
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
312
+ i0.ɵɵelementStart(0, "span", 120);
311
313
  i0.ɵɵtext(1);
312
314
  i0.ɵɵelementEnd();
313
315
  } if (rf & 2) {
@@ -315,8 +317,8 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_3_Te
315
317
  i0.ɵɵadvance();
316
318
  i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.execErrorCount, " errors");
317
319
  } }
318
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_4_Template(rf, ctx) { if (rf & 1) {
319
- i0.ɵɵelementStart(0, "span", 139);
320
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_4_Template(rf, ctx) { if (rf & 1) {
321
+ i0.ɵɵelementStart(0, "span", 121);
320
322
  i0.ɵɵtext(1);
321
323
  i0.ɵɵelementEnd();
322
324
  } if (rf & 2) {
@@ -324,104 +326,109 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_4_Te
324
326
  i0.ɵɵadvance();
325
327
  i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.execTimeoutCount, " timeouts");
326
328
  } }
327
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_Template(rf, ctx) { if (rf & 1) {
328
- i0.ɵɵelementStart(0, "div", 123)(1, "span", 124);
329
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Template(rf, ctx) { if (rf & 1) {
330
+ i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
329
331
  i0.ɵɵtext(2, "Issues");
330
332
  i0.ɵɵelementEnd();
331
- i0.ɵɵtemplate(3, TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_3_Template, 2, 1, "span", 136)(4, TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_4_Template, 2, 1, "span", 137);
333
+ i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_3_Template, 2, 1, "span", 120);
334
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_4_Template, 2, 1, "span", 121);
332
335
  i0.ɵɵelementEnd();
333
336
  } if (rf & 2) {
334
337
  const ctx_r1 = i0.ɵɵnextContext(4);
335
338
  i0.ɵɵadvance(3);
336
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.execErrorCount > 0);
339
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.execErrorCount > 0 ? 3 : -1);
337
340
  i0.ɵɵadvance();
338
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.execTimeoutCount > 0);
341
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.execTimeoutCount > 0 ? 4 : -1);
339
342
  } }
340
- function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_Template(rf, ctx) { if (rf & 1) {
341
- i0.ɵɵelementStart(0, "div", 119)(1, "div", 120);
342
- i0.ɵɵelement(2, "i", 135);
343
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Template(rf, ctx) { if (rf & 1) {
344
+ i0.ɵɵelementStart(0, "div", 106)(1, "div", 107);
345
+ i0.ɵɵelement(2, "i", 119);
343
346
  i0.ɵɵelementStart(3, "span");
344
347
  i0.ɵɵtext(4, "Execution");
345
348
  i0.ɵɵelementEnd()();
346
- i0.ɵɵelementStart(5, "div", 122)(6, "div", 123)(7, "span", 124);
349
+ i0.ɵɵelementStart(5, "div", 109)(6, "div", 110)(7, "span", 111);
347
350
  i0.ɵɵtext(8, "Completed");
348
351
  i0.ɵɵelementEnd();
349
- i0.ɵɵelementStart(9, "span", 125);
352
+ i0.ɵɵelementStart(9, "span", 112);
350
353
  i0.ɵɵtext(10);
351
354
  i0.ɵɵelementEnd()();
352
- i0.ɵɵelementStart(11, "div", 123)(12, "span", 124);
355
+ i0.ɵɵelementStart(11, "div", 110)(12, "span", 111);
353
356
  i0.ɵɵtext(13, "Success Rate");
354
357
  i0.ɵɵelementEnd();
355
- i0.ɵɵelementStart(14, "span", 125);
358
+ i0.ɵɵelementStart(14, "span", 112);
356
359
  i0.ɵɵtext(15);
357
360
  i0.ɵɵelementEnd()();
358
- i0.ɵɵtemplate(16, TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_Template, 5, 2, "div", 126);
361
+ i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Template, 5, 2, "div", 110);
359
362
  i0.ɵɵelementEnd()();
360
363
  } if (rf & 2) {
361
364
  const ctx_r1 = i0.ɵɵnextContext(3);
362
365
  i0.ɵɵadvance(10);
363
- i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.execCompletedCount, " / ", ctx_r1.evaluationMetrics.totalRuns, "");
366
+ i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.execCompletedCount, " / ", ctx_r1.evaluationMetrics.totalRuns);
364
367
  i0.ɵɵadvance(5);
365
368
  i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.execSuccessRate.toFixed(0), "%");
366
369
  i0.ɵɵadvance();
367
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics.execErrorCount > 0 || ctx_r1.evaluationMetrics.execTimeoutCount > 0);
370
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics.execErrorCount > 0 || ctx_r1.evaluationMetrics.execTimeoutCount > 0 ? 16 : -1);
368
371
  } }
369
- function TestSuiteRunFormComponentExtended_div_118_div_19_Template(rf, ctx) { if (rf & 1) {
370
- i0.ɵɵelementStart(0, "div", 116)(1, "div", 117);
371
- i0.ɵɵtemplate(2, TestSuiteRunFormComponentExtended_div_118_div_19_div_2_Template, 14, 5, "div", 118)(3, TestSuiteRunFormComponentExtended_div_118_div_19_div_3_Template, 13, 4, "div", 118)(4, TestSuiteRunFormComponentExtended_div_118_div_19_div_4_Template, 17, 4, "div", 118);
372
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Template(rf, ctx) { if (rf & 1) {
373
+ i0.ɵɵelementStart(0, "div", 102)(1, "div", 105);
374
+ i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Template, 14, 5, "div", 106);
375
+ i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Template, 13, 4, "div", 106);
376
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Template, 17, 4, "div", 106);
372
377
  i0.ɵɵelementEnd()();
373
378
  } if (rf & 2) {
374
379
  const ctx_r1 = i0.ɵɵnextContext(2);
375
380
  i0.ɵɵadvance(2);
376
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showHuman);
381
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman ? 2 : -1);
377
382
  i0.ɵɵadvance();
378
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showAuto);
383
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showAuto ? 3 : -1);
379
384
  i0.ɵɵadvance();
380
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showExecution);
385
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showExecution ? 4 : -1);
381
386
  } }
382
- function TestSuiteRunFormComponentExtended_div_118_div_20_div_8_i_2_Template(rf, ctx) { if (rf & 1) {
383
- i0.ɵɵelement(0, "i", 157);
387
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
388
+ i0.ɵɵelement(0, "i", 130);
384
389
  } }
385
- function TestSuiteRunFormComponentExtended_div_118_div_20_div_8_i_3_Template(rf, ctx) { if (rf & 1) {
386
- i0.ɵɵelement(0, "i", 158);
390
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
391
+ i0.ɵɵelement(0, "i", 131);
387
392
  } }
388
- function TestSuiteRunFormComponentExtended_div_118_div_20_div_8_i_4_Template(rf, ctx) { if (rf & 1) {
389
- i0.ɵɵelement(0, "i", 133);
393
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_4_Template(rf, ctx) { if (rf & 1) {
394
+ i0.ɵɵelement(0, "i", 117);
390
395
  } }
391
- function TestSuiteRunFormComponentExtended_div_118_div_20_div_8_Template(rf, ctx) { if (rf & 1) {
396
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Template(rf, ctx) { if (rf & 1) {
392
397
  const _r9 = i0.ɵɵgetCurrentView();
393
- i0.ɵɵelementStart(0, "div", 147);
394
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_118_div_20_div_8_Template_div_click_0_listener() { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleRunExpanded(item_r10.run.id)); });
395
- i0.ɵɵelementStart(1, "div", 148);
396
- i0.ɵɵtemplate(2, TestSuiteRunFormComponentExtended_div_118_div_20_div_8_i_2_Template, 1, 0, "i", 149)(3, TestSuiteRunFormComponentExtended_div_118_div_20_div_8_i_3_Template, 1, 0, "i", 150)(4, TestSuiteRunFormComponentExtended_div_118_div_20_div_8_i_4_Template, 1, 0, "i", 151);
397
- i0.ɵɵelementEnd();
398
- i0.ɵɵelementStart(5, "div", 152)(6, "span", 153);
398
+ i0.ɵɵelementStart(0, "div", 128);
399
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Template_div_click_0_listener() { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleRunExpanded(item_r10.run.id)); });
400
+ i0.ɵɵelementStart(1, "div", 129);
401
+ i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_2_Template, 1, 0, "i", 130);
402
+ i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_3_Template, 1, 0, "i", 131);
403
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_4_Template, 1, 0, "i", 117);
404
+ i0.ɵɵelementEnd();
405
+ i0.ɵɵelementStart(5, "div", 132)(6, "span", 133);
399
406
  i0.ɵɵtext(7);
400
407
  i0.ɵɵelementEnd();
401
- i0.ɵɵelementStart(8, "span", 154);
408
+ i0.ɵɵelementStart(8, "span", 134);
402
409
  i0.ɵɵtext(9);
403
410
  i0.ɵɵelementEnd()();
404
- i0.ɵɵelementStart(10, "div", 155);
405
- i0.ɵɵelement(11, "i", 156);
411
+ i0.ɵɵelementStart(10, "div", 135);
412
+ i0.ɵɵelement(11, "i", 136);
406
413
  i0.ɵɵelementEnd()();
407
414
  } if (rf & 2) {
408
415
  const item_r10 = ctx.$implicit;
409
416
  i0.ɵɵclassProp("high-priority", item_r10.priority === "high")("medium-priority", item_r10.priority === "medium");
410
417
  i0.ɵɵadvance(2);
411
- i0.ɵɵproperty("ngIf", item_r10.priority === "high");
418
+ i0.ɵɵconditional(item_r10.priority === "high" ? 2 : -1);
412
419
  i0.ɵɵadvance();
413
- i0.ɵɵproperty("ngIf", item_r10.priority === "medium");
420
+ i0.ɵɵconditional(item_r10.priority === "medium" ? 3 : -1);
414
421
  i0.ɵɵadvance();
415
- i0.ɵɵproperty("ngIf", item_r10.priority === "low");
422
+ i0.ɵɵconditional(item_r10.priority === "low" ? 4 : -1);
416
423
  i0.ɵɵadvance(3);
417
424
  i0.ɵɵtextInterpolate(item_r10.run.testName);
418
425
  i0.ɵɵadvance(2);
419
426
  i0.ɵɵtextInterpolate(item_r10.reason);
420
427
  } }
421
- function TestSuiteRunFormComponentExtended_div_118_div_20_div_9_Template(rf, ctx) { if (rf & 1) {
428
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Conditional_10_Template(rf, ctx) { if (rf & 1) {
422
429
  const _r11 = i0.ɵɵgetCurrentView();
423
- i0.ɵɵelementStart(0, "div", 159)(1, "button", 97);
424
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_118_div_20_div_9_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.changeTab("runs")); });
430
+ i0.ɵɵelementStart(0, "div", 127)(1, "button", 91);
431
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Conditional_10_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.changeTab("runs")); });
425
432
  i0.ɵɵtext(2);
426
433
  i0.ɵɵelementEnd()();
427
434
  } if (rf & 2) {
@@ -429,58 +436,61 @@ function TestSuiteRunFormComponentExtended_div_118_div_20_div_9_Template(rf, ctx
429
436
  i0.ɵɵadvance(2);
430
437
  i0.ɵɵtextInterpolate1(" View all ", ctx_r1.needsReviewItems.length, " items ");
431
438
  } }
432
- function TestSuiteRunFormComponentExtended_div_118_div_20_Template(rf, ctx) { if (rf & 1) {
433
- i0.ɵɵelementStart(0, "div", 140)(1, "div", 141)(2, "h3");
434
- i0.ɵɵelement(3, "i", 142);
439
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Template(rf, ctx) { if (rf & 1) {
440
+ i0.ɵɵelementStart(0, "div", 103)(1, "div", 122)(2, "h3");
441
+ i0.ɵɵelement(3, "i", 123);
435
442
  i0.ɵɵtext(4, " Needs Review");
436
443
  i0.ɵɵelementEnd();
437
- i0.ɵɵelementStart(5, "span", 143);
444
+ i0.ɵɵelementStart(5, "span", 124);
438
445
  i0.ɵɵtext(6);
439
446
  i0.ɵɵelementEnd()();
440
- i0.ɵɵelementStart(7, "div", 144);
441
- i0.ɵɵtemplate(8, TestSuiteRunFormComponentExtended_div_118_div_20_div_8_Template, 12, 9, "div", 145)(9, TestSuiteRunFormComponentExtended_div_118_div_20_div_9_Template, 3, 1, "div", 146);
447
+ i0.ɵɵelementStart(7, "div", 125);
448
+ i0.ɵɵrepeaterCreate(8, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Template, 12, 9, "div", 126, i0.ɵɵrepeaterTrackByIdentity);
449
+ i0.ɵɵconditionalCreate(10, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Conditional_10_Template, 3, 1, "div", 127);
442
450
  i0.ɵɵelementEnd()();
443
451
  } if (rf & 2) {
444
452
  const ctx_r1 = i0.ɵɵnextContext(2);
445
453
  i0.ɵɵadvance(6);
446
454
  i0.ɵɵtextInterpolate1("", ctx_r1.needsReviewItems.length, " items");
447
455
  i0.ɵɵadvance(2);
448
- i0.ɵɵproperty("ngForOf", ctx_r1.needsReviewItems.slice(0, 5));
449
- i0.ɵɵadvance();
450
- i0.ɵɵproperty("ngIf", ctx_r1.needsReviewItems.length > 5);
456
+ i0.ɵɵrepeater(ctx_r1.needsReviewItems.slice(0, 5));
457
+ i0.ɵɵadvance(2);
458
+ i0.ɵɵconditional(ctx_r1.needsReviewItems.length > 5 ? 10 : -1);
451
459
  } }
452
- function TestSuiteRunFormComponentExtended_div_118_div_21_Template(rf, ctx) { if (rf & 1) {
453
- i0.ɵɵelementStart(0, "div", 160)(1, "div", 161);
454
- i0.ɵɵelement(2, "i", 162);
460
+ function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_21_Template(rf, ctx) { if (rf & 1) {
461
+ i0.ɵɵelementStart(0, "div", 104)(1, "div", 137);
462
+ i0.ɵɵelement(2, "i", 138);
455
463
  i0.ɵɵelementStart(3, "span");
456
464
  i0.ɵɵtext(4, "Suite execution in progress...");
457
465
  i0.ɵɵelementEnd()();
458
- i0.ɵɵelementStart(5, "div", 163);
459
- i0.ɵɵelement(6, "i", 164);
466
+ i0.ɵɵelementStart(5, "div", 139);
467
+ i0.ɵɵelement(6, "i", 140);
460
468
  i0.ɵɵtext(7, " Auto-refreshing every 5 seconds ");
461
469
  i0.ɵɵelementEnd()();
462
470
  } }
463
- function TestSuiteRunFormComponentExtended_div_118_Template(rf, ctx) { if (rf & 1) {
464
- i0.ɵɵelementStart(0, "div", 104)(1, "div", 105)(2, "div", 106);
465
- i0.ɵɵelement(3, "i", 6);
471
+ function TestSuiteRunFormComponentExtended_Conditional_129_Template(rf, ctx) { if (rf & 1) {
472
+ i0.ɵɵelementStart(0, "div", 58)(1, "div", 94)(2, "div", 95);
473
+ i0.ɵɵelement(3, "i", 11);
466
474
  i0.ɵɵelementEnd();
467
- i0.ɵɵelementStart(4, "div", 107)(5, "h2");
475
+ i0.ɵɵelementStart(4, "div", 96)(5, "h2");
468
476
  i0.ɵɵtext(6);
469
477
  i0.ɵɵelementEnd();
470
- i0.ɵɵelementStart(7, "div", 108)(8, "div", 109)(9, "span", 110);
478
+ i0.ɵɵelementStart(7, "div", 97)(8, "div", 98)(9, "span", 99);
471
479
  i0.ɵɵtext(10);
472
480
  i0.ɵɵelementEnd();
473
- i0.ɵɵelementStart(11, "span", 111);
481
+ i0.ɵɵelementStart(11, "span", 100);
474
482
  i0.ɵɵtext(12, "Pass Rate");
475
483
  i0.ɵɵelementEnd()();
476
- i0.ɵɵelement(13, "div", 112);
477
- i0.ɵɵelementStart(14, "div", 109)(15, "span", 110);
484
+ i0.ɵɵelement(13, "div", 101);
485
+ i0.ɵɵelementStart(14, "div", 98)(15, "span", 99);
478
486
  i0.ɵɵtext(16);
479
487
  i0.ɵɵelementEnd();
480
- i0.ɵɵelementStart(17, "span", 111);
488
+ i0.ɵɵelementStart(17, "span", 100);
481
489
  i0.ɵɵtext(18, "Tests Passed");
482
490
  i0.ɵɵelementEnd()()()()();
483
- i0.ɵɵtemplate(19, TestSuiteRunFormComponentExtended_div_118_div_19_Template, 5, 3, "div", 113)(20, TestSuiteRunFormComponentExtended_div_118_div_20_Template, 10, 3, "div", 114)(21, TestSuiteRunFormComponentExtended_div_118_div_21_Template, 8, 0, "div", 115);
491
+ i0.ɵɵconditionalCreate(19, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Template, 5, 3, "div", 102);
492
+ i0.ɵɵconditionalCreate(20, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Template, 11, 2, "div", 103);
493
+ i0.ɵɵconditionalCreate(21, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_21_Template, 8, 0, "div", 104);
484
494
  i0.ɵɵelementEnd();
485
495
  } if (rf & 2) {
486
496
  const ctx_r1 = i0.ɵɵnextContext();
@@ -489,23 +499,23 @@ function TestSuiteRunFormComponentExtended_div_118_Template(rf, ctx) { if (rf &
489
499
  i0.ɵɵadvance(2);
490
500
  i0.ɵɵproperty("ngClass", ctx_r1.getStatusIcon());
491
501
  i0.ɵɵadvance(3);
492
- i0.ɵɵtextInterpolate1("SUITE ", ctx_r1.record.Status.toUpperCase() || "UNKNOWN", "");
502
+ i0.ɵɵtextInterpolate1("SUITE ", ctx_r1.record.Status.toUpperCase() || "UNKNOWN");
493
503
  i0.ɵɵadvance(4);
494
504
  i0.ɵɵtextInterpolate1("", ctx_r1.getPassRate().toFixed(1), "%");
495
505
  i0.ɵɵadvance(6);
496
- i0.ɵɵtextInterpolate2("", ctx_r1.record.PassedTests || 0, " / ", ctx_r1.record.TotalTests || 0, "");
506
+ i0.ɵɵtextInterpolate2("", ctx_r1.record.PassedTests || 0, " / ", ctx_r1.record.TotalTests || 0);
497
507
  i0.ɵɵadvance(3);
498
- i0.ɵɵproperty("ngIf", ctx_r1.evaluationMetrics && ctx_r1.feedbacksLoaded);
508
+ i0.ɵɵconditional(ctx_r1.evaluationMetrics && ctx_r1.feedbacksLoaded ? 19 : -1);
499
509
  i0.ɵɵadvance();
500
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showHuman && ctx_r1.needsReviewItems.length > 0 && ctx_r1.feedbacksLoaded);
510
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman && ctx_r1.needsReviewItems.length > 0 && ctx_r1.feedbacksLoaded ? 20 : -1);
501
511
  i0.ɵɵadvance();
502
- i0.ɵɵproperty("ngIf", ctx_r1.record.Status === "Running" || ctx_r1.record.Status === "Pending");
512
+ i0.ɵɵconditional(ctx_r1.record.Status === "Running" || ctx_r1.record.Status === "Pending" ? 21 : -1);
503
513
  } }
504
- function TestSuiteRunFormComponentExtended_div_119_div_1_button_4_Template(rf, ctx) { if (rf & 1) {
514
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
505
515
  const _r13 = i0.ɵɵgetCurrentView();
506
- i0.ɵɵelementStart(0, "button", 179);
507
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_1_button_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Passed")); });
508
- i0.ɵɵelement(1, "i", 180);
516
+ i0.ɵɵelementStart(0, "button", 153);
517
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Passed")); });
518
+ i0.ɵɵelement(1, "i", 154);
509
519
  i0.ɵɵtext(2);
510
520
  i0.ɵɵelementEnd();
511
521
  } if (rf & 2) {
@@ -514,11 +524,11 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_button_4_Template(rf, c
514
524
  i0.ɵɵadvance(2);
515
525
  i0.ɵɵtextInterpolate1(" Passed (", ctx_r1.getRunCountByStatus("Passed"), ") ");
516
526
  } }
517
- function TestSuiteRunFormComponentExtended_div_119_div_1_button_5_Template(rf, ctx) { if (rf & 1) {
527
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
518
528
  const _r14 = i0.ɵɵgetCurrentView();
519
- i0.ɵɵelementStart(0, "button", 181);
520
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_1_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Failed")); });
521
- i0.ɵɵelement(1, "i", 100);
529
+ i0.ɵɵelementStart(0, "button", 155);
530
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Failed")); });
531
+ i0.ɵɵelement(1, "i", 93);
522
532
  i0.ɵɵtext(2);
523
533
  i0.ɵɵelementEnd();
524
534
  } if (rf & 2) {
@@ -527,11 +537,11 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_button_5_Template(rf, c
527
537
  i0.ɵɵadvance(2);
528
538
  i0.ɵɵtextInterpolate1(" Failed (", ctx_r1.getRunCountByStatus("Failed"), ") ");
529
539
  } }
530
- function TestSuiteRunFormComponentExtended_div_119_div_1_button_6_Template(rf, ctx) { if (rf & 1) {
540
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
531
541
  const _r15 = i0.ɵɵgetCurrentView();
532
- i0.ɵɵelementStart(0, "button", 182);
533
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_1_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Error")); });
534
- i0.ɵɵelement(1, "i", 183);
542
+ i0.ɵɵelementStart(0, "button", 156);
543
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Error")); });
544
+ i0.ɵɵelement(1, "i", 157);
535
545
  i0.ɵɵtext(2);
536
546
  i0.ɵɵelementEnd();
537
547
  } if (rf & 2) {
@@ -540,17 +550,19 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_button_6_Template(rf, c
540
550
  i0.ɵɵadvance(2);
541
551
  i0.ɵɵtextInterpolate1(" Error (", ctx_r1.getRunCountByStatus("Error"), ") ");
542
552
  } }
543
- function TestSuiteRunFormComponentExtended_div_119_div_1_Template(rf, ctx) { if (rf & 1) {
553
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template(rf, ctx) { if (rf & 1) {
544
554
  const _r12 = i0.ɵɵgetCurrentView();
545
- i0.ɵɵelementStart(0, "div", 170)(1, "div", 171)(2, "button", 172);
546
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter(null)); });
555
+ i0.ɵɵelementStart(0, "div", 141)(1, "div", 145)(2, "button", 146);
556
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter(null)); });
547
557
  i0.ɵɵtext(3);
548
558
  i0.ɵɵelementEnd();
549
- i0.ɵɵtemplate(4, TestSuiteRunFormComponentExtended_div_119_div_1_button_4_Template, 3, 3, "button", 173)(5, TestSuiteRunFormComponentExtended_div_119_div_1_button_5_Template, 3, 3, "button", 174)(6, TestSuiteRunFormComponentExtended_div_119_div_1_button_6_Template, 3, 3, "button", 175);
559
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_4_Template, 3, 3, "button", 147);
560
+ i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_5_Template, 3, 3, "button", 148);
561
+ i0.ɵɵconditionalCreate(6, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_6_Template, 3, 3, "button", 149);
550
562
  i0.ɵɵelementEnd();
551
- i0.ɵɵelementStart(7, "div", 176)(8, "button", 177);
552
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_1_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.exportToCSV()); });
553
- i0.ɵɵelement(9, "i", 178);
563
+ i0.ɵɵelementStart(7, "div", 150)(8, "button", 151);
564
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.exportToCSV()); });
565
+ i0.ɵɵelement(9, "i", 152);
554
566
  i0.ɵɵtext(10, " Export CSV ");
555
567
  i0.ɵɵelementEnd()()();
556
568
  } if (rf & 2) {
@@ -560,30 +572,30 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_Template(rf, ctx) { if
560
572
  i0.ɵɵadvance();
561
573
  i0.ɵɵtextInterpolate1(" All (", ctx_r1.testRuns.length, ") ");
562
574
  i0.ɵɵadvance();
563
- i0.ɵɵproperty("ngIf", ctx_r1.getRunCountByStatus("Passed") > 0);
575
+ i0.ɵɵconditional(ctx_r1.getRunCountByStatus("Passed") > 0 ? 4 : -1);
564
576
  i0.ɵɵadvance();
565
- i0.ɵɵproperty("ngIf", ctx_r1.getRunCountByStatus("Failed") > 0);
577
+ i0.ɵɵconditional(ctx_r1.getRunCountByStatus("Failed") > 0 ? 5 : -1);
566
578
  i0.ɵɵadvance();
567
- i0.ɵɵproperty("ngIf", ctx_r1.getRunCountByStatus("Error") > 0);
579
+ i0.ɵɵconditional(ctx_r1.getRunCountByStatus("Error") > 0 ? 6 : -1);
568
580
  } }
569
- function TestSuiteRunFormComponentExtended_div_119_div_2_div_2_Template(rf, ctx) { if (rf & 1) {
570
- i0.ɵɵelementStart(0, "div", 187);
571
- i0.ɵɵelement(1, "div", 188)(2, "div", 189);
572
- i0.ɵɵelementStart(3, "div", 190);
573
- i0.ɵɵelement(4, "div", 191)(5, "div", 192);
581
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_For_3_Template(rf, ctx) { if (rf & 1) {
582
+ i0.ɵɵelementStart(0, "div", 159);
583
+ i0.ɵɵelement(1, "div", 160)(2, "div", 161);
584
+ i0.ɵɵelementStart(3, "div", 162);
585
+ i0.ɵɵelement(4, "div", 163)(5, "div", 164);
574
586
  i0.ɵɵelementEnd()();
575
587
  } }
576
- function TestSuiteRunFormComponentExtended_div_119_div_2_Template(rf, ctx) { if (rf & 1) {
577
- i0.ɵɵelementStart(0, "div", 184)(1, "div", 185);
578
- i0.ɵɵtemplate(2, TestSuiteRunFormComponentExtended_div_119_div_2_div_2_Template, 6, 0, "div", 186);
588
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_Template(rf, ctx) { if (rf & 1) {
589
+ i0.ɵɵelementStart(0, "div", 142)(1, "div", 158);
590
+ i0.ɵɵrepeaterCreate(2, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_For_3_Template, 6, 0, "div", 159, i0.ɵɵrepeaterTrackByIdentity);
579
591
  i0.ɵɵelementEnd()();
580
592
  } if (rf & 2) {
581
593
  i0.ɵɵadvance(2);
582
- i0.ɵɵproperty("ngForOf", i0.ɵɵpureFunction0(1, _c0));
594
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c0));
583
595
  } }
584
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_12_Template(rf, ctx) { if (rf & 1) {
585
- i0.ɵɵelementStart(0, "span", 211);
586
- i0.ɵɵelement(1, "i", 18);
596
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
597
+ i0.ɵɵelementStart(0, "span", 174);
598
+ i0.ɵɵelement(1, "i", 23);
587
599
  i0.ɵɵtext(2);
588
600
  i0.ɵɵelementEnd();
589
601
  } if (rf & 2) {
@@ -591,9 +603,9 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_12_Template(
591
603
  i0.ɵɵadvance(2);
592
604
  i0.ɵɵtextInterpolate1(" ", run_r17.DurationSeconds.toFixed(1), "s ");
593
605
  } }
594
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_13_Template(rf, ctx) { if (rf & 1) {
595
- i0.ɵɵelementStart(0, "span", 212);
596
- i0.ɵɵelement(1, "i", 23);
606
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
607
+ i0.ɵɵelementStart(0, "span", 175);
608
+ i0.ɵɵelement(1, "i", 28);
597
609
  i0.ɵɵtext(2);
598
610
  i0.ɵɵelementEnd();
599
611
  } if (rf & 2) {
@@ -601,14 +613,14 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_13_Template(
601
613
  i0.ɵɵadvance(2);
602
614
  i0.ɵɵtextInterpolate1(" ", run_r17.CostUSD.toFixed(6), " ");
603
615
  } }
604
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_mj_entity_link_pill_14_Template(rf, ctx) { if (rf & 1) {
605
- i0.ɵɵelement(0, "mj-entity-link-pill", 213);
616
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
617
+ i0.ɵɵelement(0, "mj-entity-link-pill", 176);
606
618
  } if (rf & 2) {
607
619
  const run_r17 = i0.ɵɵnextContext().$implicit;
608
620
  i0.ɵɵproperty("entityName", run_r17.TargetLogEntity)("recordId", run_r17.TargetLogID);
609
621
  } }
610
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_15_span_1_Template(rf, ctx) { if (rf & 1) {
611
- i0.ɵɵelementStart(0, "span", 216);
622
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
623
+ i0.ɵɵelementStart(0, "span", 181);
612
624
  i0.ɵɵtext(1);
613
625
  i0.ɵɵelementEnd();
614
626
  } if (rf & 2) {
@@ -616,20 +628,20 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_15_span_1_Tem
616
628
  i0.ɵɵadvance();
617
629
  i0.ɵɵtextInterpolate(tag_r18);
618
630
  } }
619
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_15_Template(rf, ctx) { if (rf & 1) {
620
- i0.ɵɵelementStart(0, "div", 214);
621
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_15_span_1_Template, 2, 1, "span", 215);
631
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
632
+ i0.ɵɵelementStart(0, "div", 177);
633
+ i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_For_2_Template, 2, 1, "span", 181, i0.ɵɵrepeaterTrackByIdentity);
622
634
  i0.ɵɵelementEnd();
623
635
  } if (rf & 2) {
624
636
  const run_r17 = i0.ɵɵnextContext().$implicit;
625
637
  const ctx_r1 = i0.ɵɵnextContext(3);
626
638
  i0.ɵɵadvance();
627
- i0.ɵɵproperty("ngForOf", ctx_r1.getRunTags(run_r17));
639
+ i0.ɵɵrepeater(ctx_r1.getRunTags(run_r17));
628
640
  } }
629
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_Template(rf, ctx) { if (rf & 1) {
641
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template(rf, ctx) { if (rf & 1) {
630
642
  const _r20 = i0.ɵɵgetCurrentView();
631
- i0.ɵɵelementStart(0, "button", 234);
632
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_Template_button_click_0_listener($event) { const num_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.setInlineRating(num_r21); return i0.ɵɵresetView($event.stopPropagation()); })("mouseenter", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_Template_button_mouseenter_0_listener() { const num_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.inlineHoverRating = num_r21); })("mouseleave", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_Template_button_mouseleave_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.inlineHoverRating = 0); });
643
+ i0.ɵɵelementStart(0, "button", 198);
644
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template_button_click_0_listener($event) { const num_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.setInlineRating(num_r21); return i0.ɵɵresetView($event.stopPropagation()); })("mouseenter", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template_button_mouseenter_0_listener() { const num_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.inlineHoverRating = num_r21); })("mouseleave", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template_button_mouseleave_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.inlineHoverRating = 0); });
633
645
  i0.ɵɵtext(1);
634
646
  i0.ɵɵelementEnd();
635
647
  } if (rf & 2) {
@@ -639,11 +651,11 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_T
639
651
  i0.ɵɵadvance();
640
652
  i0.ɵɵtextInterpolate1(" ", num_r21, " ");
641
653
  } }
642
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_div_8_Template(rf, ctx) { if (rf & 1) {
643
- i0.ɵɵelementStart(0, "div", 235)(1, "span", 236);
654
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Conditional_9_Template(rf, ctx) { if (rf & 1) {
655
+ i0.ɵɵelementStart(0, "div", 188)(1, "span", 199);
644
656
  i0.ɵɵtext(2);
645
657
  i0.ɵɵelementEnd();
646
- i0.ɵɵelementStart(3, "span", 237);
658
+ i0.ɵɵelementStart(3, "span", 200);
647
659
  i0.ɵɵtext(4);
648
660
  i0.ɵɵelementEnd()();
649
661
  } if (rf & 2) {
@@ -653,80 +665,77 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_div_8_Temp
653
665
  i0.ɵɵadvance(2);
654
666
  i0.ɵɵtextInterpolate(ctx_r1.getInlineRatingLabel());
655
667
  } }
656
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template(rf, ctx) { if (rf & 1) {
668
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
657
669
  const _r19 = i0.ɵɵgetCurrentView();
658
- i0.ɵɵelementStart(0, "div", 217);
659
- i0.ɵɵelement(1, "div", 218);
660
- i0.ɵɵelementStart(2, "div", 219)(3, "div", 220);
670
+ i0.ɵɵelementStart(0, "div", 180);
671
+ i0.ɵɵelement(1, "div", 182);
672
+ i0.ɵɵelementStart(2, "div", 183)(3, "div", 184);
661
673
  i0.ɵɵtext(4, "Quick Feedback");
662
674
  i0.ɵɵelementEnd();
663
- i0.ɵɵelementStart(5, "div", 221)(6, "div", 222);
664
- i0.ɵɵtemplate(7, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_Template, 2, 11, "button", 223);
675
+ i0.ɵɵelementStart(5, "div", 185)(6, "div", 186);
676
+ i0.ɵɵrepeaterCreate(7, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template, 2, 11, "button", 187, i0.ɵɵrepeaterTrackByIdentity);
665
677
  i0.ɵɵelementEnd();
666
- i0.ɵɵtemplate(8, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_div_8_Template, 5, 2, "div", 224);
678
+ i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Conditional_9_Template, 5, 2, "div", 188);
667
679
  i0.ɵɵelementEnd();
668
- i0.ɵɵelementStart(9, "div", 225)(10, "span", 226);
669
- i0.ɵɵtext(11, "Was it correct?");
680
+ i0.ɵɵelementStart(10, "div", 189)(11, "span", 190);
681
+ i0.ɵɵtext(12, "Was it correct?");
670
682
  i0.ɵɵelementEnd();
671
- i0.ɵɵelementStart(12, "div", 227)(13, "label", 228);
672
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_label_click_13_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
673
- i0.ɵɵelementStart(14, "input", 229);
674
- i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
683
+ i0.ɵɵelementStart(13, "div", 191)(14, "label", 192);
684
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_label_click_14_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
685
+ i0.ɵɵelementStart(15, "input", 193);
686
+ i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_input_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
675
687
  i0.ɵɵelementEnd();
676
- i0.ɵɵelementStart(15, "span");
677
- i0.ɵɵtext(16, "Yes");
688
+ i0.ɵɵelementStart(16, "span");
689
+ i0.ɵɵtext(17, "Yes");
678
690
  i0.ɵɵelementEnd()();
679
- i0.ɵɵelementStart(17, "label", 228);
680
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_label_click_17_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
681
- i0.ɵɵelementStart(18, "input", 229);
682
- i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_input_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
691
+ i0.ɵɵelementStart(18, "label", 192);
692
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_label_click_18_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
693
+ i0.ɵɵelementStart(19, "input", 193);
694
+ i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
683
695
  i0.ɵɵelementEnd();
684
- i0.ɵɵelementStart(19, "span");
685
- i0.ɵɵtext(20, "No");
696
+ i0.ɵɵelementStart(20, "span");
697
+ i0.ɵɵtext(21, "No");
686
698
  i0.ɵɵelementEnd()();
687
- i0.ɵɵelementStart(21, "label", 228);
688
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_label_click_21_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
689
- i0.ɵɵelementStart(22, "input", 229);
690
- i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_input_ngModelChange_22_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
699
+ i0.ɵɵelementStart(22, "label", 192);
700
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_label_click_22_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
701
+ i0.ɵɵelementStart(23, "input", 193);
702
+ i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_input_ngModelChange_23_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
691
703
  i0.ɵɵelementEnd();
692
- i0.ɵɵelementStart(23, "span");
693
- i0.ɵɵtext(24, "Not Sure");
704
+ i0.ɵɵelementStart(24, "span");
705
+ i0.ɵɵtext(25, "Not Sure");
694
706
  i0.ɵɵelementEnd()()()();
695
- i0.ɵɵelementStart(25, "div", 230);
696
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_div_click_25_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
697
- i0.ɵɵelementStart(26, "textarea", 231);
698
- i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_textarea_ngModelChange_26_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineComments, $event) || (ctx_r1.inlineComments = $event); return i0.ɵɵresetView($event); });
707
+ i0.ɵɵelementStart(26, "div", 194);
708
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_div_click_26_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
709
+ i0.ɵɵelementStart(27, "textarea", 195);
710
+ i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_textarea_ngModelChange_27_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineComments, $event) || (ctx_r1.inlineComments = $event); return i0.ɵɵresetView($event); });
699
711
  i0.ɵɵelementEnd()();
700
- i0.ɵɵelementStart(27, "div", 232);
701
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_div_click_27_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
702
- i0.ɵɵelementStart(28, "button", 177);
703
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r19); const run_r17 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestRun(run_r17.ID)); });
704
- i0.ɵɵelement(29, "i", 233);
705
- i0.ɵɵtext(30, " View Full Details ");
706
- i0.ɵɵelementEnd();
707
- i0.ɵɵelementStart(31, "button", 95);
708
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template_button_click_31_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.saveInlineFeedback()); });
709
- i0.ɵɵelement(32, "i", 6);
710
- i0.ɵɵtext(33);
712
+ i0.ɵɵelementStart(28, "div", 196);
713
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_div_click_28_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
714
+ i0.ɵɵelementStart(29, "button", 151);
715
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r19); const run_r17 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestRun(run_r17.ID)); });
716
+ i0.ɵɵelement(30, "i", 197);
717
+ i0.ɵɵtext(31, " View Full Details ");
718
+ i0.ɵɵelementEnd();
719
+ i0.ɵɵelementStart(32, "button", 89);
720
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.saveInlineFeedback()); });
721
+ i0.ɵɵelement(33, "i", 11);
722
+ i0.ɵɵtext(34);
711
723
  i0.ɵɵelementEnd()()()();
712
724
  } if (rf & 2) {
713
725
  const run_r17 = i0.ɵɵnextContext().$implicit;
714
726
  const ctx_r1 = i0.ɵɵnextContext(3);
715
727
  i0.ɵɵadvance(7);
716
- i0.ɵɵproperty("ngForOf", i0.ɵɵpureFunction0(18, _c1));
717
- i0.ɵɵadvance();
718
- i0.ɵɵproperty("ngIf", ctx_r1.inlineRating > 0);
728
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(17, _c1));
729
+ i0.ɵɵadvance(2);
730
+ i0.ɵɵconditional(ctx_r1.inlineRating > 0 ? 9 : -1);
719
731
  i0.ɵɵadvance(6);
720
- i0.ɵɵpropertyInterpolate1("name", "correct-", run_r17.ID, "");
721
- i0.ɵɵproperty("value", true);
732
+ i0.ɵɵproperty("name", i0.ɵɵinterpolate1("correct-", run_r17.ID))("value", true);
722
733
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineIsCorrect);
723
734
  i0.ɵɵadvance(4);
724
- i0.ɵɵpropertyInterpolate1("name", "correct-", run_r17.ID, "");
725
- i0.ɵɵproperty("value", false);
735
+ i0.ɵɵproperty("name", i0.ɵɵinterpolate1("correct-", run_r17.ID))("value", false);
726
736
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineIsCorrect);
727
737
  i0.ɵɵadvance(4);
728
- i0.ɵɵpropertyInterpolate1("name", "correct-", run_r17.ID, "");
729
- i0.ɵɵproperty("value", null);
738
+ i0.ɵɵproperty("name", i0.ɵɵinterpolate1("correct-", run_r17.ID))("value", null);
730
739
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineIsCorrect);
731
740
  i0.ɵɵadvance(4);
732
741
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineComments);
@@ -737,30 +746,32 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template(r
737
746
  i0.ɵɵadvance();
738
747
  i0.ɵɵtextInterpolate1(" ", ctx_r1.savingInlineFeedback ? "Saving..." : ctx_r1.hasFeedback(run_r17.ID) ? "Update" : "Save", " ");
739
748
  } }
740
- function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_Template(rf, ctx) { if (rf & 1) {
749
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Template(rf, ctx) { if (rf & 1) {
741
750
  const _r16 = i0.ɵɵgetCurrentView();
742
- i0.ɵɵelementStart(0, "div", 195)(1, "div", 196);
743
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_Template_div_click_1_listener() { const run_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleRunExpanded(run_r17.ID)); });
744
- i0.ɵɵelementStart(2, "div", 197);
751
+ i0.ɵɵelementStart(0, "div", 165)(1, "div", 166);
752
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Template_div_click_1_listener() { const run_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleRunExpanded(run_r17.ID)); });
753
+ i0.ɵɵelementStart(2, "div", 167);
745
754
  i0.ɵɵtext(3);
746
755
  i0.ɵɵelementEnd();
747
- i0.ɵɵelementStart(4, "div", 198);
748
- i0.ɵɵelement(5, "i", 6);
756
+ i0.ɵɵelementStart(4, "div", 168);
757
+ i0.ɵɵelement(5, "i", 11);
749
758
  i0.ɵɵelementEnd();
750
- i0.ɵɵelementStart(6, "div", 199)(7, "div", 200)(8, "div", 201);
759
+ i0.ɵɵelementStart(6, "div", 169)(7, "div", 170)(8, "div", 171);
751
760
  i0.ɵɵtext(9);
752
761
  i0.ɵɵelementEnd();
753
- i0.ɵɵelement(10, "app-evaluation-badge", 202);
762
+ i0.ɵɵelement(10, "app-evaluation-badge", 172);
754
763
  i0.ɵɵelementEnd();
755
- i0.ɵɵelementStart(11, "div", 203);
756
- i0.ɵɵtemplate(12, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_12_Template, 3, 1, "span", 204)(13, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_13_Template, 3, 1, "span", 205)(14, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_mj_entity_link_pill_14_Template, 1, 2, "mj-entity-link-pill", 206);
764
+ i0.ɵɵelementStart(11, "div", 173);
765
+ i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_12_Template, 3, 1, "span", 174);
766
+ i0.ɵɵconditionalCreate(13, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_13_Template, 3, 1, "span", 175);
767
+ i0.ɵɵconditionalCreate(14, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_14_Template, 1, 2, "mj-entity-link-pill", 176);
757
768
  i0.ɵɵelementEnd();
758
- i0.ɵɵtemplate(15, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_15_Template, 2, 1, "div", 207);
769
+ i0.ɵɵconditionalCreate(15, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_Template, 3, 0, "div", 177);
759
770
  i0.ɵɵelementEnd();
760
- i0.ɵɵelementStart(16, "div", 208);
761
- i0.ɵɵelement(17, "i", 209);
771
+ i0.ɵɵelementStart(16, "div", 178);
772
+ i0.ɵɵelement(17, "i", 179);
762
773
  i0.ɵɵelementEnd()();
763
- i0.ɵɵtemplate(18, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template, 34, 19, "div", 210);
774
+ i0.ɵɵconditionalCreate(18, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template, 35, 18, "div", 180);
764
775
  i0.ɵɵelementEnd();
765
776
  } if (rf & 2) {
766
777
  const run_r17 = ctx.$implicit;
@@ -776,30 +787,30 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_Template(rf, ctx)
776
787
  i0.ɵɵadvance();
777
788
  i0.ɵɵproperty("executionStatus", run_r17.Status)("originalStatus", run_r17.Status)("autoScore", run_r17.Score)("humanRating", ctx_r1.getFeedbackRating(run_r17.ID) || null)("humanIsCorrect", ctx_r1.getHumanIsCorrect(run_r17.ID))("hasHumanFeedback", ctx_r1.hasFeedback(run_r17.ID))("preferences", ctx_r1.evalPreferences)("mode", "compact");
778
789
  i0.ɵɵadvance(2);
779
- i0.ɵɵproperty("ngIf", run_r17.DurationSeconds);
790
+ i0.ɵɵconditional(run_r17.DurationSeconds ? 12 : -1);
780
791
  i0.ɵɵadvance();
781
- i0.ɵɵproperty("ngIf", run_r17.CostUSD);
792
+ i0.ɵɵconditional(run_r17.CostUSD ? 13 : -1);
782
793
  i0.ɵɵadvance();
783
- i0.ɵɵproperty("ngIf", run_r17.TargetLogEntityID && run_r17.TargetLogID);
794
+ i0.ɵɵconditional(run_r17.TargetLogEntityID && run_r17.TargetLogID ? 14 : -1);
784
795
  i0.ɵɵadvance();
785
- i0.ɵɵproperty("ngIf", ctx_r1.getRunTags(run_r17).length > 0);
796
+ i0.ɵɵconditional(ctx_r1.getRunTags(run_r17).length > 0 ? 15 : -1);
786
797
  i0.ɵɵadvance(2);
787
798
  i0.ɵɵclassProp("fa-chevron-down", ctx_r1.expandedRunId !== run_r17.ID)("fa-chevron-up", ctx_r1.expandedRunId === run_r17.ID);
788
799
  i0.ɵɵadvance();
789
- i0.ɵɵproperty("ngIf", ctx_r1.expandedRunId === run_r17.ID);
800
+ i0.ɵɵconditional(ctx_r1.expandedRunId === run_r17.ID ? 18 : -1);
790
801
  } }
791
- function TestSuiteRunFormComponentExtended_div_119_div_3_Template(rf, ctx) { if (rf & 1) {
792
- i0.ɵɵelementStart(0, "div", 193);
793
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_119_div_3_div_1_Template, 19, 22, "div", 194);
802
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_Template(rf, ctx) { if (rf & 1) {
803
+ i0.ɵɵelementStart(0, "div", 143);
804
+ i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Template, 19, 22, "div", 165, i0.ɵɵrepeaterTrackByIdentity);
794
805
  i0.ɵɵelementEnd();
795
806
  } if (rf & 2) {
796
807
  const ctx_r1 = i0.ɵɵnextContext(2);
797
808
  i0.ɵɵadvance();
798
- i0.ɵɵproperty("ngForOf", ctx_r1.getFilteredTestRuns());
809
+ i0.ɵɵrepeater(ctx_r1.getFilteredTestRuns());
799
810
  } }
800
- function TestSuiteRunFormComponentExtended_div_119_div_4_Template(rf, ctx) { if (rf & 1) {
801
- i0.ɵɵelementStart(0, "div", 238)(1, "div", 239);
802
- i0.ɵɵelement(2, "i", 240);
811
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_4_Template(rf, ctx) { if (rf & 1) {
812
+ i0.ɵɵelementStart(0, "div", 144)(1, "div", 201);
813
+ i0.ɵɵelement(2, "i", 202);
803
814
  i0.ɵɵelementEnd();
804
815
  i0.ɵɵelementStart(3, "h4");
805
816
  i0.ɵɵtext(4, "No Test Runs Found");
@@ -808,10 +819,10 @@ function TestSuiteRunFormComponentExtended_div_119_div_4_Template(rf, ctx) { if
808
819
  i0.ɵɵtext(6, "No test runs have been recorded for this suite execution.");
809
820
  i0.ɵɵelementEnd()();
810
821
  } }
811
- function TestSuiteRunFormComponentExtended_div_119_div_5_Template(rf, ctx) { if (rf & 1) {
822
+ function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_5_Template(rf, ctx) { if (rf & 1) {
812
823
  const _r22 = i0.ɵɵgetCurrentView();
813
- i0.ɵɵelementStart(0, "div", 238)(1, "div", 239);
814
- i0.ɵɵelement(2, "i", 241);
824
+ i0.ɵɵelementStart(0, "div", 144)(1, "div", 201);
825
+ i0.ɵɵelement(2, "i", 203);
815
826
  i0.ɵɵelementEnd();
816
827
  i0.ɵɵelementStart(3, "h4");
817
828
  i0.ɵɵtext(4, "No Matching Runs");
@@ -819,32 +830,36 @@ function TestSuiteRunFormComponentExtended_div_119_div_5_Template(rf, ctx) { if
819
830
  i0.ɵɵelementStart(5, "p");
820
831
  i0.ɵɵtext(6, "No test runs match the current filter.");
821
832
  i0.ɵɵelementEnd();
822
- i0.ɵɵelementStart(7, "button", 177);
823
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_119_div_5_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter(null)); });
833
+ i0.ɵɵelementStart(7, "button", 151);
834
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_5_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter(null)); });
824
835
  i0.ɵɵtext(8, "Clear Filter");
825
836
  i0.ɵɵelementEnd()();
826
837
  } }
827
- function TestSuiteRunFormComponentExtended_div_119_Template(rf, ctx) { if (rf & 1) {
828
- i0.ɵɵelementStart(0, "div", 165);
829
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_119_div_1_Template, 11, 6, "div", 166)(2, TestSuiteRunFormComponentExtended_div_119_div_2_Template, 3, 2, "div", 167)(3, TestSuiteRunFormComponentExtended_div_119_div_3_Template, 2, 1, "div", 168)(4, TestSuiteRunFormComponentExtended_div_119_div_4_Template, 7, 0, "div", 169)(5, TestSuiteRunFormComponentExtended_div_119_div_5_Template, 9, 0, "div", 169);
838
+ function TestSuiteRunFormComponentExtended_Conditional_130_Template(rf, ctx) { if (rf & 1) {
839
+ i0.ɵɵelementStart(0, "div", 59);
840
+ i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template, 11, 6, "div", 141);
841
+ i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_Template, 4, 1, "div", 142);
842
+ i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_Template, 3, 0, "div", 143);
843
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_4_Template, 7, 0, "div", 144);
844
+ i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_5_Template, 9, 0, "div", 144);
830
845
  i0.ɵɵelementEnd();
831
846
  } if (rf & 2) {
832
847
  const ctx_r1 = i0.ɵɵnextContext();
833
848
  i0.ɵɵadvance();
834
- i0.ɵɵproperty("ngIf", ctx_r1.testRunsLoaded && ctx_r1.testRuns.length > 0);
849
+ i0.ɵɵconditional(ctx_r1.testRunsLoaded && ctx_r1.testRuns.length > 0 ? 1 : -1);
835
850
  i0.ɵɵadvance();
836
- i0.ɵɵproperty("ngIf", ctx_r1.loadingTestRuns);
851
+ i0.ɵɵconditional(ctx_r1.loadingTestRuns ? 2 : -1);
837
852
  i0.ɵɵadvance();
838
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0);
853
+ i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 ? 3 : -1);
839
854
  i0.ɵɵadvance();
840
- i0.ɵɵproperty("ngIf", ctx_r1.testRunsLoaded && !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length === 0);
855
+ i0.ɵɵconditional(ctx_r1.testRunsLoaded && !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length === 0 ? 4 : -1);
841
856
  i0.ɵɵadvance();
842
- i0.ɵɵproperty("ngIf", ctx_r1.testRunsLoaded && !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 && ctx_r1.getFilteredTestRuns().length === 0);
857
+ i0.ɵɵconditional(ctx_r1.testRunsLoaded && !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 && ctx_r1.getFilteredTestRuns().length === 0 ? 5 : -1);
843
858
  } }
844
- function TestSuiteRunFormComponentExtended_div_120_a_15_Template(rf, ctx) { if (rf & 1) {
859
+ function TestSuiteRunFormComponentExtended_Conditional_131_Conditional_15_Template(rf, ctx) { if (rf & 1) {
845
860
  const _r23 = i0.ɵɵgetCurrentView();
846
- i0.ɵɵelementStart(0, "a", 62);
847
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_120_a_15_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestSuite()); });
861
+ i0.ɵɵelementStart(0, "a", 3);
862
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_131_Conditional_15_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestSuite()); });
848
863
  i0.ɵɵtext(1);
849
864
  i0.ɵɵelementEnd();
850
865
  } if (rf & 2) {
@@ -852,76 +867,77 @@ function TestSuiteRunFormComponentExtended_div_120_a_15_Template(rf, ctx) { if (
852
867
  i0.ɵɵadvance();
853
868
  i0.ɵɵtextInterpolate(ctx_r1.testSuite.Name);
854
869
  } }
855
- function TestSuiteRunFormComponentExtended_div_120_span_16_Template(rf, ctx) { if (rf & 1) {
870
+ function TestSuiteRunFormComponentExtended_Conditional_131_Conditional_16_Template(rf, ctx) { if (rf & 1) {
856
871
  i0.ɵɵelementStart(0, "span");
857
872
  i0.ɵɵtext(1, "Loading...");
858
873
  i0.ɵɵelementEnd();
859
874
  } }
860
- function TestSuiteRunFormComponentExtended_div_120_Template(rf, ctx) { if (rf & 1) {
861
- i0.ɵɵelementStart(0, "div", 242)(1, "div", 243)(2, "h3");
862
- i0.ɵɵelement(3, "i", 47);
875
+ function TestSuiteRunFormComponentExtended_Conditional_131_Template(rf, ctx) { if (rf & 1) {
876
+ i0.ɵɵelementStart(0, "div", 60)(1, "div", 204)(2, "h3");
877
+ i0.ɵɵelement(3, "i", 52);
863
878
  i0.ɵɵtext(4, " Run Information");
864
879
  i0.ɵɵelementEnd();
865
- i0.ɵɵelementStart(5, "div", 244)(6, "div", 245)(7, "div", 246);
880
+ i0.ɵɵelementStart(5, "div", 205)(6, "div", 206)(7, "div", 207);
866
881
  i0.ɵɵtext(8, "Run ID");
867
882
  i0.ɵɵelementEnd();
868
- i0.ɵɵelementStart(9, "div", 247);
883
+ i0.ɵɵelementStart(9, "div", 208);
869
884
  i0.ɵɵtext(10);
870
885
  i0.ɵɵelementEnd()();
871
- i0.ɵɵelementStart(11, "div", 245)(12, "div", 246);
886
+ i0.ɵɵelementStart(11, "div", 206)(12, "div", 207);
872
887
  i0.ɵɵtext(13, "Test Suite");
873
888
  i0.ɵɵelementEnd();
874
- i0.ɵɵelementStart(14, "div", 248);
875
- i0.ɵɵtemplate(15, TestSuiteRunFormComponentExtended_div_120_a_15_Template, 2, 1, "a", 249)(16, TestSuiteRunFormComponentExtended_div_120_span_16_Template, 2, 0, "span", 250);
889
+ i0.ɵɵelementStart(14, "div", 209);
890
+ i0.ɵɵconditionalCreate(15, TestSuiteRunFormComponentExtended_Conditional_131_Conditional_15_Template, 2, 1, "a", 210);
891
+ i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_131_Conditional_16_Template, 2, 0, "span");
876
892
  i0.ɵɵelementEnd()();
877
- i0.ɵɵelementStart(17, "div", 245)(18, "div", 246);
893
+ i0.ɵɵelementStart(17, "div", 206)(18, "div", 207);
878
894
  i0.ɵɵtext(19, "Status");
879
895
  i0.ɵɵelementEnd();
880
- i0.ɵɵelementStart(20, "div", 248)(21, "span", 251);
896
+ i0.ɵɵelementStart(20, "div", 209)(21, "span", 211);
881
897
  i0.ɵɵtext(22);
882
898
  i0.ɵɵelementEnd()()();
883
- i0.ɵɵelementStart(23, "div", 245)(24, "div", 246);
899
+ i0.ɵɵelementStart(23, "div", 206)(24, "div", 207);
884
900
  i0.ɵɵtext(25, "Run By");
885
901
  i0.ɵɵelementEnd();
886
- i0.ɵɵelementStart(26, "div", 248);
902
+ i0.ɵɵelementStart(26, "div", 209);
887
903
  i0.ɵɵtext(27);
888
904
  i0.ɵɵelementEnd()();
889
- i0.ɵɵelementStart(28, "div", 245)(29, "div", 246);
905
+ i0.ɵɵelementStart(28, "div", 206)(29, "div", 207);
890
906
  i0.ɵɵtext(30, "Started At");
891
907
  i0.ɵɵelementEnd();
892
- i0.ɵɵelementStart(31, "div", 248);
908
+ i0.ɵɵelementStart(31, "div", 209);
893
909
  i0.ɵɵtext(32);
894
910
  i0.ɵɵpipe(33, "date");
895
911
  i0.ɵɵelementEnd()();
896
- i0.ɵɵelementStart(34, "div", 245)(35, "div", 246);
912
+ i0.ɵɵelementStart(34, "div", 206)(35, "div", 207);
897
913
  i0.ɵɵtext(36, "Completed At");
898
914
  i0.ɵɵelementEnd();
899
- i0.ɵɵelementStart(37, "div", 248);
915
+ i0.ɵɵelementStart(37, "div", 209);
900
916
  i0.ɵɵtext(38);
901
917
  i0.ɵɵpipe(39, "date");
902
918
  i0.ɵɵelementEnd()();
903
- i0.ɵɵelementStart(40, "div", 245)(41, "div", 246);
919
+ i0.ɵɵelementStart(40, "div", 206)(41, "div", 207);
904
920
  i0.ɵɵtext(42, "Environment");
905
921
  i0.ɵɵelementEnd();
906
- i0.ɵɵelementStart(43, "div", 248);
922
+ i0.ɵɵelementStart(43, "div", 209);
907
923
  i0.ɵɵtext(44);
908
924
  i0.ɵɵelementEnd()();
909
- i0.ɵɵelementStart(45, "div", 245)(46, "div", 246);
925
+ i0.ɵɵelementStart(45, "div", 206)(46, "div", 207);
910
926
  i0.ɵɵtext(47, "Trigger Type");
911
927
  i0.ɵɵelementEnd();
912
- i0.ɵɵelementStart(48, "div", 248);
928
+ i0.ɵɵelementStart(48, "div", 209);
913
929
  i0.ɵɵtext(49);
914
930
  i0.ɵɵelementEnd()();
915
- i0.ɵɵelementStart(50, "div", 245)(51, "div", 246);
931
+ i0.ɵɵelementStart(50, "div", 206)(51, "div", 207);
916
932
  i0.ɵɵtext(52, "Git Commit");
917
933
  i0.ɵɵelementEnd();
918
- i0.ɵɵelementStart(53, "div", 247);
934
+ i0.ɵɵelementStart(53, "div", 208);
919
935
  i0.ɵɵtext(54);
920
936
  i0.ɵɵelementEnd()();
921
- i0.ɵɵelementStart(55, "div", 245)(56, "div", 246);
937
+ i0.ɵɵelementStart(55, "div", 206)(56, "div", 207);
922
938
  i0.ɵɵtext(57, "Agent Version");
923
939
  i0.ɵɵelementEnd();
924
- i0.ɵɵelementStart(58, "div", 248);
940
+ i0.ɵɵelementStart(58, "div", 209);
925
941
  i0.ɵɵtext(59);
926
942
  i0.ɵɵelementEnd()()()()();
927
943
  } if (rf & 2) {
@@ -929,9 +945,9 @@ function TestSuiteRunFormComponentExtended_div_120_Template(rf, ctx) { if (rf &
929
945
  i0.ɵɵadvance(10);
930
946
  i0.ɵɵtextInterpolate(ctx_r1.record.ID);
931
947
  i0.ɵɵadvance(5);
932
- i0.ɵɵproperty("ngIf", ctx_r1.testSuite);
948
+ i0.ɵɵconditional(ctx_r1.testSuite ? 15 : -1);
933
949
  i0.ɵɵadvance();
934
- i0.ɵɵproperty("ngIf", !ctx_r1.testSuite);
950
+ i0.ɵɵconditional(!ctx_r1.testSuite ? 16 : -1);
935
951
  i0.ɵɵadvance(5);
936
952
  i0.ɵɵproperty("ngClass", ctx_r1.getStatusClass());
937
953
  i0.ɵɵadvance();
@@ -951,67 +967,67 @@ function TestSuiteRunFormComponentExtended_div_120_Template(rf, ctx) { if (rf &
951
967
  i0.ɵɵadvance(5);
952
968
  i0.ɵɵtextInterpolate(ctx_r1.record.AgentVersion || "N/A");
953
969
  } }
954
- function TestSuiteRunFormComponentExtended_div_121_div_1_Template(rf, ctx) { if (rf & 1) {
955
- i0.ɵɵelementStart(0, "div", 255);
956
- i0.ɵɵelement(1, "i", 102);
970
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_1_Template(rf, ctx) { if (rf & 1) {
971
+ i0.ɵɵelementStart(0, "div", 212);
972
+ i0.ɵɵelement(1, "i", 90);
957
973
  i0.ɵɵelementStart(2, "span");
958
974
  i0.ɵɵtext(3, "Loading test results...");
959
975
  i0.ɵɵelementEnd()();
960
976
  } }
961
- function TestSuiteRunFormComponentExtended_div_121_div_2_Template(rf, ctx) { if (rf & 1) {
962
- i0.ɵɵelementStart(0, "div", 256)(1, "h3");
963
- i0.ɵɵelement(2, "i", 257);
977
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_2_Template(rf, ctx) { if (rf & 1) {
978
+ i0.ɵɵelementStart(0, "div", 213)(1, "h3");
979
+ i0.ɵɵelement(2, "i", 214);
964
980
  i0.ɵɵtext(3, " Summary Statistics");
965
981
  i0.ɵɵelementEnd();
966
- i0.ɵɵelementStart(4, "div", 258)(5, "div", 259)(6, "div", 260);
967
- i0.ɵɵelement(7, "i", 28);
982
+ i0.ɵɵelementStart(4, "div", 215)(5, "div", 216)(6, "div", 217);
983
+ i0.ɵɵelement(7, "i", 33);
968
984
  i0.ɵɵelementEnd();
969
- i0.ɵɵelementStart(8, "div", 261)(9, "div", 110);
985
+ i0.ɵɵelementStart(8, "div", 218)(9, "div", 99);
970
986
  i0.ɵɵtext(10);
971
987
  i0.ɵɵelementEnd();
972
- i0.ɵɵelementStart(11, "div", 111);
988
+ i0.ɵɵelementStart(11, "div", 100);
973
989
  i0.ɵɵtext(12, "Passed");
974
990
  i0.ɵɵelementEnd();
975
- i0.ɵɵelementStart(13, "div", 262);
991
+ i0.ɵɵelementStart(13, "div", 219);
976
992
  i0.ɵɵtext(14);
977
993
  i0.ɵɵelementEnd()()();
978
- i0.ɵɵelementStart(15, "div", 259)(16, "div", 263);
979
- i0.ɵɵelement(17, "i", 33);
994
+ i0.ɵɵelementStart(15, "div", 216)(16, "div", 220);
995
+ i0.ɵɵelement(17, "i", 38);
980
996
  i0.ɵɵelementEnd();
981
- i0.ɵɵelementStart(18, "div", 261)(19, "div", 110);
997
+ i0.ɵɵelementStart(18, "div", 218)(19, "div", 99);
982
998
  i0.ɵɵtext(20);
983
999
  i0.ɵɵelementEnd();
984
- i0.ɵɵelementStart(21, "div", 111);
1000
+ i0.ɵɵelementStart(21, "div", 100);
985
1001
  i0.ɵɵtext(22, "Failed");
986
1002
  i0.ɵɵelementEnd();
987
- i0.ɵɵelementStart(23, "div", 262);
1003
+ i0.ɵɵelementStart(23, "div", 219);
988
1004
  i0.ɵɵtext(24);
989
1005
  i0.ɵɵelementEnd()()();
990
- i0.ɵɵelementStart(25, "div", 259)(26, "div", 264);
991
- i0.ɵɵelement(27, "i", 265);
1006
+ i0.ɵɵelementStart(25, "div", 216)(26, "div", 221);
1007
+ i0.ɵɵelement(27, "i", 222);
992
1008
  i0.ɵɵelementEnd();
993
- i0.ɵɵelementStart(28, "div", 261)(29, "div", 110);
1009
+ i0.ɵɵelementStart(28, "div", 218)(29, "div", 99);
994
1010
  i0.ɵɵtext(30);
995
1011
  i0.ɵɵelementEnd();
996
- i0.ɵɵelementStart(31, "div", 111);
1012
+ i0.ɵɵelementStart(31, "div", 100);
997
1013
  i0.ɵɵtext(32, "Avg Score");
998
1014
  i0.ɵɵelementEnd()()();
999
- i0.ɵɵelementStart(33, "div", 259)(34, "div", 266);
1000
- i0.ɵɵelement(35, "i", 18);
1015
+ i0.ɵɵelementStart(33, "div", 216)(34, "div", 223);
1016
+ i0.ɵɵelement(35, "i", 23);
1001
1017
  i0.ɵɵelementEnd();
1002
- i0.ɵɵelementStart(36, "div", 261)(37, "div", 110);
1018
+ i0.ɵɵelementStart(36, "div", 218)(37, "div", 99);
1003
1019
  i0.ɵɵtext(38);
1004
1020
  i0.ɵɵelementEnd();
1005
- i0.ɵɵelementStart(39, "div", 111);
1021
+ i0.ɵɵelementStart(39, "div", 100);
1006
1022
  i0.ɵɵtext(40, "Avg Duration");
1007
1023
  i0.ɵɵelementEnd()()();
1008
- i0.ɵɵelementStart(41, "div", 259)(42, "div", 267);
1009
- i0.ɵɵelement(43, "i", 23);
1024
+ i0.ɵɵelementStart(41, "div", 216)(42, "div", 224);
1025
+ i0.ɵɵelement(43, "i", 28);
1010
1026
  i0.ɵɵelementEnd();
1011
- i0.ɵɵelementStart(44, "div", 261)(45, "div", 110);
1027
+ i0.ɵɵelementStart(44, "div", 218)(45, "div", 99);
1012
1028
  i0.ɵɵtext(46);
1013
1029
  i0.ɵɵelementEnd();
1014
- i0.ɵɵelementStart(47, "div", 111);
1030
+ i0.ɵɵelementStart(47, "div", 100);
1015
1031
  i0.ɵɵtext(48, "Total Cost");
1016
1032
  i0.ɵɵelementEnd()()()()();
1017
1033
  } if (rf & 2) {
@@ -1029,25 +1045,25 @@ function TestSuiteRunFormComponentExtended_div_121_div_2_Template(rf, ctx) { if
1029
1045
  i0.ɵɵadvance(8);
1030
1046
  i0.ɵɵtextInterpolate1("", ctx_r1.getAverageDuration().toFixed(1), "s");
1031
1047
  i0.ɵɵadvance(8);
1032
- i0.ɵɵtextInterpolate1("$", ctx_r1.getTotalCost().toFixed(4), "");
1048
+ i0.ɵɵtextInterpolate1("$", ctx_r1.getTotalCost().toFixed(4));
1033
1049
  } }
1034
- function TestSuiteRunFormComponentExtended_div_121_div_3_th_26_Template(rf, ctx) { if (rf & 1) {
1035
- i0.ɵɵelementStart(0, "th", 285);
1050
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_26_Template(rf, ctx) { if (rf & 1) {
1051
+ i0.ɵɵelementStart(0, "th", 236);
1036
1052
  i0.ɵɵtext(1, "Status");
1037
1053
  i0.ɵɵelementEnd();
1038
1054
  } }
1039
- function TestSuiteRunFormComponentExtended_div_121_div_3_th_27_Template(rf, ctx) { if (rf & 1) {
1040
- i0.ɵɵelementStart(0, "th", 286);
1055
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1056
+ i0.ɵɵelementStart(0, "th", 237);
1041
1057
  i0.ɵɵtext(1, "Auto Score");
1042
1058
  i0.ɵɵelementEnd();
1043
1059
  } }
1044
- function TestSuiteRunFormComponentExtended_div_121_div_3_th_28_Template(rf, ctx) { if (rf & 1) {
1045
- i0.ɵɵelementStart(0, "th", 287);
1060
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_28_Template(rf, ctx) { if (rf & 1) {
1061
+ i0.ɵɵelementStart(0, "th", 238);
1046
1062
  i0.ɵɵtext(1, "Human Score");
1047
1063
  i0.ɵɵelementEnd();
1048
1064
  } }
1049
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_div_7_span_1_Template(rf, ctx) { if (rf & 1) {
1050
- i0.ɵɵelementStart(0, "span", 295);
1065
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
1066
+ i0.ɵɵelementStart(0, "span", 247);
1051
1067
  i0.ɵɵtext(1);
1052
1068
  i0.ɵɵelementEnd();
1053
1069
  } if (rf & 2) {
@@ -1055,19 +1071,19 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_div_7_span_1_Temp
1055
1071
  i0.ɵɵadvance();
1056
1072
  i0.ɵɵtextInterpolate(tag_r26);
1057
1073
  } }
1058
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_div_7_Template(rf, ctx) { if (rf & 1) {
1059
- i0.ɵɵelementStart(0, "div", 293);
1060
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_div_7_span_1_Template, 2, 1, "span", 294);
1074
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1075
+ i0.ɵɵelementStart(0, "div", 245);
1076
+ i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_For_2_Template, 2, 1, "span", 247, i0.ɵɵrepeaterTrackByIdentity);
1061
1077
  i0.ɵɵelementEnd();
1062
1078
  } if (rf & 2) {
1063
1079
  const run_r25 = i0.ɵɵnextContext().$implicit;
1064
1080
  const ctx_r1 = i0.ɵɵnextContext(3);
1065
1081
  i0.ɵɵadvance();
1066
- i0.ɵɵproperty("ngForOf", ctx_r1.getRunTags(run_r25).slice(0, 2));
1082
+ i0.ɵɵrepeater(ctx_r1.getRunTags(run_r25).slice(0, 2));
1067
1083
  } }
1068
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_8_Template(rf, ctx) { if (rf & 1) {
1069
- i0.ɵɵelementStart(0, "td", 285)(1, "span", 9);
1070
- i0.ɵɵelement(2, "i", 209);
1084
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1085
+ i0.ɵɵelementStart(0, "td", 236)(1, "span", 14);
1086
+ i0.ɵɵelement(2, "i", 179);
1071
1087
  i0.ɵɵtext(3);
1072
1088
  i0.ɵɵelementEnd()();
1073
1089
  } if (rf & 2) {
@@ -1079,11 +1095,11 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_8_Template(rf,
1079
1095
  i0.ɵɵadvance();
1080
1096
  i0.ɵɵtextInterpolate1(" ", run_r25.Status, " ");
1081
1097
  } }
1082
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_div_1_Template(rf, ctx) { if (rf & 1) {
1083
- i0.ɵɵelementStart(0, "div", 297)(1, "div", 298);
1084
- i0.ɵɵelement(2, "div", 299);
1098
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1099
+ i0.ɵɵelementStart(0, "div", 248)(1, "div", 249);
1100
+ i0.ɵɵelement(2, "div", 250);
1085
1101
  i0.ɵɵelementEnd();
1086
- i0.ɵɵelementStart(3, "span", 300);
1102
+ i0.ɵɵelementStart(3, "span", 251);
1087
1103
  i0.ɵɵtext(4);
1088
1104
  i0.ɵɵelementEnd()();
1089
1105
  } if (rf & 2) {
@@ -1094,25 +1110,26 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_div_1_Templa
1094
1110
  i0.ɵɵadvance(2);
1095
1111
  i0.ɵɵtextInterpolate1("", (run_r25.Score * 100).toFixed(0), "%");
1096
1112
  } }
1097
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_span_2_Template(rf, ctx) { if (rf & 1) {
1098
- i0.ɵɵelementStart(0, "span", 301);
1113
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1114
+ i0.ɵɵelementStart(0, "span", 246);
1099
1115
  i0.ɵɵtext(1, "\u2014");
1100
1116
  i0.ɵɵelementEnd();
1101
1117
  } }
1102
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_Template(rf, ctx) { if (rf & 1) {
1103
- i0.ɵɵelementStart(0, "td", 286);
1104
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_div_1_Template, 5, 9, "div", 296)(2, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_span_2_Template, 2, 0, "span", 292);
1118
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1119
+ i0.ɵɵelementStart(0, "td", 237);
1120
+ i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_1_Template, 5, 9, "div", 248);
1121
+ i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_2_Template, 2, 0, "span", 246);
1105
1122
  i0.ɵɵelementEnd();
1106
1123
  } if (rf & 2) {
1107
1124
  const run_r25 = i0.ɵɵnextContext().$implicit;
1108
1125
  i0.ɵɵadvance();
1109
- i0.ɵɵproperty("ngIf", run_r25.Score != null);
1126
+ i0.ɵɵconditional(run_r25.Score != null ? 1 : -1);
1110
1127
  i0.ɵɵadvance();
1111
- i0.ɵɵproperty("ngIf", run_r25.Score == null);
1128
+ i0.ɵɵconditional(run_r25.Score == null ? 2 : -1);
1112
1129
  } }
1113
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_span_3_Template(rf, ctx) { if (rf & 1) {
1114
- i0.ɵɵelementStart(0, "span", 307);
1115
- i0.ɵɵelement(1, "i", 209);
1130
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1131
+ i0.ɵɵelementStart(0, "span", 255);
1132
+ i0.ɵɵelement(1, "i", 179);
1116
1133
  i0.ɵɵelementEnd();
1117
1134
  } if (rf & 2) {
1118
1135
  const run_r25 = i0.ɵɵnextContext(3).$implicit;
@@ -1120,11 +1137,11 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_span_
1120
1137
  i0.ɵɵadvance();
1121
1138
  i0.ɵɵclassProp("fa-check", ctx_r1.getHumanIsCorrect(run_r25.ID) === true)("fa-times", ctx_r1.getHumanIsCorrect(run_r25.ID) === false)("correct", ctx_r1.getHumanIsCorrect(run_r25.ID) === true)("incorrect", ctx_r1.getHumanIsCorrect(run_r25.ID) === false);
1122
1139
  } }
1123
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_Template(rf, ctx) { if (rf & 1) {
1124
- i0.ɵɵelementStart(0, "div", 304)(1, "span", 305);
1140
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1141
+ i0.ɵɵelementStart(0, "div", 252)(1, "span", 254);
1125
1142
  i0.ɵɵtext(2);
1126
1143
  i0.ɵɵelementEnd();
1127
- i0.ɵɵtemplate(3, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_span_3_Template, 2, 8, "span", 306);
1144
+ i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Conditional_3_Template, 2, 8, "span", 255);
1128
1145
  i0.ɵɵelementEnd();
1129
1146
  } if (rf & 2) {
1130
1147
  const run_r25 = i0.ɵɵnextContext(2).$implicit;
@@ -1134,26 +1151,27 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_Templ
1134
1151
  i0.ɵɵadvance();
1135
1152
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getFeedbackRating(run_r25.ID), "/10 ");
1136
1153
  i0.ɵɵadvance();
1137
- i0.ɵɵproperty("ngIf", ctx_r1.getHumanIsCorrect(run_r25.ID) !== null);
1154
+ i0.ɵɵconditional(ctx_r1.getHumanIsCorrect(run_r25.ID) !== null ? 3 : -1);
1138
1155
  } }
1139
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_span_2_Template(rf, ctx) { if (rf & 1) {
1140
- i0.ɵɵelementStart(0, "span", 308);
1141
- i0.ɵɵelement(1, "i", 309);
1156
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1157
+ i0.ɵɵelementStart(0, "span", 253);
1158
+ i0.ɵɵelement(1, "i", 256);
1142
1159
  i0.ɵɵelementEnd();
1143
1160
  } }
1144
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_Template(rf, ctx) { if (rf & 1) {
1145
- i0.ɵɵelementStart(0, "td", 287);
1146
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_Template, 4, 8, "div", 302)(2, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_span_2_Template, 2, 0, "span", 303);
1161
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Template(rf, ctx) { if (rf & 1) {
1162
+ i0.ɵɵelementStart(0, "td", 238);
1163
+ i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Template, 4, 8, "div", 252);
1164
+ i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_2_Template, 2, 0, "span", 253);
1147
1165
  i0.ɵɵelementEnd();
1148
1166
  } if (rf & 2) {
1149
1167
  const run_r25 = i0.ɵɵnextContext().$implicit;
1150
1168
  const ctx_r1 = i0.ɵɵnextContext(3);
1151
1169
  i0.ɵɵadvance();
1152
- i0.ɵɵproperty("ngIf", ctx_r1.hasFeedback(run_r25.ID));
1170
+ i0.ɵɵconditional(ctx_r1.hasFeedback(run_r25.ID) ? 1 : -1);
1153
1171
  i0.ɵɵadvance();
1154
- i0.ɵɵproperty("ngIf", !ctx_r1.hasFeedback(run_r25.ID));
1172
+ i0.ɵɵconditional(!ctx_r1.hasFeedback(run_r25.ID) ? 2 : -1);
1155
1173
  } }
1156
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_12_Template(rf, ctx) { if (rf & 1) {
1174
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1157
1175
  i0.ɵɵelementStart(0, "span");
1158
1176
  i0.ɵɵtext(1);
1159
1177
  i0.ɵɵelementEnd();
@@ -1162,121 +1180,127 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_12_Template(
1162
1180
  i0.ɵɵadvance();
1163
1181
  i0.ɵɵtextInterpolate1("", run_r25.DurationSeconds.toFixed(1), "s");
1164
1182
  } }
1165
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_13_Template(rf, ctx) { if (rf & 1) {
1166
- i0.ɵɵelementStart(0, "span", 301);
1183
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_13_Template(rf, ctx) { if (rf & 1) {
1184
+ i0.ɵɵelementStart(0, "span", 246);
1167
1185
  i0.ɵɵtext(1, "\u2014");
1168
1186
  i0.ɵɵelementEnd();
1169
1187
  } }
1170
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_15_Template(rf, ctx) { if (rf & 1) {
1188
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_15_Template(rf, ctx) { if (rf & 1) {
1171
1189
  i0.ɵɵelementStart(0, "span");
1172
1190
  i0.ɵɵtext(1);
1173
1191
  i0.ɵɵelementEnd();
1174
1192
  } if (rf & 2) {
1175
1193
  const run_r25 = i0.ɵɵnextContext().$implicit;
1176
1194
  i0.ɵɵadvance();
1177
- i0.ɵɵtextInterpolate1("$", run_r25.CostUSD.toFixed(4), "");
1195
+ i0.ɵɵtextInterpolate1("$", run_r25.CostUSD.toFixed(4));
1178
1196
  } }
1179
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_16_Template(rf, ctx) { if (rf & 1) {
1180
- i0.ɵɵelementStart(0, "span", 301);
1197
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1198
+ i0.ɵɵelementStart(0, "span", 246);
1181
1199
  i0.ɵɵtext(1, "\u2014");
1182
1200
  i0.ɵɵelementEnd();
1183
1201
  } }
1184
- function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_Template(rf, ctx) { if (rf & 1) {
1202
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Template(rf, ctx) { if (rf & 1) {
1185
1203
  const _r24 = i0.ɵɵgetCurrentView();
1186
- i0.ɵɵelementStart(0, "tr", 288);
1187
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_Template_tr_click_0_listener() { const run_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestRun(run_r25.ID)); });
1188
- i0.ɵɵelementStart(1, "td", 277);
1204
+ i0.ɵɵelementStart(0, "tr", 242);
1205
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Template_tr_click_0_listener() { const run_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestRun(run_r25.ID)); });
1206
+ i0.ɵɵelementStart(1, "td", 234);
1189
1207
  i0.ɵɵtext(2);
1190
1208
  i0.ɵɵelementEnd();
1191
- i0.ɵɵelementStart(3, "td", 278)(4, "div", 289)(5, "span", 290);
1209
+ i0.ɵɵelementStart(3, "td", 235)(4, "div", 243)(5, "span", 244);
1192
1210
  i0.ɵɵtext(6);
1193
1211
  i0.ɵɵelementEnd();
1194
- i0.ɵɵtemplate(7, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_div_7_Template, 2, 1, "div", 291);
1212
+ i0.ɵɵconditionalCreate(7, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_Template, 3, 0, "div", 245);
1195
1213
  i0.ɵɵelementEnd()();
1196
- i0.ɵɵtemplate(8, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_8_Template, 4, 16, "td", 279)(9, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_Template, 3, 2, "td", 280)(10, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_Template, 3, 2, "td", 281);
1197
- i0.ɵɵelementStart(11, "td", 282);
1198
- i0.ɵɵtemplate(12, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_12_Template, 2, 1, "span", 250)(13, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_13_Template, 2, 0, "span", 292);
1199
- i0.ɵɵelementEnd();
1200
- i0.ɵɵelementStart(14, "td", 283);
1201
- i0.ɵɵtemplate(15, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_15_Template, 2, 1, "span", 250)(16, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_16_Template, 2, 0, "span", 292);
1214
+ i0.ɵɵconditionalCreate(8, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_8_Template, 4, 16, "td", 236);
1215
+ i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Template, 3, 2, "td", 237);
1216
+ i0.ɵɵconditionalCreate(10, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Template, 3, 2, "td", 238);
1217
+ i0.ɵɵelementStart(11, "td", 239);
1218
+ i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_12_Template, 2, 1, "span");
1219
+ i0.ɵɵconditionalCreate(13, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_13_Template, 2, 0, "span", 246);
1220
+ i0.ɵɵelementEnd();
1221
+ i0.ɵɵelementStart(14, "td", 240);
1222
+ i0.ɵɵconditionalCreate(15, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_15_Template, 2, 1, "span");
1223
+ i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_16_Template, 2, 0, "span", 246);
1202
1224
  i0.ɵɵelementEnd()();
1203
1225
  } if (rf & 2) {
1204
1226
  const run_r25 = ctx.$implicit;
1205
- const i_r27 = ctx.index;
1227
+ const ɵ$index_1024_r27 = ctx.$index;
1206
1228
  const ctx_r1 = i0.ɵɵnextContext(3);
1207
1229
  i0.ɵɵclassProp("row-passed", run_r25.Status === "Passed")("row-failed", run_r25.Status === "Failed")("row-error", run_r25.Status === "Error")("row-skipped", run_r25.Status === "Skipped");
1208
1230
  i0.ɵɵadvance(2);
1209
- i0.ɵɵtextInterpolate(i_r27 + 1);
1231
+ i0.ɵɵtextInterpolate(ɵ$index_1024_r27 + 1);
1210
1232
  i0.ɵɵadvance(4);
1211
1233
  i0.ɵɵtextInterpolate(run_r25.Test || "Unknown Test");
1212
1234
  i0.ɵɵadvance();
1213
- i0.ɵɵproperty("ngIf", ctx_r1.getRunTags(run_r25).length > 0);
1235
+ i0.ɵɵconditional(ctx_r1.getRunTags(run_r25).length > 0 ? 7 : -1);
1214
1236
  i0.ɵɵadvance();
1215
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showExecution);
1237
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showExecution ? 8 : -1);
1216
1238
  i0.ɵɵadvance();
1217
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showAuto);
1239
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showAuto ? 9 : -1);
1218
1240
  i0.ɵɵadvance();
1219
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showHuman);
1241
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman ? 10 : -1);
1220
1242
  i0.ɵɵadvance(2);
1221
- i0.ɵɵproperty("ngIf", run_r25.DurationSeconds);
1243
+ i0.ɵɵconditional(run_r25.DurationSeconds ? 12 : -1);
1222
1244
  i0.ɵɵadvance();
1223
- i0.ɵɵproperty("ngIf", !run_r25.DurationSeconds);
1245
+ i0.ɵɵconditional(!run_r25.DurationSeconds ? 13 : -1);
1224
1246
  i0.ɵɵadvance(2);
1225
- i0.ɵɵproperty("ngIf", run_r25.CostUSD);
1247
+ i0.ɵɵconditional(run_r25.CostUSD ? 15 : -1);
1226
1248
  i0.ɵɵadvance();
1227
- i0.ɵɵproperty("ngIf", !run_r25.CostUSD);
1249
+ i0.ɵɵconditional(!run_r25.CostUSD ? 16 : -1);
1228
1250
  } }
1229
- function TestSuiteRunFormComponentExtended_div_121_div_3_Template(rf, ctx) { if (rf & 1) {
1230
- i0.ɵɵelementStart(0, "div", 256)(1, "div", 268)(2, "h3");
1231
- i0.ɵɵelement(3, "i", 269);
1251
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1252
+ i0.ɵɵelementStart(0, "div", 213)(1, "div", 225)(2, "h3");
1253
+ i0.ɵɵelement(3, "i", 226);
1232
1254
  i0.ɵɵtext(4, " Test Results");
1233
1255
  i0.ɵɵelementEnd();
1234
- i0.ɵɵelementStart(5, "div", 270)(6, "span", 271);
1235
- i0.ɵɵelement(7, "i", 28);
1256
+ i0.ɵɵelementStart(5, "div", 227)(6, "span", 228);
1257
+ i0.ɵɵelement(7, "i", 33);
1236
1258
  i0.ɵɵtext(8, " Passed");
1237
1259
  i0.ɵɵelementEnd();
1238
- i0.ɵɵelementStart(9, "span", 272);
1239
- i0.ɵɵelement(10, "i", 33);
1260
+ i0.ɵɵelementStart(9, "span", 229);
1261
+ i0.ɵɵelement(10, "i", 38);
1240
1262
  i0.ɵɵtext(11, " Failed");
1241
1263
  i0.ɵɵelementEnd();
1242
- i0.ɵɵelementStart(12, "span", 273);
1243
- i0.ɵɵelement(13, "i", 35);
1264
+ i0.ɵɵelementStart(12, "span", 230);
1265
+ i0.ɵɵelement(13, "i", 40);
1244
1266
  i0.ɵɵtext(14, " Error");
1245
1267
  i0.ɵɵelementEnd();
1246
- i0.ɵɵelementStart(15, "span", 274);
1247
- i0.ɵɵelement(16, "i", 37);
1268
+ i0.ɵɵelementStart(15, "span", 231);
1269
+ i0.ɵɵelement(16, "i", 42);
1248
1270
  i0.ɵɵtext(17, " Skipped");
1249
1271
  i0.ɵɵelementEnd()()();
1250
- i0.ɵɵelementStart(18, "div", 275)(19, "table", 276)(20, "thead")(21, "tr")(22, "th", 277);
1272
+ i0.ɵɵelementStart(18, "div", 232)(19, "table", 233)(20, "thead")(21, "tr")(22, "th", 234);
1251
1273
  i0.ɵɵtext(23, "#");
1252
1274
  i0.ɵɵelementEnd();
1253
- i0.ɵɵelementStart(24, "th", 278);
1275
+ i0.ɵɵelementStart(24, "th", 235);
1254
1276
  i0.ɵɵtext(25, "Test Name");
1255
1277
  i0.ɵɵelementEnd();
1256
- i0.ɵɵtemplate(26, TestSuiteRunFormComponentExtended_div_121_div_3_th_26_Template, 2, 0, "th", 279)(27, TestSuiteRunFormComponentExtended_div_121_div_3_th_27_Template, 2, 0, "th", 280)(28, TestSuiteRunFormComponentExtended_div_121_div_3_th_28_Template, 2, 0, "th", 281);
1257
- i0.ɵɵelementStart(29, "th", 282);
1278
+ i0.ɵɵconditionalCreate(26, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_26_Template, 2, 0, "th", 236);
1279
+ i0.ɵɵconditionalCreate(27, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_27_Template, 2, 0, "th", 237);
1280
+ i0.ɵɵconditionalCreate(28, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_28_Template, 2, 0, "th", 238);
1281
+ i0.ɵɵelementStart(29, "th", 239);
1258
1282
  i0.ɵɵtext(30, "Duration");
1259
1283
  i0.ɵɵelementEnd();
1260
- i0.ɵɵelementStart(31, "th", 283);
1284
+ i0.ɵɵelementStart(31, "th", 240);
1261
1285
  i0.ɵɵtext(32, "Cost");
1262
1286
  i0.ɵɵelementEnd()()();
1263
1287
  i0.ɵɵelementStart(33, "tbody");
1264
- i0.ɵɵtemplate(34, TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_Template, 17, 18, "tr", 284);
1288
+ i0.ɵɵrepeaterCreate(34, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Template, 17, 18, "tr", 241, i0.ɵɵrepeaterTrackByIdentity);
1265
1289
  i0.ɵɵelementEnd()()()();
1266
1290
  } if (rf & 2) {
1267
1291
  const ctx_r1 = i0.ɵɵnextContext(2);
1268
1292
  i0.ɵɵadvance(26);
1269
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showExecution);
1293
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showExecution ? 26 : -1);
1270
1294
  i0.ɵɵadvance();
1271
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showAuto);
1295
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showAuto ? 27 : -1);
1272
1296
  i0.ɵɵadvance();
1273
- i0.ɵɵproperty("ngIf", ctx_r1.evalPreferences.showHuman);
1297
+ i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman ? 28 : -1);
1274
1298
  i0.ɵɵadvance(6);
1275
- i0.ɵɵproperty("ngForOf", ctx_r1.testRuns);
1299
+ i0.ɵɵrepeater(ctx_r1.testRuns);
1276
1300
  } }
1277
- function TestSuiteRunFormComponentExtended_div_121_div_4_Template(rf, ctx) { if (rf & 1) {
1278
- i0.ɵɵelementStart(0, "div", 238)(1, "div", 239);
1279
- i0.ɵɵelement(2, "i", 49);
1301
+ function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1302
+ i0.ɵɵelementStart(0, "div", 144)(1, "div", 201);
1303
+ i0.ɵɵelement(2, "i", 54);
1280
1304
  i0.ɵɵelementEnd();
1281
1305
  i0.ɵɵelementStart(3, "h4");
1282
1306
  i0.ɵɵtext(4, "No Test Results Yet");
@@ -1285,52 +1309,55 @@ function TestSuiteRunFormComponentExtended_div_121_div_4_Template(rf, ctx) { if
1285
1309
  i0.ɵɵtext(6, "Test runs will appear here once the suite execution completes.");
1286
1310
  i0.ɵɵelementEnd()();
1287
1311
  } }
1288
- function TestSuiteRunFormComponentExtended_div_121_Template(rf, ctx) { if (rf & 1) {
1289
- i0.ɵɵelementStart(0, "div", 252);
1290
- i0.ɵɵtemplate(1, TestSuiteRunFormComponentExtended_div_121_div_1_Template, 4, 0, "div", 253)(2, TestSuiteRunFormComponentExtended_div_121_div_2_Template, 49, 7, "div", 254)(3, TestSuiteRunFormComponentExtended_div_121_div_3_Template, 35, 4, "div", 254)(4, TestSuiteRunFormComponentExtended_div_121_div_4_Template, 7, 0, "div", 169);
1312
+ function TestSuiteRunFormComponentExtended_Conditional_132_Template(rf, ctx) { if (rf & 1) {
1313
+ i0.ɵɵelementStart(0, "div", 61);
1314
+ i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_1_Template, 4, 0, "div", 212);
1315
+ i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_2_Template, 49, 7, "div", 213);
1316
+ i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Template, 36, 3, "div", 213);
1317
+ i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_4_Template, 7, 0, "div", 144);
1291
1318
  i0.ɵɵelementEnd();
1292
1319
  } if (rf & 2) {
1293
1320
  const ctx_r1 = i0.ɵɵnextContext();
1294
1321
  i0.ɵɵadvance();
1295
- i0.ɵɵproperty("ngIf", ctx_r1.loadingTestRuns);
1322
+ i0.ɵɵconditional(ctx_r1.loadingTestRuns ? 1 : -1);
1296
1323
  i0.ɵɵadvance();
1297
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0);
1324
+ i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 ? 2 : -1);
1298
1325
  i0.ɵɵadvance();
1299
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0);
1326
+ i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 ? 3 : -1);
1300
1327
  i0.ɵɵadvance();
1301
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingTestRuns && ctx_r1.testRunsLoaded && ctx_r1.testRuns.length === 0);
1328
+ i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRunsLoaded && ctx_r1.testRuns.length === 0 ? 4 : -1);
1302
1329
  } }
1303
- function TestSuiteRunFormComponentExtended_div_122_Template(rf, ctx) { if (rf & 1) {
1304
- i0.ɵɵelementStart(0, "div", 310);
1305
- i0.ɵɵelement(1, "mj-execution-context", 311);
1330
+ function TestSuiteRunFormComponentExtended_Conditional_133_Template(rf, ctx) { if (rf & 1) {
1331
+ i0.ɵɵelementStart(0, "div", 62);
1332
+ i0.ɵɵelement(1, "mj-execution-context", 257);
1306
1333
  i0.ɵɵelementEnd();
1307
1334
  } if (rf & 2) {
1308
1335
  const ctx_r1 = i0.ɵɵnextContext();
1309
1336
  i0.ɵɵadvance();
1310
1337
  i0.ɵɵproperty("machineName", ctx_r1.record.MachineName)("machineId", ctx_r1.record.MachineID)("runByUserName", ctx_r1.record.RunByUserName)("runByUserEmail", ctx_r1.record.RunByUserEmail)("runContextDetailsJson", ctx_r1.record.RunContextDetails);
1311
1338
  } }
1312
- function TestSuiteRunFormComponentExtended_div_125_Template(rf, ctx) { if (rf & 1) {
1339
+ function TestSuiteRunFormComponentExtended_Conditional_136_Template(rf, ctx) { if (rf & 1) {
1313
1340
  const _r28 = i0.ɵɵgetCurrentView();
1314
- i0.ɵɵelementStart(0, "div", 312)(1, "div", 313);
1315
- i0.ɵɵelement(2, "i", 59);
1341
+ i0.ɵɵelementStart(0, "div", 65)(1, "div", 258);
1342
+ i0.ɵɵelement(2, "i", 64);
1316
1343
  i0.ɵɵtext(3, " Shortcuts ");
1317
- i0.ɵɵelementStart(4, "button", 314);
1318
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_div_125_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShortcuts()); });
1319
- i0.ɵɵelement(5, "i", 100);
1344
+ i0.ɵɵelementStart(4, "button", 259);
1345
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_136_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShortcuts()); });
1346
+ i0.ɵɵelement(5, "i", 93);
1320
1347
  i0.ɵɵelementEnd()();
1321
- i0.ɵɵelementStart(6, "div", 315)(7, "div", 316)(8, "span");
1348
+ i0.ɵɵelementStart(6, "div", 260)(7, "div", 261)(8, "span");
1322
1349
  i0.ɵɵtext(9, "Refresh");
1323
1350
  i0.ɵɵelementEnd();
1324
- i0.ɵɵelementStart(10, "span", 317)(11, "kbd");
1351
+ i0.ɵɵelementStart(10, "span", 262)(11, "kbd");
1325
1352
  i0.ɵɵtext(12, "Cmd");
1326
1353
  i0.ɵɵelementEnd();
1327
1354
  i0.ɵɵelementStart(13, "kbd");
1328
1355
  i0.ɵɵtext(14, "R");
1329
1356
  i0.ɵɵelementEnd()()();
1330
- i0.ɵɵelementStart(15, "div", 316)(16, "span");
1357
+ i0.ɵɵelementStart(15, "div", 261)(16, "span");
1331
1358
  i0.ɵɵtext(17, "Re-run Suite");
1332
1359
  i0.ɵɵelementEnd();
1333
- i0.ɵɵelementStart(18, "span", 317)(19, "kbd");
1360
+ i0.ɵɵelementStart(18, "span", 262)(19, "kbd");
1334
1361
  i0.ɵɵtext(20, "Cmd");
1335
1362
  i0.ɵɵelementEnd();
1336
1363
  i0.ɵɵelementStart(21, "kbd");
@@ -1339,10 +1366,10 @@ function TestSuiteRunFormComponentExtended_div_125_Template(rf, ctx) { if (rf &
1339
1366
  i0.ɵɵelementStart(23, "kbd");
1340
1367
  i0.ɵɵtext(24, "R");
1341
1368
  i0.ɵɵelementEnd()()();
1342
- i0.ɵɵelementStart(25, "div", 316)(26, "span");
1369
+ i0.ɵɵelementStart(25, "div", 261)(26, "span");
1343
1370
  i0.ɵɵtext(27, "Switch Tabs");
1344
1371
  i0.ɵɵelementEnd();
1345
- i0.ɵɵelementStart(28, "span", 317)(29, "kbd");
1372
+ i0.ɵɵelementStart(28, "span", 262)(29, "kbd");
1346
1373
  i0.ɵɵtext(30, "1");
1347
1374
  i0.ɵɵelementEnd();
1348
1375
  i0.ɵɵtext(31, "-");
@@ -1353,13 +1380,14 @@ function TestSuiteRunFormComponentExtended_div_125_Template(rf, ctx) { if (rf &
1353
1380
  /** Settings key for keyboard shortcuts visibility */
1354
1381
  const SHORTCUTS_SETTINGS_KEY = '__mj.Testing.ShowKeyboardShortcuts';
1355
1382
  let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended extends TestSuiteRunFormComponent {
1356
- constructor(elementRef, sharedService, router, route, cdr, testingDialogService, evalPrefsService, viewContainerRef) {
1383
+ constructor(elementRef, sharedService, router, route, cdr, testingDialogService, evalPrefsService, viewContainerRef, appManager) {
1357
1384
  super(elementRef, sharedService, router, route, cdr);
1358
1385
  this.router = router;
1359
1386
  this.cdr = cdr;
1360
1387
  this.testingDialogService = testingDialogService;
1361
1388
  this.evalPrefsService = evalPrefsService;
1362
1389
  this.viewContainerRef = viewContainerRef;
1390
+ this.appManager = appManager;
1363
1391
  this.destroy$ = new Subject();
1364
1392
  // UI state
1365
1393
  this.activeTab = 'overview';
@@ -1621,6 +1649,12 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
1621
1649
  return `${diffDays}d ago`;
1622
1650
  return d.toLocaleDateString();
1623
1651
  }
1652
+ navigateToTestingDashboard() {
1653
+ const testingApp = this.appManager.GetAppByName('Testing');
1654
+ if (testingApp) {
1655
+ this.navigationService.SwitchToApp(testingApp.ID);
1656
+ }
1657
+ }
1624
1658
  openTestSuite() {
1625
1659
  if (this.testSuite) {
1626
1660
  SharedService.Instance.OpenEntityRecord('MJ: Test Suites', CompositeKey.FromID(this.testSuite.ID));
@@ -2041,154 +2075,172 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
2041
2075
  URL.revokeObjectURL(link.href);
2042
2076
  SharedService.Instance.CreateSimpleNotification('Export complete', 'success', 2000);
2043
2077
  }
2044
- static { this.ɵfac = function TestSuiteRunFormComponentExtended_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestSuiteRunFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.TestingDialogService), i0.ɵɵdirectiveInject(i3.EvaluationPreferencesService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; }
2078
+ static { this.ɵfac = function TestSuiteRunFormComponentExtended_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestSuiteRunFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.TestingDialogService), i0.ɵɵdirectiveInject(i3.EvaluationPreferencesService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i4.ApplicationManager)); }; }
2045
2079
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestSuiteRunFormComponentExtended, selectors: [["mj-test-suite-run-form"]], hostBindings: function TestSuiteRunFormComponentExtended_HostBindings(rf, ctx) { if (rf & 1) {
2046
- i0.ɵɵlistener("keydown", function TestSuiteRunFormComponentExtended_keydown_HostBindingHandler($event) { return ctx.handleKeyboardShortcut($event); }, false, i0.ɵɵresolveDocument);
2047
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 126, vars: 47, consts: [["kendoDialogContainer", "", 1, "test-suite-run-form"], [1, "suite-run-header"], ["class", "breadcrumb", 4, "ngIf"], [1, "header-content"], [1, "header-left"], [1, "suite-run-icon"], [1, "fas", 3, "ngClass"], [1, "suite-run-info"], [1, "suite-run-meta"], [1, "status-badge", 3, "ngClass"], ["class", "meta-tag environment", 4, "ngIf"], ["class", "meta-tag trigger", 4, "ngIf"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", 3, "click", 4, "ngIf"], ["kendoButton", "", 3, "click", "disabled"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-icon"], [1, "fas", "fa-clock"], [1, "metric-content"], [1, "metric-value"], [1, "metric-label"], [1, "fas", "fa-percentage"], [1, "fas", "fa-dollar-sign"], [1, "fas", "fa-calendar"], [1, "results-summary"], [1, "result-item", "passed"], [1, "result-icon"], [1, "fas", "fa-check-circle"], [1, "result-content"], [1, "result-count"], [1, "result-label"], [1, "result-item", "failed"], [1, "fas", "fa-times-circle"], [1, "result-item", "error"], [1, "fas", "fa-exclamation-circle"], [1, "result-item", "skipped"], [1, "fas", "fa-forward"], [1, "result-item", "total"], [1, "fas", "fa-list"], ["class", "tags-bar", 4, "ngIf"], ["class", "tags-editor-panel", 4, "ngIf"], [1, "tabs-container"], ["role", "tablist", 1, "tabs"], ["role", "tab", 1, "tab", 3, "click"], [1, "fas", "fa-th-large"], ["class", "tab-badge", 4, "ngIf"], [1, "fas", "fa-info-circle"], ["role", "tab", "title", "Press 4", 1, "tab", 3, "click"], [1, "fas", "fa-chart-bar"], ["role", "tab", "title", "Press 5", 1, "tab", 3, "click"], [1, "fas", "fa-microchip"], [1, "tab-content"], ["class", "overview-tab", 4, "ngIf"], ["class", "runs-tab", 4, "ngIf"], ["class", "details-tab", 4, "ngIf"], ["class", "analytics-tab", 4, "ngIf"], ["class", "execution-tab", 4, "ngIf"], [1, "shortcuts-toggle", 3, "click", "title"], [1, "fas", "fa-keyboard"], ["class", "keyboard-shortcuts", 4, "ngIf"], [1, "breadcrumb"], ["href", "javascript:void(0)", 3, "click"], [1, "fas", "fa-layer-group"], [1, "fas", "fa-chevron-right", "separator"], [1, "current"], [1, "meta-tag", "environment"], [1, "fas", "fa-server"], [1, "meta-tag", "trigger"], [1, "fas", "fa-bolt"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "fas", "fa-play"], [1, "tags-bar"], [1, "tags-bar-content"], [1, "tags-bar-label"], [1, "fas", "fa-tags"], ["class", "tags-bar-chips", 4, "ngIf"], ["class", "tags-bar-empty", 4, "ngIf"], ["title", "Edit tags", 1, "tags-bar-edit", 3, "click"], [1, "fas", "fa-plus"], [1, "tags-bar-chips"], ["class", "tag-inline", 4, "ngFor", "ngForOf"], [1, "tag-inline"], [1, "tags-bar-empty"], [1, "tags-editor-panel"], [1, "tags-editor-header"], [1, "tags-editor-title"], [1, "tags-editor-body"], [1, "tags-editor-chips"], ["class", "tag-editable", 4, "ngFor", "ngForOf"], ["class", "tags-empty-hint", 4, "ngIf"], [1, "tags-editor-input"], ["type", "text", "placeholder", "Type a tag and press Enter...", 1, "tag-text-input", 3, "ngModelChange", "keyup.enter", "ngModel"], ["kendoButton", "", "fillMode", "flat", 3, "click", "disabled"], [1, "tags-editor-footer"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], ["class", "fas fa-spinner fa-spin", 4, "ngIf"], ["kendoButton", "", "fillMode", "flat", 3, "click"], [1, "tag-editable"], ["title", "Remove tag", 1, "tag-remove-btn", 3, "click"], [1, "fas", "fa-times"], [1, "tags-empty-hint"], [1, "fas", "fa-spinner", "fa-spin"], [1, "tab-badge"], [1, "overview-tab"], [1, "result-hero"], [1, "result-hero-icon"], [1, "result-hero-text"], [1, "result-hero-stats"], [1, "stat-item"], [1, "stat-value"], [1, "stat-label"], [1, "stat-divider"], ["class", "evaluation-summary", 4, "ngIf"], ["class", "needs-review-section", 4, "ngIf"], ["class", "progress-section", 4, "ngIf"], [1, "evaluation-summary"], [1, "eval-summary-grid"], ["class", "eval-summary-card", 4, "ngIf"], [1, "eval-summary-card"], [1, "eval-card-header"], [1, "fa-solid", "fa-user"], [1, "eval-card-body"], [1, "eval-stat-row"], [1, "eval-stat-label"], [1, "eval-stat-value"], ["class", "eval-stat-row", 4, "ngIf"], ["class", "eval-card-footer", 4, "ngIf"], [1, "eval-stat-value", "correct"], ["class", "eval-stat-value incorrect", 4, "ngIf"], [1, "eval-stat-value", "incorrect"], [1, "eval-card-footer"], [1, "pending-badge"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-circle-check"], ["class", "eval-stat-value error", 4, "ngIf"], ["class", "eval-stat-value timeout", 4, "ngIf"], [1, "eval-stat-value", "error"], [1, "eval-stat-value", "timeout"], [1, "needs-review-section"], [1, "needs-review-header"], [1, "fa-solid", "fa-user-clock"], [1, "review-count"], [1, "needs-review-list"], ["class", "review-item", 3, "high-priority", "medium-priority", "click", 4, "ngFor", "ngForOf"], ["class", "review-more", 4, "ngIf"], [1, "review-item", 3, "click"], [1, "review-item-icon"], ["class", "fa-solid fa-exclamation-triangle", 4, "ngIf"], ["class", "fa-solid fa-circle-dot", 4, "ngIf"], ["class", "fa-solid fa-clock", 4, "ngIf"], [1, "review-item-content"], [1, "review-item-name"], [1, "review-item-reason"], [1, "review-item-action"], [1, "fa-solid", "fa-chevron-right"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-circle-dot"], [1, "review-more"], [1, "progress-section"], [1, "progress-info"], [1, "fas", "fa-circle-notch", "fa-spin"], [1, "auto-refresh-notice"], [1, "fas", "fa-sync"], [1, "runs-tab"], ["class", "runs-toolbar", 4, "ngIf"], ["class", "loading-state", 4, "ngIf"], ["class", "test-runs-list", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], [1, "runs-toolbar"], [1, "run-filters"], [1, "filter-btn", 3, "click"], ["class", "filter-btn passed", 3, "active", "click", 4, "ngIf"], ["class", "filter-btn failed", 3, "active", "click", 4, "ngIf"], ["class", "filter-btn error", 3, "active", "click", 4, "ngIf"], [1, "runs-actions"], ["kendoButton", "", 3, "click"], [1, "fas", "fa-download"], [1, "filter-btn", "passed", 3, "click"], [1, "fas", "fa-check"], [1, "filter-btn", "failed", 3, "click"], [1, "filter-btn", "error", 3, "click"], [1, "fas", "fa-exclamation"], [1, "loading-state"], [1, "skeleton-list"], ["class", "skeleton-card", 4, "ngFor", "ngForOf"], [1, "skeleton-card"], [1, "skeleton-sequence"], [1, "skeleton-icon"], [1, "skeleton-content"], [1, "skeleton-line", "wide"], [1, "skeleton-line", "narrow"], [1, "test-runs-list"], ["class", "test-run-card", 4, "ngFor", "ngForOf"], [1, "test-run-card"], [1, "test-run-item", 3, "click"], [1, "run-sequence"], [1, "run-icon"], [1, "run-content"], [1, "run-header-row"], [1, "run-name"], [3, "executionStatus", "originalStatus", "autoScore", "humanRating", "humanIsCorrect", "hasHumanFeedback", "preferences", "mode"], [1, "run-meta"], ["class", "run-duration", 4, "ngIf"], ["class", "run-cost", 4, "ngIf"], [3, "entityName", "recordId", 4, "ngIf"], ["class", "run-tags", 4, "ngIf"], [1, "run-expand"], [1, "fas"], ["class", "inline-feedback", 4, "ngIf"], [1, "run-duration"], [1, "run-cost"], [3, "entityName", "recordId"], [1, "run-tags"], ["class", "tag-chip", 4, "ngFor", "ngForOf"], [1, "tag-chip"], [1, "inline-feedback"], [1, "feedback-divider"], [1, "feedback-section"], [1, "feedback-label"], [1, "inline-rating"], [1, "rating-numbers"], ["type", "button", "class", "rating-btn", 3, "selected", "hover", "low", "mid", "high", "click", "mouseenter", "mouseleave", 4, "ngFor", "ngForOf"], ["class", "rating-info", 4, "ngIf"], [1, "correctness-row"], [1, "correctness-label"], [1, "correctness-options"], [1, "radio-opt", 3, "click"], ["type", "radio", 3, "ngModelChange", "name", "value", "ngModel"], [1, "comments-row", 3, "click"], ["placeholder", "Add comments or corrections...", "rows", "3", 1, "feedback-textarea", 3, "ngModelChange", "ngModel"], [1, "feedback-actions", 3, "click"], [1, "fas", "fa-external-link-alt"], ["type", "button", 1, "rating-btn", 3, "click", "mouseenter", "mouseleave"], [1, "rating-info"], [1, "rating-value"], [1, "rating-label-text"], [1, "empty-state"], [1, "empty-icon"], [1, "fas", "fa-inbox"], [1, "fas", "fa-filter"], [1, "details-tab"], [1, "details-card"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value", "monospace"], [1, "detail-value"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "status-inline", 3, "ngClass"], [1, "analytics-tab"], ["class", "analytics-loading", 4, "ngIf"], ["class", "analytics-section", 4, "ngIf"], [1, "analytics-loading"], [1, "analytics-section"], [1, "fas", "fa-chart-pie"], [1, "stats-grid"], [1, "stat-card"], [1, "stat-icon", "passed"], [1, "stat-content"], [1, "stat-percent"], [1, "stat-icon", "failed"], [1, "stat-icon", "score"], [1, "fas", "fa-star"], [1, "stat-icon", "duration"], [1, "stat-icon", "cost"], [1, "analytics-header"], [1, "fas", "fa-table"], [1, "analytics-legend"], [1, "legend-item", "passed"], [1, "legend-item", "failed"], [1, "legend-item", "error"], [1, "legend-item", "skipped"], [1, "results-table-wrapper"], [1, "results-table"], [1, "seq-col"], [1, "name-col"], ["class", "status-col", 4, "ngIf"], ["class", "score-col", 4, "ngIf"], ["class", "feedback-col", 4, "ngIf"], [1, "duration-col"], [1, "cost-col"], ["class", "result-row", 3, "row-passed", "row-failed", "row-error", "row-skipped", "click", 4, "ngFor", "ngForOf"], [1, "status-col"], [1, "score-col"], [1, "feedback-col"], [1, "result-row", 3, "click"], [1, "test-name-wrapper"], [1, "test-name"], ["class", "test-tags", 4, "ngIf"], ["class", "na-value", 4, "ngIf"], [1, "test-tags"], ["class", "tag-mini", 4, "ngFor", "ngForOf"], [1, "tag-mini"], ["class", "score-display", 4, "ngIf"], [1, "score-display"], [1, "score-bar-mini"], [1, "score-fill"], [1, "score-text"], [1, "na-value"], ["class", "feedback-display", 4, "ngIf"], ["class", "na-value needs-review", 4, "ngIf"], [1, "feedback-display"], [1, "feedback-rating"], ["class", "feedback-correctness", 4, "ngIf"], [1, "feedback-correctness"], [1, "na-value", "needs-review"], [1, "fas", "fa-user-clock"], [1, "execution-tab"], [3, "machineName", "machineId", "runByUserName", "runByUserEmail", "runContextDetailsJson"], [1, "keyboard-shortcuts"], [1, "shortcuts-header"], ["title", "Hide shortcuts", 1, "shortcuts-close", 3, "click"], [1, "shortcut-list"], [1, "shortcut-item"], [1, "shortcut-keys"]], template: function TestSuiteRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
2048
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
2049
- i0.ɵɵtemplate(2, TestSuiteRunFormComponentExtended_div_2_Template, 7, 2, "div", 2);
2050
- i0.ɵɵelementStart(3, "div", 3)(4, "div", 4)(5, "div", 5);
2051
- i0.ɵɵelement(6, "i", 6);
2080
+ i0.ɵɵlistener("keydown", function TestSuiteRunFormComponentExtended_keydown_HostBindingHandler($event) { return ctx.handleKeyboardShortcut($event); }, i0.ɵɵresolveDocument);
2081
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 137, vars: 48, consts: [["kendoDialogContainer", "", 1, "test-suite-run-form"], [1, "suite-run-header"], ["aria-label", "Breadcrumb", 1, "breadcrumb"], ["href", "javascript:void(0)", 3, "click"], [1, "fas", "fa-vial"], [1, "breadcrumb-text"], [1, "current"], [1, "fas", "fa-chevron-right", "separator"], [1, "header-content"], [1, "header-left"], [1, "suite-run-icon"], [1, "fas", 3, "ngClass"], [1, "suite-run-info"], [1, "suite-run-meta"], [1, "status-badge", 3, "ngClass"], [1, "meta-tag", "environment"], [1, "meta-tag", "trigger"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary"], ["kendoButton", "", 3, "click", "disabled"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-icon"], [1, "fas", "fa-clock"], [1, "metric-content"], [1, "metric-value"], [1, "metric-label"], [1, "fas", "fa-percentage"], [1, "fas", "fa-dollar-sign"], [1, "fas", "fa-calendar"], [1, "results-summary"], [1, "result-item", "passed"], [1, "result-icon"], [1, "fas", "fa-check-circle"], [1, "result-content"], [1, "result-count"], [1, "result-label"], [1, "result-item", "failed"], [1, "fas", "fa-times-circle"], [1, "result-item", "error"], [1, "fas", "fa-exclamation-circle"], [1, "result-item", "skipped"], [1, "fas", "fa-forward"], [1, "result-item", "total"], [1, "fas", "fa-list"], [1, "tags-bar"], [1, "tags-editor-panel"], [1, "tabs-container"], ["role", "tablist", 1, "tabs"], ["role", "tab", 1, "tab", 3, "click"], [1, "fas", "fa-th-large"], [1, "tab-badge"], [1, "fas", "fa-info-circle"], ["role", "tab", "title", "Press 4", 1, "tab", 3, "click"], [1, "fas", "fa-chart-bar"], ["role", "tab", "title", "Press 5", 1, "tab", 3, "click"], [1, "fas", "fa-microchip"], [1, "tab-content"], [1, "overview-tab"], [1, "runs-tab"], [1, "details-tab"], [1, "analytics-tab"], [1, "execution-tab"], [1, "shortcuts-toggle", 3, "click", "title"], [1, "fas", "fa-keyboard"], [1, "keyboard-shortcuts"], [1, "fas", "fa-layer-group"], [1, "fas", "fa-server"], [1, "fas", "fa-bolt"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "fas", "fa-play"], [1, "tags-bar-content"], [1, "tags-bar-label"], [1, "fas", "fa-tags"], [1, "tags-bar-chips"], [1, "tags-bar-empty"], ["title", "Edit tags", 1, "tags-bar-edit", 3, "click"], [1, "fas", "fa-plus"], [1, "tag-inline"], [1, "tags-editor-header"], [1, "tags-editor-title"], [1, "tags-editor-body"], [1, "tags-editor-chips"], [1, "tag-editable"], [1, "tags-empty-hint"], [1, "tags-editor-input"], ["type", "text", "placeholder", "Type a tag and press Enter...", 1, "tag-text-input", 3, "ngModelChange", "keyup.enter", "ngModel"], ["kendoButton", "", "fillMode", "flat", 3, "click", "disabled"], [1, "tags-editor-footer"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "fas", "fa-spinner", "fa-spin"], ["kendoButton", "", "fillMode", "flat", 3, "click"], ["title", "Remove tag", 1, "tag-remove-btn", 3, "click"], [1, "fas", "fa-times"], [1, "result-hero"], [1, "result-hero-icon"], [1, "result-hero-text"], [1, "result-hero-stats"], [1, "stat-item"], [1, "stat-value"], [1, "stat-label"], [1, "stat-divider"], [1, "evaluation-summary"], [1, "needs-review-section"], [1, "progress-section"], [1, "eval-summary-grid"], [1, "eval-summary-card"], [1, "eval-card-header"], [1, "fa-solid", "fa-user"], [1, "eval-card-body"], [1, "eval-stat-row"], [1, "eval-stat-label"], [1, "eval-stat-value"], [1, "eval-card-footer"], [1, "eval-stat-value", "correct"], [1, "eval-stat-value", "incorrect"], [1, "pending-badge"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-circle-check"], [1, "eval-stat-value", "error"], [1, "eval-stat-value", "timeout"], [1, "needs-review-header"], [1, "fa-solid", "fa-user-clock"], [1, "review-count"], [1, "needs-review-list"], [1, "review-item", 3, "high-priority", "medium-priority"], [1, "review-more"], [1, "review-item", 3, "click"], [1, "review-item-icon"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-circle-dot"], [1, "review-item-content"], [1, "review-item-name"], [1, "review-item-reason"], [1, "review-item-action"], [1, "fa-solid", "fa-chevron-right"], [1, "progress-info"], [1, "fas", "fa-circle-notch", "fa-spin"], [1, "auto-refresh-notice"], [1, "fas", "fa-sync"], [1, "runs-toolbar"], [1, "loading-state"], [1, "test-runs-list"], [1, "empty-state"], [1, "run-filters"], [1, "filter-btn", 3, "click"], [1, "filter-btn", "passed", 3, "active"], [1, "filter-btn", "failed", 3, "active"], [1, "filter-btn", "error", 3, "active"], [1, "runs-actions"], ["kendoButton", "", 3, "click"], [1, "fas", "fa-download"], [1, "filter-btn", "passed", 3, "click"], [1, "fas", "fa-check"], [1, "filter-btn", "failed", 3, "click"], [1, "filter-btn", "error", 3, "click"], [1, "fas", "fa-exclamation"], [1, "skeleton-list"], [1, "skeleton-card"], [1, "skeleton-sequence"], [1, "skeleton-icon"], [1, "skeleton-content"], [1, "skeleton-line", "wide"], [1, "skeleton-line", "narrow"], [1, "test-run-card"], [1, "test-run-item", 3, "click"], [1, "run-sequence"], [1, "run-icon"], [1, "run-content"], [1, "run-header-row"], [1, "run-name"], [3, "executionStatus", "originalStatus", "autoScore", "humanRating", "humanIsCorrect", "hasHumanFeedback", "preferences", "mode"], [1, "run-meta"], [1, "run-duration"], [1, "run-cost"], [3, "entityName", "recordId"], [1, "run-tags"], [1, "run-expand"], [1, "fas"], [1, "inline-feedback"], [1, "tag-chip"], [1, "feedback-divider"], [1, "feedback-section"], [1, "feedback-label"], [1, "inline-rating"], [1, "rating-numbers"], ["type", "button", 1, "rating-btn", 3, "selected", "hover", "low", "mid", "high"], [1, "rating-info"], [1, "correctness-row"], [1, "correctness-label"], [1, "correctness-options"], [1, "radio-opt", 3, "click"], ["type", "radio", 3, "ngModelChange", "name", "value", "ngModel"], [1, "comments-row", 3, "click"], ["placeholder", "Add comments or corrections...", "rows", "3", 1, "feedback-textarea", 3, "ngModelChange", "ngModel"], [1, "feedback-actions", 3, "click"], [1, "fas", "fa-external-link-alt"], ["type", "button", 1, "rating-btn", 3, "click", "mouseenter", "mouseleave"], [1, "rating-value"], [1, "rating-label-text"], [1, "empty-icon"], [1, "fas", "fa-inbox"], [1, "fas", "fa-filter"], [1, "details-card"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value", "monospace"], [1, "detail-value"], ["href", "javascript:void(0)"], [1, "status-inline", 3, "ngClass"], [1, "analytics-loading"], [1, "analytics-section"], [1, "fas", "fa-chart-pie"], [1, "stats-grid"], [1, "stat-card"], [1, "stat-icon", "passed"], [1, "stat-content"], [1, "stat-percent"], [1, "stat-icon", "failed"], [1, "stat-icon", "score"], [1, "fas", "fa-star"], [1, "stat-icon", "duration"], [1, "stat-icon", "cost"], [1, "analytics-header"], [1, "fas", "fa-table"], [1, "analytics-legend"], [1, "legend-item", "passed"], [1, "legend-item", "failed"], [1, "legend-item", "error"], [1, "legend-item", "skipped"], [1, "results-table-wrapper"], [1, "results-table"], [1, "seq-col"], [1, "name-col"], [1, "status-col"], [1, "score-col"], [1, "feedback-col"], [1, "duration-col"], [1, "cost-col"], [1, "result-row", 3, "row-passed", "row-failed", "row-error", "row-skipped"], [1, "result-row", 3, "click"], [1, "test-name-wrapper"], [1, "test-name"], [1, "test-tags"], [1, "na-value"], [1, "tag-mini"], [1, "score-display"], [1, "score-bar-mini"], [1, "score-fill"], [1, "score-text"], [1, "feedback-display"], [1, "na-value", "needs-review"], [1, "feedback-rating"], [1, "feedback-correctness"], [1, "fas", "fa-user-clock"], [3, "machineName", "machineId", "runByUserName", "runByUserEmail", "runContextDetailsJson"], [1, "shortcuts-header"], ["title", "Hide shortcuts", 1, "shortcuts-close", 3, "click"], [1, "shortcut-list"], [1, "shortcut-item"], [1, "shortcut-keys"]], template: function TestSuiteRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
2082
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "nav", 2)(3, "ol")(4, "li")(5, "a", 3);
2083
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_a_click_5_listener() { return ctx.navigateToTestingDashboard(); });
2084
+ i0.ɵɵelement(6, "i", 4);
2085
+ i0.ɵɵelementStart(7, "span", 5);
2086
+ i0.ɵɵtext(8, "Testing");
2087
+ i0.ɵɵelementEnd()()();
2088
+ i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_9_Template, 6, 1, "li");
2089
+ i0.ɵɵelementStart(10, "li", 6);
2090
+ i0.ɵɵelement(11, "i", 7);
2091
+ i0.ɵɵelementStart(12, "span");
2092
+ i0.ɵɵtext(13);
2093
+ i0.ɵɵelementEnd()()()();
2094
+ i0.ɵɵelementStart(14, "div", 8)(15, "div", 9)(16, "div", 10);
2095
+ i0.ɵɵelement(17, "i", 11);
2052
2096
  i0.ɵɵelementEnd();
2053
- i0.ɵɵelementStart(7, "div", 7)(8, "h1");
2054
- i0.ɵɵtext(9, "Suite Run");
2097
+ i0.ɵɵelementStart(18, "div", 12)(19, "h1");
2098
+ i0.ɵɵtext(20, "Suite Run");
2055
2099
  i0.ɵɵelementEnd();
2056
- i0.ɵɵelementStart(10, "div", 8)(11, "span", 9);
2057
- i0.ɵɵelement(12, "i", 6);
2058
- i0.ɵɵtext(13);
2100
+ i0.ɵɵelementStart(21, "div", 13)(22, "span", 14);
2101
+ i0.ɵɵelement(23, "i", 11);
2102
+ i0.ɵɵtext(24);
2059
2103
  i0.ɵɵelementEnd();
2060
- i0.ɵɵtemplate(14, TestSuiteRunFormComponentExtended_span_14_Template, 3, 1, "span", 10)(15, TestSuiteRunFormComponentExtended_span_15_Template, 3, 1, "span", 11);
2104
+ i0.ɵɵconditionalCreate(25, TestSuiteRunFormComponentExtended_Conditional_25_Template, 3, 1, "span", 15);
2105
+ i0.ɵɵconditionalCreate(26, TestSuiteRunFormComponentExtended_Conditional_26_Template, 3, 1, "span", 16);
2061
2106
  i0.ɵɵelementEnd()()();
2062
- i0.ɵɵelementStart(16, "div", 12);
2063
- i0.ɵɵelement(17, "app-evaluation-mode-toggle");
2064
- i0.ɵɵtemplate(18, TestSuiteRunFormComponentExtended_button_18_Template, 3, 0, "button", 13);
2065
- i0.ɵɵelementStart(19, "button", 14);
2066
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_19_listener() { return ctx.refresh(); });
2067
- i0.ɵɵelement(20, "i", 6);
2068
- i0.ɵɵtext(21);
2107
+ i0.ɵɵelementStart(27, "div", 17);
2108
+ i0.ɵɵelement(28, "app-evaluation-mode-toggle");
2109
+ i0.ɵɵconditionalCreate(29, TestSuiteRunFormComponentExtended_Conditional_29_Template, 3, 0, "button", 18);
2110
+ i0.ɵɵelementStart(30, "button", 19);
2111
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_30_listener() { return ctx.refresh(); });
2112
+ i0.ɵɵelement(31, "i", 11);
2113
+ i0.ɵɵtext(32);
2069
2114
  i0.ɵɵelementEnd()()();
2070
- i0.ɵɵelementStart(22, "div", 15)(23, "div", 16)(24, "div", 17);
2071
- i0.ɵɵelement(25, "i", 18);
2115
+ i0.ɵɵelementStart(33, "div", 20)(34, "div", 21)(35, "div", 22);
2116
+ i0.ɵɵelement(36, "i", 23);
2072
2117
  i0.ɵɵelementEnd();
2073
- i0.ɵɵelementStart(26, "div", 19)(27, "div", 20);
2074
- i0.ɵɵtext(28);
2118
+ i0.ɵɵelementStart(37, "div", 24)(38, "div", 25);
2119
+ i0.ɵɵtext(39);
2075
2120
  i0.ɵɵelementEnd();
2076
- i0.ɵɵelementStart(29, "div", 21);
2077
- i0.ɵɵtext(30, "Duration");
2121
+ i0.ɵɵelementStart(40, "div", 26);
2122
+ i0.ɵɵtext(41, "Duration");
2078
2123
  i0.ɵɵelementEnd()()();
2079
- i0.ɵɵelementStart(31, "div", 16)(32, "div", 17);
2080
- i0.ɵɵelement(33, "i", 22);
2124
+ i0.ɵɵelementStart(42, "div", 21)(43, "div", 22);
2125
+ i0.ɵɵelement(44, "i", 27);
2081
2126
  i0.ɵɵelementEnd();
2082
- i0.ɵɵelementStart(34, "div", 19)(35, "div", 20);
2083
- i0.ɵɵtext(36);
2127
+ i0.ɵɵelementStart(45, "div", 24)(46, "div", 25);
2128
+ i0.ɵɵtext(47);
2084
2129
  i0.ɵɵelementEnd();
2085
- i0.ɵɵelementStart(37, "div", 21);
2086
- i0.ɵɵtext(38, "Pass Rate");
2130
+ i0.ɵɵelementStart(48, "div", 26);
2131
+ i0.ɵɵtext(49, "Pass Rate");
2087
2132
  i0.ɵɵelementEnd()()();
2088
- i0.ɵɵelementStart(39, "div", 16)(40, "div", 17);
2089
- i0.ɵɵelement(41, "i", 23);
2133
+ i0.ɵɵelementStart(50, "div", 21)(51, "div", 22);
2134
+ i0.ɵɵelement(52, "i", 28);
2090
2135
  i0.ɵɵelementEnd();
2091
- i0.ɵɵelementStart(42, "div", 19)(43, "div", 20);
2092
- i0.ɵɵtext(44);
2136
+ i0.ɵɵelementStart(53, "div", 24)(54, "div", 25);
2137
+ i0.ɵɵtext(55);
2093
2138
  i0.ɵɵelementEnd();
2094
- i0.ɵɵelementStart(45, "div", 21);
2095
- i0.ɵɵtext(46, "Total Cost");
2139
+ i0.ɵɵelementStart(56, "div", 26);
2140
+ i0.ɵɵtext(57, "Total Cost");
2096
2141
  i0.ɵɵelementEnd()()();
2097
- i0.ɵɵelementStart(47, "div", 16)(48, "div", 17);
2098
- i0.ɵɵelement(49, "i", 24);
2142
+ i0.ɵɵelementStart(58, "div", 21)(59, "div", 22);
2143
+ i0.ɵɵelement(60, "i", 29);
2099
2144
  i0.ɵɵelementEnd();
2100
- i0.ɵɵelementStart(50, "div", 19)(51, "div", 20);
2101
- i0.ɵɵtext(52);
2145
+ i0.ɵɵelementStart(61, "div", 24)(62, "div", 25);
2146
+ i0.ɵɵtext(63);
2102
2147
  i0.ɵɵelementEnd();
2103
- i0.ɵɵelementStart(53, "div", 21);
2104
- i0.ɵɵtext(54, "Started");
2148
+ i0.ɵɵelementStart(64, "div", 26);
2149
+ i0.ɵɵtext(65, "Started");
2105
2150
  i0.ɵɵelementEnd()()()();
2106
- i0.ɵɵelementStart(55, "div", 25)(56, "div", 26)(57, "div", 27);
2107
- i0.ɵɵelement(58, "i", 28);
2151
+ i0.ɵɵelementStart(66, "div", 30)(67, "div", 31)(68, "div", 32);
2152
+ i0.ɵɵelement(69, "i", 33);
2108
2153
  i0.ɵɵelementEnd();
2109
- i0.ɵɵelementStart(59, "div", 29)(60, "span", 30);
2110
- i0.ɵɵtext(61);
2154
+ i0.ɵɵelementStart(70, "div", 34)(71, "span", 35);
2155
+ i0.ɵɵtext(72);
2111
2156
  i0.ɵɵelementEnd();
2112
- i0.ɵɵelementStart(62, "span", 31);
2113
- i0.ɵɵtext(63, "Passed");
2157
+ i0.ɵɵelementStart(73, "span", 36);
2158
+ i0.ɵɵtext(74, "Passed");
2114
2159
  i0.ɵɵelementEnd()()();
2115
- i0.ɵɵelementStart(64, "div", 32)(65, "div", 27);
2116
- i0.ɵɵelement(66, "i", 33);
2160
+ i0.ɵɵelementStart(75, "div", 37)(76, "div", 32);
2161
+ i0.ɵɵelement(77, "i", 38);
2117
2162
  i0.ɵɵelementEnd();
2118
- i0.ɵɵelementStart(67, "div", 29)(68, "span", 30);
2119
- i0.ɵɵtext(69);
2163
+ i0.ɵɵelementStart(78, "div", 34)(79, "span", 35);
2164
+ i0.ɵɵtext(80);
2120
2165
  i0.ɵɵelementEnd();
2121
- i0.ɵɵelementStart(70, "span", 31);
2122
- i0.ɵɵtext(71, "Failed");
2166
+ i0.ɵɵelementStart(81, "span", 36);
2167
+ i0.ɵɵtext(82, "Failed");
2123
2168
  i0.ɵɵelementEnd()()();
2124
- i0.ɵɵelementStart(72, "div", 34)(73, "div", 27);
2125
- i0.ɵɵelement(74, "i", 35);
2169
+ i0.ɵɵelementStart(83, "div", 39)(84, "div", 32);
2170
+ i0.ɵɵelement(85, "i", 40);
2126
2171
  i0.ɵɵelementEnd();
2127
- i0.ɵɵelementStart(75, "div", 29)(76, "span", 30);
2128
- i0.ɵɵtext(77);
2172
+ i0.ɵɵelementStart(86, "div", 34)(87, "span", 35);
2173
+ i0.ɵɵtext(88);
2129
2174
  i0.ɵɵelementEnd();
2130
- i0.ɵɵelementStart(78, "span", 31);
2131
- i0.ɵɵtext(79, "Errors");
2175
+ i0.ɵɵelementStart(89, "span", 36);
2176
+ i0.ɵɵtext(90, "Errors");
2132
2177
  i0.ɵɵelementEnd()()();
2133
- i0.ɵɵelementStart(80, "div", 36)(81, "div", 27);
2134
- i0.ɵɵelement(82, "i", 37);
2178
+ i0.ɵɵelementStart(91, "div", 41)(92, "div", 32);
2179
+ i0.ɵɵelement(93, "i", 42);
2135
2180
  i0.ɵɵelementEnd();
2136
- i0.ɵɵelementStart(83, "div", 29)(84, "span", 30);
2137
- i0.ɵɵtext(85);
2181
+ i0.ɵɵelementStart(94, "div", 34)(95, "span", 35);
2182
+ i0.ɵɵtext(96);
2138
2183
  i0.ɵɵelementEnd();
2139
- i0.ɵɵelementStart(86, "span", 31);
2140
- i0.ɵɵtext(87, "Skipped");
2184
+ i0.ɵɵelementStart(97, "span", 36);
2185
+ i0.ɵɵtext(98, "Skipped");
2141
2186
  i0.ɵɵelementEnd()()();
2142
- i0.ɵɵelementStart(88, "div", 38)(89, "div", 27);
2143
- i0.ɵɵelement(90, "i", 39);
2187
+ i0.ɵɵelementStart(99, "div", 43)(100, "div", 32);
2188
+ i0.ɵɵelement(101, "i", 44);
2144
2189
  i0.ɵɵelementEnd();
2145
- i0.ɵɵelementStart(91, "div", 29)(92, "span", 30);
2146
- i0.ɵɵtext(93);
2190
+ i0.ɵɵelementStart(102, "div", 34)(103, "span", 35);
2191
+ i0.ɵɵtext(104);
2147
2192
  i0.ɵɵelementEnd();
2148
- i0.ɵɵelementStart(94, "span", 31);
2149
- i0.ɵɵtext(95, "Total");
2193
+ i0.ɵɵelementStart(105, "span", 36);
2194
+ i0.ɵɵtext(106, "Total");
2150
2195
  i0.ɵɵelementEnd()()()();
2151
- i0.ɵɵtemplate(96, TestSuiteRunFormComponentExtended_div_96_Template, 9, 2, "div", 40)(97, TestSuiteRunFormComponentExtended_div_97_Template, 19, 7, "div", 41);
2196
+ i0.ɵɵconditionalCreate(107, TestSuiteRunFormComponentExtended_Conditional_107_Template, 9, 2, "div", 45);
2197
+ i0.ɵɵconditionalCreate(108, TestSuiteRunFormComponentExtended_Conditional_108_Template, 20, 6, "div", 46);
2152
2198
  i0.ɵɵelementEnd();
2153
- i0.ɵɵelementStart(98, "div", 42)(99, "div", 43)(100, "button", 44);
2154
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_100_listener() { return ctx.changeTab("overview"); });
2155
- i0.ɵɵelement(101, "i", 45);
2156
- i0.ɵɵtext(102, " Overview ");
2199
+ i0.ɵɵelementStart(109, "div", 47)(110, "div", 48)(111, "button", 49);
2200
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_111_listener() { return ctx.changeTab("overview"); });
2201
+ i0.ɵɵelement(112, "i", 50);
2202
+ i0.ɵɵtext(113, " Overview ");
2157
2203
  i0.ɵɵelementEnd();
2158
- i0.ɵɵelementStart(103, "button", 44);
2159
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_103_listener() { return ctx.changeTab("runs"); });
2160
- i0.ɵɵelement(104, "i", 39);
2161
- i0.ɵɵtext(105, " Test Runs ");
2162
- i0.ɵɵtemplate(106, TestSuiteRunFormComponentExtended_span_106_Template, 2, 1, "span", 46);
2204
+ i0.ɵɵelementStart(114, "button", 49);
2205
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_114_listener() { return ctx.changeTab("runs"); });
2206
+ i0.ɵɵelement(115, "i", 44);
2207
+ i0.ɵɵtext(116, " Test Runs ");
2208
+ i0.ɵɵconditionalCreate(117, TestSuiteRunFormComponentExtended_Conditional_117_Template, 2, 1, "span", 51);
2163
2209
  i0.ɵɵelementEnd();
2164
- i0.ɵɵelementStart(107, "button", 44);
2165
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_107_listener() { return ctx.changeTab("details"); });
2166
- i0.ɵɵelement(108, "i", 47);
2167
- i0.ɵɵtext(109, " Details ");
2210
+ i0.ɵɵelementStart(118, "button", 49);
2211
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_118_listener() { return ctx.changeTab("details"); });
2212
+ i0.ɵɵelement(119, "i", 52);
2213
+ i0.ɵɵtext(120, " Details ");
2168
2214
  i0.ɵɵelementEnd();
2169
- i0.ɵɵelementStart(110, "button", 48);
2170
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_110_listener() { return ctx.changeTab("analytics"); });
2171
- i0.ɵɵelement(111, "i", 49);
2172
- i0.ɵɵtext(112, " Analytics ");
2215
+ i0.ɵɵelementStart(121, "button", 53);
2216
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_121_listener() { return ctx.changeTab("analytics"); });
2217
+ i0.ɵɵelement(122, "i", 54);
2218
+ i0.ɵɵtext(123, " Analytics ");
2173
2219
  i0.ɵɵelementEnd();
2174
- i0.ɵɵelementStart(113, "button", 50);
2175
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_113_listener() { return ctx.changeTab("execution"); });
2176
- i0.ɵɵelement(114, "i", 51);
2177
- i0.ɵɵelementStart(115, "span");
2178
- i0.ɵɵtext(116, "Execution");
2220
+ i0.ɵɵelementStart(124, "button", 55);
2221
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_124_listener() { return ctx.changeTab("execution"); });
2222
+ i0.ɵɵelement(125, "i", 56);
2223
+ i0.ɵɵelementStart(126, "span");
2224
+ i0.ɵɵtext(127, "Execution");
2179
2225
  i0.ɵɵelementEnd()()()();
2180
- i0.ɵɵelementStart(117, "div", 52);
2181
- i0.ɵɵtemplate(118, TestSuiteRunFormComponentExtended_div_118_Template, 22, 16, "div", 53)(119, TestSuiteRunFormComponentExtended_div_119_Template, 6, 5, "div", 54)(120, TestSuiteRunFormComponentExtended_div_120_Template, 60, 18, "div", 55)(121, TestSuiteRunFormComponentExtended_div_121_Template, 5, 4, "div", 56)(122, TestSuiteRunFormComponentExtended_div_122_Template, 2, 5, "div", 57);
2226
+ i0.ɵɵelementStart(128, "div", 57);
2227
+ i0.ɵɵconditionalCreate(129, TestSuiteRunFormComponentExtended_Conditional_129_Template, 22, 16, "div", 58);
2228
+ i0.ɵɵconditionalCreate(130, TestSuiteRunFormComponentExtended_Conditional_130_Template, 6, 5, "div", 59);
2229
+ i0.ɵɵconditionalCreate(131, TestSuiteRunFormComponentExtended_Conditional_131_Template, 60, 18, "div", 60);
2230
+ i0.ɵɵconditionalCreate(132, TestSuiteRunFormComponentExtended_Conditional_132_Template, 5, 4, "div", 61);
2231
+ i0.ɵɵconditionalCreate(133, TestSuiteRunFormComponentExtended_Conditional_133_Template, 2, 5, "div", 62);
2182
2232
  i0.ɵɵelementEnd();
2183
- i0.ɵɵelementStart(123, "button", 58);
2184
- i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_123_listener() { return ctx.toggleShortcuts(); });
2185
- i0.ɵɵelement(124, "i", 59);
2233
+ i0.ɵɵelementStart(134, "button", 63);
2234
+ i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_134_listener() { return ctx.toggleShortcuts(); });
2235
+ i0.ɵɵelement(135, "i", 64);
2186
2236
  i0.ɵɵelementEnd();
2187
- i0.ɵɵtemplate(125, TestSuiteRunFormComponentExtended_div_125_Template, 34, 0, "div", 60);
2237
+ i0.ɵɵconditionalCreate(136, TestSuiteRunFormComponentExtended_Conditional_136_Template, 34, 0, "div", 65);
2188
2238
  i0.ɵɵelementEnd();
2189
2239
  } if (rf & 2) {
2190
- i0.ɵɵadvance(2);
2191
- i0.ɵɵproperty("ngIf", ctx.testSuite);
2240
+ i0.ɵɵadvance(9);
2241
+ i0.ɵɵconditional(ctx.testSuite ? 9 : -1);
2242
+ i0.ɵɵadvance(4);
2243
+ i0.ɵɵtextInterpolate1("Run #", ctx.record.ID.substring(0, 8));
2192
2244
  i0.ɵɵadvance(3);
2193
2245
  i0.ɵɵstyleProp("background-color", ctx.getStatusColor());
2194
2246
  i0.ɵɵadvance();
@@ -2200,11 +2252,11 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
2200
2252
  i0.ɵɵadvance();
2201
2253
  i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
2202
2254
  i0.ɵɵadvance();
2203
- i0.ɵɵproperty("ngIf", ctx.record.Environment);
2255
+ i0.ɵɵconditional(ctx.record.Environment ? 25 : -1);
2204
2256
  i0.ɵɵadvance();
2205
- i0.ɵɵproperty("ngIf", ctx.record.TriggerType);
2257
+ i0.ɵɵconditional(ctx.record.TriggerType ? 26 : -1);
2206
2258
  i0.ɵɵadvance(3);
2207
- i0.ɵɵproperty("ngIf", ctx.record.SuiteID);
2259
+ i0.ɵɵconditional(ctx.record.SuiteID ? 29 : -1);
2208
2260
  i0.ɵɵadvance();
2209
2261
  i0.ɵɵproperty("disabled", ctx.isRefreshing);
2210
2262
  i0.ɵɵadvance();
@@ -2230,9 +2282,9 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
2230
2282
  i0.ɵɵadvance(8);
2231
2283
  i0.ɵɵtextInterpolate(ctx.record.TotalTests || 0);
2232
2284
  i0.ɵɵadvance(3);
2233
- i0.ɵɵproperty("ngIf", !ctx.editingTags);
2285
+ i0.ɵɵconditional(!ctx.editingTags ? 107 : -1);
2234
2286
  i0.ɵɵadvance();
2235
- i0.ɵɵproperty("ngIf", ctx.editingTags);
2287
+ i0.ɵɵconditional(ctx.editingTags ? 108 : -1);
2236
2288
  i0.ɵɵadvance(3);
2237
2289
  i0.ɵɵclassProp("active", ctx.activeTab === "overview");
2238
2290
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "overview");
@@ -2240,7 +2292,7 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
2240
2292
  i0.ɵɵclassProp("active", ctx.activeTab === "runs");
2241
2293
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "runs");
2242
2294
  i0.ɵɵadvance(3);
2243
- i0.ɵɵproperty("ngIf", ctx.testRunsLoaded);
2295
+ i0.ɵɵconditional(ctx.testRunsLoaded ? 117 : -1);
2244
2296
  i0.ɵɵadvance();
2245
2297
  i0.ɵɵclassProp("active", ctx.activeTab === "details");
2246
2298
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "details");
@@ -2251,20 +2303,20 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
2251
2303
  i0.ɵɵclassProp("active", ctx.activeTab === "execution");
2252
2304
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "execution");
2253
2305
  i0.ɵɵadvance(5);
2254
- i0.ɵɵproperty("ngIf", ctx.activeTab === "overview");
2306
+ i0.ɵɵconditional(ctx.activeTab === "overview" ? 129 : -1);
2255
2307
  i0.ɵɵadvance();
2256
- i0.ɵɵproperty("ngIf", ctx.activeTab === "runs");
2308
+ i0.ɵɵconditional(ctx.activeTab === "runs" ? 130 : -1);
2257
2309
  i0.ɵɵadvance();
2258
- i0.ɵɵproperty("ngIf", ctx.activeTab === "details");
2310
+ i0.ɵɵconditional(ctx.activeTab === "details" ? 131 : -1);
2259
2311
  i0.ɵɵadvance();
2260
- i0.ɵɵproperty("ngIf", ctx.activeTab === "analytics");
2312
+ i0.ɵɵconditional(ctx.activeTab === "analytics" ? 132 : -1);
2261
2313
  i0.ɵɵadvance();
2262
- i0.ɵɵproperty("ngIf", ctx.activeTab === "execution");
2314
+ i0.ɵɵconditional(ctx.activeTab === "execution" ? 133 : -1);
2263
2315
  i0.ɵɵadvance();
2264
2316
  i0.ɵɵproperty("title", ctx.showShortcuts ? "Hide keyboard shortcuts" : "Show keyboard shortcuts");
2265
2317
  i0.ɵɵadvance(2);
2266
- i0.ɵɵproperty("ngIf", ctx.showShortcuts);
2267
- } }, dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, i5.DefaultValueAccessor, i5.RadioControlValueAccessor, i5.NgControlStatus, i5.NgModel, i6.DialogContainerDirective, i7.ButtonComponent, i3.EvaluationBadgeComponent, i3.EvaluationModeToggleComponent, i3.ExecutionContextComponent, i8.EntityLinkPillComponent, i4.DatePipe], styles: ["\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n\n\n.test-suite-run-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n\n\n\n\n.suite-run-header[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n\n\n.breadcrumb[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n margin-bottom: 16px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: var(--suite-run-transition);\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n color: #2563eb;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #cbd5e1;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .current[_ngcontent-%COMP%] {\n color: var(--suite-run-text);\n font-weight: 500;\n}\n\n\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n\n\n\n\n.results-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.result-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.result-count[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.passed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-item.failed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.failed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-item.error[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.error[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.skipped[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.total[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs[_ngcontent-%COMP%]::-webkit-scrollbar {\n display: none;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 15px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon[_ngcontent-%COMP%] {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n\n\n.progress-section[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.auto-refresh-notice[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n\n\n.runs-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line[_ngcontent-%COMP%] {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide[_ngcontent-%COMP%] {\n width: 70%;\n}\n\n.skeleton-line.narrow[_ngcontent-%COMP%] {\n width: 40%;\n}\n\n@keyframes _ngcontent-%COMP%_shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n\n\n.test-runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item[_ngcontent-%COMP%]:active {\n transform: translateX(2px);\n}\n\n.run-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status[_ngcontent-%COMP%] {\n font-weight: 700;\n}\n\n.run-score[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover > i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n\n\n\n\n.details-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n\n\n\n\n\n\n.shortcuts-toggle[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle[_ngcontent-%COMP%]:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.shortcuts-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close[_ngcontent-%COMP%] {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\nkbd[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n\n\n\n\n@media (max-width: 1024px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider[_ngcontent-%COMP%] {\n display: none;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .results-summary[_ngcontent-%COMP%] {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 16px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 32px 20px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 56px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 24px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 40px 16px;\n }\n\n .empty-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 28px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n gap: 16px;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%], .shortcuts-toggle[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 480px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .suite-run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .metric-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .result-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 24px 16px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .progress-section[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .progress-info[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 32px 12px;\n }\n\n .empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n}\n\n\n\n\n\n@media (hover: none) and (pointer: coarse) {\n .test-run-item[_ngcontent-%COMP%] {\n min-height: 64px;\n }\n\n .test-run-item[_ngcontent-%COMP%]:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab[_ngcontent-%COMP%]:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media print {\n .suite-run-header[_ngcontent-%COMP%] {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%], \n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .result-hero[_ngcontent-%COMP%], \n .test-run-item[_ngcontent-%COMP%], \n .details-card[_ngcontent-%COMP%] {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n\n\n\n\n@media (prefers-color-scheme: dark) {\n \n\n}\n\n\n\n\n\n.tags-bar[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n.tags-bar-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n\n\n.tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn[_ngcontent-%COMP%]:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input[_ngcontent-%COMP%] {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input[_ngcontent-%COMP%]::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n\n\n.runs-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed[_ngcontent-%COMP%]:hover, \n.filter-btn.passed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed[_ngcontent-%COMP%]:hover, \n.filter-btn.failed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error[_ngcontent-%COMP%]:hover, \n.filter-btn.error.active[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n\n\n.test-run-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.run-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover .run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.run-cost[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n\n\n\n\n.inline-feedback[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn[_ngcontent-%COMP%]:hover, \n.rating-btn.hover[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low[_ngcontent-%COMP%]:hover, \n.rating-btn.low.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid[_ngcontent-%COMP%]:hover, \n.rating-btn.mid.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high[_ngcontent-%COMP%]:hover, \n.rating-btn.high.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.feedback-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .tags-bar[_ngcontent-%COMP%] {\n padding: 8px 12px;\n }\n\n .tags-bar-content[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .tag-inline[_ngcontent-%COMP%] {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 12px;\n }\n\n .tags-editor-body[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .tags-editor-footer[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .runs-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .runs-actions[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-numbers[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .feedback-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n}\n\n\n\n.overview-tab[_ngcontent-%COMP%], \n.runs-tab[_ngcontent-%COMP%], \n.details-tab[_ngcontent-%COMP%], \n.analytics-tab[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n\n\n\n\n.analytics-tab[_ngcontent-%COMP%] {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.analytics-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n\n\n.performance-matrix[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.matrix-row[_ngcontent-%COMP%]:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell[_ngcontent-%COMP%] {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell[_ngcontent-%COMP%] {\n gap: 12px;\n}\n\n.test-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.score-bar[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n\n\n.stats-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n@media (max-width: 768px) {\n .analytics-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row[_ngcontent-%COMP%] {\n display: none;\n }\n\n .matrix-cell[_ngcontent-%COMP%] {\n padding: 4px 0;\n }\n\n .test-name-cell[_ngcontent-%COMP%]::before, \n .status-cell[_ngcontent-%COMP%]::before, \n .score-cell[_ngcontent-%COMP%]::before, \n .duration-cell[_ngcontent-%COMP%]::before, \n .cost-cell[_ngcontent-%COMP%]::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell[_ngcontent-%COMP%]::before { content: 'Status:'; }\n .score-cell[_ngcontent-%COMP%]::before { content: 'Score:'; }\n .duration-cell[_ngcontent-%COMP%]::before { content: 'Duration:'; }\n .cost-cell[_ngcontent-%COMP%]::before { content: 'Cost:'; }\n\n .stats-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .stat-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n}\n\n\n\n.tab[_ngcontent-%COMP%]:focus-visible, \n.test-run-item[_ngcontent-%COMP%]:focus-visible, \nbutton[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n\n\n\n\n.analytics-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.results-table-wrapper[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n\n\n.seq-col[_ngcontent-%COMP%] {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col[_ngcontent-%COMP%] {\n \n\n width: auto;\n max-width: 50%;\n}\n\n.status-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n}\n\n.score-col[_ngcontent-%COMP%] {\n width: 1%; \n\n min-width: 120px; \n\n white-space: nowrap;\n}\n\n.duration-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n\n\n.result-row[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n\n\n.test-name-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper[_ngcontent-%COMP%] .test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n\n\n.score-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.medium[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n}\n\n.score-display[_ngcontent-%COMP%] .score-text[_ngcontent-%COMP%] {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n\n\n.results-table[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-error[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-skipped[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n\n\n@media (max-width: 768px) {\n .results-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n\n .results-table[_ngcontent-%COMP%] {\n min-width: 600px;\n }\n\n .results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n .results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .name-col[_ngcontent-%COMP%] {\n min-width: 150px;\n }\n}\n\n\n\n\n\n@media (prefers-contrast: high) {\n .status-badge[_ngcontent-%COMP%], \n .status-inline[_ngcontent-%COMP%] {\n border: 2px solid currentColor;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n border-width: 2px;\n }\n\n .tab.active[_ngcontent-%COMP%] {\n border-bottom-width: 4px;\n }\n}\n\n\n\n\n\n.evaluation-summary[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n\n.eval-summary-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n\n\n\n\n.needs-review-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.review-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list[_ngcontent-%COMP%] {\n padding: 8px;\n}\n\n.review-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item[_ngcontent-%COMP%]:not(.high-priority):not(.medium-priority) .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item[_ngcontent-%COMP%]:hover .review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.review-more[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n@media (max-width: 768px) {\n .eval-summary-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body[_ngcontent-%COMP%] {\n padding: 12px 14px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .review-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .review-item-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n\n\n\n\n.feedback-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}"], changeDetection: 0 }); }
2318
+ i0.ɵɵconditional(ctx.showShortcuts ? 136 : -1);
2319
+ } }, dependencies: [i5.NgClass, i6.DefaultValueAccessor, i6.RadioControlValueAccessor, i6.NgControlStatus, i6.NgModel, i7.DialogContainerDirective, i8.ButtonComponent, i3.EvaluationBadgeComponent, i3.EvaluationModeToggleComponent, i3.ExecutionContextComponent, i9.EntityLinkPillComponent, i5.DatePipe], styles: ["\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n\n\n.test-suite-run-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n\n\n\n\n.suite-run-header[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n\n\n.breadcrumb[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] ol[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: 13px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 6px;\n transition: background 0.15s;\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n background: rgba(59, 130, 246, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--suite-run-text-secondary);\n margin: 0 4px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .current[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-weight: 500;\n}\n\n.breadcrumb-text[_ngcontent-%COMP%] {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n\n\n\n\n.results-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.result-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.result-count[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.passed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-item.failed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.failed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-item.error[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.error[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.skipped[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.total[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs[_ngcontent-%COMP%]::-webkit-scrollbar {\n display: none;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 15px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon[_ngcontent-%COMP%] {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n\n\n.progress-section[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.auto-refresh-notice[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n\n\n.runs-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line[_ngcontent-%COMP%] {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide[_ngcontent-%COMP%] {\n width: 70%;\n}\n\n.skeleton-line.narrow[_ngcontent-%COMP%] {\n width: 40%;\n}\n\n@keyframes _ngcontent-%COMP%_shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n\n\n.test-runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item[_ngcontent-%COMP%]:active {\n transform: translateX(2px);\n}\n\n.run-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status[_ngcontent-%COMP%] {\n font-weight: 700;\n}\n\n.run-score[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover > i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n\n\n\n\n.details-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n\n\n\n\n\n\n.shortcuts-toggle[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle[_ngcontent-%COMP%]:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.shortcuts-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close[_ngcontent-%COMP%] {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\nkbd[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n\n\n\n\n@media (max-width: 1024px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider[_ngcontent-%COMP%] {\n display: none;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .results-summary[_ngcontent-%COMP%] {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 16px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 32px 20px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 56px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 24px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 40px 16px;\n }\n\n .empty-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 28px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n gap: 16px;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%], .shortcuts-toggle[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 480px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .suite-run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .metric-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .result-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 24px 16px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .progress-section[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .progress-info[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 32px 12px;\n }\n\n .empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n}\n\n\n\n\n\n@media (hover: none) and (pointer: coarse) {\n .test-run-item[_ngcontent-%COMP%] {\n min-height: 64px;\n }\n\n .test-run-item[_ngcontent-%COMP%]:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab[_ngcontent-%COMP%]:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media print {\n .suite-run-header[_ngcontent-%COMP%] {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%], \n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .result-hero[_ngcontent-%COMP%], \n .test-run-item[_ngcontent-%COMP%], \n .details-card[_ngcontent-%COMP%] {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n\n\n\n\n@media (prefers-color-scheme: dark) {\n \n\n}\n\n\n\n\n\n.tags-bar[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n.tags-bar-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n\n\n.tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn[_ngcontent-%COMP%]:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input[_ngcontent-%COMP%] {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input[_ngcontent-%COMP%]::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n\n\n.runs-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed[_ngcontent-%COMP%]:hover, \n.filter-btn.passed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed[_ngcontent-%COMP%]:hover, \n.filter-btn.failed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error[_ngcontent-%COMP%]:hover, \n.filter-btn.error.active[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n\n\n.test-run-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.run-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover .run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.run-cost[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n\n\n\n\n.inline-feedback[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn[_ngcontent-%COMP%]:hover, \n.rating-btn.hover[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low[_ngcontent-%COMP%]:hover, \n.rating-btn.low.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid[_ngcontent-%COMP%]:hover, \n.rating-btn.mid.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high[_ngcontent-%COMP%]:hover, \n.rating-btn.high.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.feedback-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .tags-bar[_ngcontent-%COMP%] {\n padding: 8px 12px;\n }\n\n .tags-bar-content[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .tag-inline[_ngcontent-%COMP%] {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 12px;\n }\n\n .tags-editor-body[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .tags-editor-footer[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .runs-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .runs-actions[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-numbers[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .feedback-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n}\n\n\n\n.overview-tab[_ngcontent-%COMP%], \n.runs-tab[_ngcontent-%COMP%], \n.details-tab[_ngcontent-%COMP%], \n.analytics-tab[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n\n\n\n\n.analytics-tab[_ngcontent-%COMP%] {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.analytics-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n\n\n.performance-matrix[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.matrix-row[_ngcontent-%COMP%]:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell[_ngcontent-%COMP%] {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell[_ngcontent-%COMP%] {\n gap: 12px;\n}\n\n.test-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.score-bar[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n\n\n.stats-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n@media (max-width: 768px) {\n .analytics-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row[_ngcontent-%COMP%] {\n display: none;\n }\n\n .matrix-cell[_ngcontent-%COMP%] {\n padding: 4px 0;\n }\n\n .test-name-cell[_ngcontent-%COMP%]::before, \n .status-cell[_ngcontent-%COMP%]::before, \n .score-cell[_ngcontent-%COMP%]::before, \n .duration-cell[_ngcontent-%COMP%]::before, \n .cost-cell[_ngcontent-%COMP%]::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell[_ngcontent-%COMP%]::before { content: 'Status:'; }\n .score-cell[_ngcontent-%COMP%]::before { content: 'Score:'; }\n .duration-cell[_ngcontent-%COMP%]::before { content: 'Duration:'; }\n .cost-cell[_ngcontent-%COMP%]::before { content: 'Cost:'; }\n\n .stats-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .stat-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n}\n\n\n\n.tab[_ngcontent-%COMP%]:focus-visible, \n.test-run-item[_ngcontent-%COMP%]:focus-visible, \nbutton[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n\n\n\n\n.analytics-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.results-table-wrapper[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n\n\n.seq-col[_ngcontent-%COMP%] {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col[_ngcontent-%COMP%] {\n \n\n width: auto;\n max-width: 50%;\n}\n\n.status-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n}\n\n.score-col[_ngcontent-%COMP%] {\n width: 1%; \n\n min-width: 120px; \n\n white-space: nowrap;\n}\n\n.duration-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n\n\n.result-row[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n\n\n.test-name-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper[_ngcontent-%COMP%] .test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n\n\n.score-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.medium[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n}\n\n.score-display[_ngcontent-%COMP%] .score-text[_ngcontent-%COMP%] {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n\n\n.results-table[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-error[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-skipped[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n\n\n@media (max-width: 768px) {\n .results-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n\n .results-table[_ngcontent-%COMP%] {\n min-width: 600px;\n }\n\n .results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n .results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .name-col[_ngcontent-%COMP%] {\n min-width: 150px;\n }\n}\n\n\n\n\n\n@media (prefers-contrast: high) {\n .status-badge[_ngcontent-%COMP%], \n .status-inline[_ngcontent-%COMP%] {\n border: 2px solid currentColor;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n border-width: 2px;\n }\n\n .tab.active[_ngcontent-%COMP%] {\n border-bottom-width: 4px;\n }\n}\n\n\n\n\n\n.evaluation-summary[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n\n.eval-summary-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n\n\n\n\n.needs-review-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.review-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list[_ngcontent-%COMP%] {\n padding: 8px;\n}\n\n.review-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item[_ngcontent-%COMP%]:not(.high-priority):not(.medium-priority) .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item[_ngcontent-%COMP%]:hover .review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.review-more[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n@media (max-width: 768px) {\n .eval-summary-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body[_ngcontent-%COMP%] {\n padding: 12px 14px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .review-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .review-item-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n\n\n\n\n.feedback-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}"], changeDetection: 0 }); }
2268
2320
  };
2269
2321
  TestSuiteRunFormComponentExtended = __decorate([
2270
2322
  RegisterClass(BaseFormComponent, 'MJ: Test Suite Runs')
@@ -2272,14 +2324,10 @@ TestSuiteRunFormComponentExtended = __decorate([
2272
2324
  export { TestSuiteRunFormComponentExtended };
2273
2325
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestSuiteRunFormComponentExtended, [{
2274
2326
  type: Component,
2275
- args: [{ selector: 'mj-test-suite-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-suite-run-form\" kendoDialogContainer>\n <!-- Header Section -->\n <div class=\"suite-run-header\">\n <!-- Breadcrumb -->\n <div class=\"breadcrumb\" *ngIf=\"testSuite\">\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\">\n <i class=\"fas fa-layer-group\"></i>\n {{ testSuite.Name }}\n </a>\n <i class=\"fas fa-chevron-right separator\"></i>\n <span class=\"current\">Run #{{ record.ID.substring(0, 8) }}</span>\n </div>\n\n <!-- Header Content -->\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"suite-run-icon\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"suite-run-info\">\n <h1>Suite Run</h1>\n <div class=\"suite-run-meta\">\n <span class=\"status-badge\" [ngClass]=\"getStatusClass()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n {{ record.Status }}\n </span>\n <span class=\"meta-tag environment\" *ngIf=\"record.Environment\">\n <i class=\"fas fa-server\"></i>\n {{ record.Environment }}\n </span>\n <span class=\"meta-tag trigger\" *ngIf=\"record.TriggerType\">\n <i class=\"fas fa-bolt\"></i>\n {{ record.TriggerType }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"header-actions\">\n <!-- Evaluation Mode Toggle -->\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n <button kendoButton (click)=\"reRunSuite()\" themeColor=\"primary\" *ngIf=\"record.SuiteID\">\n <i class=\"fas fa-play\"></i> Re-run Suite\n </button>\n <button kendoButton (click)=\"refresh()\" [disabled]=\"isRefreshing\">\n <i class=\"fas\" [ngClass]=\"isRefreshing ? 'fa-sync fa-spin' : 'fa-sync'\"></i>\n {{ isRefreshing ? 'Refreshing...' : 'Refresh' }}\n </button>\n </div>\n </div>\n\n <!-- Metrics Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-clock\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ calculateDuration() }}</div>\n <div class=\"metric-label\">Duration</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-percentage\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getPassRate().toFixed(1) }}%</div>\n <div class=\"metric-label\">Pass Rate</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-dollar-sign\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ formatCost(record.TotalCostUSD) }}</div>\n <div class=\"metric-label\">Total Cost</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-calendar\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getRelativeTime(record.StartedAt) }}</div>\n <div class=\"metric-label\">Started</div>\n </div>\n </div>\n </div>\n\n <!-- Results Summary -->\n <div class=\"results-summary\">\n <div class=\"result-item passed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-check-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.PassedTests || 0 }}</span>\n <span class=\"result-label\">Passed</span>\n </div>\n </div>\n <div class=\"result-item failed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-times-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.FailedTests || 0 }}</span>\n <span class=\"result-label\">Failed</span>\n </div>\n </div>\n <div class=\"result-item error\">\n <div class=\"result-icon\">\n <i class=\"fas fa-exclamation-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.ErrorTests || 0 }}</span>\n <span class=\"result-label\">Errors</span>\n </div>\n </div>\n <div class=\"result-item skipped\">\n <div class=\"result-icon\">\n <i class=\"fas fa-forward\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.SkippedTests || 0 }}</span>\n <span class=\"result-label\">Skipped</span>\n </div>\n </div>\n <div class=\"result-item total\">\n <div class=\"result-icon\">\n <i class=\"fas fa-list\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.TotalTests || 0 }}</span>\n <span class=\"result-label\">Total</span>\n </div>\n </div>\n </div>\n\n <!-- Tags Section - Sleek inline design -->\n <div class=\"tags-bar\" *ngIf=\"!editingTags\">\n <div class=\"tags-bar-content\">\n <span class=\"tags-bar-label\"><i class=\"fas fa-tags\"></i></span>\n <div class=\"tags-bar-chips\" *ngIf=\"tags.length > 0\">\n <span class=\"tag-inline\" *ngFor=\"let tag of tags\">{{ tag }}</span>\n </div>\n <span class=\"tags-bar-empty\" *ngIf=\"tags.length === 0\">No tags</span>\n <button class=\"tags-bar-edit\" (click)=\"startEditingTags()\" title=\"Edit tags\">\n <i class=\"fas fa-plus\"></i> Add\n </button>\n </div>\n </div>\n\n <!-- Tags Editor - Expanded when editing -->\n <div class=\"tags-editor-panel\" *ngIf=\"editingTags\">\n <div class=\"tags-editor-header\">\n <span class=\"tags-editor-title\"><i class=\"fas fa-tags\"></i> Edit Tags</span>\n </div>\n <div class=\"tags-editor-body\">\n <div class=\"tags-editor-chips\">\n <span class=\"tag-editable\" *ngFor=\"let tag of tags\">\n {{ tag }}\n <button class=\"tag-remove-btn\" (click)=\"removeTag(tag)\" title=\"Remove tag\">\n <i class=\"fas fa-times\"></i>\n </button>\n </span>\n <span class=\"tags-empty-hint\" *ngIf=\"tags.length === 0\">No tags yet</span>\n </div>\n <div class=\"tags-editor-input\">\n <input type=\"text\"\n [(ngModel)]=\"newTag\"\n placeholder=\"Type a tag and press Enter...\"\n (keyup.enter)=\"addTag()\"\n class=\"tag-text-input\" />\n <button kendoButton (click)=\"addTag()\" [disabled]=\"!newTag.trim()\" fillMode=\"flat\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </div>\n </div>\n <div class=\"tags-editor-footer\">\n <button kendoButton (click)=\"saveTags()\" themeColor=\"primary\" [disabled]=\"savingTags\">\n <i class=\"fas fa-spinner fa-spin\" *ngIf=\"savingTags\"></i>\n {{ savingTags ? 'Saving...' : 'Save' }}\n </button>\n <button kendoButton (click)=\"cancelEditingTags()\" fillMode=\"flat\">Cancel</button>\n </div>\n </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs-container\">\n <div class=\"tabs\" role=\"tablist\">\n <button class=\"tab\"\n [class.active]=\"activeTab === 'overview'\"\n (click)=\"changeTab('overview')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'overview'\">\n <i class=\"fas fa-th-large\"></i> Overview\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'runs'\"\n (click)=\"changeTab('runs')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'runs'\">\n <i class=\"fas fa-list\"></i> Test Runs\n <span class=\"tab-badge\" *ngIf=\"testRunsLoaded\">{{ testRuns.length }}</span>\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'details'\"\n (click)=\"changeTab('details')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'details'\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'analytics'\"\n (click)=\"changeTab('analytics')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'analytics'\"\n title=\"Press 4\">\n <i class=\"fas fa-chart-bar\"></i> Analytics\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'execution'\"\n (click)=\"changeTab('execution')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'execution'\"\n title=\"Press 5\">\n <i class=\"fas fa-microchip\"></i>\n <span>Execution</span>\n </button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tab-content\">\n <!-- Overview Tab -->\n <div class=\"overview-tab\" *ngIf=\"activeTab === 'overview'\">\n <!-- Result Hero -->\n <div class=\"result-hero\"\n [class.passed]=\"record.Status === 'Completed' && getPassRate() >= 90\"\n [class.failed]=\"record.Status === 'Failed' || getPassRate() < 50\"\n [class.running]=\"record.Status === 'Running'\"\n [class.pending]=\"record.Status === 'Pending'\">\n <div class=\"result-hero-icon\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"result-hero-text\">\n <h2>SUITE {{ record.Status.toUpperCase() || 'UNKNOWN' }}</h2>\n <div class=\"result-hero-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ getPassRate().toFixed(1) }}%</span>\n <span class=\"stat-label\">Pass Rate</span>\n </div>\n <div class=\"stat-divider\"></div>\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ record.PassedTests || 0 }} / {{ record.TotalTests || 0 }}</span>\n <span class=\"stat-label\">Tests Passed</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Evaluation Metrics Summary -->\n <div class=\"evaluation-summary\" *ngIf=\"evaluationMetrics && feedbacksLoaded\">\n <div class=\"eval-summary-grid\">\n <!-- Human Feedback Card -->\n <div class=\"eval-summary-card\" *ngIf=\"evalPreferences.showHuman\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Human Feedback</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Reviewed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanReviewedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.humanReviewedCount > 0\">\n <span class=\"eval-stat-label\">Avg Rating</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanAvgRating.toFixed(1) }}/10</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.humanReviewedCount > 0\">\n <span class=\"eval-stat-label\">Correct</span>\n <span class=\"eval-stat-value correct\">{{ evaluationMetrics.humanCorrectCount }}</span>\n <span class=\"eval-stat-value incorrect\" *ngIf=\"evaluationMetrics.humanIncorrectCount > 0\">{{ evaluationMetrics.humanIncorrectCount }} incorrect</span>\n </div>\n </div>\n <div class=\"eval-card-footer\" *ngIf=\"evaluationMetrics.humanPendingCount > 0\">\n <span class=\"pending-badge\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ evaluationMetrics.humanPendingCount }} need review\n </span>\n </div>\n </div>\n\n <!-- Auto Score Card -->\n <div class=\"eval-summary-card\" *ngIf=\"evalPreferences.showAuto\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Auto Evaluation</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Evaluated</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoEvaluatedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.autoEvaluatedCount > 0\">\n <span class=\"eval-stat-label\">Avg Score</span>\n <span class=\"eval-stat-value\">{{ (evaluationMetrics.autoAvgScore * 100).toFixed(0) }}%</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.autoEvaluatedCount > 0\">\n <span class=\"eval-stat-label\">Pass Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoPassRate.toFixed(0) }}%</span>\n </div>\n </div>\n </div>\n\n <!-- Execution Card -->\n <div class=\"eval-summary-card\" *ngIf=\"evalPreferences.showExecution\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-circle-check\"></i>\n <span>Execution</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Completed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execCompletedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Success Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execSuccessRate.toFixed(0) }}%</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.execErrorCount > 0 || evaluationMetrics.execTimeoutCount > 0\">\n <span class=\"eval-stat-label\">Issues</span>\n <span class=\"eval-stat-value error\" *ngIf=\"evaluationMetrics.execErrorCount > 0\">{{ evaluationMetrics.execErrorCount }} errors</span>\n <span class=\"eval-stat-value timeout\" *ngIf=\"evaluationMetrics.execTimeoutCount > 0\">{{ evaluationMetrics.execTimeoutCount }} timeouts</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Needs Review Section -->\n <div class=\"needs-review-section\" *ngIf=\"evalPreferences.showHuman && needsReviewItems.length > 0 && feedbacksLoaded\">\n <div class=\"needs-review-header\">\n <h3><i class=\"fa-solid fa-user-clock\"></i> Needs Review</h3>\n <span class=\"review-count\">{{ needsReviewItems.length }} items</span>\n </div>\n <div class=\"needs-review-list\">\n <div class=\"review-item\" *ngFor=\"let item of needsReviewItems.slice(0, 5)\"\n [class.high-priority]=\"item.priority === 'high'\"\n [class.medium-priority]=\"item.priority === 'medium'\"\n (click)=\"toggleRunExpanded(item.run.id)\">\n <div class=\"review-item-icon\">\n <i class=\"fa-solid fa-exclamation-triangle\" *ngIf=\"item.priority === 'high'\"></i>\n <i class=\"fa-solid fa-circle-dot\" *ngIf=\"item.priority === 'medium'\"></i>\n <i class=\"fa-solid fa-clock\" *ngIf=\"item.priority === 'low'\"></i>\n </div>\n <div class=\"review-item-content\">\n <span class=\"review-item-name\">{{ item.run.testName }}</span>\n <span class=\"review-item-reason\">{{ item.reason }}</span>\n </div>\n <div class=\"review-item-action\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n <div class=\"review-more\" *ngIf=\"needsReviewItems.length > 5\">\n <button kendoButton fillMode=\"flat\" (click)=\"changeTab('runs')\">\n View all {{ needsReviewItems.length }} items\n </button>\n </div>\n </div>\n </div>\n\n <!-- Progress Ring (when running) -->\n <div class=\"progress-section\" *ngIf=\"record.Status === 'Running' || record.Status === 'Pending'\">\n <div class=\"progress-info\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>Suite execution in progress...</span>\n </div>\n <div class=\"auto-refresh-notice\">\n <i class=\"fas fa-sync\"></i>\n Auto-refreshing every 5 seconds\n </div>\n </div>\n </div>\n\n <!-- Test Runs Tab -->\n <div class=\"runs-tab\" *ngIf=\"activeTab === 'runs'\">\n <!-- Toolbar -->\n <div class=\"runs-toolbar\" *ngIf=\"testRunsLoaded && testRuns.length > 0\">\n <div class=\"run-filters\">\n <button class=\"filter-btn\"\n [class.active]=\"runStatusFilter === null\"\n (click)=\"setRunStatusFilter(null)\">\n All ({{ testRuns.length }})\n </button>\n <button class=\"filter-btn passed\"\n [class.active]=\"runStatusFilter === 'Passed'\"\n (click)=\"setRunStatusFilter('Passed')\"\n *ngIf=\"getRunCountByStatus('Passed') > 0\">\n <i class=\"fas fa-check\"></i> Passed ({{ getRunCountByStatus('Passed') }})\n </button>\n <button class=\"filter-btn failed\"\n [class.active]=\"runStatusFilter === 'Failed'\"\n (click)=\"setRunStatusFilter('Failed')\"\n *ngIf=\"getRunCountByStatus('Failed') > 0\">\n <i class=\"fas fa-times\"></i> Failed ({{ getRunCountByStatus('Failed') }})\n </button>\n <button class=\"filter-btn error\"\n [class.active]=\"runStatusFilter === 'Error'\"\n (click)=\"setRunStatusFilter('Error')\"\n *ngIf=\"getRunCountByStatus('Error') > 0\">\n <i class=\"fas fa-exclamation\"></i> Error ({{ getRunCountByStatus('Error') }})\n </button>\n </div>\n <div class=\"runs-actions\">\n <button kendoButton (click)=\"exportToCSV()\">\n <i class=\"fas fa-download\"></i> Export CSV\n </button>\n </div>\n </div>\n\n <!-- Loading State -->\n <div class=\"loading-state\" *ngIf=\"loadingTestRuns\">\n <div class=\"skeleton-list\">\n <div class=\"skeleton-card\" *ngFor=\"let i of [1,2,3,4,5]\">\n <div class=\"skeleton-sequence\"></div>\n <div class=\"skeleton-icon\"></div>\n <div class=\"skeleton-content\">\n <div class=\"skeleton-line wide\"></div>\n <div class=\"skeleton-line narrow\"></div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Test Runs List -->\n <div class=\"test-runs-list\" *ngIf=\"!loadingTestRuns && testRuns.length > 0\">\n <div class=\"test-run-card\" *ngFor=\"let run of getFilteredTestRuns()\">\n <div class=\"test-run-item\" (click)=\"toggleRunExpanded(run.ID)\">\n <div class=\"run-sequence\">{{ run.Sequence || '-' }}</div>\n <div class=\"run-icon\" [style.background-color]=\"getRunStatusColor(run.Status)\">\n <i class=\"fas\" [ngClass]=\"getRunStatusIcon(run.Status)\"></i>\n </div>\n <div class=\"run-content\">\n <div class=\"run-header-row\">\n <div class=\"run-name\">{{ run.Test }}</div>\n <!-- Evaluation Badge -->\n <app-evaluation-badge\n [executionStatus]=\"run.Status\"\n [originalStatus]=\"run.Status\"\n [autoScore]=\"run.Score\"\n [humanRating]=\"getFeedbackRating(run.ID) || null\"\n [humanIsCorrect]=\"getHumanIsCorrect(run.ID)\"\n [hasHumanFeedback]=\"hasFeedback(run.ID)\"\n [preferences]=\"evalPreferences\"\n [mode]=\"'compact'\">\n </app-evaluation-badge>\n </div>\n <div class=\"run-meta\">\n <span class=\"run-duration\" *ngIf=\"run.DurationSeconds\">\n <i class=\"fas fa-clock\"></i> {{ run.DurationSeconds.toFixed(1) }}s\n </span>\n <span class=\"run-cost\" *ngIf=\"run.CostUSD\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.CostUSD.toFixed(6) }}\n </span>\n <mj-entity-link-pill\n *ngIf=\"run.TargetLogEntityID && run.TargetLogID\"\n [entityName]=\"run.TargetLogEntity\"\n [recordId]=\"run.TargetLogID\">\n </mj-entity-link-pill>\n </div>\n <div class=\"run-tags\" *ngIf=\"getRunTags(run).length > 0\">\n <span class=\"tag-chip\" *ngFor=\"let tag of getRunTags(run)\">{{ tag }}</span>\n </div>\n </div>\n <div class=\"run-expand\">\n <i class=\"fas\" [class.fa-chevron-down]=\"expandedRunId !== run.ID\" [class.fa-chevron-up]=\"expandedRunId === run.ID\"></i>\n </div>\n </div>\n\n <!-- Expanded Inline Feedback -->\n <div class=\"inline-feedback\" *ngIf=\"expandedRunId === run.ID\">\n <div class=\"feedback-divider\"></div>\n\n <div class=\"feedback-section\">\n <div class=\"feedback-label\">Quick Feedback</div>\n\n <div class=\"inline-rating\">\n <div class=\"rating-numbers\">\n <button *ngFor=\"let num of [1,2,3,4,5,6,7,8,9,10]\"\n type=\"button\"\n class=\"rating-btn\"\n [class.selected]=\"num === inlineRating\"\n [class.hover]=\"num === inlineHoverRating\"\n [class.low]=\"num <= 3\"\n [class.mid]=\"num >= 4 && num <= 6\"\n [class.high]=\"num >= 7\"\n (click)=\"setInlineRating(num); $event.stopPropagation()\"\n (mouseenter)=\"inlineHoverRating = num\"\n (mouseleave)=\"inlineHoverRating = 0\">\n {{ num }}\n </button>\n </div>\n <div class=\"rating-info\" *ngIf=\"inlineRating > 0\">\n <span class=\"rating-value\">{{ inlineRating }}/10</span>\n <span class=\"rating-label-text\">{{ getInlineRatingLabel() }}</span>\n </div>\n </div>\n\n <div class=\"correctness-row\">\n <span class=\"correctness-label\">Was it correct?</span>\n <div class=\"correctness-options\">\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"true\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Yes</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"false\" [(ngModel)]=\"inlineIsCorrect\">\n <span>No</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"null\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Not Sure</span>\n </label>\n </div>\n </div>\n\n <div class=\"comments-row\" (click)=\"$event.stopPropagation()\">\n <textarea\n class=\"feedback-textarea\"\n [(ngModel)]=\"inlineComments\"\n placeholder=\"Add comments or corrections...\"\n rows=\"3\"></textarea>\n </div>\n\n <div class=\"feedback-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton (click)=\"openTestRun(run.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Full Details\n </button>\n <button kendoButton\n themeColor=\"primary\"\n (click)=\"saveInlineFeedback()\"\n [disabled]=\"!canSubmitInlineFeedback() || savingInlineFeedback\">\n <i class=\"fas\" [ngClass]=\"savingInlineFeedback ? 'fa-spinner fa-spin' : 'fa-save'\"></i>\n {{ savingInlineFeedback ? 'Saving...' : (hasFeedback(run.ID) ? 'Update' : 'Save') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"testRunsLoaded && !loadingTestRuns && testRuns.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-inbox\"></i>\n </div>\n <h4>No Test Runs Found</h4>\n <p>No test runs have been recorded for this suite execution.</p>\n </div>\n\n <!-- Filtered Empty -->\n <div class=\"empty-state\" *ngIf=\"testRunsLoaded && !loadingTestRuns && testRuns.length > 0 && getFilteredTestRuns().length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-filter\"></i>\n </div>\n <h4>No Matching Runs</h4>\n <p>No test runs match the current filter.</p>\n <button kendoButton (click)=\"setRunStatusFilter(null)\">Clear Filter</button>\n </div>\n </div>\n\n <!-- Details Tab -->\n <div class=\"details-tab\" *ngIf=\"activeTab === 'details'\">\n <div class=\"details-card\">\n <h3><i class=\"fas fa-info-circle\"></i> Run Information</h3>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run ID</div>\n <div class=\"detail-value monospace\">{{ record.ID }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Test Suite</div>\n <div class=\"detail-value\">\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\" *ngIf=\"testSuite\">{{ testSuite.Name }}</a>\n <span *ngIf=\"!testSuite\">Loading...</span>\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Status</div>\n <div class=\"detail-value\">\n <span class=\"status-inline\" [ngClass]=\"getStatusClass()\">{{ record.Status }}</span>\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run By</div>\n <div class=\"detail-value\">{{ record.RunByUser || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Started At</div>\n <div class=\"detail-value\">{{ record.StartedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Completed At</div>\n <div class=\"detail-value\">{{ record.CompletedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Environment</div>\n <div class=\"detail-value\">{{ record.Environment || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Trigger Type</div>\n <div class=\"detail-value\">{{ record.TriggerType || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Git Commit</div>\n <div class=\"detail-value monospace\">{{ record.GitCommit || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Agent Version</div>\n <div class=\"detail-value\">{{ record.AgentVersion || 'N/A' }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Analytics Tab -->\n <div class=\"analytics-tab\" *ngIf=\"activeTab === 'analytics'\">\n <!-- Loading State -->\n <div class=\"analytics-loading\" *ngIf=\"loadingTestRuns\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n <span>Loading test results...</span>\n </div>\n\n <!-- Summary Statistics - Moved to top for better overview -->\n <div class=\"analytics-section\" *ngIf=\"!loadingTestRuns && testRuns.length > 0\">\n <h3><i class=\"fas fa-chart-pie\"></i> Summary Statistics</h3>\n <div class=\"stats-grid\">\n <div class=\"stat-card\">\n <div class=\"stat-icon passed\"><i class=\"fas fa-check-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getPassedCount() }}</div>\n <div class=\"stat-label\">Passed</div>\n <div class=\"stat-percent\">{{ getPassedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon failed\"><i class=\"fas fa-times-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getFailedCount() }}</div>\n <div class=\"stat-label\">Failed</div>\n <div class=\"stat-percent\">{{ getFailedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon score\"><i class=\"fas fa-star\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ (getAverageScore() * 100).toFixed(1) }}%</div>\n <div class=\"stat-label\">Avg Score</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon duration\"><i class=\"fas fa-clock\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getAverageDuration().toFixed(1) }}s</div>\n <div class=\"stat-label\">Avg Duration</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon cost\"><i class=\"fas fa-dollar-sign\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">${{ getTotalCost().toFixed(4) }}</div>\n <div class=\"stat-label\">Total Cost</div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Test Results Table -->\n <div class=\"analytics-section\" *ngIf=\"!loadingTestRuns && testRuns.length > 0\">\n <div class=\"analytics-header\">\n <h3><i class=\"fas fa-table\"></i> Test Results</h3>\n <div class=\"analytics-legend\">\n <span class=\"legend-item passed\"><i class=\"fas fa-check-circle\"></i> Passed</span>\n <span class=\"legend-item failed\"><i class=\"fas fa-times-circle\"></i> Failed</span>\n <span class=\"legend-item error\"><i class=\"fas fa-exclamation-circle\"></i> Error</span>\n <span class=\"legend-item skipped\"><i class=\"fas fa-forward\"></i> Skipped</span>\n </div>\n </div>\n\n <!-- Results Table -->\n <div class=\"results-table-wrapper\">\n <table class=\"results-table\">\n <thead>\n <tr>\n <th class=\"seq-col\">#</th>\n <th class=\"name-col\">Test Name</th>\n <th class=\"status-col\" *ngIf=\"evalPreferences.showExecution\">Status</th>\n <th class=\"score-col\" *ngIf=\"evalPreferences.showAuto\">Auto Score</th>\n <th class=\"feedback-col\" *ngIf=\"evalPreferences.showHuman\">Human Score</th>\n <th class=\"duration-col\">Duration</th>\n <th class=\"cost-col\">Cost</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let run of testRuns; let i = index\"\n class=\"result-row\"\n [class.row-passed]=\"run.Status === 'Passed'\"\n [class.row-failed]=\"run.Status === 'Failed'\"\n [class.row-error]=\"run.Status === 'Error'\"\n [class.row-skipped]=\"run.Status === 'Skipped'\"\n (click)=\"openTestRun(run.ID)\">\n <td class=\"seq-col\">{{ i + 1 }}</td>\n <td class=\"name-col\">\n <div class=\"test-name-wrapper\">\n <span class=\"test-name\">{{ run.Test || 'Unknown Test' }}</span>\n <div class=\"test-tags\" *ngIf=\"getRunTags(run).length > 0\">\n <span class=\"tag-mini\" *ngFor=\"let tag of getRunTags(run).slice(0, 2)\">{{ tag }}</span>\n </div>\n </div>\n </td>\n <td class=\"status-col\" *ngIf=\"evalPreferences.showExecution\">\n <span class=\"status-badge\" [ngClass]=\"'status-' + run.Status.toLowerCase()\">\n <i class=\"fas\"\n [class.fa-check-circle]=\"run.Status === 'Passed'\"\n [class.fa-times-circle]=\"run.Status === 'Failed'\"\n [class.fa-exclamation-circle]=\"run.Status === 'Error'\"\n [class.fa-forward]=\"run.Status === 'Skipped'\"\n [class.fa-clock]=\"run.Status === 'Pending'\"\n [class.fa-spinner]=\"run.Status === 'Running'\"\n [class.fa-spin]=\"run.Status === 'Running'\"></i>\n {{ run.Status }}\n </span>\n </td>\n <td class=\"score-col\" *ngIf=\"evalPreferences.showAuto\">\n <div class=\"score-display\" *ngIf=\"run.Score != null\">\n <div class=\"score-bar-mini\">\n <div class=\"score-fill\"\n [style.width.%]=\"run.Score * 100\"\n [class.high]=\"run.Score >= 0.8\"\n [class.medium]=\"run.Score >= 0.5 && run.Score < 0.8\"\n [class.low]=\"run.Score < 0.5\"></div>\n </div>\n <span class=\"score-text\">{{ (run.Score * 100).toFixed(0) }}%</span>\n </div>\n <span class=\"na-value\" *ngIf=\"run.Score == null\">\u2014</span>\n </td>\n <td class=\"feedback-col\" *ngIf=\"evalPreferences.showHuman\">\n <div class=\"feedback-display\" *ngIf=\"hasFeedback(run.ID)\">\n <span class=\"feedback-rating\" [class.low]=\"getFeedbackRating(run.ID) <= 3\" [class.mid]=\"getFeedbackRating(run.ID) >= 4 && getFeedbackRating(run.ID) <= 6\" [class.high]=\"getFeedbackRating(run.ID) >= 7\">\n {{ getFeedbackRating(run.ID) }}/10\n </span>\n <span class=\"feedback-correctness\" *ngIf=\"getHumanIsCorrect(run.ID) !== null\">\n <i class=\"fas\" [class.fa-check]=\"getHumanIsCorrect(run.ID) === true\" [class.fa-times]=\"getHumanIsCorrect(run.ID) === false\" [class.correct]=\"getHumanIsCorrect(run.ID) === true\" [class.incorrect]=\"getHumanIsCorrect(run.ID) === false\"></i>\n </span>\n </div>\n <span class=\"na-value needs-review\" *ngIf=\"!hasFeedback(run.ID)\">\n <i class=\"fas fa-user-clock\"></i>\n </span>\n </td>\n <td class=\"duration-col\">\n <span *ngIf=\"run.DurationSeconds\">{{ run.DurationSeconds.toFixed(1) }}s</span>\n <span class=\"na-value\" *ngIf=\"!run.DurationSeconds\">\u2014</span>\n </td>\n <td class=\"cost-col\">\n <span *ngIf=\"run.CostUSD\">${{ run.CostUSD.toFixed(4) }}</span>\n <span class=\"na-value\" *ngIf=\"!run.CostUSD\">\u2014</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"!loadingTestRuns && testRunsLoaded && testRuns.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-chart-bar\"></i>\n </div>\n <h4>No Test Results Yet</h4>\n <p>Test runs will appear here once the suite execution completes.</p>\n </div>\n </div>\n\n <!-- Execution Tab -->\n <div class=\"execution-tab\" *ngIf=\"activeTab === 'execution'\">\n <mj-execution-context\n [machineName]=\"record.MachineName\"\n [machineId]=\"record.MachineID\"\n [runByUserName]=\"record.RunByUserName\"\n [runByUserEmail]=\"record.RunByUserEmail\"\n [runContextDetailsJson]=\"record.RunContextDetails\">\n </mj-execution-context>\n </div>\n </div>\n\n <!-- Keyboard Shortcuts Toggle Button -->\n <button class=\"shortcuts-toggle\" (click)=\"toggleShortcuts()\" [title]=\"showShortcuts ? 'Hide keyboard shortcuts' : 'Show keyboard shortcuts'\">\n <i class=\"fas fa-keyboard\"></i>\n </button>\n\n <!-- Keyboard Shortcuts Hint (Desktop Only) -->\n <div class=\"keyboard-shortcuts\" *ngIf=\"showShortcuts\">\n <div class=\"shortcuts-header\">\n <i class=\"fas fa-keyboard\"></i>\n Shortcuts\n <button class=\"shortcuts-close\" (click)=\"toggleShortcuts()\" title=\"Hide shortcuts\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n <div class=\"shortcut-list\">\n <div class=\"shortcut-item\">\n <span>Refresh</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Re-run Suite</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>Shift</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Switch Tabs</span>\n <span class=\"shortcut-keys\"><kbd>1</kbd>-<kbd>5</kbd></span>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* ===================================\n Test Suite Run Form - Premium UX\n World-class responsive design\n =================================== */\n\n/* CSS Custom Properties */\n:host {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* Base Container */\n.test-suite-run-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n/* ===================================\n Header Section\n =================================== */\n.suite-run-header {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n/* Breadcrumb */\n.breadcrumb {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n margin-bottom: 16px;\n}\n\n.breadcrumb a {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: var(--suite-run-transition);\n}\n\n.breadcrumb a:hover {\n color: #2563eb;\n}\n\n.breadcrumb .separator {\n font-size: 10px;\n color: #cbd5e1;\n}\n\n.breadcrumb .current {\n color: var(--suite-run-text);\n font-weight: 500;\n}\n\n/* Header Content */\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info h1 {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n/* ===================================\n Metrics Bar\n =================================== */\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n/* ===================================\n Results Summary\n =================================== */\n.results-summary {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon {\n font-size: 24px;\n}\n\n.result-content {\n display: flex;\n flex-direction: column;\n}\n\n.result-count {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed .result-icon,\n.result-item.passed .result-count {\n color: var(--suite-run-success);\n}\n\n.result-item.failed .result-icon,\n.result-item.failed .result-count {\n color: var(--suite-run-danger);\n}\n\n.result-item.error .result-icon,\n.result-item.error .result-count {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped .result-icon,\n.result-item.skipped .result-count {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total .result-icon,\n.result-item.total .result-count {\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Tabs\n =================================== */\n.tabs-container {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs::-webkit-scrollbar {\n display: none;\n}\n\n.tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab i {\n font-size: 15px;\n}\n\n.tab-badge {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active .tab-badge {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n/* ===================================\n Tab Content\n =================================== */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n/* ===================================\n Overview Tab\n =================================== */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed .result-hero-icon {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed .result-hero-icon {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running .result-hero-icon {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending .result-hero-icon {\n color: var(--suite-run-info);\n}\n\n.result-hero-text h2 {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n/* Progress Section */\n.progress-section {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info i {\n font-size: 20px;\n}\n\n.auto-refresh-notice {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* ===================================\n Test Runs Tab\n =================================== */\n.runs-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n/* Loading Skeleton */\n.loading-state {\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide {\n width: 70%;\n}\n\n.skeleton-line.narrow {\n width: 40%;\n}\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n/* Test Runs List */\n.test-runs-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item:active {\n transform: translateX(2px);\n}\n\n.run-sequence {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status {\n font-weight: 700;\n}\n\n.run-score,\n.run-duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score i,\n.run-duration i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item > i {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover > i {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state h4 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n/* ===================================\n Details Tab\n =================================== */\n.details-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card h3 i {\n color: var(--suite-run-primary);\n}\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value a {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value a:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n/* ===================================\n Keyboard Shortcuts\n =================================== */\n/* Toggle button - visible when shortcuts are hidden */\n.shortcuts-toggle {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts:hover {\n opacity: 1;\n}\n\n.shortcuts-header {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header i {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item span:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys {\n display: flex;\n gap: 4px;\n}\n\nkbd {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n/* ===================================\n Responsive Design - Tablet\n =================================== */\n@media (max-width: 1024px) {\n .suite-run-header {\n padding: 16px 20px;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider {\n display: none;\n }\n\n .details-grid {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Mobile\n =================================== */\n@media (max-width: 768px) {\n .suite-run-header {\n padding: 16px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left {\n width: 100%;\n }\n\n .suite-run-icon {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info h1 {\n font-size: 20px;\n }\n\n .header-actions {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions button {\n flex: 1;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon {\n width: 36px;\n height: 36px;\n }\n\n .metric-value {\n font-size: 16px;\n }\n\n .results-summary {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon {\n font-size: 20px;\n }\n\n .result-count {\n font-size: 18px;\n }\n\n .tabs {\n padding: 0 16px;\n }\n\n .tab {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content {\n padding: 16px;\n }\n\n .result-hero {\n padding: 32px 20px;\n }\n\n .result-hero-icon {\n font-size: 56px;\n }\n\n .result-hero-text h2 {\n font-size: 24px;\n }\n\n .stat-value {\n font-size: 20px;\n }\n\n .test-run-item {\n padding: 14px;\n }\n\n .run-sequence {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name {\n font-size: 13px;\n }\n\n .run-meta {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state {\n padding: 40px 16px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon i {\n font-size: 28px;\n }\n\n .details-card {\n padding: 16px;\n }\n\n .details-grid {\n gap: 16px;\n }\n\n .keyboard-shortcuts, .shortcuts-toggle {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Small Mobile\n =================================== */\n@media (max-width: 480px) {\n .suite-run-header {\n padding: 12px;\n }\n\n .breadcrumb {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info h1 {\n font-size: 18px;\n }\n\n .suite-run-meta {\n gap: 8px;\n }\n\n .status-badge {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .metric-label {\n font-size: 9px;\n }\n\n .result-item {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon {\n font-size: 18px;\n }\n\n .result-count {\n font-size: 16px;\n }\n\n .result-label {\n font-size: 9px;\n }\n\n .tabs {\n padding: 0 12px;\n }\n\n .tab {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab i {\n font-size: 14px;\n }\n\n .tab-content {\n padding: 12px;\n }\n\n .result-hero {\n padding: 24px 16px;\n }\n\n .result-hero-icon {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text h2 {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value {\n font-size: 18px;\n }\n\n .stat-label {\n font-size: 10px;\n }\n\n .progress-section {\n padding: 16px;\n }\n\n .progress-info {\n font-size: 14px;\n }\n\n .test-run-item {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state {\n padding: 32px 12px;\n }\n\n .empty-state h4 {\n font-size: 16px;\n }\n\n .empty-state p {\n font-size: 13px;\n }\n\n .details-card {\n padding: 14px;\n }\n\n .details-card h3 {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label {\n font-size: 10px;\n }\n\n .detail-value {\n font-size: 13px;\n }\n}\n\n/* ===================================\n Touch Device Optimizations\n =================================== */\n@media (hover: none) and (pointer: coarse) {\n .test-run-item {\n min-height: 64px;\n }\n\n .test-run-item:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts {\n display: none;\n }\n}\n\n/* ===================================\n Print Styles\n =================================== */\n@media print {\n .suite-run-header {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container,\n .header-actions,\n .keyboard-shortcuts {\n display: none;\n }\n\n .tab-content {\n padding: 20px 0;\n }\n\n .result-hero,\n .test-run-item,\n .details-card {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n/* ===================================\n Dark Mode Support (Future)\n =================================== */\n@media (prefers-color-scheme: dark) {\n /* Ready for dark mode implementation */\n}\n\n/* ===================================\n Tags Bar - Sleek Inline Display\n =================================== */\n.tags-bar {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label i {\n opacity: 0.6;\n}\n\n.tags-bar-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit i {\n font-size: 10px;\n}\n\n/* ===================================\n Tags Editor Panel - Expanded Edit Mode\n =================================== */\n.tags-editor-panel {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* ===================================\n Runs Toolbar\n =================================== */\n.runs-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed:hover,\n.filter-btn.passed.active {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed:hover,\n.filter-btn.failed.active {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error:hover,\n.filter-btn.error.active {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions {\n display: flex;\n gap: 8px;\n}\n\n/* ===================================\n Test Run Card (Expandable)\n =================================== */\n.test-run-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator i {\n font-size: 10px;\n}\n\n.run-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover .run-expand {\n color: var(--suite-run-primary);\n}\n\n.run-cost {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* ===================================\n Inline Feedback\n =================================== */\n.inline-feedback {\n padding: 0 16px 16px;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn:hover,\n.rating-btn.hover {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low:hover,\n.rating-btn.low.hover {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid:hover,\n.rating-btn.mid.hover {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high:hover,\n.rating-btn.high.hover {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt input[type=\"radio\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row {\n width: 100%;\n}\n\n.feedback-textarea {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n/* ===================================\n Mobile Responsive Updates\n =================================== */\n@media (max-width: 768px) {\n .tags-bar {\n padding: 8px 12px;\n }\n\n .tags-bar-content {\n gap: 8px;\n }\n\n .tag-inline {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel {\n margin-top: 12px;\n }\n\n .tags-editor-body {\n padding: 12px;\n }\n\n .tags-editor-footer {\n padding: 10px 12px;\n }\n\n .runs-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters {\n justify-content: center;\n }\n\n .runs-actions {\n justify-content: center;\n }\n\n .rating-numbers {\n justify-content: center;\n }\n\n .rating-btn {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions {\n flex-direction: column;\n }\n\n .feedback-actions button {\n width: 100%;\n }\n}\n\n/* ===================================\n Animations\n =================================== */\n@keyframes pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running .result-hero-icon {\n animation: pulse 2s ease-in-out infinite;\n}\n\n/* Tab content fade in */\n.overview-tab,\n.runs-tab,\n.details-tab,\n.analytics-tab {\n animation: fadeIn 0.3s ease;\n}\n\n/* ===================================\n Analytics Tab\n =================================== */\n.analytics-tab {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section h3 i {\n color: var(--suite-run-primary);\n}\n\n.analytics-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header h3 {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped {\n color: var(--suite-run-neutral);\n}\n\n/* Performance Matrix */\n.performance-matrix {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row:last-child {\n border-bottom: none;\n}\n\n.matrix-row:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell {\n gap: 12px;\n}\n\n.test-sequence {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running {\n color: var(--suite-run-primary);\n}\n\n.score-bar {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n/* Summary Statistics Grid */\n.stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card .stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card .stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* Responsive Analytics */\n@media (max-width: 768px) {\n .analytics-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row {\n display: none;\n }\n\n .matrix-cell {\n padding: 4px 0;\n }\n\n .test-name-cell::before,\n .status-cell::before,\n .score-cell::before,\n .duration-cell::before,\n .cost-cell::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell::before { content: 'Status:'; }\n .score-cell::before { content: 'Score:'; }\n .duration-cell::before { content: 'Duration:'; }\n .cost-cell::before { content: 'Cost:'; }\n\n .stats-grid {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card {\n padding: 16px;\n }\n\n .stat-icon {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card .stat-value {\n font-size: 20px;\n }\n}\n\n/* Focus States for Accessibility */\n.tab:focus-visible,\n.test-run-item:focus-visible,\nbutton:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n/* ===================================\n Analytics Loading State\n =================================== */\n.analytics-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading i {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Results Table\n =================================== */\n.results-table-wrapper {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table thead {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table th {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n/* Column widths - Fixed columns fit content, name column takes remainder (max 50%) */\n.seq-col {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col {\n /* Take remaining space, but cap at 50% of table width */\n width: auto;\n max-width: 50%;\n}\n\n.status-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n}\n\n.score-col {\n width: 1%; /* Shrink to fit content */\n min-width: 120px; /* Score bar needs some minimum width */\n white-space: nowrap;\n}\n\n.duration-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n/* Result Row */\n.result-row {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n/* Test Name Wrapper */\n.test-name-wrapper {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper .test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n/* Score Display */\n.score-display {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini .score-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini .score-fill.high {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini .score-fill.medium {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini .score-fill.low {\n background: var(--suite-run-danger);\n}\n\n.score-display .score-text {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n/* Status Badge in Table */\n.results-table .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table .status-badge.status-passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table .status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table .status-badge.status-error {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table .status-badge.status-skipped {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table .status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table .status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n/* Responsive Results Table */\n@media (max-width: 768px) {\n .results-table-wrapper {\n overflow-x: auto;\n }\n\n .results-table {\n min-width: 600px;\n }\n\n .results-table th,\n .results-table td {\n padding: 10px 12px;\n }\n\n .name-col {\n min-width: 150px;\n }\n}\n\n/* ===================================\n High Contrast Mode\n =================================== */\n@media (prefers-contrast: high) {\n .status-badge,\n .status-inline {\n border: 2px solid currentColor;\n }\n\n .test-run-item {\n border-width: 2px;\n }\n\n .tab.active {\n border-bottom-width: 4px;\n }\n}\n\n/* ===================================\n Evaluation Summary\n =================================== */\n.evaluation-summary {\n margin-top: 20px;\n}\n\n.eval-summary-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header i {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge i {\n font-size: 11px;\n}\n\n/* ===================================\n Needs Review Section\n =================================== */\n.needs-review-section {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header h3 i {\n font-size: 16px;\n}\n\n.review-count {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list {\n padding: 8px;\n}\n\n.review-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority .review-item-icon {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority .review-item-icon {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item:not(.high-priority):not(.medium-priority) .review-item-icon {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item:hover .review-item-action {\n color: var(--suite-run-primary);\n}\n\n.review-more {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* Mobile Responsive for Evaluation */\n@media (max-width: 768px) {\n .eval-summary-grid {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body {\n padding: 12px 14px;\n }\n\n .needs-review-header {\n padding: 12px 16px;\n }\n\n .needs-review-header h3 {\n font-size: 13px;\n }\n\n .review-item {\n padding: 10px 12px;\n }\n\n .review-item-icon {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n/* ===================================\n Feedback Column in Analytics Table\n =================================== */\n.feedback-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i {\n font-size: 12px;\n}\n\n.feedback-correctness i.correct {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i.incorrect {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review i {\n font-size: 14px;\n}\n"] }]
2276
- }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.TestingDialogService }, { type: i3.EvaluationPreferencesService }, { type: i0.ViewContainerRef }], { handleKeyboardShortcut: [{
2327
+ args: [{ standalone: false, selector: 'mj-test-suite-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-suite-run-form\" kendoDialogContainer>\n <!-- Header Section -->\n <div class=\"suite-run-header\">\n <!-- Breadcrumb Navigation -->\n <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n <ol>\n <li>\n <a href=\"javascript:void(0)\" (click)=\"navigateToTestingDashboard()\">\n <i class=\"fas fa-vial\"></i>\n <span class=\"breadcrumb-text\">Testing</span>\n </a>\n </li>\n @if (testSuite) {\n <li>\n <i class=\"fas fa-chevron-right separator\"></i>\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\">\n <i class=\"fas fa-layer-group\"></i>\n <span class=\"breadcrumb-text\">{{ testSuite.Name }}</span>\n </a>\n </li>\n }\n <li class=\"current\">\n <i class=\"fas fa-chevron-right separator\"></i>\n <span>Run #{{ record.ID.substring(0, 8) }}</span>\n </li>\n </ol>\n </nav>\n\n <!-- Header Content -->\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"suite-run-icon\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"suite-run-info\">\n <h1>Suite Run</h1>\n <div class=\"suite-run-meta\">\n <span class=\"status-badge\" [ngClass]=\"getStatusClass()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n {{ record.Status }}\n </span>\n @if (record.Environment) {\n <span class=\"meta-tag environment\">\n <i class=\"fas fa-server\"></i>\n {{ record.Environment }}\n </span>\n }\n @if (record.TriggerType) {\n <span class=\"meta-tag trigger\">\n <i class=\"fas fa-bolt\"></i>\n {{ record.TriggerType }}\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"header-actions\">\n <!-- Evaluation Mode Toggle -->\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n @if (record.SuiteID) {\n <button kendoButton (click)=\"reRunSuite()\" themeColor=\"primary\">\n <i class=\"fas fa-play\"></i> Re-run Suite\n </button>\n }\n <button kendoButton (click)=\"refresh()\" [disabled]=\"isRefreshing\">\n <i class=\"fas\" [ngClass]=\"isRefreshing ? 'fa-sync fa-spin' : 'fa-sync'\"></i>\n {{ isRefreshing ? 'Refreshing...' : 'Refresh' }}\n </button>\n </div>\n </div>\n\n <!-- Metrics Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-clock\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ calculateDuration() }}</div>\n <div class=\"metric-label\">Duration</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-percentage\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getPassRate().toFixed(1) }}%</div>\n <div class=\"metric-label\">Pass Rate</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-dollar-sign\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ formatCost(record.TotalCostUSD) }}</div>\n <div class=\"metric-label\">Total Cost</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-calendar\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getRelativeTime(record.StartedAt) }}</div>\n <div class=\"metric-label\">Started</div>\n </div>\n </div>\n </div>\n\n <!-- Results Summary -->\n <div class=\"results-summary\">\n <div class=\"result-item passed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-check-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.PassedTests || 0 }}</span>\n <span class=\"result-label\">Passed</span>\n </div>\n </div>\n <div class=\"result-item failed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-times-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.FailedTests || 0 }}</span>\n <span class=\"result-label\">Failed</span>\n </div>\n </div>\n <div class=\"result-item error\">\n <div class=\"result-icon\">\n <i class=\"fas fa-exclamation-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.ErrorTests || 0 }}</span>\n <span class=\"result-label\">Errors</span>\n </div>\n </div>\n <div class=\"result-item skipped\">\n <div class=\"result-icon\">\n <i class=\"fas fa-forward\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.SkippedTests || 0 }}</span>\n <span class=\"result-label\">Skipped</span>\n </div>\n </div>\n <div class=\"result-item total\">\n <div class=\"result-icon\">\n <i class=\"fas fa-list\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.TotalTests || 0 }}</span>\n <span class=\"result-label\">Total</span>\n </div>\n </div>\n </div>\n\n <!-- Tags Section - Sleek inline design -->\n @if (!editingTags) {\n <div class=\"tags-bar\">\n <div class=\"tags-bar-content\">\n <span class=\"tags-bar-label\"><i class=\"fas fa-tags\"></i></span>\n @if (tags.length > 0) {\n <div class=\"tags-bar-chips\">\n @for (tag of tags; track tag) {\n <span class=\"tag-inline\">{{ tag }}</span>\n }\n </div>\n }\n @if (tags.length === 0) {\n <span class=\"tags-bar-empty\">No tags</span>\n }\n <button class=\"tags-bar-edit\" (click)=\"startEditingTags()\" title=\"Edit tags\">\n <i class=\"fas fa-plus\"></i> Add\n </button>\n </div>\n </div>\n }\n\n <!-- Tags Editor - Expanded when editing -->\n @if (editingTags) {\n <div class=\"tags-editor-panel\">\n <div class=\"tags-editor-header\">\n <span class=\"tags-editor-title\"><i class=\"fas fa-tags\"></i> Edit Tags</span>\n </div>\n <div class=\"tags-editor-body\">\n <div class=\"tags-editor-chips\">\n @for (tag of tags; track tag) {\n <span class=\"tag-editable\">\n {{ tag }}\n <button class=\"tag-remove-btn\" (click)=\"removeTag(tag)\" title=\"Remove tag\">\n <i class=\"fas fa-times\"></i>\n </button>\n </span>\n }\n @if (tags.length === 0) {\n <span class=\"tags-empty-hint\">No tags yet</span>\n }\n </div>\n <div class=\"tags-editor-input\">\n <input type=\"text\"\n [(ngModel)]=\"newTag\"\n placeholder=\"Type a tag and press Enter...\"\n (keyup.enter)=\"addTag()\"\n class=\"tag-text-input\" />\n <button kendoButton (click)=\"addTag()\" [disabled]=\"!newTag.trim()\" fillMode=\"flat\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </div>\n </div>\n <div class=\"tags-editor-footer\">\n <button kendoButton (click)=\"saveTags()\" themeColor=\"primary\" [disabled]=\"savingTags\">\n @if (savingTags) {\n <i class=\"fas fa-spinner fa-spin\"></i>\n }\n {{ savingTags ? 'Saving...' : 'Save' }}\n </button>\n <button kendoButton (click)=\"cancelEditingTags()\" fillMode=\"flat\">Cancel</button>\n </div>\n </div>\n }\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs-container\">\n <div class=\"tabs\" role=\"tablist\">\n <button class=\"tab\"\n [class.active]=\"activeTab === 'overview'\"\n (click)=\"changeTab('overview')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'overview'\">\n <i class=\"fas fa-th-large\"></i> Overview\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'runs'\"\n (click)=\"changeTab('runs')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'runs'\">\n <i class=\"fas fa-list\"></i> Test Runs\n @if (testRunsLoaded) {\n <span class=\"tab-badge\">{{ testRuns.length }}</span>\n }\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'details'\"\n (click)=\"changeTab('details')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'details'\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'analytics'\"\n (click)=\"changeTab('analytics')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'analytics'\"\n title=\"Press 4\">\n <i class=\"fas fa-chart-bar\"></i> Analytics\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'execution'\"\n (click)=\"changeTab('execution')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'execution'\"\n title=\"Press 5\">\n <i class=\"fas fa-microchip\"></i>\n <span>Execution</span>\n </button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tab-content\">\n <!-- Overview Tab -->\n @if (activeTab === 'overview') {\n <div class=\"overview-tab\">\n <!-- Result Hero -->\n <div class=\"result-hero\"\n [class.passed]=\"record.Status === 'Completed' && getPassRate() >= 90\"\n [class.failed]=\"record.Status === 'Failed' || getPassRate() < 50\"\n [class.running]=\"record.Status === 'Running'\"\n [class.pending]=\"record.Status === 'Pending'\">\n <div class=\"result-hero-icon\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"result-hero-text\">\n <h2>SUITE {{ record.Status.toUpperCase() || 'UNKNOWN' }}</h2>\n <div class=\"result-hero-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ getPassRate().toFixed(1) }}%</span>\n <span class=\"stat-label\">Pass Rate</span>\n </div>\n <div class=\"stat-divider\"></div>\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ record.PassedTests || 0 }} / {{ record.TotalTests || 0 }}</span>\n <span class=\"stat-label\">Tests Passed</span>\n </div>\n </div>\n </div>\n </div>\n <!-- Evaluation Metrics Summary -->\n @if (evaluationMetrics && feedbacksLoaded) {\n <div class=\"evaluation-summary\">\n <div class=\"eval-summary-grid\">\n <!-- Human Feedback Card -->\n @if (evalPreferences.showHuman) {\n <div class=\"eval-summary-card\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Human Feedback</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Reviewed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanReviewedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n @if (evaluationMetrics.humanReviewedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Avg Rating</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanAvgRating.toFixed(1) }}/10</span>\n </div>\n }\n @if (evaluationMetrics.humanReviewedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Correct</span>\n <span class=\"eval-stat-value correct\">{{ evaluationMetrics.humanCorrectCount }}</span>\n @if (evaluationMetrics.humanIncorrectCount > 0) {\n <span class=\"eval-stat-value incorrect\">{{ evaluationMetrics.humanIncorrectCount }} incorrect</span>\n }\n </div>\n }\n </div>\n @if (evaluationMetrics.humanPendingCount > 0) {\n <div class=\"eval-card-footer\">\n <span class=\"pending-badge\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ evaluationMetrics.humanPendingCount }} need review\n </span>\n </div>\n }\n </div>\n }\n <!-- Auto Score Card -->\n @if (evalPreferences.showAuto) {\n <div class=\"eval-summary-card\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Auto Evaluation</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Evaluated</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoEvaluatedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n @if (evaluationMetrics.autoEvaluatedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Avg Score</span>\n <span class=\"eval-stat-value\">{{ (evaluationMetrics.autoAvgScore * 100).toFixed(0) }}%</span>\n </div>\n }\n @if (evaluationMetrics.autoEvaluatedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Pass Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoPassRate.toFixed(0) }}%</span>\n </div>\n }\n </div>\n </div>\n }\n <!-- Execution Card -->\n @if (evalPreferences.showExecution) {\n <div class=\"eval-summary-card\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-circle-check\"></i>\n <span>Execution</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Completed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execCompletedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Success Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execSuccessRate.toFixed(0) }}%</span>\n </div>\n @if (evaluationMetrics.execErrorCount > 0 || evaluationMetrics.execTimeoutCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Issues</span>\n @if (evaluationMetrics.execErrorCount > 0) {\n <span class=\"eval-stat-value error\">{{ evaluationMetrics.execErrorCount }} errors</span>\n }\n @if (evaluationMetrics.execTimeoutCount > 0) {\n <span class=\"eval-stat-value timeout\">{{ evaluationMetrics.execTimeoutCount }} timeouts</span>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n <!-- Needs Review Section -->\n @if (evalPreferences.showHuman && needsReviewItems.length > 0 && feedbacksLoaded) {\n <div class=\"needs-review-section\">\n <div class=\"needs-review-header\">\n <h3><i class=\"fa-solid fa-user-clock\"></i> Needs Review</h3>\n <span class=\"review-count\">{{ needsReviewItems.length }} items</span>\n </div>\n <div class=\"needs-review-list\">\n @for (item of needsReviewItems.slice(0, 5); track item) {\n <div class=\"review-item\"\n [class.high-priority]=\"item.priority === 'high'\"\n [class.medium-priority]=\"item.priority === 'medium'\"\n (click)=\"toggleRunExpanded(item.run.id)\">\n <div class=\"review-item-icon\">\n @if (item.priority === 'high') {\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n }\n @if (item.priority === 'medium') {\n <i class=\"fa-solid fa-circle-dot\"></i>\n }\n @if (item.priority === 'low') {\n <i class=\"fa-solid fa-clock\"></i>\n }\n </div>\n <div class=\"review-item-content\">\n <span class=\"review-item-name\">{{ item.run.testName }}</span>\n <span class=\"review-item-reason\">{{ item.reason }}</span>\n </div>\n <div class=\"review-item-action\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n @if (needsReviewItems.length > 5) {\n <div class=\"review-more\">\n <button kendoButton fillMode=\"flat\" (click)=\"changeTab('runs')\">\n View all {{ needsReviewItems.length }} items\n </button>\n </div>\n }\n </div>\n </div>\n }\n <!-- Progress Ring (when running) -->\n @if (record.Status === 'Running' || record.Status === 'Pending') {\n <div class=\"progress-section\">\n <div class=\"progress-info\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>Suite execution in progress...</span>\n </div>\n <div class=\"auto-refresh-notice\">\n <i class=\"fas fa-sync\"></i>\n Auto-refreshing every 5 seconds\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Test Runs Tab -->\n @if (activeTab === 'runs') {\n <div class=\"runs-tab\">\n <!-- Toolbar -->\n @if (testRunsLoaded && testRuns.length > 0) {\n <div class=\"runs-toolbar\">\n <div class=\"run-filters\">\n <button class=\"filter-btn\"\n [class.active]=\"runStatusFilter === null\"\n (click)=\"setRunStatusFilter(null)\">\n All ({{ testRuns.length }})\n </button>\n @if (getRunCountByStatus('Passed') > 0) {\n <button class=\"filter-btn passed\"\n [class.active]=\"runStatusFilter === 'Passed'\"\n (click)=\"setRunStatusFilter('Passed')\"\n >\n <i class=\"fas fa-check\"></i> Passed ({{ getRunCountByStatus('Passed') }})\n </button>\n }\n @if (getRunCountByStatus('Failed') > 0) {\n <button class=\"filter-btn failed\"\n [class.active]=\"runStatusFilter === 'Failed'\"\n (click)=\"setRunStatusFilter('Failed')\"\n >\n <i class=\"fas fa-times\"></i> Failed ({{ getRunCountByStatus('Failed') }})\n </button>\n }\n @if (getRunCountByStatus('Error') > 0) {\n <button class=\"filter-btn error\"\n [class.active]=\"runStatusFilter === 'Error'\"\n (click)=\"setRunStatusFilter('Error')\"\n >\n <i class=\"fas fa-exclamation\"></i> Error ({{ getRunCountByStatus('Error') }})\n </button>\n }\n </div>\n <div class=\"runs-actions\">\n <button kendoButton (click)=\"exportToCSV()\">\n <i class=\"fas fa-download\"></i> Export CSV\n </button>\n </div>\n </div>\n }\n <!-- Loading State -->\n @if (loadingTestRuns) {\n <div class=\"loading-state\">\n <div class=\"skeleton-list\">\n @for (i of [1,2,3,4,5]; track i) {\n <div class=\"skeleton-card\">\n <div class=\"skeleton-sequence\"></div>\n <div class=\"skeleton-icon\"></div>\n <div class=\"skeleton-content\">\n <div class=\"skeleton-line wide\"></div>\n <div class=\"skeleton-line narrow\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <!-- Test Runs List -->\n @if (!loadingTestRuns && testRuns.length > 0) {\n <div class=\"test-runs-list\">\n @for (run of getFilteredTestRuns(); track run) {\n <div class=\"test-run-card\">\n <div class=\"test-run-item\" (click)=\"toggleRunExpanded(run.ID)\">\n <div class=\"run-sequence\">{{ run.Sequence || '-' }}</div>\n <div class=\"run-icon\" [style.background-color]=\"getRunStatusColor(run.Status)\">\n <i class=\"fas\" [ngClass]=\"getRunStatusIcon(run.Status)\"></i>\n </div>\n <div class=\"run-content\">\n <div class=\"run-header-row\">\n <div class=\"run-name\">{{ run.Test }}</div>\n <!-- Evaluation Badge -->\n <app-evaluation-badge\n [executionStatus]=\"run.Status\"\n [originalStatus]=\"run.Status\"\n [autoScore]=\"run.Score\"\n [humanRating]=\"getFeedbackRating(run.ID) || null\"\n [humanIsCorrect]=\"getHumanIsCorrect(run.ID)\"\n [hasHumanFeedback]=\"hasFeedback(run.ID)\"\n [preferences]=\"evalPreferences\"\n [mode]=\"'compact'\">\n </app-evaluation-badge>\n </div>\n <div class=\"run-meta\">\n @if (run.DurationSeconds) {\n <span class=\"run-duration\">\n <i class=\"fas fa-clock\"></i> {{ run.DurationSeconds.toFixed(1) }}s\n </span>\n }\n @if (run.CostUSD) {\n <span class=\"run-cost\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.CostUSD.toFixed(6) }}\n </span>\n }\n @if (run.TargetLogEntityID && run.TargetLogID) {\n <mj-entity-link-pill\n [entityName]=\"run.TargetLogEntity\"\n [recordId]=\"run.TargetLogID\">\n </mj-entity-link-pill>\n }\n </div>\n @if (getRunTags(run).length > 0) {\n <div class=\"run-tags\">\n @for (tag of getRunTags(run); track tag) {\n <span class=\"tag-chip\">{{ tag }}</span>\n }\n </div>\n }\n </div>\n <div class=\"run-expand\">\n <i class=\"fas\" [class.fa-chevron-down]=\"expandedRunId !== run.ID\" [class.fa-chevron-up]=\"expandedRunId === run.ID\"></i>\n </div>\n </div>\n <!-- Expanded Inline Feedback -->\n @if (expandedRunId === run.ID) {\n <div class=\"inline-feedback\">\n <div class=\"feedback-divider\"></div>\n <div class=\"feedback-section\">\n <div class=\"feedback-label\">Quick Feedback</div>\n <div class=\"inline-rating\">\n <div class=\"rating-numbers\">\n @for (num of [1,2,3,4,5,6,7,8,9,10]; track num) {\n <button\n type=\"button\"\n class=\"rating-btn\"\n [class.selected]=\"num === inlineRating\"\n [class.hover]=\"num === inlineHoverRating\"\n [class.low]=\"num <= 3\"\n [class.mid]=\"num >= 4 && num <= 6\"\n [class.high]=\"num >= 7\"\n (click)=\"setInlineRating(num); $event.stopPropagation()\"\n (mouseenter)=\"inlineHoverRating = num\"\n (mouseleave)=\"inlineHoverRating = 0\">\n {{ num }}\n </button>\n }\n </div>\n @if (inlineRating > 0) {\n <div class=\"rating-info\">\n <span class=\"rating-value\">{{ inlineRating }}/10</span>\n <span class=\"rating-label-text\">{{ getInlineRatingLabel() }}</span>\n </div>\n }\n </div>\n <div class=\"correctness-row\">\n <span class=\"correctness-label\">Was it correct?</span>\n <div class=\"correctness-options\">\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"true\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Yes</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"false\" [(ngModel)]=\"inlineIsCorrect\">\n <span>No</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"null\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Not Sure</span>\n </label>\n </div>\n </div>\n <div class=\"comments-row\" (click)=\"$event.stopPropagation()\">\n <textarea\n class=\"feedback-textarea\"\n [(ngModel)]=\"inlineComments\"\n placeholder=\"Add comments or corrections...\"\n rows=\"3\"></textarea>\n </div>\n <div class=\"feedback-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton (click)=\"openTestRun(run.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Full Details\n </button>\n <button kendoButton\n themeColor=\"primary\"\n (click)=\"saveInlineFeedback()\"\n [disabled]=\"!canSubmitInlineFeedback() || savingInlineFeedback\">\n <i class=\"fas\" [ngClass]=\"savingInlineFeedback ? 'fa-spinner fa-spin' : 'fa-save'\"></i>\n {{ savingInlineFeedback ? 'Saving...' : (hasFeedback(run.ID) ? 'Update' : 'Save') }}\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Empty State -->\n @if (testRunsLoaded && !loadingTestRuns && testRuns.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-inbox\"></i>\n </div>\n <h4>No Test Runs Found</h4>\n <p>No test runs have been recorded for this suite execution.</p>\n </div>\n }\n <!-- Filtered Empty -->\n @if (testRunsLoaded && !loadingTestRuns && testRuns.length > 0 && getFilteredTestRuns().length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-filter\"></i>\n </div>\n <h4>No Matching Runs</h4>\n <p>No test runs match the current filter.</p>\n <button kendoButton (click)=\"setRunStatusFilter(null)\">Clear Filter</button>\n </div>\n }\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"details-tab\">\n <div class=\"details-card\">\n <h3><i class=\"fas fa-info-circle\"></i> Run Information</h3>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run ID</div>\n <div class=\"detail-value monospace\">{{ record.ID }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Test Suite</div>\n <div class=\"detail-value\">\n @if (testSuite) {\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\">{{ testSuite.Name }}</a>\n }\n @if (!testSuite) {\n <span>Loading...</span>\n }\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Status</div>\n <div class=\"detail-value\">\n <span class=\"status-inline\" [ngClass]=\"getStatusClass()\">{{ record.Status }}</span>\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run By</div>\n <div class=\"detail-value\">{{ record.RunByUser || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Started At</div>\n <div class=\"detail-value\">{{ record.StartedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Completed At</div>\n <div class=\"detail-value\">{{ record.CompletedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Environment</div>\n <div class=\"detail-value\">{{ record.Environment || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Trigger Type</div>\n <div class=\"detail-value\">{{ record.TriggerType || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Git Commit</div>\n <div class=\"detail-value monospace\">{{ record.GitCommit || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Agent Version</div>\n <div class=\"detail-value\">{{ record.AgentVersion || 'N/A' }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n\n <!-- Analytics Tab -->\n @if (activeTab === 'analytics') {\n <div class=\"analytics-tab\">\n <!-- Loading State -->\n @if (loadingTestRuns) {\n <div class=\"analytics-loading\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n <span>Loading test results...</span>\n </div>\n }\n <!-- Summary Statistics - Moved to top for better overview -->\n @if (!loadingTestRuns && testRuns.length > 0) {\n <div class=\"analytics-section\">\n <h3><i class=\"fas fa-chart-pie\"></i> Summary Statistics</h3>\n <div class=\"stats-grid\">\n <div class=\"stat-card\">\n <div class=\"stat-icon passed\"><i class=\"fas fa-check-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getPassedCount() }}</div>\n <div class=\"stat-label\">Passed</div>\n <div class=\"stat-percent\">{{ getPassedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon failed\"><i class=\"fas fa-times-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getFailedCount() }}</div>\n <div class=\"stat-label\">Failed</div>\n <div class=\"stat-percent\">{{ getFailedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon score\"><i class=\"fas fa-star\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ (getAverageScore() * 100).toFixed(1) }}%</div>\n <div class=\"stat-label\">Avg Score</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon duration\"><i class=\"fas fa-clock\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getAverageDuration().toFixed(1) }}s</div>\n <div class=\"stat-label\">Avg Duration</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon cost\"><i class=\"fas fa-dollar-sign\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">${{ getTotalCost().toFixed(4) }}</div>\n <div class=\"stat-label\">Total Cost</div>\n </div>\n </div>\n </div>\n </div>\n }\n <!-- Test Results Table -->\n @if (!loadingTestRuns && testRuns.length > 0) {\n <div class=\"analytics-section\">\n <div class=\"analytics-header\">\n <h3><i class=\"fas fa-table\"></i> Test Results</h3>\n <div class=\"analytics-legend\">\n <span class=\"legend-item passed\"><i class=\"fas fa-check-circle\"></i> Passed</span>\n <span class=\"legend-item failed\"><i class=\"fas fa-times-circle\"></i> Failed</span>\n <span class=\"legend-item error\"><i class=\"fas fa-exclamation-circle\"></i> Error</span>\n <span class=\"legend-item skipped\"><i class=\"fas fa-forward\"></i> Skipped</span>\n </div>\n </div>\n <!-- Results Table -->\n <div class=\"results-table-wrapper\">\n <table class=\"results-table\">\n <thead>\n <tr>\n <th class=\"seq-col\">#</th>\n <th class=\"name-col\">Test Name</th>\n @if (evalPreferences.showExecution) {\n <th class=\"status-col\">Status</th>\n }\n @if (evalPreferences.showAuto) {\n <th class=\"score-col\">Auto Score</th>\n }\n @if (evalPreferences.showHuman) {\n <th class=\"feedback-col\">Human Score</th>\n }\n <th class=\"duration-col\">Duration</th>\n <th class=\"cost-col\">Cost</th>\n </tr>\n </thead>\n <tbody>\n @for (run of testRuns; track run; let i = $index) {\n <tr\n class=\"result-row\"\n [class.row-passed]=\"run.Status === 'Passed'\"\n [class.row-failed]=\"run.Status === 'Failed'\"\n [class.row-error]=\"run.Status === 'Error'\"\n [class.row-skipped]=\"run.Status === 'Skipped'\"\n (click)=\"openTestRun(run.ID)\">\n <td class=\"seq-col\">{{ i + 1 }}</td>\n <td class=\"name-col\">\n <div class=\"test-name-wrapper\">\n <span class=\"test-name\">{{ run.Test || 'Unknown Test' }}</span>\n @if (getRunTags(run).length > 0) {\n <div class=\"test-tags\">\n @for (tag of getRunTags(run).slice(0, 2); track tag) {\n <span class=\"tag-mini\">{{ tag }}</span>\n }\n </div>\n }\n </div>\n </td>\n @if (evalPreferences.showExecution) {\n <td class=\"status-col\">\n <span class=\"status-badge\" [ngClass]=\"'status-' + run.Status.toLowerCase()\">\n <i class=\"fas\"\n [class.fa-check-circle]=\"run.Status === 'Passed'\"\n [class.fa-times-circle]=\"run.Status === 'Failed'\"\n [class.fa-exclamation-circle]=\"run.Status === 'Error'\"\n [class.fa-forward]=\"run.Status === 'Skipped'\"\n [class.fa-clock]=\"run.Status === 'Pending'\"\n [class.fa-spinner]=\"run.Status === 'Running'\"\n [class.fa-spin]=\"run.Status === 'Running'\"></i>\n {{ run.Status }}\n </span>\n </td>\n }\n @if (evalPreferences.showAuto) {\n <td class=\"score-col\">\n @if (run.Score != null) {\n <div class=\"score-display\">\n <div class=\"score-bar-mini\">\n <div class=\"score-fill\"\n [style.width.%]=\"run.Score * 100\"\n [class.high]=\"run.Score >= 0.8\"\n [class.medium]=\"run.Score >= 0.5 && run.Score < 0.8\"\n [class.low]=\"run.Score < 0.5\"></div>\n </div>\n <span class=\"score-text\">{{ (run.Score * 100).toFixed(0) }}%</span>\n </div>\n }\n @if (run.Score == null) {\n <span class=\"na-value\">\u2014</span>\n }\n </td>\n }\n @if (evalPreferences.showHuman) {\n <td class=\"feedback-col\">\n @if (hasFeedback(run.ID)) {\n <div class=\"feedback-display\">\n <span class=\"feedback-rating\" [class.low]=\"getFeedbackRating(run.ID) <= 3\" [class.mid]=\"getFeedbackRating(run.ID) >= 4 && getFeedbackRating(run.ID) <= 6\" [class.high]=\"getFeedbackRating(run.ID) >= 7\">\n {{ getFeedbackRating(run.ID) }}/10\n </span>\n @if (getHumanIsCorrect(run.ID) !== null) {\n <span class=\"feedback-correctness\">\n <i class=\"fas\" [class.fa-check]=\"getHumanIsCorrect(run.ID) === true\" [class.fa-times]=\"getHumanIsCorrect(run.ID) === false\" [class.correct]=\"getHumanIsCorrect(run.ID) === true\" [class.incorrect]=\"getHumanIsCorrect(run.ID) === false\"></i>\n </span>\n }\n </div>\n }\n @if (!hasFeedback(run.ID)) {\n <span class=\"na-value needs-review\">\n <i class=\"fas fa-user-clock\"></i>\n </span>\n }\n </td>\n }\n <td class=\"duration-col\">\n @if (run.DurationSeconds) {\n <span>{{ run.DurationSeconds.toFixed(1) }}s</span>\n }\n @if (!run.DurationSeconds) {\n <span class=\"na-value\">\u2014</span>\n }\n </td>\n <td class=\"cost-col\">\n @if (run.CostUSD) {\n <span>${{ run.CostUSD.toFixed(4) }}</span>\n }\n @if (!run.CostUSD) {\n <span class=\"na-value\">\u2014</span>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n <!-- Empty State -->\n @if (!loadingTestRuns && testRunsLoaded && testRuns.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-chart-bar\"></i>\n </div>\n <h4>No Test Results Yet</h4>\n <p>Test runs will appear here once the suite execution completes.</p>\n </div>\n }\n </div>\n }\n\n <!-- Execution Tab -->\n @if (activeTab === 'execution') {\n <div class=\"execution-tab\">\n <mj-execution-context\n [machineName]=\"record.MachineName\"\n [machineId]=\"record.MachineID\"\n [runByUserName]=\"record.RunByUserName\"\n [runByUserEmail]=\"record.RunByUserEmail\"\n [runContextDetailsJson]=\"record.RunContextDetails\">\n </mj-execution-context>\n </div>\n }\n </div>\n\n <!-- Keyboard Shortcuts Toggle Button -->\n <button class=\"shortcuts-toggle\" (click)=\"toggleShortcuts()\" [title]=\"showShortcuts ? 'Hide keyboard shortcuts' : 'Show keyboard shortcuts'\">\n <i class=\"fas fa-keyboard\"></i>\n </button>\n\n <!-- Keyboard Shortcuts Hint (Desktop Only) -->\n @if (showShortcuts) {\n <div class=\"keyboard-shortcuts\">\n <div class=\"shortcuts-header\">\n <i class=\"fas fa-keyboard\"></i>\n Shortcuts\n <button class=\"shortcuts-close\" (click)=\"toggleShortcuts()\" title=\"Hide shortcuts\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n <div class=\"shortcut-list\">\n <div class=\"shortcut-item\">\n <span>Refresh</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Re-run Suite</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>Shift</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Switch Tabs</span>\n <span class=\"shortcut-keys\"><kbd>1</kbd>-<kbd>5</kbd></span>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: ["/* ===================================\n Test Suite Run Form - Premium UX\n World-class responsive design\n =================================== */\n\n/* CSS Custom Properties */\n:host {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* Base Container */\n.test-suite-run-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n/* ===================================\n Header Section\n =================================== */\n.suite-run-header {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n/* Breadcrumb */\n.breadcrumb {\n margin-bottom: 16px;\n}\n\n.breadcrumb ol {\n display: flex;\n align-items: center;\n gap: 4px;\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: 13px;\n}\n\n.breadcrumb li {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.breadcrumb a {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 6px;\n transition: background 0.15s;\n}\n\n.breadcrumb a:hover {\n background: rgba(59, 130, 246, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb .separator {\n font-size: 10px;\n color: var(--suite-run-text-secondary);\n margin: 0 4px;\n}\n\n.breadcrumb .current {\n color: var(--suite-run-text-secondary);\n font-weight: 500;\n}\n\n.breadcrumb-text {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Header Content */\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info h1 {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n/* ===================================\n Metrics Bar\n =================================== */\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n/* ===================================\n Results Summary\n =================================== */\n.results-summary {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon {\n font-size: 24px;\n}\n\n.result-content {\n display: flex;\n flex-direction: column;\n}\n\n.result-count {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed .result-icon,\n.result-item.passed .result-count {\n color: var(--suite-run-success);\n}\n\n.result-item.failed .result-icon,\n.result-item.failed .result-count {\n color: var(--suite-run-danger);\n}\n\n.result-item.error .result-icon,\n.result-item.error .result-count {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped .result-icon,\n.result-item.skipped .result-count {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total .result-icon,\n.result-item.total .result-count {\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Tabs\n =================================== */\n.tabs-container {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs::-webkit-scrollbar {\n display: none;\n}\n\n.tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab i {\n font-size: 15px;\n}\n\n.tab-badge {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active .tab-badge {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n/* ===================================\n Tab Content\n =================================== */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n/* ===================================\n Overview Tab\n =================================== */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed .result-hero-icon {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed .result-hero-icon {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running .result-hero-icon {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending .result-hero-icon {\n color: var(--suite-run-info);\n}\n\n.result-hero-text h2 {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n/* Progress Section */\n.progress-section {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info i {\n font-size: 20px;\n}\n\n.auto-refresh-notice {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* ===================================\n Test Runs Tab\n =================================== */\n.runs-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n/* Loading Skeleton */\n.loading-state {\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide {\n width: 70%;\n}\n\n.skeleton-line.narrow {\n width: 40%;\n}\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n/* Test Runs List */\n.test-runs-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item:active {\n transform: translateX(2px);\n}\n\n.run-sequence {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status {\n font-weight: 700;\n}\n\n.run-score,\n.run-duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score i,\n.run-duration i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item > i {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover > i {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state h4 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n/* ===================================\n Details Tab\n =================================== */\n.details-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card h3 i {\n color: var(--suite-run-primary);\n}\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value a {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value a:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n/* ===================================\n Keyboard Shortcuts\n =================================== */\n/* Toggle button - visible when shortcuts are hidden */\n.shortcuts-toggle {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts:hover {\n opacity: 1;\n}\n\n.shortcuts-header {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header i {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item span:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys {\n display: flex;\n gap: 4px;\n}\n\nkbd {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n/* ===================================\n Responsive Design - Tablet\n =================================== */\n@media (max-width: 1024px) {\n .suite-run-header {\n padding: 16px 20px;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider {\n display: none;\n }\n\n .details-grid {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Mobile\n =================================== */\n@media (max-width: 768px) {\n .suite-run-header {\n padding: 16px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left {\n width: 100%;\n }\n\n .suite-run-icon {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info h1 {\n font-size: 20px;\n }\n\n .header-actions {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions button {\n flex: 1;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon {\n width: 36px;\n height: 36px;\n }\n\n .metric-value {\n font-size: 16px;\n }\n\n .results-summary {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon {\n font-size: 20px;\n }\n\n .result-count {\n font-size: 18px;\n }\n\n .tabs {\n padding: 0 16px;\n }\n\n .tab {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content {\n padding: 16px;\n }\n\n .result-hero {\n padding: 32px 20px;\n }\n\n .result-hero-icon {\n font-size: 56px;\n }\n\n .result-hero-text h2 {\n font-size: 24px;\n }\n\n .stat-value {\n font-size: 20px;\n }\n\n .test-run-item {\n padding: 14px;\n }\n\n .run-sequence {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name {\n font-size: 13px;\n }\n\n .run-meta {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state {\n padding: 40px 16px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon i {\n font-size: 28px;\n }\n\n .details-card {\n padding: 16px;\n }\n\n .details-grid {\n gap: 16px;\n }\n\n .keyboard-shortcuts, .shortcuts-toggle {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Small Mobile\n =================================== */\n@media (max-width: 480px) {\n .suite-run-header {\n padding: 12px;\n }\n\n .breadcrumb {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info h1 {\n font-size: 18px;\n }\n\n .suite-run-meta {\n gap: 8px;\n }\n\n .status-badge {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .metric-label {\n font-size: 9px;\n }\n\n .result-item {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon {\n font-size: 18px;\n }\n\n .result-count {\n font-size: 16px;\n }\n\n .result-label {\n font-size: 9px;\n }\n\n .tabs {\n padding: 0 12px;\n }\n\n .tab {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab i {\n font-size: 14px;\n }\n\n .tab-content {\n padding: 12px;\n }\n\n .result-hero {\n padding: 24px 16px;\n }\n\n .result-hero-icon {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text h2 {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value {\n font-size: 18px;\n }\n\n .stat-label {\n font-size: 10px;\n }\n\n .progress-section {\n padding: 16px;\n }\n\n .progress-info {\n font-size: 14px;\n }\n\n .test-run-item {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state {\n padding: 32px 12px;\n }\n\n .empty-state h4 {\n font-size: 16px;\n }\n\n .empty-state p {\n font-size: 13px;\n }\n\n .details-card {\n padding: 14px;\n }\n\n .details-card h3 {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label {\n font-size: 10px;\n }\n\n .detail-value {\n font-size: 13px;\n }\n}\n\n/* ===================================\n Touch Device Optimizations\n =================================== */\n@media (hover: none) and (pointer: coarse) {\n .test-run-item {\n min-height: 64px;\n }\n\n .test-run-item:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts {\n display: none;\n }\n}\n\n/* ===================================\n Print Styles\n =================================== */\n@media print {\n .suite-run-header {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container,\n .header-actions,\n .keyboard-shortcuts {\n display: none;\n }\n\n .tab-content {\n padding: 20px 0;\n }\n\n .result-hero,\n .test-run-item,\n .details-card {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n/* ===================================\n Dark Mode Support (Future)\n =================================== */\n@media (prefers-color-scheme: dark) {\n /* Ready for dark mode implementation */\n}\n\n/* ===================================\n Tags Bar - Sleek Inline Display\n =================================== */\n.tags-bar {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label i {\n opacity: 0.6;\n}\n\n.tags-bar-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit i {\n font-size: 10px;\n}\n\n/* ===================================\n Tags Editor Panel - Expanded Edit Mode\n =================================== */\n.tags-editor-panel {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* ===================================\n Runs Toolbar\n =================================== */\n.runs-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed:hover,\n.filter-btn.passed.active {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed:hover,\n.filter-btn.failed.active {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error:hover,\n.filter-btn.error.active {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions {\n display: flex;\n gap: 8px;\n}\n\n/* ===================================\n Test Run Card (Expandable)\n =================================== */\n.test-run-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator i {\n font-size: 10px;\n}\n\n.run-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover .run-expand {\n color: var(--suite-run-primary);\n}\n\n.run-cost {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* ===================================\n Inline Feedback\n =================================== */\n.inline-feedback {\n padding: 0 16px 16px;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn:hover,\n.rating-btn.hover {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low:hover,\n.rating-btn.low.hover {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid:hover,\n.rating-btn.mid.hover {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high:hover,\n.rating-btn.high.hover {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt input[type=\"radio\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row {\n width: 100%;\n}\n\n.feedback-textarea {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n/* ===================================\n Mobile Responsive Updates\n =================================== */\n@media (max-width: 768px) {\n .tags-bar {\n padding: 8px 12px;\n }\n\n .tags-bar-content {\n gap: 8px;\n }\n\n .tag-inline {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel {\n margin-top: 12px;\n }\n\n .tags-editor-body {\n padding: 12px;\n }\n\n .tags-editor-footer {\n padding: 10px 12px;\n }\n\n .runs-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters {\n justify-content: center;\n }\n\n .runs-actions {\n justify-content: center;\n }\n\n .rating-numbers {\n justify-content: center;\n }\n\n .rating-btn {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions {\n flex-direction: column;\n }\n\n .feedback-actions button {\n width: 100%;\n }\n}\n\n/* ===================================\n Animations\n =================================== */\n@keyframes pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running .result-hero-icon {\n animation: pulse 2s ease-in-out infinite;\n}\n\n/* Tab content fade in */\n.overview-tab,\n.runs-tab,\n.details-tab,\n.analytics-tab {\n animation: fadeIn 0.3s ease;\n}\n\n/* ===================================\n Analytics Tab\n =================================== */\n.analytics-tab {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section h3 i {\n color: var(--suite-run-primary);\n}\n\n.analytics-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header h3 {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped {\n color: var(--suite-run-neutral);\n}\n\n/* Performance Matrix */\n.performance-matrix {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row:last-child {\n border-bottom: none;\n}\n\n.matrix-row:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell {\n gap: 12px;\n}\n\n.test-sequence {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running {\n color: var(--suite-run-primary);\n}\n\n.score-bar {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n/* Summary Statistics Grid */\n.stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card .stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card .stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* Responsive Analytics */\n@media (max-width: 768px) {\n .analytics-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row {\n display: none;\n }\n\n .matrix-cell {\n padding: 4px 0;\n }\n\n .test-name-cell::before,\n .status-cell::before,\n .score-cell::before,\n .duration-cell::before,\n .cost-cell::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell::before { content: 'Status:'; }\n .score-cell::before { content: 'Score:'; }\n .duration-cell::before { content: 'Duration:'; }\n .cost-cell::before { content: 'Cost:'; }\n\n .stats-grid {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card {\n padding: 16px;\n }\n\n .stat-icon {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card .stat-value {\n font-size: 20px;\n }\n}\n\n/* Focus States for Accessibility */\n.tab:focus-visible,\n.test-run-item:focus-visible,\nbutton:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n/* ===================================\n Analytics Loading State\n =================================== */\n.analytics-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading i {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Results Table\n =================================== */\n.results-table-wrapper {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table thead {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table th {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n/* Column widths - Fixed columns fit content, name column takes remainder (max 50%) */\n.seq-col {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col {\n /* Take remaining space, but cap at 50% of table width */\n width: auto;\n max-width: 50%;\n}\n\n.status-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n}\n\n.score-col {\n width: 1%; /* Shrink to fit content */\n min-width: 120px; /* Score bar needs some minimum width */\n white-space: nowrap;\n}\n\n.duration-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n/* Result Row */\n.result-row {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n/* Test Name Wrapper */\n.test-name-wrapper {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper .test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n/* Score Display */\n.score-display {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini .score-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini .score-fill.high {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini .score-fill.medium {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini .score-fill.low {\n background: var(--suite-run-danger);\n}\n\n.score-display .score-text {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n/* Status Badge in Table */\n.results-table .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table .status-badge.status-passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table .status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table .status-badge.status-error {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table .status-badge.status-skipped {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table .status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table .status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n/* Responsive Results Table */\n@media (max-width: 768px) {\n .results-table-wrapper {\n overflow-x: auto;\n }\n\n .results-table {\n min-width: 600px;\n }\n\n .results-table th,\n .results-table td {\n padding: 10px 12px;\n }\n\n .name-col {\n min-width: 150px;\n }\n}\n\n/* ===================================\n High Contrast Mode\n =================================== */\n@media (prefers-contrast: high) {\n .status-badge,\n .status-inline {\n border: 2px solid currentColor;\n }\n\n .test-run-item {\n border-width: 2px;\n }\n\n .tab.active {\n border-bottom-width: 4px;\n }\n}\n\n/* ===================================\n Evaluation Summary\n =================================== */\n.evaluation-summary {\n margin-top: 20px;\n}\n\n.eval-summary-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header i {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge i {\n font-size: 11px;\n}\n\n/* ===================================\n Needs Review Section\n =================================== */\n.needs-review-section {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header h3 i {\n font-size: 16px;\n}\n\n.review-count {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list {\n padding: 8px;\n}\n\n.review-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority .review-item-icon {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority .review-item-icon {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item:not(.high-priority):not(.medium-priority) .review-item-icon {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item:hover .review-item-action {\n color: var(--suite-run-primary);\n}\n\n.review-more {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* Mobile Responsive for Evaluation */\n@media (max-width: 768px) {\n .eval-summary-grid {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body {\n padding: 12px 14px;\n }\n\n .needs-review-header {\n padding: 12px 16px;\n }\n\n .needs-review-header h3 {\n font-size: 13px;\n }\n\n .review-item {\n padding: 10px 12px;\n }\n\n .review-item-icon {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n/* ===================================\n Feedback Column in Analytics Table\n =================================== */\n.feedback-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i {\n font-size: 12px;\n}\n\n.feedback-correctness i.correct {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i.incorrect {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review i {\n font-size: 14px;\n}\n"] }]
2328
+ }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.TestingDialogService }, { type: i3.EvaluationPreferencesService }, { type: i0.ViewContainerRef }, { type: i4.ApplicationManager }], { handleKeyboardShortcut: [{
2277
2329
  type: HostListener,
2278
2330
  args: ['document:keydown', ['$event']]
2279
2331
  }] }); })();
2280
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestSuiteRunFormComponentExtended, { className: "TestSuiteRunFormComponentExtended", filePath: "src/lib/custom/Tests/test-suite-run-form.component.ts", lineNumber: 34 }); })();
2281
- export function LoadTestSuiteRunFormComponentExtended() {
2282
- // Prevents tree-shaking
2283
- }
2284
- LoadTestSuiteRunFormComponentExtended();
2332
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestSuiteRunFormComponentExtended, { className: "TestSuiteRunFormComponentExtended", filePath: "src/lib/custom/tests/test-suite-run-form.component.ts", lineNumber: 36 }); })();
2285
2333
  //# sourceMappingURL=test-suite-run-form.component.js.map