@memberjunction/ng-core-entity-forms 3.4.0 → 4.1.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 (1334) hide show
  1. package/README.md +85 -2
  2. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts +13 -25
  3. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts.map +1 -1
  4. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +33 -379
  5. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js.map +1 -1
  6. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  7. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +15 -14
  8. package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
  9. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +1 -0
  10. package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
  11. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  12. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +14 -13
  13. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
  14. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +45 -15
  15. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  16. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1443 -1267
  17. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  18. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  19. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +15 -14
  20. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
  21. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  22. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +12 -12
  23. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  24. package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
  25. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +9 -8
  26. package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
  27. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  28. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +14 -14
  29. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  30. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  31. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +12 -11
  32. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
  33. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  34. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +18 -16
  35. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  36. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +3 -8
  37. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
  38. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +107 -77
  39. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  40. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
  41. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +9 -9
  42. package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
  43. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +1 -8
  44. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
  45. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +599 -587
  46. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  47. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +11 -10
  48. package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
  49. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +1 -6
  50. package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
  51. package/dist/lib/custom/Actions/action-execution-log-form.component.js +20 -21
  52. package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
  53. package/dist/lib/custom/Actions/action-form.component.d.ts +2 -6
  54. package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
  55. package/dist/lib/custom/Actions/action-form.component.js +64 -59
  56. package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
  57. package/dist/lib/custom/Entities/entity-form.component.d.ts +73 -1
  58. package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
  59. package/dist/lib/custom/Entities/entity-form.component.js +1592 -914
  60. package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
  61. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +15 -1
  62. package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
  63. package/dist/lib/custom/EntityActions/entityaction.form.component.js +51 -30
  64. package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
  65. package/dist/lib/custom/Lists/list-form.component.d.ts +1 -1
  66. package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
  67. package/dist/lib/custom/Lists/list-form.component.js +437 -448
  68. package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
  69. package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +1 -1
  70. package/dist/lib/custom/Queries/query-category-dialog.component.js +28 -29
  71. package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
  72. package/dist/lib/custom/Queries/query-form.component.d.ts +1 -3
  73. package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
  74. package/dist/lib/custom/Queries/query-form.component.js +189 -188
  75. package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
  76. package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
  77. package/dist/lib/custom/Queries/query-run-dialog.component.js +90 -89
  78. package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
  79. package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
  80. package/dist/lib/custom/Templates/template-param-dialog.component.js +76 -75
  81. package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
  82. package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
  83. package/dist/lib/custom/Templates/template-params-grid.component.js +98 -93
  84. package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
  85. package/dist/lib/custom/Templates/templates-form.component.d.ts +0 -1
  86. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  87. package/dist/lib/custom/Templates/templates-form.component.js +28 -39
  88. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  89. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +0 -1
  90. package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
  91. package/dist/lib/custom/Tests/entity-link-pill.component.js +16 -18
  92. package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
  93. package/dist/lib/custom/Tests/test-form.component.d.ts +7 -13
  94. package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
  95. package/dist/lib/custom/Tests/test-form.component.js +440 -423
  96. package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
  97. package/dist/lib/custom/Tests/test-rubric-form.component.d.ts +0 -7
  98. package/dist/lib/custom/Tests/test-rubric-form.component.d.ts.map +1 -1
  99. package/dist/lib/custom/Tests/test-rubric-form.component.js +11 -20
  100. package/dist/lib/custom/Tests/test-rubric-form.component.js.map +1 -1
  101. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +0 -7
  102. package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
  103. package/dist/lib/custom/Tests/test-run-feedback-form.component.js +18 -25
  104. package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
  105. package/dist/lib/custom/Tests/test-run-form.component.d.ts +5 -12
  106. package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
  107. package/dist/lib/custom/Tests/test-run-form.component.js +423 -410
  108. package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
  109. package/dist/lib/custom/Tests/test-suite-form.component.d.ts +7 -13
  110. package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
  111. package/dist/lib/custom/Tests/test-suite-form.component.js +665 -642
  112. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  113. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +7 -13
  114. package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
  115. package/dist/lib/custom/Tests/test-suite-run-form.component.js +635 -606
  116. package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
  117. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  118. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +240 -243
  119. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  120. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
  121. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +42 -40
  122. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
  123. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
  124. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +37 -36
  125. package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
  126. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  127. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +68 -78
  128. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  129. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
  130. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +6 -6
  131. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  132. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +5 -10
  133. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  134. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +310 -292
  135. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  136. package/dist/lib/custom/custom-forms.module.d.ts +50 -54
  137. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  138. package/dist/lib/custom/custom-forms.module.js +29 -63
  139. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  140. package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
  141. package/dist/lib/custom/shared/entity-selector-dialog.component.js +85 -82
  142. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  143. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.d.ts +0 -1
  144. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.d.ts.map +1 -1
  145. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js +36 -41
  146. package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js.map +1 -1
  147. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.d.ts +0 -1
  148. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.d.ts.map +1 -1
  149. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +252 -267
  150. package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
  151. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.d.ts +0 -1
  152. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.d.ts.map +1 -1
  153. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js +34 -42
  154. package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js.map +1 -1
  155. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.d.ts +0 -1
  156. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.d.ts.map +1 -1
  157. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js +19 -27
  158. package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js.map +1 -1
  159. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.d.ts +0 -1
  160. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.d.ts.map +1 -1
  161. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.js +26 -32
  162. package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.js.map +1 -1
  163. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.d.ts +0 -1
  164. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.d.ts.map +1 -1
  165. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js +43 -47
  166. package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js.map +1 -1
  167. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.d.ts +0 -1
  168. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.d.ts.map +1 -1
  169. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.js +48 -66
  170. package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.js.map +1 -1
  171. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.d.ts +0 -1
  172. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.d.ts.map +1 -1
  173. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js +26 -30
  174. package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js.map +1 -1
  175. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.d.ts +0 -1
  176. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.d.ts.map +1 -1
  177. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js +24 -30
  178. package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js.map +1 -1
  179. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.d.ts +0 -1
  180. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.d.ts.map +1 -1
  181. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js +20 -26
  182. package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js.map +1 -1
  183. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.d.ts +0 -1
  184. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.d.ts.map +1 -1
  185. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js +44 -64
  186. package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js.map +1 -1
  187. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.d.ts +0 -1
  188. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.d.ts.map +1 -1
  189. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js +22 -26
  190. package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js.map +1 -1
  191. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.d.ts +0 -1
  192. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.d.ts.map +1 -1
  193. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js +27 -35
  194. package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js.map +1 -1
  195. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.d.ts +0 -1
  196. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.d.ts.map +1 -1
  197. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js +25 -35
  198. package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js.map +1 -1
  199. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.d.ts +0 -1
  200. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.d.ts.map +1 -1
  201. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.js +29 -35
  202. package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.js.map +1 -1
  203. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.d.ts +0 -1
  204. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.d.ts.map +1 -1
  205. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js +27 -35
  206. package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js.map +1 -1
  207. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.d.ts +0 -1
  208. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.d.ts.map +1 -1
  209. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +121 -150
  210. package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
  211. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.d.ts +0 -1
  212. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.d.ts.map +1 -1
  213. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.js +37 -47
  214. package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.js.map +1 -1
  215. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.d.ts +0 -1
  216. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.d.ts.map +1 -1
  217. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +52 -59
  218. package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
  219. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.d.ts +0 -1
  220. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.d.ts.map +1 -1
  221. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js +55 -66
  222. package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js.map +1 -1
  223. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.d.ts +0 -1
  224. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.d.ts.map +1 -1
  225. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js +24 -30
  226. package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js.map +1 -1
  227. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.d.ts +0 -1
  228. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.d.ts.map +1 -1
  229. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +37 -42
  230. package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
  231. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.d.ts +0 -1
  232. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.d.ts.map +1 -1
  233. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js +42 -47
  234. package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js.map +1 -1
  235. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.d.ts +0 -1
  236. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.d.ts.map +1 -1
  237. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +86 -97
  238. package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
  239. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.d.ts +0 -1
  240. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.d.ts.map +1 -1
  241. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js +23 -27
  242. package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js.map +1 -1
  243. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.d.ts +0 -1
  244. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.d.ts.map +1 -1
  245. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.js +19 -29
  246. package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.js.map +1 -1
  247. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.d.ts +0 -1
  248. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.d.ts.map +1 -1
  249. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js +70 -73
  250. package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js.map +1 -1
  251. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.d.ts +0 -1
  252. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.d.ts.map +1 -1
  253. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +179 -184
  254. package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
  255. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.d.ts +0 -1
  256. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.d.ts.map +1 -1
  257. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js +21 -27
  258. package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js.map +1 -1
  259. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.d.ts +0 -1
  260. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.d.ts.map +1 -1
  261. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js +23 -29
  262. package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js.map +1 -1
  263. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.d.ts +0 -1
  264. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.d.ts.map +1 -1
  265. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +33 -43
  266. package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
  267. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.d.ts +0 -1
  268. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.d.ts.map +1 -1
  269. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js +31 -37
  270. package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js.map +1 -1
  271. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.d.ts +0 -1
  272. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.d.ts.map +1 -1
  273. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +21 -24
  274. package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
  275. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.d.ts +0 -1
  276. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.d.ts.map +1 -1
  277. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +22 -25
  278. package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
  279. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.d.ts +0 -1
  280. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.d.ts.map +1 -1
  281. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +35 -42
  282. package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
  283. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.d.ts +0 -1
  284. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.d.ts.map +1 -1
  285. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js +39 -48
  286. package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js.map +1 -1
  287. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.d.ts +0 -1
  288. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.d.ts.map +1 -1
  289. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +161 -174
  290. package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
  291. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.d.ts +0 -1
  292. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.d.ts.map +1 -1
  293. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js +35 -40
  294. package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js.map +1 -1
  295. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.d.ts +0 -1
  296. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.d.ts.map +1 -1
  297. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js +44 -55
  298. package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js.map +1 -1
  299. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.d.ts +0 -1
  300. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.d.ts.map +1 -1
  301. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js +134 -163
  302. package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js.map +1 -1
  303. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.d.ts +0 -1
  304. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.d.ts.map +1 -1
  305. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.js +43 -52
  306. package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.js.map +1 -1
  307. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.d.ts +0 -1
  308. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.d.ts.map +1 -1
  309. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js +21 -24
  310. package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js.map +1 -1
  311. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.d.ts +0 -1
  312. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.d.ts.map +1 -1
  313. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js +36 -50
  314. package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js.map +1 -1
  315. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.d.ts +0 -1
  316. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.d.ts.map +1 -1
  317. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +76 -81
  318. package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
  319. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.d.ts +0 -1
  320. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.d.ts.map +1 -1
  321. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js +25 -31
  322. package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js.map +1 -1
  323. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.d.ts +0 -1
  324. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.d.ts.map +1 -1
  325. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js +28 -31
  326. package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js.map +1 -1
  327. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.d.ts +0 -1
  328. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.d.ts.map +1 -1
  329. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.js +37 -40
  330. package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.js.map +1 -1
  331. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.d.ts +0 -1
  332. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.d.ts.map +1 -1
  333. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.js +24 -30
  334. package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.js.map +1 -1
  335. package/dist/lib/generated/Entities/APIKey/apikey.form.component.d.ts +0 -1
  336. package/dist/lib/generated/Entities/APIKey/apikey.form.component.d.ts.map +1 -1
  337. package/dist/lib/generated/Entities/APIKey/apikey.form.component.js +49 -56
  338. package/dist/lib/generated/Entities/APIKey/apikey.form.component.js.map +1 -1
  339. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.d.ts +0 -1
  340. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.d.ts.map +1 -1
  341. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.js +17 -23
  342. package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.js.map +1 -1
  343. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.d.ts +0 -1
  344. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.d.ts.map +1 -1
  345. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.js +24 -30
  346. package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.js.map +1 -1
  347. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.d.ts +0 -1
  348. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.d.ts.map +1 -1
  349. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.js +30 -36
  350. package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.js.map +1 -1
  351. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.d.ts +0 -1
  352. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.d.ts.map +1 -1
  353. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js +47 -52
  354. package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js.map +1 -1
  355. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.d.ts +0 -1
  356. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.d.ts.map +1 -1
  357. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.js +32 -38
  358. package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.js.map +1 -1
  359. package/dist/lib/generated/Entities/Action/action.form.component.d.ts +0 -1
  360. package/dist/lib/generated/Entities/Action/action.form.component.d.ts.map +1 -1
  361. package/dist/lib/generated/Entities/Action/action.form.component.js +130 -141
  362. package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
  363. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.d.ts +0 -1
  364. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.d.ts.map +1 -1
  365. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +19 -25
  366. package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
  367. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.d.ts +0 -1
  368. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.d.ts.map +1 -1
  369. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js +43 -48
  370. package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js.map +1 -1
  371. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.d.ts +0 -1
  372. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.d.ts.map +1 -1
  373. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +21 -27
  374. package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
  375. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.d.ts +0 -1
  376. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.d.ts.map +1 -1
  377. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js +21 -24
  378. package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js.map +1 -1
  379. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.d.ts +0 -1
  380. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.d.ts.map +1 -1
  381. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js +27 -33
  382. package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js.map +1 -1
  383. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.d.ts +0 -1
  384. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.d.ts.map +1 -1
  385. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js +23 -26
  386. package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js.map +1 -1
  387. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.d.ts +0 -1
  388. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.d.ts.map +1 -1
  389. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js +19 -25
  390. package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js.map +1 -1
  391. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.d.ts +0 -1
  392. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.d.ts.map +1 -1
  393. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js +42 -47
  394. package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js.map +1 -1
  395. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.d.ts +0 -1
  396. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.d.ts.map +1 -1
  397. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js +22 -26
  398. package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js.map +1 -1
  399. package/dist/lib/generated/Entities/Application/application.form.component.d.ts +0 -1
  400. package/dist/lib/generated/Entities/Application/application.form.component.d.ts.map +1 -1
  401. package/dist/lib/generated/Entities/Application/application.form.component.js +64 -67
  402. package/dist/lib/generated/Entities/Application/application.form.component.js.map +1 -1
  403. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.d.ts +0 -1
  404. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.d.ts.map +1 -1
  405. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js +26 -32
  406. package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js.map +1 -1
  407. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.d.ts +0 -1
  408. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.d.ts.map +1 -1
  409. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js +22 -26
  410. package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js.map +1 -1
  411. package/dist/lib/generated/Entities/Artifact/artifact.form.component.d.ts +0 -1
  412. package/dist/lib/generated/Entities/Artifact/artifact.form.component.d.ts.map +1 -1
  413. package/dist/lib/generated/Entities/Artifact/artifact.form.component.js +47 -56
  414. package/dist/lib/generated/Entities/Artifact/artifact.form.component.js.map +1 -1
  415. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.d.ts +0 -1
  416. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.d.ts.map +1 -1
  417. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js +25 -33
  418. package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js.map +1 -1
  419. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.d.ts +0 -1
  420. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.d.ts.map +1 -1
  421. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js +61 -66
  422. package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js.map +1 -1
  423. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.d.ts +0 -1
  424. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.d.ts.map +1 -1
  425. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js +22 -28
  426. package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js.map +1 -1
  427. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.d.ts +0 -1
  428. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.d.ts.map +1 -1
  429. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js +55 -62
  430. package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js.map +1 -1
  431. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.d.ts +0 -1
  432. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.d.ts.map +1 -1
  433. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js +26 -30
  434. package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js.map +1 -1
  435. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.d.ts +0 -1
  436. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.d.ts.map +1 -1
  437. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js +26 -36
  438. package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js.map +1 -1
  439. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.d.ts +0 -1
  440. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.d.ts.map +1 -1
  441. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js +38 -45
  442. package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js.map +1 -1
  443. package/dist/lib/generated/Entities/Authorization/authorization.form.component.d.ts +0 -1
  444. package/dist/lib/generated/Entities/Authorization/authorization.form.component.d.ts.map +1 -1
  445. package/dist/lib/generated/Entities/Authorization/authorization.form.component.js +60 -65
  446. package/dist/lib/generated/Entities/Authorization/authorization.form.component.js.map +1 -1
  447. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.d.ts +0 -1
  448. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.d.ts.map +1 -1
  449. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js +19 -25
  450. package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js.map +1 -1
  451. package/dist/lib/generated/Entities/Collection/collection.form.component.d.ts +0 -1
  452. package/dist/lib/generated/Entities/Collection/collection.form.component.d.ts.map +1 -1
  453. package/dist/lib/generated/Entities/Collection/collection.form.component.js +50 -59
  454. package/dist/lib/generated/Entities/Collection/collection.form.component.js.map +1 -1
  455. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.d.ts +0 -1
  456. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.d.ts.map +1 -1
  457. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.js +19 -25
  458. package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.js.map +1 -1
  459. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.d.ts +0 -1
  460. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.d.ts.map +1 -1
  461. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js +25 -33
  462. package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js.map +1 -1
  463. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.d.ts +0 -1
  464. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.d.ts.map +1 -1
  465. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js +32 -35
  466. package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js.map +1 -1
  467. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.d.ts +0 -1
  468. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.d.ts.map +1 -1
  469. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js +28 -38
  470. package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js.map +1 -1
  471. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.d.ts +0 -1
  472. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.d.ts.map +1 -1
  473. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js +37 -40
  474. package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js.map +1 -1
  475. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.d.ts +0 -1
  476. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.d.ts.map +1 -1
  477. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js +31 -38
  478. package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js.map +1 -1
  479. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.d.ts +0 -1
  480. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.d.ts.map +1 -1
  481. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js +36 -41
  482. package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js.map +1 -1
  483. package/dist/lib/generated/Entities/Company/company.form.component.d.ts +0 -1
  484. package/dist/lib/generated/Entities/Company/company.form.component.d.ts.map +1 -1
  485. package/dist/lib/generated/Entities/Company/company.form.component.js +60 -63
  486. package/dist/lib/generated/Entities/Company/company.form.component.js.map +1 -1
  487. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.d.ts +0 -1
  488. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.d.ts.map +1 -1
  489. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js +71 -78
  490. package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js.map +1 -1
  491. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.d.ts +0 -1
  492. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.d.ts.map +1 -1
  493. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js +20 -26
  494. package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js.map +1 -1
  495. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.d.ts +0 -1
  496. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.d.ts.map +1 -1
  497. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js +54 -59
  498. package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js.map +1 -1
  499. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.d.ts +0 -1
  500. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.d.ts.map +1 -1
  501. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js +23 -29
  502. package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js.map +1 -1
  503. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.d.ts +0 -1
  504. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.d.ts.map +1 -1
  505. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js +37 -42
  506. package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js.map +1 -1
  507. package/dist/lib/generated/Entities/Component/component.form.component.d.ts +0 -1
  508. package/dist/lib/generated/Entities/Component/component.form.component.d.ts.map +1 -1
  509. package/dist/lib/generated/Entities/Component/component.form.component.js +66 -71
  510. package/dist/lib/generated/Entities/Component/component.form.component.js.map +1 -1
  511. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.d.ts +0 -1
  512. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.d.ts.map +1 -1
  513. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.js +17 -23
  514. package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.js.map +1 -1
  515. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.d.ts +0 -1
  516. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.d.ts.map +1 -1
  517. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.js +33 -36
  518. package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.js.map +1 -1
  519. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.d.ts +0 -1
  520. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.d.ts.map +1 -1
  521. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.js +21 -27
  522. package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.js.map +1 -1
  523. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.d.ts +0 -1
  524. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.d.ts.map +1 -1
  525. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.js +26 -29
  526. package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.js.map +1 -1
  527. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.d.ts +0 -1
  528. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.d.ts.map +1 -1
  529. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js +27 -30
  530. package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js.map +1 -1
  531. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.d.ts +0 -1
  532. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.d.ts.map +1 -1
  533. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js +38 -54
  534. package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js.map +1 -1
  535. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.d.ts +0 -1
  536. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.d.ts.map +1 -1
  537. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js +17 -22
  538. package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js.map +1 -1
  539. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.d.ts +0 -1
  540. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.d.ts.map +1 -1
  541. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js +16 -21
  542. package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js.map +1 -1
  543. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.d.ts +0 -1
  544. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.d.ts.map +1 -1
  545. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js +19 -24
  546. package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js.map +1 -1
  547. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.d.ts +0 -1
  548. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.d.ts.map +1 -1
  549. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js +41 -55
  550. package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js.map +1 -1
  551. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.d.ts +0 -1
  552. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.d.ts.map +1 -1
  553. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js +17 -22
  554. package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js.map +1 -1
  555. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.d.ts +0 -1
  556. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.d.ts.map +1 -1
  557. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js +27 -30
  558. package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js.map +1 -1
  559. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.d.ts +0 -1
  560. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.d.ts.map +1 -1
  561. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js +16 -18
  562. package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js.map +1 -1
  563. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.d.ts +0 -1
  564. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.d.ts.map +1 -1
  565. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js +33 -40
  566. package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js.map +1 -1
  567. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.d.ts +0 -1
  568. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.d.ts.map +1 -1
  569. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js +15 -17
  570. package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js.map +1 -1
  571. package/dist/lib/generated/Entities/Conversation/conversation.form.component.d.ts +0 -1
  572. package/dist/lib/generated/Entities/Conversation/conversation.form.component.d.ts.map +1 -1
  573. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +80 -95
  574. package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
  575. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.d.ts +0 -1
  576. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.d.ts.map +1 -1
  577. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js +44 -51
  578. package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js.map +1 -1
  579. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.d.ts +0 -1
  580. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.d.ts.map +1 -1
  581. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js +19 -25
  582. package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js.map +1 -1
  583. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.d.ts +0 -1
  584. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.d.ts.map +1 -1
  585. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js +31 -36
  586. package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js.map +1 -1
  587. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.d.ts +0 -1
  588. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.d.ts.map +1 -1
  589. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js +111 -130
  590. package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js.map +1 -1
  591. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.d.ts +0 -1
  592. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.d.ts.map +1 -1
  593. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js +21 -29
  594. package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js.map +1 -1
  595. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.d.ts +0 -1
  596. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.d.ts.map +1 -1
  597. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js +34 -42
  598. package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js.map +1 -1
  599. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.d.ts +0 -1
  600. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.d.ts.map +1 -1
  601. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js +20 -32
  602. package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js.map +1 -1
  603. package/dist/lib/generated/Entities/Credential/credential.form.component.d.ts +0 -1
  604. package/dist/lib/generated/Entities/Credential/credential.form.component.d.ts.map +1 -1
  605. package/dist/lib/generated/Entities/Credential/credential.form.component.js +72 -61
  606. package/dist/lib/generated/Entities/Credential/credential.form.component.js.map +1 -1
  607. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.d.ts +0 -1
  608. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.d.ts.map +1 -1
  609. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.js +36 -41
  610. package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.js.map +1 -1
  611. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.d.ts +0 -1
  612. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.d.ts.map +1 -1
  613. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js +40 -43
  614. package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js.map +1 -1
  615. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.d.ts +0 -1
  616. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.d.ts.map +1 -1
  617. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js +60 -71
  618. package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js.map +1 -1
  619. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.d.ts +0 -1
  620. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.d.ts.map +1 -1
  621. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js +52 -59
  622. package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js.map +1 -1
  623. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.d.ts +0 -1
  624. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.d.ts.map +1 -1
  625. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.js +21 -29
  626. package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.js.map +1 -1
  627. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.d.ts +0 -1
  628. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.d.ts.map +1 -1
  629. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.js +28 -36
  630. package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.js.map +1 -1
  631. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.d.ts +0 -1
  632. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.d.ts.map +1 -1
  633. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.js +21 -23
  634. package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.js.map +1 -1
  635. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.d.ts +0 -1
  636. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.d.ts.map +1 -1
  637. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.js +25 -33
  638. package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.js.map +1 -1
  639. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.d.ts +0 -1
  640. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.d.ts.map +1 -1
  641. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js +26 -34
  642. package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js.map +1 -1
  643. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.d.ts +0 -1
  644. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.d.ts.map +1 -1
  645. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js +19 -25
  646. package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js.map +1 -1
  647. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.d.ts +0 -1
  648. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.d.ts.map +1 -1
  649. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js +44 -49
  650. package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js.map +1 -1
  651. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.d.ts +0 -1
  652. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.d.ts.map +1 -1
  653. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js +32 -42
  654. package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js.map +1 -1
  655. package/dist/lib/generated/Entities/Dataset/dataset.form.component.d.ts +0 -1
  656. package/dist/lib/generated/Entities/Dataset/dataset.form.component.d.ts.map +1 -1
  657. package/dist/lib/generated/Entities/Dataset/dataset.form.component.js +21 -24
  658. package/dist/lib/generated/Entities/Dataset/dataset.form.component.js.map +1 -1
  659. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.d.ts +0 -1
  660. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.d.ts.map +1 -1
  661. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js +25 -31
  662. package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js.map +1 -1
  663. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.d.ts +0 -1
  664. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.d.ts.map +1 -1
  665. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js +39 -50
  666. package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js.map +1 -1
  667. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.d.ts +0 -1
  668. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.d.ts.map +1 -1
  669. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js +33 -38
  670. package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js.map +1 -1
  671. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.d.ts +0 -1
  672. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.d.ts.map +1 -1
  673. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js +27 -35
  674. package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js.map +1 -1
  675. package/dist/lib/generated/Entities/Employee/employee.form.component.d.ts +0 -1
  676. package/dist/lib/generated/Entities/Employee/employee.form.component.d.ts.map +1 -1
  677. package/dist/lib/generated/Entities/Employee/employee.form.component.js +66 -71
  678. package/dist/lib/generated/Entities/Employee/employee.form.component.js.map +1 -1
  679. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.d.ts +0 -1
  680. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.d.ts.map +1 -1
  681. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js +22 -28
  682. package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js.map +1 -1
  683. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.d.ts +0 -1
  684. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.d.ts.map +1 -1
  685. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js +19 -33
  686. package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js.map +1 -1
  687. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.d.ts +0 -1
  688. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.d.ts.map +1 -1
  689. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js +17 -23
  690. package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js.map +1 -1
  691. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.d.ts +0 -1
  692. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.d.ts.map +1 -1
  693. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.js +25 -28
  694. package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.js.map +1 -1
  695. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.d.ts +0 -1
  696. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.d.ts.map +1 -1
  697. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.js +31 -38
  698. package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.js.map +1 -1
  699. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.d.ts +0 -1
  700. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.d.ts.map +1 -1
  701. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.js +25 -28
  702. package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.js.map +1 -1
  703. package/dist/lib/generated/Entities/Entity/entity.form.component.d.ts +0 -1
  704. package/dist/lib/generated/Entities/Entity/entity.form.component.d.ts.map +1 -1
  705. package/dist/lib/generated/Entities/Entity/entity.form.component.js +424 -391
  706. package/dist/lib/generated/Entities/Entity/entity.form.component.js.map +1 -1
  707. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.d.ts +0 -1
  708. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.d.ts.map +1 -1
  709. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js +33 -43
  710. package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js.map +1 -1
  711. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.d.ts +0 -1
  712. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.d.ts.map +1 -1
  713. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js +41 -48
  714. package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js.map +1 -1
  715. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.d.ts +0 -1
  716. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.d.ts.map +1 -1
  717. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js +23 -25
  718. package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js.map +1 -1
  719. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.d.ts +0 -1
  720. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.d.ts.map +1 -1
  721. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js +21 -27
  722. package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js.map +1 -1
  723. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.d.ts +0 -1
  724. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.d.ts.map +1 -1
  725. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js +22 -25
  726. package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js.map +1 -1
  727. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.d.ts +0 -1
  728. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.d.ts.map +1 -1
  729. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js +24 -26
  730. package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js.map +1 -1
  731. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.d.ts +0 -1
  732. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.d.ts.map +1 -1
  733. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js +17 -22
  734. package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js.map +1 -1
  735. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.d.ts +0 -1
  736. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.d.ts.map +1 -1
  737. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js +27 -34
  738. package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js.map +1 -1
  739. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.d.ts +0 -1
  740. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.d.ts.map +1 -1
  741. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js +52 -65
  742. package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js.map +1 -1
  743. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.d.ts +0 -1
  744. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.d.ts.map +1 -1
  745. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js +22 -26
  746. package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js.map +1 -1
  747. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.d.ts +0 -1
  748. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.d.ts.map +1 -1
  749. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js +22 -26
  750. package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js.map +1 -1
  751. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.d.ts +0 -1
  752. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.d.ts.map +1 -1
  753. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js +20 -24
  754. package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js.map +1 -1
  755. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.d.ts +0 -1
  756. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.d.ts.map +1 -1
  757. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js +102 -103
  758. package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js.map +1 -1
  759. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.d.ts +0 -1
  760. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.d.ts.map +1 -1
  761. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js +25 -29
  762. package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js.map +1 -1
  763. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.d.ts +0 -1
  764. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.d.ts.map +1 -1
  765. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js +33 -45
  766. package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js.map +1 -1
  767. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.d.ts +0 -1
  768. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.d.ts.map +1 -1
  769. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js +32 -40
  770. package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js.map +1 -1
  771. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.d.ts +0 -1
  772. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.d.ts.map +1 -1
  773. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js +54 -60
  774. package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js.map +1 -1
  775. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.d.ts +0 -1
  776. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.d.ts.map +1 -1
  777. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js +22 -25
  778. package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js.map +1 -1
  779. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.d.ts +0 -1
  780. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.d.ts.map +1 -1
  781. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js +19 -23
  782. package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js.map +1 -1
  783. package/dist/lib/generated/Entities/Environment/environment.form.component.d.ts +0 -1
  784. package/dist/lib/generated/Entities/Environment/environment.form.component.d.ts.map +1 -1
  785. package/dist/lib/generated/Entities/Environment/environment.form.component.js +65 -69
  786. package/dist/lib/generated/Entities/Environment/environment.form.component.js.map +1 -1
  787. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.d.ts +0 -1
  788. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.d.ts.map +1 -1
  789. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js +29 -35
  790. package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js.map +1 -1
  791. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.d.ts +0 -1
  792. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.d.ts.map +1 -1
  793. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js +23 -25
  794. package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js.map +1 -1
  795. package/dist/lib/generated/Entities/File/file.form.component.d.ts +0 -1
  796. package/dist/lib/generated/Entities/File/file.form.component.d.ts.map +1 -1
  797. package/dist/lib/generated/Entities/File/file.form.component.js +55 -62
  798. package/dist/lib/generated/Entities/File/file.form.component.js.map +1 -1
  799. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.d.ts +0 -1
  800. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.d.ts.map +1 -1
  801. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js +35 -40
  802. package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js.map +1 -1
  803. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.d.ts +0 -1
  804. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.d.ts.map +1 -1
  805. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js +19 -25
  806. package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js.map +1 -1
  807. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.d.ts +0 -1
  808. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.d.ts.map +1 -1
  809. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.js +22 -28
  810. package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.js.map +1 -1
  811. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.d.ts +0 -1
  812. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.d.ts.map +1 -1
  813. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js +52 -55
  814. package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js.map +1 -1
  815. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.d.ts +0 -1
  816. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.d.ts.map +1 -1
  817. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js +35 -43
  818. package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js.map +1 -1
  819. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.d.ts +0 -1
  820. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.d.ts.map +1 -1
  821. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js +35 -40
  822. package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js.map +1 -1
  823. package/dist/lib/generated/Entities/Integration/integration.form.component.d.ts +0 -1
  824. package/dist/lib/generated/Entities/Integration/integration.form.component.d.ts.map +1 -1
  825. package/dist/lib/generated/Entities/Integration/integration.form.component.js +41 -44
  826. package/dist/lib/generated/Entities/Integration/integration.form.component.js.map +1 -1
  827. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.d.ts +0 -1
  828. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.d.ts.map +1 -1
  829. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js +27 -31
  830. package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js.map +1 -1
  831. package/dist/lib/generated/Entities/Library/library.form.component.d.ts +0 -1
  832. package/dist/lib/generated/Entities/Library/library.form.component.d.ts.map +1 -1
  833. package/dist/lib/generated/Entities/Library/library.form.component.js +32 -35
  834. package/dist/lib/generated/Entities/Library/library.form.component.js.map +1 -1
  835. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.d.ts +0 -1
  836. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.d.ts.map +1 -1
  837. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js +18 -22
  838. package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js.map +1 -1
  839. package/dist/lib/generated/Entities/List/list.form.component.d.ts +0 -1
  840. package/dist/lib/generated/Entities/List/list.form.component.d.ts.map +1 -1
  841. package/dist/lib/generated/Entities/List/list.form.component.js +52 -63
  842. package/dist/lib/generated/Entities/List/list.form.component.js.map +1 -1
  843. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.d.ts +0 -1
  844. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.d.ts.map +1 -1
  845. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js +39 -46
  846. package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js.map +1 -1
  847. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.d.ts +0 -1
  848. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.d.ts.map +1 -1
  849. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js +23 -27
  850. package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js.map +1 -1
  851. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.d.ts +0 -1
  852. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.d.ts.map +1 -1
  853. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.js +22 -28
  854. package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.js.map +1 -1
  855. package/dist/lib/generated/Entities/ListShare/listshare.form.component.d.ts +0 -1
  856. package/dist/lib/generated/Entities/ListShare/listshare.form.component.d.ts.map +1 -1
  857. package/dist/lib/generated/Entities/ListShare/listshare.form.component.js +19 -25
  858. package/dist/lib/generated/Entities/ListShare/listshare.form.component.js.map +1 -1
  859. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts +0 -1
  860. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts.map +1 -1
  861. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js +87 -56
  862. package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js.map +1 -1
  863. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts +0 -1
  864. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts.map +1 -1
  865. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js +110 -65
  866. package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js.map +1 -1
  867. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts +0 -1
  868. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts.map +1 -1
  869. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js +24 -32
  870. package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js.map +1 -1
  871. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts +0 -1
  872. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts.map +1 -1
  873. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js +23 -29
  874. package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js.map +1 -1
  875. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts +0 -1
  876. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts.map +1 -1
  877. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js +48 -57
  878. package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js.map +1 -1
  879. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts +0 -1
  880. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts.map +1 -1
  881. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js +36 -44
  882. package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js.map +1 -1
  883. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.d.ts +10 -0
  884. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.d.ts.map +1 -0
  885. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.js +73 -0
  886. package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.js.map +1 -0
  887. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.d.ts +10 -0
  888. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.d.ts.map +1 -0
  889. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.js +75 -0
  890. package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.js.map +1 -0
  891. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.d.ts +10 -0
  892. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.d.ts.map +1 -0
  893. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.js +75 -0
  894. package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.js.map +1 -0
  895. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.d.ts +10 -0
  896. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.d.ts.map +1 -0
  897. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.js +61 -0
  898. package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.js.map +1 -0
  899. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.d.ts +0 -1
  900. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.d.ts.map +1 -1
  901. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js +21 -24
  902. package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js.map +1 -1
  903. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.d.ts +0 -1
  904. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.d.ts.map +1 -1
  905. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js +22 -25
  906. package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js.map +1 -1
  907. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.d.ts +0 -1
  908. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.d.ts.map +1 -1
  909. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js +21 -24
  910. package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js.map +1 -1
  911. package/dist/lib/generated/Entities/Project/project.form.component.d.ts +0 -1
  912. package/dist/lib/generated/Entities/Project/project.form.component.d.ts.map +1 -1
  913. package/dist/lib/generated/Entities/Project/project.form.component.js +49 -56
  914. package/dist/lib/generated/Entities/Project/project.form.component.js.map +1 -1
  915. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.d.ts +0 -1
  916. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.d.ts.map +1 -1
  917. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.js +30 -34
  918. package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.js.map +1 -1
  919. package/dist/lib/generated/Entities/Query/query.form.component.d.ts +0 -1
  920. package/dist/lib/generated/Entities/Query/query.form.component.d.ts.map +1 -1
  921. package/dist/lib/generated/Entities/Query/query.form.component.js +79 -86
  922. package/dist/lib/generated/Entities/Query/query.form.component.js.map +1 -1
  923. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.d.ts +0 -1
  924. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.d.ts.map +1 -1
  925. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js +42 -49
  926. package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js.map +1 -1
  927. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.d.ts +0 -1
  928. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.d.ts.map +1 -1
  929. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js +20 -26
  930. package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js.map +1 -1
  931. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.d.ts +0 -1
  932. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.d.ts.map +1 -1
  933. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js +32 -38
  934. package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js.map +1 -1
  935. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.d.ts +0 -1
  936. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.d.ts.map +1 -1
  937. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.js +28 -32
  938. package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.js.map +1 -1
  939. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.d.ts +0 -1
  940. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.d.ts.map +1 -1
  941. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js +18 -26
  942. package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js.map +1 -1
  943. package/dist/lib/generated/Entities/Queue/queue.form.component.d.ts +0 -1
  944. package/dist/lib/generated/Entities/Queue/queue.form.component.d.ts.map +1 -1
  945. package/dist/lib/generated/Entities/Queue/queue.form.component.js +45 -50
  946. package/dist/lib/generated/Entities/Queue/queue.form.component.js.map +1 -1
  947. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.d.ts +0 -1
  948. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.d.ts.map +1 -1
  949. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js +30 -34
  950. package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js.map +1 -1
  951. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.d.ts +0 -1
  952. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.d.ts.map +1 -1
  953. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js +25 -28
  954. package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js.map +1 -1
  955. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.d.ts +0 -1
  956. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.d.ts.map +1 -1
  957. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js +25 -38
  958. package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js.map +1 -1
  959. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.d.ts +0 -1
  960. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.d.ts.map +1 -1
  961. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js +18 -31
  962. package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js.map +1 -1
  963. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.d.ts +0 -1
  964. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.d.ts.map +1 -1
  965. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js +21 -24
  966. package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js.map +1 -1
  967. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.d.ts +0 -1
  968. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.d.ts.map +1 -1
  969. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js +31 -38
  970. package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js.map +1 -1
  971. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.d.ts +0 -1
  972. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.d.ts.map +1 -1
  973. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js +51 -49
  974. package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js.map +1 -1
  975. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.d.ts +0 -1
  976. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.d.ts.map +1 -1
  977. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js +30 -35
  978. package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js.map +1 -1
  979. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.d.ts +0 -1
  980. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.d.ts.map +1 -1
  981. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.js +26 -32
  982. package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.js.map +1 -1
  983. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.d.ts +0 -1
  984. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.d.ts.map +1 -1
  985. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js +17 -27
  986. package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js.map +1 -1
  987. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.d.ts +0 -1
  988. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.d.ts.map +1 -1
  989. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js +46 -55
  990. package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js.map +1 -1
  991. package/dist/lib/generated/Entities/Report/report.form.component.d.ts +0 -1
  992. package/dist/lib/generated/Entities/Report/report.form.component.d.ts.map +1 -1
  993. package/dist/lib/generated/Entities/Report/report.form.component.js +60 -89
  994. package/dist/lib/generated/Entities/Report/report.form.component.js.map +1 -1
  995. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.d.ts +0 -1
  996. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.d.ts.map +1 -1
  997. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js +36 -43
  998. package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js.map +1 -1
  999. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.d.ts +0 -1
  1000. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.d.ts.map +1 -1
  1001. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js +19 -25
  1002. package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js.map +1 -1
  1003. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.d.ts +0 -1
  1004. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.d.ts.map +1 -1
  1005. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js +19 -25
  1006. package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js.map +1 -1
  1007. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.d.ts +0 -1
  1008. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.d.ts.map +1 -1
  1009. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js +24 -28
  1010. package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js.map +1 -1
  1011. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.d.ts +0 -1
  1012. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.d.ts.map +1 -1
  1013. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js +16 -22
  1014. package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js.map +1 -1
  1015. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.d.ts +0 -1
  1016. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.d.ts.map +1 -1
  1017. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js +28 -37
  1018. package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js.map +1 -1
  1019. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.d.ts +0 -1
  1020. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.d.ts.map +1 -1
  1021. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js +54 -63
  1022. package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js.map +1 -1
  1023. package/dist/lib/generated/Entities/Role/role.form.component.d.ts +0 -1
  1024. package/dist/lib/generated/Entities/Role/role.form.component.d.ts.map +1 -1
  1025. package/dist/lib/generated/Entities/Role/role.form.component.js +72 -75
  1026. package/dist/lib/generated/Entities/Role/role.form.component.js.map +1 -1
  1027. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.d.ts +0 -1
  1028. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.d.ts.map +1 -1
  1029. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js +21 -25
  1030. package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js.map +1 -1
  1031. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.d.ts +0 -1
  1032. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.d.ts.map +1 -1
  1033. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js +42 -49
  1034. package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js.map +1 -1
  1035. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.d.ts +0 -1
  1036. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.d.ts.map +1 -1
  1037. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js +23 -29
  1038. package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js.map +1 -1
  1039. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.d.ts +0 -1
  1040. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.d.ts.map +1 -1
  1041. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.js +60 -69
  1042. package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.js.map +1 -1
  1043. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.d.ts +0 -1
  1044. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.d.ts.map +1 -1
  1045. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.js +38 -45
  1046. package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.js.map +1 -1
  1047. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.d.ts +0 -1
  1048. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.d.ts.map +1 -1
  1049. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.js +26 -29
  1050. package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.js.map +1 -1
  1051. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.d.ts +0 -1
  1052. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.d.ts.map +1 -1
  1053. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js +18 -20
  1054. package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js.map +1 -1
  1055. package/dist/lib/generated/Entities/Skill/skill.form.component.d.ts +0 -1
  1056. package/dist/lib/generated/Entities/Skill/skill.form.component.d.ts.map +1 -1
  1057. package/dist/lib/generated/Entities/Skill/skill.form.component.js +34 -39
  1058. package/dist/lib/generated/Entities/Skill/skill.form.component.js.map +1 -1
  1059. package/dist/lib/generated/Entities/Tag/tag.form.component.d.ts +0 -1
  1060. package/dist/lib/generated/Entities/Tag/tag.form.component.d.ts.map +1 -1
  1061. package/dist/lib/generated/Entities/Tag/tag.form.component.js +36 -41
  1062. package/dist/lib/generated/Entities/Tag/tag.form.component.js.map +1 -1
  1063. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.d.ts +0 -1
  1064. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.d.ts.map +1 -1
  1065. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js +21 -27
  1066. package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js.map +1 -1
  1067. package/dist/lib/generated/Entities/Task/task.form.component.d.ts +0 -1
  1068. package/dist/lib/generated/Entities/Task/task.form.component.d.ts.map +1 -1
  1069. package/dist/lib/generated/Entities/Task/task.form.component.js +58 -75
  1070. package/dist/lib/generated/Entities/Task/task.form.component.js.map +1 -1
  1071. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.d.ts +0 -1
  1072. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.d.ts.map +1 -1
  1073. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.js +21 -27
  1074. package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.js.map +1 -1
  1075. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.d.ts +0 -1
  1076. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.d.ts.map +1 -1
  1077. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.js +21 -24
  1078. package/dist/lib/generated/Entities/TaskType/tasktype.form.component.js.map +1 -1
  1079. package/dist/lib/generated/Entities/Template/template.form.component.d.ts +0 -1
  1080. package/dist/lib/generated/Entities/Template/template.form.component.d.ts.map +1 -1
  1081. package/dist/lib/generated/Entities/Template/template.form.component.js +70 -77
  1082. package/dist/lib/generated/Entities/Template/template.form.component.js.map +1 -1
  1083. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.d.ts +0 -1
  1084. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.d.ts.map +1 -1
  1085. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js +39 -46
  1086. package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js.map +1 -1
  1087. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.d.ts +0 -1
  1088. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.d.ts.map +1 -1
  1089. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +31 -38
  1090. package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
  1091. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.d.ts +0 -1
  1092. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.d.ts.map +1 -1
  1093. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js +21 -25
  1094. package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js.map +1 -1
  1095. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.d.ts +0 -1
  1096. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.d.ts.map +1 -1
  1097. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js +34 -48
  1098. package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js.map +1 -1
  1099. package/dist/lib/generated/Entities/Test/test.form.component.d.ts +0 -1
  1100. package/dist/lib/generated/Entities/Test/test.form.component.d.ts.map +1 -1
  1101. package/dist/lib/generated/Entities/Test/test.form.component.js +50 -55
  1102. package/dist/lib/generated/Entities/Test/test.form.component.js.map +1 -1
  1103. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.d.ts +0 -1
  1104. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.d.ts.map +1 -1
  1105. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.js +19 -23
  1106. package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.js.map +1 -1
  1107. package/dist/lib/generated/Entities/TestRun/testrun.form.component.d.ts +0 -1
  1108. package/dist/lib/generated/Entities/TestRun/testrun.form.component.d.ts.map +1 -1
  1109. package/dist/lib/generated/Entities/TestRun/testrun.form.component.js +89 -100
  1110. package/dist/lib/generated/Entities/TestRun/testrun.form.component.js.map +1 -1
  1111. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.d.ts +0 -1
  1112. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.d.ts.map +1 -1
  1113. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js +25 -31
  1114. package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js.map +1 -1
  1115. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.d.ts +0 -1
  1116. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.d.ts.map +1 -1
  1117. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js +52 -57
  1118. package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js.map +1 -1
  1119. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.d.ts +0 -1
  1120. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.d.ts.map +1 -1
  1121. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js +64 -71
  1122. package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js.map +1 -1
  1123. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.d.ts +0 -1
  1124. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.d.ts.map +1 -1
  1125. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.js +17 -23
  1126. package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.js.map +1 -1
  1127. package/dist/lib/generated/Entities/TestType/testtype.form.component.d.ts +0 -1
  1128. package/dist/lib/generated/Entities/TestType/testtype.form.component.d.ts.map +1 -1
  1129. package/dist/lib/generated/Entities/TestType/testtype.form.component.js +31 -34
  1130. package/dist/lib/generated/Entities/TestType/testtype.form.component.js.map +1 -1
  1131. package/dist/lib/generated/Entities/User/user.form.component.d.ts +0 -1
  1132. package/dist/lib/generated/Entities/User/user.form.component.d.ts.map +1 -1
  1133. package/dist/lib/generated/Entities/User/user.form.component.js +645 -594
  1134. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  1135. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.d.ts +0 -1
  1136. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.d.ts.map +1 -1
  1137. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js +28 -35
  1138. package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js.map +1 -1
  1139. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.d.ts +0 -1
  1140. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.d.ts.map +1 -1
  1141. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js +21 -25
  1142. package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js.map +1 -1
  1143. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.d.ts +0 -1
  1144. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.d.ts.map +1 -1
  1145. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js +21 -25
  1146. package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js.map +1 -1
  1147. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.d.ts +0 -1
  1148. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.d.ts.map +1 -1
  1149. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js +27 -35
  1150. package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js.map +1 -1
  1151. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.d.ts +0 -1
  1152. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.d.ts.map +1 -1
  1153. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.js +22 -28
  1154. package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.js.map +1 -1
  1155. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.d.ts +0 -1
  1156. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.d.ts.map +1 -1
  1157. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.js +44 -51
  1158. package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.js.map +1 -1
  1159. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.d.ts +0 -1
  1160. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.d.ts.map +1 -1
  1161. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js +32 -36
  1162. package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js.map +1 -1
  1163. package/dist/lib/generated/Entities/UserRole/userrole.form.component.d.ts +0 -1
  1164. package/dist/lib/generated/Entities/UserRole/userrole.form.component.d.ts.map +1 -1
  1165. package/dist/lib/generated/Entities/UserRole/userrole.form.component.js +17 -23
  1166. package/dist/lib/generated/Entities/UserRole/userrole.form.component.js.map +1 -1
  1167. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.d.ts +0 -1
  1168. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.d.ts.map +1 -1
  1169. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js +18 -22
  1170. package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js.map +1 -1
  1171. package/dist/lib/generated/Entities/UserView/userview.form.component.d.ts +0 -1
  1172. package/dist/lib/generated/Entities/UserView/userview.form.component.d.ts.map +1 -1
  1173. package/dist/lib/generated/Entities/UserView/userview.form.component.js +72 -77
  1174. package/dist/lib/generated/Entities/UserView/userview.form.component.js.map +1 -1
  1175. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.d.ts +0 -1
  1176. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.d.ts.map +1 -1
  1177. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js +40 -49
  1178. package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js.map +1 -1
  1179. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.d.ts +0 -1
  1180. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.d.ts.map +1 -1
  1181. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js +29 -36
  1182. package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js.map +1 -1
  1183. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.d.ts +0 -1
  1184. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.d.ts.map +1 -1
  1185. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js +16 -18
  1186. package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js.map +1 -1
  1187. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.d.ts +0 -1
  1188. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.d.ts.map +1 -1
  1189. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js +30 -33
  1190. package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js.map +1 -1
  1191. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.d.ts +0 -1
  1192. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.d.ts.map +1 -1
  1193. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js +28 -35
  1194. package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js.map +1 -1
  1195. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.d.ts +0 -1
  1196. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.d.ts.map +1 -1
  1197. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js +23 -25
  1198. package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js.map +1 -1
  1199. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.d.ts +10 -0
  1200. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.d.ts.map +1 -0
  1201. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.js +159 -0
  1202. package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.js.map +1 -0
  1203. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.d.ts +10 -0
  1204. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.d.ts.map +1 -0
  1205. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.js +63 -0
  1206. package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.js.map +1 -0
  1207. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.d.ts +10 -0
  1208. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.d.ts.map +1 -0
  1209. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.js +77 -0
  1210. package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.js.map +1 -0
  1211. package/dist/lib/generated/Entities/Workflow/workflow.form.component.d.ts +0 -1
  1212. package/dist/lib/generated/Entities/Workflow/workflow.form.component.d.ts.map +1 -1
  1213. package/dist/lib/generated/Entities/Workflow/workflow.form.component.js +36 -39
  1214. package/dist/lib/generated/Entities/Workflow/workflow.form.component.js.map +1 -1
  1215. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.d.ts +0 -1
  1216. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.d.ts.map +1 -1
  1217. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js +23 -26
  1218. package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js.map +1 -1
  1219. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.d.ts +0 -1
  1220. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.d.ts.map +1 -1
  1221. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js +25 -29
  1222. package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js.map +1 -1
  1223. package/dist/lib/generated/Entities/Workspace/workspace.form.component.d.ts +0 -1
  1224. package/dist/lib/generated/Entities/Workspace/workspace.form.component.d.ts.map +1 -1
  1225. package/dist/lib/generated/Entities/Workspace/workspace.form.component.js +27 -33
  1226. package/dist/lib/generated/Entities/Workspace/workspace.form.component.js.map +1 -1
  1227. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.d.ts +0 -1
  1228. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.d.ts.map +1 -1
  1229. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js +26 -32
  1230. package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js.map +1 -1
  1231. package/dist/lib/generated/generated-forms.module.d.ts +272 -271
  1232. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  1233. package/dist/lib/generated/generated-forms.module.js +429 -939
  1234. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  1235. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  1236. package/dist/lib/shared/components/template-editor.component.js +167 -164
  1237. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  1238. package/dist/public-api.d.ts +0 -1
  1239. package/dist/public-api.d.ts.map +1 -1
  1240. package/dist/public-api.js +1 -1
  1241. package/dist/public-api.js.map +1 -1
  1242. package/package.json +53 -52
  1243. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.d.ts +0 -109
  1244. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.d.ts.map +0 -1
  1245. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js +0 -2014
  1246. package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js.map +0 -1
  1247. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.d.ts +0 -29
  1248. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.d.ts.map +0 -1
  1249. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.js +0 -198
  1250. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.js.map +0 -1
  1251. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -14
  1252. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.d.ts.map +0 -1
  1253. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.js +0 -98
  1254. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.js.map +0 -1
  1255. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.d.ts +0 -44
  1256. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.d.ts.map +0 -1
  1257. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.js +0 -282
  1258. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.js.map +0 -1
  1259. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.d.ts +0 -35
  1260. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.d.ts.map +0 -1
  1261. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.js +0 -287
  1262. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.js.map +0 -1
  1263. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.d.ts +0 -106
  1264. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.d.ts.map +0 -1
  1265. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.js +0 -951
  1266. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.js.map +0 -1
  1267. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.d.ts +0 -30
  1268. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.d.ts.map +0 -1
  1269. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.js +0 -450
  1270. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.js.map +0 -1
  1271. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.d.ts +0 -25
  1272. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.d.ts.map +0 -1
  1273. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.js +0 -423
  1274. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.js.map +0 -1
  1275. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.d.ts +0 -21
  1276. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.d.ts.map +0 -1
  1277. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.js +0 -182
  1278. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.js.map +0 -1
  1279. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.d.ts +0 -34
  1280. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.d.ts.map +0 -1
  1281. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.js +0 -171
  1282. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.js.map +0 -1
  1283. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.d.ts +0 -17
  1284. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.d.ts.map +0 -1
  1285. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.js +0 -78
  1286. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.js.map +0 -1
  1287. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.d.ts +0 -17
  1288. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.d.ts.map +0 -1
  1289. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.js +0 -11
  1290. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.js.map +0 -1
  1291. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.d.ts +0 -21
  1292. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.d.ts.map +0 -1
  1293. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.js +0 -2
  1294. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.js.map +0 -1
  1295. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.d.ts +0 -33
  1296. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.d.ts.map +0 -1
  1297. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.js +0 -2
  1298. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.js.map +0 -1
  1299. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.d.ts +0 -44
  1300. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.d.ts.map +0 -1
  1301. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.js +0 -166
  1302. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.js.map +0 -1
  1303. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.d.ts +0 -14
  1304. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.d.ts.map +0 -1
  1305. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.js +0 -31
  1306. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.js.map +0 -1
  1307. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.d.ts +0 -63
  1308. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.d.ts.map +0 -1
  1309. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.js +0 -294
  1310. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.js.map +0 -1
  1311. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.d.ts +0 -77
  1312. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.d.ts.map +0 -1
  1313. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.js +0 -408
  1314. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.js.map +0 -1
  1315. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.d.ts +0 -19
  1316. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.d.ts.map +0 -1
  1317. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.js +0 -116
  1318. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.js.map +0 -1
  1319. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.d.ts +0 -25
  1320. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.d.ts.map +0 -1
  1321. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.js +0 -90
  1322. package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.js.map +0 -1
  1323. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.d.ts +0 -52
  1324. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.d.ts.map +0 -1
  1325. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js +0 -500
  1326. package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js.map +0 -1
  1327. package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.d.ts +0 -9
  1328. package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.d.ts.map +0 -1
  1329. package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.js +0 -84
  1330. package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.js.map +0 -1
  1331. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.d.ts +0 -61
  1332. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.d.ts.map +0 -1
  1333. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js +0 -790
  1334. package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js.map +0 -1
@@ -4,39 +4,37 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Component, ChangeDetectionStrategy, HostListener } from '@angular/core';
7
+ import { Component, ChangeDetectionStrategy, HostListener, ViewContainerRef, inject } from '@angular/core';
8
8
  import { Subject, interval } from 'rxjs';
9
9
  import { takeUntil } from 'rxjs/operators';
10
10
  import { CompositeKey, Metadata, RunView } from '@memberjunction/core';
11
11
  import { BaseFormComponent } from '@memberjunction/ng-base-forms';
12
12
  import { RegisterClass } from '@memberjunction/global';
13
- import { SharedService } from '@memberjunction/ng-shared';
13
+ import { SharedService, NavigationService } from '@memberjunction/ng-shared';
14
+ import { ApplicationManager } from '@memberjunction/ng-base-application';
14
15
  import { TestRunFormComponent } from '../../generated/Entities/TestRun/testrun.form.component';
15
- import { TagsHelper } from '@memberjunction/ng-testing';
16
+ import { TestingDialogService, TagsHelper } from '@memberjunction/ng-testing';
16
17
  import { createCopyOnlyToolbar } from '@memberjunction/ng-code-editor';
17
18
  import * as i0 from "@angular/core";
18
- import * as i1 from "@memberjunction/ng-shared";
19
- import * as i2 from "@angular/router";
20
- import * as i3 from "@memberjunction/ng-testing";
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-buttons";
25
- import * as i8 from "@memberjunction/ng-code-editor";
26
- import * as i9 from "./entity-link-pill.component";
19
+ import * as i1 from "@angular/common";
20
+ import * as i2 from "@angular/forms";
21
+ import * as i3 from "@progress/kendo-angular-buttons";
22
+ import * as i4 from "@memberjunction/ng-code-editor";
23
+ import * as i5 from "@memberjunction/ng-testing";
24
+ import * as i6 from "./entity-link-pill.component";
27
25
  const _c0 = () => [1, 2, 3];
28
26
  const _c1 = () => [1, 2];
29
27
  const _c2 = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
30
- function TestRunFormComponentExtended_div_1_Template(rf, ctx) { if (rf & 1) {
28
+ function TestRunFormComponentExtended_Conditional_1_Template(rf, ctx) { if (rf & 1) {
31
29
  const _r1 = i0.ɵɵgetCurrentView();
32
- i0.ɵɵelementStart(0, "div", 65);
33
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.retryLoad()); });
34
- i0.ɵɵelement(1, "i", 66);
30
+ i0.ɵɵelementStart(0, "div", 64);
31
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_1_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.retryLoad()); });
32
+ i0.ɵɵelement(1, "i", 65);
35
33
  i0.ɵɵelementStart(2, "span");
36
34
  i0.ɵɵtext(3);
37
35
  i0.ɵɵelementEnd();
38
- i0.ɵɵelementStart(4, "button", 67);
39
- i0.ɵɵelement(5, "i", 21);
36
+ i0.ɵɵelementStart(4, "button", 66);
37
+ i0.ɵɵelement(5, "i", 20);
40
38
  i0.ɵɵtext(6, " Retry ");
41
39
  i0.ɵɵelementEnd()();
42
40
  } if (rf & 2) {
@@ -44,13 +42,13 @@ function TestRunFormComponentExtended_div_1_Template(rf, ctx) { if (rf & 1) {
44
42
  i0.ɵɵadvance(3);
45
43
  i0.ɵɵtextInterpolate(ctx_r1.error);
46
44
  } }
47
- function TestRunFormComponentExtended_li_10_Template(rf, ctx) { if (rf & 1) {
45
+ function TestRunFormComponentExtended_Conditional_10_Template(rf, ctx) { if (rf & 1) {
48
46
  const _r3 = i0.ɵɵgetCurrentView();
49
47
  i0.ɵɵelementStart(0, "li");
50
- i0.ɵɵelement(1, "i", 9);
48
+ i0.ɵɵelement(1, "i", 8);
51
49
  i0.ɵɵelementStart(2, "a", 4);
52
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_li_10_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openTest()); });
53
- i0.ɵɵelement(3, "i", 68);
50
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_10_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openTest()); });
51
+ i0.ɵɵelement(3, "i", 67);
54
52
  i0.ɵɵelementStart(4, "span", 6);
55
53
  i0.ɵɵtext(5);
56
54
  i0.ɵɵelementEnd()()();
@@ -59,9 +57,9 @@ function TestRunFormComponentExtended_li_10_Template(rf, ctx) { if (rf & 1) {
59
57
  i0.ɵɵadvance(5);
60
58
  i0.ɵɵtextInterpolate(ctx_r1.test.Name);
61
59
  } }
62
- function TestRunFormComponentExtended_span_27_Template(rf, ctx) { if (rf & 1) {
63
- i0.ɵɵelementStart(0, "span", 69);
64
- i0.ɵɵelement(1, "i", 68);
60
+ function TestRunFormComponentExtended_Conditional_27_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelementStart(0, "span", 17);
62
+ i0.ɵɵelement(1, "i", 67);
65
63
  i0.ɵɵtext(2);
66
64
  i0.ɵɵelementEnd();
67
65
  } if (rf & 2) {
@@ -69,33 +67,33 @@ function TestRunFormComponentExtended_span_27_Template(rf, ctx) { if (rf & 1) {
69
67
  i0.ɵɵadvance(2);
70
68
  i0.ɵɵtextInterpolate1(" ", ctx_r1.test.Type, " ");
71
69
  } }
72
- function TestRunFormComponentExtended_span_28_Template(rf, ctx) { if (rf & 1) {
73
- i0.ɵɵelementStart(0, "span", 69);
74
- i0.ɵɵelement(1, "i", 70);
70
+ function TestRunFormComponentExtended_Conditional_28_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "span", 17);
72
+ i0.ɵɵelement(1, "i", 68);
75
73
  i0.ɵɵtext(2, " Auto-refreshing ");
76
74
  i0.ɵɵelementEnd();
77
75
  } }
78
- function TestRunFormComponentExtended_div_66_Template(rf, ctx) { if (rf & 1) {
79
- i0.ɵɵelementStart(0, "div", 71);
80
- i0.ɵɵelement(1, "div", 72);
76
+ function TestRunFormComponentExtended_Conditional_66_Template(rf, ctx) { if (rf & 1) {
77
+ i0.ɵɵelementStart(0, "div", 34);
78
+ i0.ɵɵelement(1, "div", 69);
81
79
  i0.ɵɵelementEnd();
82
80
  } if (rf & 2) {
83
81
  const ctx_r1 = i0.ɵɵnextContext();
84
82
  i0.ɵɵadvance();
85
83
  i0.ɵɵstyleProp("width", ctx_r1.getScorePercentage(), "%")("background-color", ctx_r1.getStatusColor());
86
84
  } }
87
- function TestRunFormComponentExtended_div_75_Template(rf, ctx) { if (rf & 1) {
88
- i0.ɵɵelementStart(0, "div", 71);
89
- i0.ɵɵelement(1, "div", 72);
85
+ function TestRunFormComponentExtended_Conditional_75_Template(rf, ctx) { if (rf & 1) {
86
+ i0.ɵɵelementStart(0, "div", 34);
87
+ i0.ɵɵelement(1, "div", 69);
90
88
  i0.ɵɵelementEnd();
91
89
  } if (rf & 2) {
92
90
  const ctx_r1 = i0.ɵɵnextContext();
93
91
  i0.ɵɵadvance();
94
92
  i0.ɵɵstyleProp("width", ctx_r1.getPassRatePercentage(), "%")("background-color", ctx_r1.getStatusColor());
95
93
  } }
96
- function TestRunFormComponentExtended_div_84_span_1_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵelementStart(0, "span", 77);
98
- i0.ɵɵelement(1, "i", 78);
94
+ function TestRunFormComponentExtended_Conditional_84_Conditional_1_Template(rf, ctx) { if (rf & 1) {
95
+ i0.ɵɵelementStart(0, "span", 70);
96
+ i0.ɵɵelement(1, "i", 73);
99
97
  i0.ɵɵtext(2);
100
98
  i0.ɵɵelementEnd();
101
99
  } if (rf & 2) {
@@ -103,11 +101,11 @@ function TestRunFormComponentExtended_div_84_span_1_Template(rf, ctx) { if (rf &
103
101
  i0.ɵɵadvance(2);
104
102
  i0.ɵɵtextInterpolate1(" ", ctx_r1.record.RunByUser, " ");
105
103
  } }
106
- function TestRunFormComponentExtended_div_84_span_2_Template(rf, ctx) { if (rf & 1) {
104
+ function TestRunFormComponentExtended_Conditional_84_Conditional_2_Template(rf, ctx) { if (rf & 1) {
107
105
  const _r4 = i0.ɵɵgetCurrentView();
108
- i0.ɵɵelementStart(0, "span", 79);
109
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_84_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestSuiteRun()); });
110
- i0.ɵɵelement(1, "i", 80);
106
+ i0.ɵɵelementStart(0, "span", 74);
107
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_84_Conditional_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestSuiteRun()); });
108
+ i0.ɵɵelement(1, "i", 75);
111
109
  i0.ɵɵtext(2);
112
110
  i0.ɵɵelementEnd();
113
111
  } if (rf & 2) {
@@ -115,27 +113,29 @@ function TestRunFormComponentExtended_div_84_span_2_Template(rf, ctx) { if (rf &
115
113
  i0.ɵɵadvance(2);
116
114
  i0.ɵɵtextInterpolate1(" Part of Suite Run (Seq: ", ctx_r1.record.Sequence, ") ");
117
115
  } }
118
- function TestRunFormComponentExtended_div_84_mj_entity_link_pill_3_Template(rf, ctx) { if (rf & 1) {
119
- i0.ɵɵelement(0, "mj-entity-link-pill", 81);
116
+ function TestRunFormComponentExtended_Conditional_84_Conditional_3_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelement(0, "mj-entity-link-pill", 72);
120
118
  } if (rf & 2) {
121
119
  const ctx_r1 = i0.ɵɵnextContext(2);
122
120
  i0.ɵɵproperty("entityName", ctx_r1.record.TargetLogEntity)("recordId", ctx_r1.record.TargetLogID);
123
121
  } }
124
- function TestRunFormComponentExtended_div_84_Template(rf, ctx) { if (rf & 1) {
125
- i0.ɵɵelementStart(0, "div", 73);
126
- i0.ɵɵtemplate(1, TestRunFormComponentExtended_div_84_span_1_Template, 3, 1, "span", 74)(2, TestRunFormComponentExtended_div_84_span_2_Template, 3, 1, "span", 75)(3, TestRunFormComponentExtended_div_84_mj_entity_link_pill_3_Template, 1, 2, "mj-entity-link-pill", 76);
122
+ function TestRunFormComponentExtended_Conditional_84_Template(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵelementStart(0, "div", 37);
124
+ i0.ɵɵconditionalCreate(1, TestRunFormComponentExtended_Conditional_84_Conditional_1_Template, 3, 1, "span", 70);
125
+ i0.ɵɵconditionalCreate(2, TestRunFormComponentExtended_Conditional_84_Conditional_2_Template, 3, 1, "span", 71);
126
+ i0.ɵɵconditionalCreate(3, TestRunFormComponentExtended_Conditional_84_Conditional_3_Template, 1, 2, "mj-entity-link-pill", 72);
127
127
  i0.ɵɵelementEnd();
128
128
  } if (rf & 2) {
129
129
  const ctx_r1 = i0.ɵɵnextContext();
130
130
  i0.ɵɵadvance();
131
- i0.ɵɵproperty("ngIf", ctx_r1.record.RunByUser);
131
+ i0.ɵɵconditional(ctx_r1.record.RunByUser ? 1 : -1);
132
132
  i0.ɵɵadvance();
133
- i0.ɵɵproperty("ngIf", ctx_r1.testSuiteRun);
133
+ i0.ɵɵconditional(ctx_r1.testSuiteRun ? 2 : -1);
134
134
  i0.ɵɵadvance();
135
- i0.ɵɵproperty("ngIf", ctx_r1.record.TargetLogEntityID && ctx_r1.record.TargetLogID);
135
+ i0.ɵɵconditional(ctx_r1.record.TargetLogEntityID && ctx_r1.record.TargetLogID ? 3 : -1);
136
136
  } }
137
- function TestRunFormComponentExtended_div_85_div_4_span_1_Template(rf, ctx) { if (rf & 1) {
138
- i0.ɵɵelementStart(0, "span", 92);
137
+ function TestRunFormComponentExtended_Conditional_85_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
138
+ i0.ɵɵelementStart(0, "span", 83);
139
139
  i0.ɵɵtext(1);
140
140
  i0.ɵɵelementEnd();
141
141
  } if (rf & 2) {
@@ -143,91 +143,93 @@ function TestRunFormComponentExtended_div_85_div_4_span_1_Template(rf, ctx) { if
143
143
  i0.ɵɵadvance();
144
144
  i0.ɵɵtextInterpolate(tag_r6);
145
145
  } }
146
- function TestRunFormComponentExtended_div_85_div_4_Template(rf, ctx) { if (rf & 1) {
147
- i0.ɵɵelementStart(0, "div", 90);
148
- i0.ɵɵtemplate(1, TestRunFormComponentExtended_div_85_div_4_span_1_Template, 2, 1, "span", 91);
146
+ function TestRunFormComponentExtended_Conditional_85_Conditional_4_Template(rf, ctx) { if (rf & 1) {
147
+ i0.ɵɵelementStart(0, "div", 79);
148
+ i0.ɵɵrepeaterCreate(1, TestRunFormComponentExtended_Conditional_85_Conditional_4_For_2_Template, 2, 1, "span", 83, i0.ɵɵrepeaterTrackByIdentity);
149
149
  i0.ɵɵelementEnd();
150
150
  } if (rf & 2) {
151
151
  const ctx_r1 = i0.ɵɵnextContext(2);
152
152
  i0.ɵɵadvance();
153
- i0.ɵɵproperty("ngForOf", ctx_r1.tags);
153
+ i0.ɵɵrepeater(ctx_r1.tags);
154
154
  } }
155
- function TestRunFormComponentExtended_div_85_span_5_Template(rf, ctx) { if (rf & 1) {
156
- i0.ɵɵelementStart(0, "span", 93);
155
+ function TestRunFormComponentExtended_Conditional_85_Conditional_5_Template(rf, ctx) { if (rf & 1) {
156
+ i0.ɵɵelementStart(0, "span", 80);
157
157
  i0.ɵɵtext(1, "No tags");
158
158
  i0.ɵɵelementEnd();
159
159
  } }
160
- function TestRunFormComponentExtended_div_85_Template(rf, ctx) { if (rf & 1) {
160
+ function TestRunFormComponentExtended_Conditional_85_Template(rf, ctx) { if (rf & 1) {
161
161
  const _r5 = i0.ɵɵgetCurrentView();
162
- i0.ɵɵelementStart(0, "div", 82)(1, "div", 83)(2, "span", 84);
163
- i0.ɵɵelement(3, "i", 85);
164
- i0.ɵɵelementEnd();
165
- i0.ɵɵtemplate(4, TestRunFormComponentExtended_div_85_div_4_Template, 2, 1, "div", 86)(5, TestRunFormComponentExtended_div_85_span_5_Template, 2, 0, "span", 87);
166
- i0.ɵɵelementStart(6, "button", 88);
167
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_85_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.startEditingTags()); });
168
- i0.ɵɵelement(7, "i", 89);
162
+ i0.ɵɵelementStart(0, "div", 38)(1, "div", 76)(2, "span", 77);
163
+ i0.ɵɵelement(3, "i", 78);
164
+ i0.ɵɵelementEnd();
165
+ i0.ɵɵconditionalCreate(4, TestRunFormComponentExtended_Conditional_85_Conditional_4_Template, 3, 0, "div", 79);
166
+ i0.ɵɵconditionalCreate(5, TestRunFormComponentExtended_Conditional_85_Conditional_5_Template, 2, 0, "span", 80);
167
+ i0.ɵɵelementStart(6, "button", 81);
168
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_85_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.startEditingTags()); });
169
+ i0.ɵɵelement(7, "i", 82);
169
170
  i0.ɵɵtext(8, " Add ");
170
171
  i0.ɵɵelementEnd()()();
171
172
  } if (rf & 2) {
172
173
  const ctx_r1 = i0.ɵɵnextContext();
173
174
  i0.ɵɵadvance(4);
174
- i0.ɵɵproperty("ngIf", ctx_r1.tags.length > 0);
175
+ i0.ɵɵconditional(ctx_r1.tags.length > 0 ? 4 : -1);
175
176
  i0.ɵɵadvance();
176
- i0.ɵɵproperty("ngIf", ctx_r1.tags.length === 0);
177
+ i0.ɵɵconditional(ctx_r1.tags.length === 0 ? 5 : -1);
177
178
  } }
178
- function TestRunFormComponentExtended_div_86_span_7_Template(rf, ctx) { if (rf & 1) {
179
+ function TestRunFormComponentExtended_Conditional_86_For_8_Template(rf, ctx) { if (rf & 1) {
179
180
  const _r8 = i0.ɵɵgetCurrentView();
180
- i0.ɵɵelementStart(0, "span", 108);
181
+ i0.ɵɵelementStart(0, "span", 88);
181
182
  i0.ɵɵtext(1);
182
- i0.ɵɵelementStart(2, "button", 109);
183
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_86_span_7_Template_button_click_2_listener() { const tag_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.removeTag(tag_r9)); });
184
- i0.ɵɵelement(3, "i", 110);
183
+ i0.ɵɵelementStart(2, "button", 97);
184
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_86_For_8_Template_button_click_2_listener() { const tag_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.removeTag(tag_r9)); });
185
+ i0.ɵɵelement(3, "i", 98);
185
186
  i0.ɵɵelementEnd()();
186
187
  } if (rf & 2) {
187
188
  const tag_r9 = ctx.$implicit;
188
189
  i0.ɵɵadvance();
189
190
  i0.ɵɵtextInterpolate1(" ", tag_r9, " ");
190
191
  } }
191
- function TestRunFormComponentExtended_div_86_span_8_Template(rf, ctx) { if (rf & 1) {
192
- i0.ɵɵelementStart(0, "span", 111);
192
+ function TestRunFormComponentExtended_Conditional_86_Conditional_9_Template(rf, ctx) { if (rf & 1) {
193
+ i0.ɵɵelementStart(0, "span", 89);
193
194
  i0.ɵɵtext(1, "No tags yet");
194
195
  i0.ɵɵelementEnd();
195
196
  } }
196
- function TestRunFormComponentExtended_div_86_i_15_Template(rf, ctx) { if (rf & 1) {
197
- i0.ɵɵelement(0, "i", 112);
197
+ function TestRunFormComponentExtended_Conditional_86_Conditional_16_Template(rf, ctx) { if (rf & 1) {
198
+ i0.ɵɵelement(0, "i", 95);
198
199
  } }
199
- function TestRunFormComponentExtended_div_86_Template(rf, ctx) { if (rf & 1) {
200
+ function TestRunFormComponentExtended_Conditional_86_Template(rf, ctx) { if (rf & 1) {
200
201
  const _r7 = i0.ɵɵgetCurrentView();
201
- i0.ɵɵelementStart(0, "div", 94)(1, "div", 95)(2, "span", 96);
202
- i0.ɵɵelement(3, "i", 85);
202
+ i0.ɵɵelementStart(0, "div", 39)(1, "div", 84)(2, "span", 85);
203
+ i0.ɵɵelement(3, "i", 78);
203
204
  i0.ɵɵtext(4, " Edit Tags");
204
205
  i0.ɵɵelementEnd()();
205
- i0.ɵɵelementStart(5, "div", 97)(6, "div", 98);
206
- i0.ɵɵtemplate(7, TestRunFormComponentExtended_div_86_span_7_Template, 4, 1, "span", 99)(8, TestRunFormComponentExtended_div_86_span_8_Template, 2, 0, "span", 100);
206
+ i0.ɵɵelementStart(5, "div", 86)(6, "div", 87);
207
+ i0.ɵɵrepeaterCreate(7, TestRunFormComponentExtended_Conditional_86_For_8_Template, 4, 1, "span", 88, i0.ɵɵrepeaterTrackByIdentity);
208
+ i0.ɵɵconditionalCreate(9, TestRunFormComponentExtended_Conditional_86_Conditional_9_Template, 2, 0, "span", 89);
207
209
  i0.ɵɵelementEnd();
208
- i0.ɵɵelementStart(9, "div", 101)(10, "input", 102);
209
- i0.ɵɵtwoWayListener("ngModelChange", function TestRunFormComponentExtended_div_86_Template_input_ngModelChange_10_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newTag, $event) || (ctx_r1.newTag = $event); return i0.ɵɵresetView($event); });
210
- i0.ɵɵlistener("keyup.enter", function TestRunFormComponentExtended_div_86_Template_input_keyup_enter_10_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
210
+ i0.ɵɵelementStart(10, "div", 90)(11, "input", 91);
211
+ i0.ɵɵtwoWayListener("ngModelChange", function TestRunFormComponentExtended_Conditional_86_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newTag, $event) || (ctx_r1.newTag = $event); return i0.ɵɵresetView($event); });
212
+ i0.ɵɵlistener("keyup.enter", function TestRunFormComponentExtended_Conditional_86_Template_input_keyup_enter_11_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
211
213
  i0.ɵɵelementEnd();
212
- i0.ɵɵelementStart(11, "button", 103);
213
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_86_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
214
- i0.ɵɵelement(12, "i", 89);
214
+ i0.ɵɵelementStart(12, "button", 92);
215
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_86_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
216
+ i0.ɵɵelement(13, "i", 82);
215
217
  i0.ɵɵelementEnd()()();
216
- i0.ɵɵelementStart(13, "div", 104)(14, "button", 105);
217
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_86_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveTags()); });
218
- i0.ɵɵtemplate(15, TestRunFormComponentExtended_div_86_i_15_Template, 1, 0, "i", 106);
219
- i0.ɵɵtext(16);
220
- i0.ɵɵelementEnd();
221
- i0.ɵɵelementStart(17, "button", 107);
222
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_86_Template_button_click_17_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelEditingTags()); });
223
- i0.ɵɵtext(18, "Cancel");
218
+ i0.ɵɵelementStart(14, "div", 93)(15, "button", 94);
219
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_86_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveTags()); });
220
+ i0.ɵɵconditionalCreate(16, TestRunFormComponentExtended_Conditional_86_Conditional_16_Template, 1, 0, "i", 95);
221
+ i0.ɵɵtext(17);
222
+ i0.ɵɵelementEnd();
223
+ i0.ɵɵelementStart(18, "button", 96);
224
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_86_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelEditingTags()); });
225
+ i0.ɵɵtext(19, "Cancel");
224
226
  i0.ɵɵelementEnd()()();
225
227
  } if (rf & 2) {
226
228
  const ctx_r1 = i0.ɵɵnextContext();
227
229
  i0.ɵɵadvance(7);
228
- i0.ɵɵproperty("ngForOf", ctx_r1.tags);
229
- i0.ɵɵadvance();
230
- i0.ɵɵproperty("ngIf", ctx_r1.tags.length === 0);
230
+ i0.ɵɵrepeater(ctx_r1.tags);
231
+ i0.ɵɵadvance(2);
232
+ i0.ɵɵconditional(ctx_r1.tags.length === 0 ? 9 : -1);
231
233
  i0.ɵɵadvance(2);
232
234
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.newTag);
233
235
  i0.ɵɵadvance();
@@ -235,12 +237,12 @@ function TestRunFormComponentExtended_div_86_Template(rf, ctx) { if (rf & 1) {
235
237
  i0.ɵɵadvance(3);
236
238
  i0.ɵɵproperty("disabled", ctx_r1.savingTags);
237
239
  i0.ɵɵadvance();
238
- i0.ɵɵproperty("ngIf", ctx_r1.savingTags);
240
+ i0.ɵɵconditional(ctx_r1.savingTags ? 16 : -1);
239
241
  i0.ɵɵadvance();
240
242
  i0.ɵɵtextInterpolate1(" ", ctx_r1.savingTags ? "Saving..." : "Save", " ");
241
243
  } }
242
- function TestRunFormComponentExtended_span_101_Template(rf, ctx) { if (rf & 1) {
243
- i0.ɵɵelementStart(0, "span", 113);
244
+ function TestRunFormComponentExtended_Conditional_101_Template(rf, ctx) { if (rf & 1) {
245
+ i0.ɵɵelementStart(0, "span", 48);
244
246
  i0.ɵɵtext(1);
245
247
  i0.ɵɵelementEnd();
246
248
  } if (rf & 2) {
@@ -248,8 +250,8 @@ function TestRunFormComponentExtended_span_101_Template(rf, ctx) { if (rf & 1) {
248
250
  i0.ɵɵadvance();
249
251
  i0.ɵɵtextInterpolate(ctx_r1.aiAgentRuns.length + ctx_r1.aiPromptRuns.length);
250
252
  } }
251
- function TestRunFormComponentExtended_span_106_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelementStart(0, "span", 113);
253
+ function TestRunFormComponentExtended_Conditional_106_Template(rf, ctx) { if (rf & 1) {
254
+ i0.ɵɵelementStart(0, "span", 48);
253
255
  i0.ɵɵtext(1);
254
256
  i0.ɵɵelementEnd();
255
257
  } if (rf & 2) {
@@ -257,11 +259,11 @@ function TestRunFormComponentExtended_span_106_Template(rf, ctx) { if (rf & 1) {
257
259
  i0.ɵɵadvance();
258
260
  i0.ɵɵtextInterpolate(ctx_r1.feedbacks.length);
259
261
  } }
260
- function TestRunFormComponentExtended_button_111_Template(rf, ctx) { if (rf & 1) {
262
+ function TestRunFormComponentExtended_Conditional_111_Template(rf, ctx) { if (rf & 1) {
261
263
  const _r10 = i0.ɵɵgetCurrentView();
262
- i0.ɵɵelementStart(0, "button", 114);
263
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_button_111_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeTab("log")); });
264
- i0.ɵɵelement(1, "i", 115);
264
+ i0.ɵɵelementStart(0, "button", 99);
265
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_111_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.changeTab("log")); });
266
+ i0.ɵɵelement(1, "i", 100);
265
267
  i0.ɵɵelementStart(2, "span");
266
268
  i0.ɵɵtext(3, "Log");
267
269
  i0.ɵɵelementEnd()();
@@ -270,11 +272,11 @@ function TestRunFormComponentExtended_button_111_Template(rf, ctx) { if (rf & 1)
270
272
  i0.ɵɵclassProp("active", ctx_r1.activeTab === "log");
271
273
  i0.ɵɵattribute("aria-selected", ctx_r1.activeTab === "log");
272
274
  } }
273
- function TestRunFormComponentExtended_div_113_div_5_Template(rf, ctx) { if (rf & 1) {
274
- i0.ɵɵelement(0, "div", 137);
275
+ function TestRunFormComponentExtended_Conditional_113_Conditional_5_Template(rf, ctx) { if (rf & 1) {
276
+ i0.ɵɵelement(0, "div", 104);
275
277
  } }
276
- function TestRunFormComponentExtended_div_113_div_16_div_8_div_6_Template(rf, ctx) { if (rf & 1) {
277
- i0.ɵɵelementStart(0, "div", 150);
278
+ function TestRunFormComponentExtended_Conditional_113_Conditional_16_For_9_Conditional_6_Template(rf, ctx) { if (rf & 1) {
279
+ i0.ɵɵelementStart(0, "div", 130);
278
280
  i0.ɵɵtext(1);
279
281
  i0.ɵɵelementEnd();
280
282
  } if (rf & 2) {
@@ -282,8 +284,8 @@ function TestRunFormComponentExtended_div_113_div_16_div_8_div_6_Template(rf, ct
282
284
  i0.ɵɵadvance();
283
285
  i0.ɵɵtextInterpolate(check_r12.message);
284
286
  } }
285
- function TestRunFormComponentExtended_div_113_div_16_div_8_div_7_Template(rf, ctx) { if (rf & 1) {
286
- i0.ɵɵelementStart(0, "div", 151)(1, "span", 152);
287
+ function TestRunFormComponentExtended_Conditional_113_Conditional_16_For_9_Conditional_7_Template(rf, ctx) { if (rf & 1) {
288
+ i0.ɵɵelementStart(0, "div", 131)(1, "span", 132);
287
289
  i0.ɵɵtext(2, "Weight:");
288
290
  i0.ɵɵelementEnd();
289
291
  i0.ɵɵtext(3);
@@ -293,90 +295,90 @@ function TestRunFormComponentExtended_div_113_div_16_div_8_div_7_Template(rf, ct
293
295
  i0.ɵɵadvance(3);
294
296
  i0.ɵɵtextInterpolate1(" ", check_r12.weight, " ");
295
297
  } }
296
- function TestRunFormComponentExtended_div_113_div_16_div_8_Template(rf, ctx) { if (rf & 1) {
297
- i0.ɵɵelementStart(0, "div", 143)(1, "div", 144);
298
- i0.ɵɵelement(2, "i", 145);
298
+ function TestRunFormComponentExtended_Conditional_113_Conditional_16_For_9_Template(rf, ctx) { if (rf & 1) {
299
+ i0.ɵɵelementStart(0, "div", 125)(1, "div", 126);
300
+ i0.ɵɵelement(2, "i", 127);
299
301
  i0.ɵɵelementEnd();
300
- i0.ɵɵelementStart(3, "div", 146)(4, "div", 147);
302
+ i0.ɵɵelementStart(3, "div", 128)(4, "div", 129);
301
303
  i0.ɵɵtext(5);
302
304
  i0.ɵɵelementEnd();
303
- i0.ɵɵtemplate(6, TestRunFormComponentExtended_div_113_div_16_div_8_div_6_Template, 2, 1, "div", 148);
305
+ i0.ɵɵconditionalCreate(6, TestRunFormComponentExtended_Conditional_113_Conditional_16_For_9_Conditional_6_Template, 2, 1, "div", 130);
304
306
  i0.ɵɵelementEnd();
305
- i0.ɵɵtemplate(7, TestRunFormComponentExtended_div_113_div_16_div_8_div_7_Template, 4, 1, "div", 149);
307
+ i0.ɵɵconditionalCreate(7, TestRunFormComponentExtended_Conditional_113_Conditional_16_For_9_Conditional_7_Template, 4, 1, "div", 131);
306
308
  i0.ɵɵelementEnd();
307
309
  } if (rf & 2) {
308
310
  const check_r12 = ctx.$implicit;
309
- const i_r13 = ctx.index;
310
- i0.ɵɵstyleProp("animation-delay", i_r13 * 50, "ms");
311
+ const ɵ$index_375_r13 = ctx.$index;
312
+ i0.ɵɵstyleProp("animation-delay", ɵ$index_375_r13 * 50, "ms");
311
313
  i0.ɵɵclassProp("passed", check_r12.passed)("failed", !check_r12.passed);
312
314
  i0.ɵɵadvance(2);
313
315
  i0.ɵɵclassProp("fa-check-circle", check_r12.passed)("fa-times-circle", !check_r12.passed);
314
316
  i0.ɵɵadvance(3);
315
317
  i0.ɵɵtextInterpolate(check_r12.name);
316
318
  i0.ɵɵadvance();
317
- i0.ɵɵproperty("ngIf", check_r12.message);
319
+ i0.ɵɵconditional(check_r12.message ? 6 : -1);
318
320
  i0.ɵɵadvance();
319
- i0.ɵɵproperty("ngIf", check_r12.weight);
321
+ i0.ɵɵconditional(check_r12.weight ? 7 : -1);
320
322
  } }
321
- function TestRunFormComponentExtended_div_113_div_16_Template(rf, ctx) { if (rf & 1) {
322
- i0.ɵɵelementStart(0, "div", 138)(1, "div", 128)(2, "h3");
323
- i0.ɵɵelement(3, "i", 139);
323
+ function TestRunFormComponentExtended_Conditional_113_Conditional_16_Template(rf, ctx) { if (rf & 1) {
324
+ i0.ɵɵelementStart(0, "div", 110)(1, "div", 112)(2, "h3");
325
+ i0.ɵɵelement(3, "i", 121);
324
326
  i0.ɵɵtext(4, " Check Results");
325
327
  i0.ɵɵelementEnd();
326
- i0.ɵɵelementStart(5, "span", 140);
328
+ i0.ɵɵelementStart(5, "span", 122);
327
329
  i0.ɵɵtext(6);
328
330
  i0.ɵɵelementEnd()();
329
- i0.ɵɵelementStart(7, "div", 141);
330
- i0.ɵɵtemplate(8, TestRunFormComponentExtended_div_113_div_16_div_8_Template, 8, 13, "div", 142);
331
+ i0.ɵɵelementStart(7, "div", 123);
332
+ i0.ɵɵrepeaterCreate(8, TestRunFormComponentExtended_Conditional_113_Conditional_16_For_9_Template, 8, 13, "div", 124, i0.ɵɵrepeaterTrackByIdentity);
331
333
  i0.ɵɵelementEnd()();
332
334
  } if (rf & 2) {
333
335
  const ctx_r1 = i0.ɵɵnextContext(2);
334
336
  i0.ɵɵadvance(6);
335
337
  i0.ɵɵtextInterpolate2("", ctx_r1.record.PassedChecks, " passed, ", ctx_r1.record.FailedChecks, " failed");
336
338
  i0.ɵɵadvance(2);
337
- i0.ɵɵproperty("ngForOf", ctx_r1.getCheckResults());
339
+ i0.ɵɵrepeater(ctx_r1.getCheckResults());
338
340
  } }
339
- function TestRunFormComponentExtended_div_113_Template(rf, ctx) { if (rf & 1) {
341
+ function TestRunFormComponentExtended_Conditional_113_Template(rf, ctx) { if (rf & 1) {
340
342
  const _r11 = i0.ɵɵgetCurrentView();
341
- i0.ɵɵelementStart(0, "div", 116)(1, "div", 117)(2, "div", 118)(3, "div", 119);
342
- i0.ɵɵelement(4, "i", 13);
343
+ i0.ɵɵelementStart(0, "div", 55)(1, "div", 101)(2, "div", 102)(3, "div", 103);
344
+ i0.ɵɵelement(4, "i", 12);
343
345
  i0.ɵɵelementEnd();
344
- i0.ɵɵtemplate(5, TestRunFormComponentExtended_div_113_div_5_Template, 1, 0, "div", 120);
346
+ i0.ɵɵconditionalCreate(5, TestRunFormComponentExtended_Conditional_113_Conditional_5_Template, 1, 0, "div", 104);
345
347
  i0.ɵɵelementEnd();
346
- i0.ɵɵelementStart(6, "div", 121)(7, "h2");
348
+ i0.ɵɵelementStart(6, "div", 105)(7, "h2");
347
349
  i0.ɵɵtext(8);
348
350
  i0.ɵɵelementEnd();
349
- i0.ɵɵelementStart(9, "div", 122)(10, "span", 123);
351
+ i0.ɵɵelementStart(9, "div", 106)(10, "span", 107);
350
352
  i0.ɵɵtext(11);
351
353
  i0.ɵɵelementEnd();
352
- i0.ɵɵelementStart(12, "span", 124);
354
+ i0.ɵɵelementStart(12, "span", 108);
353
355
  i0.ɵɵtext(13, "|");
354
356
  i0.ɵɵelementEnd();
355
- i0.ɵɵelementStart(14, "span", 125);
357
+ i0.ɵɵelementStart(14, "span", 109);
356
358
  i0.ɵɵtext(15);
357
359
  i0.ɵɵelementEnd()()()();
358
- i0.ɵɵtemplate(16, TestRunFormComponentExtended_div_113_div_16_Template, 9, 3, "div", 126);
359
- i0.ɵɵelementStart(17, "div", 127)(18, "div", 128)(19, "h3");
360
- i0.ɵɵelement(20, "i", 129);
360
+ i0.ɵɵconditionalCreate(16, TestRunFormComponentExtended_Conditional_113_Conditional_16_Template, 10, 2, "div", 110);
361
+ i0.ɵɵelementStart(17, "div", 111)(18, "div", 112)(19, "h3");
362
+ i0.ɵɵelement(20, "i", 113);
361
363
  i0.ɵɵtext(21, " Data Comparison");
362
364
  i0.ɵɵelementEnd()();
363
- i0.ɵɵelementStart(22, "div", 130)(23, "button", 131);
364
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_113_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setComparisonView("input")); });
365
- i0.ɵɵelement(24, "i", 132);
365
+ i0.ɵɵelementStart(22, "div", 114)(23, "button", 115);
366
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_113_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setComparisonView("input")); });
367
+ i0.ɵɵelement(24, "i", 116);
366
368
  i0.ɵɵtext(25, " Input ");
367
369
  i0.ɵɵelementEnd();
368
- i0.ɵɵelementStart(26, "button", 131);
369
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_113_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setComparisonView("expected")); });
370
- i0.ɵɵelement(27, "i", 133);
370
+ i0.ɵɵelementStart(26, "button", 115);
371
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_113_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setComparisonView("expected")); });
372
+ i0.ɵɵelement(27, "i", 117);
371
373
  i0.ɵɵtext(28, " Expected ");
372
374
  i0.ɵɵelementEnd();
373
- i0.ɵɵelementStart(29, "button", 131);
374
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_113_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setComparisonView("actual")); });
375
- i0.ɵɵelement(30, "i", 134);
375
+ i0.ɵɵelementStart(29, "button", 115);
376
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_113_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setComparisonView("actual")); });
377
+ i0.ɵɵelement(30, "i", 118);
376
378
  i0.ɵɵtext(31, " Actual ");
377
379
  i0.ɵɵelementEnd()();
378
- i0.ɵɵelementStart(32, "div", 135);
379
- i0.ɵɵelement(33, "mj-code-editor", 136);
380
+ i0.ɵɵelementStart(32, "div", 119);
381
+ i0.ɵɵelement(33, "mj-code-editor", 120);
380
382
  i0.ɵɵelementEnd()()();
381
383
  } if (rf & 2) {
382
384
  const ctx_r1 = i0.ɵɵnextContext();
@@ -386,15 +388,15 @@ function TestRunFormComponentExtended_div_113_Template(rf, ctx) { if (rf & 1) {
386
388
  i0.ɵɵadvance(3);
387
389
  i0.ɵɵproperty("ngClass", ctx_r1.getStatusIcon());
388
390
  i0.ɵɵadvance();
389
- i0.ɵɵproperty("ngIf", ctx_r1.record.Status === "Running");
391
+ i0.ɵɵconditional(ctx_r1.record.Status === "Running" ? 5 : -1);
390
392
  i0.ɵɵadvance(3);
391
- i0.ɵɵtextInterpolate1("TEST ", ctx_r1.record.Status.toUpperCase(), "");
393
+ i0.ɵɵtextInterpolate1("TEST ", ctx_r1.record.Status.toUpperCase());
392
394
  i0.ɵɵadvance(3);
393
- i0.ɵɵtextInterpolate1("Score: ", ctx_r1.formatScore(ctx_r1.record.Score), "");
395
+ i0.ɵɵtextInterpolate1("Score: ", ctx_r1.formatScore(ctx_r1.record.Score));
394
396
  i0.ɵɵadvance(4);
395
397
  i0.ɵɵtextInterpolate2("", ctx_r1.record.PassedChecks, " of ", ctx_r1.record.TotalChecks, " checks passed");
396
398
  i0.ɵɵadvance();
397
- i0.ɵɵproperty("ngIf", ctx_r1.getCheckResults().length > 0);
399
+ i0.ɵɵconditional(ctx_r1.getCheckResults().length > 0 ? 16 : -1);
398
400
  i0.ɵɵadvance(7);
399
401
  i0.ɵɵclassProp("active", ctx_r1.comparisonView === "input");
400
402
  i0.ɵɵadvance(3);
@@ -404,102 +406,103 @@ function TestRunFormComponentExtended_div_113_Template(rf, ctx) { if (rf & 1) {
404
406
  i0.ɵɵadvance(4);
405
407
  i0.ɵɵproperty("value", ctx_r1.getComparisonData())("readonly", true)("toolbar", ctx_r1.jsonToolbar)("lineWrapping", true);
406
408
  } }
407
- function TestRunFormComponentExtended_div_114_div_10_Template(rf, ctx) { if (rf & 1) {
409
+ function TestRunFormComponentExtended_Conditional_114_Conditional_10_Template(rf, ctx) { if (rf & 1) {
408
410
  const _r14 = i0.ɵɵgetCurrentView();
409
- i0.ɵɵelementStart(0, "div", 169);
410
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_114_div_10_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTest()); });
411
- i0.ɵɵelementStart(1, "div", 156);
412
- i0.ɵɵelement(2, "i", 68);
411
+ i0.ɵɵelementStart(0, "div", 148);
412
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_114_Conditional_10_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTest()); });
413
+ i0.ɵɵelementStart(1, "div", 135);
414
+ i0.ɵɵelement(2, "i", 67);
413
415
  i0.ɵɵelementEnd();
414
- i0.ɵɵelementStart(3, "div", 158)(4, "div", 159);
416
+ i0.ɵɵelementStart(3, "div", 137)(4, "div", 138);
415
417
  i0.ɵɵtext(5, "Test");
416
418
  i0.ɵɵelementEnd();
417
- i0.ɵɵelementStart(6, "div", 170);
419
+ i0.ɵɵelementStart(6, "div", 149);
418
420
  i0.ɵɵtext(7);
419
421
  i0.ɵɵelementEnd()();
420
- i0.ɵɵelement(8, "i", 171);
422
+ i0.ɵɵelement(8, "i", 150);
421
423
  i0.ɵɵelementEnd();
422
424
  } if (rf & 2) {
423
425
  const ctx_r1 = i0.ɵɵnextContext(2);
424
426
  i0.ɵɵadvance(7);
425
427
  i0.ɵɵtextInterpolate(ctx_r1.test.Name);
426
428
  } }
427
- function TestRunFormComponentExtended_div_114_div_45_Template(rf, ctx) { if (rf & 1) {
428
- i0.ɵɵelementStart(0, "div", 172)(1, "div", 173)(2, "h3");
429
- i0.ɵɵelement(3, "i", 66);
429
+ function TestRunFormComponentExtended_Conditional_114_Conditional_45_Template(rf, ctx) { if (rf & 1) {
430
+ i0.ɵɵelementStart(0, "div", 146)(1, "div", 151)(2, "h3");
431
+ i0.ɵɵelement(3, "i", 65);
430
432
  i0.ɵɵtext(4, " Error Message");
431
433
  i0.ɵɵelementEnd()();
432
- i0.ɵɵelementStart(5, "div", 174);
433
- i0.ɵɵelement(6, "mj-code-editor", 175);
434
+ i0.ɵɵelementStart(5, "div", 152);
435
+ i0.ɵɵelement(6, "mj-code-editor", 153);
434
436
  i0.ɵɵelementEnd()();
435
437
  } if (rf & 2) {
436
438
  const ctx_r1 = i0.ɵɵnextContext(2);
437
439
  i0.ɵɵadvance(6);
438
440
  i0.ɵɵproperty("value", ctx_r1.record.ErrorMessage)("readonly", true)("toolbar", ctx_r1.jsonToolbar)("lineWrapping", true);
439
441
  } }
440
- function TestRunFormComponentExtended_div_114_div_46_Template(rf, ctx) { if (rf & 1) {
441
- i0.ɵɵelementStart(0, "div", 176)(1, "div", 128)(2, "h3");
442
- i0.ɵɵelement(3, "i", 177);
442
+ function TestRunFormComponentExtended_Conditional_114_Conditional_46_Template(rf, ctx) { if (rf & 1) {
443
+ i0.ɵɵelementStart(0, "div", 147)(1, "div", 112)(2, "h3");
444
+ i0.ɵɵelement(3, "i", 154);
443
445
  i0.ɵɵtext(4, " Result Details");
444
446
  i0.ɵɵelementEnd()();
445
- i0.ɵɵelementStart(5, "div", 178);
446
- i0.ɵɵelement(6, "mj-code-editor", 136);
447
+ i0.ɵɵelementStart(5, "div", 155);
448
+ i0.ɵɵelement(6, "mj-code-editor", 120);
447
449
  i0.ɵɵelementEnd()();
448
450
  } if (rf & 2) {
449
451
  const ctx_r1 = i0.ɵɵnextContext(2);
450
452
  i0.ɵɵadvance(6);
451
453
  i0.ɵɵproperty("value", ctx_r1.getFormattedResultDetails())("readonly", true)("toolbar", ctx_r1.jsonToolbar)("lineWrapping", true);
452
454
  } }
453
- function TestRunFormComponentExtended_div_114_Template(rf, ctx) { if (rf & 1) {
454
- i0.ɵɵelementStart(0, "div", 153)(1, "div", 154)(2, "div", 155)(3, "div", 156);
455
- i0.ɵɵelement(4, "i", 157);
455
+ function TestRunFormComponentExtended_Conditional_114_Template(rf, ctx) { if (rf & 1) {
456
+ i0.ɵɵelementStart(0, "div", 56)(1, "div", 133)(2, "div", 134)(3, "div", 135);
457
+ i0.ɵɵelement(4, "i", 136);
456
458
  i0.ɵɵelementEnd();
457
- i0.ɵɵelementStart(5, "div", 158)(6, "div", 159);
459
+ i0.ɵɵelementStart(5, "div", 137)(6, "div", 138);
458
460
  i0.ɵɵtext(7, "Test Run ID");
459
461
  i0.ɵɵelementEnd();
460
- i0.ɵɵelementStart(8, "div", 160);
462
+ i0.ɵɵelementStart(8, "div", 139);
461
463
  i0.ɵɵtext(9);
462
464
  i0.ɵɵelementEnd()()();
463
- i0.ɵɵtemplate(10, TestRunFormComponentExtended_div_114_div_10_Template, 9, 1, "div", 161);
464
- i0.ɵɵelementStart(11, "div", 155)(12, "div", 156);
465
- i0.ɵɵelement(13, "i", 162);
465
+ i0.ɵɵconditionalCreate(10, TestRunFormComponentExtended_Conditional_114_Conditional_10_Template, 9, 1, "div", 140);
466
+ i0.ɵɵelementStart(11, "div", 134)(12, "div", 135);
467
+ i0.ɵɵelement(13, "i", 141);
466
468
  i0.ɵɵelementEnd();
467
- i0.ɵɵelementStart(14, "div", 158)(15, "div", 159);
469
+ i0.ɵɵelementStart(14, "div", 137)(15, "div", 138);
468
470
  i0.ɵɵtext(16, "Target Type");
469
471
  i0.ɵɵelementEnd();
470
- i0.ɵɵelementStart(17, "div", 163);
472
+ i0.ɵɵelementStart(17, "div", 142);
471
473
  i0.ɵɵtext(18);
472
474
  i0.ɵɵelementEnd()()();
473
- i0.ɵɵelementStart(19, "div", 155)(20, "div", 156);
474
- i0.ɵɵelement(21, "i", 164);
475
+ i0.ɵɵelementStart(19, "div", 134)(20, "div", 135);
476
+ i0.ɵɵelement(21, "i", 143);
475
477
  i0.ɵɵelementEnd();
476
- i0.ɵɵelementStart(22, "div", 158)(23, "div", 159);
478
+ i0.ɵɵelementStart(22, "div", 137)(23, "div", 138);
477
479
  i0.ɵɵtext(24, "Started At");
478
480
  i0.ɵɵelementEnd();
479
- i0.ɵɵelementStart(25, "div", 163);
481
+ i0.ɵɵelementStart(25, "div", 142);
480
482
  i0.ɵɵtext(26);
481
483
  i0.ɵɵpipe(27, "date");
482
484
  i0.ɵɵelementEnd()()();
483
- i0.ɵɵelementStart(28, "div", 155)(29, "div", 156);
484
- i0.ɵɵelement(30, "i", 165);
485
+ i0.ɵɵelementStart(28, "div", 134)(29, "div", 135);
486
+ i0.ɵɵelement(30, "i", 144);
485
487
  i0.ɵɵelementEnd();
486
- i0.ɵɵelementStart(31, "div", 158)(32, "div", 159);
488
+ i0.ɵɵelementStart(31, "div", 137)(32, "div", 138);
487
489
  i0.ɵɵtext(33, "Completed At");
488
490
  i0.ɵɵelementEnd();
489
- i0.ɵɵelementStart(34, "div", 163);
491
+ i0.ɵɵelementStart(34, "div", 142);
490
492
  i0.ɵɵtext(35);
491
493
  i0.ɵɵpipe(36, "date");
492
494
  i0.ɵɵelementEnd()()();
493
- i0.ɵɵelementStart(37, "div", 155)(38, "div", 156);
494
- i0.ɵɵelement(39, "i", 166);
495
+ i0.ɵɵelementStart(37, "div", 134)(38, "div", 135);
496
+ i0.ɵɵelement(39, "i", 145);
495
497
  i0.ɵɵelementEnd();
496
- i0.ɵɵelementStart(40, "div", 158)(41, "div", 159);
498
+ i0.ɵɵelementStart(40, "div", 137)(41, "div", 138);
497
499
  i0.ɵɵtext(42, "Duration");
498
500
  i0.ɵɵelementEnd();
499
- i0.ɵɵelementStart(43, "div", 163);
501
+ i0.ɵɵelementStart(43, "div", 142);
500
502
  i0.ɵɵtext(44);
501
503
  i0.ɵɵelementEnd()()()();
502
- i0.ɵɵtemplate(45, TestRunFormComponentExtended_div_114_div_45_Template, 7, 4, "div", 167)(46, TestRunFormComponentExtended_div_114_div_46_Template, 7, 4, "div", 168);
504
+ i0.ɵɵconditionalCreate(45, TestRunFormComponentExtended_Conditional_114_Conditional_45_Template, 7, 4, "div", 146);
505
+ i0.ɵɵconditionalCreate(46, TestRunFormComponentExtended_Conditional_114_Conditional_46_Template, 7, 4, "div", 147);
503
506
  i0.ɵɵelementEnd();
504
507
  } if (rf & 2) {
505
508
  const ctx_r1 = i0.ɵɵnextContext();
@@ -507,7 +510,7 @@ function TestRunFormComponentExtended_div_114_Template(rf, ctx) { if (rf & 1) {
507
510
  i0.ɵɵadvance(9);
508
511
  i0.ɵɵtextInterpolate(ctx_r1.record.ID);
509
512
  i0.ɵɵadvance();
510
- i0.ɵɵproperty("ngIf", ctx_r1.test);
513
+ i0.ɵɵconditional(ctx_r1.test ? 10 : -1);
511
514
  i0.ɵɵadvance(8);
512
515
  i0.ɵɵtextInterpolate(ctx_r1.record.TargetType || "N/A");
513
516
  i0.ɵɵadvance(8);
@@ -517,28 +520,28 @@ function TestRunFormComponentExtended_div_114_Template(rf, ctx) { if (rf & 1) {
517
520
  i0.ɵɵadvance(9);
518
521
  i0.ɵɵtextInterpolate(ctx_r1.calculateDuration());
519
522
  i0.ɵɵadvance();
520
- i0.ɵɵproperty("ngIf", ctx_r1.record.ErrorMessage);
523
+ i0.ɵɵconditional(ctx_r1.record.ErrorMessage ? 45 : -1);
521
524
  i0.ɵɵadvance();
522
- i0.ɵɵproperty("ngIf", ctx_r1.parsedData.resultDetails);
525
+ i0.ɵɵconditional(ctx_r1.parsedData.resultDetails ? 46 : -1);
523
526
  } }
524
- function TestRunFormComponentExtended_div_115_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
525
- i0.ɵɵelementStart(0, "div", 186);
526
- i0.ɵɵelement(1, "div", 187);
527
- i0.ɵɵelementStart(2, "div", 188);
528
- i0.ɵɵelement(3, "div", 189)(4, "div", 190);
527
+ function TestRunFormComponentExtended_Conditional_115_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
528
+ i0.ɵɵelementStart(0, "div", 160);
529
+ i0.ɵɵelement(1, "div", 161);
530
+ i0.ɵɵelementStart(2, "div", 162);
531
+ i0.ɵɵelement(3, "div", 163)(4, "div", 164);
529
532
  i0.ɵɵelementEnd()();
530
533
  } }
531
- function TestRunFormComponentExtended_div_115_div_1_Template(rf, ctx) { if (rf & 1) {
532
- i0.ɵɵelementStart(0, "div", 183)(1, "div", 184);
533
- i0.ɵɵtemplate(2, TestRunFormComponentExtended_div_115_div_1_div_2_Template, 5, 0, "div", 185);
534
+ function TestRunFormComponentExtended_Conditional_115_Conditional_1_Template(rf, ctx) { if (rf & 1) {
535
+ i0.ɵɵelementStart(0, "div", 156)(1, "div", 159);
536
+ i0.ɵɵrepeaterCreate(2, TestRunFormComponentExtended_Conditional_115_Conditional_1_For_3_Template, 5, 0, "div", 160, i0.ɵɵrepeaterTrackByIdentity);
534
537
  i0.ɵɵelementEnd()();
535
538
  } if (rf & 2) {
536
539
  i0.ɵɵadvance(2);
537
- i0.ɵɵproperty("ngForOf", i0.ɵɵpureFunction0(1, _c0));
540
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c0));
538
541
  } }
539
- function TestRunFormComponentExtended_div_115_div_2_div_8_span_9_Template(rf, ctx) { if (rf & 1) {
540
- i0.ɵɵelementStart(0, "span", 203);
541
- i0.ɵɵelement(1, "i", 37);
542
+ function TestRunFormComponentExtended_Conditional_115_Conditional_2_For_9_Conditional_9_Template(rf, ctx) { if (rf & 1) {
543
+ i0.ɵɵelementStart(0, "span", 174);
544
+ i0.ɵɵelement(1, "i", 36);
542
545
  i0.ɵɵtext(2);
543
546
  i0.ɵɵpipe(3, "number");
544
547
  i0.ɵɵelementEnd();
@@ -547,22 +550,22 @@ function TestRunFormComponentExtended_div_115_div_2_div_8_span_9_Template(rf, ct
547
550
  i0.ɵɵadvance(2);
548
551
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, run_r16.TotalCost, "1.4-4"), " ");
549
552
  } }
550
- function TestRunFormComponentExtended_div_115_div_2_div_8_Template(rf, ctx) { if (rf & 1) {
553
+ function TestRunFormComponentExtended_Conditional_115_Conditional_2_For_9_Template(rf, ctx) { if (rf & 1) {
551
554
  const _r15 = i0.ɵɵgetCurrentView();
552
- i0.ɵɵelementStart(0, "div", 195);
553
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_115_div_2_div_8_Template_div_click_0_listener() { const run_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openAIAgentRun(run_r16.ID)); });
554
- i0.ɵɵelementStart(1, "div", 196);
555
- i0.ɵɵelement(2, "i", 48);
555
+ i0.ɵɵelementStart(0, "div", 168);
556
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_115_Conditional_2_For_9_Template_div_click_0_listener() { const run_r16 = i0.ɵɵrestoreView(_r15).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openAIAgentRun(run_r16.ID)); });
557
+ i0.ɵɵelementStart(1, "div", 169);
558
+ i0.ɵɵelement(2, "i", 47);
556
559
  i0.ɵɵelementEnd();
557
- i0.ɵɵelementStart(3, "div", 197)(4, "div", 198);
560
+ i0.ɵɵelementStart(3, "div", 170)(4, "div", 171);
558
561
  i0.ɵɵtext(5);
559
562
  i0.ɵɵelementEnd();
560
- i0.ɵɵelementStart(6, "div", 199)(7, "span", 200);
563
+ i0.ɵɵelementStart(6, "div", 172)(7, "span", 173);
561
564
  i0.ɵɵtext(8);
562
565
  i0.ɵɵelementEnd();
563
- i0.ɵɵtemplate(9, TestRunFormComponentExtended_div_115_div_2_div_8_span_9_Template, 4, 4, "span", 201);
566
+ i0.ɵɵconditionalCreate(9, TestRunFormComponentExtended_Conditional_115_Conditional_2_For_9_Conditional_9_Template, 4, 4, "span", 174);
564
567
  i0.ɵɵelementEnd()();
565
- i0.ɵɵelement(10, "i", 202);
568
+ i0.ɵɵelement(10, "i", 175);
566
569
  i0.ɵɵelementEnd();
567
570
  } if (rf & 2) {
568
571
  const run_r16 = ctx.$implicit;
@@ -573,29 +576,29 @@ function TestRunFormComponentExtended_div_115_div_2_div_8_Template(rf, ctx) { if
573
576
  i0.ɵɵadvance();
574
577
  i0.ɵɵtextInterpolate(run_r16.Status);
575
578
  i0.ɵɵadvance();
576
- i0.ɵɵproperty("ngIf", run_r16.TotalCost);
579
+ i0.ɵɵconditional(run_r16.TotalCost ? 9 : -1);
577
580
  } }
578
- function TestRunFormComponentExtended_div_115_div_2_Template(rf, ctx) { if (rf & 1) {
579
- i0.ɵɵelementStart(0, "div", 191)(1, "div", 128)(2, "h3");
580
- i0.ɵɵelement(3, "i", 48);
581
+ function TestRunFormComponentExtended_Conditional_115_Conditional_2_Template(rf, ctx) { if (rf & 1) {
582
+ i0.ɵɵelementStart(0, "div", 157)(1, "div", 112)(2, "h3");
583
+ i0.ɵɵelement(3, "i", 47);
581
584
  i0.ɵɵtext(4, " AI Agent Runs");
582
585
  i0.ɵɵelementEnd();
583
- i0.ɵɵelementStart(5, "span", 192);
586
+ i0.ɵɵelementStart(5, "span", 165);
584
587
  i0.ɵɵtext(6);
585
588
  i0.ɵɵelementEnd()();
586
- i0.ɵɵelementStart(7, "div", 193);
587
- i0.ɵɵtemplate(8, TestRunFormComponentExtended_div_115_div_2_div_8_Template, 11, 5, "div", 194);
589
+ i0.ɵɵelementStart(7, "div", 166);
590
+ i0.ɵɵrepeaterCreate(8, TestRunFormComponentExtended_Conditional_115_Conditional_2_For_9_Template, 11, 5, "div", 167, i0.ɵɵrepeaterTrackByIdentity);
588
591
  i0.ɵɵelementEnd()();
589
592
  } if (rf & 2) {
590
593
  const ctx_r1 = i0.ɵɵnextContext(2);
591
594
  i0.ɵɵadvance(6);
592
595
  i0.ɵɵtextInterpolate(ctx_r1.aiAgentRuns.length);
593
596
  i0.ɵɵadvance(2);
594
- i0.ɵɵproperty("ngForOf", ctx_r1.aiAgentRuns);
597
+ i0.ɵɵrepeater(ctx_r1.aiAgentRuns);
595
598
  } }
596
- function TestRunFormComponentExtended_div_115_div_3_div_8_span_7_Template(rf, ctx) { if (rf & 1) {
597
- i0.ɵɵelementStart(0, "span", 203);
598
- i0.ɵɵelement(1, "i", 37);
599
+ function TestRunFormComponentExtended_Conditional_115_Conditional_3_For_9_Conditional_7_Template(rf, ctx) { if (rf & 1) {
600
+ i0.ɵɵelementStart(0, "span", 174);
601
+ i0.ɵɵelement(1, "i", 36);
599
602
  i0.ɵɵtext(2);
600
603
  i0.ɵɵpipe(3, "number");
601
604
  i0.ɵɵelementEnd();
@@ -604,49 +607,49 @@ function TestRunFormComponentExtended_div_115_div_3_div_8_span_7_Template(rf, ct
604
607
  i0.ɵɵadvance(2);
605
608
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, run_r18.TotalCost, "1.4-4"), " ");
606
609
  } }
607
- function TestRunFormComponentExtended_div_115_div_3_div_8_Template(rf, ctx) { if (rf & 1) {
610
+ function TestRunFormComponentExtended_Conditional_115_Conditional_3_For_9_Template(rf, ctx) { if (rf & 1) {
608
611
  const _r17 = i0.ɵɵgetCurrentView();
609
- i0.ɵɵelementStart(0, "div", 195);
610
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_115_div_3_div_8_Template_div_click_0_listener() { const run_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openAIPromptRun(run_r18.ID)); });
611
- i0.ɵɵelementStart(1, "div", 205);
612
- i0.ɵɵelement(2, "i", 204);
612
+ i0.ɵɵelementStart(0, "div", 168);
613
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_115_Conditional_3_For_9_Template_div_click_0_listener() { const run_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openAIPromptRun(run_r18.ID)); });
614
+ i0.ɵɵelementStart(1, "div", 177);
615
+ i0.ɵɵelement(2, "i", 176);
613
616
  i0.ɵɵelementEnd();
614
- i0.ɵɵelementStart(3, "div", 197)(4, "div", 198);
617
+ i0.ɵɵelementStart(3, "div", 170)(4, "div", 171);
615
618
  i0.ɵɵtext(5);
616
619
  i0.ɵɵelementEnd();
617
- i0.ɵɵelementStart(6, "div", 199);
618
- i0.ɵɵtemplate(7, TestRunFormComponentExtended_div_115_div_3_div_8_span_7_Template, 4, 4, "span", 201);
620
+ i0.ɵɵelementStart(6, "div", 172);
621
+ i0.ɵɵconditionalCreate(7, TestRunFormComponentExtended_Conditional_115_Conditional_3_For_9_Conditional_7_Template, 4, 4, "span", 174);
619
622
  i0.ɵɵelementEnd()();
620
- i0.ɵɵelement(8, "i", 202);
623
+ i0.ɵɵelement(8, "i", 175);
621
624
  i0.ɵɵelementEnd();
622
625
  } if (rf & 2) {
623
626
  const run_r18 = ctx.$implicit;
624
627
  i0.ɵɵadvance(5);
625
628
  i0.ɵɵtextInterpolate(run_r18.Prompt || run_r18.Model);
626
629
  i0.ɵɵadvance(2);
627
- i0.ɵɵproperty("ngIf", run_r18.TotalCost);
630
+ i0.ɵɵconditional(run_r18.TotalCost ? 7 : -1);
628
631
  } }
629
- function TestRunFormComponentExtended_div_115_div_3_Template(rf, ctx) { if (rf & 1) {
630
- i0.ɵɵelementStart(0, "div", 191)(1, "div", 128)(2, "h3");
631
- i0.ɵɵelement(3, "i", 204);
632
+ function TestRunFormComponentExtended_Conditional_115_Conditional_3_Template(rf, ctx) { if (rf & 1) {
633
+ i0.ɵɵelementStart(0, "div", 157)(1, "div", 112)(2, "h3");
634
+ i0.ɵɵelement(3, "i", 176);
632
635
  i0.ɵɵtext(4, " AI Prompt Runs");
633
636
  i0.ɵɵelementEnd();
634
- i0.ɵɵelementStart(5, "span", 192);
637
+ i0.ɵɵelementStart(5, "span", 165);
635
638
  i0.ɵɵtext(6);
636
639
  i0.ɵɵelementEnd()();
637
- i0.ɵɵelementStart(7, "div", 193);
638
- i0.ɵɵtemplate(8, TestRunFormComponentExtended_div_115_div_3_div_8_Template, 9, 2, "div", 194);
640
+ i0.ɵɵelementStart(7, "div", 166);
641
+ i0.ɵɵrepeaterCreate(8, TestRunFormComponentExtended_Conditional_115_Conditional_3_For_9_Template, 9, 2, "div", 167, i0.ɵɵrepeaterTrackByIdentity);
639
642
  i0.ɵɵelementEnd()();
640
643
  } if (rf & 2) {
641
644
  const ctx_r1 = i0.ɵɵnextContext(2);
642
645
  i0.ɵɵadvance(6);
643
646
  i0.ɵɵtextInterpolate(ctx_r1.aiPromptRuns.length);
644
647
  i0.ɵɵadvance(2);
645
- i0.ɵɵproperty("ngForOf", ctx_r1.aiPromptRuns);
648
+ i0.ɵɵrepeater(ctx_r1.aiPromptRuns);
646
649
  } }
647
- function TestRunFormComponentExtended_div_115_div_4_Template(rf, ctx) { if (rf & 1) {
648
- i0.ɵɵelementStart(0, "div", 206)(1, "div", 207);
649
- i0.ɵɵelement(2, "i", 48);
650
+ function TestRunFormComponentExtended_Conditional_115_Conditional_4_Template(rf, ctx) { if (rf & 1) {
651
+ i0.ɵɵelementStart(0, "div", 158)(1, "div", 178);
652
+ i0.ɵɵelement(2, "i", 47);
650
653
  i0.ɵɵelementEnd();
651
654
  i0.ɵɵelementStart(3, "h3");
652
655
  i0.ɵɵtext(4, "No AI Runs");
@@ -655,47 +658,50 @@ function TestRunFormComponentExtended_div_115_div_4_Template(rf, ctx) { if (rf &
655
658
  i0.ɵɵtext(6, "This test execution didn't involve any AI agent or prompt runs.");
656
659
  i0.ɵɵelementEnd()();
657
660
  } }
658
- function TestRunFormComponentExtended_div_115_Template(rf, ctx) { if (rf & 1) {
659
- i0.ɵɵelementStart(0, "div", 179);
660
- i0.ɵɵtemplate(1, TestRunFormComponentExtended_div_115_div_1_Template, 3, 2, "div", 180)(2, TestRunFormComponentExtended_div_115_div_2_Template, 9, 2, "div", 181)(3, TestRunFormComponentExtended_div_115_div_3_Template, 9, 2, "div", 181)(4, TestRunFormComponentExtended_div_115_div_4_Template, 7, 0, "div", 182);
661
+ function TestRunFormComponentExtended_Conditional_115_Template(rf, ctx) { if (rf & 1) {
662
+ i0.ɵɵelementStart(0, "div", 57);
663
+ i0.ɵɵconditionalCreate(1, TestRunFormComponentExtended_Conditional_115_Conditional_1_Template, 4, 1, "div", 156);
664
+ i0.ɵɵconditionalCreate(2, TestRunFormComponentExtended_Conditional_115_Conditional_2_Template, 10, 1, "div", 157);
665
+ i0.ɵɵconditionalCreate(3, TestRunFormComponentExtended_Conditional_115_Conditional_3_Template, 10, 1, "div", 157);
666
+ i0.ɵɵconditionalCreate(4, TestRunFormComponentExtended_Conditional_115_Conditional_4_Template, 7, 0, "div", 158);
661
667
  i0.ɵɵelementEnd();
662
668
  } if (rf & 2) {
663
669
  const ctx_r1 = i0.ɵɵnextContext();
664
670
  i0.ɵɵproperty("@fadeIn", undefined);
665
671
  i0.ɵɵadvance();
666
- i0.ɵɵproperty("ngIf", ctx_r1.loadingAIRuns);
672
+ i0.ɵɵconditional(ctx_r1.loadingAIRuns ? 1 : -1);
667
673
  i0.ɵɵadvance();
668
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingAIRuns && ctx_r1.aiAgentRuns.length > 0);
674
+ i0.ɵɵconditional(!ctx_r1.loadingAIRuns && ctx_r1.aiAgentRuns.length > 0 ? 2 : -1);
669
675
  i0.ɵɵadvance();
670
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingAIRuns && ctx_r1.aiPromptRuns.length > 0);
676
+ i0.ɵɵconditional(!ctx_r1.loadingAIRuns && ctx_r1.aiPromptRuns.length > 0 ? 3 : -1);
671
677
  i0.ɵɵadvance();
672
- i0.ɵɵproperty("ngIf", ctx_r1.aiRunsLoaded && ctx_r1.aiAgentRuns.length === 0 && ctx_r1.aiPromptRuns.length === 0);
678
+ i0.ɵɵconditional(ctx_r1.aiRunsLoaded && ctx_r1.aiAgentRuns.length === 0 && ctx_r1.aiPromptRuns.length === 0 ? 4 : -1);
673
679
  } }
674
- function TestRunFormComponentExtended_div_116_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
675
- i0.ɵɵelementStart(0, "div", 186);
676
- i0.ɵɵelement(1, "div", 210);
677
- i0.ɵɵelementStart(2, "div", 188);
678
- i0.ɵɵelement(3, "div", 189)(4, "div", 190)(5, "div", 211);
680
+ function TestRunFormComponentExtended_Conditional_116_Conditional_1_For_3_Template(rf, ctx) { if (rf & 1) {
681
+ i0.ɵɵelementStart(0, "div", 160);
682
+ i0.ɵɵelement(1, "div", 180);
683
+ i0.ɵɵelementStart(2, "div", 162);
684
+ i0.ɵɵelement(3, "div", 163)(4, "div", 164)(5, "div", 181);
679
685
  i0.ɵɵelementEnd()();
680
686
  } }
681
- function TestRunFormComponentExtended_div_116_div_1_Template(rf, ctx) { if (rf & 1) {
682
- i0.ɵɵelementStart(0, "div", 183)(1, "div", 184);
683
- i0.ɵɵtemplate(2, TestRunFormComponentExtended_div_116_div_1_div_2_Template, 6, 0, "div", 185);
687
+ function TestRunFormComponentExtended_Conditional_116_Conditional_1_Template(rf, ctx) { if (rf & 1) {
688
+ i0.ɵɵelementStart(0, "div", 156)(1, "div", 159);
689
+ i0.ɵɵrepeaterCreate(2, TestRunFormComponentExtended_Conditional_116_Conditional_1_For_3_Template, 6, 0, "div", 160, i0.ɵɵrepeaterTrackByIdentity);
684
690
  i0.ɵɵelementEnd()();
685
691
  } if (rf & 2) {
686
692
  i0.ɵɵadvance(2);
687
- i0.ɵɵproperty("ngForOf", i0.ɵɵpureFunction0(1, _c1));
693
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c1));
688
694
  } }
689
- function TestRunFormComponentExtended_div_116_div_2_div_1_i_12_Template(rf, ctx) { if (rf & 1) {
690
- i0.ɵɵelement(0, "i", 34);
695
+ function TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_For_13_Template(rf, ctx) { if (rf & 1) {
696
+ i0.ɵɵelement(0, "i", 33);
691
697
  } if (rf & 2) {
692
698
  const s_r19 = ctx.$implicit;
693
699
  const feedback_r20 = i0.ɵɵnextContext().$implicit;
694
700
  i0.ɵɵclassProp("filled", s_r19 <= (feedback_r20.Rating || 0));
695
701
  } }
696
- function TestRunFormComponentExtended_div_116_div_2_div_1_div_15_Template(rf, ctx) { if (rf & 1) {
697
- i0.ɵɵelementStart(0, "div", 227)(1, "span", 228);
698
- i0.ɵɵelement(2, "i", 145);
702
+ function TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
703
+ i0.ɵɵelementStart(0, "div", 193)(1, "span", 195);
704
+ i0.ɵɵelement(2, "i", 127);
699
705
  i0.ɵɵtext(3);
700
706
  i0.ɵɵelementEnd()();
701
707
  } if (rf & 2) {
@@ -707,8 +713,8 @@ function TestRunFormComponentExtended_div_116_div_2_div_1_div_15_Template(rf, ct
707
713
  i0.ɵɵadvance();
708
714
  i0.ɵɵtextInterpolate1(" ", feedback_r20.IsCorrect ? "Marked Correct" : "Marked Incorrect", " ");
709
715
  } }
710
- function TestRunFormComponentExtended_div_116_div_2_div_1_div_16_Template(rf, ctx) { if (rf & 1) {
711
- i0.ɵɵelementStart(0, "div", 229)(1, "p");
716
+ function TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
717
+ i0.ɵɵelementStart(0, "div", 194)(1, "p");
712
718
  i0.ɵɵtext(2);
713
719
  i0.ɵɵelementEnd()();
714
720
  } if (rf & 2) {
@@ -716,23 +722,24 @@ function TestRunFormComponentExtended_div_116_div_2_div_1_div_16_Template(rf, ct
716
722
  i0.ɵɵadvance(2);
717
723
  i0.ɵɵtextInterpolate(feedback_r20.CorrectionSummary);
718
724
  } }
719
- function TestRunFormComponentExtended_div_116_div_2_div_1_Template(rf, ctx) { if (rf & 1) {
720
- i0.ɵɵelementStart(0, "div", 214)(1, "div", 215)(2, "div", 216)(3, "div", 217);
721
- i0.ɵɵelement(4, "i", 78);
725
+ function TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
726
+ i0.ɵɵelementStart(0, "div", 182)(1, "div", 183)(2, "div", 184)(3, "div", 185);
727
+ i0.ɵɵelement(4, "i", 73);
722
728
  i0.ɵɵelementEnd();
723
- i0.ɵɵelementStart(5, "span", 218);
729
+ i0.ɵɵelementStart(5, "span", 186);
724
730
  i0.ɵɵtext(6);
725
731
  i0.ɵɵelementEnd()();
726
- i0.ɵɵelementStart(7, "div", 219);
732
+ i0.ɵɵelementStart(7, "div", 187);
727
733
  i0.ɵɵtext(8);
728
734
  i0.ɵɵelementEnd()();
729
- i0.ɵɵelementStart(9, "div", 220)(10, "div", 221)(11, "div", 222);
730
- i0.ɵɵtemplate(12, TestRunFormComponentExtended_div_116_div_2_div_1_i_12_Template, 1, 2, "i", 223);
735
+ i0.ɵɵelementStart(9, "div", 188)(10, "div", 189)(11, "div", 190);
736
+ i0.ɵɵrepeaterCreate(12, TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_For_13_Template, 1, 2, "i", 191, i0.ɵɵrepeaterTrackByIdentity);
731
737
  i0.ɵɵelementEnd();
732
- i0.ɵɵelementStart(13, "span", 224);
733
- i0.ɵɵtext(14);
738
+ i0.ɵɵelementStart(14, "span", 192);
739
+ i0.ɵɵtext(15);
734
740
  i0.ɵɵelementEnd()();
735
- i0.ɵɵtemplate(15, TestRunFormComponentExtended_div_116_div_2_div_1_div_15_Template, 4, 9, "div", 225)(16, TestRunFormComponentExtended_div_116_div_2_div_1_div_16_Template, 3, 1, "div", 226);
741
+ i0.ɵɵconditionalCreate(16, TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_Conditional_16_Template, 4, 9, "div", 193);
742
+ i0.ɵɵconditionalCreate(17, TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_Conditional_17_Template, 3, 1, "div", 194);
736
743
  i0.ɵɵelementEnd()();
737
744
  } if (rf & 2) {
738
745
  const feedback_r20 = ctx.$implicit;
@@ -742,26 +749,26 @@ function TestRunFormComponentExtended_div_116_div_2_div_1_Template(rf, ctx) { if
742
749
  i0.ɵɵadvance(2);
743
750
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getRelativeTime(feedback_r20.__mj_CreatedAt), " ");
744
751
  i0.ɵɵadvance(4);
745
- i0.ɵɵproperty("ngForOf", i0.ɵɵpureFunction0(6, _c2));
746
- i0.ɵɵadvance(2);
752
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(5, _c2));
753
+ i0.ɵɵadvance(3);
747
754
  i0.ɵɵtextInterpolate1("", feedback_r20.Rating, "/10");
748
755
  i0.ɵɵadvance();
749
- i0.ɵɵproperty("ngIf", feedback_r20.IsCorrect !== null);
756
+ i0.ɵɵconditional(feedback_r20.IsCorrect !== null ? 16 : -1);
750
757
  i0.ɵɵadvance();
751
- i0.ɵɵproperty("ngIf", feedback_r20.CorrectionSummary);
758
+ i0.ɵɵconditional(feedback_r20.CorrectionSummary ? 17 : -1);
752
759
  } }
753
- function TestRunFormComponentExtended_div_116_div_2_Template(rf, ctx) { if (rf & 1) {
754
- i0.ɵɵelementStart(0, "div", 212);
755
- i0.ɵɵtemplate(1, TestRunFormComponentExtended_div_116_div_2_div_1_Template, 17, 7, "div", 213);
760
+ function TestRunFormComponentExtended_Conditional_116_Conditional_2_Template(rf, ctx) { if (rf & 1) {
761
+ i0.ɵɵelementStart(0, "div", 179);
762
+ i0.ɵɵrepeaterCreate(1, TestRunFormComponentExtended_Conditional_116_Conditional_2_For_2_Template, 18, 6, "div", 182, i0.ɵɵrepeaterTrackByIdentity);
756
763
  i0.ɵɵelementEnd();
757
764
  } if (rf & 2) {
758
765
  const ctx_r1 = i0.ɵɵnextContext(2);
759
766
  i0.ɵɵadvance();
760
- i0.ɵɵproperty("ngForOf", ctx_r1.feedbacks);
767
+ i0.ɵɵrepeater(ctx_r1.feedbacks);
761
768
  } }
762
- function TestRunFormComponentExtended_div_116_div_3_Template(rf, ctx) { if (rf & 1) {
763
- i0.ɵɵelementStart(0, "div", 206)(1, "div", 207);
764
- i0.ɵɵelement(2, "i", 51);
769
+ function TestRunFormComponentExtended_Conditional_116_Conditional_3_Template(rf, ctx) { if (rf & 1) {
770
+ i0.ɵɵelementStart(0, "div", 158)(1, "div", 178);
771
+ i0.ɵɵelement(2, "i", 50);
765
772
  i0.ɵɵelementEnd();
766
773
  i0.ɵɵelementStart(3, "h3");
767
774
  i0.ɵɵtext(4, "No Feedback Yet");
@@ -770,23 +777,25 @@ function TestRunFormComponentExtended_div_116_div_3_Template(rf, ctx) { if (rf &
770
777
  i0.ɵɵtext(6, "No one has reviewed this test run yet. Be the first to provide feedback!");
771
778
  i0.ɵɵelementEnd()();
772
779
  } }
773
- function TestRunFormComponentExtended_div_116_Template(rf, ctx) { if (rf & 1) {
774
- i0.ɵɵelementStart(0, "div", 208);
775
- i0.ɵɵtemplate(1, TestRunFormComponentExtended_div_116_div_1_Template, 3, 2, "div", 180)(2, TestRunFormComponentExtended_div_116_div_2_Template, 2, 1, "div", 209)(3, TestRunFormComponentExtended_div_116_div_3_Template, 7, 0, "div", 182);
780
+ function TestRunFormComponentExtended_Conditional_116_Template(rf, ctx) { if (rf & 1) {
781
+ i0.ɵɵelementStart(0, "div", 58);
782
+ i0.ɵɵconditionalCreate(1, TestRunFormComponentExtended_Conditional_116_Conditional_1_Template, 4, 1, "div", 156);
783
+ i0.ɵɵconditionalCreate(2, TestRunFormComponentExtended_Conditional_116_Conditional_2_Template, 3, 0, "div", 179);
784
+ i0.ɵɵconditionalCreate(3, TestRunFormComponentExtended_Conditional_116_Conditional_3_Template, 7, 0, "div", 158);
776
785
  i0.ɵɵelementEnd();
777
786
  } if (rf & 2) {
778
787
  const ctx_r1 = i0.ɵɵnextContext();
779
788
  i0.ɵɵproperty("@fadeIn", undefined);
780
789
  i0.ɵɵadvance();
781
- i0.ɵɵproperty("ngIf", ctx_r1.loadingFeedback);
790
+ i0.ɵɵconditional(ctx_r1.loadingFeedback ? 1 : -1);
782
791
  i0.ɵɵadvance();
783
- i0.ɵɵproperty("ngIf", !ctx_r1.loadingFeedback && ctx_r1.feedbacks.length > 0);
792
+ i0.ɵɵconditional(!ctx_r1.loadingFeedback && ctx_r1.feedbacks.length > 0 ? 2 : -1);
784
793
  i0.ɵɵadvance();
785
- i0.ɵɵproperty("ngIf", ctx_r1.feedbackLoaded && ctx_r1.feedbacks.length === 0);
794
+ i0.ɵɵconditional(ctx_r1.feedbackLoaded && ctx_r1.feedbacks.length === 0 ? 3 : -1);
786
795
  } }
787
- function TestRunFormComponentExtended_div_117_Template(rf, ctx) { if (rf & 1) {
788
- i0.ɵɵelementStart(0, "div", 230);
789
- i0.ɵɵelement(1, "mj-execution-context", 231);
796
+ function TestRunFormComponentExtended_Conditional_117_Template(rf, ctx) { if (rf & 1) {
797
+ i0.ɵɵelementStart(0, "div", 59);
798
+ i0.ɵɵelement(1, "mj-execution-context", 196);
790
799
  i0.ɵɵelementEnd();
791
800
  } if (rf & 2) {
792
801
  const ctx_r1 = i0.ɵɵnextContext();
@@ -794,21 +803,21 @@ function TestRunFormComponentExtended_div_117_Template(rf, ctx) { if (rf & 1) {
794
803
  i0.ɵɵadvance();
795
804
  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);
796
805
  } }
797
- function TestRunFormComponentExtended_div_118_Template(rf, ctx) { if (rf & 1) {
806
+ function TestRunFormComponentExtended_Conditional_118_Template(rf, ctx) { if (rf & 1) {
798
807
  const _r21 = i0.ɵɵgetCurrentView();
799
- i0.ɵɵelementStart(0, "div", 232)(1, "div", 233)(2, "div", 234);
800
- i0.ɵɵelement(3, "i", 115);
808
+ i0.ɵɵelementStart(0, "div", 60)(1, "div", 197)(2, "div", 198);
809
+ i0.ɵɵelement(3, "i", 100);
801
810
  i0.ɵɵelementStart(4, "h3");
802
811
  i0.ɵɵtext(5, "Execution Log");
803
812
  i0.ɵɵelementEnd()();
804
- i0.ɵɵelementStart(6, "div", 235)(7, "button", 236);
805
- i0.ɵɵlistener("click", function TestRunFormComponentExtended_div_118_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyLogToClipboard()); });
806
- i0.ɵɵelement(8, "i", 237);
807
- i0.ɵɵelementStart(9, "span", 22);
813
+ i0.ɵɵelementStart(6, "div", 199)(7, "button", 200);
814
+ i0.ɵɵlistener("click", function TestRunFormComponentExtended_Conditional_118_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.copyLogToClipboard()); });
815
+ i0.ɵɵelement(8, "i", 201);
816
+ i0.ɵɵelementStart(9, "span", 21);
808
817
  i0.ɵɵtext(10, "Copy");
809
818
  i0.ɵɵelementEnd()()()();
810
- i0.ɵɵelementStart(11, "div", 238);
811
- i0.ɵɵelement(12, "mj-code-editor", 175);
819
+ i0.ɵɵelementStart(11, "div", 202);
820
+ i0.ɵɵelement(12, "mj-code-editor", 153);
812
821
  i0.ɵɵelementEnd()();
813
822
  } if (rf & 2) {
814
823
  const ctx_r1 = i0.ɵɵnextContext();
@@ -817,13 +826,8 @@ function TestRunFormComponentExtended_div_118_Template(rf, ctx) { if (rf & 1) {
817
826
  i0.ɵɵproperty("value", ctx_r1.record.Log || "")("readonly", true)("toolbar", ctx_r1.jsonToolbar)("lineWrapping", true);
818
827
  } }
819
828
  let TestRunFormComponentExtended = class TestRunFormComponentExtended extends TestRunFormComponent {
820
- constructor(elementRef, sharedService, router, route, cdr, testingDialogService, appManager, viewContainerRef) {
821
- super(elementRef, sharedService, router, route, cdr);
822
- this.router = router;
823
- this.cdr = cdr;
824
- this.testingDialogService = testingDialogService;
825
- this.appManager = appManager;
826
- this.viewContainerRef = viewContainerRef;
829
+ constructor() {
830
+ super(...arguments);
827
831
  this.destroy$ = new Subject();
828
832
  // UI state
829
833
  this.activeTab = 'overview';
@@ -855,6 +859,11 @@ let TestRunFormComponentExtended = class TestRunFormComponentExtended extends Te
855
859
  this.editingTags = false;
856
860
  this.savingTags = false;
857
861
  this.originalTags = [];
862
+ // Service injections
863
+ this.navigationService = inject(NavigationService);
864
+ this.testingDialogService = inject(TestingDialogService);
865
+ this.appManager = inject(ApplicationManager);
866
+ this.viewContainerRef = inject(ViewContainerRef);
858
867
  }
859
868
  async ngOnInit() {
860
869
  await super.ngOnInit();
@@ -1310,146 +1319,154 @@ let TestRunFormComponentExtended = class TestRunFormComponentExtended extends Te
1310
1319
  return `${diffDays}d ago`;
1311
1320
  return d.toLocaleDateString();
1312
1321
  }
1313
- static { this.ɵfac = function TestRunFormComponentExtended_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestRunFormComponentExtended)(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(i4.ApplicationManager), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; }
1322
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵTestRunFormComponentExtended_BaseFactory; return function TestRunFormComponentExtended_Factory(__ngFactoryType__) { return (ɵTestRunFormComponentExtended_BaseFactory || (ɵTestRunFormComponentExtended_BaseFactory = i0.ɵɵgetInheritedFactory(TestRunFormComponentExtended)))(__ngFactoryType__ || TestRunFormComponentExtended); }; })(); }
1314
1323
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestRunFormComponentExtended, selectors: [["mj-test-run-form"]], hostBindings: function TestRunFormComponentExtended_HostBindings(rf, ctx) { if (rf & 1) {
1315
- i0.ɵɵlistener("keydown", function TestRunFormComponentExtended_keydown_HostBindingHandler($event) { return ctx.handleKeyboardShortcut($event); }, false, i0.ɵɵresolveDocument);
1316
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 137, vars: 59, consts: [[1, "test-run-form"], ["class", "error-banner", 3, "click", 4, "ngIf"], [1, "test-run-header"], ["aria-label", "Breadcrumb", 1, "breadcrumb"], ["href", "javascript:void(0)", 3, "click"], [1, "fas", "fa-vial"], [1, "breadcrumb-text"], [4, "ngIf"], [1, "current"], [1, "fas", "fa-chevron-right", "separator"], [1, "header-content"], [1, "header-left"], [1, "status-indicator"], [1, "fas", 3, "ngClass"], [1, "test-run-info"], [1, "run-id"], [1, "test-run-meta"], [1, "status-badge"], ["class", "meta-item", 4, "ngIf"], [1, "header-actions"], ["kendoButton", "", "title", "Re-run this test (Cmd+Shift+R)", 3, "click", "disabled"], [1, "fas", "fa-redo"], [1, "btn-text"], ["kendoButton", "", "title", "Refresh (Cmd+R)", 3, "click", "disabled"], [1, "fas", "fa-sync-alt"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-icon"], [1, "fas", "fa-clock"], [1, "metric-content"], [1, "metric-label"], [1, "metric-value"], [1, "metric-detail"], [1, "fas", "fa-stopwatch"], [1, "fas", "fa-star"], ["class", "metric-progress", 4, "ngIf"], [1, "fas", "fa-check-double"], [1, "fas", "fa-dollar-sign"], ["class", "secondary-info", 4, "ngIf"], ["class", "tags-bar", 4, "ngIf"], ["class", "tags-editor-panel", 4, "ngIf"], [1, "tabs-container"], ["role", "tablist", 1, "tabs"], ["role", "tab", "title", "Press 1", 1, "tab", 3, "click"], [1, "fas", "fa-chart-pie"], ["role", "tab", "title", "Press 2", 1, "tab", 3, "click"], [1, "fas", "fa-info-circle"], ["role", "tab", "title", "Press 3", 1, "tab", 3, "click"], [1, "fas", "fa-robot"], ["class", "tab-badge", 4, "ngIf"], ["role", "tab", "title", "Press 4", 1, "tab", 3, "click"], [1, "fas", "fa-comments"], ["role", "tab", "title", "Press 5", 1, "tab", 3, "click"], [1, "fas", "fa-microchip"], ["class", "tab", "role", "tab", "title", "Press 6", 3, "active", "click", 4, "ngIf"], [1, "tab-content"], ["class", "overview-tab", 4, "ngIf"], ["class", "details-tab", 4, "ngIf"], ["class", "ai-runs-tab", 4, "ngIf"], ["class", "feedback-tab", 4, "ngIf"], ["class", "execution-tab", 4, "ngIf"], ["class", "log-tab", 4, "ngIf"], ["title", "Keyboard Shortcuts", 1, "shortcuts-hint"], [1, "fas", "fa-keyboard"], [1, "shortcuts-popup"], [1, "error-banner", 3, "click"], [1, "fas", "fa-exclamation-triangle"], [1, "retry-btn"], [1, "fas", "fa-flask"], [1, "meta-item"], [1, "fas", "fa-sync-alt", "fa-spin"], [1, "metric-progress"], [1, "progress-bar"], [1, "secondary-info"], ["class", "info-chip", 4, "ngIf"], ["class", "info-chip clickable", 3, "click", 4, "ngIf"], [3, "entityName", "recordId", 4, "ngIf"], [1, "info-chip"], [1, "fas", "fa-user"], [1, "info-chip", "clickable", 3, "click"], [1, "fas", "fa-layer-group"], [3, "entityName", "recordId"], [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"], ["role", "tab", "title", "Press 6", 1, "tab", 3, "click"], [1, "fas", "fa-terminal"], [1, "overview-tab"], [1, "result-hero"], [1, "result-icon-wrapper"], [1, "result-icon"], ["class", "result-pulse", 4, "ngIf"], [1, "result-text"], [1, "result-details"], [1, "result-score"], [1, "result-divider"], [1, "result-checks"], ["class", "check-results", 4, "ngIf"], [1, "comparison-section"], [1, "section-header"], [1, "fas", "fa-exchange-alt"], [1, "comparison-tabs"], [1, "comparison-tab", 3, "click"], [1, "fas", "fa-sign-in-alt"], [1, "fas", "fa-bullseye"], [1, "fas", "fa-check-square"], [1, "comparison-content"], ["language", "json", 3, "value", "readonly", "toolbar", "lineWrapping"], [1, "result-pulse"], [1, "check-results"], [1, "fas", "fa-tasks"], [1, "check-summary"], [1, "check-list"], ["class", "check-item", 3, "passed", "failed", "animation-delay", 4, "ngFor", "ngForOf"], [1, "check-item"], [1, "check-status"], [1, "fas"], [1, "check-content"], [1, "check-name"], ["class", "check-message", 4, "ngIf"], ["class", "check-weight", 4, "ngIf"], [1, "check-message"], [1, "check-weight"], [1, "weight-label"], [1, "details-tab"], [1, "details-grid"], [1, "detail-card"], [1, "detail-icon"], [1, "fas", "fa-fingerprint"], [1, "detail-content"], [1, "detail-label"], [1, "detail-value", "monospace"], ["class", "detail-card clickable", 3, "click", 4, "ngIf"], [1, "fas", "fa-tag"], [1, "detail-value"], [1, "fas", "fa-play-circle"], [1, "fas", "fa-stop-circle"], [1, "fas", "fa-hourglass-half"], ["class", "error-section", 4, "ngIf"], ["class", "result-details-section", 4, "ngIf"], [1, "detail-card", "clickable", 3, "click"], [1, "detail-value", "link"], [1, "fas", "fa-external-link-alt", "detail-action"], [1, "error-section"], [1, "section-header", "error"], [1, "error-content"], [3, "value", "readonly", "toolbar", "lineWrapping"], [1, "result-details-section"], [1, "fas", "fa-file-code"], [1, "result-details-content"], [1, "ai-runs-tab"], ["class", "loading-state", 4, "ngIf"], ["class", "ai-section", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], [1, "loading-state"], [1, "skeleton-list"], ["class", "skeleton-card", 4, "ngFor", "ngForOf"], [1, "skeleton-card"], [1, "skeleton-icon"], [1, "skeleton-content"], [1, "skeleton-line", "wide"], [1, "skeleton-line", "narrow"], [1, "ai-section"], [1, "count-badge"], [1, "ai-run-list"], ["class", "ai-run-card", 3, "click", 4, "ngFor", "ngForOf"], [1, "ai-run-card", 3, "click"], [1, "ai-run-icon", "agent"], [1, "ai-run-content"], [1, "ai-run-name"], [1, "ai-run-meta"], [1, "status-chip"], ["class", "cost-chip", 4, "ngIf"], [1, "fas", "fa-chevron-right", "ai-run-arrow"], [1, "cost-chip"], [1, "fas", "fa-comment-dots"], [1, "ai-run-icon", "prompt"], [1, "empty-state"], [1, "empty-icon"], [1, "feedback-tab"], ["class", "feedback-list", 4, "ngIf"], [1, "skeleton-avatar"], [1, "skeleton-line", "medium"], [1, "feedback-list"], ["class", "feedback-item", 4, "ngFor", "ngForOf"], [1, "feedback-item"], [1, "feedback-header"], [1, "feedback-user"], [1, "user-avatar"], [1, "user-name"], [1, "feedback-date"], [1, "feedback-body"], [1, "feedback-rating"], [1, "rating-stars"], ["class", "fas fa-star", 3, "filled", 4, "ngFor", "ngForOf"], [1, "rating-value"], ["class", "feedback-verdict", 4, "ngIf"], ["class", "feedback-comments", 4, "ngIf"], [1, "feedback-verdict"], [1, "verdict-badge"], [1, "feedback-comments"], [1, "execution-tab"], [3, "machineName", "machineId", "runByUserName", "runByUserEmail", "runContextDetailsJson"], [1, "log-tab"], [1, "log-header"], [1, "log-title"], [1, "log-actions"], ["kendoButton", "", "look", "flat", 3, "click"], [1, "fas", "fa-copy"], [1, "log-container"]], template: function TestRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1324
+ i0.ɵɵlistener("keydown", function TestRunFormComponentExtended_keydown_HostBindingHandler($event) { return ctx.handleKeyboardShortcut($event); }, i0.ɵɵresolveDocument);
1325
+ } }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 137, vars: 59, consts: [[1, "test-run-form"], [1, "error-banner"], [1, "test-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, "status-indicator"], [1, "fas", 3, "ngClass"], [1, "test-run-info"], [1, "run-id"], [1, "test-run-meta"], [1, "status-badge"], [1, "meta-item"], [1, "header-actions"], ["kendoButton", "", "title", "Re-run this test (Cmd+Shift+R)", 3, "click", "disabled"], [1, "fas", "fa-redo"], [1, "btn-text"], ["kendoButton", "", "title", "Refresh (Cmd+R)", 3, "click", "disabled"], [1, "fas", "fa-sync-alt"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-icon"], [1, "fas", "fa-clock"], [1, "metric-content"], [1, "metric-label"], [1, "metric-value"], [1, "metric-detail"], [1, "fas", "fa-stopwatch"], [1, "fas", "fa-star"], [1, "metric-progress"], [1, "fas", "fa-check-double"], [1, "fas", "fa-dollar-sign"], [1, "secondary-info"], [1, "tags-bar"], [1, "tags-editor-panel"], [1, "tabs-container"], ["role", "tablist", 1, "tabs"], ["role", "tab", "title", "Press 1", 1, "tab", 3, "click"], [1, "fas", "fa-chart-pie"], ["role", "tab", "title", "Press 2", 1, "tab", 3, "click"], [1, "fas", "fa-info-circle"], ["role", "tab", "title", "Press 3", 1, "tab", 3, "click"], [1, "fas", "fa-robot"], [1, "tab-badge"], ["role", "tab", "title", "Press 4", 1, "tab", 3, "click"], [1, "fas", "fa-comments"], ["role", "tab", "title", "Press 5", 1, "tab", 3, "click"], [1, "fas", "fa-microchip"], ["role", "tab", "title", "Press 6", 1, "tab", 3, "active"], [1, "tab-content"], [1, "overview-tab"], [1, "details-tab"], [1, "ai-runs-tab"], [1, "feedback-tab"], [1, "execution-tab"], [1, "log-tab"], ["title", "Keyboard Shortcuts", 1, "shortcuts-hint"], [1, "fas", "fa-keyboard"], [1, "shortcuts-popup"], [1, "error-banner", 3, "click"], [1, "fas", "fa-exclamation-triangle"], [1, "retry-btn"], [1, "fas", "fa-flask"], [1, "fas", "fa-sync-alt", "fa-spin"], [1, "progress-bar"], [1, "info-chip"], [1, "info-chip", "clickable"], [3, "entityName", "recordId"], [1, "fas", "fa-user"], [1, "info-chip", "clickable", 3, "click"], [1, "fas", "fa-layer-group"], [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"], ["role", "tab", "title", "Press 6", 1, "tab", 3, "click"], [1, "fas", "fa-terminal"], [1, "result-hero"], [1, "result-icon-wrapper"], [1, "result-icon"], [1, "result-pulse"], [1, "result-text"], [1, "result-details"], [1, "result-score"], [1, "result-divider"], [1, "result-checks"], [1, "check-results"], [1, "comparison-section"], [1, "section-header"], [1, "fas", "fa-exchange-alt"], [1, "comparison-tabs"], [1, "comparison-tab", 3, "click"], [1, "fas", "fa-sign-in-alt"], [1, "fas", "fa-bullseye"], [1, "fas", "fa-check-square"], [1, "comparison-content"], ["language", "json", 3, "value", "readonly", "toolbar", "lineWrapping"], [1, "fas", "fa-tasks"], [1, "check-summary"], [1, "check-list"], [1, "check-item", 3, "passed", "failed", "animation-delay"], [1, "check-item"], [1, "check-status"], [1, "fas"], [1, "check-content"], [1, "check-name"], [1, "check-message"], [1, "check-weight"], [1, "weight-label"], [1, "details-grid"], [1, "detail-card"], [1, "detail-icon"], [1, "fas", "fa-fingerprint"], [1, "detail-content"], [1, "detail-label"], [1, "detail-value", "monospace"], [1, "detail-card", "clickable"], [1, "fas", "fa-tag"], [1, "detail-value"], [1, "fas", "fa-play-circle"], [1, "fas", "fa-stop-circle"], [1, "fas", "fa-hourglass-half"], [1, "error-section"], [1, "result-details-section"], [1, "detail-card", "clickable", 3, "click"], [1, "detail-value", "link"], [1, "fas", "fa-external-link-alt", "detail-action"], [1, "section-header", "error"], [1, "error-content"], [3, "value", "readonly", "toolbar", "lineWrapping"], [1, "fas", "fa-file-code"], [1, "result-details-content"], [1, "loading-state"], [1, "ai-section"], [1, "empty-state"], [1, "skeleton-list"], [1, "skeleton-card"], [1, "skeleton-icon"], [1, "skeleton-content"], [1, "skeleton-line", "wide"], [1, "skeleton-line", "narrow"], [1, "count-badge"], [1, "ai-run-list"], [1, "ai-run-card"], [1, "ai-run-card", 3, "click"], [1, "ai-run-icon", "agent"], [1, "ai-run-content"], [1, "ai-run-name"], [1, "ai-run-meta"], [1, "status-chip"], [1, "cost-chip"], [1, "fas", "fa-chevron-right", "ai-run-arrow"], [1, "fas", "fa-comment-dots"], [1, "ai-run-icon", "prompt"], [1, "empty-icon"], [1, "feedback-list"], [1, "skeleton-avatar"], [1, "skeleton-line", "medium"], [1, "feedback-item"], [1, "feedback-header"], [1, "feedback-user"], [1, "user-avatar"], [1, "user-name"], [1, "feedback-date"], [1, "feedback-body"], [1, "feedback-rating"], [1, "rating-stars"], [1, "fas", "fa-star", 3, "filled"], [1, "rating-value"], [1, "feedback-verdict"], [1, "feedback-comments"], [1, "verdict-badge"], [3, "machineName", "machineId", "runByUserName", "runByUserEmail", "runContextDetailsJson"], [1, "log-header"], [1, "log-title"], [1, "log-actions"], ["kendoButton", "", "look", "flat", 3, "click"], [1, "fas", "fa-copy"], [1, "log-container"]], template: function TestRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
1317
1326
  i0.ɵɵelementStart(0, "div", 0);
1318
- i0.ɵɵtemplate(1, TestRunFormComponentExtended_div_1_Template, 7, 1, "div", 1);
1327
+ i0.ɵɵconditionalCreate(1, TestRunFormComponentExtended_Conditional_1_Template, 7, 1, "div", 1);
1319
1328
  i0.ɵɵelementStart(2, "div", 2)(3, "nav", 3)(4, "ol")(5, "li")(6, "a", 4);
1320
1329
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_a_click_6_listener() { return ctx.navigateToTestingDashboard(); });
1321
1330
  i0.ɵɵelement(7, "i", 5);
1322
1331
  i0.ɵɵelementStart(8, "span", 6);
1323
1332
  i0.ɵɵtext(9, "Testing");
1324
1333
  i0.ɵɵelementEnd()()();
1325
- i0.ɵɵtemplate(10, TestRunFormComponentExtended_li_10_Template, 6, 1, "li", 7);
1326
- i0.ɵɵelementStart(11, "li", 8);
1327
- i0.ɵɵelement(12, "i", 9);
1334
+ i0.ɵɵconditionalCreate(10, TestRunFormComponentExtended_Conditional_10_Template, 6, 1, "li");
1335
+ i0.ɵɵelementStart(11, "li", 7);
1336
+ i0.ɵɵelement(12, "i", 8);
1328
1337
  i0.ɵɵelementStart(13, "span");
1329
1338
  i0.ɵɵtext(14);
1330
1339
  i0.ɵɵelementEnd()()()();
1331
- i0.ɵɵelementStart(15, "div", 10)(16, "div", 11)(17, "div", 12);
1332
- i0.ɵɵelement(18, "i", 13);
1340
+ i0.ɵɵelementStart(15, "div", 9)(16, "div", 10)(17, "div", 11);
1341
+ i0.ɵɵelement(18, "i", 12);
1333
1342
  i0.ɵɵelementEnd();
1334
- i0.ɵɵelementStart(19, "div", 14)(20, "h1");
1343
+ i0.ɵɵelementStart(19, "div", 13)(20, "h1");
1335
1344
  i0.ɵɵtext(21, " Test Run ");
1336
- i0.ɵɵelementStart(22, "span", 15);
1345
+ i0.ɵɵelementStart(22, "span", 14);
1337
1346
  i0.ɵɵtext(23);
1338
1347
  i0.ɵɵelementEnd()();
1339
- i0.ɵɵelementStart(24, "div", 16)(25, "span", 17);
1348
+ i0.ɵɵelementStart(24, "div", 15)(25, "span", 16);
1340
1349
  i0.ɵɵtext(26);
1341
1350
  i0.ɵɵelementEnd();
1342
- i0.ɵɵtemplate(27, TestRunFormComponentExtended_span_27_Template, 3, 1, "span", 18)(28, TestRunFormComponentExtended_span_28_Template, 3, 0, "span", 18);
1351
+ i0.ɵɵconditionalCreate(27, TestRunFormComponentExtended_Conditional_27_Template, 3, 1, "span", 17);
1352
+ i0.ɵɵconditionalCreate(28, TestRunFormComponentExtended_Conditional_28_Template, 3, 0, "span", 17);
1343
1353
  i0.ɵɵelementEnd()()();
1344
- i0.ɵɵelementStart(29, "div", 19)(30, "button", 20);
1354
+ i0.ɵɵelementStart(29, "div", 18)(30, "button", 19);
1345
1355
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_30_listener() { return ctx.reRunTest(); });
1346
- i0.ɵɵelement(31, "i", 21);
1347
- i0.ɵɵelementStart(32, "span", 22);
1356
+ i0.ɵɵelement(31, "i", 20);
1357
+ i0.ɵɵelementStart(32, "span", 21);
1348
1358
  i0.ɵɵtext(33, "Re-run");
1349
1359
  i0.ɵɵelementEnd()();
1350
- i0.ɵɵelementStart(34, "button", 23);
1360
+ i0.ɵɵelementStart(34, "button", 22);
1351
1361
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_34_listener() { return ctx.refresh(); });
1352
- i0.ɵɵelement(35, "i", 24);
1353
- i0.ɵɵelementStart(36, "span", 22);
1362
+ i0.ɵɵelement(35, "i", 23);
1363
+ i0.ɵɵelementStart(36, "span", 21);
1354
1364
  i0.ɵɵtext(37, "Refresh");
1355
1365
  i0.ɵɵelementEnd()()()();
1356
- i0.ɵɵelementStart(38, "div", 25)(39, "div", 26)(40, "div", 27);
1357
- i0.ɵɵelement(41, "i", 28);
1366
+ i0.ɵɵelementStart(38, "div", 24)(39, "div", 25)(40, "div", 26);
1367
+ i0.ɵɵelement(41, "i", 27);
1358
1368
  i0.ɵɵelementEnd();
1359
- i0.ɵɵelementStart(42, "div", 29)(43, "div", 30);
1369
+ i0.ɵɵelementStart(42, "div", 28)(43, "div", 29);
1360
1370
  i0.ɵɵtext(44, "Started");
1361
1371
  i0.ɵɵelementEnd();
1362
- i0.ɵɵelementStart(45, "div", 31);
1372
+ i0.ɵɵelementStart(45, "div", 30);
1363
1373
  i0.ɵɵtext(46);
1364
1374
  i0.ɵɵelementEnd();
1365
- i0.ɵɵelementStart(47, "div", 32);
1375
+ i0.ɵɵelementStart(47, "div", 31);
1366
1376
  i0.ɵɵtext(48);
1367
1377
  i0.ɵɵpipe(49, "date");
1368
1378
  i0.ɵɵelementEnd()()();
1369
- i0.ɵɵelementStart(50, "div", 26)(51, "div", 27);
1370
- i0.ɵɵelement(52, "i", 33);
1379
+ i0.ɵɵelementStart(50, "div", 25)(51, "div", 26);
1380
+ i0.ɵɵelement(52, "i", 32);
1371
1381
  i0.ɵɵelementEnd();
1372
- i0.ɵɵelementStart(53, "div", 29)(54, "div", 30);
1382
+ i0.ɵɵelementStart(53, "div", 28)(54, "div", 29);
1373
1383
  i0.ɵɵtext(55, "Duration");
1374
1384
  i0.ɵɵelementEnd();
1375
- i0.ɵɵelementStart(56, "div", 31);
1385
+ i0.ɵɵelementStart(56, "div", 30);
1376
1386
  i0.ɵɵtext(57);
1377
1387
  i0.ɵɵelementEnd()()();
1378
- i0.ɵɵelementStart(58, "div", 26)(59, "div", 27);
1379
- i0.ɵɵelement(60, "i", 34);
1388
+ i0.ɵɵelementStart(58, "div", 25)(59, "div", 26);
1389
+ i0.ɵɵelement(60, "i", 33);
1380
1390
  i0.ɵɵelementEnd();
1381
- i0.ɵɵelementStart(61, "div", 29)(62, "div", 30);
1391
+ i0.ɵɵelementStart(61, "div", 28)(62, "div", 29);
1382
1392
  i0.ɵɵtext(63, "Score");
1383
1393
  i0.ɵɵelementEnd();
1384
- i0.ɵɵelementStart(64, "div", 31);
1394
+ i0.ɵɵelementStart(64, "div", 30);
1385
1395
  i0.ɵɵtext(65);
1386
1396
  i0.ɵɵelementEnd();
1387
- i0.ɵɵtemplate(66, TestRunFormComponentExtended_div_66_Template, 2, 4, "div", 35);
1397
+ i0.ɵɵconditionalCreate(66, TestRunFormComponentExtended_Conditional_66_Template, 2, 4, "div", 34);
1388
1398
  i0.ɵɵelementEnd()();
1389
- i0.ɵɵelementStart(67, "div", 26)(68, "div", 27);
1390
- i0.ɵɵelement(69, "i", 36);
1399
+ i0.ɵɵelementStart(67, "div", 25)(68, "div", 26);
1400
+ i0.ɵɵelement(69, "i", 35);
1391
1401
  i0.ɵɵelementEnd();
1392
- i0.ɵɵelementStart(70, "div", 29)(71, "div", 30);
1402
+ i0.ɵɵelementStart(70, "div", 28)(71, "div", 29);
1393
1403
  i0.ɵɵtext(72, "Checks");
1394
1404
  i0.ɵɵelementEnd();
1395
- i0.ɵɵelementStart(73, "div", 31);
1405
+ i0.ɵɵelementStart(73, "div", 30);
1396
1406
  i0.ɵɵtext(74);
1397
1407
  i0.ɵɵelementEnd();
1398
- i0.ɵɵtemplate(75, TestRunFormComponentExtended_div_75_Template, 2, 4, "div", 35);
1408
+ i0.ɵɵconditionalCreate(75, TestRunFormComponentExtended_Conditional_75_Template, 2, 4, "div", 34);
1399
1409
  i0.ɵɵelementEnd()();
1400
- i0.ɵɵelementStart(76, "div", 26)(77, "div", 27);
1401
- i0.ɵɵelement(78, "i", 37);
1410
+ i0.ɵɵelementStart(76, "div", 25)(77, "div", 26);
1411
+ i0.ɵɵelement(78, "i", 36);
1402
1412
  i0.ɵɵelementEnd();
1403
- i0.ɵɵelementStart(79, "div", 29)(80, "div", 30);
1413
+ i0.ɵɵelementStart(79, "div", 28)(80, "div", 29);
1404
1414
  i0.ɵɵtext(81, "Cost");
1405
1415
  i0.ɵɵelementEnd();
1406
- i0.ɵɵelementStart(82, "div", 31);
1416
+ i0.ɵɵelementStart(82, "div", 30);
1407
1417
  i0.ɵɵtext(83);
1408
1418
  i0.ɵɵelementEnd()()()();
1409
- i0.ɵɵtemplate(84, TestRunFormComponentExtended_div_84_Template, 4, 3, "div", 38)(85, TestRunFormComponentExtended_div_85_Template, 9, 2, "div", 39)(86, TestRunFormComponentExtended_div_86_Template, 19, 7, "div", 40);
1419
+ i0.ɵɵconditionalCreate(84, TestRunFormComponentExtended_Conditional_84_Template, 4, 3, "div", 37);
1420
+ i0.ɵɵconditionalCreate(85, TestRunFormComponentExtended_Conditional_85_Template, 9, 2, "div", 38);
1421
+ i0.ɵɵconditionalCreate(86, TestRunFormComponentExtended_Conditional_86_Template, 20, 6, "div", 39);
1410
1422
  i0.ɵɵelementEnd();
1411
- i0.ɵɵelementStart(87, "div", 41)(88, "div", 42)(89, "button", 43);
1423
+ i0.ɵɵelementStart(87, "div", 40)(88, "div", 41)(89, "button", 42);
1412
1424
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_89_listener() { return ctx.changeTab("overview"); });
1413
- i0.ɵɵelement(90, "i", 44);
1425
+ i0.ɵɵelement(90, "i", 43);
1414
1426
  i0.ɵɵelementStart(91, "span");
1415
1427
  i0.ɵɵtext(92, "Overview");
1416
1428
  i0.ɵɵelementEnd()();
1417
- i0.ɵɵelementStart(93, "button", 45);
1429
+ i0.ɵɵelementStart(93, "button", 44);
1418
1430
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_93_listener() { return ctx.changeTab("details"); });
1419
- i0.ɵɵelement(94, "i", 46);
1431
+ i0.ɵɵelement(94, "i", 45);
1420
1432
  i0.ɵɵelementStart(95, "span");
1421
1433
  i0.ɵɵtext(96, "Details");
1422
1434
  i0.ɵɵelementEnd()();
1423
- i0.ɵɵelementStart(97, "button", 47);
1435
+ i0.ɵɵelementStart(97, "button", 46);
1424
1436
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_97_listener() { return ctx.changeTab("ai-runs"); });
1425
- i0.ɵɵelement(98, "i", 48);
1437
+ i0.ɵɵelement(98, "i", 47);
1426
1438
  i0.ɵɵelementStart(99, "span");
1427
1439
  i0.ɵɵtext(100, "AI Runs");
1428
1440
  i0.ɵɵelementEnd();
1429
- i0.ɵɵtemplate(101, TestRunFormComponentExtended_span_101_Template, 2, 1, "span", 49);
1441
+ i0.ɵɵconditionalCreate(101, TestRunFormComponentExtended_Conditional_101_Template, 2, 1, "span", 48);
1430
1442
  i0.ɵɵelementEnd();
1431
- i0.ɵɵelementStart(102, "button", 50);
1443
+ i0.ɵɵelementStart(102, "button", 49);
1432
1444
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_102_listener() { return ctx.changeTab("feedback"); });
1433
- i0.ɵɵelement(103, "i", 51);
1445
+ i0.ɵɵelement(103, "i", 50);
1434
1446
  i0.ɵɵelementStart(104, "span");
1435
1447
  i0.ɵɵtext(105, "Feedback");
1436
1448
  i0.ɵɵelementEnd();
1437
- i0.ɵɵtemplate(106, TestRunFormComponentExtended_span_106_Template, 2, 1, "span", 49);
1449
+ i0.ɵɵconditionalCreate(106, TestRunFormComponentExtended_Conditional_106_Template, 2, 1, "span", 48);
1438
1450
  i0.ɵɵelementEnd();
1439
- i0.ɵɵelementStart(107, "button", 52);
1451
+ i0.ɵɵelementStart(107, "button", 51);
1440
1452
  i0.ɵɵlistener("click", function TestRunFormComponentExtended_Template_button_click_107_listener() { return ctx.changeTab("execution"); });
1441
- i0.ɵɵelement(108, "i", 53);
1453
+ i0.ɵɵelement(108, "i", 52);
1442
1454
  i0.ɵɵelementStart(109, "span");
1443
1455
  i0.ɵɵtext(110, "Execution");
1444
1456
  i0.ɵɵelementEnd()();
1445
- i0.ɵɵtemplate(111, TestRunFormComponentExtended_button_111_Template, 4, 3, "button", 54);
1457
+ i0.ɵɵconditionalCreate(111, TestRunFormComponentExtended_Conditional_111_Template, 4, 3, "button", 53);
1446
1458
  i0.ɵɵelementEnd()();
1447
- i0.ɵɵelementStart(112, "div", 55);
1448
- i0.ɵɵtemplate(113, TestRunFormComponentExtended_div_113_Template, 34, 20, "div", 56)(114, TestRunFormComponentExtended_div_114_Template, 47, 15, "div", 57)(115, TestRunFormComponentExtended_div_115_Template, 5, 5, "div", 58)(116, TestRunFormComponentExtended_div_116_Template, 4, 4, "div", 59)(117, TestRunFormComponentExtended_div_117_Template, 2, 6, "div", 60)(118, TestRunFormComponentExtended_div_118_Template, 13, 5, "div", 61);
1459
+ i0.ɵɵelementStart(112, "div", 54);
1460
+ i0.ɵɵconditionalCreate(113, TestRunFormComponentExtended_Conditional_113_Template, 34, 20, "div", 55);
1461
+ i0.ɵɵconditionalCreate(114, TestRunFormComponentExtended_Conditional_114_Template, 47, 15, "div", 56);
1462
+ i0.ɵɵconditionalCreate(115, TestRunFormComponentExtended_Conditional_115_Template, 5, 5, "div", 57);
1463
+ i0.ɵɵconditionalCreate(116, TestRunFormComponentExtended_Conditional_116_Template, 4, 4, "div", 58);
1464
+ i0.ɵɵconditionalCreate(117, TestRunFormComponentExtended_Conditional_117_Template, 2, 6, "div", 59);
1465
+ i0.ɵɵconditionalCreate(118, TestRunFormComponentExtended_Conditional_118_Template, 13, 5, "div", 60);
1449
1466
  i0.ɵɵelementEnd();
1450
- i0.ɵɵelementStart(119, "div", 62);
1451
- i0.ɵɵelement(120, "i", 63);
1452
- i0.ɵɵelementStart(121, "div", 64)(122, "h4");
1467
+ i0.ɵɵelementStart(119, "div", 61);
1468
+ i0.ɵɵelement(120, "i", 62);
1469
+ i0.ɵɵelementStart(121, "div", 63)(122, "h4");
1453
1470
  i0.ɵɵtext(123, "Keyboard Shortcuts");
1454
1471
  i0.ɵɵelementEnd();
1455
1472
  i0.ɵɵelementStart(124, "ul")(125, "li")(126, "kbd");
@@ -1470,27 +1487,27 @@ let TestRunFormComponentExtended = class TestRunFormComponentExtended extends Te
1470
1487
  } if (rf & 2) {
1471
1488
  i0.ɵɵclassProp("is-mobile", false);
1472
1489
  i0.ɵɵadvance();
1473
- i0.ɵɵproperty("ngIf", ctx.error);
1490
+ i0.ɵɵconditional(ctx.error ? 1 : -1);
1474
1491
  i0.ɵɵadvance();
1475
1492
  i0.ɵɵclassMap(ctx.getStatusClass());
1476
1493
  i0.ɵɵadvance(8);
1477
- i0.ɵɵproperty("ngIf", ctx.test);
1494
+ i0.ɵɵconditional(ctx.test ? 10 : -1);
1478
1495
  i0.ɵɵadvance(4);
1479
- i0.ɵɵtextInterpolate1("Run #", ctx.record.ID.substring(0, 8), "");
1496
+ i0.ɵɵtextInterpolate1("Run #", ctx.record.ID.substring(0, 8));
1480
1497
  i0.ɵɵadvance(3);
1481
1498
  i0.ɵɵstyleProp("background-color", ctx.getStatusColor());
1482
1499
  i0.ɵɵadvance();
1483
1500
  i0.ɵɵproperty("ngClass", ctx.getStatusIcon());
1484
1501
  i0.ɵɵadvance(5);
1485
- i0.ɵɵtextInterpolate1("#", ctx.record.ID.substring(0, 8), "");
1502
+ i0.ɵɵtextInterpolate1("#", ctx.record.ID.substring(0, 8));
1486
1503
  i0.ɵɵadvance(2);
1487
1504
  i0.ɵɵstyleProp("background-color", ctx.getStatusColor());
1488
1505
  i0.ɵɵadvance();
1489
1506
  i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
1490
1507
  i0.ɵɵadvance();
1491
- i0.ɵɵproperty("ngIf", ctx.test);
1508
+ i0.ɵɵconditional(ctx.test ? 27 : -1);
1492
1509
  i0.ɵɵadvance();
1493
- i0.ɵɵproperty("ngIf", ctx.autoRefreshEnabled);
1510
+ i0.ɵɵconditional(ctx.autoRefreshEnabled ? 28 : -1);
1494
1511
  i0.ɵɵadvance(2);
1495
1512
  i0.ɵɵproperty("disabled", !ctx.record.TestID);
1496
1513
  i0.ɵɵadvance(4);
@@ -1506,19 +1523,19 @@ let TestRunFormComponentExtended = class TestRunFormComponentExtended extends Te
1506
1523
  i0.ɵɵadvance(8);
1507
1524
  i0.ɵɵtextInterpolate(ctx.formatScore(ctx.record.Score));
1508
1525
  i0.ɵɵadvance();
1509
- i0.ɵɵproperty("ngIf", ctx.record.Score != null);
1526
+ i0.ɵɵconditional(ctx.record.Score != null ? 66 : -1);
1510
1527
  i0.ɵɵadvance(8);
1511
- i0.ɵɵtextInterpolate2("", ctx.record.PassedChecks, "/", ctx.record.TotalChecks, "");
1528
+ i0.ɵɵtextInterpolate2("", ctx.record.PassedChecks, "/", ctx.record.TotalChecks);
1512
1529
  i0.ɵɵadvance();
1513
- i0.ɵɵproperty("ngIf", ctx.record.TotalChecks);
1530
+ i0.ɵɵconditional(ctx.record.TotalChecks ? 75 : -1);
1514
1531
  i0.ɵɵadvance(8);
1515
1532
  i0.ɵɵtextInterpolate(ctx.formatCost(ctx.record.CostUSD));
1516
1533
  i0.ɵɵadvance();
1517
- i0.ɵɵproperty("ngIf", ctx.record.RunByUser || ctx.testSuiteRun || ctx.record.TargetLogEntityID);
1534
+ i0.ɵɵconditional(ctx.record.RunByUser || ctx.testSuiteRun || ctx.record.TargetLogEntityID ? 84 : -1);
1518
1535
  i0.ɵɵadvance();
1519
- i0.ɵɵproperty("ngIf", !ctx.editingTags);
1536
+ i0.ɵɵconditional(!ctx.editingTags ? 85 : -1);
1520
1537
  i0.ɵɵadvance();
1521
- i0.ɵɵproperty("ngIf", ctx.editingTags);
1538
+ i0.ɵɵconditional(ctx.editingTags ? 86 : -1);
1522
1539
  i0.ɵɵadvance(3);
1523
1540
  i0.ɵɵclassProp("active", ctx.activeTab === "overview");
1524
1541
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "overview");
@@ -1529,30 +1546,30 @@ let TestRunFormComponentExtended = class TestRunFormComponentExtended extends Te
1529
1546
  i0.ɵɵclassProp("active", ctx.activeTab === "ai-runs");
1530
1547
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "ai-runs");
1531
1548
  i0.ɵɵadvance(4);
1532
- i0.ɵɵproperty("ngIf", ctx.aiRunsLoaded);
1549
+ i0.ɵɵconditional(ctx.aiRunsLoaded ? 101 : -1);
1533
1550
  i0.ɵɵadvance();
1534
1551
  i0.ɵɵclassProp("active", ctx.activeTab === "feedback");
1535
1552
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "feedback");
1536
1553
  i0.ɵɵadvance(4);
1537
- i0.ɵɵproperty("ngIf", ctx.feedbackLoaded);
1554
+ i0.ɵɵconditional(ctx.feedbackLoaded ? 106 : -1);
1538
1555
  i0.ɵɵadvance();
1539
1556
  i0.ɵɵclassProp("active", ctx.activeTab === "execution");
1540
1557
  i0.ɵɵattribute("aria-selected", ctx.activeTab === "execution");
1541
1558
  i0.ɵɵadvance(4);
1542
- i0.ɵɵproperty("ngIf", ctx.record.Log);
1559
+ i0.ɵɵconditional(ctx.record.Log ? 111 : -1);
1543
1560
  i0.ɵɵadvance(2);
1544
- i0.ɵɵproperty("ngIf", ctx.activeTab === "overview");
1561
+ i0.ɵɵconditional(ctx.activeTab === "overview" ? 113 : -1);
1545
1562
  i0.ɵɵadvance();
1546
- i0.ɵɵproperty("ngIf", ctx.activeTab === "details");
1563
+ i0.ɵɵconditional(ctx.activeTab === "details" ? 114 : -1);
1547
1564
  i0.ɵɵadvance();
1548
- i0.ɵɵproperty("ngIf", ctx.activeTab === "ai-runs");
1565
+ i0.ɵɵconditional(ctx.activeTab === "ai-runs" ? 115 : -1);
1549
1566
  i0.ɵɵadvance();
1550
- i0.ɵɵproperty("ngIf", ctx.activeTab === "feedback");
1567
+ i0.ɵɵconditional(ctx.activeTab === "feedback" ? 116 : -1);
1551
1568
  i0.ɵɵadvance();
1552
- i0.ɵɵproperty("ngIf", ctx.activeTab === "execution");
1569
+ i0.ɵɵconditional(ctx.activeTab === "execution" ? 117 : -1);
1553
1570
  i0.ɵɵadvance();
1554
- i0.ɵɵproperty("ngIf", ctx.activeTab === "log");
1555
- } }, dependencies: [i5.NgClass, i5.NgForOf, i5.NgIf, i6.DefaultValueAccessor, i6.NgControlStatus, i6.NgModel, i7.ButtonComponent, i8.CodeEditorComponent, i3.ExecutionContextComponent, i9.EntityLinkPillComponent, i5.DecimalPipe, i5.DatePipe], styles: ["\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n --test-primary: #2563eb;\n --test-primary-light: #3b82f6;\n --test-primary-dark: #1d4ed8;\n --test-success: #10b981;\n --test-success-light: #d1fae5;\n --test-error: #ef4444;\n --test-error-light: #fee2e2;\n --test-warning: #f59e0b;\n --test-warning-light: #fef3c7;\n --test-timeout: #f97316;\n --test-timeout-light: #ffedd5;\n --test-running: #3b82f6;\n --test-pending: #8b5cf6;\n --test-skipped: #6b7280;\n --test-bg: #f8fafc;\n --test-surface: #ffffff;\n --test-border: #e2e8f0;\n --test-text: #1e293b;\n --test-text-secondary: #64748b;\n --test-text-muted: #94a3b8;\n --test-radius-sm: 6px;\n --test-radius-md: 10px;\n --test-radius-lg: 16px;\n --test-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);\n --test-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n --test-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --test-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n display: block;\n height: 100%;\n}\n\n\n\n.test-run-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--test-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n\n\n\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 12px 20px;\n background: linear-gradient(135deg, var(--test-error) 0%, #dc2626 100%);\n color: white;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n animation: _ngcontent-%COMP%_slideDown 0.3s ease-out;\n}\n\n.error-banner[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);\n}\n\n.error-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.retry-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: white;\n padding: 6px 12px;\n border-radius: var(--test-radius-sm);\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.retry-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n\n\n\n\n.test-run-header[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n padding: 20px;\n position: relative;\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 flex-wrap: wrap;\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(--test-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--test-text-muted);\n margin: 0 4px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .current[_ngcontent-%COMP%] {\n color: var(--test-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 margin-bottom: 20px;\n gap: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: var(--test-radius-md);\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(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.status-indicator[_ngcontent-%COMP%]:hover {\n transform: scale(1.05);\n}\n\n\n\n.test-run-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: clamp(18px, 4vw, 24px);\n font-weight: 700;\n color: var(--test-text);\n line-height: 1.2;\n word-wrap: break-word;\n}\n\n.test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] .run-id[_ngcontent-%COMP%] {\n color: var(--test-text-secondary);\n font-weight: 500;\n}\n\n.test-run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: var(--test-shadow-sm);\n}\n\n\n\n.meta-item[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 14px;\n color: var(--test-text-secondary);\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.header-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.btn-text[_ngcontent-%COMP%] {\n margin-left: 6px;\n}\n\n\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 16px;\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(--test-border);\n border-radius: var(--test-radius-md);\n padding: 14px;\n transition: var(--test-transition);\n}\n\n.metric-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--test-shadow-md);\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(--test-surface);\n border-radius: var(--test-radius-sm);\n color: var(--test-primary);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.metric-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.metric-detail[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--test-text-muted);\n margin-top: 2px;\n}\n\n\n\n.metric-progress[_ngcontent-%COMP%] {\n margin-top: 6px;\n height: 4px;\n background: var(--test-border);\n border-radius: 2px;\n overflow: hidden;\n}\n\n.progress-bar[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.5s ease-out;\n}\n\n\n\n.secondary-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 16px;\n border-top: 1px solid var(--test-border);\n flex-wrap: wrap;\n}\n\n.info-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--test-text-secondary);\n padding: 6px 12px;\n background: var(--test-bg);\n border-radius: 20px;\n transition: var(--test-transition);\n}\n\n.info-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.info-chip.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.info-chip.clickable[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.1);\n color: var(--test-primary);\n}\n\n\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: 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: 14px 18px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--test-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--test-primary);\n border-bottom-color: var(--test-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(--test-border);\n color: var(--test-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: rgba(37, 99, 235, 0.15);\n color: var(--test-primary);\n}\n\n.shortcut-hint[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--test-text-muted);\n background: var(--test-bg);\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 600;\n margin-left: 4px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n}\n\n\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n scroll-behavior: smooth;\n}\n\n\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n\n\n.result-hero[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 32px;\n text-align: center;\n border: 2px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ecfdf5 0%, var(--test-success-light) 100%);\n border-color: var(--test-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, var(--test-error-light) 100%);\n border-color: var(--test-error);\n}\n\n.result-hero.error[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fffbeb 0%, var(--test-warning-light) 100%);\n border-color: var(--test-warning);\n}\n\n.result-hero.timeout[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fff7ed 0%, var(--test-timeout-light) 100%);\n border-color: var(--test-timeout);\n}\n\n.result-hero.running[_ngcontent-%COMP%], \n.result-hero.pending[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--test-primary-light);\n}\n\n.result-icon-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.result-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border-radius: 50%;\n font-size: 40px;\n margin: 0 auto;\n box-shadow: var(--test-shadow-md);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-success); }\n.result-hero.failed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-error); }\n.result-hero.error[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-warning); }\n.result-hero.timeout[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-timeout); }\n.result-hero.running[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-hero.pending[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-primary); }\n\n.result-pulse[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background: rgba(59, 130, 246, 0.2);\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n}\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0; }\n}\n\n.result-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: clamp(24px, 5vw, 32px);\n font-weight: 800;\n color: var(--test-text);\n}\n\n.result-details[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.result-score[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text-secondary);\n}\n\n.result-divider[_ngcontent-%COMP%] {\n color: var(--test-border);\n}\n\n.result-checks[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--test-text-muted);\n}\n\n\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n gap: 12px;\n}\n\n.section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--test-text);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--test-primary);\n}\n\n.section-header.error[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--test-error);\n}\n\n.check-summary[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n\n\n.check-results[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.check-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.check-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 14px 16px;\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n transition: var(--test-transition);\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out backwards;\n}\n\n.check-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.check-item.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);\n border-color: #86efac;\n}\n\n.check-item.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);\n border-color: #fca5a5;\n}\n\n.check-status[_ngcontent-%COMP%] {\n font-size: 20px;\n flex-shrink: 0;\n margin-top: 2px;\n}\n\n.check-item.passed[_ngcontent-%COMP%] .check-status[_ngcontent-%COMP%] { color: var(--test-success); }\n.check-item.failed[_ngcontent-%COMP%] .check-status[_ngcontent-%COMP%] { color: var(--test-error); }\n\n.check-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.check-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 4px;\n}\n\n.check-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--test-text-secondary);\n line-height: 1.5;\n word-wrap: break-word;\n}\n\n.check-weight[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--test-text-muted);\n flex-shrink: 0;\n text-align: right;\n}\n\n.weight-label[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n\n\n.comparison-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-bottom: 16px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n padding: 4px;\n}\n\n.comparison-tab[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n color: var(--test-text-secondary);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.comparison-tab[_ngcontent-%COMP%]:hover {\n color: var(--test-text);\n background: rgba(0, 0, 0, 0.05);\n}\n\n.comparison-tab.active[_ngcontent-%COMP%] {\n background: var(--test-surface);\n color: var(--test-primary);\n font-weight: 600;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-content[_ngcontent-%COMP%] {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n\n\n\n\n.details-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 12px;\n}\n\n.detail-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n transition: var(--test-transition);\n}\n\n.detail-card.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.detail-card.clickable[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n color: var(--test-primary);\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.detail-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--test-text);\n word-wrap: break-word;\n font-weight: 500;\n}\n\n.detail-value.monospace[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 12px;\n}\n\n.detail-value.link[_ngcontent-%COMP%] {\n color: var(--test-primary);\n}\n\n.detail-action[_ngcontent-%COMP%] {\n color: var(--test-text-muted);\n font-size: 12px;\n transition: var(--test-transition);\n}\n\n.detail-card.clickable[_ngcontent-%COMP%]:hover .detail-action[_ngcontent-%COMP%] {\n color: var(--test-primary);\n}\n\n\n\n.error-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.error-content[_ngcontent-%COMP%] {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid #fca5a5;\n}\n\n\n\n.result-details-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.result-details-content[_ngcontent-%COMP%] {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n\n\n\n\n.ai-runs-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.ai-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.count-badge[_ngcontent-%COMP%] {\n background: var(--test-bg);\n color: var(--test-text-secondary);\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.ai-run-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.ai-run-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.ai-run-card[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n color: white;\n border-radius: var(--test-radius-md);\n font-size: 18px;\n flex-shrink: 0;\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon.agent[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n}\n\n.ai-run-icon.prompt[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #9333ea 0%, #7c3aed 100%);\n}\n\n.ai-run-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.ai-run-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ai-run-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n font-size: 12px;\n color: var(--test-text-secondary);\n flex-wrap: wrap;\n}\n\n.status-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-chip.complete[_ngcontent-%COMP%], \n.status-chip.completed[_ngcontent-%COMP%], \n.status-chip.passed[_ngcontent-%COMP%] {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.status-chip.failed[_ngcontent-%COMP%], \n.status-chip.error[_ngcontent-%COMP%] {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.status-chip.running[_ngcontent-%COMP%] {\n background: #dbeafe;\n color: var(--test-primary);\n}\n\n.cost-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n color: var(--test-text-muted);\n}\n\n.ai-run-arrow[_ngcontent-%COMP%] {\n color: var(--test-text-muted);\n font-size: 14px;\n transition: var(--test-transition);\n}\n\n.ai-run-card[_ngcontent-%COMP%]:hover .ai-run-arrow[_ngcontent-%COMP%] {\n color: var(--test-primary);\n transform: translateX(2px);\n}\n\n\n\n\n\n.feedback-tab[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.feedback-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-item[_ngcontent-%COMP%] {\n padding: 20px;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n border: 1px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.feedback-item[_ngcontent-%COMP%]:hover {\n border-color: var(--test-primary-light);\n}\n\n.feedback-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.feedback-user[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.user-avatar[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: 50%;\n color: var(--test-primary);\n font-size: 14px;\n}\n\n.user-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--test-text-muted);\n}\n\n.feedback-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.feedback-rating[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.rating-stars[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n}\n\n.rating-stars[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--test-border);\n}\n\n.rating-stars[_ngcontent-%COMP%] i.filled[_ngcontent-%COMP%] {\n color: #fbbf24;\n}\n\n.rating-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-verdict[_ngcontent-%COMP%] {\n display: flex;\n}\n\n.verdict-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}\n\n.verdict-badge.correct[_ngcontent-%COMP%] {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.verdict-badge.incorrect[_ngcontent-%COMP%] {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.feedback-comments[_ngcontent-%COMP%] {\n padding: 14px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n border-left: 3px solid var(--test-primary);\n}\n\n.feedback-comments[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n line-height: 1.6;\n color: var(--test-text);\n}\n\n\n\n\n\n.log-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0;\n height: 100%;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.log-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--test-surface);\n padding: 16px 20px;\n border-radius: var(--test-radius-lg) var(--test-radius-lg) 0 0;\n border: 1px solid var(--test-border);\n border-bottom: none;\n}\n\n.log-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.log-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--test-text-secondary);\n font-size: 16px;\n}\n\n.log-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.log-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.log-container[_ngcontent-%COMP%] {\n flex: 1;\n border-radius: 0 0 var(--test-radius-lg) var(--test-radius-lg);\n overflow: hidden;\n min-height: 300px;\n border: 1px solid var(--test-border);\n border-top: none;\n}\n\n\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n padding: 20px;\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: 14px;\n padding: 16px;\n background: var(--test-surface);\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n}\n\n.skeleton-icon[_ngcontent-%COMP%], \n.skeleton-avatar[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n border-radius: var(--test-radius-md);\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n}\n\n.skeleton-avatar[_ngcontent-%COMP%] {\n border-radius: 50%;\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 border-radius: 4px;\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n}\n\n.skeleton-line.wide[_ngcontent-%COMP%] { width: 70%; }\n.skeleton-line.medium[_ngcontent-%COMP%] { width: 55%; }\n.skeleton-line.narrow[_ngcontent-%COMP%] { width: 40%; }\n\n@keyframes _ngcontent-%COMP%_shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\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 24px;\n text-align: center;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\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(--test-bg);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: var(--test-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--test-text-secondary);\n max-width: 300px;\n}\n\n\n\n\n\n.shortcuts-hint[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 100;\n}\n\n.shortcuts-hint[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: 50%;\n color: var(--test-text-muted);\n font-size: 16px;\n cursor: pointer;\n box-shadow: var(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.shortcuts-hint[_ngcontent-%COMP%]:hover > i[_ngcontent-%COMP%] {\n color: var(--test-primary);\n border-color: var(--test-primary-light);\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] {\n display: none;\n position: absolute;\n bottom: 50px;\n right: 0;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n padding: 16px;\n box-shadow: var(--test-shadow-lg);\n min-width: 200px;\n}\n\n.shortcuts-hint[_ngcontent-%COMP%]:hover .shortcuts-popup[_ngcontent-%COMP%] {\n display: block;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 6px 0;\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n font-size: 11px;\n color: var(--test-text);\n}\n\n\n\n\n\n@media (max-width: 1024px) {\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .shortcuts-hint[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .test-run-form[_ngcontent-%COMP%] {\n height: auto;\n min-height: 100%;\n }\n\n .test-run-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] ol[_ngcontent-%COMP%] {\n font-size: 12px;\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 .status-indicator[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .test-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 .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: 10px;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 12px 14px;\n font-size: 13px;\n gap: 6px;\n }\n\n .tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .shortcut-hint[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 24px 20px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n font-size: 32px;\n }\n\n .result-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 24px;\n }\n\n .result-score[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .check-results[_ngcontent-%COMP%], \n .comparison-section[_ngcontent-%COMP%], \n .ai-section[_ngcontent-%COMP%], \n .feedback-item[_ngcontent-%COMP%] {\n padding: 18px;\n }\n\n .check-item[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .comparison-tabs[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 4px;\n }\n\n .comparison-tab[_ngcontent-%COMP%] {\n text-align: center;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .detail-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .ai-run-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .ai-run-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .ai-run-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 4px;\n }\n\n .feedback-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .log-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .log-actions[_ngcontent-%COMP%] {\n justify-content: stretch;\n }\n\n .log-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 40px 20px;\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\n\n\n\n\n@media (max-width: 480px) {\n .test-run-header[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .header-left[_ngcontent-%COMP%] {\n gap: 12px;\n }\n\n .status-indicator[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 18px;\n border-radius: 8px;\n }\n\n .test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 10px;\n flex-direction: column;\n text-align: center;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .metric-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 8px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 10px 12px;\n font-size: 12px;\n }\n\n .tab-badge[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n font-size: 28px;\n }\n\n .result-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .result-score[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .result-checks[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .check-item[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 8px;\n }\n\n .check-weight[_ngcontent-%COMP%] {\n text-align: left;\n }\n}\n\n\n\n\n\n@media (hover: none) and (pointer: coarse) {\n .tab[_ngcontent-%COMP%], \n .comparison-tab[_ngcontent-%COMP%], \n .ai-run-card[_ngcontent-%COMP%], \n .check-item[_ngcontent-%COMP%], \n .feedback-item[_ngcontent-%COMP%], \n .detail-card.clickable[_ngcontent-%COMP%] {\n -webkit-tap-highlight-color: transparent;\n }\n\n .ai-run-card[_ngcontent-%COMP%]:active, \n .detail-card.clickable[_ngcontent-%COMP%]:active {\n background: rgba(37, 99, 235, 0.1);\n transform: scale(0.98);\n }\n\n .tab[_ngcontent-%COMP%]:active {\n background: rgba(37, 99, 235, 0.1);\n }\n\n \n\n .tab[_ngcontent-%COMP%] {\n min-height: 48px;\n }\n\n .ai-run-card[_ngcontent-%COMP%], \n .detail-card[_ngcontent-%COMP%] {\n min-height: 64px;\n }\n}\n\n\n\n\n\n@media (prefers-contrast: high) {\n .status-badge[_ngcontent-%COMP%] {\n border: 2px solid currentColor;\n }\n\n .check-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@media (prefers-reduced-motion: reduce) {\n *[_ngcontent-%COMP%], \n *[_ngcontent-%COMP%]::before, \n *[_ngcontent-%COMP%]::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n\n .skeleton-icon[_ngcontent-%COMP%], \n .skeleton-avatar[_ngcontent-%COMP%], \n .skeleton-line[_ngcontent-%COMP%] {\n animation: none;\n background: #e2e8f0;\n }\n\n .result-pulse[_ngcontent-%COMP%] {\n animation: none;\n display: none;\n }\n}\n\n\n\n\n\n@media print {\n .test-run-form[_ngcontent-%COMP%] {\n background: white;\n height: auto;\n }\n\n .header-actions[_ngcontent-%COMP%], \n .tabs-container[_ngcontent-%COMP%], \n .shortcuts-hint[_ngcontent-%COMP%], \n .log-actions[_ngcontent-%COMP%] {\n display: none !important;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n overflow: visible;\n padding: 0;\n }\n\n .result-hero[_ngcontent-%COMP%], \n .check-results[_ngcontent-%COMP%], \n .details-grid[_ngcontent-%COMP%], \n .ai-section[_ngcontent-%COMP%], \n .feedback-item[_ngcontent-%COMP%] {\n break-inside: avoid;\n box-shadow: none;\n border: 1px solid #ddd;\n }\n\n .comparison-content[_ngcontent-%COMP%], \n .log-container[_ngcontent-%COMP%] {\n max-height: none;\n overflow: visible;\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(37, 99, 235, 0.04) 0%, rgba(37, 99, 235, 0.08) 100%);\n border: 1px solid rgba(37, 99, 235, 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(--test-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: rgba(37, 99, 235, 0.1);\n color: var(--test-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(--test-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(--test-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--test-text-secondary);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%]:hover {\n border-color: var(--test-primary);\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\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(--test-surface);\n border: 1px solid var(--test-primary);\n border-radius: var(--test-radius-md);\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(37, 99, 235, 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: rgba(37, 99, 235, 0.08);\n border-bottom: 1px solid rgba(37, 99, 235, 0.2);\n}\n\n.tags-editor-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--test-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(--test-surface);\n border: 1px solid var(--test-primary);\n color: var(--test-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(--test-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--test-transition);\n}\n\n.tag-remove-btn[_ngcontent-%COMP%]:hover {\n opacity: 1;\n background: var(--test-error-light);\n color: var(--test-error);\n}\n\n.tags-empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--test-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(--test-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--test-bg);\n}\n\n.tag-text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--test-primary);\n background: var(--test-surface);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.tag-text-input[_ngcontent-%COMP%]::placeholder {\n color: var(--test-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(--test-bg);\n border-top: 1px solid var(--test-border);\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}"], changeDetection: 0 }); }
1571
+ i0.ɵɵconditional(ctx.activeTab === "log" ? 118 : -1);
1572
+ } }, dependencies: [i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.ButtonComponent, i4.CodeEditorComponent, i5.ExecutionContextComponent, i6.EntityLinkPillComponent, i1.DecimalPipe, i1.DatePipe], styles: ["\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n --test-primary: #2563eb;\n --test-primary-light: #3b82f6;\n --test-primary-dark: #1d4ed8;\n --test-success: #10b981;\n --test-success-light: #d1fae5;\n --test-error: #ef4444;\n --test-error-light: #fee2e2;\n --test-warning: #f59e0b;\n --test-warning-light: #fef3c7;\n --test-timeout: #f97316;\n --test-timeout-light: #ffedd5;\n --test-running: #3b82f6;\n --test-pending: #8b5cf6;\n --test-skipped: #6b7280;\n --test-bg: #f8fafc;\n --test-surface: #ffffff;\n --test-border: #e2e8f0;\n --test-text: #1e293b;\n --test-text-secondary: #64748b;\n --test-text-muted: #94a3b8;\n --test-radius-sm: 6px;\n --test-radius-md: 10px;\n --test-radius-lg: 16px;\n --test-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);\n --test-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n --test-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --test-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n display: block;\n height: 100%;\n}\n\n\n\n.test-run-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--test-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n\n\n\n\n.error-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 12px 20px;\n background: linear-gradient(135deg, var(--test-error) 0%, #dc2626 100%);\n color: white;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n animation: _ngcontent-%COMP%_slideDown 0.3s ease-out;\n}\n\n.error-banner[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);\n}\n\n.error-banner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.retry-btn[_ngcontent-%COMP%] {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: white;\n padding: 6px 12px;\n border-radius: var(--test-radius-sm);\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.retry-btn[_ngcontent-%COMP%]:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n\n\n\n\n.test-run-header[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n padding: 20px;\n position: relative;\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 flex-wrap: wrap;\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(--test-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--test-text-muted);\n margin: 0 4px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .current[_ngcontent-%COMP%] {\n color: var(--test-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 margin-bottom: 20px;\n gap: 16px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n\n\n.status-indicator[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: var(--test-radius-md);\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(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.status-indicator[_ngcontent-%COMP%]:hover {\n transform: scale(1.05);\n}\n\n\n\n.test-run-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: clamp(18px, 4vw, 24px);\n font-weight: 700;\n color: var(--test-text);\n line-height: 1.2;\n word-wrap: break-word;\n}\n\n.test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] .run-id[_ngcontent-%COMP%] {\n color: var(--test-text-secondary);\n font-weight: 500;\n}\n\n.test-run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: var(--test-shadow-sm);\n}\n\n\n\n.meta-item[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 14px;\n color: var(--test-text-secondary);\n}\n\n.meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.header-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.btn-text[_ngcontent-%COMP%] {\n margin-left: 6px;\n}\n\n\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 16px;\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(--test-border);\n border-radius: var(--test-radius-md);\n padding: 14px;\n transition: var(--test-transition);\n}\n\n.metric-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--test-shadow-md);\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(--test-surface);\n border-radius: var(--test-radius-sm);\n color: var(--test-primary);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.metric-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.metric-detail[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--test-text-muted);\n margin-top: 2px;\n}\n\n\n\n.metric-progress[_ngcontent-%COMP%] {\n margin-top: 6px;\n height: 4px;\n background: var(--test-border);\n border-radius: 2px;\n overflow: hidden;\n}\n\n.progress-bar[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.5s ease-out;\n}\n\n\n\n.secondary-info[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 16px;\n border-top: 1px solid var(--test-border);\n flex-wrap: wrap;\n}\n\n.info-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--test-text-secondary);\n padding: 6px 12px;\n background: var(--test-bg);\n border-radius: 20px;\n transition: var(--test-transition);\n}\n\n.info-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.info-chip.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.info-chip.clickable[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.1);\n color: var(--test-primary);\n}\n\n\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: 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: 14px 18px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--test-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--test-primary);\n border-bottom-color: var(--test-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(--test-border);\n color: var(--test-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: rgba(37, 99, 235, 0.15);\n color: var(--test-primary);\n}\n\n.shortcut-hint[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--test-text-muted);\n background: var(--test-bg);\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 600;\n margin-left: 4px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n}\n\n\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n scroll-behavior: smooth;\n}\n\n\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n\n\n.result-hero[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 32px;\n text-align: center;\n border: 2px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ecfdf5 0%, var(--test-success-light) 100%);\n border-color: var(--test-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, var(--test-error-light) 100%);\n border-color: var(--test-error);\n}\n\n.result-hero.error[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fffbeb 0%, var(--test-warning-light) 100%);\n border-color: var(--test-warning);\n}\n\n.result-hero.timeout[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fff7ed 0%, var(--test-timeout-light) 100%);\n border-color: var(--test-timeout);\n}\n\n.result-hero.running[_ngcontent-%COMP%], \n.result-hero.pending[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--test-primary-light);\n}\n\n.result-icon-wrapper[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.result-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border-radius: 50%;\n font-size: 40px;\n margin: 0 auto;\n box-shadow: var(--test-shadow-md);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-success); }\n.result-hero.failed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-error); }\n.result-hero.error[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-warning); }\n.result-hero.timeout[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-timeout); }\n.result-hero.running[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-hero.pending[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%] { color: var(--test-primary); }\n\n.result-pulse[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background: rgba(59, 130, 246, 0.2);\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n}\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0; }\n}\n\n.result-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: clamp(24px, 5vw, 32px);\n font-weight: 800;\n color: var(--test-text);\n}\n\n.result-details[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.result-score[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text-secondary);\n}\n\n.result-divider[_ngcontent-%COMP%] {\n color: var(--test-border);\n}\n\n.result-checks[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--test-text-muted);\n}\n\n\n\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n gap: 12px;\n}\n\n.section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--test-text);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--test-primary);\n}\n\n.section-header.error[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--test-error);\n}\n\n.check-summary[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n\n\n.check-results[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.check-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.check-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding: 14px 16px;\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n transition: var(--test-transition);\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out backwards;\n}\n\n.check-item[_ngcontent-%COMP%]:hover {\n transform: translateX(4px);\n}\n\n.check-item.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);\n border-color: #86efac;\n}\n\n.check-item.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);\n border-color: #fca5a5;\n}\n\n.check-status[_ngcontent-%COMP%] {\n font-size: 20px;\n flex-shrink: 0;\n margin-top: 2px;\n}\n\n.check-item.passed[_ngcontent-%COMP%] .check-status[_ngcontent-%COMP%] { color: var(--test-success); }\n.check-item.failed[_ngcontent-%COMP%] .check-status[_ngcontent-%COMP%] { color: var(--test-error); }\n\n.check-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.check-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 4px;\n}\n\n.check-message[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--test-text-secondary);\n line-height: 1.5;\n word-wrap: break-word;\n}\n\n.check-weight[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--test-text-muted);\n flex-shrink: 0;\n text-align: right;\n}\n\n.weight-label[_ngcontent-%COMP%] {\n font-weight: 500;\n}\n\n\n\n.comparison-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-tabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n margin-bottom: 16px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n padding: 4px;\n}\n\n.comparison-tab[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n color: var(--test-text-secondary);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.comparison-tab[_ngcontent-%COMP%]:hover {\n color: var(--test-text);\n background: rgba(0, 0, 0, 0.05);\n}\n\n.comparison-tab.active[_ngcontent-%COMP%] {\n background: var(--test-surface);\n color: var(--test-primary);\n font-weight: 600;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-content[_ngcontent-%COMP%] {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n\n\n\n\n.details-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 12px;\n}\n\n.detail-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n transition: var(--test-transition);\n}\n\n.detail-card.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.detail-card.clickable[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n}\n\n.detail-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n color: var(--test-primary);\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.detail-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--test-text);\n word-wrap: break-word;\n font-weight: 500;\n}\n\n.detail-value.monospace[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 12px;\n}\n\n.detail-value.link[_ngcontent-%COMP%] {\n color: var(--test-primary);\n}\n\n.detail-action[_ngcontent-%COMP%] {\n color: var(--test-text-muted);\n font-size: 12px;\n transition: var(--test-transition);\n}\n\n.detail-card.clickable[_ngcontent-%COMP%]:hover .detail-action[_ngcontent-%COMP%] {\n color: var(--test-primary);\n}\n\n\n\n.error-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.error-content[_ngcontent-%COMP%] {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid #fca5a5;\n}\n\n\n\n.result-details-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.result-details-content[_ngcontent-%COMP%] {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n\n\n\n\n.ai-runs-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.ai-section[_ngcontent-%COMP%] {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.count-badge[_ngcontent-%COMP%] {\n background: var(--test-bg);\n color: var(--test-text-secondary);\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.ai-run-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.ai-run-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.ai-run-card[_ngcontent-%COMP%]:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n color: white;\n border-radius: var(--test-radius-md);\n font-size: 18px;\n flex-shrink: 0;\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon.agent[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n}\n\n.ai-run-icon.prompt[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #9333ea 0%, #7c3aed 100%);\n}\n\n.ai-run-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.ai-run-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ai-run-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n font-size: 12px;\n color: var(--test-text-secondary);\n flex-wrap: wrap;\n}\n\n.status-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-chip.complete[_ngcontent-%COMP%], \n.status-chip.completed[_ngcontent-%COMP%], \n.status-chip.passed[_ngcontent-%COMP%] {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.status-chip.failed[_ngcontent-%COMP%], \n.status-chip.error[_ngcontent-%COMP%] {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.status-chip.running[_ngcontent-%COMP%] {\n background: #dbeafe;\n color: var(--test-primary);\n}\n\n.cost-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n color: var(--test-text-muted);\n}\n\n.ai-run-arrow[_ngcontent-%COMP%] {\n color: var(--test-text-muted);\n font-size: 14px;\n transition: var(--test-transition);\n}\n\n.ai-run-card[_ngcontent-%COMP%]:hover .ai-run-arrow[_ngcontent-%COMP%] {\n color: var(--test-primary);\n transform: translateX(2px);\n}\n\n\n\n\n\n.feedback-tab[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.feedback-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-item[_ngcontent-%COMP%] {\n padding: 20px;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n border: 1px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.feedback-item[_ngcontent-%COMP%]:hover {\n border-color: var(--test-primary-light);\n}\n\n.feedback-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.feedback-user[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.user-avatar[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: 50%;\n color: var(--test-primary);\n font-size: 14px;\n}\n\n.user-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--test-text-muted);\n}\n\n.feedback-body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.feedback-rating[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.rating-stars[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n}\n\n.rating-stars[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--test-border);\n}\n\n.rating-stars[_ngcontent-%COMP%] i.filled[_ngcontent-%COMP%] {\n color: #fbbf24;\n}\n\n.rating-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-verdict[_ngcontent-%COMP%] {\n display: flex;\n}\n\n.verdict-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}\n\n.verdict-badge.correct[_ngcontent-%COMP%] {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.verdict-badge.incorrect[_ngcontent-%COMP%] {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.feedback-comments[_ngcontent-%COMP%] {\n padding: 14px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n border-left: 3px solid var(--test-primary);\n}\n\n.feedback-comments[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n line-height: 1.6;\n color: var(--test-text);\n}\n\n\n\n\n\n.log-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0;\n height: 100%;\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease-out;\n}\n\n.log-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--test-surface);\n padding: 16px 20px;\n border-radius: var(--test-radius-lg) var(--test-radius-lg) 0 0;\n border: 1px solid var(--test-border);\n border-bottom: none;\n}\n\n.log-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.log-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--test-text-secondary);\n font-size: 16px;\n}\n\n.log-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.log-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n.log-container[_ngcontent-%COMP%] {\n flex: 1;\n border-radius: 0 0 var(--test-radius-lg) var(--test-radius-lg);\n overflow: hidden;\n min-height: 300px;\n border: 1px solid var(--test-border);\n border-top: none;\n}\n\n\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n padding: 20px;\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: 14px;\n padding: 16px;\n background: var(--test-surface);\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n}\n\n.skeleton-icon[_ngcontent-%COMP%], \n.skeleton-avatar[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n border-radius: var(--test-radius-md);\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n}\n\n.skeleton-avatar[_ngcontent-%COMP%] {\n border-radius: 50%;\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 border-radius: 4px;\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n}\n\n.skeleton-line.wide[_ngcontent-%COMP%] { width: 70%; }\n.skeleton-line.medium[_ngcontent-%COMP%] { width: 55%; }\n.skeleton-line.narrow[_ngcontent-%COMP%] { width: 40%; }\n\n@keyframes _ngcontent-%COMP%_shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\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 24px;\n text-align: center;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\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(--test-bg);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 36px;\n color: var(--test-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--test-text-secondary);\n max-width: 300px;\n}\n\n\n\n\n\n.shortcuts-hint[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 100;\n}\n\n.shortcuts-hint[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: 50%;\n color: var(--test-text-muted);\n font-size: 16px;\n cursor: pointer;\n box-shadow: var(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.shortcuts-hint[_ngcontent-%COMP%]:hover > i[_ngcontent-%COMP%] {\n color: var(--test-primary);\n border-color: var(--test-primary-light);\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] {\n display: none;\n position: absolute;\n bottom: 50px;\n right: 0;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n padding: 16px;\n box-shadow: var(--test-shadow-lg);\n min-width: 200px;\n}\n\n.shortcuts-hint[_ngcontent-%COMP%]:hover .shortcuts-popup[_ngcontent-%COMP%] {\n display: block;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 6px 0;\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n.shortcuts-popup[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n font-size: 11px;\n color: var(--test-text);\n}\n\n\n\n\n\n@media (max-width: 1024px) {\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .shortcuts-hint[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .test-run-form[_ngcontent-%COMP%] {\n height: auto;\n min-height: 100%;\n }\n\n .test-run-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] {\n margin-bottom: 12px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] ol[_ngcontent-%COMP%] {\n font-size: 12px;\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 .status-indicator[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .test-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 .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: 10px;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 12px 14px;\n font-size: 13px;\n gap: 6px;\n }\n\n .tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .shortcut-hint[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 24px 20px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n font-size: 32px;\n }\n\n .result-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 24px;\n }\n\n .result-score[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .check-results[_ngcontent-%COMP%], \n .comparison-section[_ngcontent-%COMP%], \n .ai-section[_ngcontent-%COMP%], \n .feedback-item[_ngcontent-%COMP%] {\n padding: 18px;\n }\n\n .check-item[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .comparison-tabs[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 4px;\n }\n\n .comparison-tab[_ngcontent-%COMP%] {\n text-align: center;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .detail-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .ai-run-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .ai-run-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .ai-run-meta[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 4px;\n }\n\n .feedback-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .log-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .log-actions[_ngcontent-%COMP%] {\n justify-content: stretch;\n }\n\n .log-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 40px 20px;\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\n\n\n\n\n@media (max-width: 480px) {\n .test-run-header[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .header-left[_ngcontent-%COMP%] {\n gap: 12px;\n }\n\n .status-indicator[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 18px;\n border-radius: 8px;\n }\n\n .test-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 10px;\n flex-direction: column;\n text-align: center;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .metric-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 8px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 10px 12px;\n font-size: 12px;\n }\n\n .tab-badge[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 20px 16px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n font-size: 28px;\n }\n\n .result-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .result-score[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .result-checks[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .section-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .check-item[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 8px;\n }\n\n .check-weight[_ngcontent-%COMP%] {\n text-align: left;\n }\n}\n\n\n\n\n\n@media (hover: none) and (pointer: coarse) {\n .tab[_ngcontent-%COMP%], \n .comparison-tab[_ngcontent-%COMP%], \n .ai-run-card[_ngcontent-%COMP%], \n .check-item[_ngcontent-%COMP%], \n .feedback-item[_ngcontent-%COMP%], \n .detail-card.clickable[_ngcontent-%COMP%] {\n -webkit-tap-highlight-color: transparent;\n }\n\n .ai-run-card[_ngcontent-%COMP%]:active, \n .detail-card.clickable[_ngcontent-%COMP%]:active {\n background: rgba(37, 99, 235, 0.1);\n transform: scale(0.98);\n }\n\n .tab[_ngcontent-%COMP%]:active {\n background: rgba(37, 99, 235, 0.1);\n }\n\n \n\n .tab[_ngcontent-%COMP%] {\n min-height: 48px;\n }\n\n .ai-run-card[_ngcontent-%COMP%], \n .detail-card[_ngcontent-%COMP%] {\n min-height: 64px;\n }\n}\n\n\n\n\n\n@media (prefers-contrast: high) {\n .status-badge[_ngcontent-%COMP%] {\n border: 2px solid currentColor;\n }\n\n .check-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@media (prefers-reduced-motion: reduce) {\n *[_ngcontent-%COMP%], \n *[_ngcontent-%COMP%]::before, \n *[_ngcontent-%COMP%]::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n\n .skeleton-icon[_ngcontent-%COMP%], \n .skeleton-avatar[_ngcontent-%COMP%], \n .skeleton-line[_ngcontent-%COMP%] {\n animation: none;\n background: #e2e8f0;\n }\n\n .result-pulse[_ngcontent-%COMP%] {\n animation: none;\n display: none;\n }\n}\n\n\n\n\n\n@media print {\n .test-run-form[_ngcontent-%COMP%] {\n background: white;\n height: auto;\n }\n\n .header-actions[_ngcontent-%COMP%], \n .tabs-container[_ngcontent-%COMP%], \n .shortcuts-hint[_ngcontent-%COMP%], \n .log-actions[_ngcontent-%COMP%] {\n display: none !important;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n overflow: visible;\n padding: 0;\n }\n\n .result-hero[_ngcontent-%COMP%], \n .check-results[_ngcontent-%COMP%], \n .details-grid[_ngcontent-%COMP%], \n .ai-section[_ngcontent-%COMP%], \n .feedback-item[_ngcontent-%COMP%] {\n break-inside: avoid;\n box-shadow: none;\n border: 1px solid #ddd;\n }\n\n .comparison-content[_ngcontent-%COMP%], \n .log-container[_ngcontent-%COMP%] {\n max-height: none;\n overflow: visible;\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(37, 99, 235, 0.04) 0%, rgba(37, 99, 235, 0.08) 100%);\n border: 1px solid rgba(37, 99, 235, 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(--test-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: rgba(37, 99, 235, 0.1);\n color: var(--test-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(--test-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(--test-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--test-text-secondary);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%]:hover {\n border-color: var(--test-primary);\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\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(--test-surface);\n border: 1px solid var(--test-primary);\n border-radius: var(--test-radius-md);\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(37, 99, 235, 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: rgba(37, 99, 235, 0.08);\n border-bottom: 1px solid rgba(37, 99, 235, 0.2);\n}\n\n.tags-editor-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--test-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(--test-surface);\n border: 1px solid var(--test-primary);\n color: var(--test-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(--test-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--test-transition);\n}\n\n.tag-remove-btn[_ngcontent-%COMP%]:hover {\n opacity: 1;\n background: var(--test-error-light);\n color: var(--test-error);\n}\n\n.tags-empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--test-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(--test-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--test-bg);\n}\n\n.tag-text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--test-primary);\n background: var(--test-surface);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.tag-text-input[_ngcontent-%COMP%]::placeholder {\n color: var(--test-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(--test-bg);\n border-top: 1px solid var(--test-border);\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}"], changeDetection: 0 }); }
1556
1573
  };
1557
1574
  TestRunFormComponentExtended = __decorate([
1558
1575
  RegisterClass(BaseFormComponent, 'MJ: Test Runs')
@@ -1560,14 +1577,10 @@ TestRunFormComponentExtended = __decorate([
1560
1577
  export { TestRunFormComponentExtended };
1561
1578
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestRunFormComponentExtended, [{
1562
1579
  type: Component,
1563
- args: [{ selector: 'mj-test-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-run-form\" [class.is-mobile]=\"false\">\n <!-- Error State -->\n <div class=\"error-banner\" *ngIf=\"error\" (click)=\"retryLoad()\">\n <i class=\"fas fa-exclamation-triangle\"></i>\n <span>{{ error }}</span>\n <button class=\"retry-btn\">\n <i class=\"fas fa-redo\"></i> Retry\n </button>\n </div>\n\n <!-- Header Section -->\n <div class=\"test-run-header\" [class]=\"getStatusClass()\">\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 <li *ngIf=\"test\">\n <i class=\"fas fa-chevron-right separator\"></i>\n <a href=\"javascript:void(0)\" (click)=\"openTest()\">\n <i class=\"fas fa-flask\"></i>\n <span class=\"breadcrumb-text\">{{ test.Name }}</span>\n </a>\n </li>\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 <div class=\"header-content\">\n <div class=\"header-left\">\n <!-- Status Indicator -->\n <div class=\"status-indicator\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n\n <div class=\"test-run-info\">\n <h1>\n Test Run\n <span class=\"run-id\">#{{ record.ID.substring(0, 8) }}</span>\n </h1>\n <div class=\"test-run-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getStatusColor()\">\n {{ record.Status }}\n </span>\n <span class=\"meta-item\" *ngIf=\"test\">\n <i class=\"fas fa-flask\"></i>\n {{ test.Type }}\n </span>\n <span class=\"meta-item\" *ngIf=\"autoRefreshEnabled\">\n <i class=\"fas fa-sync-alt fa-spin\"></i>\n Auto-refreshing\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"header-actions\">\n <button kendoButton (click)=\"reRunTest()\" [disabled]=\"!record.TestID\" title=\"Re-run this test (Cmd+Shift+R)\">\n <i class=\"fas fa-redo\"></i>\n <span class=\"btn-text\">Re-run</span>\n </button>\n <button kendoButton (click)=\"refresh()\" [disabled]=\"isRefreshing\" title=\"Refresh (Cmd+R)\">\n <i class=\"fas fa-sync-alt\" [class.fa-spin]=\"isRefreshing\"></i>\n <span class=\"btn-text\">Refresh</span>\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-label\">Started</div>\n <div class=\"metric-value\">{{ getRelativeTime(record.StartedAt) }}</div>\n <div class=\"metric-detail\">{{ record.StartedAt | date:'short' }}</div>\n </div>\n </div>\n\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-stopwatch\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ calculateDuration() }}</div>\n </div>\n </div>\n\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-star\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Score</div>\n <div class=\"metric-value\">{{ formatScore(record.Score) }}</div>\n <div class=\"metric-progress\" *ngIf=\"record.Score != null\">\n <div class=\"progress-bar\" [style.width.%]=\"getScorePercentage()\" [style.background-color]=\"getStatusColor()\"></div>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-check-double\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Checks</div>\n <div class=\"metric-value\">{{ record.PassedChecks }}/{{ record.TotalChecks }}</div>\n <div class=\"metric-progress\" *ngIf=\"record.TotalChecks\">\n <div class=\"progress-bar\" [style.width.%]=\"getPassRatePercentage()\" [style.background-color]=\"getStatusColor()\"></div>\n </div>\n </div>\n </div>\n\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-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.CostUSD) }}</div>\n </div>\n </div>\n </div>\n\n <!-- Secondary Info -->\n <div class=\"secondary-info\" *ngIf=\"record.RunByUser || testSuiteRun || record.TargetLogEntityID\">\n <span class=\"info-chip\" *ngIf=\"record.RunByUser\">\n <i class=\"fas fa-user\"></i>\n {{ record.RunByUser }}\n </span>\n <span class=\"info-chip clickable\" *ngIf=\"testSuiteRun\" (click)=\"openTestSuiteRun()\">\n <i class=\"fas fa-layer-group\"></i>\n Part of Suite Run (Seq: {{ record.Sequence }})\n </span>\n <!-- Target Entity Link Pill -->\n <mj-entity-link-pill\n *ngIf=\"record.TargetLogEntityID && record.TargetLogID\"\n [entityName]=\"record.TargetLogEntity\"\n [recordId]=\"record.TargetLogID\">\n </mj-entity-link-pill>\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\" [class.active]=\"activeTab === 'overview'\" (click)=\"changeTab('overview')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'overview'\" title=\"Press 1\">\n <i class=\"fas fa-chart-pie\"></i>\n <span>Overview</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'details'\" title=\"Press 2\">\n <i class=\"fas fa-info-circle\"></i>\n <span>Details</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'ai-runs'\" (click)=\"changeTab('ai-runs')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'ai-runs'\" title=\"Press 3\">\n <i class=\"fas fa-robot\"></i>\n <span>AI Runs</span>\n <span class=\"tab-badge\" *ngIf=\"aiRunsLoaded\">{{ aiAgentRuns.length + aiPromptRuns.length }}</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'feedback'\" (click)=\"changeTab('feedback')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'feedback'\" title=\"Press 4\">\n <i class=\"fas fa-comments\"></i>\n <span>Feedback</span>\n <span class=\"tab-badge\" *ngIf=\"feedbackLoaded\">{{ feedbacks.length }}</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'execution'\" (click)=\"changeTab('execution')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'execution'\" title=\"Press 5\">\n <i class=\"fas fa-microchip\"></i>\n <span>Execution</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'log'\" (click)=\"changeTab('log')\" *ngIf=\"record.Log\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'log'\" title=\"Press 6\">\n <i class=\"fas fa-terminal\"></i>\n <span>Log</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'\" [@fadeIn]>\n <!-- Result Hero -->\n <div class=\"result-hero\" [class]=\"getStatusClass()\">\n <div class=\"result-icon-wrapper\">\n <div class=\"result-icon\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"result-pulse\" *ngIf=\"record.Status === 'Running'\"></div>\n </div>\n <div class=\"result-text\">\n <h2>TEST {{ record.Status.toUpperCase() }}</h2>\n <div class=\"result-details\">\n <span class=\"result-score\">Score: {{ formatScore(record.Score) }}</span>\n <span class=\"result-divider\">|</span>\n <span class=\"result-checks\">{{ record.PassedChecks }} of {{ record.TotalChecks }} checks passed</span>\n </div>\n </div>\n </div>\n\n <!-- Check Results -->\n <div class=\"check-results\" *ngIf=\"getCheckResults().length > 0\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-tasks\"></i> Check Results</h3>\n <span class=\"check-summary\">{{ record.PassedChecks }} passed, {{ record.FailedChecks }} failed</span>\n </div>\n <div class=\"check-list\">\n <div class=\"check-item\" *ngFor=\"let check of getCheckResults(); let i = index\"\n [class.passed]=\"check.passed\" [class.failed]=\"!check.passed\"\n [style.animation-delay.ms]=\"i * 50\">\n <div class=\"check-status\">\n <i class=\"fas\" [class.fa-check-circle]=\"check.passed\" [class.fa-times-circle]=\"!check.passed\"></i>\n </div>\n <div class=\"check-content\">\n <div class=\"check-name\">{{ check.name }}</div>\n <div class=\"check-message\" *ngIf=\"check.message\">{{ check.message }}</div>\n </div>\n <div class=\"check-weight\" *ngIf=\"check.weight\">\n <span class=\"weight-label\">Weight:</span> {{ check.weight }}\n </div>\n </div>\n </div>\n </div>\n\n <!-- Data Comparison -->\n <div class=\"comparison-section\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-exchange-alt\"></i> Data Comparison</h3>\n </div>\n <div class=\"comparison-tabs\">\n <button class=\"comparison-tab\" [class.active]=\"comparisonView === 'input'\" (click)=\"setComparisonView('input')\">\n <i class=\"fas fa-sign-in-alt\"></i> Input\n </button>\n <button class=\"comparison-tab\" [class.active]=\"comparisonView === 'expected'\" (click)=\"setComparisonView('expected')\">\n <i class=\"fas fa-bullseye\"></i> Expected\n </button>\n <button class=\"comparison-tab\" [class.active]=\"comparisonView === 'actual'\" (click)=\"setComparisonView('actual')\">\n <i class=\"fas fa-check-square\"></i> Actual\n </button>\n </div>\n <div class=\"comparison-content\">\n <mj-code-editor\n [value]=\"getComparisonData()\"\n language=\"json\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n\n <!-- Details Tab -->\n <div class=\"details-tab\" *ngIf=\"activeTab === 'details'\" [@fadeIn]>\n <div class=\"details-grid\">\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-fingerprint\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Test Run ID</div>\n <div class=\"detail-value monospace\">{{ record.ID }}</div>\n </div>\n </div>\n\n <div class=\"detail-card clickable\" *ngIf=\"test\" (click)=\"openTest()\">\n <div class=\"detail-icon\"><i class=\"fas fa-flask\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Test</div>\n <div class=\"detail-value link\">{{ test.Name }}</div>\n </div>\n <i class=\"fas fa-external-link-alt detail-action\"></i>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-tag\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Target Type</div>\n <div class=\"detail-value\">{{ record.TargetType || 'N/A' }}</div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-play-circle\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Started At</div>\n <div class=\"detail-value\">{{ record.StartedAt | date:'medium' }}</div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-stop-circle\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Completed At</div>\n <div class=\"detail-value\">{{ record.CompletedAt | date:'medium' }}</div>\n </div>\n </div>\n\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-hourglass-half\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Duration</div>\n <div class=\"detail-value\">{{ calculateDuration() }}</div>\n </div>\n </div>\n </div>\n\n <!-- Error Message -->\n <div class=\"error-section\" *ngIf=\"record.ErrorMessage\">\n <div class=\"section-header error\">\n <h3><i class=\"fas fa-exclamation-triangle\"></i> Error Message</h3>\n </div>\n <div class=\"error-content\">\n <mj-code-editor\n [value]=\"record.ErrorMessage\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n\n <!-- Result Details -->\n <div class=\"result-details-section\" *ngIf=\"parsedData.resultDetails\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-file-code\"></i> Result Details</h3>\n </div>\n <div class=\"result-details-content\">\n <mj-code-editor\n [value]=\"getFormattedResultDetails()\"\n language=\"json\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n\n <!-- AI Runs Tab -->\n <div class=\"ai-runs-tab\" *ngIf=\"activeTab === 'ai-runs'\" [@fadeIn]>\n <!-- Loading State -->\n <div class=\"loading-state\" *ngIf=\"loadingAIRuns\">\n <div class=\"skeleton-list\">\n <div class=\"skeleton-card\" *ngFor=\"let i of [1,2,3]\">\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 <!-- AI Agent Runs -->\n <div class=\"ai-section\" *ngIf=\"!loadingAIRuns && aiAgentRuns.length > 0\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-robot\"></i> AI Agent Runs</h3>\n <span class=\"count-badge\">{{ aiAgentRuns.length }}</span>\n </div>\n <div class=\"ai-run-list\">\n <div class=\"ai-run-card\" *ngFor=\"let run of aiAgentRuns\" (click)=\"openAIAgentRun(run.ID)\">\n <div class=\"ai-run-icon agent\">\n <i class=\"fas fa-robot\"></i>\n </div>\n <div class=\"ai-run-content\">\n <div class=\"ai-run-name\">{{ run.Agent }}</div>\n <div class=\"ai-run-meta\">\n <span class=\"status-chip\" [class]=\"run.Status.toLowerCase()\">{{ run.Status }}</span>\n <span *ngIf=\"run.TotalCost\" class=\"cost-chip\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.TotalCost | number:'1.4-4' }}\n </span>\n </div>\n </div>\n <i class=\"fas fa-chevron-right ai-run-arrow\"></i>\n </div>\n </div>\n </div>\n\n <!-- AI Prompt Runs -->\n <div class=\"ai-section\" *ngIf=\"!loadingAIRuns && aiPromptRuns.length > 0\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-comment-dots\"></i> AI Prompt Runs</h3>\n <span class=\"count-badge\">{{ aiPromptRuns.length }}</span>\n </div>\n <div class=\"ai-run-list\">\n <div class=\"ai-run-card\" *ngFor=\"let run of aiPromptRuns\" (click)=\"openAIPromptRun(run.ID)\">\n <div class=\"ai-run-icon prompt\">\n <i class=\"fas fa-comment-dots\"></i>\n </div>\n <div class=\"ai-run-content\">\n <div class=\"ai-run-name\">{{ run.Prompt || run.Model }}</div>\n <div class=\"ai-run-meta\">\n <span *ngIf=\"run.TotalCost\" class=\"cost-chip\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.TotalCost | number:'1.4-4' }}\n </span>\n </div>\n </div>\n <i class=\"fas fa-chevron-right ai-run-arrow\"></i>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"aiRunsLoaded && aiAgentRuns.length === 0 && aiPromptRuns.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-robot\"></i>\n </div>\n <h3>No AI Runs</h3>\n <p>This test execution didn't involve any AI agent or prompt runs.</p>\n </div>\n </div>\n\n <!-- Feedback Tab -->\n <div class=\"feedback-tab\" *ngIf=\"activeTab === 'feedback'\" [@fadeIn]>\n <!-- Loading State -->\n <div class=\"loading-state\" *ngIf=\"loadingFeedback\">\n <div class=\"skeleton-list\">\n <div class=\"skeleton-card\" *ngFor=\"let i of [1,2]\">\n <div class=\"skeleton-avatar\"></div>\n <div class=\"skeleton-content\">\n <div class=\"skeleton-line wide\"></div>\n <div class=\"skeleton-line narrow\"></div>\n <div class=\"skeleton-line medium\"></div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Feedback List -->\n <div class=\"feedback-list\" *ngIf=\"!loadingFeedback && feedbacks.length > 0\">\n <div class=\"feedback-item\" *ngFor=\"let feedback of feedbacks\">\n <div class=\"feedback-header\">\n <div class=\"feedback-user\">\n <div class=\"user-avatar\">\n <i class=\"fas fa-user\"></i>\n </div>\n <span class=\"user-name\">{{ feedback.ReviewerUser }}</span>\n </div>\n <div class=\"feedback-date\">\n {{ getRelativeTime(feedback.__mj_CreatedAt) }}\n </div>\n </div>\n <div class=\"feedback-body\">\n <div class=\"feedback-rating\">\n <div class=\"rating-stars\">\n <i class=\"fas fa-star\" *ngFor=\"let s of [1,2,3,4,5,6,7,8,9,10]\"\n [class.filled]=\"s <= (feedback.Rating || 0)\"></i>\n </div>\n <span class=\"rating-value\">{{ feedback.Rating }}/10</span>\n </div>\n <div class=\"feedback-verdict\" *ngIf=\"feedback.IsCorrect !== null\">\n <span class=\"verdict-badge\" [class.correct]=\"feedback.IsCorrect\" [class.incorrect]=\"!feedback.IsCorrect\">\n <i class=\"fas\" [class.fa-check]=\"feedback.IsCorrect\" [class.fa-times]=\"!feedback.IsCorrect\"></i>\n {{ feedback.IsCorrect ? 'Marked Correct' : 'Marked Incorrect' }}\n </span>\n </div>\n <div class=\"feedback-comments\" *ngIf=\"feedback.CorrectionSummary\">\n <p>{{ feedback.CorrectionSummary }}</p>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"feedbackLoaded && feedbacks.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-comments\"></i>\n </div>\n <h3>No Feedback Yet</h3>\n <p>No one has reviewed this test run yet. Be the first to provide feedback!</p>\n </div>\n </div>\n\n <!-- Execution Context Tab -->\n <div class=\"execution-tab\" *ngIf=\"activeTab === 'execution'\" [@fadeIn]>\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 <!-- Execution Log Tab -->\n <div class=\"log-tab\" *ngIf=\"activeTab === 'log'\" [@fadeIn]>\n <div class=\"log-header\">\n <div class=\"log-title\">\n <i class=\"fas fa-terminal\"></i>\n <h3>Execution Log</h3>\n </div>\n <div class=\"log-actions\">\n <button kendoButton (click)=\"copyLogToClipboard()\" look=\"flat\">\n <i class=\"fas fa-copy\"></i>\n <span class=\"btn-text\">Copy</span>\n </button>\n </div>\n </div>\n <div class=\"log-container\">\n <mj-code-editor\n [value]=\"record.Log || ''\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n\n <!-- Keyboard Shortcuts Help (shown on hover of ? icon) -->\n <div class=\"shortcuts-hint\" title=\"Keyboard Shortcuts\">\n <i class=\"fas fa-keyboard\"></i>\n <div class=\"shortcuts-popup\">\n <h4>Keyboard Shortcuts</h4>\n <ul>\n <li><kbd>1-6</kbd> Switch tabs</li>\n <li><kbd>Cmd+R</kbd> Refresh</li>\n <li><kbd>Cmd+Shift+R</kbd> Re-run test</li>\n </ul>\n </div>\n </div>\n</div>\n", styles: ["/* ===========================\n Test Run Form - World-Class UX\n Premium Testing Dashboard Styles\n =========================== */\n\n/* CSS Custom Properties for Theming - using :host for Angular encapsulation */\n:host {\n --test-primary: #2563eb;\n --test-primary-light: #3b82f6;\n --test-primary-dark: #1d4ed8;\n --test-success: #10b981;\n --test-success-light: #d1fae5;\n --test-error: #ef4444;\n --test-error-light: #fee2e2;\n --test-warning: #f59e0b;\n --test-warning-light: #fef3c7;\n --test-timeout: #f97316;\n --test-timeout-light: #ffedd5;\n --test-running: #3b82f6;\n --test-pending: #8b5cf6;\n --test-skipped: #6b7280;\n --test-bg: #f8fafc;\n --test-surface: #ffffff;\n --test-border: #e2e8f0;\n --test-text: #1e293b;\n --test-text-secondary: #64748b;\n --test-text-muted: #94a3b8;\n --test-radius-sm: 6px;\n --test-radius-md: 10px;\n --test-radius-lg: 16px;\n --test-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);\n --test-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n --test-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --test-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n display: block;\n height: 100%;\n}\n\n/* Base Container */\n.test-run-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--test-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* ===========================\n Error Banner\n =========================== */\n.error-banner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 12px 20px;\n background: linear-gradient(135deg, var(--test-error) 0%, #dc2626 100%);\n color: white;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n animation: slideDown 0.3s ease-out;\n}\n\n.error-banner:hover {\n background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);\n}\n\n.error-banner i {\n font-size: 16px;\n}\n\n.retry-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: white;\n padding: 6px 12px;\n border-radius: var(--test-radius-sm);\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.retry-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n@keyframes slideDown {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n/* ===========================\n Header Section\n =========================== */\n.test-run-header {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n padding: 20px;\n position: relative;\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 flex-wrap: wrap;\n}\n\n.breadcrumb li {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.breadcrumb a {\n color: var(--test-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.breadcrumb a:hover {\n background: rgba(37, 99, 235, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb .separator {\n font-size: 10px;\n color: var(--test-text-muted);\n margin: 0 4px;\n}\n\n.breadcrumb .current {\n color: var(--test-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 margin-bottom: 20px;\n gap: 16px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n/* Status Indicator */\n.status-indicator {\n width: 56px;\n height: 56px;\n border-radius: var(--test-radius-md);\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(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.status-indicator:hover {\n transform: scale(1.05);\n}\n\n/* Test Run Info */\n.test-run-info {\n flex: 1;\n min-width: 0;\n}\n\n.test-run-info h1 {\n margin: 0 0 8px 0;\n font-size: clamp(18px, 4vw, 24px);\n font-weight: 700;\n color: var(--test-text);\n line-height: 1.2;\n word-wrap: break-word;\n}\n\n.test-run-info h1 .run-id {\n color: var(--test-text-secondary);\n font-weight: 500;\n}\n\n.test-run-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n/* Status Badge */\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: var(--test-shadow-sm);\n}\n\n/* Meta Item */\n.meta-item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 14px;\n color: var(--test-text-secondary);\n}\n\n.meta-item i {\n font-size: 12px;\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.header-actions button {\n white-space: nowrap;\n}\n\n.btn-text {\n margin-left: 6px;\n}\n\n/* ===========================\n Metrics Bar\n =========================== */\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 16px;\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(--test-border);\n border-radius: var(--test-radius-md);\n padding: 14px;\n transition: var(--test-transition);\n}\n\n.metric-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--test-shadow-md);\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(--test-surface);\n border-radius: var(--test-radius-sm);\n color: var(--test-primary);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.metric-content {\n flex: 1;\n min-width: 0;\n}\n\n.metric-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.metric-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.metric-detail {\n font-size: 11px;\n color: var(--test-text-muted);\n margin-top: 2px;\n}\n\n/* Progress bar in metric card */\n.metric-progress {\n margin-top: 6px;\n height: 4px;\n background: var(--test-border);\n border-radius: 2px;\n overflow: hidden;\n}\n\n.progress-bar {\n height: 100%;\n border-radius: 2px;\n transition: width 0.5s ease-out;\n}\n\n/* Secondary Info */\n.secondary-info {\n display: flex;\n gap: 12px;\n padding-top: 16px;\n border-top: 1px solid var(--test-border);\n flex-wrap: wrap;\n}\n\n.info-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--test-text-secondary);\n padding: 6px 12px;\n background: var(--test-bg);\n border-radius: 20px;\n transition: var(--test-transition);\n}\n\n.info-chip i {\n font-size: 12px;\n}\n\n.info-chip.clickable {\n cursor: pointer;\n}\n\n.info-chip.clickable:hover {\n background: rgba(37, 99, 235, 0.1);\n color: var(--test-primary);\n}\n\n/* ===========================\n Tabs Navigation\n =========================== */\n.tabs-container {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: 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: 14px 18px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--test-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab:hover {\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\n}\n\n.tab.active {\n color: var(--test-primary);\n border-bottom-color: var(--test-primary);\n font-weight: 600;\n}\n\n.tab i {\n font-size: 15px;\n}\n\n.tab-badge {\n background: var(--test-border);\n color: var(--test-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.tab.active .tab-badge {\n background: rgba(37, 99, 235, 0.15);\n color: var(--test-primary);\n}\n\n.shortcut-hint {\n font-size: 10px;\n color: var(--test-text-muted);\n background: var(--test-bg);\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 600;\n margin-left: 4px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n}\n\n/* ===========================\n Tab Content Area\n =========================== */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n scroll-behavior: smooth;\n}\n\n/* ===========================\n Overview Tab\n =========================== */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: fadeIn 0.3s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* Result Hero Card */\n.result-hero {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 32px;\n text-align: center;\n border: 2px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.result-hero.passed {\n background: linear-gradient(135deg, #ecfdf5 0%, var(--test-success-light) 100%);\n border-color: var(--test-success);\n}\n\n.result-hero.failed {\n background: linear-gradient(135deg, #fef2f2 0%, var(--test-error-light) 100%);\n border-color: var(--test-error);\n}\n\n.result-hero.error {\n background: linear-gradient(135deg, #fffbeb 0%, var(--test-warning-light) 100%);\n border-color: var(--test-warning);\n}\n\n.result-hero.timeout {\n background: linear-gradient(135deg, #fff7ed 0%, var(--test-timeout-light) 100%);\n border-color: var(--test-timeout);\n}\n\n.result-hero.running,\n.result-hero.pending {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--test-primary-light);\n}\n\n.result-icon-wrapper {\n position: relative;\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.result-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border-radius: 50%;\n font-size: 40px;\n margin: 0 auto;\n box-shadow: var(--test-shadow-md);\n}\n\n.result-hero.passed .result-icon { color: var(--test-success); }\n.result-hero.failed .result-icon { color: var(--test-error); }\n.result-hero.error .result-icon { color: var(--test-warning); }\n.result-hero.timeout .result-icon { color: var(--test-timeout); }\n.result-hero.running .result-icon,\n.result-hero.pending .result-icon { color: var(--test-primary); }\n\n.result-pulse {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background: rgba(59, 130, 246, 0.2);\n animation: pulse 2s ease-in-out infinite;\n}\n\n@keyframes pulse {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0; }\n}\n\n.result-text h2 {\n margin: 0 0 12px 0;\n font-size: clamp(24px, 5vw, 32px);\n font-weight: 800;\n color: var(--test-text);\n}\n\n.result-details {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.result-score {\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text-secondary);\n}\n\n.result-divider {\n color: var(--test-border);\n}\n\n.result-checks {\n font-size: 16px;\n color: var(--test-text-muted);\n}\n\n/* Section Headers */\n.section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n gap: 12px;\n}\n\n.section-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--test-text);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.section-header h3 i {\n color: var(--test-primary);\n}\n\n.section-header.error h3 i {\n color: var(--test-error);\n}\n\n.check-summary {\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n/* Check Results Section */\n.check-results {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.check-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.check-item {\n display: flex;\n gap: 12px;\n padding: 14px 16px;\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n transition: var(--test-transition);\n animation: fadeIn 0.3s ease-out backwards;\n}\n\n.check-item:hover {\n transform: translateX(4px);\n}\n\n.check-item.passed {\n background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);\n border-color: #86efac;\n}\n\n.check-item.failed {\n background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);\n border-color: #fca5a5;\n}\n\n.check-status {\n font-size: 20px;\n flex-shrink: 0;\n margin-top: 2px;\n}\n\n.check-item.passed .check-status { color: var(--test-success); }\n.check-item.failed .check-status { color: var(--test-error); }\n\n.check-content {\n flex: 1;\n min-width: 0;\n}\n\n.check-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 4px;\n}\n\n.check-message {\n font-size: 13px;\n color: var(--test-text-secondary);\n line-height: 1.5;\n word-wrap: break-word;\n}\n\n.check-weight {\n font-size: 12px;\n color: var(--test-text-muted);\n flex-shrink: 0;\n text-align: right;\n}\n\n.weight-label {\n font-weight: 500;\n}\n\n/* Comparison Section */\n.comparison-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-tabs {\n display: flex;\n gap: 4px;\n margin-bottom: 16px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n padding: 4px;\n}\n\n.comparison-tab {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n color: var(--test-text-secondary);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.comparison-tab:hover {\n color: var(--test-text);\n background: rgba(0, 0, 0, 0.05);\n}\n\n.comparison-tab.active {\n background: var(--test-surface);\n color: var(--test-primary);\n font-weight: 600;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-content {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n/* ===========================\n Details Tab\n =========================== */\n.details-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: fadeIn 0.3s ease-out;\n}\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 12px;\n}\n\n.detail-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n transition: var(--test-transition);\n}\n\n.detail-card.clickable {\n cursor: pointer;\n}\n\n.detail-card.clickable:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n}\n\n.detail-icon {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n color: var(--test-primary);\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.detail-content {\n flex: 1;\n min-width: 0;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--test-text);\n word-wrap: break-word;\n font-weight: 500;\n}\n\n.detail-value.monospace {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 12px;\n}\n\n.detail-value.link {\n color: var(--test-primary);\n}\n\n.detail-action {\n color: var(--test-text-muted);\n font-size: 12px;\n transition: var(--test-transition);\n}\n\n.detail-card.clickable:hover .detail-action {\n color: var(--test-primary);\n}\n\n/* Error Section */\n.error-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.error-content {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid #fca5a5;\n}\n\n/* Result Details Section */\n.result-details-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.result-details-content {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n/* ===========================\n AI Runs Tab\n =========================== */\n.ai-runs-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: fadeIn 0.3s ease-out;\n}\n\n.ai-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.count-badge {\n background: var(--test-bg);\n color: var(--test-text-secondary);\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.ai-run-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.ai-run-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.ai-run-card:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n color: white;\n border-radius: var(--test-radius-md);\n font-size: 18px;\n flex-shrink: 0;\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon.agent {\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n}\n\n.ai-run-icon.prompt {\n background: linear-gradient(135deg, #9333ea 0%, #7c3aed 100%);\n}\n\n.ai-run-content {\n flex: 1;\n min-width: 0;\n}\n\n.ai-run-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ai-run-meta {\n display: flex;\n gap: 10px;\n font-size: 12px;\n color: var(--test-text-secondary);\n flex-wrap: wrap;\n}\n\n.status-chip {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-chip.complete,\n.status-chip.completed,\n.status-chip.passed {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.status-chip.failed,\n.status-chip.error {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.status-chip.running {\n background: #dbeafe;\n color: var(--test-primary);\n}\n\n.cost-chip {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n color: var(--test-text-muted);\n}\n\n.ai-run-arrow {\n color: var(--test-text-muted);\n font-size: 14px;\n transition: var(--test-transition);\n}\n\n.ai-run-card:hover .ai-run-arrow {\n color: var(--test-primary);\n transform: translateX(2px);\n}\n\n/* ===========================\n Feedback Tab\n =========================== */\n.feedback-tab {\n animation: fadeIn 0.3s ease-out;\n}\n\n.feedback-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-item {\n padding: 20px;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n border: 1px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.feedback-item:hover {\n border-color: var(--test-primary-light);\n}\n\n.feedback-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.feedback-user {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.user-avatar {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: 50%;\n color: var(--test-primary);\n font-size: 14px;\n}\n\n.user-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-date {\n font-size: 12px;\n color: var(--test-text-muted);\n}\n\n.feedback-body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.feedback-rating {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.rating-stars {\n display: flex;\n gap: 2px;\n}\n\n.rating-stars i {\n font-size: 14px;\n color: var(--test-border);\n}\n\n.rating-stars i.filled {\n color: #fbbf24;\n}\n\n.rating-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-verdict {\n display: flex;\n}\n\n.verdict-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}\n\n.verdict-badge.correct {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.verdict-badge.incorrect {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.feedback-comments {\n padding: 14px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n border-left: 3px solid var(--test-primary);\n}\n\n.feedback-comments p {\n margin: 0;\n font-size: 14px;\n line-height: 1.6;\n color: var(--test-text);\n}\n\n/* ===========================\n Log Tab\n =========================== */\n.log-tab {\n display: flex;\n flex-direction: column;\n gap: 0;\n height: 100%;\n animation: fadeIn 0.3s ease-out;\n}\n\n.log-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--test-surface);\n padding: 16px 20px;\n border-radius: var(--test-radius-lg) var(--test-radius-lg) 0 0;\n border: 1px solid var(--test-border);\n border-bottom: none;\n}\n\n.log-title {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.log-title i {\n color: var(--test-text-secondary);\n font-size: 16px;\n}\n\n.log-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.log-actions {\n display: flex;\n gap: 8px;\n}\n\n.log-container {\n flex: 1;\n border-radius: 0 0 var(--test-radius-lg) var(--test-radius-lg);\n overflow: hidden;\n min-height: 300px;\n border: 1px solid var(--test-border);\n border-top: none;\n}\n\n/* ===========================\n Loading States & Skeletons\n =========================== */\n.loading-state {\n padding: 20px;\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: 14px;\n padding: 16px;\n background: var(--test-surface);\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n}\n\n.skeleton-icon,\n.skeleton-avatar {\n width: 44px;\n height: 44px;\n border-radius: var(--test-radius-md);\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n}\n\n.skeleton-avatar {\n border-radius: 50%;\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 border-radius: 4px;\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n}\n\n.skeleton-line.wide { width: 70%; }\n.skeleton-line.medium { width: 55%; }\n.skeleton-line.narrow { width: 40%; }\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n/* ===========================\n Empty States\n =========================== */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\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(--test-bg);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 36px;\n color: var(--test-text-muted);\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: var(--test-text-secondary);\n max-width: 300px;\n}\n\n/* ===========================\n Keyboard Shortcuts Help\n =========================== */\n.shortcuts-hint {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 100;\n}\n\n.shortcuts-hint > i {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: 50%;\n color: var(--test-text-muted);\n font-size: 16px;\n cursor: pointer;\n box-shadow: var(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.shortcuts-hint:hover > i {\n color: var(--test-primary);\n border-color: var(--test-primary-light);\n}\n\n.shortcuts-popup {\n display: none;\n position: absolute;\n bottom: 50px;\n right: 0;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n padding: 16px;\n box-shadow: var(--test-shadow-lg);\n min-width: 200px;\n}\n\n.shortcuts-hint:hover .shortcuts-popup {\n display: block;\n animation: fadeIn 0.2s ease-out;\n}\n\n.shortcuts-popup h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.shortcuts-popup ul {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.shortcuts-popup li {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 6px 0;\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n.shortcuts-popup kbd {\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n font-size: 11px;\n color: var(--test-text);\n}\n\n/* ===========================\n Responsive Design - Tablet\n =========================== */\n@media (max-width: 1024px) {\n .metrics-bar {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .details-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .shortcuts-hint {\n display: none;\n }\n}\n\n/* ===========================\n Responsive Design - Mobile\n =========================== */\n@media (max-width: 768px) {\n .test-run-form {\n height: auto;\n min-height: 100%;\n }\n\n .test-run-header {\n padding: 16px;\n }\n\n .breadcrumb {\n margin-bottom: 12px;\n }\n\n .breadcrumb ol {\n font-size: 12px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left {\n width: 100%;\n }\n\n .status-indicator {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .test-run-info h1 {\n font-size: 18px;\n }\n\n .test-run-meta {\n gap: 8px;\n }\n\n .status-badge {\n padding: 4px 10px;\n font-size: 11px;\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: 10px;\n }\n\n .metric-card {\n padding: 12px;\n }\n\n .metric-icon {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .tabs {\n padding: 0 12px;\n }\n\n .tab {\n padding: 12px 14px;\n font-size: 13px;\n gap: 6px;\n }\n\n .tab i {\n font-size: 14px;\n }\n\n .shortcut-hint {\n display: none;\n }\n\n .tab-content {\n padding: 16px;\n }\n\n .result-hero {\n padding: 24px 20px;\n }\n\n .result-icon {\n width: 64px;\n height: 64px;\n font-size: 32px;\n }\n\n .result-text h2 {\n font-size: 24px;\n }\n\n .result-score {\n font-size: 16px;\n }\n\n .check-results,\n .comparison-section,\n .ai-section,\n .feedback-item {\n padding: 18px;\n }\n\n .check-item {\n padding: 12px;\n }\n\n .comparison-tabs {\n flex-direction: column;\n gap: 4px;\n }\n\n .comparison-tab {\n text-align: center;\n }\n\n .details-grid {\n grid-template-columns: 1fr;\n }\n\n .detail-card {\n padding: 14px;\n }\n\n .ai-run-card {\n padding: 14px;\n }\n\n .ai-run-icon {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .ai-run-meta {\n flex-direction: column;\n gap: 4px;\n }\n\n .feedback-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .log-header {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .log-actions {\n justify-content: stretch;\n }\n\n .log-actions button {\n flex: 1;\n }\n\n .empty-state {\n padding: 40px 20px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon i {\n font-size: 28px;\n }\n}\n\n/* ===========================\n Responsive Design - Small Mobile\n =========================== */\n@media (max-width: 480px) {\n .test-run-header {\n padding: 12px;\n }\n\n .header-left {\n gap: 12px;\n }\n\n .status-indicator {\n width: 40px;\n height: 40px;\n font-size: 18px;\n border-radius: 8px;\n }\n\n .test-run-info h1 {\n font-size: 16px;\n }\n\n .metrics-bar {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card {\n padding: 10px;\n flex-direction: column;\n text-align: center;\n }\n\n .metric-icon {\n margin-bottom: 8px;\n }\n\n .metric-label {\n font-size: 9px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .tabs {\n padding: 0 8px;\n }\n\n .tab {\n padding: 10px 12px;\n font-size: 12px;\n }\n\n .tab-badge {\n display: none;\n }\n\n .tab-content {\n padding: 12px;\n }\n\n .result-hero {\n padding: 20px 16px;\n }\n\n .result-icon {\n width: 56px;\n height: 56px;\n font-size: 28px;\n }\n\n .result-text h2 {\n font-size: 20px;\n }\n\n .result-score {\n font-size: 14px;\n }\n\n .result-checks {\n font-size: 12px;\n }\n\n .section-header h3 {\n font-size: 16px;\n }\n\n .check-item {\n flex-direction: column;\n gap: 8px;\n }\n\n .check-weight {\n text-align: left;\n }\n}\n\n/* ===========================\n Touch Device Optimizations\n =========================== */\n@media (hover: none) and (pointer: coarse) {\n .tab,\n .comparison-tab,\n .ai-run-card,\n .check-item,\n .feedback-item,\n .detail-card.clickable {\n -webkit-tap-highlight-color: transparent;\n }\n\n .ai-run-card:active,\n .detail-card.clickable:active {\n background: rgba(37, 99, 235, 0.1);\n transform: scale(0.98);\n }\n\n .tab:active {\n background: rgba(37, 99, 235, 0.1);\n }\n\n /* Larger touch targets */\n .tab {\n min-height: 48px;\n }\n\n .ai-run-card,\n .detail-card {\n min-height: 64px;\n }\n}\n\n/* ===========================\n High Contrast Mode\n =========================== */\n@media (prefers-contrast: high) {\n .status-badge {\n border: 2px solid currentColor;\n }\n\n .check-item {\n border-width: 2px;\n }\n\n .tab.active {\n border-bottom-width: 4px;\n }\n}\n\n/* ===========================\n Reduced Motion\n =========================== */\n@media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n\n .skeleton-icon,\n .skeleton-avatar,\n .skeleton-line {\n animation: none;\n background: #e2e8f0;\n }\n\n .result-pulse {\n animation: none;\n display: none;\n }\n}\n\n/* ===========================\n Print Styles\n =========================== */\n@media print {\n .test-run-form {\n background: white;\n height: auto;\n }\n\n .header-actions,\n .tabs-container,\n .shortcuts-hint,\n .log-actions {\n display: none !important;\n }\n\n .tab-content {\n overflow: visible;\n padding: 0;\n }\n\n .result-hero,\n .check-results,\n .details-grid,\n .ai-section,\n .feedback-item {\n break-inside: avoid;\n box-shadow: none;\n border: 1px solid #ddd;\n }\n\n .comparison-content,\n .log-container {\n max-height: none;\n overflow: visible;\n }\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(37, 99, 235, 0.04) 0%, rgba(37, 99, 235, 0.08) 100%);\n border: 1px solid rgba(37, 99, 235, 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(--test-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: rgba(37, 99, 235, 0.1);\n color: var(--test-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(--test-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(--test-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--test-text-secondary);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.tags-bar-edit:hover {\n border-color: var(--test-primary);\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\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(--test-surface);\n border: 1px solid var(--test-primary);\n border-radius: var(--test-radius-md);\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(37, 99, 235, 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: rgba(37, 99, 235, 0.08);\n border-bottom: 1px solid rgba(37, 99, 235, 0.2);\n}\n\n.tags-editor-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--test-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(--test-surface);\n border: 1px solid var(--test-primary);\n color: var(--test-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(--test-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--test-transition);\n}\n\n.tag-remove-btn:hover {\n opacity: 1;\n background: var(--test-error-light);\n color: var(--test-error);\n}\n\n.tags-empty-hint {\n font-size: 12px;\n color: var(--test-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(--test-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--test-bg);\n}\n\n.tag-text-input:focus {\n outline: none;\n border-color: var(--test-primary);\n background: var(--test-surface);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.tag-text-input::placeholder {\n color: var(--test-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(--test-bg);\n border-top: 1px solid var(--test-border);\n}\n\n/* Mobile Responsive for Tags */\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"] }]
1564
- }], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.TestingDialogService }, { type: i4.ApplicationManager }, { type: i0.ViewContainerRef }], { handleKeyboardShortcut: [{
1580
+ args: [{ standalone: false, selector: 'mj-test-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-run-form\" [class.is-mobile]=\"false\">\n <!-- Error State -->\n @if (error) {\n <div class=\"error-banner\" (click)=\"retryLoad()\">\n <i class=\"fas fa-exclamation-triangle\"></i>\n <span>{{ error }}</span>\n <button class=\"retry-btn\">\n <i class=\"fas fa-redo\"></i> Retry\n </button>\n </div>\n }\n\n <!-- Header Section -->\n <div class=\"test-run-header\" [class]=\"getStatusClass()\">\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 (test) {\n <li>\n <i class=\"fas fa-chevron-right separator\"></i>\n <a href=\"javascript:void(0)\" (click)=\"openTest()\">\n <i class=\"fas fa-flask\"></i>\n <span class=\"breadcrumb-text\">{{ test.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 <div class=\"header-content\">\n <div class=\"header-left\">\n <!-- Status Indicator -->\n <div class=\"status-indicator\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n\n <div class=\"test-run-info\">\n <h1>\n Test Run\n <span class=\"run-id\">#{{ record.ID.substring(0, 8) }}</span>\n </h1>\n <div class=\"test-run-meta\">\n <span class=\"status-badge\" [style.background-color]=\"getStatusColor()\">\n {{ record.Status }}\n </span>\n @if (test) {\n <span class=\"meta-item\">\n <i class=\"fas fa-flask\"></i>\n {{ test.Type }}\n </span>\n }\n @if (autoRefreshEnabled) {\n <span class=\"meta-item\">\n <i class=\"fas fa-sync-alt fa-spin\"></i>\n Auto-refreshing\n </span>\n }\n </div>\n </div>\n </div>\n\n <div class=\"header-actions\">\n <button kendoButton (click)=\"reRunTest()\" [disabled]=\"!record.TestID\" title=\"Re-run this test (Cmd+Shift+R)\">\n <i class=\"fas fa-redo\"></i>\n <span class=\"btn-text\">Re-run</span>\n </button>\n <button kendoButton (click)=\"refresh()\" [disabled]=\"isRefreshing\" title=\"Refresh (Cmd+R)\">\n <i class=\"fas fa-sync-alt\" [class.fa-spin]=\"isRefreshing\"></i>\n <span class=\"btn-text\">Refresh</span>\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-label\">Started</div>\n <div class=\"metric-value\">{{ getRelativeTime(record.StartedAt) }}</div>\n <div class=\"metric-detail\">{{ record.StartedAt | date:'short' }}</div>\n </div>\n </div>\n\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-stopwatch\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Duration</div>\n <div class=\"metric-value\">{{ calculateDuration() }}</div>\n </div>\n </div>\n\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-star\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Score</div>\n <div class=\"metric-value\">{{ formatScore(record.Score) }}</div>\n @if (record.Score != null) {\n <div class=\"metric-progress\">\n <div class=\"progress-bar\" [style.width.%]=\"getScorePercentage()\" [style.background-color]=\"getStatusColor()\"></div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-check-double\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-label\">Checks</div>\n <div class=\"metric-value\">{{ record.PassedChecks }}/{{ record.TotalChecks }}</div>\n @if (record.TotalChecks) {\n <div class=\"metric-progress\">\n <div class=\"progress-bar\" [style.width.%]=\"getPassRatePercentage()\" [style.background-color]=\"getStatusColor()\"></div>\n </div>\n }\n </div>\n </div>\n\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-label\">Cost</div>\n <div class=\"metric-value\">{{ formatCost(record.CostUSD) }}</div>\n </div>\n </div>\n </div>\n\n <!-- Secondary Info -->\n @if (record.RunByUser || testSuiteRun || record.TargetLogEntityID) {\n <div class=\"secondary-info\">\n @if (record.RunByUser) {\n <span class=\"info-chip\">\n <i class=\"fas fa-user\"></i>\n {{ record.RunByUser }}\n </span>\n }\n @if (testSuiteRun) {\n <span class=\"info-chip clickable\" (click)=\"openTestSuiteRun()\">\n <i class=\"fas fa-layer-group\"></i>\n Part of Suite Run (Seq: {{ record.Sequence }})\n </span>\n }\n <!-- Target Entity Link Pill -->\n @if (record.TargetLogEntityID && record.TargetLogID) {\n <mj-entity-link-pill\n [entityName]=\"record.TargetLogEntity\"\n [recordId]=\"record.TargetLogID\">\n </mj-entity-link-pill>\n }\n </div>\n }\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\" [class.active]=\"activeTab === 'overview'\" (click)=\"changeTab('overview')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'overview'\" title=\"Press 1\">\n <i class=\"fas fa-chart-pie\"></i>\n <span>Overview</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'details'\" (click)=\"changeTab('details')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'details'\" title=\"Press 2\">\n <i class=\"fas fa-info-circle\"></i>\n <span>Details</span>\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'ai-runs'\" (click)=\"changeTab('ai-runs')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'ai-runs'\" title=\"Press 3\">\n <i class=\"fas fa-robot\"></i>\n <span>AI Runs</span>\n @if (aiRunsLoaded) {\n <span class=\"tab-badge\">{{ aiAgentRuns.length + aiPromptRuns.length }}</span>\n }\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'feedback'\" (click)=\"changeTab('feedback')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'feedback'\" title=\"Press 4\">\n <i class=\"fas fa-comments\"></i>\n <span>Feedback</span>\n @if (feedbackLoaded) {\n <span class=\"tab-badge\">{{ feedbacks.length }}</span>\n }\n </button>\n <button class=\"tab\" [class.active]=\"activeTab === 'execution'\" (click)=\"changeTab('execution')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'execution'\" title=\"Press 5\">\n <i class=\"fas fa-microchip\"></i>\n <span>Execution</span>\n </button>\n @if (record.Log) {\n <button class=\"tab\" [class.active]=\"activeTab === 'log'\" (click)=\"changeTab('log')\"\n role=\"tab\" [attr.aria-selected]=\"activeTab === 'log'\" title=\"Press 6\">\n <i class=\"fas fa-terminal\"></i>\n <span>Log</span>\n </button>\n }\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\" [@fadeIn]>\n <!-- Result Hero -->\n <div class=\"result-hero\" [class]=\"getStatusClass()\">\n <div class=\"result-icon-wrapper\">\n <div class=\"result-icon\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n @if (record.Status === 'Running') {\n <div class=\"result-pulse\"></div>\n }\n </div>\n <div class=\"result-text\">\n <h2>TEST {{ record.Status.toUpperCase() }}</h2>\n <div class=\"result-details\">\n <span class=\"result-score\">Score: {{ formatScore(record.Score) }}</span>\n <span class=\"result-divider\">|</span>\n <span class=\"result-checks\">{{ record.PassedChecks }} of {{ record.TotalChecks }} checks passed</span>\n </div>\n </div>\n </div>\n <!-- Check Results -->\n @if (getCheckResults().length > 0) {\n <div class=\"check-results\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-tasks\"></i> Check Results</h3>\n <span class=\"check-summary\">{{ record.PassedChecks }} passed, {{ record.FailedChecks }} failed</span>\n </div>\n <div class=\"check-list\">\n @for (check of getCheckResults(); track check; let i = $index) {\n <div class=\"check-item\"\n [class.passed]=\"check.passed\" [class.failed]=\"!check.passed\"\n [style.animation-delay.ms]=\"i * 50\">\n <div class=\"check-status\">\n <i class=\"fas\" [class.fa-check-circle]=\"check.passed\" [class.fa-times-circle]=\"!check.passed\"></i>\n </div>\n <div class=\"check-content\">\n <div class=\"check-name\">{{ check.name }}</div>\n @if (check.message) {\n <div class=\"check-message\">{{ check.message }}</div>\n }\n </div>\n @if (check.weight) {\n <div class=\"check-weight\">\n <span class=\"weight-label\">Weight:</span> {{ check.weight }}\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n <!-- Data Comparison -->\n <div class=\"comparison-section\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-exchange-alt\"></i> Data Comparison</h3>\n </div>\n <div class=\"comparison-tabs\">\n <button class=\"comparison-tab\" [class.active]=\"comparisonView === 'input'\" (click)=\"setComparisonView('input')\">\n <i class=\"fas fa-sign-in-alt\"></i> Input\n </button>\n <button class=\"comparison-tab\" [class.active]=\"comparisonView === 'expected'\" (click)=\"setComparisonView('expected')\">\n <i class=\"fas fa-bullseye\"></i> Expected\n </button>\n <button class=\"comparison-tab\" [class.active]=\"comparisonView === 'actual'\" (click)=\"setComparisonView('actual')\">\n <i class=\"fas fa-check-square\"></i> Actual\n </button>\n </div>\n <div class=\"comparison-content\">\n <mj-code-editor\n [value]=\"getComparisonData()\"\n language=\"json\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"details-tab\" [@fadeIn]>\n <div class=\"details-grid\">\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-fingerprint\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Test Run ID</div>\n <div class=\"detail-value monospace\">{{ record.ID }}</div>\n </div>\n </div>\n @if (test) {\n <div class=\"detail-card clickable\" (click)=\"openTest()\">\n <div class=\"detail-icon\"><i class=\"fas fa-flask\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Test</div>\n <div class=\"detail-value link\">{{ test.Name }}</div>\n </div>\n <i class=\"fas fa-external-link-alt detail-action\"></i>\n </div>\n }\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-tag\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Target Type</div>\n <div class=\"detail-value\">{{ record.TargetType || 'N/A' }}</div>\n </div>\n </div>\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-play-circle\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Started At</div>\n <div class=\"detail-value\">{{ record.StartedAt | date:'medium' }}</div>\n </div>\n </div>\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-stop-circle\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Completed At</div>\n <div class=\"detail-value\">{{ record.CompletedAt | date:'medium' }}</div>\n </div>\n </div>\n <div class=\"detail-card\">\n <div class=\"detail-icon\"><i class=\"fas fa-hourglass-half\"></i></div>\n <div class=\"detail-content\">\n <div class=\"detail-label\">Duration</div>\n <div class=\"detail-value\">{{ calculateDuration() }}</div>\n </div>\n </div>\n </div>\n <!-- Error Message -->\n @if (record.ErrorMessage) {\n <div class=\"error-section\">\n <div class=\"section-header error\">\n <h3><i class=\"fas fa-exclamation-triangle\"></i> Error Message</h3>\n </div>\n <div class=\"error-content\">\n <mj-code-editor\n [value]=\"record.ErrorMessage\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n }\n <!-- Result Details -->\n @if (parsedData.resultDetails) {\n <div class=\"result-details-section\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-file-code\"></i> Result Details</h3>\n </div>\n <div class=\"result-details-content\">\n <mj-code-editor\n [value]=\"getFormattedResultDetails()\"\n language=\"json\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- AI Runs Tab -->\n @if (activeTab === 'ai-runs') {\n <div class=\"ai-runs-tab\" [@fadeIn]>\n <!-- Loading State -->\n @if (loadingAIRuns) {\n <div class=\"loading-state\">\n <div class=\"skeleton-list\">\n @for (i of [1,2,3]; track i) {\n <div class=\"skeleton-card\">\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 <!-- AI Agent Runs -->\n @if (!loadingAIRuns && aiAgentRuns.length > 0) {\n <div class=\"ai-section\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-robot\"></i> AI Agent Runs</h3>\n <span class=\"count-badge\">{{ aiAgentRuns.length }}</span>\n </div>\n <div class=\"ai-run-list\">\n @for (run of aiAgentRuns; track run) {\n <div class=\"ai-run-card\" (click)=\"openAIAgentRun(run.ID)\">\n <div class=\"ai-run-icon agent\">\n <i class=\"fas fa-robot\"></i>\n </div>\n <div class=\"ai-run-content\">\n <div class=\"ai-run-name\">{{ run.Agent }}</div>\n <div class=\"ai-run-meta\">\n <span class=\"status-chip\" [class]=\"run.Status.toLowerCase()\">{{ run.Status }}</span>\n @if (run.TotalCost) {\n <span class=\"cost-chip\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.TotalCost | number:'1.4-4' }}\n </span>\n }\n </div>\n </div>\n <i class=\"fas fa-chevron-right ai-run-arrow\"></i>\n </div>\n }\n </div>\n </div>\n }\n <!-- AI Prompt Runs -->\n @if (!loadingAIRuns && aiPromptRuns.length > 0) {\n <div class=\"ai-section\">\n <div class=\"section-header\">\n <h3><i class=\"fas fa-comment-dots\"></i> AI Prompt Runs</h3>\n <span class=\"count-badge\">{{ aiPromptRuns.length }}</span>\n </div>\n <div class=\"ai-run-list\">\n @for (run of aiPromptRuns; track run) {\n <div class=\"ai-run-card\" (click)=\"openAIPromptRun(run.ID)\">\n <div class=\"ai-run-icon prompt\">\n <i class=\"fas fa-comment-dots\"></i>\n </div>\n <div class=\"ai-run-content\">\n <div class=\"ai-run-name\">{{ run.Prompt || run.Model }}</div>\n <div class=\"ai-run-meta\">\n @if (run.TotalCost) {\n <span class=\"cost-chip\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.TotalCost | number:'1.4-4' }}\n </span>\n }\n </div>\n </div>\n <i class=\"fas fa-chevron-right ai-run-arrow\"></i>\n </div>\n }\n </div>\n </div>\n }\n <!-- Empty State -->\n @if (aiRunsLoaded && aiAgentRuns.length === 0 && aiPromptRuns.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-robot\"></i>\n </div>\n <h3>No AI Runs</h3>\n <p>This test execution didn't involve any AI agent or prompt runs.</p>\n </div>\n }\n </div>\n }\n\n <!-- Feedback Tab -->\n @if (activeTab === 'feedback') {\n <div class=\"feedback-tab\" [@fadeIn]>\n <!-- Loading State -->\n @if (loadingFeedback) {\n <div class=\"loading-state\">\n <div class=\"skeleton-list\">\n @for (i of [1,2]; track i) {\n <div class=\"skeleton-card\">\n <div class=\"skeleton-avatar\"></div>\n <div class=\"skeleton-content\">\n <div class=\"skeleton-line wide\"></div>\n <div class=\"skeleton-line narrow\"></div>\n <div class=\"skeleton-line medium\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <!-- Feedback List -->\n @if (!loadingFeedback && feedbacks.length > 0) {\n <div class=\"feedback-list\">\n @for (feedback of feedbacks; track feedback) {\n <div class=\"feedback-item\">\n <div class=\"feedback-header\">\n <div class=\"feedback-user\">\n <div class=\"user-avatar\">\n <i class=\"fas fa-user\"></i>\n </div>\n <span class=\"user-name\">{{ feedback.ReviewerUser }}</span>\n </div>\n <div class=\"feedback-date\">\n {{ getRelativeTime(feedback.__mj_CreatedAt) }}\n </div>\n </div>\n <div class=\"feedback-body\">\n <div class=\"feedback-rating\">\n <div class=\"rating-stars\">\n @for (s of [1,2,3,4,5,6,7,8,9,10]; track s) {\n <i class=\"fas fa-star\"\n [class.filled]=\"s <= (feedback.Rating || 0)\"></i>\n }\n </div>\n <span class=\"rating-value\">{{ feedback.Rating }}/10</span>\n </div>\n @if (feedback.IsCorrect !== null) {\n <div class=\"feedback-verdict\">\n <span class=\"verdict-badge\" [class.correct]=\"feedback.IsCorrect\" [class.incorrect]=\"!feedback.IsCorrect\">\n <i class=\"fas\" [class.fa-check]=\"feedback.IsCorrect\" [class.fa-times]=\"!feedback.IsCorrect\"></i>\n {{ feedback.IsCorrect ? 'Marked Correct' : 'Marked Incorrect' }}\n </span>\n </div>\n }\n @if (feedback.CorrectionSummary) {\n <div class=\"feedback-comments\">\n <p>{{ feedback.CorrectionSummary }}</p>\n </div>\n }\n </div>\n </div>\n }\n </div>\n }\n <!-- Empty State -->\n @if (feedbackLoaded && feedbacks.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-comments\"></i>\n </div>\n <h3>No Feedback Yet</h3>\n <p>No one has reviewed this test run yet. Be the first to provide feedback!</p>\n </div>\n }\n </div>\n }\n\n <!-- Execution Context Tab -->\n @if (activeTab === 'execution') {\n <div class=\"execution-tab\" [@fadeIn]>\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\n <!-- Execution Log Tab -->\n @if (activeTab === 'log') {\n <div class=\"log-tab\" [@fadeIn]>\n <div class=\"log-header\">\n <div class=\"log-title\">\n <i class=\"fas fa-terminal\"></i>\n <h3>Execution Log</h3>\n </div>\n <div class=\"log-actions\">\n <button kendoButton (click)=\"copyLogToClipboard()\" look=\"flat\">\n <i class=\"fas fa-copy\"></i>\n <span class=\"btn-text\">Copy</span>\n </button>\n </div>\n </div>\n <div class=\"log-container\">\n <mj-code-editor\n [value]=\"record.Log || ''\"\n [readonly]=\"true\"\n [toolbar]=\"jsonToolbar\"\n [lineWrapping]=\"true\">\n </mj-code-editor>\n </div>\n </div>\n }\n </div>\n\n <!-- Keyboard Shortcuts Help (shown on hover of ? icon) -->\n <div class=\"shortcuts-hint\" title=\"Keyboard Shortcuts\">\n <i class=\"fas fa-keyboard\"></i>\n <div class=\"shortcuts-popup\">\n <h4>Keyboard Shortcuts</h4>\n <ul>\n <li><kbd>1-6</kbd> Switch tabs</li>\n <li><kbd>Cmd+R</kbd> Refresh</li>\n <li><kbd>Cmd+Shift+R</kbd> Re-run test</li>\n </ul>\n </div>\n </div>\n</div>\n", styles: ["/* ===========================\n Test Run Form - World-Class UX\n Premium Testing Dashboard Styles\n =========================== */\n\n/* CSS Custom Properties for Theming - using :host for Angular encapsulation */\n:host {\n --test-primary: #2563eb;\n --test-primary-light: #3b82f6;\n --test-primary-dark: #1d4ed8;\n --test-success: #10b981;\n --test-success-light: #d1fae5;\n --test-error: #ef4444;\n --test-error-light: #fee2e2;\n --test-warning: #f59e0b;\n --test-warning-light: #fef3c7;\n --test-timeout: #f97316;\n --test-timeout-light: #ffedd5;\n --test-running: #3b82f6;\n --test-pending: #8b5cf6;\n --test-skipped: #6b7280;\n --test-bg: #f8fafc;\n --test-surface: #ffffff;\n --test-border: #e2e8f0;\n --test-text: #1e293b;\n --test-text-secondary: #64748b;\n --test-text-muted: #94a3b8;\n --test-radius-sm: 6px;\n --test-radius-md: 10px;\n --test-radius-lg: 16px;\n --test-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);\n --test-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n --test-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --test-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n display: block;\n height: 100%;\n}\n\n/* Base Container */\n.test-run-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--test-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* ===========================\n Error Banner\n =========================== */\n.error-banner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 12px 20px;\n background: linear-gradient(135deg, var(--test-error) 0%, #dc2626 100%);\n color: white;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n animation: slideDown 0.3s ease-out;\n}\n\n.error-banner:hover {\n background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);\n}\n\n.error-banner i {\n font-size: 16px;\n}\n\n.retry-btn {\n background: rgba(255, 255, 255, 0.2);\n border: 1px solid rgba(255, 255, 255, 0.3);\n color: white;\n padding: 6px 12px;\n border-radius: var(--test-radius-sm);\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.retry-btn:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n@keyframes slideDown {\n from {\n transform: translateY(-100%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n}\n\n/* ===========================\n Header Section\n =========================== */\n.test-run-header {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n padding: 20px;\n position: relative;\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 flex-wrap: wrap;\n}\n\n.breadcrumb li {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.breadcrumb a {\n color: var(--test-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.breadcrumb a:hover {\n background: rgba(37, 99, 235, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb .separator {\n font-size: 10px;\n color: var(--test-text-muted);\n margin: 0 4px;\n}\n\n.breadcrumb .current {\n color: var(--test-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 margin-bottom: 20px;\n gap: 16px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n}\n\n/* Status Indicator */\n.status-indicator {\n width: 56px;\n height: 56px;\n border-radius: var(--test-radius-md);\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(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.status-indicator:hover {\n transform: scale(1.05);\n}\n\n/* Test Run Info */\n.test-run-info {\n flex: 1;\n min-width: 0;\n}\n\n.test-run-info h1 {\n margin: 0 0 8px 0;\n font-size: clamp(18px, 4vw, 24px);\n font-weight: 700;\n color: var(--test-text);\n line-height: 1.2;\n word-wrap: break-word;\n}\n\n.test-run-info h1 .run-id {\n color: var(--test-text-secondary);\n font-weight: 500;\n}\n\n.test-run-meta {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n/* Status Badge */\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 14px;\n border-radius: 20px;\n color: white;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: var(--test-shadow-sm);\n}\n\n/* Meta Item */\n.meta-item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 14px;\n color: var(--test-text-secondary);\n}\n\n.meta-item i {\n font-size: 12px;\n}\n\n/* Header Actions */\n.header-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.header-actions button {\n white-space: nowrap;\n}\n\n.btn-text {\n margin-left: 6px;\n}\n\n/* ===========================\n Metrics Bar\n =========================== */\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n margin-bottom: 16px;\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(--test-border);\n border-radius: var(--test-radius-md);\n padding: 14px;\n transition: var(--test-transition);\n}\n\n.metric-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--test-shadow-md);\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(--test-surface);\n border-radius: var(--test-radius-sm);\n color: var(--test-primary);\n font-size: 16px;\n flex-shrink: 0;\n}\n\n.metric-content {\n flex: 1;\n min-width: 0;\n}\n\n.metric-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.metric-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.metric-detail {\n font-size: 11px;\n color: var(--test-text-muted);\n margin-top: 2px;\n}\n\n/* Progress bar in metric card */\n.metric-progress {\n margin-top: 6px;\n height: 4px;\n background: var(--test-border);\n border-radius: 2px;\n overflow: hidden;\n}\n\n.progress-bar {\n height: 100%;\n border-radius: 2px;\n transition: width 0.5s ease-out;\n}\n\n/* Secondary Info */\n.secondary-info {\n display: flex;\n gap: 12px;\n padding-top: 16px;\n border-top: 1px solid var(--test-border);\n flex-wrap: wrap;\n}\n\n.info-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n color: var(--test-text-secondary);\n padding: 6px 12px;\n background: var(--test-bg);\n border-radius: 20px;\n transition: var(--test-transition);\n}\n\n.info-chip i {\n font-size: 12px;\n}\n\n.info-chip.clickable {\n cursor: pointer;\n}\n\n.info-chip.clickable:hover {\n background: rgba(37, 99, 235, 0.1);\n color: var(--test-primary);\n}\n\n/* ===========================\n Tabs Navigation\n =========================== */\n.tabs-container {\n background: var(--test-surface);\n border-bottom: 1px solid var(--test-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs {\n display: flex;\n padding: 0 20px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: 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: 14px 18px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--test-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--test-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab:hover {\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\n}\n\n.tab.active {\n color: var(--test-primary);\n border-bottom-color: var(--test-primary);\n font-weight: 600;\n}\n\n.tab i {\n font-size: 15px;\n}\n\n.tab-badge {\n background: var(--test-border);\n color: var(--test-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n transition: var(--test-transition);\n}\n\n.tab.active .tab-badge {\n background: rgba(37, 99, 235, 0.15);\n color: var(--test-primary);\n}\n\n.shortcut-hint {\n font-size: 10px;\n color: var(--test-text-muted);\n background: var(--test-bg);\n padding: 2px 6px;\n border-radius: 4px;\n font-weight: 600;\n margin-left: 4px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n}\n\n/* ===========================\n Tab Content Area\n =========================== */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n scroll-behavior: smooth;\n}\n\n/* ===========================\n Overview Tab\n =========================== */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: fadeIn 0.3s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n/* Result Hero Card */\n.result-hero {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 32px;\n text-align: center;\n border: 2px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.result-hero.passed {\n background: linear-gradient(135deg, #ecfdf5 0%, var(--test-success-light) 100%);\n border-color: var(--test-success);\n}\n\n.result-hero.failed {\n background: linear-gradient(135deg, #fef2f2 0%, var(--test-error-light) 100%);\n border-color: var(--test-error);\n}\n\n.result-hero.error {\n background: linear-gradient(135deg, #fffbeb 0%, var(--test-warning-light) 100%);\n border-color: var(--test-warning);\n}\n\n.result-hero.timeout {\n background: linear-gradient(135deg, #fff7ed 0%, var(--test-timeout-light) 100%);\n border-color: var(--test-timeout);\n}\n\n.result-hero.running,\n.result-hero.pending {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--test-primary-light);\n}\n\n.result-icon-wrapper {\n position: relative;\n display: inline-block;\n margin-bottom: 16px;\n}\n\n.result-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border-radius: 50%;\n font-size: 40px;\n margin: 0 auto;\n box-shadow: var(--test-shadow-md);\n}\n\n.result-hero.passed .result-icon { color: var(--test-success); }\n.result-hero.failed .result-icon { color: var(--test-error); }\n.result-hero.error .result-icon { color: var(--test-warning); }\n.result-hero.timeout .result-icon { color: var(--test-timeout); }\n.result-hero.running .result-icon,\n.result-hero.pending .result-icon { color: var(--test-primary); }\n\n.result-pulse {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background: rgba(59, 130, 246, 0.2);\n animation: pulse 2s ease-in-out infinite;\n}\n\n@keyframes pulse {\n 0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.5; }\n 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0; }\n}\n\n.result-text h2 {\n margin: 0 0 12px 0;\n font-size: clamp(24px, 5vw, 32px);\n font-weight: 800;\n color: var(--test-text);\n}\n\n.result-details {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.result-score {\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text-secondary);\n}\n\n.result-divider {\n color: var(--test-border);\n}\n\n.result-checks {\n font-size: 16px;\n color: var(--test-text-muted);\n}\n\n/* Section Headers */\n.section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n gap: 12px;\n}\n\n.section-header h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--test-text);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.section-header h3 i {\n color: var(--test-primary);\n}\n\n.section-header.error h3 i {\n color: var(--test-error);\n}\n\n.check-summary {\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n/* Check Results Section */\n.check-results {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.check-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.check-item {\n display: flex;\n gap: 12px;\n padding: 14px 16px;\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n transition: var(--test-transition);\n animation: fadeIn 0.3s ease-out backwards;\n}\n\n.check-item:hover {\n transform: translateX(4px);\n}\n\n.check-item.passed {\n background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);\n border-color: #86efac;\n}\n\n.check-item.failed {\n background: linear-gradient(135deg, #fef2f2 0%, #fee2e2 100%);\n border-color: #fca5a5;\n}\n\n.check-status {\n font-size: 20px;\n flex-shrink: 0;\n margin-top: 2px;\n}\n\n.check-item.passed .check-status { color: var(--test-success); }\n.check-item.failed .check-status { color: var(--test-error); }\n\n.check-content {\n flex: 1;\n min-width: 0;\n}\n\n.check-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 4px;\n}\n\n.check-message {\n font-size: 13px;\n color: var(--test-text-secondary);\n line-height: 1.5;\n word-wrap: break-word;\n}\n\n.check-weight {\n font-size: 12px;\n color: var(--test-text-muted);\n flex-shrink: 0;\n text-align: right;\n}\n\n.weight-label {\n font-weight: 500;\n}\n\n/* Comparison Section */\n.comparison-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-tabs {\n display: flex;\n gap: 4px;\n margin-bottom: 16px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n padding: 4px;\n}\n\n.comparison-tab {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: 10px 16px;\n border: none;\n background: transparent;\n color: var(--test-text-secondary);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border-radius: var(--test-radius-sm);\n transition: var(--test-transition);\n}\n\n.comparison-tab:hover {\n color: var(--test-text);\n background: rgba(0, 0, 0, 0.05);\n}\n\n.comparison-tab.active {\n background: var(--test-surface);\n color: var(--test-primary);\n font-weight: 600;\n box-shadow: var(--test-shadow-sm);\n}\n\n.comparison-content {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n/* ===========================\n Details Tab\n =========================== */\n.details-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: fadeIn 0.3s ease-out;\n}\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 12px;\n}\n\n.detail-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n transition: var(--test-transition);\n}\n\n.detail-card.clickable {\n cursor: pointer;\n}\n\n.detail-card.clickable:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n}\n\n.detail-icon {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n color: var(--test-primary);\n font-size: 18px;\n flex-shrink: 0;\n}\n\n.detail-content {\n flex: 1;\n min-width: 0;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--test-text-muted);\n margin-bottom: 4px;\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--test-text);\n word-wrap: break-word;\n font-weight: 500;\n}\n\n.detail-value.monospace {\n font-family: 'SF Mono', Monaco, 'Courier New', monospace;\n font-size: 12px;\n}\n\n.detail-value.link {\n color: var(--test-primary);\n}\n\n.detail-action {\n color: var(--test-text-muted);\n font-size: 12px;\n transition: var(--test-transition);\n}\n\n.detail-card.clickable:hover .detail-action {\n color: var(--test-primary);\n}\n\n/* Error Section */\n.error-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.error-content {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid #fca5a5;\n}\n\n/* Result Details Section */\n.result-details-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.result-details-content {\n border-radius: var(--test-radius-md);\n overflow: hidden;\n border: 1px solid var(--test-border);\n}\n\n/* ===========================\n AI Runs Tab\n =========================== */\n.ai-runs-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n animation: fadeIn 0.3s ease-out;\n}\n\n.ai-section {\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n padding: 24px;\n box-shadow: var(--test-shadow-sm);\n}\n\n.count-badge {\n background: var(--test-bg);\n color: var(--test-text-secondary);\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.ai-run-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.ai-run-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px;\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.ai-run-card:hover {\n background: rgba(37, 99, 235, 0.05);\n border-color: var(--test-primary-light);\n transform: translateX(4px);\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon {\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n color: white;\n border-radius: var(--test-radius-md);\n font-size: 18px;\n flex-shrink: 0;\n box-shadow: var(--test-shadow-sm);\n}\n\n.ai-run-icon.agent {\n background: linear-gradient(135deg, var(--test-primary) 0%, var(--test-primary-dark) 100%);\n}\n\n.ai-run-icon.prompt {\n background: linear-gradient(135deg, #9333ea 0%, #7c3aed 100%);\n}\n\n.ai-run-content {\n flex: 1;\n min-width: 0;\n}\n\n.ai-run-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ai-run-meta {\n display: flex;\n gap: 10px;\n font-size: 12px;\n color: var(--test-text-secondary);\n flex-wrap: wrap;\n}\n\n.status-chip {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-chip.complete,\n.status-chip.completed,\n.status-chip.passed {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.status-chip.failed,\n.status-chip.error {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.status-chip.running {\n background: #dbeafe;\n color: var(--test-primary);\n}\n\n.cost-chip {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n color: var(--test-text-muted);\n}\n\n.ai-run-arrow {\n color: var(--test-text-muted);\n font-size: 14px;\n transition: var(--test-transition);\n}\n\n.ai-run-card:hover .ai-run-arrow {\n color: var(--test-primary);\n transform: translateX(2px);\n}\n\n/* ===========================\n Feedback Tab\n =========================== */\n.feedback-tab {\n animation: fadeIn 0.3s ease-out;\n}\n\n.feedback-list {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-item {\n padding: 20px;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\n border: 1px solid var(--test-border);\n box-shadow: var(--test-shadow-sm);\n transition: var(--test-transition);\n}\n\n.feedback-item:hover {\n border-color: var(--test-primary-light);\n}\n\n.feedback-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.feedback-user {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.user-avatar {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-bg);\n border-radius: 50%;\n color: var(--test-primary);\n font-size: 14px;\n}\n\n.user-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-date {\n font-size: 12px;\n color: var(--test-text-muted);\n}\n\n.feedback-body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.feedback-rating {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.rating-stars {\n display: flex;\n gap: 2px;\n}\n\n.rating-stars i {\n font-size: 14px;\n color: var(--test-border);\n}\n\n.rating-stars i.filled {\n color: #fbbf24;\n}\n\n.rating-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.feedback-verdict {\n display: flex;\n}\n\n.verdict-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}\n\n.verdict-badge.correct {\n background: var(--test-success-light);\n color: #059669;\n}\n\n.verdict-badge.incorrect {\n background: var(--test-error-light);\n color: #dc2626;\n}\n\n.feedback-comments {\n padding: 14px;\n background: var(--test-bg);\n border-radius: var(--test-radius-md);\n border-left: 3px solid var(--test-primary);\n}\n\n.feedback-comments p {\n margin: 0;\n font-size: 14px;\n line-height: 1.6;\n color: var(--test-text);\n}\n\n/* ===========================\n Log Tab\n =========================== */\n.log-tab {\n display: flex;\n flex-direction: column;\n gap: 0;\n height: 100%;\n animation: fadeIn 0.3s ease-out;\n}\n\n.log-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--test-surface);\n padding: 16px 20px;\n border-radius: var(--test-radius-lg) var(--test-radius-lg) 0 0;\n border: 1px solid var(--test-border);\n border-bottom: none;\n}\n\n.log-title {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.log-title i {\n color: var(--test-text-secondary);\n font-size: 16px;\n}\n\n.log-title h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.log-actions {\n display: flex;\n gap: 8px;\n}\n\n.log-container {\n flex: 1;\n border-radius: 0 0 var(--test-radius-lg) var(--test-radius-lg);\n overflow: hidden;\n min-height: 300px;\n border: 1px solid var(--test-border);\n border-top: none;\n}\n\n/* ===========================\n Loading States & Skeletons\n =========================== */\n.loading-state {\n padding: 20px;\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: 14px;\n padding: 16px;\n background: var(--test-surface);\n border-radius: var(--test-radius-md);\n border: 1px solid var(--test-border);\n}\n\n.skeleton-icon,\n.skeleton-avatar {\n width: 44px;\n height: 44px;\n border-radius: var(--test-radius-md);\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n}\n\n.skeleton-avatar {\n border-radius: 50%;\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 border-radius: 4px;\n background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n}\n\n.skeleton-line.wide { width: 70%; }\n.skeleton-line.medium { width: 55%; }\n.skeleton-line.narrow { width: 40%; }\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n/* ===========================\n Empty States\n =========================== */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n background: var(--test-surface);\n border-radius: var(--test-radius-lg);\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(--test-bg);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 36px;\n color: var(--test-text-muted);\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--test-text);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: var(--test-text-secondary);\n max-width: 300px;\n}\n\n/* ===========================\n Keyboard Shortcuts Help\n =========================== */\n.shortcuts-hint {\n position: fixed;\n bottom: 20px;\n right: 20px;\n z-index: 100;\n}\n\n.shortcuts-hint > i {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: 50%;\n color: var(--test-text-muted);\n font-size: 16px;\n cursor: pointer;\n box-shadow: var(--test-shadow-md);\n transition: var(--test-transition);\n}\n\n.shortcuts-hint:hover > i {\n color: var(--test-primary);\n border-color: var(--test-primary-light);\n}\n\n.shortcuts-popup {\n display: none;\n position: absolute;\n bottom: 50px;\n right: 0;\n background: var(--test-surface);\n border: 1px solid var(--test-border);\n border-radius: var(--test-radius-md);\n padding: 16px;\n box-shadow: var(--test-shadow-lg);\n min-width: 200px;\n}\n\n.shortcuts-hint:hover .shortcuts-popup {\n display: block;\n animation: fadeIn 0.2s ease-out;\n}\n\n.shortcuts-popup h4 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 700;\n color: var(--test-text);\n}\n\n.shortcuts-popup ul {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.shortcuts-popup li {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 6px 0;\n font-size: 13px;\n color: var(--test-text-secondary);\n}\n\n.shortcuts-popup kbd {\n background: var(--test-bg);\n border: 1px solid var(--test-border);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n font-size: 11px;\n color: var(--test-text);\n}\n\n/* ===========================\n Responsive Design - Tablet\n =========================== */\n@media (max-width: 1024px) {\n .metrics-bar {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .details-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .shortcuts-hint {\n display: none;\n }\n}\n\n/* ===========================\n Responsive Design - Mobile\n =========================== */\n@media (max-width: 768px) {\n .test-run-form {\n height: auto;\n min-height: 100%;\n }\n\n .test-run-header {\n padding: 16px;\n }\n\n .breadcrumb {\n margin-bottom: 12px;\n }\n\n .breadcrumb ol {\n font-size: 12px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left {\n width: 100%;\n }\n\n .status-indicator {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .test-run-info h1 {\n font-size: 18px;\n }\n\n .test-run-meta {\n gap: 8px;\n }\n\n .status-badge {\n padding: 4px 10px;\n font-size: 11px;\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: 10px;\n }\n\n .metric-card {\n padding: 12px;\n }\n\n .metric-icon {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .tabs {\n padding: 0 12px;\n }\n\n .tab {\n padding: 12px 14px;\n font-size: 13px;\n gap: 6px;\n }\n\n .tab i {\n font-size: 14px;\n }\n\n .shortcut-hint {\n display: none;\n }\n\n .tab-content {\n padding: 16px;\n }\n\n .result-hero {\n padding: 24px 20px;\n }\n\n .result-icon {\n width: 64px;\n height: 64px;\n font-size: 32px;\n }\n\n .result-text h2 {\n font-size: 24px;\n }\n\n .result-score {\n font-size: 16px;\n }\n\n .check-results,\n .comparison-section,\n .ai-section,\n .feedback-item {\n padding: 18px;\n }\n\n .check-item {\n padding: 12px;\n }\n\n .comparison-tabs {\n flex-direction: column;\n gap: 4px;\n }\n\n .comparison-tab {\n text-align: center;\n }\n\n .details-grid {\n grid-template-columns: 1fr;\n }\n\n .detail-card {\n padding: 14px;\n }\n\n .ai-run-card {\n padding: 14px;\n }\n\n .ai-run-icon {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .ai-run-meta {\n flex-direction: column;\n gap: 4px;\n }\n\n .feedback-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .log-header {\n flex-direction: column;\n gap: 12px;\n align-items: stretch;\n }\n\n .log-actions {\n justify-content: stretch;\n }\n\n .log-actions button {\n flex: 1;\n }\n\n .empty-state {\n padding: 40px 20px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon i {\n font-size: 28px;\n }\n}\n\n/* ===========================\n Responsive Design - Small Mobile\n =========================== */\n@media (max-width: 480px) {\n .test-run-header {\n padding: 12px;\n }\n\n .header-left {\n gap: 12px;\n }\n\n .status-indicator {\n width: 40px;\n height: 40px;\n font-size: 18px;\n border-radius: 8px;\n }\n\n .test-run-info h1 {\n font-size: 16px;\n }\n\n .metrics-bar {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card {\n padding: 10px;\n flex-direction: column;\n text-align: center;\n }\n\n .metric-icon {\n margin-bottom: 8px;\n }\n\n .metric-label {\n font-size: 9px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .tabs {\n padding: 0 8px;\n }\n\n .tab {\n padding: 10px 12px;\n font-size: 12px;\n }\n\n .tab-badge {\n display: none;\n }\n\n .tab-content {\n padding: 12px;\n }\n\n .result-hero {\n padding: 20px 16px;\n }\n\n .result-icon {\n width: 56px;\n height: 56px;\n font-size: 28px;\n }\n\n .result-text h2 {\n font-size: 20px;\n }\n\n .result-score {\n font-size: 14px;\n }\n\n .result-checks {\n font-size: 12px;\n }\n\n .section-header h3 {\n font-size: 16px;\n }\n\n .check-item {\n flex-direction: column;\n gap: 8px;\n }\n\n .check-weight {\n text-align: left;\n }\n}\n\n/* ===========================\n Touch Device Optimizations\n =========================== */\n@media (hover: none) and (pointer: coarse) {\n .tab,\n .comparison-tab,\n .ai-run-card,\n .check-item,\n .feedback-item,\n .detail-card.clickable {\n -webkit-tap-highlight-color: transparent;\n }\n\n .ai-run-card:active,\n .detail-card.clickable:active {\n background: rgba(37, 99, 235, 0.1);\n transform: scale(0.98);\n }\n\n .tab:active {\n background: rgba(37, 99, 235, 0.1);\n }\n\n /* Larger touch targets */\n .tab {\n min-height: 48px;\n }\n\n .ai-run-card,\n .detail-card {\n min-height: 64px;\n }\n}\n\n/* ===========================\n High Contrast Mode\n =========================== */\n@media (prefers-contrast: high) {\n .status-badge {\n border: 2px solid currentColor;\n }\n\n .check-item {\n border-width: 2px;\n }\n\n .tab.active {\n border-bottom-width: 4px;\n }\n}\n\n/* ===========================\n Reduced Motion\n =========================== */\n@media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n }\n\n .skeleton-icon,\n .skeleton-avatar,\n .skeleton-line {\n animation: none;\n background: #e2e8f0;\n }\n\n .result-pulse {\n animation: none;\n display: none;\n }\n}\n\n/* ===========================\n Print Styles\n =========================== */\n@media print {\n .test-run-form {\n background: white;\n height: auto;\n }\n\n .header-actions,\n .tabs-container,\n .shortcuts-hint,\n .log-actions {\n display: none !important;\n }\n\n .tab-content {\n overflow: visible;\n padding: 0;\n }\n\n .result-hero,\n .check-results,\n .details-grid,\n .ai-section,\n .feedback-item {\n break-inside: avoid;\n box-shadow: none;\n border: 1px solid #ddd;\n }\n\n .comparison-content,\n .log-container {\n max-height: none;\n overflow: visible;\n }\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(37, 99, 235, 0.04) 0%, rgba(37, 99, 235, 0.08) 100%);\n border: 1px solid rgba(37, 99, 235, 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(--test-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: rgba(37, 99, 235, 0.1);\n color: var(--test-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(--test-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(--test-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--test-text-secondary);\n cursor: pointer;\n transition: var(--test-transition);\n}\n\n.tags-bar-edit:hover {\n border-color: var(--test-primary);\n color: var(--test-primary);\n background: rgba(37, 99, 235, 0.05);\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(--test-surface);\n border: 1px solid var(--test-primary);\n border-radius: var(--test-radius-md);\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(37, 99, 235, 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: rgba(37, 99, 235, 0.08);\n border-bottom: 1px solid rgba(37, 99, 235, 0.2);\n}\n\n.tags-editor-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--test-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(--test-surface);\n border: 1px solid var(--test-primary);\n color: var(--test-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(--test-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--test-transition);\n}\n\n.tag-remove-btn:hover {\n opacity: 1;\n background: var(--test-error-light);\n color: var(--test-error);\n}\n\n.tags-empty-hint {\n font-size: 12px;\n color: var(--test-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(--test-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--test-bg);\n}\n\n.tag-text-input:focus {\n outline: none;\n border-color: var(--test-primary);\n background: var(--test-surface);\n box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n}\n\n.tag-text-input::placeholder {\n color: var(--test-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(--test-bg);\n border-top: 1px solid var(--test-border);\n}\n\n/* Mobile Responsive for Tags */\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"] }]
1581
+ }], null, { handleKeyboardShortcut: [{
1565
1582
  type: HostListener,
1566
1583
  args: ['document:keydown', ['$event']]
1567
1584
  }] }); })();
1568
1585
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestRunFormComponentExtended, { className: "TestRunFormComponentExtended", filePath: "src/lib/custom/Tests/test-run-form.component.ts", lineNumber: 36 }); })();
1569
- export function LoadTestRunFormComponentExtended() {
1570
- // Prevents tree-shaking
1571
- }
1572
- LoadTestRunFormComponentExtended();
1573
1586
  //# sourceMappingURL=test-run-form.component.js.map