@memberjunction/ng-core-entity-forms 3.3.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-diagram.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts +13 -25
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +33 -379
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/step-info-control.component.js +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +15 -14
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js +1 -0
- package/dist/lib/custom/AIAgents/agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-permissions-dialog.component.js +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +14 -13
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +41 -4
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +1335 -1159
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +15 -14
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +12 -12
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +9 -8
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +14 -14
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +12 -11
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +18 -16
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +91 -59
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +9 -9
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +0 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +546 -532
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +12 -11
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +0 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +12 -10
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +0 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +62 -68
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-param-dialog.component.js +1 -1
- package/dist/lib/custom/Actions/action-result-code-dialog.component.js +1 -1
- package/dist/lib/custom/Actions/action-test-harness-dialog.component.js +1 -1
- package/dist/lib/custom/Actions/action-test-harness.component.js +1 -1
- package/dist/lib/custom/Actions/actions-top-area-extended.d.ts +8 -0
- package/dist/lib/custom/Actions/actions-top-area-extended.d.ts.map +1 -0
- package/dist/lib/custom/Actions/actions-top-area-extended.js +64 -0
- package/dist/lib/custom/Actions/actions-top-area-extended.js.map +1 -0
- package/dist/lib/custom/Entities/entities-form.component.d.ts +10 -0
- package/dist/lib/custom/Entities/entities-form.component.d.ts.map +1 -0
- package/dist/lib/custom/Entities/entities-form.component.js +198 -0
- package/dist/lib/custom/Entities/entities-form.component.js.map +1 -0
- package/dist/lib/custom/Entities/entity-form.component.d.ts +0 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +722 -691
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +0 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +25 -29
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +0 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +425 -438
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-category-dialog.component.js +28 -29
- package/dist/lib/custom/Queries/query-category-dialog.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts +0 -1
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +187 -185
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +90 -89
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +76 -75
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +98 -93
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +0 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +199 -126
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +0 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +16 -18
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +4 -2
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +485 -445
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-rubric-form.component.d.ts +0 -1
- package/dist/lib/custom/Tests/test-rubric-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-rubric-form.component.js +6 -8
- package/dist/lib/custom/Tests/test-rubric-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +0 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +17 -17
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +0 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +405 -390
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +4 -2
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +739 -693
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +4 -2
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +685 -637
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +240 -243
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +42 -40
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +37 -36
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +68 -78
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +6 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +0 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +289 -271
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +51 -58
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +37 -81
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +85 -82
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAction/aiaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js +17 -18
- package/dist/lib/generated/Entities/AIAction/aiaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAction/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAction/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAction/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/AIAction/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js +137 -138
- package/dist/lib/generated/Entities/AIAgent/aiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts +54 -0
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js +492 -0
- package/dist/lib/generated/Entities/AIAgent/sections/aiagent-form-overview.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +576 -0
- package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentAction/aiagentaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js +194 -0
- package/dist/lib/generated/Entities/AIAgentAction/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentArtifactType/aiagentartifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/AIAgentArtifactType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentConfiguration/aiagentconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentDataSource/aiagentdatasource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.js +253 -0
- package/dist/lib/generated/Entities/AIAgentDataSource/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentExample/aiagentexample.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.js +265 -0
- package/dist/lib/generated/Entities/AIAgentExample/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentLearningCycle/aiagentlearningcycle.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/AIAgentLearningCycle/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentModality/aiagentmodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentModel/aiagentmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/AIAgentModel/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentNote/aiagentnote.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.js +267 -0
- package/dist/lib/generated/Entities/AIAgentNote/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIAgentNoteType/aiagentnotetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/AIAgentNoteType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentPermission/aiagentpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.js +176 -0
- package/dist/lib/generated/Entities/AIAgentPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentPrompt/aiagentprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.js +176 -0
- package/dist/lib/generated/Entities/AIAgentPrompt/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentRelationship/aiagentrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/AIAgentRelationship/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentRequest/aiagentrequest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.js +185 -0
- package/dist/lib/generated/Entities/AIAgentRequest/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js +41 -42
- package/dist/lib/generated/Entities/AIAgentRun/aiagentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +496 -0
- package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentRunMedia/aiagentrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js +24 -31
- package/dist/lib/generated/Entities/AIAgentRunStep/aiagentrunstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js +255 -0
- package/dist/lib/generated/Entities/AIAgentRunStep/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js +16 -17
- package/dist/lib/generated/Entities/AIAgentStep/aiagentstep.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.js +295 -0
- package/dist/lib/generated/Entities/AIAgentStep/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIAgentStepPath/aiagentsteppath.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/AIAgentStepPath/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIAgentType/aiagenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.js +163 -0
- package/dist/lib/generated/Entities/AIAgentType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js +17 -18
- package/dist/lib/generated/Entities/AIArchitecture/aiarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js +53 -54
- package/dist/lib/generated/Entities/AIConfiguration/aiconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/AIConfiguration/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIConfigurationParam/aiconfigurationparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/AIConfigurationParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.js +3 -3
- package/dist/lib/generated/Entities/AICredentialBinding/aicredentialbinding.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModality/aimodality.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js +47 -48
- package/dist/lib/generated/Entities/AIModality/aimodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js +125 -126
- package/dist/lib/generated/Entities/AIModel/aimodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModel/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModel/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModel/sections/details.component.js +217 -0
- package/dist/lib/generated/Entities/AIModel/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIModelAction/aimodelaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelAction/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModelAction/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModelAction/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/AIModelAction/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIModelArchitecture/aimodelarchitecture.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIModelCost/aimodelcost.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelCost/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModelCost/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModelCost/sections/details.component.js +223 -0
- package/dist/lib/generated/Entities/AIModelCost/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIModelModality/aimodelmodality.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIModelPriceType/aimodelpricetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/AIModelPriceType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIModelPriceUnitType/aimodelpriceunittype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.js +98 -0
- package/dist/lib/generated/Entities/AIModelPriceUnitType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js +17 -18
- package/dist/lib/generated/Entities/AIModelType/aimodeltype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModelType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModelType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/AIModelType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIModelVendor/aimodelvendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.js +221 -0
- package/dist/lib/generated/Entities/AIModelVendor/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js +77 -78
- package/dist/lib/generated/Entities/AIPrompt/aiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js +567 -0
- package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/AIPromptCategory/aipromptcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/AIPromptCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIPromptModel/aipromptmodel.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.js +214 -0
- package/dist/lib/generated/Entities/AIPromptModel/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js +23 -24
- package/dist/lib/generated/Entities/AIPromptRun/aipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +903 -0
- package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIPromptRunMedia/aipromptrunmedia.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js +11 -12
- package/dist/lib/generated/Entities/AIPromptType/aiprompttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIPromptType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIPromptType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIPromptType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/AIPromptType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js +12 -18
- package/dist/lib/generated/Entities/AIResultCache/airesultcache.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIResultCache/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIResultCache/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIResultCache/sections/details.component.js +236 -0
- package/dist/lib/generated/Entities/AIResultCache/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js +53 -54
- package/dist/lib/generated/Entities/AIVendor/aivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIVendor/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIVendor/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIVendor/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/AIVendor/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js +3 -3
- package/dist/lib/generated/Entities/AIVendorType/aivendortype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIVendorType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIVendorType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIVendorType/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/AIVendorType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js +17 -18
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/aivendortypedefinition.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/AIVendorTypeDefinition/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.js +23 -24
- package/dist/lib/generated/Entities/APIApplication/apiapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.js +3 -3
- package/dist/lib/generated/Entities/APIApplicationScope/apiapplicationscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIKey/apikey.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIKey/apikey.form.component.js +23 -24
- package/dist/lib/generated/Entities/APIKey/apikey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.js +3 -3
- package/dist/lib/generated/Entities/APIKeyApplication/apikeyapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.js +3 -3
- package/dist/lib/generated/Entities/APIKeyScope/apikeyscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.js +3 -3
- package/dist/lib/generated/Entities/APIKeyUsageLog/apikeyusagelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/APIScope/apiscope.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js +28 -27
- package/dist/lib/generated/Entities/APIScope/apiscope.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.js +3 -3
- package/dist/lib/generated/Entities/AccessControlRule/accesscontrolrule.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.js +192 -0
- package/dist/lib/generated/Entities/AccessControlRule/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Action/action.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Action/action.form.component.js +84 -67
- package/dist/lib/generated/Entities/Action/action.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Action/sections/code.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Action/sections/code.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Action/sections/code.component.js +62 -0
- package/dist/lib/generated/Entities/Action/sections/code.component.js.map +1 -0
- package/dist/lib/generated/Entities/Action/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Action/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Action/sections/details.component.js +277 -0
- package/dist/lib/generated/Entities/Action/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Action/sections/top.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Action/sections/top.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Action/sections/top.component.js +71 -0
- package/dist/lib/generated/Entities/Action/sections/top.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js +3 -3
- package/dist/lib/generated/Entities/ActionAuthorization/actionauthorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ActionAuthorization/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js +34 -17
- package/dist/lib/generated/Entities/ActionCategory/actioncategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ActionCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js +3 -3
- package/dist/lib/generated/Entities/ActionContext/actioncontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionContext/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionContext/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionContext/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ActionContext/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js +11 -12
- package/dist/lib/generated/Entities/ActionContextType/actioncontexttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionContextType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionContextType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionContextType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/ActionContextType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js +3 -3
- package/dist/lib/generated/Entities/ActionExecutionLog/actionexecutionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/ActionExecutionLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js +11 -12
- package/dist/lib/generated/Entities/ActionFilter/actionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionFilter/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionFilter/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionFilter/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/ActionFilter/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js +3 -3
- package/dist/lib/generated/Entities/ActionLibrary/actionlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ActionLibrary/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js +17 -18
- package/dist/lib/generated/Entities/ActionParam/actionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionParam/sections/details.component.js +154 -0
- package/dist/lib/generated/Entities/ActionParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js +3 -3
- package/dist/lib/generated/Entities/ActionResultCode/actionresultcode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/ActionResultCode/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Application/application.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Application/application.form.component.js +35 -36
- package/dist/lib/generated/Entities/Application/application.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Application/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Application/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Application/sections/details.component.js +116 -0
- package/dist/lib/generated/Entities/Application/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js +3 -3
- package/dist/lib/generated/Entities/ApplicationEntity/applicationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/ApplicationEntity/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js +3 -3
- package/dist/lib/generated/Entities/ApplicationSetting/applicationsetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/ApplicationSetting/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Artifact/artifact.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Artifact/artifact.form.component.js +23 -24
- package/dist/lib/generated/Entities/Artifact/artifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Artifact/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Artifact/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Artifact/sections/details.component.js +167 -0
- package/dist/lib/generated/Entities/Artifact/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/ArtifactPermission/artifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.js +167 -0
- package/dist/lib/generated/Entities/ArtifactPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js +35 -36
- package/dist/lib/generated/Entities/ArtifactType/artifacttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.js +154 -0
- package/dist/lib/generated/Entities/ArtifactType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js +3 -3
- package/dist/lib/generated/Entities/ArtifactUse/artifactuse.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/ArtifactUse/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js +29 -30
- package/dist/lib/generated/Entities/ArtifactVersion/artifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.js +174 -0
- package/dist/lib/generated/Entities/ArtifactVersion/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js +3 -3
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/artifactversionattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ArtifactVersionAttribute/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js +3 -3
- package/dist/lib/generated/Entities/AuditLog/auditlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AuditLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AuditLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AuditLog/sections/details.component.js +187 -0
- package/dist/lib/generated/Entities/AuditLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js +17 -18
- package/dist/lib/generated/Entities/AuditLogType/auditlogtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/AuditLogType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Authorization/authorization.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Authorization/authorization.form.component.js +35 -36
- package/dist/lib/generated/Entities/Authorization/authorization.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Authorization/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Authorization/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Authorization/sections/details.component.js +136 -0
- package/dist/lib/generated/Entities/Authorization/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js +3 -3
- package/dist/lib/generated/Entities/AuthorizationRole/authorizationrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/AuthorizationRole/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Collection/collection.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Collection/collection.form.component.js +23 -24
- package/dist/lib/generated/Entities/Collection/collection.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Collection/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Collection/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Collection/sections/details.component.js +185 -0
- package/dist/lib/generated/Entities/Collection/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.js +3 -3
- package/dist/lib/generated/Entities/CollectionArtifact/collectionartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/CollectionArtifact/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/CollectionPermission/collectionpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.js +167 -0
- package/dist/lib/generated/Entities/CollectionPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js +17 -18
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/communicationbasemessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.js +116 -0
- package/dist/lib/generated/Entities/CommunicationBaseMessageType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js +3 -3
- package/dist/lib/generated/Entities/CommunicationLog/communicationlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.js +167 -0
- package/dist/lib/generated/Entities/CommunicationLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js +17 -18
- package/dist/lib/generated/Entities/CommunicationProvider/communicationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.js +152 -0
- package/dist/lib/generated/Entities/CommunicationProvider/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js +11 -12
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/communicationprovidermessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/CommunicationProviderMessageType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js +11 -12
- package/dist/lib/generated/Entities/CommunicationRun/communicationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.js +145 -0
- package/dist/lib/generated/Entities/CommunicationRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Company/company.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Company/company.form.component.js +49 -32
- package/dist/lib/generated/Entities/Company/company.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Company/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Company/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Company/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/Company/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js +29 -30
- package/dist/lib/generated/Entities/CompanyIntegration/companyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.js +255 -0
- package/dist/lib/generated/Entities/CompanyIntegration/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js +3 -3
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/companyintegrationrecordmap.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRecordMap/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js +23 -24
- package/dist/lib/generated/Entities/CompanyIntegrationRun/companyintegrationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.js +183 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js +3 -3
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/companyintegrationrunapilog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunAPILog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js +11 -12
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/companyintegrationrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.js +156 -0
- package/dist/lib/generated/Entities/CompanyIntegrationRunDetail/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Component/component.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Component/component.form.component.js +22 -23
- package/dist/lib/generated/Entities/Component/component.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Component/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Component/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Component/sections/details.component.js +316 -0
- package/dist/lib/generated/Entities/Component/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.js +3 -3
- package/dist/lib/generated/Entities/ComponentDependency/componentdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/ComponentDependency/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.js +11 -12
- package/dist/lib/generated/Entities/ComponentLibrary/componentlibrary.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.js +179 -0
- package/dist/lib/generated/Entities/ComponentLibrary/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.js +3 -3
- package/dist/lib/generated/Entities/ComponentLibraryLink/componentlibrarylink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ComponentLibraryLink/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.js +11 -12
- package/dist/lib/generated/Entities/ComponentRegistry/componentregistry.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.js +125 -0
- package/dist/lib/generated/Entities/ComponentRegistry/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js +17 -18
- package/dist/lib/generated/Entities/ContentFileType/contentfiletype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentFileType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentFileType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentFileType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/ContentFileType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js +17 -18
- package/dist/lib/generated/Entities/ContentItem/contentitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentItem/sections/details.component.js +196 -0
- package/dist/lib/generated/Entities/ContentItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js +3 -3
- package/dist/lib/generated/Entities/ContentItemAttribute/contentitemattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/ContentItemAttribute/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js +3 -3
- package/dist/lib/generated/Entities/ContentItemTag/contentitemtag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.js +100 -0
- package/dist/lib/generated/Entities/ContentItemTag/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js +3 -3
- package/dist/lib/generated/Entities/ContentProcessRun/contentprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ContentProcessRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js +23 -24
- package/dist/lib/generated/Entities/ContentSource/contentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentSource/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentSource/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentSource/sections/details.component.js +149 -0
- package/dist/lib/generated/Entities/ContentSource/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js +3 -3
- package/dist/lib/generated/Entities/ContentSourceParam/contentsourceparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/ContentSourceParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js +17 -18
- package/dist/lib/generated/Entities/ContentSourceType/contentsourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/ContentSourceType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js +3 -3
- package/dist/lib/generated/Entities/ContentSourceTypeParam/contentsourcetypeparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.js +116 -0
- package/dist/lib/generated/Entities/ContentSourceTypeParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentType/contenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js +17 -18
- package/dist/lib/generated/Entities/ContentType/contenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentType/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ContentType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js +3 -3
- package/dist/lib/generated/Entities/ContentTypeAttribute/contenttypeattribute.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/ContentTypeAttribute/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Conversation/conversation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Conversation/conversation.form.component.js +42 -43
- package/dist/lib/generated/Entities/Conversation/conversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Conversation/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Conversation/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Conversation/sections/details.component.js +243 -0
- package/dist/lib/generated/Entities/Conversation/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js +23 -24
- package/dist/lib/generated/Entities/ConversationArtifact/conversationartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/ConversationArtifact/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/ConversationArtifactPermission/conversationartifactpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/ConversationArtifactPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js +11 -12
- package/dist/lib/generated/Entities/ConversationArtifactVersion/conversationartifactversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ConversationArtifactVersion/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js +59 -60
- package/dist/lib/generated/Entities/ConversationDetail/conversationdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js +299 -0
- package/dist/lib/generated/Entities/ConversationDetail/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js +4 -4
- package/dist/lib/generated/Entities/ConversationDetailArtifact/conversationdetailartifact.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/ConversationDetailArtifact/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js +3 -3
- package/dist/lib/generated/Entities/ConversationDetailAttachment/conversationdetailattachment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js +7 -13
- package/dist/lib/generated/Entities/ConversationDetailRating/conversationdetailrating.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ConversationDetailRating/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Credential/credential.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Credential/credential.form.component.js +54 -19
- package/dist/lib/generated/Entities/Credential/credential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/CredentialCategory/credentialcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js +33 -16
- package/dist/lib/generated/Entities/CredentialType/credentialtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js +29 -30
- package/dist/lib/generated/Entities/Dashboard/dashboard.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Dashboard/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Dashboard/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Dashboard/sections/details.component.js +223 -0
- package/dist/lib/generated/Entities/Dashboard/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js +29 -30
- package/dist/lib/generated/Entities/DashboardCategory/dashboardcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/DashboardCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.js +3 -3
- package/dist/lib/generated/Entities/DashboardCategoryLink/dashboardcategorylink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/DashboardCategoryPermission/dashboardcategorypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.js +3 -3
- package/dist/lib/generated/Entities/DashboardPartType/dashboardparttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/DashboardPermission/dashboardpermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js +3 -3
- package/dist/lib/generated/Entities/DashboardUserPreference/dashboarduserpreference.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.js +149 -0
- package/dist/lib/generated/Entities/DashboardUserPreference/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js +3 -3
- package/dist/lib/generated/Entities/DashboardUserState/dashboarduserstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/DashboardUserState/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DataContext/datacontext.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js +23 -24
- package/dist/lib/generated/Entities/DataContext/datacontext.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DataContext/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DataContext/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DataContext/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/DataContext/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js +3 -3
- package/dist/lib/generated/Entities/DataContextItem/datacontextitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DataContextItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DataContextItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DataContextItem/sections/details.component.js +214 -0
- package/dist/lib/generated/Entities/DataContextItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Dataset/dataset.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Dataset/dataset.form.component.js +11 -12
- package/dist/lib/generated/Entities/Dataset/dataset.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Dataset/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Dataset/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Dataset/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/Dataset/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js +3 -3
- package/dist/lib/generated/Entities/DatasetItem/datasetitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DatasetItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DatasetItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DatasetItem/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/DatasetItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js +11 -12
- package/dist/lib/generated/Entities/DuplicateRun/duplicaterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.js +205 -0
- package/dist/lib/generated/Entities/DuplicateRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js +19 -26
- package/dist/lib/generated/Entities/DuplicateRunDetail/duplicaterundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.js +136 -0
- package/dist/lib/generated/Entities/DuplicateRunDetail/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js +3 -3
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/duplicaterundetailmatch.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/DuplicateRunDetailMatch/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Employee/employee.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Employee/employee.form.component.js +35 -36
- package/dist/lib/generated/Entities/Employee/employee.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Employee/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Employee/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Employee/sections/details.component.js +202 -0
- package/dist/lib/generated/Entities/Employee/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js +10 -16
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/employeecompanyintegration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/EmployeeCompanyIntegration/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js +4 -4
- package/dist/lib/generated/Entities/EmployeeRole/employeerole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.js +102 -0
- package/dist/lib/generated/Entities/EmployeeRole/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js +7 -13
- package/dist/lib/generated/Entities/EmployeeSkill/employeeskill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.js +102 -0
- package/dist/lib/generated/Entities/EmployeeSkill/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.js +11 -12
- package/dist/lib/generated/Entities/EncryptionAlgorithm/encryptionalgorithm.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.js +11 -12
- package/dist/lib/generated/Entities/EncryptionKey/encryptionkey.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.js +11 -12
- package/dist/lib/generated/Entities/EncryptionKeySource/encryptionkeysource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Entity/entity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Entity/entity.form.component.js +308 -273
- package/dist/lib/generated/Entities/Entity/entity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Entity/sections/api.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Entity/sections/api.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/api.component.js +116 -0
- package/dist/lib/generated/Entities/Entity/sections/api.component.js.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/audit.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Entity/sections/audit.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/audit.component.js +71 -0
- package/dist/lib/generated/Entities/Entity/sections/audit.component.js.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/db.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Entity/sections/db.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/db.component.js +107 -0
- package/dist/lib/generated/Entities/Entity/sections/db.component.js.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/details.component.js +415 -0
- package/dist/lib/generated/Entities/Entity/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/top.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Entity/sections/top.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/top.component.js +107 -0
- package/dist/lib/generated/Entities/Entity/sections/top.component.js.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/ui.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Entity/sections/ui.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Entity/sections/ui.component.js +62 -0
- package/dist/lib/generated/Entities/Entity/sections/ui.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityAIAction/entityaiaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.js +223 -0
- package/dist/lib/generated/Entities/EntityAIAction/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js +23 -24
- package/dist/lib/generated/Entities/EntityAction/entityaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityAction/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityAction/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityAction/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/EntityAction/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js +4 -4
- package/dist/lib/generated/Entities/EntityActionFilter/entityactionfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/EntityActionFilter/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js +9 -15
- package/dist/lib/generated/Entities/EntityActionInvocation/entityactioninvocation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/EntityActionInvocation/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js +11 -12
- package/dist/lib/generated/Entities/EntityActionInvocationType/entityactioninvocationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.js +98 -0
- package/dist/lib/generated/Entities/EntityActionInvocationType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js +4 -4
- package/dist/lib/generated/Entities/EntityActionParam/entityactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/EntityActionParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js +7 -13
- package/dist/lib/generated/Entities/EntityCommunicationField/entitycommunicationfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.js +100 -0
- package/dist/lib/generated/Entities/EntityCommunicationField/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js +11 -12
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/entitycommunicationmessagetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/EntityCommunicationMessageType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js +23 -24
- package/dist/lib/generated/Entities/EntityDocument/entitydocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityDocument/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityDocument/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityDocument/sections/details.component.js +207 -0
- package/dist/lib/generated/Entities/EntityDocument/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityDocumentRun/entitydocumentrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/EntityDocumentRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityDocumentSetting/entitydocumentsetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/EntityDocumentSetting/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js +11 -12
- package/dist/lib/generated/Entities/EntityDocumentType/entitydocumenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/EntityDocumentType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityField/entityfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js +31 -26
- package/dist/lib/generated/Entities/EntityField/entityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityField/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityField/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityField/sections/details.component.js +561 -0
- package/dist/lib/generated/Entities/EntityField/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityFieldValue/entityfieldvalue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.js +145 -0
- package/dist/lib/generated/Entities/EntityFieldValue/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityPermission/entitypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityPermission/sections/details.component.js +236 -0
- package/dist/lib/generated/Entities/EntityPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityRecordDocument/entityrecorddocument.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.js +176 -0
- package/dist/lib/generated/Entities/EntityRecordDocument/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntityRelationship/entityrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.js +349 -0
- package/dist/lib/generated/Entities/EntityRelationship/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js +11 -12
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/entityrelationshipdisplaycomponent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.js +98 -0
- package/dist/lib/generated/Entities/EntityRelationshipDisplayComponent/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js +3 -3
- package/dist/lib/generated/Entities/EntitySetting/entitysetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/EntitySetting/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/EntitySetting/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/EntitySetting/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/EntitySetting/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Environment/environment.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Environment/environment.form.component.js +47 -48
- package/dist/lib/generated/Entities/Environment/environment.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Environment/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Environment/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Environment/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/Environment/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js +4 -4
- package/dist/lib/generated/Entities/ErrorLog/errorlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ErrorLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ErrorLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ErrorLog/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/ErrorLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js +3 -3
- package/dist/lib/generated/Entities/ExplorerNavigationItem/explorernavigationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.js +152 -0
- package/dist/lib/generated/Entities/ExplorerNavigationItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/File/file.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/File/file.form.component.js +29 -30
- package/dist/lib/generated/Entities/File/file.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/File/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/File/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/File/sections/details.component.js +156 -0
- package/dist/lib/generated/Entities/File/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/FileCategory/filecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/FileCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js +3 -3
- package/dist/lib/generated/Entities/FileEntityRecordLink/fileentityrecordlink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/FileEntityRecordLink/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.js +3 -3
- package/dist/lib/generated/Entities/FileStorageAccount/filestorageaccount.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js +29 -30
- package/dist/lib/generated/Entities/FileStorageProvider/filestorageprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.js +134 -0
- package/dist/lib/generated/Entities/FileStorageProvider/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js +3 -3
- package/dist/lib/generated/Entities/GeneratedCode/generatedcode.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.js +203 -0
- package/dist/lib/generated/Entities/GeneratedCode/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/GeneratedCodeCategory/generatedcodecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/GeneratedCodeCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Integration/integration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Integration/integration.form.component.js +23 -24
- package/dist/lib/generated/Entities/Integration/integration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Integration/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Integration/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Integration/sections/details.component.js +135 -0
- package/dist/lib/generated/Entities/Integration/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js +3 -3
- package/dist/lib/generated/Entities/IntegrationURLFormat/integrationurlformat.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.js +139 -0
- package/dist/lib/generated/Entities/IntegrationURLFormat/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Library/library.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Library/library.form.component.js +17 -18
- package/dist/lib/generated/Entities/Library/library.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Library/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Library/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Library/sections/details.component.js +116 -0
- package/dist/lib/generated/Entities/Library/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js +3 -3
- package/dist/lib/generated/Entities/LibraryItem/libraryitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/LibraryItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/LibraryItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/LibraryItem/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/LibraryItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/List/list.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/List/list.form.component.js +29 -30
- package/dist/lib/generated/Entities/List/list.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/List/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/List/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/List/sections/details.component.js +178 -0
- package/dist/lib/generated/Entities/List/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/ListCategory/listcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/ListCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js +3 -3
- package/dist/lib/generated/Entities/ListDetail/listdetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ListDetail/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ListDetail/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ListDetail/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/ListDetail/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.js +3 -3
- package/dist/lib/generated/Entities/ListInvitation/listinvitation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ListShare/listshare.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ListShare/listshare.form.component.js +3 -3
- package/dist/lib/generated/Entities/ListShare/listshare.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js +177 -0
- package/dist/lib/generated/Entities/MCPServer/mcpserver.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js +211 -0
- package/dist/lib/generated/Entities/MCPServerConnection/mcpserverconnection.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js +77 -0
- package/dist/lib/generated/Entities/MCPServerConnectionPermission/mcpserverconnectionpermission.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js +73 -0
- package/dist/lib/generated/Entities/MCPServerConnectionTool/mcpserverconnectiontool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js +131 -0
- package/dist/lib/generated/Entities/MCPServerTool/mcpservertool.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js +101 -0
- package/dist/lib/generated/Entities/MCPToolExecutionLog/mcptoolexecutionlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.js +75 -0
- package/dist/lib/generated/Entities/OAuthAuthServerMetadataCache/oauthauthservermetadatacache.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.js +81 -0
- package/dist/lib/generated/Entities/OAuthAuthorizationState/oauthauthorizationstate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.js +81 -0
- package/dist/lib/generated/Entities/OAuthClientRegistration/oauthclientregistration.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.js +67 -0
- package/dist/lib/generated/Entities/OAuthToken/oauthtoken.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js +11 -12
- package/dist/lib/generated/Entities/OutputDeliveryType/outputdeliverytype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/OutputDeliveryType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js +11 -12
- package/dist/lib/generated/Entities/OutputFormatType/outputformattype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.js +98 -0
- package/dist/lib/generated/Entities/OutputFormatType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js +11 -12
- package/dist/lib/generated/Entities/OutputTriggerType/outputtriggertype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/OutputTriggerType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Project/project.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Project/project.form.component.js +23 -24
- package/dist/lib/generated/Entities/Project/project.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Project/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Project/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Project/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/Project/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.js +3 -3
- package/dist/lib/generated/Entities/PublicLink/publiclink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/PublicLink/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/PublicLink/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/PublicLink/sections/details.component.js +163 -0
- package/dist/lib/generated/Entities/PublicLink/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Query/query.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Query/query.form.component.js +35 -36
- package/dist/lib/generated/Entities/Query/query.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Query/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Query/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Query/sections/details.component.js +255 -0
- package/dist/lib/generated/Entities/Query/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/QueryCategory/querycategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js +174 -0
- package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js +3 -3
- package/dist/lib/generated/Entities/QueryEntity/queryentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryEntity/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueryEntity/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueryEntity/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/QueryEntity/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueryField/queryfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js +3 -3
- package/dist/lib/generated/Entities/QueryField/queryfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryField/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueryField/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueryField/sections/details.component.js +219 -0
- package/dist/lib/generated/Entities/QueryField/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.js +3 -3
- package/dist/lib/generated/Entities/QueryParameter/queryparameter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryParameter/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueryParameter/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueryParameter/sections/details.component.js +172 -0
- package/dist/lib/generated/Entities/QueryParameter/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/QueryPermission/querypermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueryPermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueryPermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueryPermission/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/QueryPermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Queue/queue.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Queue/queue.form.component.js +11 -12
- package/dist/lib/generated/Entities/Queue/queue.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Queue/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Queue/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Queue/sections/details.component.js +226 -0
- package/dist/lib/generated/Entities/Queue/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js +3 -3
- package/dist/lib/generated/Entities/QueueTask/queuetask.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueueTask/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueueTask/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueueTask/sections/details.component.js +163 -0
- package/dist/lib/generated/Entities/QueueTask/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/QueueType/queuetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js +11 -12
- package/dist/lib/generated/Entities/QueueType/queuetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/QueueType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/QueueType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/QueueType/sections/details.component.js +116 -0
- package/dist/lib/generated/Entities/QueueType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js +16 -23
- package/dist/lib/generated/Entities/Recommendation/recommendation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Recommendation/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Recommendation/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Recommendation/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/Recommendation/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js +7 -13
- package/dist/lib/generated/Entities/RecommendationItem/recommendationitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/RecommendationItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js +11 -12
- package/dist/lib/generated/Entities/RecommendationProvider/recommendationprovider.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/RecommendationProvider/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js +11 -12
- package/dist/lib/generated/Entities/RecommendationRun/recommendationrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/RecommendationRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js +31 -19
- package/dist/lib/generated/Entities/RecordChange/recordchange.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecordChange/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecordChange/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecordChange/sections/details.component.js +232 -0
- package/dist/lib/generated/Entities/RecordChange/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js +11 -12
- package/dist/lib/generated/Entities/RecordChangeReplayRun/recordchangereplayrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.js +118 -0
- package/dist/lib/generated/Entities/RecordChangeReplayRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.js +3 -3
- package/dist/lib/generated/Entities/RecordLink/recordlink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecordLink/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecordLink/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecordLink/sections/details.component.js +156 -0
- package/dist/lib/generated/Entities/RecordLink/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js +7 -13
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/recordmergedeletionlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/RecordMergeDeletionLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js +17 -18
- package/dist/lib/generated/Entities/RecordMergeLog/recordmergelog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.js +194 -0
- package/dist/lib/generated/Entities/RecordMergeLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Report/report.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Report/report.form.component.js +28 -35
- package/dist/lib/generated/Entities/Report/report.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Report/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Report/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Report/sections/details.component.js +325 -0
- package/dist/lib/generated/Entities/Report/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/ReportCategory/reportcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/ReportCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js +3 -3
- package/dist/lib/generated/Entities/ReportSnapshot/reportsnapshot.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ReportSnapshot/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js +3 -3
- package/dist/lib/generated/Entities/ReportUserState/reportuserstate.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ReportUserState/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ReportUserState/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ReportUserState/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/ReportUserState/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js +3 -3
- package/dist/lib/generated/Entities/ReportVersion/reportversion.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ReportVersion/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ReportVersion/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ReportVersion/sections/details.component.js +136 -0
- package/dist/lib/generated/Entities/ReportVersion/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js +3 -3
- package/dist/lib/generated/Entities/ResourceLink/resourcelink.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ResourceLink/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ResourceLink/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ResourceLink/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/ResourceLink/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js +3 -3
- package/dist/lib/generated/Entities/ResourcePermission/resourcepermission.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.js +185 -0
- package/dist/lib/generated/Entities/ResourcePermission/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js +29 -30
- package/dist/lib/generated/Entities/ResourceType/resourcetype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ResourceType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ResourceType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ResourceType/sections/details.component.js +147 -0
- package/dist/lib/generated/Entities/ResourceType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Role/role.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Role/role.form.component.js +59 -42
- package/dist/lib/generated/Entities/Role/role.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Role/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Role/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Role/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/Role/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js +11 -12
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/rowlevelsecurityfilter.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.js +98 -0
- package/dist/lib/generated/Entities/RowLevelSecurityFilter/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js +11 -12
- package/dist/lib/generated/Entities/ScheduledAction/scheduledaction.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.js +210 -0
- package/dist/lib/generated/Entities/ScheduledAction/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js +3 -3
- package/dist/lib/generated/Entities/ScheduledActionParam/scheduledactionparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/ScheduledActionParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.js +11 -12
- package/dist/lib/generated/Entities/ScheduledJob/scheduledjob.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.js +329 -0
- package/dist/lib/generated/Entities/ScheduledJob/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.js +11 -12
- package/dist/lib/generated/Entities/ScheduledJobRun/scheduledjobrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.js +174 -0
- package/dist/lib/generated/Entities/ScheduledJobRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.js +11 -12
- package/dist/lib/generated/Entities/ScheduledJobType/scheduledjobtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.js +125 -0
- package/dist/lib/generated/Entities/ScheduledJobType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js +3 -3
- package/dist/lib/generated/Entities/SchemaInfo/schemainfo.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/SchemaInfo/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Skill/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Skill/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Skill/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/Skill/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Skill/skill.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Skill/skill.form.component.js +17 -18
- package/dist/lib/generated/Entities/Skill/skill.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Tag/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Tag/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Tag/sections/details.component.js +127 -0
- package/dist/lib/generated/Entities/Tag/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Tag/tag.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Tag/tag.form.component.js +17 -18
- package/dist/lib/generated/Entities/Tag/tag.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TaggedItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TaggedItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TaggedItem/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/TaggedItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js +3 -3
- package/dist/lib/generated/Entities/TaggedItem/taggeditem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Task/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Task/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Task/sections/details.component.js +274 -0
- package/dist/lib/generated/Entities/Task/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Task/task.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Task/task.form.component.js +33 -40
- package/dist/lib/generated/Entities/Task/task.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TaskDependency/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TaskDependency/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TaskDependency/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/TaskDependency/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.js +3 -3
- package/dist/lib/generated/Entities/TaskDependency/taskdependency.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TaskType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TaskType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TaskType/sections/details.component.js +89 -0
- package/dist/lib/generated/Entities/TaskType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TaskType/tasktype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TaskType/tasktype.form.component.js +11 -12
- package/dist/lib/generated/Entities/TaskType/tasktype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Template/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Template/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Template/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/Template/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Template/template.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Template/template.form.component.js +41 -42
- package/dist/lib/generated/Entities/Template/template.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/TemplateCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/TemplateCategory/templatecategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TemplateContent/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TemplateContent/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TemplateContent/sections/details.component.js +138 -0
- package/dist/lib/generated/Entities/TemplateContent/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js +11 -12
- package/dist/lib/generated/Entities/TemplateContent/templatecontent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.js +98 -0
- package/dist/lib/generated/Entities/TemplateContentType/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js +11 -12
- package/dist/lib/generated/Entities/TemplateContentType/templatecontenttype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TemplateParam/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/TemplateParam/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/TemplateParam/sections/details.component.js +212 -0
- package/dist/lib/generated/Entities/TemplateParam/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js +12 -18
- package/dist/lib/generated/Entities/TemplateParam/templateparam.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Test/test.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Test/test.form.component.js +17 -18
- package/dist/lib/generated/Entities/Test/test.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.js +3 -3
- package/dist/lib/generated/Entities/TestRubric/testrubric.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestRun/testrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestRun/testrun.form.component.js +35 -36
- package/dist/lib/generated/Entities/TestRun/testrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js +3 -3
- package/dist/lib/generated/Entities/TestRunFeedback/testrunfeedback.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js +23 -24
- package/dist/lib/generated/Entities/TestSuite/testsuite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js +11 -12
- package/dist/lib/generated/Entities/TestSuiteRun/testsuiterun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.js +3 -3
- package/dist/lib/generated/Entities/TestSuiteTest/testsuitetest.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/TestType/testtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/TestType/testtype.form.component.js +17 -18
- package/dist/lib/generated/Entities/TestType/testtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/User/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/User/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/User/sections/details.component.js +247 -0
- package/dist/lib/generated/Entities/User/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/User/user.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/User/user.form.component.js +560 -471
- package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserApplication/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserApplication/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserApplication/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/UserApplication/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js +11 -12
- package/dist/lib/generated/Entities/UserApplication/userapplication.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/UserApplicationEntity/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserApplicationEntity/userapplicationentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserFavorite/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserFavorite/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserFavorite/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/UserFavorite/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserFavorite/userfavorite.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserNotification/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserNotification/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserNotification/sections/details.component.js +165 -0
- package/dist/lib/generated/Entities/UserNotification/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserNotification/usernotification.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserNotificationPreference/usernotificationpreference.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.js +17 -18
- package/dist/lib/generated/Entities/UserNotificationType/usernotificationtype.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.js +183 -0
- package/dist/lib/generated/Entities/UserRecordLog/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserRecordLog/userrecordlog.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserRole/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserRole/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserRole/sections/details.component.js +111 -0
- package/dist/lib/generated/Entities/UserRole/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserRole/userrole.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserRole/userrole.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserRole/userrole.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserSetting/usersetting.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserView/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserView/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserView/sections/details.component.js +293 -0
- package/dist/lib/generated/Entities/UserView/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserView/userview.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserView/userview.form.component.js +23 -24
- package/dist/lib/generated/Entities/UserView/userview.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.js +158 -0
- package/dist/lib/generated/Entities/UserViewCategory/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js +17 -18
- package/dist/lib/generated/Entities/UserViewCategory/userviewcategory.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserViewRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserViewRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserViewRun/sections/details.component.js +120 -0
- package/dist/lib/generated/Entities/UserViewRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js +11 -12
- package/dist/lib/generated/Entities/UserViewRun/userviewrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/UserViewRunDetail/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js +3 -3
- package/dist/lib/generated/Entities/UserViewRunDetail/userviewrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/VectorDatabase/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js +17 -18
- package/dist/lib/generated/Entities/VectorDatabase/vectordatabase.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/VectorIndex/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/VectorIndex/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/VectorIndex/sections/details.component.js +129 -0
- package/dist/lib/generated/Entities/VectorIndex/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js +11 -12
- package/dist/lib/generated/Entities/VectorIndex/vectorindex.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.js +152 -0
- package/dist/lib/generated/Entities/VersionInstallation/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js +3 -3
- package/dist/lib/generated/Entities/VersionInstallation/versioninstallation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.js +167 -0
- package/dist/lib/generated/Entities/VersionLabel/versionlabel.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.js +73 -0
- package/dist/lib/generated/Entities/VersionLabelItem/versionlabelitem.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.js +85 -0
- package/dist/lib/generated/Entities/VersionLabelRestore/versionlabelrestore.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/Workflow/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Workflow/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Workflow/sections/details.component.js +154 -0
- package/dist/lib/generated/Entities/Workflow/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Workflow/workflow.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Workflow/workflow.form.component.js +17 -18
- package/dist/lib/generated/Entities/Workflow/workflow.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.js +107 -0
- package/dist/lib/generated/Entities/WorkflowEngine/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js +11 -12
- package/dist/lib/generated/Entities/WorkflowEngine/workflowengine.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.js +145 -0
- package/dist/lib/generated/Entities/WorkflowRun/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js +3 -3
- package/dist/lib/generated/Entities/WorkflowRun/workflowrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/Workspace/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/Workspace/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/Workspace/sections/details.component.js +109 -0
- package/dist/lib/generated/Entities/Workspace/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/Workspace/workspace.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Workspace/workspace.form.component.js +11 -12
- package/dist/lib/generated/Entities/Workspace/workspace.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.d.ts +11 -0
- package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.js +156 -0
- package/dist/lib/generated/Entities/WorkspaceItem/sections/details.component.js.map +1 -0
- package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js +3 -3
- package/dist/lib/generated/Entities/WorkspaceItem/workspaceitem.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.d.ts +11 -0
- package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.js +67 -0
- package/dist/lib/generated/Entities/flyway_schema_history/flyway_schema_history.form.component.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +104 -86
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +188 -79
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +167 -164
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +0 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +2 -1
- package/dist/public-api.js.map +1 -1
- package/package.json +54 -52
|
@@ -18,33 +18,31 @@ import * as i0 from "@angular/core";
|
|
|
18
18
|
import * as i1 from "@memberjunction/ng-shared";
|
|
19
19
|
import * as i2 from "@angular/router";
|
|
20
20
|
import * as i3 from "@memberjunction/ng-testing";
|
|
21
|
-
import * as i4 from "@
|
|
22
|
-
import * as i5 from "@angular/
|
|
23
|
-
import * as i6 from "@
|
|
24
|
-
import * as i7 from "@progress/kendo-angular-
|
|
25
|
-
import * as i8 from "
|
|
21
|
+
import * as i4 from "@memberjunction/ng-base-application";
|
|
22
|
+
import * as i5 from "@angular/common";
|
|
23
|
+
import * as i6 from "@angular/forms";
|
|
24
|
+
import * as i7 from "@progress/kendo-angular-dialog";
|
|
25
|
+
import * as i8 from "@progress/kendo-angular-buttons";
|
|
26
|
+
import * as i9 from "./entity-link-pill.component";
|
|
26
27
|
const _c0 = () => [1, 2, 3, 4, 5];
|
|
27
28
|
const _c1 = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
28
|
-
function
|
|
29
|
+
function TestSuiteRunFormComponentExtended_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
29
30
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
30
|
-
i0.ɵɵelementStart(0, "
|
|
31
|
-
i0.ɵɵ
|
|
32
|
-
i0.ɵɵ
|
|
33
|
-
i0.ɵɵ
|
|
34
|
-
i0.ɵɵ
|
|
35
|
-
i0.ɵɵ
|
|
36
|
-
i0.ɵɵ
|
|
37
|
-
i0.ɵɵ
|
|
38
|
-
i0.ɵɵelementEnd()();
|
|
31
|
+
i0.ɵɵelementStart(0, "li");
|
|
32
|
+
i0.ɵɵelement(1, "i", 7);
|
|
33
|
+
i0.ɵɵelementStart(2, "a", 3);
|
|
34
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_9_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openTestSuite()); });
|
|
35
|
+
i0.ɵɵelement(3, "i", 66);
|
|
36
|
+
i0.ɵɵelementStart(4, "span", 5);
|
|
37
|
+
i0.ɵɵtext(5);
|
|
38
|
+
i0.ɵɵelementEnd()()();
|
|
39
39
|
} if (rf & 2) {
|
|
40
40
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
41
|
-
i0.ɵɵadvance(
|
|
42
|
-
i0.ɵɵ
|
|
43
|
-
i0.ɵɵadvance(3);
|
|
44
|
-
i0.ɵɵtextInterpolate1("Run #", ctx_r1.record.ID.substring(0, 8), "");
|
|
41
|
+
i0.ɵɵadvance(5);
|
|
42
|
+
i0.ɵɵtextInterpolate(ctx_r1.testSuite.Name);
|
|
45
43
|
} }
|
|
46
|
-
function
|
|
47
|
-
i0.ɵɵelementStart(0, "span",
|
|
44
|
+
function TestSuiteRunFormComponentExtended_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
i0.ɵɵelementStart(0, "span", 15);
|
|
48
46
|
i0.ɵɵelement(1, "i", 67);
|
|
49
47
|
i0.ɵɵtext(2);
|
|
50
48
|
i0.ɵɵelementEnd();
|
|
@@ -53,9 +51,9 @@ function TestSuiteRunFormComponentExtended_span_14_Template(rf, ctx) { if (rf &
|
|
|
53
51
|
i0.ɵɵadvance(2);
|
|
54
52
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.Environment, " ");
|
|
55
53
|
} }
|
|
56
|
-
function
|
|
57
|
-
i0.ɵɵelementStart(0, "span",
|
|
58
|
-
i0.ɵɵelement(1, "i",
|
|
54
|
+
function TestSuiteRunFormComponentExtended_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementStart(0, "span", 16);
|
|
56
|
+
i0.ɵɵelement(1, "i", 68);
|
|
59
57
|
i0.ɵɵtext(2);
|
|
60
58
|
i0.ɵɵelementEnd();
|
|
61
59
|
} if (rf & 2) {
|
|
@@ -63,16 +61,16 @@ function TestSuiteRunFormComponentExtended_span_15_Template(rf, ctx) { if (rf &
|
|
|
63
61
|
i0.ɵɵadvance(2);
|
|
64
62
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.record.TriggerType, " ");
|
|
65
63
|
} }
|
|
66
|
-
function
|
|
64
|
+
function TestSuiteRunFormComponentExtended_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
67
65
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
68
|
-
i0.ɵɵelementStart(0, "button",
|
|
69
|
-
i0.ɵɵlistener("click", function
|
|
70
|
-
i0.ɵɵelement(1, "i",
|
|
66
|
+
i0.ɵɵelementStart(0, "button", 69);
|
|
67
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_29_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.reRunSuite()); });
|
|
68
|
+
i0.ɵɵelement(1, "i", 70);
|
|
71
69
|
i0.ɵɵtext(2, " Re-run Suite ");
|
|
72
70
|
i0.ɵɵelementEnd();
|
|
73
71
|
} }
|
|
74
|
-
function
|
|
75
|
-
i0.ɵɵelementStart(0, "span",
|
|
72
|
+
function TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
i0.ɵɵelementStart(0, "span", 78);
|
|
76
74
|
i0.ɵɵtext(1);
|
|
77
75
|
i0.ɵɵelementEnd();
|
|
78
76
|
} if (rf & 2) {
|
|
@@ -80,91 +78,93 @@ function TestSuiteRunFormComponentExtended_div_96_div_4_span_1_Template(rf, ctx)
|
|
|
80
78
|
i0.ɵɵadvance();
|
|
81
79
|
i0.ɵɵtextInterpolate(tag_r5);
|
|
82
80
|
} }
|
|
83
|
-
function
|
|
84
|
-
i0.ɵɵelementStart(0, "div",
|
|
85
|
-
i0.ɵɵ
|
|
81
|
+
function TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
i0.ɵɵelementStart(0, "div", 74);
|
|
83
|
+
i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_For_2_Template, 2, 1, "span", 78, i0.ɵɵrepeaterTrackByIdentity);
|
|
86
84
|
i0.ɵɵelementEnd();
|
|
87
85
|
} if (rf & 2) {
|
|
88
86
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
89
87
|
i0.ɵɵadvance();
|
|
90
|
-
i0.ɵɵ
|
|
88
|
+
i0.ɵɵrepeater(ctx_r1.tags);
|
|
91
89
|
} }
|
|
92
|
-
function
|
|
93
|
-
i0.ɵɵelementStart(0, "span",
|
|
90
|
+
function TestSuiteRunFormComponentExtended_Conditional_107_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
91
|
+
i0.ɵɵelementStart(0, "span", 75);
|
|
94
92
|
i0.ɵɵtext(1, "No tags");
|
|
95
93
|
i0.ɵɵelementEnd();
|
|
96
94
|
} }
|
|
97
|
-
function
|
|
95
|
+
function TestSuiteRunFormComponentExtended_Conditional_107_Template(rf, ctx) { if (rf & 1) {
|
|
98
96
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
99
|
-
i0.ɵɵelementStart(0, "div",
|
|
100
|
-
i0.ɵɵelement(3, "i",
|
|
101
|
-
i0.ɵɵelementEnd();
|
|
102
|
-
i0.ɵɵ
|
|
103
|
-
i0.ɵɵ
|
|
104
|
-
i0.ɵɵ
|
|
105
|
-
i0.ɵɵ
|
|
97
|
+
i0.ɵɵelementStart(0, "div", 45)(1, "div", 71)(2, "span", 72);
|
|
98
|
+
i0.ɵɵelement(3, "i", 73);
|
|
99
|
+
i0.ɵɵelementEnd();
|
|
100
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_107_Conditional_4_Template, 3, 0, "div", 74);
|
|
101
|
+
i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_107_Conditional_5_Template, 2, 0, "span", 75);
|
|
102
|
+
i0.ɵɵelementStart(6, "button", 76);
|
|
103
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_107_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.startEditingTags()); });
|
|
104
|
+
i0.ɵɵelement(7, "i", 77);
|
|
106
105
|
i0.ɵɵtext(8, " Add ");
|
|
107
106
|
i0.ɵɵelementEnd()()();
|
|
108
107
|
} if (rf & 2) {
|
|
109
108
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
110
109
|
i0.ɵɵadvance(4);
|
|
111
|
-
i0.ɵɵ
|
|
110
|
+
i0.ɵɵconditional(ctx_r1.tags.length > 0 ? 4 : -1);
|
|
112
111
|
i0.ɵɵadvance();
|
|
113
|
-
i0.ɵɵ
|
|
112
|
+
i0.ɵɵconditional(ctx_r1.tags.length === 0 ? 5 : -1);
|
|
114
113
|
} }
|
|
115
|
-
function
|
|
114
|
+
function TestSuiteRunFormComponentExtended_Conditional_108_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
116
115
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
117
|
-
i0.ɵɵelementStart(0, "span",
|
|
116
|
+
i0.ɵɵelementStart(0, "span", 83);
|
|
118
117
|
i0.ɵɵtext(1);
|
|
119
|
-
i0.ɵɵelementStart(2, "button",
|
|
120
|
-
i0.ɵɵlistener("click", function
|
|
121
|
-
i0.ɵɵelement(3, "i",
|
|
118
|
+
i0.ɵɵelementStart(2, "button", 92);
|
|
119
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_For_8_Template_button_click_2_listener() { const tag_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.removeTag(tag_r8)); });
|
|
120
|
+
i0.ɵɵelement(3, "i", 93);
|
|
122
121
|
i0.ɵɵelementEnd()();
|
|
123
122
|
} if (rf & 2) {
|
|
124
123
|
const tag_r8 = ctx.$implicit;
|
|
125
124
|
i0.ɵɵadvance();
|
|
126
125
|
i0.ɵɵtextInterpolate1(" ", tag_r8, " ");
|
|
127
126
|
} }
|
|
128
|
-
function
|
|
129
|
-
i0.ɵɵelementStart(0, "span",
|
|
127
|
+
function TestSuiteRunFormComponentExtended_Conditional_108_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
+
i0.ɵɵelementStart(0, "span", 84);
|
|
130
129
|
i0.ɵɵtext(1, "No tags yet");
|
|
131
130
|
i0.ɵɵelementEnd();
|
|
132
131
|
} }
|
|
133
|
-
function
|
|
134
|
-
i0.ɵɵelement(0, "i",
|
|
132
|
+
function TestSuiteRunFormComponentExtended_Conditional_108_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
+
i0.ɵɵelement(0, "i", 90);
|
|
135
134
|
} }
|
|
136
|
-
function
|
|
135
|
+
function TestSuiteRunFormComponentExtended_Conditional_108_Template(rf, ctx) { if (rf & 1) {
|
|
137
136
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
138
|
-
i0.ɵɵelementStart(0, "div",
|
|
139
|
-
i0.ɵɵelement(3, "i",
|
|
137
|
+
i0.ɵɵelementStart(0, "div", 46)(1, "div", 79)(2, "span", 80);
|
|
138
|
+
i0.ɵɵelement(3, "i", 73);
|
|
140
139
|
i0.ɵɵtext(4, " Edit Tags");
|
|
141
140
|
i0.ɵɵelementEnd()();
|
|
142
|
-
i0.ɵɵelementStart(5, "div",
|
|
143
|
-
i0.ɵɵ
|
|
141
|
+
i0.ɵɵelementStart(5, "div", 81)(6, "div", 82);
|
|
142
|
+
i0.ɵɵrepeaterCreate(7, TestSuiteRunFormComponentExtended_Conditional_108_For_8_Template, 4, 1, "span", 83, i0.ɵɵrepeaterTrackByIdentity);
|
|
143
|
+
i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_108_Conditional_9_Template, 2, 0, "span", 84);
|
|
144
144
|
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵelementStart(
|
|
146
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
147
|
-
i0.ɵɵlistener("keyup.enter", function
|
|
145
|
+
i0.ɵɵelementStart(10, "div", 85)(11, "input", 86);
|
|
146
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_108_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.newTag, $event) || (ctx_r1.newTag = $event); return i0.ɵɵresetView($event); });
|
|
147
|
+
i0.ɵɵlistener("keyup.enter", function TestSuiteRunFormComponentExtended_Conditional_108_Template_input_keyup_enter_11_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
|
|
148
148
|
i0.ɵɵelementEnd();
|
|
149
|
-
i0.ɵɵelementStart(
|
|
150
|
-
i0.ɵɵlistener("click", function
|
|
151
|
-
i0.ɵɵelement(
|
|
149
|
+
i0.ɵɵelementStart(12, "button", 87);
|
|
150
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addTag()); });
|
|
151
|
+
i0.ɵɵelement(13, "i", 77);
|
|
152
152
|
i0.ɵɵelementEnd()()();
|
|
153
|
-
i0.ɵɵelementStart(
|
|
154
|
-
i0.ɵɵlistener("click", function
|
|
155
|
-
i0.ɵɵ
|
|
156
|
-
i0.ɵɵtext(
|
|
157
|
-
i0.ɵɵelementEnd();
|
|
158
|
-
i0.ɵɵelementStart(
|
|
159
|
-
i0.ɵɵlistener("click", function
|
|
160
|
-
i0.ɵɵtext(
|
|
153
|
+
i0.ɵɵelementStart(14, "div", 88)(15, "button", 89);
|
|
154
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveTags()); });
|
|
155
|
+
i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_108_Conditional_16_Template, 1, 0, "i", 90);
|
|
156
|
+
i0.ɵɵtext(17);
|
|
157
|
+
i0.ɵɵelementEnd();
|
|
158
|
+
i0.ɵɵelementStart(18, "button", 91);
|
|
159
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_108_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelEditingTags()); });
|
|
160
|
+
i0.ɵɵtext(19, "Cancel");
|
|
161
161
|
i0.ɵɵelementEnd()()();
|
|
162
162
|
} if (rf & 2) {
|
|
163
163
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
164
164
|
i0.ɵɵadvance(7);
|
|
165
|
-
i0.ɵɵ
|
|
166
|
-
i0.ɵɵadvance();
|
|
167
|
-
i0.ɵɵ
|
|
165
|
+
i0.ɵɵrepeater(ctx_r1.tags);
|
|
166
|
+
i0.ɵɵadvance(2);
|
|
167
|
+
i0.ɵɵconditional(ctx_r1.tags.length === 0 ? 9 : -1);
|
|
168
168
|
i0.ɵɵadvance(2);
|
|
169
169
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.newTag);
|
|
170
170
|
i0.ɵɵadvance();
|
|
@@ -172,12 +172,12 @@ function TestSuiteRunFormComponentExtended_div_97_Template(rf, ctx) { if (rf & 1
|
|
|
172
172
|
i0.ɵɵadvance(3);
|
|
173
173
|
i0.ɵɵproperty("disabled", ctx_r1.savingTags);
|
|
174
174
|
i0.ɵɵadvance();
|
|
175
|
-
i0.ɵɵ
|
|
175
|
+
i0.ɵɵconditional(ctx_r1.savingTags ? 16 : -1);
|
|
176
176
|
i0.ɵɵadvance();
|
|
177
177
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.savingTags ? "Saving..." : "Save", " ");
|
|
178
178
|
} }
|
|
179
|
-
function
|
|
180
|
-
i0.ɵɵelementStart(0, "span",
|
|
179
|
+
function TestSuiteRunFormComponentExtended_Conditional_117_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
i0.ɵɵelementStart(0, "span", 51);
|
|
181
181
|
i0.ɵɵtext(1);
|
|
182
182
|
i0.ɵɵelementEnd();
|
|
183
183
|
} if (rf & 2) {
|
|
@@ -185,11 +185,11 @@ function TestSuiteRunFormComponentExtended_span_106_Template(rf, ctx) { if (rf &
|
|
|
185
185
|
i0.ɵɵadvance();
|
|
186
186
|
i0.ɵɵtextInterpolate(ctx_r1.testRuns.length);
|
|
187
187
|
} }
|
|
188
|
-
function
|
|
189
|
-
i0.ɵɵelementStart(0, "div",
|
|
188
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
189
|
+
i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
|
|
190
190
|
i0.ɵɵtext(2, "Avg Rating");
|
|
191
191
|
i0.ɵɵelementEnd();
|
|
192
|
-
i0.ɵɵelementStart(3, "span",
|
|
192
|
+
i0.ɵɵelementStart(3, "span", 112);
|
|
193
193
|
i0.ɵɵtext(4);
|
|
194
194
|
i0.ɵɵelementEnd()();
|
|
195
195
|
} if (rf & 2) {
|
|
@@ -197,8 +197,8 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_11_Template(
|
|
|
197
197
|
i0.ɵɵadvance(4);
|
|
198
198
|
i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.humanAvgRating.toFixed(1), "/10");
|
|
199
199
|
} }
|
|
200
|
-
function
|
|
201
|
-
i0.ɵɵelementStart(0, "span",
|
|
200
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
+
i0.ɵɵelementStart(0, "span", 115);
|
|
202
202
|
i0.ɵɵtext(1);
|
|
203
203
|
i0.ɵɵelementEnd();
|
|
204
204
|
} if (rf & 2) {
|
|
@@ -206,25 +206,25 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_12_span_5_Te
|
|
|
206
206
|
i0.ɵɵadvance();
|
|
207
207
|
i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.humanIncorrectCount, " incorrect");
|
|
208
208
|
} }
|
|
209
|
-
function
|
|
210
|
-
i0.ɵɵelementStart(0, "div",
|
|
209
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
210
|
+
i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
|
|
211
211
|
i0.ɵɵtext(2, "Correct");
|
|
212
212
|
i0.ɵɵelementEnd();
|
|
213
|
-
i0.ɵɵelementStart(3, "span",
|
|
213
|
+
i0.ɵɵelementStart(3, "span", 114);
|
|
214
214
|
i0.ɵɵtext(4);
|
|
215
215
|
i0.ɵɵelementEnd();
|
|
216
|
-
i0.ɵɵ
|
|
216
|
+
i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Conditional_5_Template, 2, 1, "span", 115);
|
|
217
217
|
i0.ɵɵelementEnd();
|
|
218
218
|
} if (rf & 2) {
|
|
219
219
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
220
220
|
i0.ɵɵadvance(4);
|
|
221
221
|
i0.ɵɵtextInterpolate(ctx_r1.evaluationMetrics.humanCorrectCount);
|
|
222
222
|
i0.ɵɵadvance();
|
|
223
|
-
i0.ɵɵ
|
|
223
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanIncorrectCount > 0 ? 5 : -1);
|
|
224
224
|
} }
|
|
225
|
-
function
|
|
226
|
-
i0.ɵɵelementStart(0, "div",
|
|
227
|
-
i0.ɵɵelement(2, "i",
|
|
225
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
226
|
+
i0.ɵɵelementStart(0, "div", 113)(1, "span", 116);
|
|
227
|
+
i0.ɵɵelement(2, "i", 117);
|
|
228
228
|
i0.ɵɵtext(3);
|
|
229
229
|
i0.ɵɵelementEnd()();
|
|
230
230
|
} if (rf & 2) {
|
|
@@ -232,38 +232,39 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_2_div_13_Template(
|
|
|
232
232
|
i0.ɵɵadvance(3);
|
|
233
233
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.evaluationMetrics.humanPendingCount, " need review ");
|
|
234
234
|
} }
|
|
235
|
-
function
|
|
236
|
-
i0.ɵɵelementStart(0, "div",
|
|
237
|
-
i0.ɵɵelement(2, "i",
|
|
235
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
+
i0.ɵɵelementStart(0, "div", 106)(1, "div", 107);
|
|
237
|
+
i0.ɵɵelement(2, "i", 108);
|
|
238
238
|
i0.ɵɵelementStart(3, "span");
|
|
239
239
|
i0.ɵɵtext(4, "Human Feedback");
|
|
240
240
|
i0.ɵɵelementEnd()();
|
|
241
|
-
i0.ɵɵelementStart(5, "div",
|
|
241
|
+
i0.ɵɵelementStart(5, "div", 109)(6, "div", 110)(7, "span", 111);
|
|
242
242
|
i0.ɵɵtext(8, "Reviewed");
|
|
243
243
|
i0.ɵɵelementEnd();
|
|
244
|
-
i0.ɵɵelementStart(9, "span",
|
|
244
|
+
i0.ɵɵelementStart(9, "span", 112);
|
|
245
245
|
i0.ɵɵtext(10);
|
|
246
246
|
i0.ɵɵelementEnd()();
|
|
247
|
-
i0.ɵɵ
|
|
247
|
+
i0.ɵɵconditionalCreate(11, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_11_Template, 5, 1, "div", 110);
|
|
248
|
+
i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_12_Template, 6, 2, "div", 110);
|
|
248
249
|
i0.ɵɵelementEnd();
|
|
249
|
-
i0.ɵɵ
|
|
250
|
+
i0.ɵɵconditionalCreate(13, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Conditional_13_Template, 4, 1, "div", 113);
|
|
250
251
|
i0.ɵɵelementEnd();
|
|
251
252
|
} if (rf & 2) {
|
|
252
253
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
253
254
|
i0.ɵɵadvance(10);
|
|
254
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.humanReviewedCount, " / ", ctx_r1.evaluationMetrics.totalRuns
|
|
255
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.humanReviewedCount, " / ", ctx_r1.evaluationMetrics.totalRuns);
|
|
255
256
|
i0.ɵɵadvance();
|
|
256
|
-
i0.ɵɵ
|
|
257
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanReviewedCount > 0 ? 11 : -1);
|
|
257
258
|
i0.ɵɵadvance();
|
|
258
|
-
i0.ɵɵ
|
|
259
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanReviewedCount > 0 ? 12 : -1);
|
|
259
260
|
i0.ɵɵadvance();
|
|
260
|
-
i0.ɵɵ
|
|
261
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.humanPendingCount > 0 ? 13 : -1);
|
|
261
262
|
} }
|
|
262
|
-
function
|
|
263
|
-
i0.ɵɵelementStart(0, "div",
|
|
263
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
+
i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
|
|
264
265
|
i0.ɵɵtext(2, "Avg Score");
|
|
265
266
|
i0.ɵɵelementEnd();
|
|
266
|
-
i0.ɵɵelementStart(3, "span",
|
|
267
|
+
i0.ɵɵelementStart(3, "span", 112);
|
|
267
268
|
i0.ɵɵtext(4);
|
|
268
269
|
i0.ɵɵelementEnd()();
|
|
269
270
|
} if (rf & 2) {
|
|
@@ -271,11 +272,11 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_11_Template(
|
|
|
271
272
|
i0.ɵɵadvance(4);
|
|
272
273
|
i0.ɵɵtextInterpolate1("", (ctx_r1.evaluationMetrics.autoAvgScore * 100).toFixed(0), "%");
|
|
273
274
|
} }
|
|
274
|
-
function
|
|
275
|
-
i0.ɵɵelementStart(0, "div",
|
|
275
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
276
|
+
i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
|
|
276
277
|
i0.ɵɵtext(2, "Pass Rate");
|
|
277
278
|
i0.ɵɵelementEnd();
|
|
278
|
-
i0.ɵɵelementStart(3, "span",
|
|
279
|
+
i0.ɵɵelementStart(3, "span", 112);
|
|
279
280
|
i0.ɵɵtext(4);
|
|
280
281
|
i0.ɵɵelementEnd()();
|
|
281
282
|
} if (rf & 2) {
|
|
@@ -283,31 +284,32 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_3_div_12_Template(
|
|
|
283
284
|
i0.ɵɵadvance(4);
|
|
284
285
|
i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.autoPassRate.toFixed(0), "%");
|
|
285
286
|
} }
|
|
286
|
-
function
|
|
287
|
-
i0.ɵɵelementStart(0, "div",
|
|
288
|
-
i0.ɵɵelement(2, "i",
|
|
287
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
288
|
+
i0.ɵɵelementStart(0, "div", 106)(1, "div", 107);
|
|
289
|
+
i0.ɵɵelement(2, "i", 118);
|
|
289
290
|
i0.ɵɵelementStart(3, "span");
|
|
290
291
|
i0.ɵɵtext(4, "Auto Evaluation");
|
|
291
292
|
i0.ɵɵelementEnd()();
|
|
292
|
-
i0.ɵɵelementStart(5, "div",
|
|
293
|
+
i0.ɵɵelementStart(5, "div", 109)(6, "div", 110)(7, "span", 111);
|
|
293
294
|
i0.ɵɵtext(8, "Evaluated");
|
|
294
295
|
i0.ɵɵelementEnd();
|
|
295
|
-
i0.ɵɵelementStart(9, "span",
|
|
296
|
+
i0.ɵɵelementStart(9, "span", 112);
|
|
296
297
|
i0.ɵɵtext(10);
|
|
297
298
|
i0.ɵɵelementEnd()();
|
|
298
|
-
i0.ɵɵ
|
|
299
|
+
i0.ɵɵconditionalCreate(11, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_11_Template, 5, 1, "div", 110);
|
|
300
|
+
i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Conditional_12_Template, 5, 1, "div", 110);
|
|
299
301
|
i0.ɵɵelementEnd()();
|
|
300
302
|
} if (rf & 2) {
|
|
301
303
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
302
304
|
i0.ɵɵadvance(10);
|
|
303
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.autoEvaluatedCount, " / ", ctx_r1.evaluationMetrics.totalRuns
|
|
305
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.autoEvaluatedCount, " / ", ctx_r1.evaluationMetrics.totalRuns);
|
|
304
306
|
i0.ɵɵadvance();
|
|
305
|
-
i0.ɵɵ
|
|
307
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.autoEvaluatedCount > 0 ? 11 : -1);
|
|
306
308
|
i0.ɵɵadvance();
|
|
307
|
-
i0.ɵɵ
|
|
309
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.autoEvaluatedCount > 0 ? 12 : -1);
|
|
308
310
|
} }
|
|
309
|
-
function
|
|
310
|
-
i0.ɵɵelementStart(0, "span",
|
|
311
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
312
|
+
i0.ɵɵelementStart(0, "span", 120);
|
|
311
313
|
i0.ɵɵtext(1);
|
|
312
314
|
i0.ɵɵelementEnd();
|
|
313
315
|
} if (rf & 2) {
|
|
@@ -315,8 +317,8 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_3_Te
|
|
|
315
317
|
i0.ɵɵadvance();
|
|
316
318
|
i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.execErrorCount, " errors");
|
|
317
319
|
} }
|
|
318
|
-
function
|
|
319
|
-
i0.ɵɵelementStart(0, "span",
|
|
320
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
321
|
+
i0.ɵɵelementStart(0, "span", 121);
|
|
320
322
|
i0.ɵɵtext(1);
|
|
321
323
|
i0.ɵɵelementEnd();
|
|
322
324
|
} if (rf & 2) {
|
|
@@ -324,104 +326,109 @@ function TestSuiteRunFormComponentExtended_div_118_div_19_div_4_div_16_span_4_Te
|
|
|
324
326
|
i0.ɵɵadvance();
|
|
325
327
|
i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.execTimeoutCount, " timeouts");
|
|
326
328
|
} }
|
|
327
|
-
function
|
|
328
|
-
i0.ɵɵelementStart(0, "div",
|
|
329
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
330
|
+
i0.ɵɵelementStart(0, "div", 110)(1, "span", 111);
|
|
329
331
|
i0.ɵɵtext(2, "Issues");
|
|
330
332
|
i0.ɵɵelementEnd();
|
|
331
|
-
i0.ɵɵ
|
|
333
|
+
i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_3_Template, 2, 1, "span", 120);
|
|
334
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Conditional_4_Template, 2, 1, "span", 121);
|
|
332
335
|
i0.ɵɵelementEnd();
|
|
333
336
|
} if (rf & 2) {
|
|
334
337
|
const ctx_r1 = i0.ɵɵnextContext(4);
|
|
335
338
|
i0.ɵɵadvance(3);
|
|
336
|
-
i0.ɵɵ
|
|
339
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.execErrorCount > 0 ? 3 : -1);
|
|
337
340
|
i0.ɵɵadvance();
|
|
338
|
-
i0.ɵɵ
|
|
341
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.execTimeoutCount > 0 ? 4 : -1);
|
|
339
342
|
} }
|
|
340
|
-
function
|
|
341
|
-
i0.ɵɵelementStart(0, "div",
|
|
342
|
-
i0.ɵɵelement(2, "i",
|
|
343
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
344
|
+
i0.ɵɵelementStart(0, "div", 106)(1, "div", 107);
|
|
345
|
+
i0.ɵɵelement(2, "i", 119);
|
|
343
346
|
i0.ɵɵelementStart(3, "span");
|
|
344
347
|
i0.ɵɵtext(4, "Execution");
|
|
345
348
|
i0.ɵɵelementEnd()();
|
|
346
|
-
i0.ɵɵelementStart(5, "div",
|
|
349
|
+
i0.ɵɵelementStart(5, "div", 109)(6, "div", 110)(7, "span", 111);
|
|
347
350
|
i0.ɵɵtext(8, "Completed");
|
|
348
351
|
i0.ɵɵelementEnd();
|
|
349
|
-
i0.ɵɵelementStart(9, "span",
|
|
352
|
+
i0.ɵɵelementStart(9, "span", 112);
|
|
350
353
|
i0.ɵɵtext(10);
|
|
351
354
|
i0.ɵɵelementEnd()();
|
|
352
|
-
i0.ɵɵelementStart(11, "div",
|
|
355
|
+
i0.ɵɵelementStart(11, "div", 110)(12, "span", 111);
|
|
353
356
|
i0.ɵɵtext(13, "Success Rate");
|
|
354
357
|
i0.ɵɵelementEnd();
|
|
355
|
-
i0.ɵɵelementStart(14, "span",
|
|
358
|
+
i0.ɵɵelementStart(14, "span", 112);
|
|
356
359
|
i0.ɵɵtext(15);
|
|
357
360
|
i0.ɵɵelementEnd()();
|
|
358
|
-
i0.ɵɵ
|
|
361
|
+
i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Conditional_16_Template, 5, 2, "div", 110);
|
|
359
362
|
i0.ɵɵelementEnd()();
|
|
360
363
|
} if (rf & 2) {
|
|
361
364
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
362
365
|
i0.ɵɵadvance(10);
|
|
363
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.execCompletedCount, " / ", ctx_r1.evaluationMetrics.totalRuns
|
|
366
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.evaluationMetrics.execCompletedCount, " / ", ctx_r1.evaluationMetrics.totalRuns);
|
|
364
367
|
i0.ɵɵadvance(5);
|
|
365
368
|
i0.ɵɵtextInterpolate1("", ctx_r1.evaluationMetrics.execSuccessRate.toFixed(0), "%");
|
|
366
369
|
i0.ɵɵadvance();
|
|
367
|
-
i0.ɵɵ
|
|
370
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics.execErrorCount > 0 || ctx_r1.evaluationMetrics.execTimeoutCount > 0 ? 16 : -1);
|
|
368
371
|
} }
|
|
369
|
-
function
|
|
370
|
-
i0.ɵɵelementStart(0, "div",
|
|
371
|
-
i0.ɵɵ
|
|
372
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
373
|
+
i0.ɵɵelementStart(0, "div", 102)(1, "div", 105);
|
|
374
|
+
i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_2_Template, 14, 5, "div", 106);
|
|
375
|
+
i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_3_Template, 13, 4, "div", 106);
|
|
376
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Conditional_4_Template, 17, 4, "div", 106);
|
|
372
377
|
i0.ɵɵelementEnd()();
|
|
373
378
|
} if (rf & 2) {
|
|
374
379
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
375
380
|
i0.ɵɵadvance(2);
|
|
376
|
-
i0.ɵɵ
|
|
381
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman ? 2 : -1);
|
|
377
382
|
i0.ɵɵadvance();
|
|
378
|
-
i0.ɵɵ
|
|
383
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showAuto ? 3 : -1);
|
|
379
384
|
i0.ɵɵadvance();
|
|
380
|
-
i0.ɵɵ
|
|
385
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showExecution ? 4 : -1);
|
|
381
386
|
} }
|
|
382
|
-
function
|
|
383
|
-
i0.ɵɵelement(0, "i",
|
|
387
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
388
|
+
i0.ɵɵelement(0, "i", 130);
|
|
384
389
|
} }
|
|
385
|
-
function
|
|
386
|
-
i0.ɵɵelement(0, "i",
|
|
390
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
391
|
+
i0.ɵɵelement(0, "i", 131);
|
|
387
392
|
} }
|
|
388
|
-
function
|
|
389
|
-
i0.ɵɵelement(0, "i",
|
|
393
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
394
|
+
i0.ɵɵelement(0, "i", 117);
|
|
390
395
|
} }
|
|
391
|
-
function
|
|
396
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
392
397
|
const _r9 = i0.ɵɵgetCurrentView();
|
|
393
|
-
i0.ɵɵelementStart(0, "div",
|
|
394
|
-
i0.ɵɵlistener("click", function
|
|
395
|
-
i0.ɵɵelementStart(1, "div",
|
|
396
|
-
i0.ɵɵ
|
|
397
|
-
i0.ɵɵ
|
|
398
|
-
i0.ɵɵ
|
|
398
|
+
i0.ɵɵelementStart(0, "div", 128);
|
|
399
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Template_div_click_0_listener() { const item_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleRunExpanded(item_r10.run.id)); });
|
|
400
|
+
i0.ɵɵelementStart(1, "div", 129);
|
|
401
|
+
i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_2_Template, 1, 0, "i", 130);
|
|
402
|
+
i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_3_Template, 1, 0, "i", 131);
|
|
403
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Conditional_4_Template, 1, 0, "i", 117);
|
|
404
|
+
i0.ɵɵelementEnd();
|
|
405
|
+
i0.ɵɵelementStart(5, "div", 132)(6, "span", 133);
|
|
399
406
|
i0.ɵɵtext(7);
|
|
400
407
|
i0.ɵɵelementEnd();
|
|
401
|
-
i0.ɵɵelementStart(8, "span",
|
|
408
|
+
i0.ɵɵelementStart(8, "span", 134);
|
|
402
409
|
i0.ɵɵtext(9);
|
|
403
410
|
i0.ɵɵelementEnd()();
|
|
404
|
-
i0.ɵɵelementStart(10, "div",
|
|
405
|
-
i0.ɵɵelement(11, "i",
|
|
411
|
+
i0.ɵɵelementStart(10, "div", 135);
|
|
412
|
+
i0.ɵɵelement(11, "i", 136);
|
|
406
413
|
i0.ɵɵelementEnd()();
|
|
407
414
|
} if (rf & 2) {
|
|
408
415
|
const item_r10 = ctx.$implicit;
|
|
409
416
|
i0.ɵɵclassProp("high-priority", item_r10.priority === "high")("medium-priority", item_r10.priority === "medium");
|
|
410
417
|
i0.ɵɵadvance(2);
|
|
411
|
-
i0.ɵɵ
|
|
418
|
+
i0.ɵɵconditional(item_r10.priority === "high" ? 2 : -1);
|
|
412
419
|
i0.ɵɵadvance();
|
|
413
|
-
i0.ɵɵ
|
|
420
|
+
i0.ɵɵconditional(item_r10.priority === "medium" ? 3 : -1);
|
|
414
421
|
i0.ɵɵadvance();
|
|
415
|
-
i0.ɵɵ
|
|
422
|
+
i0.ɵɵconditional(item_r10.priority === "low" ? 4 : -1);
|
|
416
423
|
i0.ɵɵadvance(3);
|
|
417
424
|
i0.ɵɵtextInterpolate(item_r10.run.testName);
|
|
418
425
|
i0.ɵɵadvance(2);
|
|
419
426
|
i0.ɵɵtextInterpolate(item_r10.reason);
|
|
420
427
|
} }
|
|
421
|
-
function
|
|
428
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
422
429
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
423
|
-
i0.ɵɵelementStart(0, "div",
|
|
424
|
-
i0.ɵɵlistener("click", function
|
|
430
|
+
i0.ɵɵelementStart(0, "div", 127)(1, "button", 91);
|
|
431
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Conditional_10_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.changeTab("runs")); });
|
|
425
432
|
i0.ɵɵtext(2);
|
|
426
433
|
i0.ɵɵelementEnd()();
|
|
427
434
|
} if (rf & 2) {
|
|
@@ -429,58 +436,61 @@ function TestSuiteRunFormComponentExtended_div_118_div_20_div_9_Template(rf, ctx
|
|
|
429
436
|
i0.ɵɵadvance(2);
|
|
430
437
|
i0.ɵɵtextInterpolate1(" View all ", ctx_r1.needsReviewItems.length, " items ");
|
|
431
438
|
} }
|
|
432
|
-
function
|
|
433
|
-
i0.ɵɵelementStart(0, "div",
|
|
434
|
-
i0.ɵɵelement(3, "i",
|
|
439
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
440
|
+
i0.ɵɵelementStart(0, "div", 103)(1, "div", 122)(2, "h3");
|
|
441
|
+
i0.ɵɵelement(3, "i", 123);
|
|
435
442
|
i0.ɵɵtext(4, " Needs Review");
|
|
436
443
|
i0.ɵɵelementEnd();
|
|
437
|
-
i0.ɵɵelementStart(5, "span",
|
|
444
|
+
i0.ɵɵelementStart(5, "span", 124);
|
|
438
445
|
i0.ɵɵtext(6);
|
|
439
446
|
i0.ɵɵelementEnd()();
|
|
440
|
-
i0.ɵɵelementStart(7, "div",
|
|
441
|
-
i0.ɵɵ
|
|
447
|
+
i0.ɵɵelementStart(7, "div", 125);
|
|
448
|
+
i0.ɵɵrepeaterCreate(8, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_For_9_Template, 12, 9, "div", 126, i0.ɵɵrepeaterTrackByIdentity);
|
|
449
|
+
i0.ɵɵconditionalCreate(10, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Conditional_10_Template, 3, 1, "div", 127);
|
|
442
450
|
i0.ɵɵelementEnd()();
|
|
443
451
|
} if (rf & 2) {
|
|
444
452
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
445
453
|
i0.ɵɵadvance(6);
|
|
446
454
|
i0.ɵɵtextInterpolate1("", ctx_r1.needsReviewItems.length, " items");
|
|
447
455
|
i0.ɵɵadvance(2);
|
|
448
|
-
i0.ɵɵ
|
|
449
|
-
i0.ɵɵadvance();
|
|
450
|
-
i0.ɵɵ
|
|
456
|
+
i0.ɵɵrepeater(ctx_r1.needsReviewItems.slice(0, 5));
|
|
457
|
+
i0.ɵɵadvance(2);
|
|
458
|
+
i0.ɵɵconditional(ctx_r1.needsReviewItems.length > 5 ? 10 : -1);
|
|
451
459
|
} }
|
|
452
|
-
function
|
|
453
|
-
i0.ɵɵelementStart(0, "div",
|
|
454
|
-
i0.ɵɵelement(2, "i",
|
|
460
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
461
|
+
i0.ɵɵelementStart(0, "div", 104)(1, "div", 137);
|
|
462
|
+
i0.ɵɵelement(2, "i", 138);
|
|
455
463
|
i0.ɵɵelementStart(3, "span");
|
|
456
464
|
i0.ɵɵtext(4, "Suite execution in progress...");
|
|
457
465
|
i0.ɵɵelementEnd()();
|
|
458
|
-
i0.ɵɵelementStart(5, "div",
|
|
459
|
-
i0.ɵɵelement(6, "i",
|
|
466
|
+
i0.ɵɵelementStart(5, "div", 139);
|
|
467
|
+
i0.ɵɵelement(6, "i", 140);
|
|
460
468
|
i0.ɵɵtext(7, " Auto-refreshing every 5 seconds ");
|
|
461
469
|
i0.ɵɵelementEnd()();
|
|
462
470
|
} }
|
|
463
|
-
function
|
|
464
|
-
i0.ɵɵelementStart(0, "div",
|
|
465
|
-
i0.ɵɵelement(3, "i",
|
|
471
|
+
function TestSuiteRunFormComponentExtended_Conditional_129_Template(rf, ctx) { if (rf & 1) {
|
|
472
|
+
i0.ɵɵelementStart(0, "div", 58)(1, "div", 94)(2, "div", 95);
|
|
473
|
+
i0.ɵɵelement(3, "i", 11);
|
|
466
474
|
i0.ɵɵelementEnd();
|
|
467
|
-
i0.ɵɵelementStart(4, "div",
|
|
475
|
+
i0.ɵɵelementStart(4, "div", 96)(5, "h2");
|
|
468
476
|
i0.ɵɵtext(6);
|
|
469
477
|
i0.ɵɵelementEnd();
|
|
470
|
-
i0.ɵɵelementStart(7, "div",
|
|
478
|
+
i0.ɵɵelementStart(7, "div", 97)(8, "div", 98)(9, "span", 99);
|
|
471
479
|
i0.ɵɵtext(10);
|
|
472
480
|
i0.ɵɵelementEnd();
|
|
473
|
-
i0.ɵɵelementStart(11, "span",
|
|
481
|
+
i0.ɵɵelementStart(11, "span", 100);
|
|
474
482
|
i0.ɵɵtext(12, "Pass Rate");
|
|
475
483
|
i0.ɵɵelementEnd()();
|
|
476
|
-
i0.ɵɵelement(13, "div",
|
|
477
|
-
i0.ɵɵelementStart(14, "div",
|
|
484
|
+
i0.ɵɵelement(13, "div", 101);
|
|
485
|
+
i0.ɵɵelementStart(14, "div", 98)(15, "span", 99);
|
|
478
486
|
i0.ɵɵtext(16);
|
|
479
487
|
i0.ɵɵelementEnd();
|
|
480
|
-
i0.ɵɵelementStart(17, "span",
|
|
488
|
+
i0.ɵɵelementStart(17, "span", 100);
|
|
481
489
|
i0.ɵɵtext(18, "Tests Passed");
|
|
482
490
|
i0.ɵɵelementEnd()()()()();
|
|
483
|
-
i0.ɵɵ
|
|
491
|
+
i0.ɵɵconditionalCreate(19, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_19_Template, 5, 3, "div", 102);
|
|
492
|
+
i0.ɵɵconditionalCreate(20, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_20_Template, 11, 2, "div", 103);
|
|
493
|
+
i0.ɵɵconditionalCreate(21, TestSuiteRunFormComponentExtended_Conditional_129_Conditional_21_Template, 8, 0, "div", 104);
|
|
484
494
|
i0.ɵɵelementEnd();
|
|
485
495
|
} if (rf & 2) {
|
|
486
496
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -489,23 +499,23 @@ function TestSuiteRunFormComponentExtended_div_118_Template(rf, ctx) { if (rf &
|
|
|
489
499
|
i0.ɵɵadvance(2);
|
|
490
500
|
i0.ɵɵproperty("ngClass", ctx_r1.getStatusIcon());
|
|
491
501
|
i0.ɵɵadvance(3);
|
|
492
|
-
i0.ɵɵtextInterpolate1("SUITE ", ctx_r1.record.Status.toUpperCase() || "UNKNOWN"
|
|
502
|
+
i0.ɵɵtextInterpolate1("SUITE ", ctx_r1.record.Status.toUpperCase() || "UNKNOWN");
|
|
493
503
|
i0.ɵɵadvance(4);
|
|
494
504
|
i0.ɵɵtextInterpolate1("", ctx_r1.getPassRate().toFixed(1), "%");
|
|
495
505
|
i0.ɵɵadvance(6);
|
|
496
|
-
i0.ɵɵtextInterpolate2("", ctx_r1.record.PassedTests || 0, " / ", ctx_r1.record.TotalTests || 0
|
|
506
|
+
i0.ɵɵtextInterpolate2("", ctx_r1.record.PassedTests || 0, " / ", ctx_r1.record.TotalTests || 0);
|
|
497
507
|
i0.ɵɵadvance(3);
|
|
498
|
-
i0.ɵɵ
|
|
508
|
+
i0.ɵɵconditional(ctx_r1.evaluationMetrics && ctx_r1.feedbacksLoaded ? 19 : -1);
|
|
499
509
|
i0.ɵɵadvance();
|
|
500
|
-
i0.ɵɵ
|
|
510
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman && ctx_r1.needsReviewItems.length > 0 && ctx_r1.feedbacksLoaded ? 20 : -1);
|
|
501
511
|
i0.ɵɵadvance();
|
|
502
|
-
i0.ɵɵ
|
|
512
|
+
i0.ɵɵconditional(ctx_r1.record.Status === "Running" || ctx_r1.record.Status === "Pending" ? 21 : -1);
|
|
503
513
|
} }
|
|
504
|
-
function
|
|
514
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
505
515
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
506
|
-
i0.ɵɵelementStart(0, "button",
|
|
507
|
-
i0.ɵɵlistener("click", function
|
|
508
|
-
i0.ɵɵelement(1, "i",
|
|
516
|
+
i0.ɵɵelementStart(0, "button", 153);
|
|
517
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Passed")); });
|
|
518
|
+
i0.ɵɵelement(1, "i", 154);
|
|
509
519
|
i0.ɵɵtext(2);
|
|
510
520
|
i0.ɵɵelementEnd();
|
|
511
521
|
} if (rf & 2) {
|
|
@@ -514,11 +524,11 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_button_4_Template(rf, c
|
|
|
514
524
|
i0.ɵɵadvance(2);
|
|
515
525
|
i0.ɵɵtextInterpolate1(" Passed (", ctx_r1.getRunCountByStatus("Passed"), ") ");
|
|
516
526
|
} }
|
|
517
|
-
function
|
|
527
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
518
528
|
const _r14 = i0.ɵɵgetCurrentView();
|
|
519
|
-
i0.ɵɵelementStart(0, "button",
|
|
520
|
-
i0.ɵɵlistener("click", function
|
|
521
|
-
i0.ɵɵelement(1, "i",
|
|
529
|
+
i0.ɵɵelementStart(0, "button", 155);
|
|
530
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Failed")); });
|
|
531
|
+
i0.ɵɵelement(1, "i", 93);
|
|
522
532
|
i0.ɵɵtext(2);
|
|
523
533
|
i0.ɵɵelementEnd();
|
|
524
534
|
} if (rf & 2) {
|
|
@@ -527,11 +537,11 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_button_5_Template(rf, c
|
|
|
527
537
|
i0.ɵɵadvance(2);
|
|
528
538
|
i0.ɵɵtextInterpolate1(" Failed (", ctx_r1.getRunCountByStatus("Failed"), ") ");
|
|
529
539
|
} }
|
|
530
|
-
function
|
|
540
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
531
541
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
532
|
-
i0.ɵɵelementStart(0, "button",
|
|
533
|
-
i0.ɵɵlistener("click", function
|
|
534
|
-
i0.ɵɵelement(1, "i",
|
|
542
|
+
i0.ɵɵelementStart(0, "button", 156);
|
|
543
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter("Error")); });
|
|
544
|
+
i0.ɵɵelement(1, "i", 157);
|
|
535
545
|
i0.ɵɵtext(2);
|
|
536
546
|
i0.ɵɵelementEnd();
|
|
537
547
|
} if (rf & 2) {
|
|
@@ -540,17 +550,19 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_button_6_Template(rf, c
|
|
|
540
550
|
i0.ɵɵadvance(2);
|
|
541
551
|
i0.ɵɵtextInterpolate1(" Error (", ctx_r1.getRunCountByStatus("Error"), ") ");
|
|
542
552
|
} }
|
|
543
|
-
function
|
|
553
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
544
554
|
const _r12 = i0.ɵɵgetCurrentView();
|
|
545
|
-
i0.ɵɵelementStart(0, "div",
|
|
546
|
-
i0.ɵɵlistener("click", function
|
|
555
|
+
i0.ɵɵelementStart(0, "div", 141)(1, "div", 145)(2, "button", 146);
|
|
556
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter(null)); });
|
|
547
557
|
i0.ɵɵtext(3);
|
|
548
558
|
i0.ɵɵelementEnd();
|
|
549
|
-
i0.ɵɵ
|
|
559
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_4_Template, 3, 3, "button", 147);
|
|
560
|
+
i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_5_Template, 3, 3, "button", 148);
|
|
561
|
+
i0.ɵɵconditionalCreate(6, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Conditional_6_Template, 3, 3, "button", 149);
|
|
550
562
|
i0.ɵɵelementEnd();
|
|
551
|
-
i0.ɵɵelementStart(7, "div",
|
|
552
|
-
i0.ɵɵlistener("click", function
|
|
553
|
-
i0.ɵɵelement(9, "i",
|
|
563
|
+
i0.ɵɵelementStart(7, "div", 150)(8, "button", 151);
|
|
564
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.exportToCSV()); });
|
|
565
|
+
i0.ɵɵelement(9, "i", 152);
|
|
554
566
|
i0.ɵɵtext(10, " Export CSV ");
|
|
555
567
|
i0.ɵɵelementEnd()()();
|
|
556
568
|
} if (rf & 2) {
|
|
@@ -560,30 +572,30 @@ function TestSuiteRunFormComponentExtended_div_119_div_1_Template(rf, ctx) { if
|
|
|
560
572
|
i0.ɵɵadvance();
|
|
561
573
|
i0.ɵɵtextInterpolate1(" All (", ctx_r1.testRuns.length, ") ");
|
|
562
574
|
i0.ɵɵadvance();
|
|
563
|
-
i0.ɵɵ
|
|
575
|
+
i0.ɵɵconditional(ctx_r1.getRunCountByStatus("Passed") > 0 ? 4 : -1);
|
|
564
576
|
i0.ɵɵadvance();
|
|
565
|
-
i0.ɵɵ
|
|
577
|
+
i0.ɵɵconditional(ctx_r1.getRunCountByStatus("Failed") > 0 ? 5 : -1);
|
|
566
578
|
i0.ɵɵadvance();
|
|
567
|
-
i0.ɵɵ
|
|
579
|
+
i0.ɵɵconditional(ctx_r1.getRunCountByStatus("Error") > 0 ? 6 : -1);
|
|
568
580
|
} }
|
|
569
|
-
function
|
|
570
|
-
i0.ɵɵelementStart(0, "div",
|
|
571
|
-
i0.ɵɵelement(1, "div",
|
|
572
|
-
i0.ɵɵelementStart(3, "div",
|
|
573
|
-
i0.ɵɵelement(4, "div",
|
|
581
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_For_3_Template(rf, ctx) { if (rf & 1) {
|
|
582
|
+
i0.ɵɵelementStart(0, "div", 159);
|
|
583
|
+
i0.ɵɵelement(1, "div", 160)(2, "div", 161);
|
|
584
|
+
i0.ɵɵelementStart(3, "div", 162);
|
|
585
|
+
i0.ɵɵelement(4, "div", 163)(5, "div", 164);
|
|
574
586
|
i0.ɵɵelementEnd()();
|
|
575
587
|
} }
|
|
576
|
-
function
|
|
577
|
-
i0.ɵɵelementStart(0, "div",
|
|
578
|
-
i0.ɵɵ
|
|
588
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
589
|
+
i0.ɵɵelementStart(0, "div", 142)(1, "div", 158);
|
|
590
|
+
i0.ɵɵrepeaterCreate(2, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_For_3_Template, 6, 0, "div", 159, i0.ɵɵrepeaterTrackByIdentity);
|
|
579
591
|
i0.ɵɵelementEnd()();
|
|
580
592
|
} if (rf & 2) {
|
|
581
593
|
i0.ɵɵadvance(2);
|
|
582
|
-
i0.ɵɵ
|
|
594
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c0));
|
|
583
595
|
} }
|
|
584
|
-
function
|
|
585
|
-
i0.ɵɵelementStart(0, "span",
|
|
586
|
-
i0.ɵɵelement(1, "i",
|
|
596
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
597
|
+
i0.ɵɵelementStart(0, "span", 174);
|
|
598
|
+
i0.ɵɵelement(1, "i", 23);
|
|
587
599
|
i0.ɵɵtext(2);
|
|
588
600
|
i0.ɵɵelementEnd();
|
|
589
601
|
} if (rf & 2) {
|
|
@@ -591,9 +603,9 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_12_Template(
|
|
|
591
603
|
i0.ɵɵadvance(2);
|
|
592
604
|
i0.ɵɵtextInterpolate1(" ", run_r17.DurationSeconds.toFixed(1), "s ");
|
|
593
605
|
} }
|
|
594
|
-
function
|
|
595
|
-
i0.ɵɵelementStart(0, "span",
|
|
596
|
-
i0.ɵɵelement(1, "i",
|
|
606
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
607
|
+
i0.ɵɵelementStart(0, "span", 175);
|
|
608
|
+
i0.ɵɵelement(1, "i", 28);
|
|
597
609
|
i0.ɵɵtext(2);
|
|
598
610
|
i0.ɵɵelementEnd();
|
|
599
611
|
} if (rf & 2) {
|
|
@@ -601,14 +613,14 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_span_13_Template(
|
|
|
601
613
|
i0.ɵɵadvance(2);
|
|
602
614
|
i0.ɵɵtextInterpolate1(" ", run_r17.CostUSD.toFixed(6), " ");
|
|
603
615
|
} }
|
|
604
|
-
function
|
|
605
|
-
i0.ɵɵelement(0, "mj-entity-link-pill",
|
|
616
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
617
|
+
i0.ɵɵelement(0, "mj-entity-link-pill", 176);
|
|
606
618
|
} if (rf & 2) {
|
|
607
619
|
const run_r17 = i0.ɵɵnextContext().$implicit;
|
|
608
620
|
i0.ɵɵproperty("entityName", run_r17.TargetLogEntity)("recordId", run_r17.TargetLogID);
|
|
609
621
|
} }
|
|
610
|
-
function
|
|
611
|
-
i0.ɵɵelementStart(0, "span",
|
|
622
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
623
|
+
i0.ɵɵelementStart(0, "span", 181);
|
|
612
624
|
i0.ɵɵtext(1);
|
|
613
625
|
i0.ɵɵelementEnd();
|
|
614
626
|
} if (rf & 2) {
|
|
@@ -616,20 +628,20 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_15_span_1_Tem
|
|
|
616
628
|
i0.ɵɵadvance();
|
|
617
629
|
i0.ɵɵtextInterpolate(tag_r18);
|
|
618
630
|
} }
|
|
619
|
-
function
|
|
620
|
-
i0.ɵɵelementStart(0, "div",
|
|
621
|
-
i0.ɵɵ
|
|
631
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
632
|
+
i0.ɵɵelementStart(0, "div", 177);
|
|
633
|
+
i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_For_2_Template, 2, 1, "span", 181, i0.ɵɵrepeaterTrackByIdentity);
|
|
622
634
|
i0.ɵɵelementEnd();
|
|
623
635
|
} if (rf & 2) {
|
|
624
636
|
const run_r17 = i0.ɵɵnextContext().$implicit;
|
|
625
637
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
626
638
|
i0.ɵɵadvance();
|
|
627
|
-
i0.ɵɵ
|
|
639
|
+
i0.ɵɵrepeater(ctx_r1.getRunTags(run_r17));
|
|
628
640
|
} }
|
|
629
|
-
function
|
|
641
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
630
642
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
631
|
-
i0.ɵɵelementStart(0, "button",
|
|
632
|
-
i0.ɵɵlistener("click", function
|
|
643
|
+
i0.ɵɵelementStart(0, "button", 198);
|
|
644
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template_button_click_0_listener($event) { const num_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); ctx_r1.setInlineRating(num_r21); return i0.ɵɵresetView($event.stopPropagation()); })("mouseenter", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template_button_mouseenter_0_listener() { const num_r21 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.inlineHoverRating = num_r21); })("mouseleave", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template_button_mouseleave_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.inlineHoverRating = 0); });
|
|
633
645
|
i0.ɵɵtext(1);
|
|
634
646
|
i0.ɵɵelementEnd();
|
|
635
647
|
} if (rf & 2) {
|
|
@@ -639,11 +651,11 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_button_7_T
|
|
|
639
651
|
i0.ɵɵadvance();
|
|
640
652
|
i0.ɵɵtextInterpolate1(" ", num_r21, " ");
|
|
641
653
|
} }
|
|
642
|
-
function
|
|
643
|
-
i0.ɵɵelementStart(0, "div",
|
|
654
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
655
|
+
i0.ɵɵelementStart(0, "div", 188)(1, "span", 199);
|
|
644
656
|
i0.ɵɵtext(2);
|
|
645
657
|
i0.ɵɵelementEnd();
|
|
646
|
-
i0.ɵɵelementStart(3, "span",
|
|
658
|
+
i0.ɵɵelementStart(3, "span", 200);
|
|
647
659
|
i0.ɵɵtext(4);
|
|
648
660
|
i0.ɵɵelementEnd()();
|
|
649
661
|
} if (rf & 2) {
|
|
@@ -653,80 +665,77 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_div_8_Temp
|
|
|
653
665
|
i0.ɵɵadvance(2);
|
|
654
666
|
i0.ɵɵtextInterpolate(ctx_r1.getInlineRatingLabel());
|
|
655
667
|
} }
|
|
656
|
-
function
|
|
668
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
657
669
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
658
|
-
i0.ɵɵelementStart(0, "div",
|
|
659
|
-
i0.ɵɵelement(1, "div",
|
|
660
|
-
i0.ɵɵelementStart(2, "div",
|
|
670
|
+
i0.ɵɵelementStart(0, "div", 180);
|
|
671
|
+
i0.ɵɵelement(1, "div", 182);
|
|
672
|
+
i0.ɵɵelementStart(2, "div", 183)(3, "div", 184);
|
|
661
673
|
i0.ɵɵtext(4, "Quick Feedback");
|
|
662
674
|
i0.ɵɵelementEnd();
|
|
663
|
-
i0.ɵɵelementStart(5, "div",
|
|
664
|
-
i0.ɵɵ
|
|
675
|
+
i0.ɵɵelementStart(5, "div", 185)(6, "div", 186);
|
|
676
|
+
i0.ɵɵrepeaterCreate(7, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_For_8_Template, 2, 11, "button", 187, i0.ɵɵrepeaterTrackByIdentity);
|
|
665
677
|
i0.ɵɵelementEnd();
|
|
666
|
-
i0.ɵɵ
|
|
678
|
+
i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Conditional_9_Template, 5, 2, "div", 188);
|
|
667
679
|
i0.ɵɵelementEnd();
|
|
668
|
-
i0.ɵɵelementStart(
|
|
669
|
-
i0.ɵɵtext(
|
|
680
|
+
i0.ɵɵelementStart(10, "div", 189)(11, "span", 190);
|
|
681
|
+
i0.ɵɵtext(12, "Was it correct?");
|
|
670
682
|
i0.ɵɵelementEnd();
|
|
671
|
-
i0.ɵɵelementStart(
|
|
672
|
-
i0.ɵɵlistener("click", function
|
|
673
|
-
i0.ɵɵelementStart(
|
|
674
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
683
|
+
i0.ɵɵelementStart(13, "div", 191)(14, "label", 192);
|
|
684
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_label_click_14_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
685
|
+
i0.ɵɵelementStart(15, "input", 193);
|
|
686
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_input_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
|
|
675
687
|
i0.ɵɵelementEnd();
|
|
676
|
-
i0.ɵɵelementStart(
|
|
677
|
-
i0.ɵɵtext(
|
|
688
|
+
i0.ɵɵelementStart(16, "span");
|
|
689
|
+
i0.ɵɵtext(17, "Yes");
|
|
678
690
|
i0.ɵɵelementEnd()();
|
|
679
|
-
i0.ɵɵelementStart(
|
|
680
|
-
i0.ɵɵlistener("click", function
|
|
681
|
-
i0.ɵɵelementStart(
|
|
682
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
691
|
+
i0.ɵɵelementStart(18, "label", 192);
|
|
692
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_label_click_18_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
693
|
+
i0.ɵɵelementStart(19, "input", 193);
|
|
694
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_input_ngModelChange_19_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
|
|
683
695
|
i0.ɵɵelementEnd();
|
|
684
|
-
i0.ɵɵelementStart(
|
|
685
|
-
i0.ɵɵtext(
|
|
696
|
+
i0.ɵɵelementStart(20, "span");
|
|
697
|
+
i0.ɵɵtext(21, "No");
|
|
686
698
|
i0.ɵɵelementEnd()();
|
|
687
|
-
i0.ɵɵelementStart(
|
|
688
|
-
i0.ɵɵlistener("click", function
|
|
689
|
-
i0.ɵɵelementStart(
|
|
690
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
699
|
+
i0.ɵɵelementStart(22, "label", 192);
|
|
700
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_label_click_22_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
701
|
+
i0.ɵɵelementStart(23, "input", 193);
|
|
702
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_input_ngModelChange_23_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineIsCorrect, $event) || (ctx_r1.inlineIsCorrect = $event); return i0.ɵɵresetView($event); });
|
|
691
703
|
i0.ɵɵelementEnd();
|
|
692
|
-
i0.ɵɵelementStart(
|
|
693
|
-
i0.ɵɵtext(
|
|
704
|
+
i0.ɵɵelementStart(24, "span");
|
|
705
|
+
i0.ɵɵtext(25, "Not Sure");
|
|
694
706
|
i0.ɵɵelementEnd()()()();
|
|
695
|
-
i0.ɵɵelementStart(
|
|
696
|
-
i0.ɵɵlistener("click", function
|
|
697
|
-
i0.ɵɵelementStart(
|
|
698
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
707
|
+
i0.ɵɵelementStart(26, "div", 194);
|
|
708
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_div_click_26_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
709
|
+
i0.ɵɵelementStart(27, "textarea", 195);
|
|
710
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_textarea_ngModelChange_27_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.inlineComments, $event) || (ctx_r1.inlineComments = $event); return i0.ɵɵresetView($event); });
|
|
699
711
|
i0.ɵɵelementEnd()();
|
|
700
|
-
i0.ɵɵelementStart(
|
|
701
|
-
i0.ɵɵlistener("click", function
|
|
702
|
-
i0.ɵɵelementStart(
|
|
703
|
-
i0.ɵɵlistener("click", function
|
|
704
|
-
i0.ɵɵelement(
|
|
705
|
-
i0.ɵɵtext(
|
|
706
|
-
i0.ɵɵelementEnd();
|
|
707
|
-
i0.ɵɵelementStart(
|
|
708
|
-
i0.ɵɵlistener("click", function
|
|
709
|
-
i0.ɵɵelement(
|
|
710
|
-
i0.ɵɵtext(
|
|
712
|
+
i0.ɵɵelementStart(28, "div", 196);
|
|
713
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_div_click_28_listener($event) { i0.ɵɵrestoreView(_r19); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
714
|
+
i0.ɵɵelementStart(29, "button", 151);
|
|
715
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r19); const run_r17 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestRun(run_r17.ID)); });
|
|
716
|
+
i0.ɵɵelement(30, "i", 197);
|
|
717
|
+
i0.ɵɵtext(31, " View Full Details ");
|
|
718
|
+
i0.ɵɵelementEnd();
|
|
719
|
+
i0.ɵɵelementStart(32, "button", 89);
|
|
720
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.saveInlineFeedback()); });
|
|
721
|
+
i0.ɵɵelement(33, "i", 11);
|
|
722
|
+
i0.ɵɵtext(34);
|
|
711
723
|
i0.ɵɵelementEnd()()()();
|
|
712
724
|
} if (rf & 2) {
|
|
713
725
|
const run_r17 = i0.ɵɵnextContext().$implicit;
|
|
714
726
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
715
727
|
i0.ɵɵadvance(7);
|
|
716
|
-
i0.ɵɵ
|
|
717
|
-
i0.ɵɵadvance();
|
|
718
|
-
i0.ɵɵ
|
|
728
|
+
i0.ɵɵrepeater(i0.ɵɵpureFunction0(17, _c1));
|
|
729
|
+
i0.ɵɵadvance(2);
|
|
730
|
+
i0.ɵɵconditional(ctx_r1.inlineRating > 0 ? 9 : -1);
|
|
719
731
|
i0.ɵɵadvance(6);
|
|
720
|
-
i0.ɵɵ
|
|
721
|
-
i0.ɵɵproperty("value", true);
|
|
732
|
+
i0.ɵɵproperty("name", i0.ɵɵinterpolate1("correct-", run_r17.ID))("value", true);
|
|
722
733
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineIsCorrect);
|
|
723
734
|
i0.ɵɵadvance(4);
|
|
724
|
-
i0.ɵɵ
|
|
725
|
-
i0.ɵɵproperty("value", false);
|
|
735
|
+
i0.ɵɵproperty("name", i0.ɵɵinterpolate1("correct-", run_r17.ID))("value", false);
|
|
726
736
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineIsCorrect);
|
|
727
737
|
i0.ɵɵadvance(4);
|
|
728
|
-
i0.ɵɵ
|
|
729
|
-
i0.ɵɵproperty("value", null);
|
|
738
|
+
i0.ɵɵproperty("name", i0.ɵɵinterpolate1("correct-", run_r17.ID))("value", null);
|
|
730
739
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineIsCorrect);
|
|
731
740
|
i0.ɵɵadvance(4);
|
|
732
741
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.inlineComments);
|
|
@@ -737,30 +746,32 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_div_18_Template(r
|
|
|
737
746
|
i0.ɵɵadvance();
|
|
738
747
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.savingInlineFeedback ? "Saving..." : ctx_r1.hasFeedback(run_r17.ID) ? "Update" : "Save", " ");
|
|
739
748
|
} }
|
|
740
|
-
function
|
|
749
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
741
750
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
742
|
-
i0.ɵɵelementStart(0, "div",
|
|
743
|
-
i0.ɵɵlistener("click", function
|
|
744
|
-
i0.ɵɵelementStart(2, "div",
|
|
751
|
+
i0.ɵɵelementStart(0, "div", 165)(1, "div", 166);
|
|
752
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Template_div_click_1_listener() { const run_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.toggleRunExpanded(run_r17.ID)); });
|
|
753
|
+
i0.ɵɵelementStart(2, "div", 167);
|
|
745
754
|
i0.ɵɵtext(3);
|
|
746
755
|
i0.ɵɵelementEnd();
|
|
747
|
-
i0.ɵɵelementStart(4, "div",
|
|
748
|
-
i0.ɵɵelement(5, "i",
|
|
756
|
+
i0.ɵɵelementStart(4, "div", 168);
|
|
757
|
+
i0.ɵɵelement(5, "i", 11);
|
|
749
758
|
i0.ɵɵelementEnd();
|
|
750
|
-
i0.ɵɵelementStart(6, "div",
|
|
759
|
+
i0.ɵɵelementStart(6, "div", 169)(7, "div", 170)(8, "div", 171);
|
|
751
760
|
i0.ɵɵtext(9);
|
|
752
761
|
i0.ɵɵelementEnd();
|
|
753
|
-
i0.ɵɵelement(10, "app-evaluation-badge",
|
|
762
|
+
i0.ɵɵelement(10, "app-evaluation-badge", 172);
|
|
754
763
|
i0.ɵɵelementEnd();
|
|
755
|
-
i0.ɵɵelementStart(11, "div",
|
|
756
|
-
i0.ɵɵ
|
|
764
|
+
i0.ɵɵelementStart(11, "div", 173);
|
|
765
|
+
i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_12_Template, 3, 1, "span", 174);
|
|
766
|
+
i0.ɵɵconditionalCreate(13, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_13_Template, 3, 1, "span", 175);
|
|
767
|
+
i0.ɵɵconditionalCreate(14, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_14_Template, 1, 2, "mj-entity-link-pill", 176);
|
|
757
768
|
i0.ɵɵelementEnd();
|
|
758
|
-
i0.ɵɵ
|
|
769
|
+
i0.ɵɵconditionalCreate(15, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_15_Template, 3, 0, "div", 177);
|
|
759
770
|
i0.ɵɵelementEnd();
|
|
760
|
-
i0.ɵɵelementStart(16, "div",
|
|
761
|
-
i0.ɵɵelement(17, "i",
|
|
771
|
+
i0.ɵɵelementStart(16, "div", 178);
|
|
772
|
+
i0.ɵɵelement(17, "i", 179);
|
|
762
773
|
i0.ɵɵelementEnd()();
|
|
763
|
-
i0.ɵɵ
|
|
774
|
+
i0.ɵɵconditionalCreate(18, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Conditional_18_Template, 35, 18, "div", 180);
|
|
764
775
|
i0.ɵɵelementEnd();
|
|
765
776
|
} if (rf & 2) {
|
|
766
777
|
const run_r17 = ctx.$implicit;
|
|
@@ -776,30 +787,30 @@ function TestSuiteRunFormComponentExtended_div_119_div_3_div_1_Template(rf, ctx)
|
|
|
776
787
|
i0.ɵɵadvance();
|
|
777
788
|
i0.ɵɵproperty("executionStatus", run_r17.Status)("originalStatus", run_r17.Status)("autoScore", run_r17.Score)("humanRating", ctx_r1.getFeedbackRating(run_r17.ID) || null)("humanIsCorrect", ctx_r1.getHumanIsCorrect(run_r17.ID))("hasHumanFeedback", ctx_r1.hasFeedback(run_r17.ID))("preferences", ctx_r1.evalPreferences)("mode", "compact");
|
|
778
789
|
i0.ɵɵadvance(2);
|
|
779
|
-
i0.ɵɵ
|
|
790
|
+
i0.ɵɵconditional(run_r17.DurationSeconds ? 12 : -1);
|
|
780
791
|
i0.ɵɵadvance();
|
|
781
|
-
i0.ɵɵ
|
|
792
|
+
i0.ɵɵconditional(run_r17.CostUSD ? 13 : -1);
|
|
782
793
|
i0.ɵɵadvance();
|
|
783
|
-
i0.ɵɵ
|
|
794
|
+
i0.ɵɵconditional(run_r17.TargetLogEntityID && run_r17.TargetLogID ? 14 : -1);
|
|
784
795
|
i0.ɵɵadvance();
|
|
785
|
-
i0.ɵɵ
|
|
796
|
+
i0.ɵɵconditional(ctx_r1.getRunTags(run_r17).length > 0 ? 15 : -1);
|
|
786
797
|
i0.ɵɵadvance(2);
|
|
787
798
|
i0.ɵɵclassProp("fa-chevron-down", ctx_r1.expandedRunId !== run_r17.ID)("fa-chevron-up", ctx_r1.expandedRunId === run_r17.ID);
|
|
788
799
|
i0.ɵɵadvance();
|
|
789
|
-
i0.ɵɵ
|
|
800
|
+
i0.ɵɵconditional(ctx_r1.expandedRunId === run_r17.ID ? 18 : -1);
|
|
790
801
|
} }
|
|
791
|
-
function
|
|
792
|
-
i0.ɵɵelementStart(0, "div",
|
|
793
|
-
i0.ɵɵ
|
|
802
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
803
|
+
i0.ɵɵelementStart(0, "div", 143);
|
|
804
|
+
i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_For_2_Template, 19, 22, "div", 165, i0.ɵɵrepeaterTrackByIdentity);
|
|
794
805
|
i0.ɵɵelementEnd();
|
|
795
806
|
} if (rf & 2) {
|
|
796
807
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
797
808
|
i0.ɵɵadvance();
|
|
798
|
-
i0.ɵɵ
|
|
809
|
+
i0.ɵɵrepeater(ctx_r1.getFilteredTestRuns());
|
|
799
810
|
} }
|
|
800
|
-
function
|
|
801
|
-
i0.ɵɵelementStart(0, "div",
|
|
802
|
-
i0.ɵɵelement(2, "i",
|
|
811
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
812
|
+
i0.ɵɵelementStart(0, "div", 144)(1, "div", 201);
|
|
813
|
+
i0.ɵɵelement(2, "i", 202);
|
|
803
814
|
i0.ɵɵelementEnd();
|
|
804
815
|
i0.ɵɵelementStart(3, "h4");
|
|
805
816
|
i0.ɵɵtext(4, "No Test Runs Found");
|
|
@@ -808,10 +819,10 @@ function TestSuiteRunFormComponentExtended_div_119_div_4_Template(rf, ctx) { if
|
|
|
808
819
|
i0.ɵɵtext(6, "No test runs have been recorded for this suite execution.");
|
|
809
820
|
i0.ɵɵelementEnd()();
|
|
810
821
|
} }
|
|
811
|
-
function
|
|
822
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
812
823
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
813
|
-
i0.ɵɵelementStart(0, "div",
|
|
814
|
-
i0.ɵɵelement(2, "i",
|
|
824
|
+
i0.ɵɵelementStart(0, "div", 144)(1, "div", 201);
|
|
825
|
+
i0.ɵɵelement(2, "i", 203);
|
|
815
826
|
i0.ɵɵelementEnd();
|
|
816
827
|
i0.ɵɵelementStart(3, "h4");
|
|
817
828
|
i0.ɵɵtext(4, "No Matching Runs");
|
|
@@ -819,32 +830,36 @@ function TestSuiteRunFormComponentExtended_div_119_div_5_Template(rf, ctx) { if
|
|
|
819
830
|
i0.ɵɵelementStart(5, "p");
|
|
820
831
|
i0.ɵɵtext(6, "No test runs match the current filter.");
|
|
821
832
|
i0.ɵɵelementEnd();
|
|
822
|
-
i0.ɵɵelementStart(7, "button",
|
|
823
|
-
i0.ɵɵlistener("click", function
|
|
833
|
+
i0.ɵɵelementStart(7, "button", 151);
|
|
834
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_130_Conditional_5_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setRunStatusFilter(null)); });
|
|
824
835
|
i0.ɵɵtext(8, "Clear Filter");
|
|
825
836
|
i0.ɵɵelementEnd()();
|
|
826
837
|
} }
|
|
827
|
-
function
|
|
828
|
-
i0.ɵɵelementStart(0, "div",
|
|
829
|
-
i0.ɵɵ
|
|
838
|
+
function TestSuiteRunFormComponentExtended_Conditional_130_Template(rf, ctx) { if (rf & 1) {
|
|
839
|
+
i0.ɵɵelementStart(0, "div", 59);
|
|
840
|
+
i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_1_Template, 11, 6, "div", 141);
|
|
841
|
+
i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_2_Template, 4, 1, "div", 142);
|
|
842
|
+
i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_3_Template, 3, 0, "div", 143);
|
|
843
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_4_Template, 7, 0, "div", 144);
|
|
844
|
+
i0.ɵɵconditionalCreate(5, TestSuiteRunFormComponentExtended_Conditional_130_Conditional_5_Template, 9, 0, "div", 144);
|
|
830
845
|
i0.ɵɵelementEnd();
|
|
831
846
|
} if (rf & 2) {
|
|
832
847
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
833
848
|
i0.ɵɵadvance();
|
|
834
|
-
i0.ɵɵ
|
|
849
|
+
i0.ɵɵconditional(ctx_r1.testRunsLoaded && ctx_r1.testRuns.length > 0 ? 1 : -1);
|
|
835
850
|
i0.ɵɵadvance();
|
|
836
|
-
i0.ɵɵ
|
|
851
|
+
i0.ɵɵconditional(ctx_r1.loadingTestRuns ? 2 : -1);
|
|
837
852
|
i0.ɵɵadvance();
|
|
838
|
-
i0.ɵɵ
|
|
853
|
+
i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 ? 3 : -1);
|
|
839
854
|
i0.ɵɵadvance();
|
|
840
|
-
i0.ɵɵ
|
|
855
|
+
i0.ɵɵconditional(ctx_r1.testRunsLoaded && !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length === 0 ? 4 : -1);
|
|
841
856
|
i0.ɵɵadvance();
|
|
842
|
-
i0.ɵɵ
|
|
857
|
+
i0.ɵɵconditional(ctx_r1.testRunsLoaded && !ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 && ctx_r1.getFilteredTestRuns().length === 0 ? 5 : -1);
|
|
843
858
|
} }
|
|
844
|
-
function
|
|
859
|
+
function TestSuiteRunFormComponentExtended_Conditional_131_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
845
860
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
846
|
-
i0.ɵɵelementStart(0, "a",
|
|
847
|
-
i0.ɵɵlistener("click", function
|
|
861
|
+
i0.ɵɵelementStart(0, "a", 3);
|
|
862
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_131_Conditional_15_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openTestSuite()); });
|
|
848
863
|
i0.ɵɵtext(1);
|
|
849
864
|
i0.ɵɵelementEnd();
|
|
850
865
|
} if (rf & 2) {
|
|
@@ -852,76 +867,77 @@ function TestSuiteRunFormComponentExtended_div_120_a_15_Template(rf, ctx) { if (
|
|
|
852
867
|
i0.ɵɵadvance();
|
|
853
868
|
i0.ɵɵtextInterpolate(ctx_r1.testSuite.Name);
|
|
854
869
|
} }
|
|
855
|
-
function
|
|
870
|
+
function TestSuiteRunFormComponentExtended_Conditional_131_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
856
871
|
i0.ɵɵelementStart(0, "span");
|
|
857
872
|
i0.ɵɵtext(1, "Loading...");
|
|
858
873
|
i0.ɵɵelementEnd();
|
|
859
874
|
} }
|
|
860
|
-
function
|
|
861
|
-
i0.ɵɵelementStart(0, "div",
|
|
862
|
-
i0.ɵɵelement(3, "i",
|
|
875
|
+
function TestSuiteRunFormComponentExtended_Conditional_131_Template(rf, ctx) { if (rf & 1) {
|
|
876
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "div", 204)(2, "h3");
|
|
877
|
+
i0.ɵɵelement(3, "i", 52);
|
|
863
878
|
i0.ɵɵtext(4, " Run Information");
|
|
864
879
|
i0.ɵɵelementEnd();
|
|
865
|
-
i0.ɵɵelementStart(5, "div",
|
|
880
|
+
i0.ɵɵelementStart(5, "div", 205)(6, "div", 206)(7, "div", 207);
|
|
866
881
|
i0.ɵɵtext(8, "Run ID");
|
|
867
882
|
i0.ɵɵelementEnd();
|
|
868
|
-
i0.ɵɵelementStart(9, "div",
|
|
883
|
+
i0.ɵɵelementStart(9, "div", 208);
|
|
869
884
|
i0.ɵɵtext(10);
|
|
870
885
|
i0.ɵɵelementEnd()();
|
|
871
|
-
i0.ɵɵelementStart(11, "div",
|
|
886
|
+
i0.ɵɵelementStart(11, "div", 206)(12, "div", 207);
|
|
872
887
|
i0.ɵɵtext(13, "Test Suite");
|
|
873
888
|
i0.ɵɵelementEnd();
|
|
874
|
-
i0.ɵɵelementStart(14, "div",
|
|
875
|
-
i0.ɵɵ
|
|
889
|
+
i0.ɵɵelementStart(14, "div", 209);
|
|
890
|
+
i0.ɵɵconditionalCreate(15, TestSuiteRunFormComponentExtended_Conditional_131_Conditional_15_Template, 2, 1, "a", 210);
|
|
891
|
+
i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_131_Conditional_16_Template, 2, 0, "span");
|
|
876
892
|
i0.ɵɵelementEnd()();
|
|
877
|
-
i0.ɵɵelementStart(17, "div",
|
|
893
|
+
i0.ɵɵelementStart(17, "div", 206)(18, "div", 207);
|
|
878
894
|
i0.ɵɵtext(19, "Status");
|
|
879
895
|
i0.ɵɵelementEnd();
|
|
880
|
-
i0.ɵɵelementStart(20, "div",
|
|
896
|
+
i0.ɵɵelementStart(20, "div", 209)(21, "span", 211);
|
|
881
897
|
i0.ɵɵtext(22);
|
|
882
898
|
i0.ɵɵelementEnd()()();
|
|
883
|
-
i0.ɵɵelementStart(23, "div",
|
|
899
|
+
i0.ɵɵelementStart(23, "div", 206)(24, "div", 207);
|
|
884
900
|
i0.ɵɵtext(25, "Run By");
|
|
885
901
|
i0.ɵɵelementEnd();
|
|
886
|
-
i0.ɵɵelementStart(26, "div",
|
|
902
|
+
i0.ɵɵelementStart(26, "div", 209);
|
|
887
903
|
i0.ɵɵtext(27);
|
|
888
904
|
i0.ɵɵelementEnd()();
|
|
889
|
-
i0.ɵɵelementStart(28, "div",
|
|
905
|
+
i0.ɵɵelementStart(28, "div", 206)(29, "div", 207);
|
|
890
906
|
i0.ɵɵtext(30, "Started At");
|
|
891
907
|
i0.ɵɵelementEnd();
|
|
892
|
-
i0.ɵɵelementStart(31, "div",
|
|
908
|
+
i0.ɵɵelementStart(31, "div", 209);
|
|
893
909
|
i0.ɵɵtext(32);
|
|
894
910
|
i0.ɵɵpipe(33, "date");
|
|
895
911
|
i0.ɵɵelementEnd()();
|
|
896
|
-
i0.ɵɵelementStart(34, "div",
|
|
912
|
+
i0.ɵɵelementStart(34, "div", 206)(35, "div", 207);
|
|
897
913
|
i0.ɵɵtext(36, "Completed At");
|
|
898
914
|
i0.ɵɵelementEnd();
|
|
899
|
-
i0.ɵɵelementStart(37, "div",
|
|
915
|
+
i0.ɵɵelementStart(37, "div", 209);
|
|
900
916
|
i0.ɵɵtext(38);
|
|
901
917
|
i0.ɵɵpipe(39, "date");
|
|
902
918
|
i0.ɵɵelementEnd()();
|
|
903
|
-
i0.ɵɵelementStart(40, "div",
|
|
919
|
+
i0.ɵɵelementStart(40, "div", 206)(41, "div", 207);
|
|
904
920
|
i0.ɵɵtext(42, "Environment");
|
|
905
921
|
i0.ɵɵelementEnd();
|
|
906
|
-
i0.ɵɵelementStart(43, "div",
|
|
922
|
+
i0.ɵɵelementStart(43, "div", 209);
|
|
907
923
|
i0.ɵɵtext(44);
|
|
908
924
|
i0.ɵɵelementEnd()();
|
|
909
|
-
i0.ɵɵelementStart(45, "div",
|
|
925
|
+
i0.ɵɵelementStart(45, "div", 206)(46, "div", 207);
|
|
910
926
|
i0.ɵɵtext(47, "Trigger Type");
|
|
911
927
|
i0.ɵɵelementEnd();
|
|
912
|
-
i0.ɵɵelementStart(48, "div",
|
|
928
|
+
i0.ɵɵelementStart(48, "div", 209);
|
|
913
929
|
i0.ɵɵtext(49);
|
|
914
930
|
i0.ɵɵelementEnd()();
|
|
915
|
-
i0.ɵɵelementStart(50, "div",
|
|
931
|
+
i0.ɵɵelementStart(50, "div", 206)(51, "div", 207);
|
|
916
932
|
i0.ɵɵtext(52, "Git Commit");
|
|
917
933
|
i0.ɵɵelementEnd();
|
|
918
|
-
i0.ɵɵelementStart(53, "div",
|
|
934
|
+
i0.ɵɵelementStart(53, "div", 208);
|
|
919
935
|
i0.ɵɵtext(54);
|
|
920
936
|
i0.ɵɵelementEnd()();
|
|
921
|
-
i0.ɵɵelementStart(55, "div",
|
|
937
|
+
i0.ɵɵelementStart(55, "div", 206)(56, "div", 207);
|
|
922
938
|
i0.ɵɵtext(57, "Agent Version");
|
|
923
939
|
i0.ɵɵelementEnd();
|
|
924
|
-
i0.ɵɵelementStart(58, "div",
|
|
940
|
+
i0.ɵɵelementStart(58, "div", 209);
|
|
925
941
|
i0.ɵɵtext(59);
|
|
926
942
|
i0.ɵɵelementEnd()()()()();
|
|
927
943
|
} if (rf & 2) {
|
|
@@ -929,9 +945,9 @@ function TestSuiteRunFormComponentExtended_div_120_Template(rf, ctx) { if (rf &
|
|
|
929
945
|
i0.ɵɵadvance(10);
|
|
930
946
|
i0.ɵɵtextInterpolate(ctx_r1.record.ID);
|
|
931
947
|
i0.ɵɵadvance(5);
|
|
932
|
-
i0.ɵɵ
|
|
948
|
+
i0.ɵɵconditional(ctx_r1.testSuite ? 15 : -1);
|
|
933
949
|
i0.ɵɵadvance();
|
|
934
|
-
i0.ɵɵ
|
|
950
|
+
i0.ɵɵconditional(!ctx_r1.testSuite ? 16 : -1);
|
|
935
951
|
i0.ɵɵadvance(5);
|
|
936
952
|
i0.ɵɵproperty("ngClass", ctx_r1.getStatusClass());
|
|
937
953
|
i0.ɵɵadvance();
|
|
@@ -951,67 +967,67 @@ function TestSuiteRunFormComponentExtended_div_120_Template(rf, ctx) { if (rf &
|
|
|
951
967
|
i0.ɵɵadvance(5);
|
|
952
968
|
i0.ɵɵtextInterpolate(ctx_r1.record.AgentVersion || "N/A");
|
|
953
969
|
} }
|
|
954
|
-
function
|
|
955
|
-
i0.ɵɵelementStart(0, "div",
|
|
956
|
-
i0.ɵɵelement(1, "i",
|
|
970
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
971
|
+
i0.ɵɵelementStart(0, "div", 212);
|
|
972
|
+
i0.ɵɵelement(1, "i", 90);
|
|
957
973
|
i0.ɵɵelementStart(2, "span");
|
|
958
974
|
i0.ɵɵtext(3, "Loading test results...");
|
|
959
975
|
i0.ɵɵelementEnd()();
|
|
960
976
|
} }
|
|
961
|
-
function
|
|
962
|
-
i0.ɵɵelementStart(0, "div",
|
|
963
|
-
i0.ɵɵelement(2, "i",
|
|
977
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
978
|
+
i0.ɵɵelementStart(0, "div", 213)(1, "h3");
|
|
979
|
+
i0.ɵɵelement(2, "i", 214);
|
|
964
980
|
i0.ɵɵtext(3, " Summary Statistics");
|
|
965
981
|
i0.ɵɵelementEnd();
|
|
966
|
-
i0.ɵɵelementStart(4, "div",
|
|
967
|
-
i0.ɵɵelement(7, "i",
|
|
982
|
+
i0.ɵɵelementStart(4, "div", 215)(5, "div", 216)(6, "div", 217);
|
|
983
|
+
i0.ɵɵelement(7, "i", 33);
|
|
968
984
|
i0.ɵɵelementEnd();
|
|
969
|
-
i0.ɵɵelementStart(8, "div",
|
|
985
|
+
i0.ɵɵelementStart(8, "div", 218)(9, "div", 99);
|
|
970
986
|
i0.ɵɵtext(10);
|
|
971
987
|
i0.ɵɵelementEnd();
|
|
972
|
-
i0.ɵɵelementStart(11, "div",
|
|
988
|
+
i0.ɵɵelementStart(11, "div", 100);
|
|
973
989
|
i0.ɵɵtext(12, "Passed");
|
|
974
990
|
i0.ɵɵelementEnd();
|
|
975
|
-
i0.ɵɵelementStart(13, "div",
|
|
991
|
+
i0.ɵɵelementStart(13, "div", 219);
|
|
976
992
|
i0.ɵɵtext(14);
|
|
977
993
|
i0.ɵɵelementEnd()()();
|
|
978
|
-
i0.ɵɵelementStart(15, "div",
|
|
979
|
-
i0.ɵɵelement(17, "i",
|
|
994
|
+
i0.ɵɵelementStart(15, "div", 216)(16, "div", 220);
|
|
995
|
+
i0.ɵɵelement(17, "i", 38);
|
|
980
996
|
i0.ɵɵelementEnd();
|
|
981
|
-
i0.ɵɵelementStart(18, "div",
|
|
997
|
+
i0.ɵɵelementStart(18, "div", 218)(19, "div", 99);
|
|
982
998
|
i0.ɵɵtext(20);
|
|
983
999
|
i0.ɵɵelementEnd();
|
|
984
|
-
i0.ɵɵelementStart(21, "div",
|
|
1000
|
+
i0.ɵɵelementStart(21, "div", 100);
|
|
985
1001
|
i0.ɵɵtext(22, "Failed");
|
|
986
1002
|
i0.ɵɵelementEnd();
|
|
987
|
-
i0.ɵɵelementStart(23, "div",
|
|
1003
|
+
i0.ɵɵelementStart(23, "div", 219);
|
|
988
1004
|
i0.ɵɵtext(24);
|
|
989
1005
|
i0.ɵɵelementEnd()()();
|
|
990
|
-
i0.ɵɵelementStart(25, "div",
|
|
991
|
-
i0.ɵɵelement(27, "i",
|
|
1006
|
+
i0.ɵɵelementStart(25, "div", 216)(26, "div", 221);
|
|
1007
|
+
i0.ɵɵelement(27, "i", 222);
|
|
992
1008
|
i0.ɵɵelementEnd();
|
|
993
|
-
i0.ɵɵelementStart(28, "div",
|
|
1009
|
+
i0.ɵɵelementStart(28, "div", 218)(29, "div", 99);
|
|
994
1010
|
i0.ɵɵtext(30);
|
|
995
1011
|
i0.ɵɵelementEnd();
|
|
996
|
-
i0.ɵɵelementStart(31, "div",
|
|
1012
|
+
i0.ɵɵelementStart(31, "div", 100);
|
|
997
1013
|
i0.ɵɵtext(32, "Avg Score");
|
|
998
1014
|
i0.ɵɵelementEnd()()();
|
|
999
|
-
i0.ɵɵelementStart(33, "div",
|
|
1000
|
-
i0.ɵɵelement(35, "i",
|
|
1015
|
+
i0.ɵɵelementStart(33, "div", 216)(34, "div", 223);
|
|
1016
|
+
i0.ɵɵelement(35, "i", 23);
|
|
1001
1017
|
i0.ɵɵelementEnd();
|
|
1002
|
-
i0.ɵɵelementStart(36, "div",
|
|
1018
|
+
i0.ɵɵelementStart(36, "div", 218)(37, "div", 99);
|
|
1003
1019
|
i0.ɵɵtext(38);
|
|
1004
1020
|
i0.ɵɵelementEnd();
|
|
1005
|
-
i0.ɵɵelementStart(39, "div",
|
|
1021
|
+
i0.ɵɵelementStart(39, "div", 100);
|
|
1006
1022
|
i0.ɵɵtext(40, "Avg Duration");
|
|
1007
1023
|
i0.ɵɵelementEnd()()();
|
|
1008
|
-
i0.ɵɵelementStart(41, "div",
|
|
1009
|
-
i0.ɵɵelement(43, "i",
|
|
1024
|
+
i0.ɵɵelementStart(41, "div", 216)(42, "div", 224);
|
|
1025
|
+
i0.ɵɵelement(43, "i", 28);
|
|
1010
1026
|
i0.ɵɵelementEnd();
|
|
1011
|
-
i0.ɵɵelementStart(44, "div",
|
|
1027
|
+
i0.ɵɵelementStart(44, "div", 218)(45, "div", 99);
|
|
1012
1028
|
i0.ɵɵtext(46);
|
|
1013
1029
|
i0.ɵɵelementEnd();
|
|
1014
|
-
i0.ɵɵelementStart(47, "div",
|
|
1030
|
+
i0.ɵɵelementStart(47, "div", 100);
|
|
1015
1031
|
i0.ɵɵtext(48, "Total Cost");
|
|
1016
1032
|
i0.ɵɵelementEnd()()()()();
|
|
1017
1033
|
} if (rf & 2) {
|
|
@@ -1029,25 +1045,25 @@ function TestSuiteRunFormComponentExtended_div_121_div_2_Template(rf, ctx) { if
|
|
|
1029
1045
|
i0.ɵɵadvance(8);
|
|
1030
1046
|
i0.ɵɵtextInterpolate1("", ctx_r1.getAverageDuration().toFixed(1), "s");
|
|
1031
1047
|
i0.ɵɵadvance(8);
|
|
1032
|
-
i0.ɵɵtextInterpolate1("$", ctx_r1.getTotalCost().toFixed(4)
|
|
1048
|
+
i0.ɵɵtextInterpolate1("$", ctx_r1.getTotalCost().toFixed(4));
|
|
1033
1049
|
} }
|
|
1034
|
-
function
|
|
1035
|
-
i0.ɵɵelementStart(0, "th",
|
|
1050
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
1051
|
+
i0.ɵɵelementStart(0, "th", 236);
|
|
1036
1052
|
i0.ɵɵtext(1, "Status");
|
|
1037
1053
|
i0.ɵɵelementEnd();
|
|
1038
1054
|
} }
|
|
1039
|
-
function
|
|
1040
|
-
i0.ɵɵelementStart(0, "th",
|
|
1055
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
1056
|
+
i0.ɵɵelementStart(0, "th", 237);
|
|
1041
1057
|
i0.ɵɵtext(1, "Auto Score");
|
|
1042
1058
|
i0.ɵɵelementEnd();
|
|
1043
1059
|
} }
|
|
1044
|
-
function
|
|
1045
|
-
i0.ɵɵelementStart(0, "th",
|
|
1060
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
1061
|
+
i0.ɵɵelementStart(0, "th", 238);
|
|
1046
1062
|
i0.ɵɵtext(1, "Human Score");
|
|
1047
1063
|
i0.ɵɵelementEnd();
|
|
1048
1064
|
} }
|
|
1049
|
-
function
|
|
1050
|
-
i0.ɵɵelementStart(0, "span",
|
|
1065
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
1066
|
+
i0.ɵɵelementStart(0, "span", 247);
|
|
1051
1067
|
i0.ɵɵtext(1);
|
|
1052
1068
|
i0.ɵɵelementEnd();
|
|
1053
1069
|
} if (rf & 2) {
|
|
@@ -1055,19 +1071,19 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_div_7_span_1_Temp
|
|
|
1055
1071
|
i0.ɵɵadvance();
|
|
1056
1072
|
i0.ɵɵtextInterpolate(tag_r26);
|
|
1057
1073
|
} }
|
|
1058
|
-
function
|
|
1059
|
-
i0.ɵɵelementStart(0, "div",
|
|
1060
|
-
i0.ɵɵ
|
|
1074
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
1075
|
+
i0.ɵɵelementStart(0, "div", 245);
|
|
1076
|
+
i0.ɵɵrepeaterCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_For_2_Template, 2, 1, "span", 247, i0.ɵɵrepeaterTrackByIdentity);
|
|
1061
1077
|
i0.ɵɵelementEnd();
|
|
1062
1078
|
} if (rf & 2) {
|
|
1063
1079
|
const run_r25 = i0.ɵɵnextContext().$implicit;
|
|
1064
1080
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1065
1081
|
i0.ɵɵadvance();
|
|
1066
|
-
i0.ɵɵ
|
|
1082
|
+
i0.ɵɵrepeater(ctx_r1.getRunTags(run_r25).slice(0, 2));
|
|
1067
1083
|
} }
|
|
1068
|
-
function
|
|
1069
|
-
i0.ɵɵelementStart(0, "td",
|
|
1070
|
-
i0.ɵɵelement(2, "i",
|
|
1084
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
1085
|
+
i0.ɵɵelementStart(0, "td", 236)(1, "span", 14);
|
|
1086
|
+
i0.ɵɵelement(2, "i", 179);
|
|
1071
1087
|
i0.ɵɵtext(3);
|
|
1072
1088
|
i0.ɵɵelementEnd()();
|
|
1073
1089
|
} if (rf & 2) {
|
|
@@ -1079,11 +1095,11 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_8_Template(rf,
|
|
|
1079
1095
|
i0.ɵɵadvance();
|
|
1080
1096
|
i0.ɵɵtextInterpolate1(" ", run_r25.Status, " ");
|
|
1081
1097
|
} }
|
|
1082
|
-
function
|
|
1083
|
-
i0.ɵɵelementStart(0, "div",
|
|
1084
|
-
i0.ɵɵelement(2, "div",
|
|
1098
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
1099
|
+
i0.ɵɵelementStart(0, "div", 248)(1, "div", 249);
|
|
1100
|
+
i0.ɵɵelement(2, "div", 250);
|
|
1085
1101
|
i0.ɵɵelementEnd();
|
|
1086
|
-
i0.ɵɵelementStart(3, "span",
|
|
1102
|
+
i0.ɵɵelementStart(3, "span", 251);
|
|
1087
1103
|
i0.ɵɵtext(4);
|
|
1088
1104
|
i0.ɵɵelementEnd()();
|
|
1089
1105
|
} if (rf & 2) {
|
|
@@ -1094,25 +1110,26 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_9_div_1_Templa
|
|
|
1094
1110
|
i0.ɵɵadvance(2);
|
|
1095
1111
|
i0.ɵɵtextInterpolate1("", (run_r25.Score * 100).toFixed(0), "%");
|
|
1096
1112
|
} }
|
|
1097
|
-
function
|
|
1098
|
-
i0.ɵɵelementStart(0, "span",
|
|
1113
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1114
|
+
i0.ɵɵelementStart(0, "span", 246);
|
|
1099
1115
|
i0.ɵɵtext(1, "\u2014");
|
|
1100
1116
|
i0.ɵɵelementEnd();
|
|
1101
1117
|
} }
|
|
1102
|
-
function
|
|
1103
|
-
i0.ɵɵelementStart(0, "td",
|
|
1104
|
-
i0.ɵɵ
|
|
1118
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
1119
|
+
i0.ɵɵelementStart(0, "td", 237);
|
|
1120
|
+
i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_1_Template, 5, 9, "div", 248);
|
|
1121
|
+
i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Conditional_2_Template, 2, 0, "span", 246);
|
|
1105
1122
|
i0.ɵɵelementEnd();
|
|
1106
1123
|
} if (rf & 2) {
|
|
1107
1124
|
const run_r25 = i0.ɵɵnextContext().$implicit;
|
|
1108
1125
|
i0.ɵɵadvance();
|
|
1109
|
-
i0.ɵɵ
|
|
1126
|
+
i0.ɵɵconditional(run_r25.Score != null ? 1 : -1);
|
|
1110
1127
|
i0.ɵɵadvance();
|
|
1111
|
-
i0.ɵɵ
|
|
1128
|
+
i0.ɵɵconditional(run_r25.Score == null ? 2 : -1);
|
|
1112
1129
|
} }
|
|
1113
|
-
function
|
|
1114
|
-
i0.ɵɵelementStart(0, "span",
|
|
1115
|
-
i0.ɵɵelement(1, "i",
|
|
1130
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1131
|
+
i0.ɵɵelementStart(0, "span", 255);
|
|
1132
|
+
i0.ɵɵelement(1, "i", 179);
|
|
1116
1133
|
i0.ɵɵelementEnd();
|
|
1117
1134
|
} if (rf & 2) {
|
|
1118
1135
|
const run_r25 = i0.ɵɵnextContext(3).$implicit;
|
|
@@ -1120,11 +1137,11 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_span_
|
|
|
1120
1137
|
i0.ɵɵadvance();
|
|
1121
1138
|
i0.ɵɵclassProp("fa-check", ctx_r1.getHumanIsCorrect(run_r25.ID) === true)("fa-times", ctx_r1.getHumanIsCorrect(run_r25.ID) === false)("correct", ctx_r1.getHumanIsCorrect(run_r25.ID) === true)("incorrect", ctx_r1.getHumanIsCorrect(run_r25.ID) === false);
|
|
1122
1139
|
} }
|
|
1123
|
-
function
|
|
1124
|
-
i0.ɵɵelementStart(0, "div",
|
|
1140
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
1141
|
+
i0.ɵɵelementStart(0, "div", 252)(1, "span", 254);
|
|
1125
1142
|
i0.ɵɵtext(2);
|
|
1126
1143
|
i0.ɵɵelementEnd();
|
|
1127
|
-
i0.ɵɵ
|
|
1144
|
+
i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Conditional_3_Template, 2, 8, "span", 255);
|
|
1128
1145
|
i0.ɵɵelementEnd();
|
|
1129
1146
|
} if (rf & 2) {
|
|
1130
1147
|
const run_r25 = i0.ɵɵnextContext(2).$implicit;
|
|
@@ -1134,26 +1151,27 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_td_10_div_1_Templ
|
|
|
1134
1151
|
i0.ɵɵadvance();
|
|
1135
1152
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getFeedbackRating(run_r25.ID), "/10 ");
|
|
1136
1153
|
i0.ɵɵadvance();
|
|
1137
|
-
i0.ɵɵ
|
|
1154
|
+
i0.ɵɵconditional(ctx_r1.getHumanIsCorrect(run_r25.ID) !== null ? 3 : -1);
|
|
1138
1155
|
} }
|
|
1139
|
-
function
|
|
1140
|
-
i0.ɵɵelementStart(0, "span",
|
|
1141
|
-
i0.ɵɵelement(1, "i",
|
|
1156
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
1157
|
+
i0.ɵɵelementStart(0, "span", 253);
|
|
1158
|
+
i0.ɵɵelement(1, "i", 256);
|
|
1142
1159
|
i0.ɵɵelementEnd();
|
|
1143
1160
|
} }
|
|
1144
|
-
function
|
|
1145
|
-
i0.ɵɵelementStart(0, "td",
|
|
1146
|
-
i0.ɵɵ
|
|
1161
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
1162
|
+
i0.ɵɵelementStart(0, "td", 238);
|
|
1163
|
+
i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_1_Template, 4, 8, "div", 252);
|
|
1164
|
+
i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Conditional_2_Template, 2, 0, "span", 253);
|
|
1147
1165
|
i0.ɵɵelementEnd();
|
|
1148
1166
|
} if (rf & 2) {
|
|
1149
1167
|
const run_r25 = i0.ɵɵnextContext().$implicit;
|
|
1150
1168
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1151
1169
|
i0.ɵɵadvance();
|
|
1152
|
-
i0.ɵɵ
|
|
1170
|
+
i0.ɵɵconditional(ctx_r1.hasFeedback(run_r25.ID) ? 1 : -1);
|
|
1153
1171
|
i0.ɵɵadvance();
|
|
1154
|
-
i0.ɵɵ
|
|
1172
|
+
i0.ɵɵconditional(!ctx_r1.hasFeedback(run_r25.ID) ? 2 : -1);
|
|
1155
1173
|
} }
|
|
1156
|
-
function
|
|
1174
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
1157
1175
|
i0.ɵɵelementStart(0, "span");
|
|
1158
1176
|
i0.ɵɵtext(1);
|
|
1159
1177
|
i0.ɵɵelementEnd();
|
|
@@ -1162,121 +1180,127 @@ function TestSuiteRunFormComponentExtended_div_121_div_3_tr_34_span_12_Template(
|
|
|
1162
1180
|
i0.ɵɵadvance();
|
|
1163
1181
|
i0.ɵɵtextInterpolate1("", run_r25.DurationSeconds.toFixed(1), "s");
|
|
1164
1182
|
} }
|
|
1165
|
-
function
|
|
1166
|
-
i0.ɵɵelementStart(0, "span",
|
|
1183
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
1184
|
+
i0.ɵɵelementStart(0, "span", 246);
|
|
1167
1185
|
i0.ɵɵtext(1, "\u2014");
|
|
1168
1186
|
i0.ɵɵelementEnd();
|
|
1169
1187
|
} }
|
|
1170
|
-
function
|
|
1188
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
1171
1189
|
i0.ɵɵelementStart(0, "span");
|
|
1172
1190
|
i0.ɵɵtext(1);
|
|
1173
1191
|
i0.ɵɵelementEnd();
|
|
1174
1192
|
} if (rf & 2) {
|
|
1175
1193
|
const run_r25 = i0.ɵɵnextContext().$implicit;
|
|
1176
1194
|
i0.ɵɵadvance();
|
|
1177
|
-
i0.ɵɵtextInterpolate1("$", run_r25.CostUSD.toFixed(4)
|
|
1195
|
+
i0.ɵɵtextInterpolate1("$", run_r25.CostUSD.toFixed(4));
|
|
1178
1196
|
} }
|
|
1179
|
-
function
|
|
1180
|
-
i0.ɵɵelementStart(0, "span",
|
|
1197
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
1198
|
+
i0.ɵɵelementStart(0, "span", 246);
|
|
1181
1199
|
i0.ɵɵtext(1, "\u2014");
|
|
1182
1200
|
i0.ɵɵelementEnd();
|
|
1183
1201
|
} }
|
|
1184
|
-
function
|
|
1202
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Template(rf, ctx) { if (rf & 1) {
|
|
1185
1203
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
1186
|
-
i0.ɵɵelementStart(0, "tr",
|
|
1187
|
-
i0.ɵɵlistener("click", function
|
|
1188
|
-
i0.ɵɵelementStart(1, "td",
|
|
1204
|
+
i0.ɵɵelementStart(0, "tr", 242);
|
|
1205
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Template_tr_click_0_listener() { const run_r25 = i0.ɵɵrestoreView(_r24).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.openTestRun(run_r25.ID)); });
|
|
1206
|
+
i0.ɵɵelementStart(1, "td", 234);
|
|
1189
1207
|
i0.ɵɵtext(2);
|
|
1190
1208
|
i0.ɵɵelementEnd();
|
|
1191
|
-
i0.ɵɵelementStart(3, "td",
|
|
1209
|
+
i0.ɵɵelementStart(3, "td", 235)(4, "div", 243)(5, "span", 244);
|
|
1192
1210
|
i0.ɵɵtext(6);
|
|
1193
1211
|
i0.ɵɵelementEnd();
|
|
1194
|
-
i0.ɵɵ
|
|
1212
|
+
i0.ɵɵconditionalCreate(7, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_7_Template, 3, 0, "div", 245);
|
|
1195
1213
|
i0.ɵɵelementEnd()();
|
|
1196
|
-
i0.ɵɵ
|
|
1197
|
-
i0.ɵɵ
|
|
1198
|
-
i0.ɵɵ
|
|
1199
|
-
i0.ɵɵ
|
|
1200
|
-
i0.ɵɵ
|
|
1201
|
-
i0.ɵɵ
|
|
1214
|
+
i0.ɵɵconditionalCreate(8, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_8_Template, 4, 16, "td", 236);
|
|
1215
|
+
i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_9_Template, 3, 2, "td", 237);
|
|
1216
|
+
i0.ɵɵconditionalCreate(10, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_10_Template, 3, 2, "td", 238);
|
|
1217
|
+
i0.ɵɵelementStart(11, "td", 239);
|
|
1218
|
+
i0.ɵɵconditionalCreate(12, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_12_Template, 2, 1, "span");
|
|
1219
|
+
i0.ɵɵconditionalCreate(13, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_13_Template, 2, 0, "span", 246);
|
|
1220
|
+
i0.ɵɵelementEnd();
|
|
1221
|
+
i0.ɵɵelementStart(14, "td", 240);
|
|
1222
|
+
i0.ɵɵconditionalCreate(15, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_15_Template, 2, 1, "span");
|
|
1223
|
+
i0.ɵɵconditionalCreate(16, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Conditional_16_Template, 2, 0, "span", 246);
|
|
1202
1224
|
i0.ɵɵelementEnd()();
|
|
1203
1225
|
} if (rf & 2) {
|
|
1204
1226
|
const run_r25 = ctx.$implicit;
|
|
1205
|
-
const
|
|
1227
|
+
const ɵ$index_1024_r27 = ctx.$index;
|
|
1206
1228
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
1207
1229
|
i0.ɵɵclassProp("row-passed", run_r25.Status === "Passed")("row-failed", run_r25.Status === "Failed")("row-error", run_r25.Status === "Error")("row-skipped", run_r25.Status === "Skipped");
|
|
1208
1230
|
i0.ɵɵadvance(2);
|
|
1209
|
-
i0.ɵɵtextInterpolate(
|
|
1231
|
+
i0.ɵɵtextInterpolate(ɵ$index_1024_r27 + 1);
|
|
1210
1232
|
i0.ɵɵadvance(4);
|
|
1211
1233
|
i0.ɵɵtextInterpolate(run_r25.Test || "Unknown Test");
|
|
1212
1234
|
i0.ɵɵadvance();
|
|
1213
|
-
i0.ɵɵ
|
|
1235
|
+
i0.ɵɵconditional(ctx_r1.getRunTags(run_r25).length > 0 ? 7 : -1);
|
|
1214
1236
|
i0.ɵɵadvance();
|
|
1215
|
-
i0.ɵɵ
|
|
1237
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showExecution ? 8 : -1);
|
|
1216
1238
|
i0.ɵɵadvance();
|
|
1217
|
-
i0.ɵɵ
|
|
1239
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showAuto ? 9 : -1);
|
|
1218
1240
|
i0.ɵɵadvance();
|
|
1219
|
-
i0.ɵɵ
|
|
1241
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman ? 10 : -1);
|
|
1220
1242
|
i0.ɵɵadvance(2);
|
|
1221
|
-
i0.ɵɵ
|
|
1243
|
+
i0.ɵɵconditional(run_r25.DurationSeconds ? 12 : -1);
|
|
1222
1244
|
i0.ɵɵadvance();
|
|
1223
|
-
i0.ɵɵ
|
|
1245
|
+
i0.ɵɵconditional(!run_r25.DurationSeconds ? 13 : -1);
|
|
1224
1246
|
i0.ɵɵadvance(2);
|
|
1225
|
-
i0.ɵɵ
|
|
1247
|
+
i0.ɵɵconditional(run_r25.CostUSD ? 15 : -1);
|
|
1226
1248
|
i0.ɵɵadvance();
|
|
1227
|
-
i0.ɵɵ
|
|
1249
|
+
i0.ɵɵconditional(!run_r25.CostUSD ? 16 : -1);
|
|
1228
1250
|
} }
|
|
1229
|
-
function
|
|
1230
|
-
i0.ɵɵelementStart(0, "div",
|
|
1231
|
-
i0.ɵɵelement(3, "i",
|
|
1251
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
1252
|
+
i0.ɵɵelementStart(0, "div", 213)(1, "div", 225)(2, "h3");
|
|
1253
|
+
i0.ɵɵelement(3, "i", 226);
|
|
1232
1254
|
i0.ɵɵtext(4, " Test Results");
|
|
1233
1255
|
i0.ɵɵelementEnd();
|
|
1234
|
-
i0.ɵɵelementStart(5, "div",
|
|
1235
|
-
i0.ɵɵelement(7, "i",
|
|
1256
|
+
i0.ɵɵelementStart(5, "div", 227)(6, "span", 228);
|
|
1257
|
+
i0.ɵɵelement(7, "i", 33);
|
|
1236
1258
|
i0.ɵɵtext(8, " Passed");
|
|
1237
1259
|
i0.ɵɵelementEnd();
|
|
1238
|
-
i0.ɵɵelementStart(9, "span",
|
|
1239
|
-
i0.ɵɵelement(10, "i",
|
|
1260
|
+
i0.ɵɵelementStart(9, "span", 229);
|
|
1261
|
+
i0.ɵɵelement(10, "i", 38);
|
|
1240
1262
|
i0.ɵɵtext(11, " Failed");
|
|
1241
1263
|
i0.ɵɵelementEnd();
|
|
1242
|
-
i0.ɵɵelementStart(12, "span",
|
|
1243
|
-
i0.ɵɵelement(13, "i",
|
|
1264
|
+
i0.ɵɵelementStart(12, "span", 230);
|
|
1265
|
+
i0.ɵɵelement(13, "i", 40);
|
|
1244
1266
|
i0.ɵɵtext(14, " Error");
|
|
1245
1267
|
i0.ɵɵelementEnd();
|
|
1246
|
-
i0.ɵɵelementStart(15, "span",
|
|
1247
|
-
i0.ɵɵelement(16, "i",
|
|
1268
|
+
i0.ɵɵelementStart(15, "span", 231);
|
|
1269
|
+
i0.ɵɵelement(16, "i", 42);
|
|
1248
1270
|
i0.ɵɵtext(17, " Skipped");
|
|
1249
1271
|
i0.ɵɵelementEnd()()();
|
|
1250
|
-
i0.ɵɵelementStart(18, "div",
|
|
1272
|
+
i0.ɵɵelementStart(18, "div", 232)(19, "table", 233)(20, "thead")(21, "tr")(22, "th", 234);
|
|
1251
1273
|
i0.ɵɵtext(23, "#");
|
|
1252
1274
|
i0.ɵɵelementEnd();
|
|
1253
|
-
i0.ɵɵelementStart(24, "th",
|
|
1275
|
+
i0.ɵɵelementStart(24, "th", 235);
|
|
1254
1276
|
i0.ɵɵtext(25, "Test Name");
|
|
1255
1277
|
i0.ɵɵelementEnd();
|
|
1256
|
-
i0.ɵɵ
|
|
1257
|
-
i0.ɵɵ
|
|
1278
|
+
i0.ɵɵconditionalCreate(26, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_26_Template, 2, 0, "th", 236);
|
|
1279
|
+
i0.ɵɵconditionalCreate(27, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_27_Template, 2, 0, "th", 237);
|
|
1280
|
+
i0.ɵɵconditionalCreate(28, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Conditional_28_Template, 2, 0, "th", 238);
|
|
1281
|
+
i0.ɵɵelementStart(29, "th", 239);
|
|
1258
1282
|
i0.ɵɵtext(30, "Duration");
|
|
1259
1283
|
i0.ɵɵelementEnd();
|
|
1260
|
-
i0.ɵɵelementStart(31, "th",
|
|
1284
|
+
i0.ɵɵelementStart(31, "th", 240);
|
|
1261
1285
|
i0.ɵɵtext(32, "Cost");
|
|
1262
1286
|
i0.ɵɵelementEnd()()();
|
|
1263
1287
|
i0.ɵɵelementStart(33, "tbody");
|
|
1264
|
-
i0.ɵɵ
|
|
1288
|
+
i0.ɵɵrepeaterCreate(34, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_For_35_Template, 17, 18, "tr", 241, i0.ɵɵrepeaterTrackByIdentity);
|
|
1265
1289
|
i0.ɵɵelementEnd()()()();
|
|
1266
1290
|
} if (rf & 2) {
|
|
1267
1291
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
1268
1292
|
i0.ɵɵadvance(26);
|
|
1269
|
-
i0.ɵɵ
|
|
1293
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showExecution ? 26 : -1);
|
|
1270
1294
|
i0.ɵɵadvance();
|
|
1271
|
-
i0.ɵɵ
|
|
1295
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showAuto ? 27 : -1);
|
|
1272
1296
|
i0.ɵɵadvance();
|
|
1273
|
-
i0.ɵɵ
|
|
1297
|
+
i0.ɵɵconditional(ctx_r1.evalPreferences.showHuman ? 28 : -1);
|
|
1274
1298
|
i0.ɵɵadvance(6);
|
|
1275
|
-
i0.ɵɵ
|
|
1299
|
+
i0.ɵɵrepeater(ctx_r1.testRuns);
|
|
1276
1300
|
} }
|
|
1277
|
-
function
|
|
1278
|
-
i0.ɵɵelementStart(0, "div",
|
|
1279
|
-
i0.ɵɵelement(2, "i",
|
|
1301
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
1302
|
+
i0.ɵɵelementStart(0, "div", 144)(1, "div", 201);
|
|
1303
|
+
i0.ɵɵelement(2, "i", 54);
|
|
1280
1304
|
i0.ɵɵelementEnd();
|
|
1281
1305
|
i0.ɵɵelementStart(3, "h4");
|
|
1282
1306
|
i0.ɵɵtext(4, "No Test Results Yet");
|
|
@@ -1285,52 +1309,55 @@ function TestSuiteRunFormComponentExtended_div_121_div_4_Template(rf, ctx) { if
|
|
|
1285
1309
|
i0.ɵɵtext(6, "Test runs will appear here once the suite execution completes.");
|
|
1286
1310
|
i0.ɵɵelementEnd()();
|
|
1287
1311
|
} }
|
|
1288
|
-
function
|
|
1289
|
-
i0.ɵɵelementStart(0, "div",
|
|
1290
|
-
i0.ɵɵ
|
|
1312
|
+
function TestSuiteRunFormComponentExtended_Conditional_132_Template(rf, ctx) { if (rf & 1) {
|
|
1313
|
+
i0.ɵɵelementStart(0, "div", 61);
|
|
1314
|
+
i0.ɵɵconditionalCreate(1, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_1_Template, 4, 0, "div", 212);
|
|
1315
|
+
i0.ɵɵconditionalCreate(2, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_2_Template, 49, 7, "div", 213);
|
|
1316
|
+
i0.ɵɵconditionalCreate(3, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_3_Template, 36, 3, "div", 213);
|
|
1317
|
+
i0.ɵɵconditionalCreate(4, TestSuiteRunFormComponentExtended_Conditional_132_Conditional_4_Template, 7, 0, "div", 144);
|
|
1291
1318
|
i0.ɵɵelementEnd();
|
|
1292
1319
|
} if (rf & 2) {
|
|
1293
1320
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
1294
1321
|
i0.ɵɵadvance();
|
|
1295
|
-
i0.ɵɵ
|
|
1322
|
+
i0.ɵɵconditional(ctx_r1.loadingTestRuns ? 1 : -1);
|
|
1296
1323
|
i0.ɵɵadvance();
|
|
1297
|
-
i0.ɵɵ
|
|
1324
|
+
i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 ? 2 : -1);
|
|
1298
1325
|
i0.ɵɵadvance();
|
|
1299
|
-
i0.ɵɵ
|
|
1326
|
+
i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRuns.length > 0 ? 3 : -1);
|
|
1300
1327
|
i0.ɵɵadvance();
|
|
1301
|
-
i0.ɵɵ
|
|
1328
|
+
i0.ɵɵconditional(!ctx_r1.loadingTestRuns && ctx_r1.testRunsLoaded && ctx_r1.testRuns.length === 0 ? 4 : -1);
|
|
1302
1329
|
} }
|
|
1303
|
-
function
|
|
1304
|
-
i0.ɵɵelementStart(0, "div",
|
|
1305
|
-
i0.ɵɵelement(1, "mj-execution-context",
|
|
1330
|
+
function TestSuiteRunFormComponentExtended_Conditional_133_Template(rf, ctx) { if (rf & 1) {
|
|
1331
|
+
i0.ɵɵelementStart(0, "div", 62);
|
|
1332
|
+
i0.ɵɵelement(1, "mj-execution-context", 257);
|
|
1306
1333
|
i0.ɵɵelementEnd();
|
|
1307
1334
|
} if (rf & 2) {
|
|
1308
1335
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
1309
1336
|
i0.ɵɵadvance();
|
|
1310
1337
|
i0.ɵɵproperty("machineName", ctx_r1.record.MachineName)("machineId", ctx_r1.record.MachineID)("runByUserName", ctx_r1.record.RunByUserName)("runByUserEmail", ctx_r1.record.RunByUserEmail)("runContextDetailsJson", ctx_r1.record.RunContextDetails);
|
|
1311
1338
|
} }
|
|
1312
|
-
function
|
|
1339
|
+
function TestSuiteRunFormComponentExtended_Conditional_136_Template(rf, ctx) { if (rf & 1) {
|
|
1313
1340
|
const _r28 = i0.ɵɵgetCurrentView();
|
|
1314
|
-
i0.ɵɵelementStart(0, "div",
|
|
1315
|
-
i0.ɵɵelement(2, "i",
|
|
1341
|
+
i0.ɵɵelementStart(0, "div", 65)(1, "div", 258);
|
|
1342
|
+
i0.ɵɵelement(2, "i", 64);
|
|
1316
1343
|
i0.ɵɵtext(3, " Shortcuts ");
|
|
1317
|
-
i0.ɵɵelementStart(4, "button",
|
|
1318
|
-
i0.ɵɵlistener("click", function
|
|
1319
|
-
i0.ɵɵelement(5, "i",
|
|
1344
|
+
i0.ɵɵelementStart(4, "button", 259);
|
|
1345
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Conditional_136_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r28); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleShortcuts()); });
|
|
1346
|
+
i0.ɵɵelement(5, "i", 93);
|
|
1320
1347
|
i0.ɵɵelementEnd()();
|
|
1321
|
-
i0.ɵɵelementStart(6, "div",
|
|
1348
|
+
i0.ɵɵelementStart(6, "div", 260)(7, "div", 261)(8, "span");
|
|
1322
1349
|
i0.ɵɵtext(9, "Refresh");
|
|
1323
1350
|
i0.ɵɵelementEnd();
|
|
1324
|
-
i0.ɵɵelementStart(10, "span",
|
|
1351
|
+
i0.ɵɵelementStart(10, "span", 262)(11, "kbd");
|
|
1325
1352
|
i0.ɵɵtext(12, "Cmd");
|
|
1326
1353
|
i0.ɵɵelementEnd();
|
|
1327
1354
|
i0.ɵɵelementStart(13, "kbd");
|
|
1328
1355
|
i0.ɵɵtext(14, "R");
|
|
1329
1356
|
i0.ɵɵelementEnd()()();
|
|
1330
|
-
i0.ɵɵelementStart(15, "div",
|
|
1357
|
+
i0.ɵɵelementStart(15, "div", 261)(16, "span");
|
|
1331
1358
|
i0.ɵɵtext(17, "Re-run Suite");
|
|
1332
1359
|
i0.ɵɵelementEnd();
|
|
1333
|
-
i0.ɵɵelementStart(18, "span",
|
|
1360
|
+
i0.ɵɵelementStart(18, "span", 262)(19, "kbd");
|
|
1334
1361
|
i0.ɵɵtext(20, "Cmd");
|
|
1335
1362
|
i0.ɵɵelementEnd();
|
|
1336
1363
|
i0.ɵɵelementStart(21, "kbd");
|
|
@@ -1339,10 +1366,10 @@ function TestSuiteRunFormComponentExtended_div_125_Template(rf, ctx) { if (rf &
|
|
|
1339
1366
|
i0.ɵɵelementStart(23, "kbd");
|
|
1340
1367
|
i0.ɵɵtext(24, "R");
|
|
1341
1368
|
i0.ɵɵelementEnd()()();
|
|
1342
|
-
i0.ɵɵelementStart(25, "div",
|
|
1369
|
+
i0.ɵɵelementStart(25, "div", 261)(26, "span");
|
|
1343
1370
|
i0.ɵɵtext(27, "Switch Tabs");
|
|
1344
1371
|
i0.ɵɵelementEnd();
|
|
1345
|
-
i0.ɵɵelementStart(28, "span",
|
|
1372
|
+
i0.ɵɵelementStart(28, "span", 262)(29, "kbd");
|
|
1346
1373
|
i0.ɵɵtext(30, "1");
|
|
1347
1374
|
i0.ɵɵelementEnd();
|
|
1348
1375
|
i0.ɵɵtext(31, "-");
|
|
@@ -1353,13 +1380,14 @@ function TestSuiteRunFormComponentExtended_div_125_Template(rf, ctx) { if (rf &
|
|
|
1353
1380
|
/** Settings key for keyboard shortcuts visibility */
|
|
1354
1381
|
const SHORTCUTS_SETTINGS_KEY = '__mj.Testing.ShowKeyboardShortcuts';
|
|
1355
1382
|
let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended extends TestSuiteRunFormComponent {
|
|
1356
|
-
constructor(elementRef, sharedService, router, route, cdr, testingDialogService, evalPrefsService, viewContainerRef) {
|
|
1383
|
+
constructor(elementRef, sharedService, router, route, cdr, testingDialogService, evalPrefsService, viewContainerRef, appManager) {
|
|
1357
1384
|
super(elementRef, sharedService, router, route, cdr);
|
|
1358
1385
|
this.router = router;
|
|
1359
1386
|
this.cdr = cdr;
|
|
1360
1387
|
this.testingDialogService = testingDialogService;
|
|
1361
1388
|
this.evalPrefsService = evalPrefsService;
|
|
1362
1389
|
this.viewContainerRef = viewContainerRef;
|
|
1390
|
+
this.appManager = appManager;
|
|
1363
1391
|
this.destroy$ = new Subject();
|
|
1364
1392
|
// UI state
|
|
1365
1393
|
this.activeTab = 'overview';
|
|
@@ -1621,6 +1649,12 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
|
|
|
1621
1649
|
return `${diffDays}d ago`;
|
|
1622
1650
|
return d.toLocaleDateString();
|
|
1623
1651
|
}
|
|
1652
|
+
navigateToTestingDashboard() {
|
|
1653
|
+
const testingApp = this.appManager.GetAppByName('Testing');
|
|
1654
|
+
if (testingApp) {
|
|
1655
|
+
this.navigationService.SwitchToApp(testingApp.ID);
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1624
1658
|
openTestSuite() {
|
|
1625
1659
|
if (this.testSuite) {
|
|
1626
1660
|
SharedService.Instance.OpenEntityRecord('MJ: Test Suites', CompositeKey.FromID(this.testSuite.ID));
|
|
@@ -2041,154 +2075,172 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
|
|
|
2041
2075
|
URL.revokeObjectURL(link.href);
|
|
2042
2076
|
SharedService.Instance.CreateSimpleNotification('Export complete', 'success', 2000);
|
|
2043
2077
|
}
|
|
2044
|
-
static { this.ɵfac = function TestSuiteRunFormComponentExtended_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestSuiteRunFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.TestingDialogService), i0.ɵɵdirectiveInject(i3.EvaluationPreferencesService), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); }; }
|
|
2078
|
+
static { this.ɵfac = function TestSuiteRunFormComponentExtended_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestSuiteRunFormComponentExtended)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.SharedService), i0.ɵɵdirectiveInject(i2.Router), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.TestingDialogService), i0.ɵɵdirectiveInject(i3.EvaluationPreferencesService), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i4.ApplicationManager)); }; }
|
|
2045
2079
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestSuiteRunFormComponentExtended, selectors: [["mj-test-suite-run-form"]], hostBindings: function TestSuiteRunFormComponentExtended_HostBindings(rf, ctx) { if (rf & 1) {
|
|
2046
|
-
i0.ɵɵlistener("keydown", function TestSuiteRunFormComponentExtended_keydown_HostBindingHandler($event) { return ctx.handleKeyboardShortcut($event); },
|
|
2047
|
-
} }, features: [i0.ɵɵInheritDefinitionFeature], decls: 126, vars: 47, consts: [["kendoDialogContainer", "", 1, "test-suite-run-form"], [1, "suite-run-header"], ["class", "breadcrumb", 4, "ngIf"], [1, "header-content"], [1, "header-left"], [1, "suite-run-icon"], [1, "fas", 3, "ngClass"], [1, "suite-run-info"], [1, "suite-run-meta"], [1, "status-badge", 3, "ngClass"], ["class", "meta-tag environment", 4, "ngIf"], ["class", "meta-tag trigger", 4, "ngIf"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary", 3, "click", 4, "ngIf"], ["kendoButton", "", 3, "click", "disabled"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-icon"], [1, "fas", "fa-clock"], [1, "metric-content"], [1, "metric-value"], [1, "metric-label"], [1, "fas", "fa-percentage"], [1, "fas", "fa-dollar-sign"], [1, "fas", "fa-calendar"], [1, "results-summary"], [1, "result-item", "passed"], [1, "result-icon"], [1, "fas", "fa-check-circle"], [1, "result-content"], [1, "result-count"], [1, "result-label"], [1, "result-item", "failed"], [1, "fas", "fa-times-circle"], [1, "result-item", "error"], [1, "fas", "fa-exclamation-circle"], [1, "result-item", "skipped"], [1, "fas", "fa-forward"], [1, "result-item", "total"], [1, "fas", "fa-list"], ["class", "tags-bar", 4, "ngIf"], ["class", "tags-editor-panel", 4, "ngIf"], [1, "tabs-container"], ["role", "tablist", 1, "tabs"], ["role", "tab", 1, "tab", 3, "click"], [1, "fas", "fa-th-large"], ["class", "tab-badge", 4, "ngIf"], [1, "fas", "fa-info-circle"], ["role", "tab", "title", "Press 4", 1, "tab", 3, "click"], [1, "fas", "fa-chart-bar"], ["role", "tab", "title", "Press 5", 1, "tab", 3, "click"], [1, "fas", "fa-microchip"], [1, "tab-content"], ["class", "overview-tab", 4, "ngIf"], ["class", "runs-tab", 4, "ngIf"], ["class", "details-tab", 4, "ngIf"], ["class", "analytics-tab", 4, "ngIf"], ["class", "execution-tab", 4, "ngIf"], [1, "shortcuts-toggle", 3, "click", "title"], [1, "fas", "fa-keyboard"], ["class", "keyboard-shortcuts", 4, "ngIf"], [1, "breadcrumb"], ["href", "javascript:void(0)", 3, "click"], [1, "fas", "fa-layer-group"], [1, "fas", "fa-chevron-right", "separator"], [1, "current"], [1, "meta-tag", "environment"], [1, "fas", "fa-server"], [1, "meta-tag", "trigger"], [1, "fas", "fa-bolt"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "fas", "fa-play"], [1, "tags-bar"], [1, "tags-bar-content"], [1, "tags-bar-label"], [1, "fas", "fa-tags"], ["class", "tags-bar-chips", 4, "ngIf"], ["class", "tags-bar-empty", 4, "ngIf"], ["title", "Edit tags", 1, "tags-bar-edit", 3, "click"], [1, "fas", "fa-plus"], [1, "tags-bar-chips"], ["class", "tag-inline", 4, "ngFor", "ngForOf"], [1, "tag-inline"], [1, "tags-bar-empty"], [1, "tags-editor-panel"], [1, "tags-editor-header"], [1, "tags-editor-title"], [1, "tags-editor-body"], [1, "tags-editor-chips"], ["class", "tag-editable", 4, "ngFor", "ngForOf"], ["class", "tags-empty-hint", 4, "ngIf"], [1, "tags-editor-input"], ["type", "text", "placeholder", "Type a tag and press Enter...", 1, "tag-text-input", 3, "ngModelChange", "keyup.enter", "ngModel"], ["kendoButton", "", "fillMode", "flat", 3, "click", "disabled"], [1, "tags-editor-footer"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], ["class", "fas fa-spinner fa-spin", 4, "ngIf"], ["kendoButton", "", "fillMode", "flat", 3, "click"], [1, "tag-editable"], ["title", "Remove tag", 1, "tag-remove-btn", 3, "click"], [1, "fas", "fa-times"], [1, "tags-empty-hint"], [1, "fas", "fa-spinner", "fa-spin"], [1, "tab-badge"], [1, "overview-tab"], [1, "result-hero"], [1, "result-hero-icon"], [1, "result-hero-text"], [1, "result-hero-stats"], [1, "stat-item"], [1, "stat-value"], [1, "stat-label"], [1, "stat-divider"], ["class", "evaluation-summary", 4, "ngIf"], ["class", "needs-review-section", 4, "ngIf"], ["class", "progress-section", 4, "ngIf"], [1, "evaluation-summary"], [1, "eval-summary-grid"], ["class", "eval-summary-card", 4, "ngIf"], [1, "eval-summary-card"], [1, "eval-card-header"], [1, "fa-solid", "fa-user"], [1, "eval-card-body"], [1, "eval-stat-row"], [1, "eval-stat-label"], [1, "eval-stat-value"], ["class", "eval-stat-row", 4, "ngIf"], ["class", "eval-card-footer", 4, "ngIf"], [1, "eval-stat-value", "correct"], ["class", "eval-stat-value incorrect", 4, "ngIf"], [1, "eval-stat-value", "incorrect"], [1, "eval-card-footer"], [1, "pending-badge"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-circle-check"], ["class", "eval-stat-value error", 4, "ngIf"], ["class", "eval-stat-value timeout", 4, "ngIf"], [1, "eval-stat-value", "error"], [1, "eval-stat-value", "timeout"], [1, "needs-review-section"], [1, "needs-review-header"], [1, "fa-solid", "fa-user-clock"], [1, "review-count"], [1, "needs-review-list"], ["class", "review-item", 3, "high-priority", "medium-priority", "click", 4, "ngFor", "ngForOf"], ["class", "review-more", 4, "ngIf"], [1, "review-item", 3, "click"], [1, "review-item-icon"], ["class", "fa-solid fa-exclamation-triangle", 4, "ngIf"], ["class", "fa-solid fa-circle-dot", 4, "ngIf"], ["class", "fa-solid fa-clock", 4, "ngIf"], [1, "review-item-content"], [1, "review-item-name"], [1, "review-item-reason"], [1, "review-item-action"], [1, "fa-solid", "fa-chevron-right"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-circle-dot"], [1, "review-more"], [1, "progress-section"], [1, "progress-info"], [1, "fas", "fa-circle-notch", "fa-spin"], [1, "auto-refresh-notice"], [1, "fas", "fa-sync"], [1, "runs-tab"], ["class", "runs-toolbar", 4, "ngIf"], ["class", "loading-state", 4, "ngIf"], ["class", "test-runs-list", 4, "ngIf"], ["class", "empty-state", 4, "ngIf"], [1, "runs-toolbar"], [1, "run-filters"], [1, "filter-btn", 3, "click"], ["class", "filter-btn passed", 3, "active", "click", 4, "ngIf"], ["class", "filter-btn failed", 3, "active", "click", 4, "ngIf"], ["class", "filter-btn error", 3, "active", "click", 4, "ngIf"], [1, "runs-actions"], ["kendoButton", "", 3, "click"], [1, "fas", "fa-download"], [1, "filter-btn", "passed", 3, "click"], [1, "fas", "fa-check"], [1, "filter-btn", "failed", 3, "click"], [1, "filter-btn", "error", 3, "click"], [1, "fas", "fa-exclamation"], [1, "loading-state"], [1, "skeleton-list"], ["class", "skeleton-card", 4, "ngFor", "ngForOf"], [1, "skeleton-card"], [1, "skeleton-sequence"], [1, "skeleton-icon"], [1, "skeleton-content"], [1, "skeleton-line", "wide"], [1, "skeleton-line", "narrow"], [1, "test-runs-list"], ["class", "test-run-card", 4, "ngFor", "ngForOf"], [1, "test-run-card"], [1, "test-run-item", 3, "click"], [1, "run-sequence"], [1, "run-icon"], [1, "run-content"], [1, "run-header-row"], [1, "run-name"], [3, "executionStatus", "originalStatus", "autoScore", "humanRating", "humanIsCorrect", "hasHumanFeedback", "preferences", "mode"], [1, "run-meta"], ["class", "run-duration", 4, "ngIf"], ["class", "run-cost", 4, "ngIf"], [3, "entityName", "recordId", 4, "ngIf"], ["class", "run-tags", 4, "ngIf"], [1, "run-expand"], [1, "fas"], ["class", "inline-feedback", 4, "ngIf"], [1, "run-duration"], [1, "run-cost"], [3, "entityName", "recordId"], [1, "run-tags"], ["class", "tag-chip", 4, "ngFor", "ngForOf"], [1, "tag-chip"], [1, "inline-feedback"], [1, "feedback-divider"], [1, "feedback-section"], [1, "feedback-label"], [1, "inline-rating"], [1, "rating-numbers"], ["type", "button", "class", "rating-btn", 3, "selected", "hover", "low", "mid", "high", "click", "mouseenter", "mouseleave", 4, "ngFor", "ngForOf"], ["class", "rating-info", 4, "ngIf"], [1, "correctness-row"], [1, "correctness-label"], [1, "correctness-options"], [1, "radio-opt", 3, "click"], ["type", "radio", 3, "ngModelChange", "name", "value", "ngModel"], [1, "comments-row", 3, "click"], ["placeholder", "Add comments or corrections...", "rows", "3", 1, "feedback-textarea", 3, "ngModelChange", "ngModel"], [1, "feedback-actions", 3, "click"], [1, "fas", "fa-external-link-alt"], ["type", "button", 1, "rating-btn", 3, "click", "mouseenter", "mouseleave"], [1, "rating-info"], [1, "rating-value"], [1, "rating-label-text"], [1, "empty-state"], [1, "empty-icon"], [1, "fas", "fa-inbox"], [1, "fas", "fa-filter"], [1, "details-tab"], [1, "details-card"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value", "monospace"], [1, "detail-value"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "status-inline", 3, "ngClass"], [1, "analytics-tab"], ["class", "analytics-loading", 4, "ngIf"], ["class", "analytics-section", 4, "ngIf"], [1, "analytics-loading"], [1, "analytics-section"], [1, "fas", "fa-chart-pie"], [1, "stats-grid"], [1, "stat-card"], [1, "stat-icon", "passed"], [1, "stat-content"], [1, "stat-percent"], [1, "stat-icon", "failed"], [1, "stat-icon", "score"], [1, "fas", "fa-star"], [1, "stat-icon", "duration"], [1, "stat-icon", "cost"], [1, "analytics-header"], [1, "fas", "fa-table"], [1, "analytics-legend"], [1, "legend-item", "passed"], [1, "legend-item", "failed"], [1, "legend-item", "error"], [1, "legend-item", "skipped"], [1, "results-table-wrapper"], [1, "results-table"], [1, "seq-col"], [1, "name-col"], ["class", "status-col", 4, "ngIf"], ["class", "score-col", 4, "ngIf"], ["class", "feedback-col", 4, "ngIf"], [1, "duration-col"], [1, "cost-col"], ["class", "result-row", 3, "row-passed", "row-failed", "row-error", "row-skipped", "click", 4, "ngFor", "ngForOf"], [1, "status-col"], [1, "score-col"], [1, "feedback-col"], [1, "result-row", 3, "click"], [1, "test-name-wrapper"], [1, "test-name"], ["class", "test-tags", 4, "ngIf"], ["class", "na-value", 4, "ngIf"], [1, "test-tags"], ["class", "tag-mini", 4, "ngFor", "ngForOf"], [1, "tag-mini"], ["class", "score-display", 4, "ngIf"], [1, "score-display"], [1, "score-bar-mini"], [1, "score-fill"], [1, "score-text"], [1, "na-value"], ["class", "feedback-display", 4, "ngIf"], ["class", "na-value needs-review", 4, "ngIf"], [1, "feedback-display"], [1, "feedback-rating"], ["class", "feedback-correctness", 4, "ngIf"], [1, "feedback-correctness"], [1, "na-value", "needs-review"], [1, "fas", "fa-user-clock"], [1, "execution-tab"], [3, "machineName", "machineId", "runByUserName", "runByUserEmail", "runContextDetailsJson"], [1, "keyboard-shortcuts"], [1, "shortcuts-header"], ["title", "Hide shortcuts", 1, "shortcuts-close", 3, "click"], [1, "shortcut-list"], [1, "shortcut-item"], [1, "shortcut-keys"]], template: function TestSuiteRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
2048
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
2049
|
-
i0.ɵɵ
|
|
2050
|
-
i0.ɵɵ
|
|
2051
|
-
i0.ɵɵ
|
|
2080
|
+
i0.ɵɵlistener("keydown", function TestSuiteRunFormComponentExtended_keydown_HostBindingHandler($event) { return ctx.handleKeyboardShortcut($event); }, i0.ɵɵresolveDocument);
|
|
2081
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 137, vars: 48, consts: [["kendoDialogContainer", "", 1, "test-suite-run-form"], [1, "suite-run-header"], ["aria-label", "Breadcrumb", 1, "breadcrumb"], ["href", "javascript:void(0)", 3, "click"], [1, "fas", "fa-vial"], [1, "breadcrumb-text"], [1, "current"], [1, "fas", "fa-chevron-right", "separator"], [1, "header-content"], [1, "header-left"], [1, "suite-run-icon"], [1, "fas", 3, "ngClass"], [1, "suite-run-info"], [1, "suite-run-meta"], [1, "status-badge", 3, "ngClass"], [1, "meta-tag", "environment"], [1, "meta-tag", "trigger"], [1, "header-actions"], ["kendoButton", "", "themeColor", "primary"], ["kendoButton", "", 3, "click", "disabled"], [1, "metrics-bar"], [1, "metric-card"], [1, "metric-icon"], [1, "fas", "fa-clock"], [1, "metric-content"], [1, "metric-value"], [1, "metric-label"], [1, "fas", "fa-percentage"], [1, "fas", "fa-dollar-sign"], [1, "fas", "fa-calendar"], [1, "results-summary"], [1, "result-item", "passed"], [1, "result-icon"], [1, "fas", "fa-check-circle"], [1, "result-content"], [1, "result-count"], [1, "result-label"], [1, "result-item", "failed"], [1, "fas", "fa-times-circle"], [1, "result-item", "error"], [1, "fas", "fa-exclamation-circle"], [1, "result-item", "skipped"], [1, "fas", "fa-forward"], [1, "result-item", "total"], [1, "fas", "fa-list"], [1, "tags-bar"], [1, "tags-editor-panel"], [1, "tabs-container"], ["role", "tablist", 1, "tabs"], ["role", "tab", 1, "tab", 3, "click"], [1, "fas", "fa-th-large"], [1, "tab-badge"], [1, "fas", "fa-info-circle"], ["role", "tab", "title", "Press 4", 1, "tab", 3, "click"], [1, "fas", "fa-chart-bar"], ["role", "tab", "title", "Press 5", 1, "tab", 3, "click"], [1, "fas", "fa-microchip"], [1, "tab-content"], [1, "overview-tab"], [1, "runs-tab"], [1, "details-tab"], [1, "analytics-tab"], [1, "execution-tab"], [1, "shortcuts-toggle", 3, "click", "title"], [1, "fas", "fa-keyboard"], [1, "keyboard-shortcuts"], [1, "fas", "fa-layer-group"], [1, "fas", "fa-server"], [1, "fas", "fa-bolt"], ["kendoButton", "", "themeColor", "primary", 3, "click"], [1, "fas", "fa-play"], [1, "tags-bar-content"], [1, "tags-bar-label"], [1, "fas", "fa-tags"], [1, "tags-bar-chips"], [1, "tags-bar-empty"], ["title", "Edit tags", 1, "tags-bar-edit", 3, "click"], [1, "fas", "fa-plus"], [1, "tag-inline"], [1, "tags-editor-header"], [1, "tags-editor-title"], [1, "tags-editor-body"], [1, "tags-editor-chips"], [1, "tag-editable"], [1, "tags-empty-hint"], [1, "tags-editor-input"], ["type", "text", "placeholder", "Type a tag and press Enter...", 1, "tag-text-input", 3, "ngModelChange", "keyup.enter", "ngModel"], ["kendoButton", "", "fillMode", "flat", 3, "click", "disabled"], [1, "tags-editor-footer"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "fas", "fa-spinner", "fa-spin"], ["kendoButton", "", "fillMode", "flat", 3, "click"], ["title", "Remove tag", 1, "tag-remove-btn", 3, "click"], [1, "fas", "fa-times"], [1, "result-hero"], [1, "result-hero-icon"], [1, "result-hero-text"], [1, "result-hero-stats"], [1, "stat-item"], [1, "stat-value"], [1, "stat-label"], [1, "stat-divider"], [1, "evaluation-summary"], [1, "needs-review-section"], [1, "progress-section"], [1, "eval-summary-grid"], [1, "eval-summary-card"], [1, "eval-card-header"], [1, "fa-solid", "fa-user"], [1, "eval-card-body"], [1, "eval-stat-row"], [1, "eval-stat-label"], [1, "eval-stat-value"], [1, "eval-card-footer"], [1, "eval-stat-value", "correct"], [1, "eval-stat-value", "incorrect"], [1, "pending-badge"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-circle-check"], [1, "eval-stat-value", "error"], [1, "eval-stat-value", "timeout"], [1, "needs-review-header"], [1, "fa-solid", "fa-user-clock"], [1, "review-count"], [1, "needs-review-list"], [1, "review-item", 3, "high-priority", "medium-priority"], [1, "review-more"], [1, "review-item", 3, "click"], [1, "review-item-icon"], [1, "fa-solid", "fa-exclamation-triangle"], [1, "fa-solid", "fa-circle-dot"], [1, "review-item-content"], [1, "review-item-name"], [1, "review-item-reason"], [1, "review-item-action"], [1, "fa-solid", "fa-chevron-right"], [1, "progress-info"], [1, "fas", "fa-circle-notch", "fa-spin"], [1, "auto-refresh-notice"], [1, "fas", "fa-sync"], [1, "runs-toolbar"], [1, "loading-state"], [1, "test-runs-list"], [1, "empty-state"], [1, "run-filters"], [1, "filter-btn", 3, "click"], [1, "filter-btn", "passed", 3, "active"], [1, "filter-btn", "failed", 3, "active"], [1, "filter-btn", "error", 3, "active"], [1, "runs-actions"], ["kendoButton", "", 3, "click"], [1, "fas", "fa-download"], [1, "filter-btn", "passed", 3, "click"], [1, "fas", "fa-check"], [1, "filter-btn", "failed", 3, "click"], [1, "filter-btn", "error", 3, "click"], [1, "fas", "fa-exclamation"], [1, "skeleton-list"], [1, "skeleton-card"], [1, "skeleton-sequence"], [1, "skeleton-icon"], [1, "skeleton-content"], [1, "skeleton-line", "wide"], [1, "skeleton-line", "narrow"], [1, "test-run-card"], [1, "test-run-item", 3, "click"], [1, "run-sequence"], [1, "run-icon"], [1, "run-content"], [1, "run-header-row"], [1, "run-name"], [3, "executionStatus", "originalStatus", "autoScore", "humanRating", "humanIsCorrect", "hasHumanFeedback", "preferences", "mode"], [1, "run-meta"], [1, "run-duration"], [1, "run-cost"], [3, "entityName", "recordId"], [1, "run-tags"], [1, "run-expand"], [1, "fas"], [1, "inline-feedback"], [1, "tag-chip"], [1, "feedback-divider"], [1, "feedback-section"], [1, "feedback-label"], [1, "inline-rating"], [1, "rating-numbers"], ["type", "button", 1, "rating-btn", 3, "selected", "hover", "low", "mid", "high"], [1, "rating-info"], [1, "correctness-row"], [1, "correctness-label"], [1, "correctness-options"], [1, "radio-opt", 3, "click"], ["type", "radio", 3, "ngModelChange", "name", "value", "ngModel"], [1, "comments-row", 3, "click"], ["placeholder", "Add comments or corrections...", "rows", "3", 1, "feedback-textarea", 3, "ngModelChange", "ngModel"], [1, "feedback-actions", 3, "click"], [1, "fas", "fa-external-link-alt"], ["type", "button", 1, "rating-btn", 3, "click", "mouseenter", "mouseleave"], [1, "rating-value"], [1, "rating-label-text"], [1, "empty-icon"], [1, "fas", "fa-inbox"], [1, "fas", "fa-filter"], [1, "details-card"], [1, "details-grid"], [1, "detail-item"], [1, "detail-label"], [1, "detail-value", "monospace"], [1, "detail-value"], ["href", "javascript:void(0)"], [1, "status-inline", 3, "ngClass"], [1, "analytics-loading"], [1, "analytics-section"], [1, "fas", "fa-chart-pie"], [1, "stats-grid"], [1, "stat-card"], [1, "stat-icon", "passed"], [1, "stat-content"], [1, "stat-percent"], [1, "stat-icon", "failed"], [1, "stat-icon", "score"], [1, "fas", "fa-star"], [1, "stat-icon", "duration"], [1, "stat-icon", "cost"], [1, "analytics-header"], [1, "fas", "fa-table"], [1, "analytics-legend"], [1, "legend-item", "passed"], [1, "legend-item", "failed"], [1, "legend-item", "error"], [1, "legend-item", "skipped"], [1, "results-table-wrapper"], [1, "results-table"], [1, "seq-col"], [1, "name-col"], [1, "status-col"], [1, "score-col"], [1, "feedback-col"], [1, "duration-col"], [1, "cost-col"], [1, "result-row", 3, "row-passed", "row-failed", "row-error", "row-skipped"], [1, "result-row", 3, "click"], [1, "test-name-wrapper"], [1, "test-name"], [1, "test-tags"], [1, "na-value"], [1, "tag-mini"], [1, "score-display"], [1, "score-bar-mini"], [1, "score-fill"], [1, "score-text"], [1, "feedback-display"], [1, "na-value", "needs-review"], [1, "feedback-rating"], [1, "feedback-correctness"], [1, "fas", "fa-user-clock"], [3, "machineName", "machineId", "runByUserName", "runByUserEmail", "runContextDetailsJson"], [1, "shortcuts-header"], ["title", "Hide shortcuts", 1, "shortcuts-close", 3, "click"], [1, "shortcut-list"], [1, "shortcut-item"], [1, "shortcut-keys"]], template: function TestSuiteRunFormComponentExtended_Template(rf, ctx) { if (rf & 1) {
|
|
2082
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "nav", 2)(3, "ol")(4, "li")(5, "a", 3);
|
|
2083
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_a_click_5_listener() { return ctx.navigateToTestingDashboard(); });
|
|
2084
|
+
i0.ɵɵelement(6, "i", 4);
|
|
2085
|
+
i0.ɵɵelementStart(7, "span", 5);
|
|
2086
|
+
i0.ɵɵtext(8, "Testing");
|
|
2087
|
+
i0.ɵɵelementEnd()()();
|
|
2088
|
+
i0.ɵɵconditionalCreate(9, TestSuiteRunFormComponentExtended_Conditional_9_Template, 6, 1, "li");
|
|
2089
|
+
i0.ɵɵelementStart(10, "li", 6);
|
|
2090
|
+
i0.ɵɵelement(11, "i", 7);
|
|
2091
|
+
i0.ɵɵelementStart(12, "span");
|
|
2092
|
+
i0.ɵɵtext(13);
|
|
2093
|
+
i0.ɵɵelementEnd()()()();
|
|
2094
|
+
i0.ɵɵelementStart(14, "div", 8)(15, "div", 9)(16, "div", 10);
|
|
2095
|
+
i0.ɵɵelement(17, "i", 11);
|
|
2052
2096
|
i0.ɵɵelementEnd();
|
|
2053
|
-
i0.ɵɵelementStart(
|
|
2054
|
-
i0.ɵɵtext(
|
|
2097
|
+
i0.ɵɵelementStart(18, "div", 12)(19, "h1");
|
|
2098
|
+
i0.ɵɵtext(20, "Suite Run");
|
|
2055
2099
|
i0.ɵɵelementEnd();
|
|
2056
|
-
i0.ɵɵelementStart(
|
|
2057
|
-
i0.ɵɵelement(
|
|
2058
|
-
i0.ɵɵtext(
|
|
2100
|
+
i0.ɵɵelementStart(21, "div", 13)(22, "span", 14);
|
|
2101
|
+
i0.ɵɵelement(23, "i", 11);
|
|
2102
|
+
i0.ɵɵtext(24);
|
|
2059
2103
|
i0.ɵɵelementEnd();
|
|
2060
|
-
i0.ɵɵ
|
|
2104
|
+
i0.ɵɵconditionalCreate(25, TestSuiteRunFormComponentExtended_Conditional_25_Template, 3, 1, "span", 15);
|
|
2105
|
+
i0.ɵɵconditionalCreate(26, TestSuiteRunFormComponentExtended_Conditional_26_Template, 3, 1, "span", 16);
|
|
2061
2106
|
i0.ɵɵelementEnd()()();
|
|
2062
|
-
i0.ɵɵelementStart(
|
|
2063
|
-
i0.ɵɵelement(
|
|
2064
|
-
i0.ɵɵ
|
|
2065
|
-
i0.ɵɵelementStart(
|
|
2066
|
-
i0.ɵɵlistener("click", function
|
|
2067
|
-
i0.ɵɵelement(
|
|
2068
|
-
i0.ɵɵtext(
|
|
2107
|
+
i0.ɵɵelementStart(27, "div", 17);
|
|
2108
|
+
i0.ɵɵelement(28, "app-evaluation-mode-toggle");
|
|
2109
|
+
i0.ɵɵconditionalCreate(29, TestSuiteRunFormComponentExtended_Conditional_29_Template, 3, 0, "button", 18);
|
|
2110
|
+
i0.ɵɵelementStart(30, "button", 19);
|
|
2111
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_30_listener() { return ctx.refresh(); });
|
|
2112
|
+
i0.ɵɵelement(31, "i", 11);
|
|
2113
|
+
i0.ɵɵtext(32);
|
|
2069
2114
|
i0.ɵɵelementEnd()()();
|
|
2070
|
-
i0.ɵɵelementStart(
|
|
2071
|
-
i0.ɵɵelement(
|
|
2115
|
+
i0.ɵɵelementStart(33, "div", 20)(34, "div", 21)(35, "div", 22);
|
|
2116
|
+
i0.ɵɵelement(36, "i", 23);
|
|
2072
2117
|
i0.ɵɵelementEnd();
|
|
2073
|
-
i0.ɵɵelementStart(
|
|
2074
|
-
i0.ɵɵtext(
|
|
2118
|
+
i0.ɵɵelementStart(37, "div", 24)(38, "div", 25);
|
|
2119
|
+
i0.ɵɵtext(39);
|
|
2075
2120
|
i0.ɵɵelementEnd();
|
|
2076
|
-
i0.ɵɵelementStart(
|
|
2077
|
-
i0.ɵɵtext(
|
|
2121
|
+
i0.ɵɵelementStart(40, "div", 26);
|
|
2122
|
+
i0.ɵɵtext(41, "Duration");
|
|
2078
2123
|
i0.ɵɵelementEnd()()();
|
|
2079
|
-
i0.ɵɵelementStart(
|
|
2080
|
-
i0.ɵɵelement(
|
|
2124
|
+
i0.ɵɵelementStart(42, "div", 21)(43, "div", 22);
|
|
2125
|
+
i0.ɵɵelement(44, "i", 27);
|
|
2081
2126
|
i0.ɵɵelementEnd();
|
|
2082
|
-
i0.ɵɵelementStart(
|
|
2083
|
-
i0.ɵɵtext(
|
|
2127
|
+
i0.ɵɵelementStart(45, "div", 24)(46, "div", 25);
|
|
2128
|
+
i0.ɵɵtext(47);
|
|
2084
2129
|
i0.ɵɵelementEnd();
|
|
2085
|
-
i0.ɵɵelementStart(
|
|
2086
|
-
i0.ɵɵtext(
|
|
2130
|
+
i0.ɵɵelementStart(48, "div", 26);
|
|
2131
|
+
i0.ɵɵtext(49, "Pass Rate");
|
|
2087
2132
|
i0.ɵɵelementEnd()()();
|
|
2088
|
-
i0.ɵɵelementStart(
|
|
2089
|
-
i0.ɵɵelement(
|
|
2133
|
+
i0.ɵɵelementStart(50, "div", 21)(51, "div", 22);
|
|
2134
|
+
i0.ɵɵelement(52, "i", 28);
|
|
2090
2135
|
i0.ɵɵelementEnd();
|
|
2091
|
-
i0.ɵɵelementStart(
|
|
2092
|
-
i0.ɵɵtext(
|
|
2136
|
+
i0.ɵɵelementStart(53, "div", 24)(54, "div", 25);
|
|
2137
|
+
i0.ɵɵtext(55);
|
|
2093
2138
|
i0.ɵɵelementEnd();
|
|
2094
|
-
i0.ɵɵelementStart(
|
|
2095
|
-
i0.ɵɵtext(
|
|
2139
|
+
i0.ɵɵelementStart(56, "div", 26);
|
|
2140
|
+
i0.ɵɵtext(57, "Total Cost");
|
|
2096
2141
|
i0.ɵɵelementEnd()()();
|
|
2097
|
-
i0.ɵɵelementStart(
|
|
2098
|
-
i0.ɵɵelement(
|
|
2142
|
+
i0.ɵɵelementStart(58, "div", 21)(59, "div", 22);
|
|
2143
|
+
i0.ɵɵelement(60, "i", 29);
|
|
2099
2144
|
i0.ɵɵelementEnd();
|
|
2100
|
-
i0.ɵɵelementStart(
|
|
2101
|
-
i0.ɵɵtext(
|
|
2145
|
+
i0.ɵɵelementStart(61, "div", 24)(62, "div", 25);
|
|
2146
|
+
i0.ɵɵtext(63);
|
|
2102
2147
|
i0.ɵɵelementEnd();
|
|
2103
|
-
i0.ɵɵelementStart(
|
|
2104
|
-
i0.ɵɵtext(
|
|
2148
|
+
i0.ɵɵelementStart(64, "div", 26);
|
|
2149
|
+
i0.ɵɵtext(65, "Started");
|
|
2105
2150
|
i0.ɵɵelementEnd()()()();
|
|
2106
|
-
i0.ɵɵelementStart(
|
|
2107
|
-
i0.ɵɵelement(
|
|
2151
|
+
i0.ɵɵelementStart(66, "div", 30)(67, "div", 31)(68, "div", 32);
|
|
2152
|
+
i0.ɵɵelement(69, "i", 33);
|
|
2108
2153
|
i0.ɵɵelementEnd();
|
|
2109
|
-
i0.ɵɵelementStart(
|
|
2110
|
-
i0.ɵɵtext(
|
|
2154
|
+
i0.ɵɵelementStart(70, "div", 34)(71, "span", 35);
|
|
2155
|
+
i0.ɵɵtext(72);
|
|
2111
2156
|
i0.ɵɵelementEnd();
|
|
2112
|
-
i0.ɵɵelementStart(
|
|
2113
|
-
i0.ɵɵtext(
|
|
2157
|
+
i0.ɵɵelementStart(73, "span", 36);
|
|
2158
|
+
i0.ɵɵtext(74, "Passed");
|
|
2114
2159
|
i0.ɵɵelementEnd()()();
|
|
2115
|
-
i0.ɵɵelementStart(
|
|
2116
|
-
i0.ɵɵelement(
|
|
2160
|
+
i0.ɵɵelementStart(75, "div", 37)(76, "div", 32);
|
|
2161
|
+
i0.ɵɵelement(77, "i", 38);
|
|
2117
2162
|
i0.ɵɵelementEnd();
|
|
2118
|
-
i0.ɵɵelementStart(
|
|
2119
|
-
i0.ɵɵtext(
|
|
2163
|
+
i0.ɵɵelementStart(78, "div", 34)(79, "span", 35);
|
|
2164
|
+
i0.ɵɵtext(80);
|
|
2120
2165
|
i0.ɵɵelementEnd();
|
|
2121
|
-
i0.ɵɵelementStart(
|
|
2122
|
-
i0.ɵɵtext(
|
|
2166
|
+
i0.ɵɵelementStart(81, "span", 36);
|
|
2167
|
+
i0.ɵɵtext(82, "Failed");
|
|
2123
2168
|
i0.ɵɵelementEnd()()();
|
|
2124
|
-
i0.ɵɵelementStart(
|
|
2125
|
-
i0.ɵɵelement(
|
|
2169
|
+
i0.ɵɵelementStart(83, "div", 39)(84, "div", 32);
|
|
2170
|
+
i0.ɵɵelement(85, "i", 40);
|
|
2126
2171
|
i0.ɵɵelementEnd();
|
|
2127
|
-
i0.ɵɵelementStart(
|
|
2128
|
-
i0.ɵɵtext(
|
|
2172
|
+
i0.ɵɵelementStart(86, "div", 34)(87, "span", 35);
|
|
2173
|
+
i0.ɵɵtext(88);
|
|
2129
2174
|
i0.ɵɵelementEnd();
|
|
2130
|
-
i0.ɵɵelementStart(
|
|
2131
|
-
i0.ɵɵtext(
|
|
2175
|
+
i0.ɵɵelementStart(89, "span", 36);
|
|
2176
|
+
i0.ɵɵtext(90, "Errors");
|
|
2132
2177
|
i0.ɵɵelementEnd()()();
|
|
2133
|
-
i0.ɵɵelementStart(
|
|
2134
|
-
i0.ɵɵelement(
|
|
2178
|
+
i0.ɵɵelementStart(91, "div", 41)(92, "div", 32);
|
|
2179
|
+
i0.ɵɵelement(93, "i", 42);
|
|
2135
2180
|
i0.ɵɵelementEnd();
|
|
2136
|
-
i0.ɵɵelementStart(
|
|
2137
|
-
i0.ɵɵtext(
|
|
2181
|
+
i0.ɵɵelementStart(94, "div", 34)(95, "span", 35);
|
|
2182
|
+
i0.ɵɵtext(96);
|
|
2138
2183
|
i0.ɵɵelementEnd();
|
|
2139
|
-
i0.ɵɵelementStart(
|
|
2140
|
-
i0.ɵɵtext(
|
|
2184
|
+
i0.ɵɵelementStart(97, "span", 36);
|
|
2185
|
+
i0.ɵɵtext(98, "Skipped");
|
|
2141
2186
|
i0.ɵɵelementEnd()()();
|
|
2142
|
-
i0.ɵɵelementStart(
|
|
2143
|
-
i0.ɵɵelement(
|
|
2187
|
+
i0.ɵɵelementStart(99, "div", 43)(100, "div", 32);
|
|
2188
|
+
i0.ɵɵelement(101, "i", 44);
|
|
2144
2189
|
i0.ɵɵelementEnd();
|
|
2145
|
-
i0.ɵɵelementStart(
|
|
2146
|
-
i0.ɵɵtext(
|
|
2190
|
+
i0.ɵɵelementStart(102, "div", 34)(103, "span", 35);
|
|
2191
|
+
i0.ɵɵtext(104);
|
|
2147
2192
|
i0.ɵɵelementEnd();
|
|
2148
|
-
i0.ɵɵelementStart(
|
|
2149
|
-
i0.ɵɵtext(
|
|
2193
|
+
i0.ɵɵelementStart(105, "span", 36);
|
|
2194
|
+
i0.ɵɵtext(106, "Total");
|
|
2150
2195
|
i0.ɵɵelementEnd()()()();
|
|
2151
|
-
i0.ɵɵ
|
|
2196
|
+
i0.ɵɵconditionalCreate(107, TestSuiteRunFormComponentExtended_Conditional_107_Template, 9, 2, "div", 45);
|
|
2197
|
+
i0.ɵɵconditionalCreate(108, TestSuiteRunFormComponentExtended_Conditional_108_Template, 20, 6, "div", 46);
|
|
2152
2198
|
i0.ɵɵelementEnd();
|
|
2153
|
-
i0.ɵɵelementStart(
|
|
2154
|
-
i0.ɵɵlistener("click", function
|
|
2155
|
-
i0.ɵɵelement(
|
|
2156
|
-
i0.ɵɵtext(
|
|
2199
|
+
i0.ɵɵelementStart(109, "div", 47)(110, "div", 48)(111, "button", 49);
|
|
2200
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_111_listener() { return ctx.changeTab("overview"); });
|
|
2201
|
+
i0.ɵɵelement(112, "i", 50);
|
|
2202
|
+
i0.ɵɵtext(113, " Overview ");
|
|
2157
2203
|
i0.ɵɵelementEnd();
|
|
2158
|
-
i0.ɵɵelementStart(
|
|
2159
|
-
i0.ɵɵlistener("click", function
|
|
2160
|
-
i0.ɵɵelement(
|
|
2161
|
-
i0.ɵɵtext(
|
|
2162
|
-
i0.ɵɵ
|
|
2204
|
+
i0.ɵɵelementStart(114, "button", 49);
|
|
2205
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_114_listener() { return ctx.changeTab("runs"); });
|
|
2206
|
+
i0.ɵɵelement(115, "i", 44);
|
|
2207
|
+
i0.ɵɵtext(116, " Test Runs ");
|
|
2208
|
+
i0.ɵɵconditionalCreate(117, TestSuiteRunFormComponentExtended_Conditional_117_Template, 2, 1, "span", 51);
|
|
2163
2209
|
i0.ɵɵelementEnd();
|
|
2164
|
-
i0.ɵɵelementStart(
|
|
2165
|
-
i0.ɵɵlistener("click", function
|
|
2166
|
-
i0.ɵɵelement(
|
|
2167
|
-
i0.ɵɵtext(
|
|
2210
|
+
i0.ɵɵelementStart(118, "button", 49);
|
|
2211
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_118_listener() { return ctx.changeTab("details"); });
|
|
2212
|
+
i0.ɵɵelement(119, "i", 52);
|
|
2213
|
+
i0.ɵɵtext(120, " Details ");
|
|
2168
2214
|
i0.ɵɵelementEnd();
|
|
2169
|
-
i0.ɵɵelementStart(
|
|
2170
|
-
i0.ɵɵlistener("click", function
|
|
2171
|
-
i0.ɵɵelement(
|
|
2172
|
-
i0.ɵɵtext(
|
|
2215
|
+
i0.ɵɵelementStart(121, "button", 53);
|
|
2216
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_121_listener() { return ctx.changeTab("analytics"); });
|
|
2217
|
+
i0.ɵɵelement(122, "i", 54);
|
|
2218
|
+
i0.ɵɵtext(123, " Analytics ");
|
|
2173
2219
|
i0.ɵɵelementEnd();
|
|
2174
|
-
i0.ɵɵelementStart(
|
|
2175
|
-
i0.ɵɵlistener("click", function
|
|
2176
|
-
i0.ɵɵelement(
|
|
2177
|
-
i0.ɵɵelementStart(
|
|
2178
|
-
i0.ɵɵtext(
|
|
2220
|
+
i0.ɵɵelementStart(124, "button", 55);
|
|
2221
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_124_listener() { return ctx.changeTab("execution"); });
|
|
2222
|
+
i0.ɵɵelement(125, "i", 56);
|
|
2223
|
+
i0.ɵɵelementStart(126, "span");
|
|
2224
|
+
i0.ɵɵtext(127, "Execution");
|
|
2179
2225
|
i0.ɵɵelementEnd()()()();
|
|
2180
|
-
i0.ɵɵelementStart(
|
|
2181
|
-
i0.ɵɵ
|
|
2226
|
+
i0.ɵɵelementStart(128, "div", 57);
|
|
2227
|
+
i0.ɵɵconditionalCreate(129, TestSuiteRunFormComponentExtended_Conditional_129_Template, 22, 16, "div", 58);
|
|
2228
|
+
i0.ɵɵconditionalCreate(130, TestSuiteRunFormComponentExtended_Conditional_130_Template, 6, 5, "div", 59);
|
|
2229
|
+
i0.ɵɵconditionalCreate(131, TestSuiteRunFormComponentExtended_Conditional_131_Template, 60, 18, "div", 60);
|
|
2230
|
+
i0.ɵɵconditionalCreate(132, TestSuiteRunFormComponentExtended_Conditional_132_Template, 5, 4, "div", 61);
|
|
2231
|
+
i0.ɵɵconditionalCreate(133, TestSuiteRunFormComponentExtended_Conditional_133_Template, 2, 5, "div", 62);
|
|
2182
2232
|
i0.ɵɵelementEnd();
|
|
2183
|
-
i0.ɵɵelementStart(
|
|
2184
|
-
i0.ɵɵlistener("click", function
|
|
2185
|
-
i0.ɵɵelement(
|
|
2233
|
+
i0.ɵɵelementStart(134, "button", 63);
|
|
2234
|
+
i0.ɵɵlistener("click", function TestSuiteRunFormComponentExtended_Template_button_click_134_listener() { return ctx.toggleShortcuts(); });
|
|
2235
|
+
i0.ɵɵelement(135, "i", 64);
|
|
2186
2236
|
i0.ɵɵelementEnd();
|
|
2187
|
-
i0.ɵɵ
|
|
2237
|
+
i0.ɵɵconditionalCreate(136, TestSuiteRunFormComponentExtended_Conditional_136_Template, 34, 0, "div", 65);
|
|
2188
2238
|
i0.ɵɵelementEnd();
|
|
2189
2239
|
} if (rf & 2) {
|
|
2190
|
-
i0.ɵɵadvance(
|
|
2191
|
-
i0.ɵɵ
|
|
2240
|
+
i0.ɵɵadvance(9);
|
|
2241
|
+
i0.ɵɵconditional(ctx.testSuite ? 9 : -1);
|
|
2242
|
+
i0.ɵɵadvance(4);
|
|
2243
|
+
i0.ɵɵtextInterpolate1("Run #", ctx.record.ID.substring(0, 8));
|
|
2192
2244
|
i0.ɵɵadvance(3);
|
|
2193
2245
|
i0.ɵɵstyleProp("background-color", ctx.getStatusColor());
|
|
2194
2246
|
i0.ɵɵadvance();
|
|
@@ -2200,11 +2252,11 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
|
|
|
2200
2252
|
i0.ɵɵadvance();
|
|
2201
2253
|
i0.ɵɵtextInterpolate1(" ", ctx.record.Status, " ");
|
|
2202
2254
|
i0.ɵɵadvance();
|
|
2203
|
-
i0.ɵɵ
|
|
2255
|
+
i0.ɵɵconditional(ctx.record.Environment ? 25 : -1);
|
|
2204
2256
|
i0.ɵɵadvance();
|
|
2205
|
-
i0.ɵɵ
|
|
2257
|
+
i0.ɵɵconditional(ctx.record.TriggerType ? 26 : -1);
|
|
2206
2258
|
i0.ɵɵadvance(3);
|
|
2207
|
-
i0.ɵɵ
|
|
2259
|
+
i0.ɵɵconditional(ctx.record.SuiteID ? 29 : -1);
|
|
2208
2260
|
i0.ɵɵadvance();
|
|
2209
2261
|
i0.ɵɵproperty("disabled", ctx.isRefreshing);
|
|
2210
2262
|
i0.ɵɵadvance();
|
|
@@ -2230,9 +2282,9 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
|
|
|
2230
2282
|
i0.ɵɵadvance(8);
|
|
2231
2283
|
i0.ɵɵtextInterpolate(ctx.record.TotalTests || 0);
|
|
2232
2284
|
i0.ɵɵadvance(3);
|
|
2233
|
-
i0.ɵɵ
|
|
2285
|
+
i0.ɵɵconditional(!ctx.editingTags ? 107 : -1);
|
|
2234
2286
|
i0.ɵɵadvance();
|
|
2235
|
-
i0.ɵɵ
|
|
2287
|
+
i0.ɵɵconditional(ctx.editingTags ? 108 : -1);
|
|
2236
2288
|
i0.ɵɵadvance(3);
|
|
2237
2289
|
i0.ɵɵclassProp("active", ctx.activeTab === "overview");
|
|
2238
2290
|
i0.ɵɵattribute("aria-selected", ctx.activeTab === "overview");
|
|
@@ -2240,7 +2292,7 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
|
|
|
2240
2292
|
i0.ɵɵclassProp("active", ctx.activeTab === "runs");
|
|
2241
2293
|
i0.ɵɵattribute("aria-selected", ctx.activeTab === "runs");
|
|
2242
2294
|
i0.ɵɵadvance(3);
|
|
2243
|
-
i0.ɵɵ
|
|
2295
|
+
i0.ɵɵconditional(ctx.testRunsLoaded ? 117 : -1);
|
|
2244
2296
|
i0.ɵɵadvance();
|
|
2245
2297
|
i0.ɵɵclassProp("active", ctx.activeTab === "details");
|
|
2246
2298
|
i0.ɵɵattribute("aria-selected", ctx.activeTab === "details");
|
|
@@ -2251,20 +2303,20 @@ let TestSuiteRunFormComponentExtended = class TestSuiteRunFormComponentExtended
|
|
|
2251
2303
|
i0.ɵɵclassProp("active", ctx.activeTab === "execution");
|
|
2252
2304
|
i0.ɵɵattribute("aria-selected", ctx.activeTab === "execution");
|
|
2253
2305
|
i0.ɵɵadvance(5);
|
|
2254
|
-
i0.ɵɵ
|
|
2306
|
+
i0.ɵɵconditional(ctx.activeTab === "overview" ? 129 : -1);
|
|
2255
2307
|
i0.ɵɵadvance();
|
|
2256
|
-
i0.ɵɵ
|
|
2308
|
+
i0.ɵɵconditional(ctx.activeTab === "runs" ? 130 : -1);
|
|
2257
2309
|
i0.ɵɵadvance();
|
|
2258
|
-
i0.ɵɵ
|
|
2310
|
+
i0.ɵɵconditional(ctx.activeTab === "details" ? 131 : -1);
|
|
2259
2311
|
i0.ɵɵadvance();
|
|
2260
|
-
i0.ɵɵ
|
|
2312
|
+
i0.ɵɵconditional(ctx.activeTab === "analytics" ? 132 : -1);
|
|
2261
2313
|
i0.ɵɵadvance();
|
|
2262
|
-
i0.ɵɵ
|
|
2314
|
+
i0.ɵɵconditional(ctx.activeTab === "execution" ? 133 : -1);
|
|
2263
2315
|
i0.ɵɵadvance();
|
|
2264
2316
|
i0.ɵɵproperty("title", ctx.showShortcuts ? "Hide keyboard shortcuts" : "Show keyboard shortcuts");
|
|
2265
2317
|
i0.ɵɵadvance(2);
|
|
2266
|
-
i0.ɵɵ
|
|
2267
|
-
} }, dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, i5.DefaultValueAccessor, i5.RadioControlValueAccessor, i5.NgControlStatus, i5.NgModel, i6.DialogContainerDirective, i7.ButtonComponent, i3.EvaluationBadgeComponent, i3.EvaluationModeToggleComponent, i3.ExecutionContextComponent, i8.EntityLinkPillComponent, i4.DatePipe], styles: ["\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n\n\n.test-suite-run-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n\n\n\n\n.suite-run-header[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n\n\n.breadcrumb[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n margin-bottom: 16px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: var(--suite-run-transition);\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n color: #2563eb;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n font-size: 10px;\n color: #cbd5e1;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .current[_ngcontent-%COMP%] {\n color: var(--suite-run-text);\n font-weight: 500;\n}\n\n\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n\n\n\n\n.results-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.result-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.result-count[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.passed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-item.failed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.failed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-item.error[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.error[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.skipped[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.total[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs[_ngcontent-%COMP%]::-webkit-scrollbar {\n display: none;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 15px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon[_ngcontent-%COMP%] {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n\n\n.progress-section[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.auto-refresh-notice[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n\n\n.runs-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line[_ngcontent-%COMP%] {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide[_ngcontent-%COMP%] {\n width: 70%;\n}\n\n.skeleton-line.narrow[_ngcontent-%COMP%] {\n width: 40%;\n}\n\n@keyframes _ngcontent-%COMP%_shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n\n\n.test-runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item[_ngcontent-%COMP%]:active {\n transform: translateX(2px);\n}\n\n.run-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status[_ngcontent-%COMP%] {\n font-weight: 700;\n}\n\n.run-score[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover > i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n\n\n\n\n.details-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n\n\n\n\n\n\n.shortcuts-toggle[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle[_ngcontent-%COMP%]:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.shortcuts-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close[_ngcontent-%COMP%] {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\nkbd[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n\n\n\n\n@media (max-width: 1024px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider[_ngcontent-%COMP%] {\n display: none;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .results-summary[_ngcontent-%COMP%] {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 16px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 32px 20px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 56px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 24px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 40px 16px;\n }\n\n .empty-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 28px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n gap: 16px;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%], .shortcuts-toggle[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 480px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .suite-run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .metric-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .result-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 24px 16px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .progress-section[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .progress-info[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 32px 12px;\n }\n\n .empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n}\n\n\n\n\n\n@media (hover: none) and (pointer: coarse) {\n .test-run-item[_ngcontent-%COMP%] {\n min-height: 64px;\n }\n\n .test-run-item[_ngcontent-%COMP%]:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab[_ngcontent-%COMP%]:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media print {\n .suite-run-header[_ngcontent-%COMP%] {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%], \n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .result-hero[_ngcontent-%COMP%], \n .test-run-item[_ngcontent-%COMP%], \n .details-card[_ngcontent-%COMP%] {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n\n\n\n\n@media (prefers-color-scheme: dark) {\n \n\n}\n\n\n\n\n\n.tags-bar[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n.tags-bar-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n\n\n.tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn[_ngcontent-%COMP%]:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input[_ngcontent-%COMP%] {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input[_ngcontent-%COMP%]::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n\n\n.runs-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed[_ngcontent-%COMP%]:hover, \n.filter-btn.passed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed[_ngcontent-%COMP%]:hover, \n.filter-btn.failed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error[_ngcontent-%COMP%]:hover, \n.filter-btn.error.active[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n\n\n.test-run-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.run-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover .run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.run-cost[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n\n\n\n\n.inline-feedback[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn[_ngcontent-%COMP%]:hover, \n.rating-btn.hover[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low[_ngcontent-%COMP%]:hover, \n.rating-btn.low.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid[_ngcontent-%COMP%]:hover, \n.rating-btn.mid.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high[_ngcontent-%COMP%]:hover, \n.rating-btn.high.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.feedback-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .tags-bar[_ngcontent-%COMP%] {\n padding: 8px 12px;\n }\n\n .tags-bar-content[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .tag-inline[_ngcontent-%COMP%] {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 12px;\n }\n\n .tags-editor-body[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .tags-editor-footer[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .runs-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .runs-actions[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-numbers[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .feedback-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n}\n\n\n\n.overview-tab[_ngcontent-%COMP%], \n.runs-tab[_ngcontent-%COMP%], \n.details-tab[_ngcontent-%COMP%], \n.analytics-tab[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n\n\n\n\n.analytics-tab[_ngcontent-%COMP%] {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.analytics-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n\n\n.performance-matrix[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.matrix-row[_ngcontent-%COMP%]:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell[_ngcontent-%COMP%] {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell[_ngcontent-%COMP%] {\n gap: 12px;\n}\n\n.test-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.score-bar[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n\n\n.stats-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n@media (max-width: 768px) {\n .analytics-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row[_ngcontent-%COMP%] {\n display: none;\n }\n\n .matrix-cell[_ngcontent-%COMP%] {\n padding: 4px 0;\n }\n\n .test-name-cell[_ngcontent-%COMP%]::before, \n .status-cell[_ngcontent-%COMP%]::before, \n .score-cell[_ngcontent-%COMP%]::before, \n .duration-cell[_ngcontent-%COMP%]::before, \n .cost-cell[_ngcontent-%COMP%]::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell[_ngcontent-%COMP%]::before { content: 'Status:'; }\n .score-cell[_ngcontent-%COMP%]::before { content: 'Score:'; }\n .duration-cell[_ngcontent-%COMP%]::before { content: 'Duration:'; }\n .cost-cell[_ngcontent-%COMP%]::before { content: 'Cost:'; }\n\n .stats-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .stat-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n}\n\n\n\n.tab[_ngcontent-%COMP%]:focus-visible, \n.test-run-item[_ngcontent-%COMP%]:focus-visible, \nbutton[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n\n\n\n\n.analytics-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.results-table-wrapper[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n\n\n.seq-col[_ngcontent-%COMP%] {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col[_ngcontent-%COMP%] {\n \n\n width: auto;\n max-width: 50%;\n}\n\n.status-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n}\n\n.score-col[_ngcontent-%COMP%] {\n width: 1%; \n\n min-width: 120px; \n\n white-space: nowrap;\n}\n\n.duration-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n\n\n.result-row[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n\n\n.test-name-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper[_ngcontent-%COMP%] .test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n\n\n.score-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.medium[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n}\n\n.score-display[_ngcontent-%COMP%] .score-text[_ngcontent-%COMP%] {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n\n\n.results-table[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-error[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-skipped[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n\n\n@media (max-width: 768px) {\n .results-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n\n .results-table[_ngcontent-%COMP%] {\n min-width: 600px;\n }\n\n .results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n .results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .name-col[_ngcontent-%COMP%] {\n min-width: 150px;\n }\n}\n\n\n\n\n\n@media (prefers-contrast: high) {\n .status-badge[_ngcontent-%COMP%], \n .status-inline[_ngcontent-%COMP%] {\n border: 2px solid currentColor;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n border-width: 2px;\n }\n\n .tab.active[_ngcontent-%COMP%] {\n border-bottom-width: 4px;\n }\n}\n\n\n\n\n\n.evaluation-summary[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n\n.eval-summary-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n\n\n\n\n.needs-review-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.review-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list[_ngcontent-%COMP%] {\n padding: 8px;\n}\n\n.review-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item[_ngcontent-%COMP%]:not(.high-priority):not(.medium-priority) .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item[_ngcontent-%COMP%]:hover .review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.review-more[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n@media (max-width: 768px) {\n .eval-summary-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body[_ngcontent-%COMP%] {\n padding: 12px 14px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .review-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .review-item-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n\n\n\n\n.feedback-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}"], changeDetection: 0 }); }
|
|
2318
|
+
i0.ɵɵconditional(ctx.showShortcuts ? 136 : -1);
|
|
2319
|
+
} }, dependencies: [i5.NgClass, i6.DefaultValueAccessor, i6.RadioControlValueAccessor, i6.NgControlStatus, i6.NgModel, i7.DialogContainerDirective, i8.ButtonComponent, i3.EvaluationBadgeComponent, i3.EvaluationModeToggleComponent, i3.ExecutionContextComponent, i9.EntityLinkPillComponent, i5.DatePipe], styles: ["\n\n\n\n\n\n\n\n[_nghost-%COMP%] {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n\n\n.test-suite-run-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n\n\n\n\n.suite-run-header[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n\n\n.breadcrumb[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] ol[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: 13px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 6px;\n transition: background 0.15s;\n}\n\n.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n background: rgba(59, 130, 246, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--suite-run-text-secondary);\n margin: 0 4px;\n}\n\n.breadcrumb[_ngcontent-%COMP%] .current[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-weight: 500;\n}\n\n.breadcrumb-text[_ngcontent-%COMP%] {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon[_ngcontent-%COMP%] {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n\n\n\n\n.metrics-bar[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n\n\n\n\n.results-summary[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon[_ngcontent-%COMP%] {\n font-size: 24px;\n}\n\n.result-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n}\n\n.result-count[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.passed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-item.failed[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.failed[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-item.error[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.error[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.skipped[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total[_ngcontent-%COMP%] .result-icon[_ngcontent-%COMP%], \n.result-item.total[_ngcontent-%COMP%] .result-count[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.tabs-container[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs[_ngcontent-%COMP%] {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs[_ngcontent-%COMP%]::-webkit-scrollbar {\n display: none;\n}\n\n.tab[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 15px;\n}\n\n.tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active[_ngcontent-%COMP%] .tab-badge[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n\n\n\n\n.tab-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n\n\n\n\n.overview-tab[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon[_ngcontent-%COMP%] {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider[_ngcontent-%COMP%] {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n\n\n.progress-section[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 20px;\n}\n\n.auto-refresh-notice[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n\n\n.runs-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line[_ngcontent-%COMP%] {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: _ngcontent-%COMP%_shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide[_ngcontent-%COMP%] {\n width: 70%;\n}\n\n.skeleton-line.narrow[_ngcontent-%COMP%] {\n width: 40%;\n}\n\n@keyframes _ngcontent-%COMP%_shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n\n\n.test-runs-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item[_ngcontent-%COMP%]:active {\n transform: translateX(2px);\n}\n\n.run-sequence[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.run-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status[_ngcontent-%COMP%] {\n font-weight: 700;\n}\n\n.run-score[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.run-duration[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover > i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n\n\n\n\n.details-tab[_ngcontent-%COMP%] {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.details-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace[_ngcontent-%COMP%] {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n\n\n\n\n\n\n.shortcuts-toggle[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle[_ngcontent-%COMP%]:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts[_ngcontent-%COMP%]:hover {\n opacity: 1;\n}\n\n.shortcuts-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close[_ngcontent-%COMP%] {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close[_ngcontent-%COMP%]:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n}\n\nkbd[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n\n\n\n\n@media (max-width: 1024px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider[_ngcontent-%COMP%] {\n display: none;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .header-actions[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .results-summary[_ngcontent-%COMP%] {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 16px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 32px 20px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 56px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 24px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 40px 16px;\n }\n\n .empty-icon[_ngcontent-%COMP%] {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 28px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .details-grid[_ngcontent-%COMP%] {\n gap: 16px;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%], .shortcuts-toggle[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media (max-width: 480px) {\n .suite-run-header[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .breadcrumb[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon[_ngcontent-%COMP%] {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info[_ngcontent-%COMP%] h1[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .suite-run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card[_ngcontent-%COMP%] {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .metric-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .result-item[_ngcontent-%COMP%] {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .result-label[_ngcontent-%COMP%] {\n font-size: 9px;\n }\n\n .tabs[_ngcontent-%COMP%] {\n padding: 0 12px;\n }\n\n .tab[_ngcontent-%COMP%] {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .result-hero[_ngcontent-%COMP%] {\n padding: 24px 16px;\n }\n\n .result-hero-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .progress-section[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .progress-info[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name[_ngcontent-%COMP%] {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta[_ngcontent-%COMP%] {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state[_ngcontent-%COMP%] {\n padding: 32px 12px;\n }\n\n .empty-state[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .details-card[_ngcontent-%COMP%] {\n padding: 14px;\n }\n\n .details-card[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label[_ngcontent-%COMP%] {\n font-size: 10px;\n }\n\n .detail-value[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n}\n\n\n\n\n\n@media (hover: none) and (pointer: coarse) {\n .test-run-item[_ngcontent-%COMP%] {\n min-height: 64px;\n }\n\n .test-run-item[_ngcontent-%COMP%]:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab[_ngcontent-%COMP%]:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab[_ngcontent-%COMP%]:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n\n\n@media print {\n .suite-run-header[_ngcontent-%COMP%] {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container[_ngcontent-%COMP%], \n .header-actions[_ngcontent-%COMP%], \n .keyboard-shortcuts[_ngcontent-%COMP%] {\n display: none;\n }\n\n .tab-content[_ngcontent-%COMP%] {\n padding: 20px 0;\n }\n\n .result-hero[_ngcontent-%COMP%], \n .test-run-item[_ngcontent-%COMP%], \n .details-card[_ngcontent-%COMP%] {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n\n\n\n\n@media (prefers-color-scheme: dark) {\n \n\n}\n\n\n\n\n\n.tags-bar[_ngcontent-%COMP%] {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n.tags-bar-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n\n\n\n\n.tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn[_ngcontent-%COMP%]:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input[_ngcontent-%COMP%] {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input[_ngcontent-%COMP%]::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n\n\n.runs-toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active[_ngcontent-%COMP%] {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed[_ngcontent-%COMP%]:hover, \n.filter-btn.passed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed[_ngcontent-%COMP%]:hover, \n.filter-btn.failed.active[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error[_ngcontent-%COMP%]:hover, \n.filter-btn.error.active[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n}\n\n\n\n\n\n.test-run-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n}\n\n.run-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item[_ngcontent-%COMP%]:hover .run-expand[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.run-cost[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.7;\n}\n\n\n\n\n\n.inline-feedback[_ngcontent-%COMP%] {\n padding: 0 16px 16px;\n animation: _ngcontent-%COMP%_slideDown 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider[_ngcontent-%COMP%] {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn[_ngcontent-%COMP%]:hover, \n.rating-btn.hover[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low[_ngcontent-%COMP%]:hover, \n.rating-btn.low.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid[_ngcontent-%COMP%]:hover, \n.rating-btn.mid.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high[_ngcontent-%COMP%]:hover, \n.rating-btn.high.hover[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected[_ngcontent-%COMP%] {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low[_ngcontent-%COMP%] {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid[_ngcontent-%COMP%] {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high[_ngcontent-%COMP%] {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt[_ngcontent-%COMP%] input[type=\"radio\"][_ngcontent-%COMP%] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.feedback-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n\n\n\n\n@media (max-width: 768px) {\n .tags-bar[_ngcontent-%COMP%] {\n padding: 8px 12px;\n }\n\n .tags-bar-content[_ngcontent-%COMP%] {\n gap: 8px;\n }\n\n .tag-inline[_ngcontent-%COMP%] {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel[_ngcontent-%COMP%] {\n margin-top: 12px;\n }\n\n .tags-editor-body[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .tags-editor-footer[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .runs-toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .runs-actions[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-numbers[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .rating-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .feedback-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n\n\n@keyframes _ngcontent-%COMP%_pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running[_ngcontent-%COMP%] .result-hero-icon[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_pulse 2s ease-in-out infinite;\n}\n\n\n\n.overview-tab[_ngcontent-%COMP%], \n.runs-tab[_ngcontent-%COMP%], \n.details-tab[_ngcontent-%COMP%], \n.analytics-tab[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n\n\n\n\n.analytics-tab[_ngcontent-%COMP%] {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.analytics-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n\n\n.performance-matrix[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n}\n\n.matrix-row[_ngcontent-%COMP%]:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell[_ngcontent-%COMP%] {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell[_ngcontent-%COMP%] {\n gap: 12px;\n}\n\n.test-sequence[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped[_ngcontent-%COMP%] {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending[_ngcontent-%COMP%] {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.score-bar[_ngcontent-%COMP%] {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low[_ngcontent-%COMP%] {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text[_ngcontent-%COMP%] {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n\n\n.stats-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n\n\n@media (max-width: 768px) {\n .analytics-header[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row[_ngcontent-%COMP%] {\n display: none;\n }\n\n .matrix-cell[_ngcontent-%COMP%] {\n padding: 4px 0;\n }\n\n .test-name-cell[_ngcontent-%COMP%]::before, \n .status-cell[_ngcontent-%COMP%]::before, \n .score-cell[_ngcontent-%COMP%]::before, \n .duration-cell[_ngcontent-%COMP%]::before, \n .cost-cell[_ngcontent-%COMP%]::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell[_ngcontent-%COMP%]::before { content: 'Status:'; }\n .score-cell[_ngcontent-%COMP%]::before { content: 'Score:'; }\n .duration-cell[_ngcontent-%COMP%]::before { content: 'Duration:'; }\n .cost-cell[_ngcontent-%COMP%]::before { content: 'Cost:'; }\n\n .stats-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .stat-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%] {\n font-size: 20px;\n }\n}\n\n\n\n.tab[_ngcontent-%COMP%]:focus-visible, \n.test-run-item[_ngcontent-%COMP%]:focus-visible, \nbutton[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n\n\n\n\n.analytics-loading[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n\n\n\n\n.results-table-wrapper[_ngcontent-%COMP%] {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n}\n\n\n\n.seq-col[_ngcontent-%COMP%] {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col[_ngcontent-%COMP%] {\n \n\n width: auto;\n max-width: 50%;\n}\n\n.status-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n}\n\n.score-col[_ngcontent-%COMP%] {\n width: 1%; \n\n min-width: 120px; \n\n white-space: nowrap;\n}\n\n.duration-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: right;\n}\n\n\n\n.result-row[_ngcontent-%COMP%] {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped[_ngcontent-%COMP%] {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n\n\n.test-name-wrapper[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper[_ngcontent-%COMP%] .test-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n\n\n.score-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.medium[_ngcontent-%COMP%] {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini[_ngcontent-%COMP%] .score-fill.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger);\n}\n\n.score-display[_ngcontent-%COMP%] .score-text[_ngcontent-%COMP%] {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n\n\n.results-table[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-passed[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-failed[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-error[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-skipped[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-pending[_ngcontent-%COMP%] {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table[_ngcontent-%COMP%] .status-badge.status-running[_ngcontent-%COMP%] {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n\n\n@media (max-width: 768px) {\n .results-table-wrapper[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n\n .results-table[_ngcontent-%COMP%] {\n min-width: 600px;\n }\n\n .results-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], \n .results-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .name-col[_ngcontent-%COMP%] {\n min-width: 150px;\n }\n}\n\n\n\n\n\n@media (prefers-contrast: high) {\n .status-badge[_ngcontent-%COMP%], \n .status-inline[_ngcontent-%COMP%] {\n border: 2px solid currentColor;\n }\n\n .test-run-item[_ngcontent-%COMP%] {\n border-width: 2px;\n }\n\n .tab.active[_ngcontent-%COMP%] {\n border-bottom-width: 4px;\n }\n}\n\n\n\n\n\n.evaluation-summary[_ngcontent-%COMP%] {\n margin-top: 20px;\n}\n\n.eval-summary-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card[_ngcontent-%COMP%]:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body[_ngcontent-%COMP%] {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer[_ngcontent-%COMP%] {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n}\n\n\n\n\n\n.needs-review-section[_ngcontent-%COMP%] {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 16px;\n}\n\n.review-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list[_ngcontent-%COMP%] {\n padding: 8px;\n}\n\n.review-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item[_ngcontent-%COMP%]:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority[_ngcontent-%COMP%] .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item[_ngcontent-%COMP%]:not(.high-priority):not(.medium-priority) .review-item-icon[_ngcontent-%COMP%] {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item[_ngcontent-%COMP%]:hover .review-item-action[_ngcontent-%COMP%] {\n color: var(--suite-run-primary);\n}\n\n.review-more[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n\n\n@media (max-width: 768px) {\n .eval-summary-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header[_ngcontent-%COMP%] {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body[_ngcontent-%COMP%] {\n padding: 12px 14px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .needs-review-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 13px;\n }\n\n .review-item[_ngcontent-%COMP%] {\n padding: 10px 12px;\n }\n\n .review-item-icon[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n\n\n\n\n.feedback-col[_ngcontent-%COMP%] {\n width: 1%; \n\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low[_ngcontent-%COMP%] {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid[_ngcontent-%COMP%] {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high[_ngcontent-%COMP%] {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.correct[_ngcontent-%COMP%] {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness[_ngcontent-%COMP%] i.incorrect[_ngcontent-%COMP%] {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n}"], changeDetection: 0 }); }
|
|
2268
2320
|
};
|
|
2269
2321
|
TestSuiteRunFormComponentExtended = __decorate([
|
|
2270
2322
|
RegisterClass(BaseFormComponent, 'MJ: Test Suite Runs')
|
|
@@ -2272,14 +2324,10 @@ TestSuiteRunFormComponentExtended = __decorate([
|
|
|
2272
2324
|
export { TestSuiteRunFormComponentExtended };
|
|
2273
2325
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestSuiteRunFormComponentExtended, [{
|
|
2274
2326
|
type: Component,
|
|
2275
|
-
args: [{ selector: 'mj-test-suite-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-suite-run-form\" kendoDialogContainer>\n <!-- Header Section -->\n <div class=\"suite-run-header\">\n <!-- Breadcrumb -->\n <div class=\"breadcrumb\" *ngIf=\"testSuite\">\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\">\n <i class=\"fas fa-layer-group\"></i>\n {{ testSuite.Name }}\n </a>\n <i class=\"fas fa-chevron-right separator\"></i>\n <span class=\"current\">Run #{{ record.ID.substring(0, 8) }}</span>\n </div>\n\n <!-- Header Content -->\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"suite-run-icon\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"suite-run-info\">\n <h1>Suite Run</h1>\n <div class=\"suite-run-meta\">\n <span class=\"status-badge\" [ngClass]=\"getStatusClass()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n {{ record.Status }}\n </span>\n <span class=\"meta-tag environment\" *ngIf=\"record.Environment\">\n <i class=\"fas fa-server\"></i>\n {{ record.Environment }}\n </span>\n <span class=\"meta-tag trigger\" *ngIf=\"record.TriggerType\">\n <i class=\"fas fa-bolt\"></i>\n {{ record.TriggerType }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"header-actions\">\n <!-- Evaluation Mode Toggle -->\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n <button kendoButton (click)=\"reRunSuite()\" themeColor=\"primary\" *ngIf=\"record.SuiteID\">\n <i class=\"fas fa-play\"></i> Re-run Suite\n </button>\n <button kendoButton (click)=\"refresh()\" [disabled]=\"isRefreshing\">\n <i class=\"fas\" [ngClass]=\"isRefreshing ? 'fa-sync fa-spin' : 'fa-sync'\"></i>\n {{ isRefreshing ? 'Refreshing...' : 'Refresh' }}\n </button>\n </div>\n </div>\n\n <!-- Metrics Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-clock\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ calculateDuration() }}</div>\n <div class=\"metric-label\">Duration</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-percentage\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getPassRate().toFixed(1) }}%</div>\n <div class=\"metric-label\">Pass Rate</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-dollar-sign\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ formatCost(record.TotalCostUSD) }}</div>\n <div class=\"metric-label\">Total Cost</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-calendar\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getRelativeTime(record.StartedAt) }}</div>\n <div class=\"metric-label\">Started</div>\n </div>\n </div>\n </div>\n\n <!-- Results Summary -->\n <div class=\"results-summary\">\n <div class=\"result-item passed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-check-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.PassedTests || 0 }}</span>\n <span class=\"result-label\">Passed</span>\n </div>\n </div>\n <div class=\"result-item failed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-times-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.FailedTests || 0 }}</span>\n <span class=\"result-label\">Failed</span>\n </div>\n </div>\n <div class=\"result-item error\">\n <div class=\"result-icon\">\n <i class=\"fas fa-exclamation-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.ErrorTests || 0 }}</span>\n <span class=\"result-label\">Errors</span>\n </div>\n </div>\n <div class=\"result-item skipped\">\n <div class=\"result-icon\">\n <i class=\"fas fa-forward\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.SkippedTests || 0 }}</span>\n <span class=\"result-label\">Skipped</span>\n </div>\n </div>\n <div class=\"result-item total\">\n <div class=\"result-icon\">\n <i class=\"fas fa-list\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.TotalTests || 0 }}</span>\n <span class=\"result-label\">Total</span>\n </div>\n </div>\n </div>\n\n <!-- Tags Section - Sleek inline design -->\n <div class=\"tags-bar\" *ngIf=\"!editingTags\">\n <div class=\"tags-bar-content\">\n <span class=\"tags-bar-label\"><i class=\"fas fa-tags\"></i></span>\n <div class=\"tags-bar-chips\" *ngIf=\"tags.length > 0\">\n <span class=\"tag-inline\" *ngFor=\"let tag of tags\">{{ tag }}</span>\n </div>\n <span class=\"tags-bar-empty\" *ngIf=\"tags.length === 0\">No tags</span>\n <button class=\"tags-bar-edit\" (click)=\"startEditingTags()\" title=\"Edit tags\">\n <i class=\"fas fa-plus\"></i> Add\n </button>\n </div>\n </div>\n\n <!-- Tags Editor - Expanded when editing -->\n <div class=\"tags-editor-panel\" *ngIf=\"editingTags\">\n <div class=\"tags-editor-header\">\n <span class=\"tags-editor-title\"><i class=\"fas fa-tags\"></i> Edit Tags</span>\n </div>\n <div class=\"tags-editor-body\">\n <div class=\"tags-editor-chips\">\n <span class=\"tag-editable\" *ngFor=\"let tag of tags\">\n {{ tag }}\n <button class=\"tag-remove-btn\" (click)=\"removeTag(tag)\" title=\"Remove tag\">\n <i class=\"fas fa-times\"></i>\n </button>\n </span>\n <span class=\"tags-empty-hint\" *ngIf=\"tags.length === 0\">No tags yet</span>\n </div>\n <div class=\"tags-editor-input\">\n <input type=\"text\"\n [(ngModel)]=\"newTag\"\n placeholder=\"Type a tag and press Enter...\"\n (keyup.enter)=\"addTag()\"\n class=\"tag-text-input\" />\n <button kendoButton (click)=\"addTag()\" [disabled]=\"!newTag.trim()\" fillMode=\"flat\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </div>\n </div>\n <div class=\"tags-editor-footer\">\n <button kendoButton (click)=\"saveTags()\" themeColor=\"primary\" [disabled]=\"savingTags\">\n <i class=\"fas fa-spinner fa-spin\" *ngIf=\"savingTags\"></i>\n {{ savingTags ? 'Saving...' : 'Save' }}\n </button>\n <button kendoButton (click)=\"cancelEditingTags()\" fillMode=\"flat\">Cancel</button>\n </div>\n </div>\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs-container\">\n <div class=\"tabs\" role=\"tablist\">\n <button class=\"tab\"\n [class.active]=\"activeTab === 'overview'\"\n (click)=\"changeTab('overview')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'overview'\">\n <i class=\"fas fa-th-large\"></i> Overview\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'runs'\"\n (click)=\"changeTab('runs')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'runs'\">\n <i class=\"fas fa-list\"></i> Test Runs\n <span class=\"tab-badge\" *ngIf=\"testRunsLoaded\">{{ testRuns.length }}</span>\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'details'\"\n (click)=\"changeTab('details')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'details'\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'analytics'\"\n (click)=\"changeTab('analytics')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'analytics'\"\n title=\"Press 4\">\n <i class=\"fas fa-chart-bar\"></i> Analytics\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'execution'\"\n (click)=\"changeTab('execution')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'execution'\"\n title=\"Press 5\">\n <i class=\"fas fa-microchip\"></i>\n <span>Execution</span>\n </button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tab-content\">\n <!-- Overview Tab -->\n <div class=\"overview-tab\" *ngIf=\"activeTab === 'overview'\">\n <!-- Result Hero -->\n <div class=\"result-hero\"\n [class.passed]=\"record.Status === 'Completed' && getPassRate() >= 90\"\n [class.failed]=\"record.Status === 'Failed' || getPassRate() < 50\"\n [class.running]=\"record.Status === 'Running'\"\n [class.pending]=\"record.Status === 'Pending'\">\n <div class=\"result-hero-icon\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"result-hero-text\">\n <h2>SUITE {{ record.Status.toUpperCase() || 'UNKNOWN' }}</h2>\n <div class=\"result-hero-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ getPassRate().toFixed(1) }}%</span>\n <span class=\"stat-label\">Pass Rate</span>\n </div>\n <div class=\"stat-divider\"></div>\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ record.PassedTests || 0 }} / {{ record.TotalTests || 0 }}</span>\n <span class=\"stat-label\">Tests Passed</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Evaluation Metrics Summary -->\n <div class=\"evaluation-summary\" *ngIf=\"evaluationMetrics && feedbacksLoaded\">\n <div class=\"eval-summary-grid\">\n <!-- Human Feedback Card -->\n <div class=\"eval-summary-card\" *ngIf=\"evalPreferences.showHuman\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Human Feedback</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Reviewed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanReviewedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.humanReviewedCount > 0\">\n <span class=\"eval-stat-label\">Avg Rating</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanAvgRating.toFixed(1) }}/10</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.humanReviewedCount > 0\">\n <span class=\"eval-stat-label\">Correct</span>\n <span class=\"eval-stat-value correct\">{{ evaluationMetrics.humanCorrectCount }}</span>\n <span class=\"eval-stat-value incorrect\" *ngIf=\"evaluationMetrics.humanIncorrectCount > 0\">{{ evaluationMetrics.humanIncorrectCount }} incorrect</span>\n </div>\n </div>\n <div class=\"eval-card-footer\" *ngIf=\"evaluationMetrics.humanPendingCount > 0\">\n <span class=\"pending-badge\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ evaluationMetrics.humanPendingCount }} need review\n </span>\n </div>\n </div>\n\n <!-- Auto Score Card -->\n <div class=\"eval-summary-card\" *ngIf=\"evalPreferences.showAuto\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Auto Evaluation</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Evaluated</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoEvaluatedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.autoEvaluatedCount > 0\">\n <span class=\"eval-stat-label\">Avg Score</span>\n <span class=\"eval-stat-value\">{{ (evaluationMetrics.autoAvgScore * 100).toFixed(0) }}%</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.autoEvaluatedCount > 0\">\n <span class=\"eval-stat-label\">Pass Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoPassRate.toFixed(0) }}%</span>\n </div>\n </div>\n </div>\n\n <!-- Execution Card -->\n <div class=\"eval-summary-card\" *ngIf=\"evalPreferences.showExecution\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-circle-check\"></i>\n <span>Execution</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Completed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execCompletedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Success Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execSuccessRate.toFixed(0) }}%</span>\n </div>\n <div class=\"eval-stat-row\" *ngIf=\"evaluationMetrics.execErrorCount > 0 || evaluationMetrics.execTimeoutCount > 0\">\n <span class=\"eval-stat-label\">Issues</span>\n <span class=\"eval-stat-value error\" *ngIf=\"evaluationMetrics.execErrorCount > 0\">{{ evaluationMetrics.execErrorCount }} errors</span>\n <span class=\"eval-stat-value timeout\" *ngIf=\"evaluationMetrics.execTimeoutCount > 0\">{{ evaluationMetrics.execTimeoutCount }} timeouts</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Needs Review Section -->\n <div class=\"needs-review-section\" *ngIf=\"evalPreferences.showHuman && needsReviewItems.length > 0 && feedbacksLoaded\">\n <div class=\"needs-review-header\">\n <h3><i class=\"fa-solid fa-user-clock\"></i> Needs Review</h3>\n <span class=\"review-count\">{{ needsReviewItems.length }} items</span>\n </div>\n <div class=\"needs-review-list\">\n <div class=\"review-item\" *ngFor=\"let item of needsReviewItems.slice(0, 5)\"\n [class.high-priority]=\"item.priority === 'high'\"\n [class.medium-priority]=\"item.priority === 'medium'\"\n (click)=\"toggleRunExpanded(item.run.id)\">\n <div class=\"review-item-icon\">\n <i class=\"fa-solid fa-exclamation-triangle\" *ngIf=\"item.priority === 'high'\"></i>\n <i class=\"fa-solid fa-circle-dot\" *ngIf=\"item.priority === 'medium'\"></i>\n <i class=\"fa-solid fa-clock\" *ngIf=\"item.priority === 'low'\"></i>\n </div>\n <div class=\"review-item-content\">\n <span class=\"review-item-name\">{{ item.run.testName }}</span>\n <span class=\"review-item-reason\">{{ item.reason }}</span>\n </div>\n <div class=\"review-item-action\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n <div class=\"review-more\" *ngIf=\"needsReviewItems.length > 5\">\n <button kendoButton fillMode=\"flat\" (click)=\"changeTab('runs')\">\n View all {{ needsReviewItems.length }} items\n </button>\n </div>\n </div>\n </div>\n\n <!-- Progress Ring (when running) -->\n <div class=\"progress-section\" *ngIf=\"record.Status === 'Running' || record.Status === 'Pending'\">\n <div class=\"progress-info\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>Suite execution in progress...</span>\n </div>\n <div class=\"auto-refresh-notice\">\n <i class=\"fas fa-sync\"></i>\n Auto-refreshing every 5 seconds\n </div>\n </div>\n </div>\n\n <!-- Test Runs Tab -->\n <div class=\"runs-tab\" *ngIf=\"activeTab === 'runs'\">\n <!-- Toolbar -->\n <div class=\"runs-toolbar\" *ngIf=\"testRunsLoaded && testRuns.length > 0\">\n <div class=\"run-filters\">\n <button class=\"filter-btn\"\n [class.active]=\"runStatusFilter === null\"\n (click)=\"setRunStatusFilter(null)\">\n All ({{ testRuns.length }})\n </button>\n <button class=\"filter-btn passed\"\n [class.active]=\"runStatusFilter === 'Passed'\"\n (click)=\"setRunStatusFilter('Passed')\"\n *ngIf=\"getRunCountByStatus('Passed') > 0\">\n <i class=\"fas fa-check\"></i> Passed ({{ getRunCountByStatus('Passed') }})\n </button>\n <button class=\"filter-btn failed\"\n [class.active]=\"runStatusFilter === 'Failed'\"\n (click)=\"setRunStatusFilter('Failed')\"\n *ngIf=\"getRunCountByStatus('Failed') > 0\">\n <i class=\"fas fa-times\"></i> Failed ({{ getRunCountByStatus('Failed') }})\n </button>\n <button class=\"filter-btn error\"\n [class.active]=\"runStatusFilter === 'Error'\"\n (click)=\"setRunStatusFilter('Error')\"\n *ngIf=\"getRunCountByStatus('Error') > 0\">\n <i class=\"fas fa-exclamation\"></i> Error ({{ getRunCountByStatus('Error') }})\n </button>\n </div>\n <div class=\"runs-actions\">\n <button kendoButton (click)=\"exportToCSV()\">\n <i class=\"fas fa-download\"></i> Export CSV\n </button>\n </div>\n </div>\n\n <!-- Loading State -->\n <div class=\"loading-state\" *ngIf=\"loadingTestRuns\">\n <div class=\"skeleton-list\">\n <div class=\"skeleton-card\" *ngFor=\"let i of [1,2,3,4,5]\">\n <div class=\"skeleton-sequence\"></div>\n <div class=\"skeleton-icon\"></div>\n <div class=\"skeleton-content\">\n <div class=\"skeleton-line wide\"></div>\n <div class=\"skeleton-line narrow\"></div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Test Runs List -->\n <div class=\"test-runs-list\" *ngIf=\"!loadingTestRuns && testRuns.length > 0\">\n <div class=\"test-run-card\" *ngFor=\"let run of getFilteredTestRuns()\">\n <div class=\"test-run-item\" (click)=\"toggleRunExpanded(run.ID)\">\n <div class=\"run-sequence\">{{ run.Sequence || '-' }}</div>\n <div class=\"run-icon\" [style.background-color]=\"getRunStatusColor(run.Status)\">\n <i class=\"fas\" [ngClass]=\"getRunStatusIcon(run.Status)\"></i>\n </div>\n <div class=\"run-content\">\n <div class=\"run-header-row\">\n <div class=\"run-name\">{{ run.Test }}</div>\n <!-- Evaluation Badge -->\n <app-evaluation-badge\n [executionStatus]=\"run.Status\"\n [originalStatus]=\"run.Status\"\n [autoScore]=\"run.Score\"\n [humanRating]=\"getFeedbackRating(run.ID) || null\"\n [humanIsCorrect]=\"getHumanIsCorrect(run.ID)\"\n [hasHumanFeedback]=\"hasFeedback(run.ID)\"\n [preferences]=\"evalPreferences\"\n [mode]=\"'compact'\">\n </app-evaluation-badge>\n </div>\n <div class=\"run-meta\">\n <span class=\"run-duration\" *ngIf=\"run.DurationSeconds\">\n <i class=\"fas fa-clock\"></i> {{ run.DurationSeconds.toFixed(1) }}s\n </span>\n <span class=\"run-cost\" *ngIf=\"run.CostUSD\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.CostUSD.toFixed(6) }}\n </span>\n <mj-entity-link-pill\n *ngIf=\"run.TargetLogEntityID && run.TargetLogID\"\n [entityName]=\"run.TargetLogEntity\"\n [recordId]=\"run.TargetLogID\">\n </mj-entity-link-pill>\n </div>\n <div class=\"run-tags\" *ngIf=\"getRunTags(run).length > 0\">\n <span class=\"tag-chip\" *ngFor=\"let tag of getRunTags(run)\">{{ tag }}</span>\n </div>\n </div>\n <div class=\"run-expand\">\n <i class=\"fas\" [class.fa-chevron-down]=\"expandedRunId !== run.ID\" [class.fa-chevron-up]=\"expandedRunId === run.ID\"></i>\n </div>\n </div>\n\n <!-- Expanded Inline Feedback -->\n <div class=\"inline-feedback\" *ngIf=\"expandedRunId === run.ID\">\n <div class=\"feedback-divider\"></div>\n\n <div class=\"feedback-section\">\n <div class=\"feedback-label\">Quick Feedback</div>\n\n <div class=\"inline-rating\">\n <div class=\"rating-numbers\">\n <button *ngFor=\"let num of [1,2,3,4,5,6,7,8,9,10]\"\n type=\"button\"\n class=\"rating-btn\"\n [class.selected]=\"num === inlineRating\"\n [class.hover]=\"num === inlineHoverRating\"\n [class.low]=\"num <= 3\"\n [class.mid]=\"num >= 4 && num <= 6\"\n [class.high]=\"num >= 7\"\n (click)=\"setInlineRating(num); $event.stopPropagation()\"\n (mouseenter)=\"inlineHoverRating = num\"\n (mouseleave)=\"inlineHoverRating = 0\">\n {{ num }}\n </button>\n </div>\n <div class=\"rating-info\" *ngIf=\"inlineRating > 0\">\n <span class=\"rating-value\">{{ inlineRating }}/10</span>\n <span class=\"rating-label-text\">{{ getInlineRatingLabel() }}</span>\n </div>\n </div>\n\n <div class=\"correctness-row\">\n <span class=\"correctness-label\">Was it correct?</span>\n <div class=\"correctness-options\">\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"true\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Yes</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"false\" [(ngModel)]=\"inlineIsCorrect\">\n <span>No</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"null\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Not Sure</span>\n </label>\n </div>\n </div>\n\n <div class=\"comments-row\" (click)=\"$event.stopPropagation()\">\n <textarea\n class=\"feedback-textarea\"\n [(ngModel)]=\"inlineComments\"\n placeholder=\"Add comments or corrections...\"\n rows=\"3\"></textarea>\n </div>\n\n <div class=\"feedback-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton (click)=\"openTestRun(run.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Full Details\n </button>\n <button kendoButton\n themeColor=\"primary\"\n (click)=\"saveInlineFeedback()\"\n [disabled]=\"!canSubmitInlineFeedback() || savingInlineFeedback\">\n <i class=\"fas\" [ngClass]=\"savingInlineFeedback ? 'fa-spinner fa-spin' : 'fa-save'\"></i>\n {{ savingInlineFeedback ? 'Saving...' : (hasFeedback(run.ID) ? 'Update' : 'Save') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"testRunsLoaded && !loadingTestRuns && testRuns.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-inbox\"></i>\n </div>\n <h4>No Test Runs Found</h4>\n <p>No test runs have been recorded for this suite execution.</p>\n </div>\n\n <!-- Filtered Empty -->\n <div class=\"empty-state\" *ngIf=\"testRunsLoaded && !loadingTestRuns && testRuns.length > 0 && getFilteredTestRuns().length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-filter\"></i>\n </div>\n <h4>No Matching Runs</h4>\n <p>No test runs match the current filter.</p>\n <button kendoButton (click)=\"setRunStatusFilter(null)\">Clear Filter</button>\n </div>\n </div>\n\n <!-- Details Tab -->\n <div class=\"details-tab\" *ngIf=\"activeTab === 'details'\">\n <div class=\"details-card\">\n <h3><i class=\"fas fa-info-circle\"></i> Run Information</h3>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run ID</div>\n <div class=\"detail-value monospace\">{{ record.ID }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Test Suite</div>\n <div class=\"detail-value\">\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\" *ngIf=\"testSuite\">{{ testSuite.Name }}</a>\n <span *ngIf=\"!testSuite\">Loading...</span>\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Status</div>\n <div class=\"detail-value\">\n <span class=\"status-inline\" [ngClass]=\"getStatusClass()\">{{ record.Status }}</span>\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run By</div>\n <div class=\"detail-value\">{{ record.RunByUser || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Started At</div>\n <div class=\"detail-value\">{{ record.StartedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Completed At</div>\n <div class=\"detail-value\">{{ record.CompletedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Environment</div>\n <div class=\"detail-value\">{{ record.Environment || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Trigger Type</div>\n <div class=\"detail-value\">{{ record.TriggerType || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Git Commit</div>\n <div class=\"detail-value monospace\">{{ record.GitCommit || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Agent Version</div>\n <div class=\"detail-value\">{{ record.AgentVersion || 'N/A' }}</div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Analytics Tab -->\n <div class=\"analytics-tab\" *ngIf=\"activeTab === 'analytics'\">\n <!-- Loading State -->\n <div class=\"analytics-loading\" *ngIf=\"loadingTestRuns\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n <span>Loading test results...</span>\n </div>\n\n <!-- Summary Statistics - Moved to top for better overview -->\n <div class=\"analytics-section\" *ngIf=\"!loadingTestRuns && testRuns.length > 0\">\n <h3><i class=\"fas fa-chart-pie\"></i> Summary Statistics</h3>\n <div class=\"stats-grid\">\n <div class=\"stat-card\">\n <div class=\"stat-icon passed\"><i class=\"fas fa-check-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getPassedCount() }}</div>\n <div class=\"stat-label\">Passed</div>\n <div class=\"stat-percent\">{{ getPassedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon failed\"><i class=\"fas fa-times-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getFailedCount() }}</div>\n <div class=\"stat-label\">Failed</div>\n <div class=\"stat-percent\">{{ getFailedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon score\"><i class=\"fas fa-star\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ (getAverageScore() * 100).toFixed(1) }}%</div>\n <div class=\"stat-label\">Avg Score</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon duration\"><i class=\"fas fa-clock\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getAverageDuration().toFixed(1) }}s</div>\n <div class=\"stat-label\">Avg Duration</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon cost\"><i class=\"fas fa-dollar-sign\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">${{ getTotalCost().toFixed(4) }}</div>\n <div class=\"stat-label\">Total Cost</div>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Test Results Table -->\n <div class=\"analytics-section\" *ngIf=\"!loadingTestRuns && testRuns.length > 0\">\n <div class=\"analytics-header\">\n <h3><i class=\"fas fa-table\"></i> Test Results</h3>\n <div class=\"analytics-legend\">\n <span class=\"legend-item passed\"><i class=\"fas fa-check-circle\"></i> Passed</span>\n <span class=\"legend-item failed\"><i class=\"fas fa-times-circle\"></i> Failed</span>\n <span class=\"legend-item error\"><i class=\"fas fa-exclamation-circle\"></i> Error</span>\n <span class=\"legend-item skipped\"><i class=\"fas fa-forward\"></i> Skipped</span>\n </div>\n </div>\n\n <!-- Results Table -->\n <div class=\"results-table-wrapper\">\n <table class=\"results-table\">\n <thead>\n <tr>\n <th class=\"seq-col\">#</th>\n <th class=\"name-col\">Test Name</th>\n <th class=\"status-col\" *ngIf=\"evalPreferences.showExecution\">Status</th>\n <th class=\"score-col\" *ngIf=\"evalPreferences.showAuto\">Auto Score</th>\n <th class=\"feedback-col\" *ngIf=\"evalPreferences.showHuman\">Human Score</th>\n <th class=\"duration-col\">Duration</th>\n <th class=\"cost-col\">Cost</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let run of testRuns; let i = index\"\n class=\"result-row\"\n [class.row-passed]=\"run.Status === 'Passed'\"\n [class.row-failed]=\"run.Status === 'Failed'\"\n [class.row-error]=\"run.Status === 'Error'\"\n [class.row-skipped]=\"run.Status === 'Skipped'\"\n (click)=\"openTestRun(run.ID)\">\n <td class=\"seq-col\">{{ i + 1 }}</td>\n <td class=\"name-col\">\n <div class=\"test-name-wrapper\">\n <span class=\"test-name\">{{ run.Test || 'Unknown Test' }}</span>\n <div class=\"test-tags\" *ngIf=\"getRunTags(run).length > 0\">\n <span class=\"tag-mini\" *ngFor=\"let tag of getRunTags(run).slice(0, 2)\">{{ tag }}</span>\n </div>\n </div>\n </td>\n <td class=\"status-col\" *ngIf=\"evalPreferences.showExecution\">\n <span class=\"status-badge\" [ngClass]=\"'status-' + run.Status.toLowerCase()\">\n <i class=\"fas\"\n [class.fa-check-circle]=\"run.Status === 'Passed'\"\n [class.fa-times-circle]=\"run.Status === 'Failed'\"\n [class.fa-exclamation-circle]=\"run.Status === 'Error'\"\n [class.fa-forward]=\"run.Status === 'Skipped'\"\n [class.fa-clock]=\"run.Status === 'Pending'\"\n [class.fa-spinner]=\"run.Status === 'Running'\"\n [class.fa-spin]=\"run.Status === 'Running'\"></i>\n {{ run.Status }}\n </span>\n </td>\n <td class=\"score-col\" *ngIf=\"evalPreferences.showAuto\">\n <div class=\"score-display\" *ngIf=\"run.Score != null\">\n <div class=\"score-bar-mini\">\n <div class=\"score-fill\"\n [style.width.%]=\"run.Score * 100\"\n [class.high]=\"run.Score >= 0.8\"\n [class.medium]=\"run.Score >= 0.5 && run.Score < 0.8\"\n [class.low]=\"run.Score < 0.5\"></div>\n </div>\n <span class=\"score-text\">{{ (run.Score * 100).toFixed(0) }}%</span>\n </div>\n <span class=\"na-value\" *ngIf=\"run.Score == null\">\u2014</span>\n </td>\n <td class=\"feedback-col\" *ngIf=\"evalPreferences.showHuman\">\n <div class=\"feedback-display\" *ngIf=\"hasFeedback(run.ID)\">\n <span class=\"feedback-rating\" [class.low]=\"getFeedbackRating(run.ID) <= 3\" [class.mid]=\"getFeedbackRating(run.ID) >= 4 && getFeedbackRating(run.ID) <= 6\" [class.high]=\"getFeedbackRating(run.ID) >= 7\">\n {{ getFeedbackRating(run.ID) }}/10\n </span>\n <span class=\"feedback-correctness\" *ngIf=\"getHumanIsCorrect(run.ID) !== null\">\n <i class=\"fas\" [class.fa-check]=\"getHumanIsCorrect(run.ID) === true\" [class.fa-times]=\"getHumanIsCorrect(run.ID) === false\" [class.correct]=\"getHumanIsCorrect(run.ID) === true\" [class.incorrect]=\"getHumanIsCorrect(run.ID) === false\"></i>\n </span>\n </div>\n <span class=\"na-value needs-review\" *ngIf=\"!hasFeedback(run.ID)\">\n <i class=\"fas fa-user-clock\"></i>\n </span>\n </td>\n <td class=\"duration-col\">\n <span *ngIf=\"run.DurationSeconds\">{{ run.DurationSeconds.toFixed(1) }}s</span>\n <span class=\"na-value\" *ngIf=\"!run.DurationSeconds\">\u2014</span>\n </td>\n <td class=\"cost-col\">\n <span *ngIf=\"run.CostUSD\">${{ run.CostUSD.toFixed(4) }}</span>\n <span class=\"na-value\" *ngIf=\"!run.CostUSD\">\u2014</span>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <!-- Empty State -->\n <div class=\"empty-state\" *ngIf=\"!loadingTestRuns && testRunsLoaded && testRuns.length === 0\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-chart-bar\"></i>\n </div>\n <h4>No Test Results Yet</h4>\n <p>Test runs will appear here once the suite execution completes.</p>\n </div>\n </div>\n\n <!-- Execution Tab -->\n <div class=\"execution-tab\" *ngIf=\"activeTab === 'execution'\">\n <mj-execution-context\n [machineName]=\"record.MachineName\"\n [machineId]=\"record.MachineID\"\n [runByUserName]=\"record.RunByUserName\"\n [runByUserEmail]=\"record.RunByUserEmail\"\n [runContextDetailsJson]=\"record.RunContextDetails\">\n </mj-execution-context>\n </div>\n </div>\n\n <!-- Keyboard Shortcuts Toggle Button -->\n <button class=\"shortcuts-toggle\" (click)=\"toggleShortcuts()\" [title]=\"showShortcuts ? 'Hide keyboard shortcuts' : 'Show keyboard shortcuts'\">\n <i class=\"fas fa-keyboard\"></i>\n </button>\n\n <!-- Keyboard Shortcuts Hint (Desktop Only) -->\n <div class=\"keyboard-shortcuts\" *ngIf=\"showShortcuts\">\n <div class=\"shortcuts-header\">\n <i class=\"fas fa-keyboard\"></i>\n Shortcuts\n <button class=\"shortcuts-close\" (click)=\"toggleShortcuts()\" title=\"Hide shortcuts\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n <div class=\"shortcut-list\">\n <div class=\"shortcut-item\">\n <span>Refresh</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Re-run Suite</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>Shift</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Switch Tabs</span>\n <span class=\"shortcut-keys\"><kbd>1</kbd>-<kbd>5</kbd></span>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* ===================================\n Test Suite Run Form - Premium UX\n World-class responsive design\n =================================== */\n\n/* CSS Custom Properties */\n:host {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* Base Container */\n.test-suite-run-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n/* ===================================\n Header Section\n =================================== */\n.suite-run-header {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n/* Breadcrumb */\n.breadcrumb {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n margin-bottom: 16px;\n}\n\n.breadcrumb a {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: 6px;\n transition: var(--suite-run-transition);\n}\n\n.breadcrumb a:hover {\n color: #2563eb;\n}\n\n.breadcrumb .separator {\n font-size: 10px;\n color: #cbd5e1;\n}\n\n.breadcrumb .current {\n color: var(--suite-run-text);\n font-weight: 500;\n}\n\n/* Header Content */\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info h1 {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n/* ===================================\n Metrics Bar\n =================================== */\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n/* ===================================\n Results Summary\n =================================== */\n.results-summary {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon {\n font-size: 24px;\n}\n\n.result-content {\n display: flex;\n flex-direction: column;\n}\n\n.result-count {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed .result-icon,\n.result-item.passed .result-count {\n color: var(--suite-run-success);\n}\n\n.result-item.failed .result-icon,\n.result-item.failed .result-count {\n color: var(--suite-run-danger);\n}\n\n.result-item.error .result-icon,\n.result-item.error .result-count {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped .result-icon,\n.result-item.skipped .result-count {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total .result-icon,\n.result-item.total .result-count {\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Tabs\n =================================== */\n.tabs-container {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs::-webkit-scrollbar {\n display: none;\n}\n\n.tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab i {\n font-size: 15px;\n}\n\n.tab-badge {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active .tab-badge {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n/* ===================================\n Tab Content\n =================================== */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n/* ===================================\n Overview Tab\n =================================== */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed .result-hero-icon {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed .result-hero-icon {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running .result-hero-icon {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending .result-hero-icon {\n color: var(--suite-run-info);\n}\n\n.result-hero-text h2 {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n/* Progress Section */\n.progress-section {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info i {\n font-size: 20px;\n}\n\n.auto-refresh-notice {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* ===================================\n Test Runs Tab\n =================================== */\n.runs-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n/* Loading Skeleton */\n.loading-state {\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide {\n width: 70%;\n}\n\n.skeleton-line.narrow {\n width: 40%;\n}\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n/* Test Runs List */\n.test-runs-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item:active {\n transform: translateX(2px);\n}\n\n.run-sequence {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status {\n font-weight: 700;\n}\n\n.run-score,\n.run-duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score i,\n.run-duration i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item > i {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover > i {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state h4 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n/* ===================================\n Details Tab\n =================================== */\n.details-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card h3 i {\n color: var(--suite-run-primary);\n}\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value a {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value a:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n/* ===================================\n Keyboard Shortcuts\n =================================== */\n/* Toggle button - visible when shortcuts are hidden */\n.shortcuts-toggle {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts:hover {\n opacity: 1;\n}\n\n.shortcuts-header {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header i {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item span:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys {\n display: flex;\n gap: 4px;\n}\n\nkbd {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n/* ===================================\n Responsive Design - Tablet\n =================================== */\n@media (max-width: 1024px) {\n .suite-run-header {\n padding: 16px 20px;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider {\n display: none;\n }\n\n .details-grid {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Mobile\n =================================== */\n@media (max-width: 768px) {\n .suite-run-header {\n padding: 16px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left {\n width: 100%;\n }\n\n .suite-run-icon {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info h1 {\n font-size: 20px;\n }\n\n .header-actions {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions button {\n flex: 1;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon {\n width: 36px;\n height: 36px;\n }\n\n .metric-value {\n font-size: 16px;\n }\n\n .results-summary {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon {\n font-size: 20px;\n }\n\n .result-count {\n font-size: 18px;\n }\n\n .tabs {\n padding: 0 16px;\n }\n\n .tab {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content {\n padding: 16px;\n }\n\n .result-hero {\n padding: 32px 20px;\n }\n\n .result-hero-icon {\n font-size: 56px;\n }\n\n .result-hero-text h2 {\n font-size: 24px;\n }\n\n .stat-value {\n font-size: 20px;\n }\n\n .test-run-item {\n padding: 14px;\n }\n\n .run-sequence {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name {\n font-size: 13px;\n }\n\n .run-meta {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state {\n padding: 40px 16px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon i {\n font-size: 28px;\n }\n\n .details-card {\n padding: 16px;\n }\n\n .details-grid {\n gap: 16px;\n }\n\n .keyboard-shortcuts, .shortcuts-toggle {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Small Mobile\n =================================== */\n@media (max-width: 480px) {\n .suite-run-header {\n padding: 12px;\n }\n\n .breadcrumb {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info h1 {\n font-size: 18px;\n }\n\n .suite-run-meta {\n gap: 8px;\n }\n\n .status-badge {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .metric-label {\n font-size: 9px;\n }\n\n .result-item {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon {\n font-size: 18px;\n }\n\n .result-count {\n font-size: 16px;\n }\n\n .result-label {\n font-size: 9px;\n }\n\n .tabs {\n padding: 0 12px;\n }\n\n .tab {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab i {\n font-size: 14px;\n }\n\n .tab-content {\n padding: 12px;\n }\n\n .result-hero {\n padding: 24px 16px;\n }\n\n .result-hero-icon {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text h2 {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value {\n font-size: 18px;\n }\n\n .stat-label {\n font-size: 10px;\n }\n\n .progress-section {\n padding: 16px;\n }\n\n .progress-info {\n font-size: 14px;\n }\n\n .test-run-item {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state {\n padding: 32px 12px;\n }\n\n .empty-state h4 {\n font-size: 16px;\n }\n\n .empty-state p {\n font-size: 13px;\n }\n\n .details-card {\n padding: 14px;\n }\n\n .details-card h3 {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label {\n font-size: 10px;\n }\n\n .detail-value {\n font-size: 13px;\n }\n}\n\n/* ===================================\n Touch Device Optimizations\n =================================== */\n@media (hover: none) and (pointer: coarse) {\n .test-run-item {\n min-height: 64px;\n }\n\n .test-run-item:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts {\n display: none;\n }\n}\n\n/* ===================================\n Print Styles\n =================================== */\n@media print {\n .suite-run-header {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container,\n .header-actions,\n .keyboard-shortcuts {\n display: none;\n }\n\n .tab-content {\n padding: 20px 0;\n }\n\n .result-hero,\n .test-run-item,\n .details-card {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n/* ===================================\n Dark Mode Support (Future)\n =================================== */\n@media (prefers-color-scheme: dark) {\n /* Ready for dark mode implementation */\n}\n\n/* ===================================\n Tags Bar - Sleek Inline Display\n =================================== */\n.tags-bar {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label i {\n opacity: 0.6;\n}\n\n.tags-bar-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit i {\n font-size: 10px;\n}\n\n/* ===================================\n Tags Editor Panel - Expanded Edit Mode\n =================================== */\n.tags-editor-panel {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* ===================================\n Runs Toolbar\n =================================== */\n.runs-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed:hover,\n.filter-btn.passed.active {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed:hover,\n.filter-btn.failed.active {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error:hover,\n.filter-btn.error.active {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions {\n display: flex;\n gap: 8px;\n}\n\n/* ===================================\n Test Run Card (Expandable)\n =================================== */\n.test-run-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator i {\n font-size: 10px;\n}\n\n.run-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover .run-expand {\n color: var(--suite-run-primary);\n}\n\n.run-cost {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* ===================================\n Inline Feedback\n =================================== */\n.inline-feedback {\n padding: 0 16px 16px;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn:hover,\n.rating-btn.hover {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low:hover,\n.rating-btn.low.hover {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid:hover,\n.rating-btn.mid.hover {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high:hover,\n.rating-btn.high.hover {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt input[type=\"radio\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row {\n width: 100%;\n}\n\n.feedback-textarea {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n/* ===================================\n Mobile Responsive Updates\n =================================== */\n@media (max-width: 768px) {\n .tags-bar {\n padding: 8px 12px;\n }\n\n .tags-bar-content {\n gap: 8px;\n }\n\n .tag-inline {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel {\n margin-top: 12px;\n }\n\n .tags-editor-body {\n padding: 12px;\n }\n\n .tags-editor-footer {\n padding: 10px 12px;\n }\n\n .runs-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters {\n justify-content: center;\n }\n\n .runs-actions {\n justify-content: center;\n }\n\n .rating-numbers {\n justify-content: center;\n }\n\n .rating-btn {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions {\n flex-direction: column;\n }\n\n .feedback-actions button {\n width: 100%;\n }\n}\n\n/* ===================================\n Animations\n =================================== */\n@keyframes pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running .result-hero-icon {\n animation: pulse 2s ease-in-out infinite;\n}\n\n/* Tab content fade in */\n.overview-tab,\n.runs-tab,\n.details-tab,\n.analytics-tab {\n animation: fadeIn 0.3s ease;\n}\n\n/* ===================================\n Analytics Tab\n =================================== */\n.analytics-tab {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section h3 i {\n color: var(--suite-run-primary);\n}\n\n.analytics-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header h3 {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped {\n color: var(--suite-run-neutral);\n}\n\n/* Performance Matrix */\n.performance-matrix {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row:last-child {\n border-bottom: none;\n}\n\n.matrix-row:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell {\n gap: 12px;\n}\n\n.test-sequence {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running {\n color: var(--suite-run-primary);\n}\n\n.score-bar {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n/* Summary Statistics Grid */\n.stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card .stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card .stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* Responsive Analytics */\n@media (max-width: 768px) {\n .analytics-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row {\n display: none;\n }\n\n .matrix-cell {\n padding: 4px 0;\n }\n\n .test-name-cell::before,\n .status-cell::before,\n .score-cell::before,\n .duration-cell::before,\n .cost-cell::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell::before { content: 'Status:'; }\n .score-cell::before { content: 'Score:'; }\n .duration-cell::before { content: 'Duration:'; }\n .cost-cell::before { content: 'Cost:'; }\n\n .stats-grid {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card {\n padding: 16px;\n }\n\n .stat-icon {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card .stat-value {\n font-size: 20px;\n }\n}\n\n/* Focus States for Accessibility */\n.tab:focus-visible,\n.test-run-item:focus-visible,\nbutton:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n/* ===================================\n Analytics Loading State\n =================================== */\n.analytics-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading i {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Results Table\n =================================== */\n.results-table-wrapper {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table thead {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table th {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n/* Column widths - Fixed columns fit content, name column takes remainder (max 50%) */\n.seq-col {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col {\n /* Take remaining space, but cap at 50% of table width */\n width: auto;\n max-width: 50%;\n}\n\n.status-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n}\n\n.score-col {\n width: 1%; /* Shrink to fit content */\n min-width: 120px; /* Score bar needs some minimum width */\n white-space: nowrap;\n}\n\n.duration-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n/* Result Row */\n.result-row {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n/* Test Name Wrapper */\n.test-name-wrapper {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper .test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n/* Score Display */\n.score-display {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini .score-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini .score-fill.high {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini .score-fill.medium {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini .score-fill.low {\n background: var(--suite-run-danger);\n}\n\n.score-display .score-text {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n/* Status Badge in Table */\n.results-table .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table .status-badge.status-passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table .status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table .status-badge.status-error {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table .status-badge.status-skipped {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table .status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table .status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n/* Responsive Results Table */\n@media (max-width: 768px) {\n .results-table-wrapper {\n overflow-x: auto;\n }\n\n .results-table {\n min-width: 600px;\n }\n\n .results-table th,\n .results-table td {\n padding: 10px 12px;\n }\n\n .name-col {\n min-width: 150px;\n }\n}\n\n/* ===================================\n High Contrast Mode\n =================================== */\n@media (prefers-contrast: high) {\n .status-badge,\n .status-inline {\n border: 2px solid currentColor;\n }\n\n .test-run-item {\n border-width: 2px;\n }\n\n .tab.active {\n border-bottom-width: 4px;\n }\n}\n\n/* ===================================\n Evaluation Summary\n =================================== */\n.evaluation-summary {\n margin-top: 20px;\n}\n\n.eval-summary-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header i {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge i {\n font-size: 11px;\n}\n\n/* ===================================\n Needs Review Section\n =================================== */\n.needs-review-section {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header h3 i {\n font-size: 16px;\n}\n\n.review-count {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list {\n padding: 8px;\n}\n\n.review-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority .review-item-icon {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority .review-item-icon {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item:not(.high-priority):not(.medium-priority) .review-item-icon {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item:hover .review-item-action {\n color: var(--suite-run-primary);\n}\n\n.review-more {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* Mobile Responsive for Evaluation */\n@media (max-width: 768px) {\n .eval-summary-grid {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body {\n padding: 12px 14px;\n }\n\n .needs-review-header {\n padding: 12px 16px;\n }\n\n .needs-review-header h3 {\n font-size: 13px;\n }\n\n .review-item {\n padding: 10px 12px;\n }\n\n .review-item-icon {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n/* ===================================\n Feedback Column in Analytics Table\n =================================== */\n.feedback-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i {\n font-size: 12px;\n}\n\n.feedback-correctness i.correct {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i.incorrect {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review i {\n font-size: 14px;\n}\n"] }]
|
|
2276
|
-
}], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.TestingDialogService }, { type: i3.EvaluationPreferencesService }, { type: i0.ViewContainerRef }], { handleKeyboardShortcut: [{
|
|
2327
|
+
args: [{ standalone: false, selector: 'mj-test-suite-run-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"test-suite-run-form\" kendoDialogContainer>\n <!-- Header Section -->\n <div class=\"suite-run-header\">\n <!-- Breadcrumb Navigation -->\n <nav class=\"breadcrumb\" aria-label=\"Breadcrumb\">\n <ol>\n <li>\n <a href=\"javascript:void(0)\" (click)=\"navigateToTestingDashboard()\">\n <i class=\"fas fa-vial\"></i>\n <span class=\"breadcrumb-text\">Testing</span>\n </a>\n </li>\n @if (testSuite) {\n <li>\n <i class=\"fas fa-chevron-right separator\"></i>\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\">\n <i class=\"fas fa-layer-group\"></i>\n <span class=\"breadcrumb-text\">{{ testSuite.Name }}</span>\n </a>\n </li>\n }\n <li class=\"current\">\n <i class=\"fas fa-chevron-right separator\"></i>\n <span>Run #{{ record.ID.substring(0, 8) }}</span>\n </li>\n </ol>\n </nav>\n\n <!-- Header Content -->\n <div class=\"header-content\">\n <div class=\"header-left\">\n <div class=\"suite-run-icon\" [style.background-color]=\"getStatusColor()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"suite-run-info\">\n <h1>Suite Run</h1>\n <div class=\"suite-run-meta\">\n <span class=\"status-badge\" [ngClass]=\"getStatusClass()\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n {{ record.Status }}\n </span>\n @if (record.Environment) {\n <span class=\"meta-tag environment\">\n <i class=\"fas fa-server\"></i>\n {{ record.Environment }}\n </span>\n }\n @if (record.TriggerType) {\n <span class=\"meta-tag trigger\">\n <i class=\"fas fa-bolt\"></i>\n {{ record.TriggerType }}\n </span>\n }\n </div>\n </div>\n </div>\n <div class=\"header-actions\">\n <!-- Evaluation Mode Toggle -->\n <app-evaluation-mode-toggle></app-evaluation-mode-toggle>\n @if (record.SuiteID) {\n <button kendoButton (click)=\"reRunSuite()\" themeColor=\"primary\">\n <i class=\"fas fa-play\"></i> Re-run Suite\n </button>\n }\n <button kendoButton (click)=\"refresh()\" [disabled]=\"isRefreshing\">\n <i class=\"fas\" [ngClass]=\"isRefreshing ? 'fa-sync fa-spin' : 'fa-sync'\"></i>\n {{ isRefreshing ? 'Refreshing...' : 'Refresh' }}\n </button>\n </div>\n </div>\n\n <!-- Metrics Bar -->\n <div class=\"metrics-bar\">\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-clock\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ calculateDuration() }}</div>\n <div class=\"metric-label\">Duration</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-percentage\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getPassRate().toFixed(1) }}%</div>\n <div class=\"metric-label\">Pass Rate</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-dollar-sign\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ formatCost(record.TotalCostUSD) }}</div>\n <div class=\"metric-label\">Total Cost</div>\n </div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">\n <i class=\"fas fa-calendar\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ getRelativeTime(record.StartedAt) }}</div>\n <div class=\"metric-label\">Started</div>\n </div>\n </div>\n </div>\n\n <!-- Results Summary -->\n <div class=\"results-summary\">\n <div class=\"result-item passed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-check-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.PassedTests || 0 }}</span>\n <span class=\"result-label\">Passed</span>\n </div>\n </div>\n <div class=\"result-item failed\">\n <div class=\"result-icon\">\n <i class=\"fas fa-times-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.FailedTests || 0 }}</span>\n <span class=\"result-label\">Failed</span>\n </div>\n </div>\n <div class=\"result-item error\">\n <div class=\"result-icon\">\n <i class=\"fas fa-exclamation-circle\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.ErrorTests || 0 }}</span>\n <span class=\"result-label\">Errors</span>\n </div>\n </div>\n <div class=\"result-item skipped\">\n <div class=\"result-icon\">\n <i class=\"fas fa-forward\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.SkippedTests || 0 }}</span>\n <span class=\"result-label\">Skipped</span>\n </div>\n </div>\n <div class=\"result-item total\">\n <div class=\"result-icon\">\n <i class=\"fas fa-list\"></i>\n </div>\n <div class=\"result-content\">\n <span class=\"result-count\">{{ record.TotalTests || 0 }}</span>\n <span class=\"result-label\">Total</span>\n </div>\n </div>\n </div>\n\n <!-- Tags Section - Sleek inline design -->\n @if (!editingTags) {\n <div class=\"tags-bar\">\n <div class=\"tags-bar-content\">\n <span class=\"tags-bar-label\"><i class=\"fas fa-tags\"></i></span>\n @if (tags.length > 0) {\n <div class=\"tags-bar-chips\">\n @for (tag of tags; track tag) {\n <span class=\"tag-inline\">{{ tag }}</span>\n }\n </div>\n }\n @if (tags.length === 0) {\n <span class=\"tags-bar-empty\">No tags</span>\n }\n <button class=\"tags-bar-edit\" (click)=\"startEditingTags()\" title=\"Edit tags\">\n <i class=\"fas fa-plus\"></i> Add\n </button>\n </div>\n </div>\n }\n\n <!-- Tags Editor - Expanded when editing -->\n @if (editingTags) {\n <div class=\"tags-editor-panel\">\n <div class=\"tags-editor-header\">\n <span class=\"tags-editor-title\"><i class=\"fas fa-tags\"></i> Edit Tags</span>\n </div>\n <div class=\"tags-editor-body\">\n <div class=\"tags-editor-chips\">\n @for (tag of tags; track tag) {\n <span class=\"tag-editable\">\n {{ tag }}\n <button class=\"tag-remove-btn\" (click)=\"removeTag(tag)\" title=\"Remove tag\">\n <i class=\"fas fa-times\"></i>\n </button>\n </span>\n }\n @if (tags.length === 0) {\n <span class=\"tags-empty-hint\">No tags yet</span>\n }\n </div>\n <div class=\"tags-editor-input\">\n <input type=\"text\"\n [(ngModel)]=\"newTag\"\n placeholder=\"Type a tag and press Enter...\"\n (keyup.enter)=\"addTag()\"\n class=\"tag-text-input\" />\n <button kendoButton (click)=\"addTag()\" [disabled]=\"!newTag.trim()\" fillMode=\"flat\">\n <i class=\"fas fa-plus\"></i>\n </button>\n </div>\n </div>\n <div class=\"tags-editor-footer\">\n <button kendoButton (click)=\"saveTags()\" themeColor=\"primary\" [disabled]=\"savingTags\">\n @if (savingTags) {\n <i class=\"fas fa-spinner fa-spin\"></i>\n }\n {{ savingTags ? 'Saving...' : 'Save' }}\n </button>\n <button kendoButton (click)=\"cancelEditingTags()\" fillMode=\"flat\">Cancel</button>\n </div>\n </div>\n }\n </div>\n\n <!-- Tabs -->\n <div class=\"tabs-container\">\n <div class=\"tabs\" role=\"tablist\">\n <button class=\"tab\"\n [class.active]=\"activeTab === 'overview'\"\n (click)=\"changeTab('overview')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'overview'\">\n <i class=\"fas fa-th-large\"></i> Overview\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'runs'\"\n (click)=\"changeTab('runs')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'runs'\">\n <i class=\"fas fa-list\"></i> Test Runs\n @if (testRunsLoaded) {\n <span class=\"tab-badge\">{{ testRuns.length }}</span>\n }\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'details'\"\n (click)=\"changeTab('details')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'details'\">\n <i class=\"fas fa-info-circle\"></i> Details\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'analytics'\"\n (click)=\"changeTab('analytics')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'analytics'\"\n title=\"Press 4\">\n <i class=\"fas fa-chart-bar\"></i> Analytics\n </button>\n <button class=\"tab\"\n [class.active]=\"activeTab === 'execution'\"\n (click)=\"changeTab('execution')\"\n role=\"tab\"\n [attr.aria-selected]=\"activeTab === 'execution'\"\n title=\"Press 5\">\n <i class=\"fas fa-microchip\"></i>\n <span>Execution</span>\n </button>\n </div>\n </div>\n\n <!-- Tab Content -->\n <div class=\"tab-content\">\n <!-- Overview Tab -->\n @if (activeTab === 'overview') {\n <div class=\"overview-tab\">\n <!-- Result Hero -->\n <div class=\"result-hero\"\n [class.passed]=\"record.Status === 'Completed' && getPassRate() >= 90\"\n [class.failed]=\"record.Status === 'Failed' || getPassRate() < 50\"\n [class.running]=\"record.Status === 'Running'\"\n [class.pending]=\"record.Status === 'Pending'\">\n <div class=\"result-hero-icon\">\n <i class=\"fas\" [ngClass]=\"getStatusIcon()\"></i>\n </div>\n <div class=\"result-hero-text\">\n <h2>SUITE {{ record.Status.toUpperCase() || 'UNKNOWN' }}</h2>\n <div class=\"result-hero-stats\">\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ getPassRate().toFixed(1) }}%</span>\n <span class=\"stat-label\">Pass Rate</span>\n </div>\n <div class=\"stat-divider\"></div>\n <div class=\"stat-item\">\n <span class=\"stat-value\">{{ record.PassedTests || 0 }} / {{ record.TotalTests || 0 }}</span>\n <span class=\"stat-label\">Tests Passed</span>\n </div>\n </div>\n </div>\n </div>\n <!-- Evaluation Metrics Summary -->\n @if (evaluationMetrics && feedbacksLoaded) {\n <div class=\"evaluation-summary\">\n <div class=\"eval-summary-grid\">\n <!-- Human Feedback Card -->\n @if (evalPreferences.showHuman) {\n <div class=\"eval-summary-card\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-user\"></i>\n <span>Human Feedback</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Reviewed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanReviewedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n @if (evaluationMetrics.humanReviewedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Avg Rating</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.humanAvgRating.toFixed(1) }}/10</span>\n </div>\n }\n @if (evaluationMetrics.humanReviewedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Correct</span>\n <span class=\"eval-stat-value correct\">{{ evaluationMetrics.humanCorrectCount }}</span>\n @if (evaluationMetrics.humanIncorrectCount > 0) {\n <span class=\"eval-stat-value incorrect\">{{ evaluationMetrics.humanIncorrectCount }} incorrect</span>\n }\n </div>\n }\n </div>\n @if (evaluationMetrics.humanPendingCount > 0) {\n <div class=\"eval-card-footer\">\n <span class=\"pending-badge\">\n <i class=\"fa-solid fa-clock\"></i>\n {{ evaluationMetrics.humanPendingCount }} need review\n </span>\n </div>\n }\n </div>\n }\n <!-- Auto Score Card -->\n @if (evalPreferences.showAuto) {\n <div class=\"eval-summary-card\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>Auto Evaluation</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Evaluated</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoEvaluatedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n @if (evaluationMetrics.autoEvaluatedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Avg Score</span>\n <span class=\"eval-stat-value\">{{ (evaluationMetrics.autoAvgScore * 100).toFixed(0) }}%</span>\n </div>\n }\n @if (evaluationMetrics.autoEvaluatedCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Pass Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.autoPassRate.toFixed(0) }}%</span>\n </div>\n }\n </div>\n </div>\n }\n <!-- Execution Card -->\n @if (evalPreferences.showExecution) {\n <div class=\"eval-summary-card\">\n <div class=\"eval-card-header\">\n <i class=\"fa-solid fa-circle-check\"></i>\n <span>Execution</span>\n </div>\n <div class=\"eval-card-body\">\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Completed</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execCompletedCount }} / {{ evaluationMetrics.totalRuns }}</span>\n </div>\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Success Rate</span>\n <span class=\"eval-stat-value\">{{ evaluationMetrics.execSuccessRate.toFixed(0) }}%</span>\n </div>\n @if (evaluationMetrics.execErrorCount > 0 || evaluationMetrics.execTimeoutCount > 0) {\n <div class=\"eval-stat-row\">\n <span class=\"eval-stat-label\">Issues</span>\n @if (evaluationMetrics.execErrorCount > 0) {\n <span class=\"eval-stat-value error\">{{ evaluationMetrics.execErrorCount }} errors</span>\n }\n @if (evaluationMetrics.execTimeoutCount > 0) {\n <span class=\"eval-stat-value timeout\">{{ evaluationMetrics.execTimeoutCount }} timeouts</span>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n <!-- Needs Review Section -->\n @if (evalPreferences.showHuman && needsReviewItems.length > 0 && feedbacksLoaded) {\n <div class=\"needs-review-section\">\n <div class=\"needs-review-header\">\n <h3><i class=\"fa-solid fa-user-clock\"></i> Needs Review</h3>\n <span class=\"review-count\">{{ needsReviewItems.length }} items</span>\n </div>\n <div class=\"needs-review-list\">\n @for (item of needsReviewItems.slice(0, 5); track item) {\n <div class=\"review-item\"\n [class.high-priority]=\"item.priority === 'high'\"\n [class.medium-priority]=\"item.priority === 'medium'\"\n (click)=\"toggleRunExpanded(item.run.id)\">\n <div class=\"review-item-icon\">\n @if (item.priority === 'high') {\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n }\n @if (item.priority === 'medium') {\n <i class=\"fa-solid fa-circle-dot\"></i>\n }\n @if (item.priority === 'low') {\n <i class=\"fa-solid fa-clock\"></i>\n }\n </div>\n <div class=\"review-item-content\">\n <span class=\"review-item-name\">{{ item.run.testName }}</span>\n <span class=\"review-item-reason\">{{ item.reason }}</span>\n </div>\n <div class=\"review-item-action\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n @if (needsReviewItems.length > 5) {\n <div class=\"review-more\">\n <button kendoButton fillMode=\"flat\" (click)=\"changeTab('runs')\">\n View all {{ needsReviewItems.length }} items\n </button>\n </div>\n }\n </div>\n </div>\n }\n <!-- Progress Ring (when running) -->\n @if (record.Status === 'Running' || record.Status === 'Pending') {\n <div class=\"progress-section\">\n <div class=\"progress-info\">\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n <span>Suite execution in progress...</span>\n </div>\n <div class=\"auto-refresh-notice\">\n <i class=\"fas fa-sync\"></i>\n Auto-refreshing every 5 seconds\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Test Runs Tab -->\n @if (activeTab === 'runs') {\n <div class=\"runs-tab\">\n <!-- Toolbar -->\n @if (testRunsLoaded && testRuns.length > 0) {\n <div class=\"runs-toolbar\">\n <div class=\"run-filters\">\n <button class=\"filter-btn\"\n [class.active]=\"runStatusFilter === null\"\n (click)=\"setRunStatusFilter(null)\">\n All ({{ testRuns.length }})\n </button>\n @if (getRunCountByStatus('Passed') > 0) {\n <button class=\"filter-btn passed\"\n [class.active]=\"runStatusFilter === 'Passed'\"\n (click)=\"setRunStatusFilter('Passed')\"\n >\n <i class=\"fas fa-check\"></i> Passed ({{ getRunCountByStatus('Passed') }})\n </button>\n }\n @if (getRunCountByStatus('Failed') > 0) {\n <button class=\"filter-btn failed\"\n [class.active]=\"runStatusFilter === 'Failed'\"\n (click)=\"setRunStatusFilter('Failed')\"\n >\n <i class=\"fas fa-times\"></i> Failed ({{ getRunCountByStatus('Failed') }})\n </button>\n }\n @if (getRunCountByStatus('Error') > 0) {\n <button class=\"filter-btn error\"\n [class.active]=\"runStatusFilter === 'Error'\"\n (click)=\"setRunStatusFilter('Error')\"\n >\n <i class=\"fas fa-exclamation\"></i> Error ({{ getRunCountByStatus('Error') }})\n </button>\n }\n </div>\n <div class=\"runs-actions\">\n <button kendoButton (click)=\"exportToCSV()\">\n <i class=\"fas fa-download\"></i> Export CSV\n </button>\n </div>\n </div>\n }\n <!-- Loading State -->\n @if (loadingTestRuns) {\n <div class=\"loading-state\">\n <div class=\"skeleton-list\">\n @for (i of [1,2,3,4,5]; track i) {\n <div class=\"skeleton-card\">\n <div class=\"skeleton-sequence\"></div>\n <div class=\"skeleton-icon\"></div>\n <div class=\"skeleton-content\">\n <div class=\"skeleton-line wide\"></div>\n <div class=\"skeleton-line narrow\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <!-- Test Runs List -->\n @if (!loadingTestRuns && testRuns.length > 0) {\n <div class=\"test-runs-list\">\n @for (run of getFilteredTestRuns(); track run) {\n <div class=\"test-run-card\">\n <div class=\"test-run-item\" (click)=\"toggleRunExpanded(run.ID)\">\n <div class=\"run-sequence\">{{ run.Sequence || '-' }}</div>\n <div class=\"run-icon\" [style.background-color]=\"getRunStatusColor(run.Status)\">\n <i class=\"fas\" [ngClass]=\"getRunStatusIcon(run.Status)\"></i>\n </div>\n <div class=\"run-content\">\n <div class=\"run-header-row\">\n <div class=\"run-name\">{{ run.Test }}</div>\n <!-- Evaluation Badge -->\n <app-evaluation-badge\n [executionStatus]=\"run.Status\"\n [originalStatus]=\"run.Status\"\n [autoScore]=\"run.Score\"\n [humanRating]=\"getFeedbackRating(run.ID) || null\"\n [humanIsCorrect]=\"getHumanIsCorrect(run.ID)\"\n [hasHumanFeedback]=\"hasFeedback(run.ID)\"\n [preferences]=\"evalPreferences\"\n [mode]=\"'compact'\">\n </app-evaluation-badge>\n </div>\n <div class=\"run-meta\">\n @if (run.DurationSeconds) {\n <span class=\"run-duration\">\n <i class=\"fas fa-clock\"></i> {{ run.DurationSeconds.toFixed(1) }}s\n </span>\n }\n @if (run.CostUSD) {\n <span class=\"run-cost\">\n <i class=\"fas fa-dollar-sign\"></i> {{ run.CostUSD.toFixed(6) }}\n </span>\n }\n @if (run.TargetLogEntityID && run.TargetLogID) {\n <mj-entity-link-pill\n [entityName]=\"run.TargetLogEntity\"\n [recordId]=\"run.TargetLogID\">\n </mj-entity-link-pill>\n }\n </div>\n @if (getRunTags(run).length > 0) {\n <div class=\"run-tags\">\n @for (tag of getRunTags(run); track tag) {\n <span class=\"tag-chip\">{{ tag }}</span>\n }\n </div>\n }\n </div>\n <div class=\"run-expand\">\n <i class=\"fas\" [class.fa-chevron-down]=\"expandedRunId !== run.ID\" [class.fa-chevron-up]=\"expandedRunId === run.ID\"></i>\n </div>\n </div>\n <!-- Expanded Inline Feedback -->\n @if (expandedRunId === run.ID) {\n <div class=\"inline-feedback\">\n <div class=\"feedback-divider\"></div>\n <div class=\"feedback-section\">\n <div class=\"feedback-label\">Quick Feedback</div>\n <div class=\"inline-rating\">\n <div class=\"rating-numbers\">\n @for (num of [1,2,3,4,5,6,7,8,9,10]; track num) {\n <button\n type=\"button\"\n class=\"rating-btn\"\n [class.selected]=\"num === inlineRating\"\n [class.hover]=\"num === inlineHoverRating\"\n [class.low]=\"num <= 3\"\n [class.mid]=\"num >= 4 && num <= 6\"\n [class.high]=\"num >= 7\"\n (click)=\"setInlineRating(num); $event.stopPropagation()\"\n (mouseenter)=\"inlineHoverRating = num\"\n (mouseleave)=\"inlineHoverRating = 0\">\n {{ num }}\n </button>\n }\n </div>\n @if (inlineRating > 0) {\n <div class=\"rating-info\">\n <span class=\"rating-value\">{{ inlineRating }}/10</span>\n <span class=\"rating-label-text\">{{ getInlineRatingLabel() }}</span>\n </div>\n }\n </div>\n <div class=\"correctness-row\">\n <span class=\"correctness-label\">Was it correct?</span>\n <div class=\"correctness-options\">\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"true\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Yes</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"false\" [(ngModel)]=\"inlineIsCorrect\">\n <span>No</span>\n </label>\n <label class=\"radio-opt\" (click)=\"$event.stopPropagation()\">\n <input type=\"radio\" name=\"correct-{{run.ID}}\" [value]=\"null\" [(ngModel)]=\"inlineIsCorrect\">\n <span>Not Sure</span>\n </label>\n </div>\n </div>\n <div class=\"comments-row\" (click)=\"$event.stopPropagation()\">\n <textarea\n class=\"feedback-textarea\"\n [(ngModel)]=\"inlineComments\"\n placeholder=\"Add comments or corrections...\"\n rows=\"3\"></textarea>\n </div>\n <div class=\"feedback-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton (click)=\"openTestRun(run.ID)\">\n <i class=\"fas fa-external-link-alt\"></i> View Full Details\n </button>\n <button kendoButton\n themeColor=\"primary\"\n (click)=\"saveInlineFeedback()\"\n [disabled]=\"!canSubmitInlineFeedback() || savingInlineFeedback\">\n <i class=\"fas\" [ngClass]=\"savingInlineFeedback ? 'fa-spinner fa-spin' : 'fa-save'\"></i>\n {{ savingInlineFeedback ? 'Saving...' : (hasFeedback(run.ID) ? 'Update' : 'Save') }}\n </button>\n </div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- Empty State -->\n @if (testRunsLoaded && !loadingTestRuns && testRuns.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-inbox\"></i>\n </div>\n <h4>No Test Runs Found</h4>\n <p>No test runs have been recorded for this suite execution.</p>\n </div>\n }\n <!-- Filtered Empty -->\n @if (testRunsLoaded && !loadingTestRuns && testRuns.length > 0 && getFilteredTestRuns().length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-filter\"></i>\n </div>\n <h4>No Matching Runs</h4>\n <p>No test runs match the current filter.</p>\n <button kendoButton (click)=\"setRunStatusFilter(null)\">Clear Filter</button>\n </div>\n }\n </div>\n }\n\n <!-- Details Tab -->\n @if (activeTab === 'details') {\n <div class=\"details-tab\">\n <div class=\"details-card\">\n <h3><i class=\"fas fa-info-circle\"></i> Run Information</h3>\n <div class=\"details-grid\">\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run ID</div>\n <div class=\"detail-value monospace\">{{ record.ID }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Test Suite</div>\n <div class=\"detail-value\">\n @if (testSuite) {\n <a href=\"javascript:void(0)\" (click)=\"openTestSuite()\">{{ testSuite.Name }}</a>\n }\n @if (!testSuite) {\n <span>Loading...</span>\n }\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Status</div>\n <div class=\"detail-value\">\n <span class=\"status-inline\" [ngClass]=\"getStatusClass()\">{{ record.Status }}</span>\n </div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Run By</div>\n <div class=\"detail-value\">{{ record.RunByUser || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Started At</div>\n <div class=\"detail-value\">{{ record.StartedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Completed At</div>\n <div class=\"detail-value\">{{ record.CompletedAt | date:'medium' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Environment</div>\n <div class=\"detail-value\">{{ record.Environment || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Trigger Type</div>\n <div class=\"detail-value\">{{ record.TriggerType || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Git Commit</div>\n <div class=\"detail-value monospace\">{{ record.GitCommit || 'N/A' }}</div>\n </div>\n <div class=\"detail-item\">\n <div class=\"detail-label\">Agent Version</div>\n <div class=\"detail-value\">{{ record.AgentVersion || 'N/A' }}</div>\n </div>\n </div>\n </div>\n </div>\n }\n\n <!-- Analytics Tab -->\n @if (activeTab === 'analytics') {\n <div class=\"analytics-tab\">\n <!-- Loading State -->\n @if (loadingTestRuns) {\n <div class=\"analytics-loading\">\n <i class=\"fas fa-spinner fa-spin\"></i>\n <span>Loading test results...</span>\n </div>\n }\n <!-- Summary Statistics - Moved to top for better overview -->\n @if (!loadingTestRuns && testRuns.length > 0) {\n <div class=\"analytics-section\">\n <h3><i class=\"fas fa-chart-pie\"></i> Summary Statistics</h3>\n <div class=\"stats-grid\">\n <div class=\"stat-card\">\n <div class=\"stat-icon passed\"><i class=\"fas fa-check-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getPassedCount() }}</div>\n <div class=\"stat-label\">Passed</div>\n <div class=\"stat-percent\">{{ getPassedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon failed\"><i class=\"fas fa-times-circle\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getFailedCount() }}</div>\n <div class=\"stat-label\">Failed</div>\n <div class=\"stat-percent\">{{ getFailedPercent().toFixed(1) }}%</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon score\"><i class=\"fas fa-star\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ (getAverageScore() * 100).toFixed(1) }}%</div>\n <div class=\"stat-label\">Avg Score</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon duration\"><i class=\"fas fa-clock\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">{{ getAverageDuration().toFixed(1) }}s</div>\n <div class=\"stat-label\">Avg Duration</div>\n </div>\n </div>\n <div class=\"stat-card\">\n <div class=\"stat-icon cost\"><i class=\"fas fa-dollar-sign\"></i></div>\n <div class=\"stat-content\">\n <div class=\"stat-value\">${{ getTotalCost().toFixed(4) }}</div>\n <div class=\"stat-label\">Total Cost</div>\n </div>\n </div>\n </div>\n </div>\n }\n <!-- Test Results Table -->\n @if (!loadingTestRuns && testRuns.length > 0) {\n <div class=\"analytics-section\">\n <div class=\"analytics-header\">\n <h3><i class=\"fas fa-table\"></i> Test Results</h3>\n <div class=\"analytics-legend\">\n <span class=\"legend-item passed\"><i class=\"fas fa-check-circle\"></i> Passed</span>\n <span class=\"legend-item failed\"><i class=\"fas fa-times-circle\"></i> Failed</span>\n <span class=\"legend-item error\"><i class=\"fas fa-exclamation-circle\"></i> Error</span>\n <span class=\"legend-item skipped\"><i class=\"fas fa-forward\"></i> Skipped</span>\n </div>\n </div>\n <!-- Results Table -->\n <div class=\"results-table-wrapper\">\n <table class=\"results-table\">\n <thead>\n <tr>\n <th class=\"seq-col\">#</th>\n <th class=\"name-col\">Test Name</th>\n @if (evalPreferences.showExecution) {\n <th class=\"status-col\">Status</th>\n }\n @if (evalPreferences.showAuto) {\n <th class=\"score-col\">Auto Score</th>\n }\n @if (evalPreferences.showHuman) {\n <th class=\"feedback-col\">Human Score</th>\n }\n <th class=\"duration-col\">Duration</th>\n <th class=\"cost-col\">Cost</th>\n </tr>\n </thead>\n <tbody>\n @for (run of testRuns; track run; let i = $index) {\n <tr\n class=\"result-row\"\n [class.row-passed]=\"run.Status === 'Passed'\"\n [class.row-failed]=\"run.Status === 'Failed'\"\n [class.row-error]=\"run.Status === 'Error'\"\n [class.row-skipped]=\"run.Status === 'Skipped'\"\n (click)=\"openTestRun(run.ID)\">\n <td class=\"seq-col\">{{ i + 1 }}</td>\n <td class=\"name-col\">\n <div class=\"test-name-wrapper\">\n <span class=\"test-name\">{{ run.Test || 'Unknown Test' }}</span>\n @if (getRunTags(run).length > 0) {\n <div class=\"test-tags\">\n @for (tag of getRunTags(run).slice(0, 2); track tag) {\n <span class=\"tag-mini\">{{ tag }}</span>\n }\n </div>\n }\n </div>\n </td>\n @if (evalPreferences.showExecution) {\n <td class=\"status-col\">\n <span class=\"status-badge\" [ngClass]=\"'status-' + run.Status.toLowerCase()\">\n <i class=\"fas\"\n [class.fa-check-circle]=\"run.Status === 'Passed'\"\n [class.fa-times-circle]=\"run.Status === 'Failed'\"\n [class.fa-exclamation-circle]=\"run.Status === 'Error'\"\n [class.fa-forward]=\"run.Status === 'Skipped'\"\n [class.fa-clock]=\"run.Status === 'Pending'\"\n [class.fa-spinner]=\"run.Status === 'Running'\"\n [class.fa-spin]=\"run.Status === 'Running'\"></i>\n {{ run.Status }}\n </span>\n </td>\n }\n @if (evalPreferences.showAuto) {\n <td class=\"score-col\">\n @if (run.Score != null) {\n <div class=\"score-display\">\n <div class=\"score-bar-mini\">\n <div class=\"score-fill\"\n [style.width.%]=\"run.Score * 100\"\n [class.high]=\"run.Score >= 0.8\"\n [class.medium]=\"run.Score >= 0.5 && run.Score < 0.8\"\n [class.low]=\"run.Score < 0.5\"></div>\n </div>\n <span class=\"score-text\">{{ (run.Score * 100).toFixed(0) }}%</span>\n </div>\n }\n @if (run.Score == null) {\n <span class=\"na-value\">\u2014</span>\n }\n </td>\n }\n @if (evalPreferences.showHuman) {\n <td class=\"feedback-col\">\n @if (hasFeedback(run.ID)) {\n <div class=\"feedback-display\">\n <span class=\"feedback-rating\" [class.low]=\"getFeedbackRating(run.ID) <= 3\" [class.mid]=\"getFeedbackRating(run.ID) >= 4 && getFeedbackRating(run.ID) <= 6\" [class.high]=\"getFeedbackRating(run.ID) >= 7\">\n {{ getFeedbackRating(run.ID) }}/10\n </span>\n @if (getHumanIsCorrect(run.ID) !== null) {\n <span class=\"feedback-correctness\">\n <i class=\"fas\" [class.fa-check]=\"getHumanIsCorrect(run.ID) === true\" [class.fa-times]=\"getHumanIsCorrect(run.ID) === false\" [class.correct]=\"getHumanIsCorrect(run.ID) === true\" [class.incorrect]=\"getHumanIsCorrect(run.ID) === false\"></i>\n </span>\n }\n </div>\n }\n @if (!hasFeedback(run.ID)) {\n <span class=\"na-value needs-review\">\n <i class=\"fas fa-user-clock\"></i>\n </span>\n }\n </td>\n }\n <td class=\"duration-col\">\n @if (run.DurationSeconds) {\n <span>{{ run.DurationSeconds.toFixed(1) }}s</span>\n }\n @if (!run.DurationSeconds) {\n <span class=\"na-value\">\u2014</span>\n }\n </td>\n <td class=\"cost-col\">\n @if (run.CostUSD) {\n <span>${{ run.CostUSD.toFixed(4) }}</span>\n }\n @if (!run.CostUSD) {\n <span class=\"na-value\">\u2014</span>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n }\n <!-- Empty State -->\n @if (!loadingTestRuns && testRunsLoaded && testRuns.length === 0) {\n <div class=\"empty-state\">\n <div class=\"empty-icon\">\n <i class=\"fas fa-chart-bar\"></i>\n </div>\n <h4>No Test Results Yet</h4>\n <p>Test runs will appear here once the suite execution completes.</p>\n </div>\n }\n </div>\n }\n\n <!-- Execution Tab -->\n @if (activeTab === 'execution') {\n <div class=\"execution-tab\">\n <mj-execution-context\n [machineName]=\"record.MachineName\"\n [machineId]=\"record.MachineID\"\n [runByUserName]=\"record.RunByUserName\"\n [runByUserEmail]=\"record.RunByUserEmail\"\n [runContextDetailsJson]=\"record.RunContextDetails\">\n </mj-execution-context>\n </div>\n }\n </div>\n\n <!-- Keyboard Shortcuts Toggle Button -->\n <button class=\"shortcuts-toggle\" (click)=\"toggleShortcuts()\" [title]=\"showShortcuts ? 'Hide keyboard shortcuts' : 'Show keyboard shortcuts'\">\n <i class=\"fas fa-keyboard\"></i>\n </button>\n\n <!-- Keyboard Shortcuts Hint (Desktop Only) -->\n @if (showShortcuts) {\n <div class=\"keyboard-shortcuts\">\n <div class=\"shortcuts-header\">\n <i class=\"fas fa-keyboard\"></i>\n Shortcuts\n <button class=\"shortcuts-close\" (click)=\"toggleShortcuts()\" title=\"Hide shortcuts\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n <div class=\"shortcut-list\">\n <div class=\"shortcut-item\">\n <span>Refresh</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Re-run Suite</span>\n <span class=\"shortcut-keys\"><kbd>Cmd</kbd><kbd>Shift</kbd><kbd>R</kbd></span>\n </div>\n <div class=\"shortcut-item\">\n <span>Switch Tabs</span>\n <span class=\"shortcut-keys\"><kbd>1</kbd>-<kbd>5</kbd></span>\n </div>\n </div>\n </div>\n }\n</div>\n", styles: ["/* ===================================\n Test Suite Run Form - Premium UX\n World-class responsive design\n =================================== */\n\n/* CSS Custom Properties */\n:host {\n --suite-run-primary: #3b82f6;\n --suite-run-primary-light: #eff6ff;\n --suite-run-success: #10b981;\n --suite-run-success-light: #ecfdf5;\n --suite-run-danger: #ef4444;\n --suite-run-danger-light: #fef2f2;\n --suite-run-warning: #f59e0b;\n --suite-run-warning-light: #fffbeb;\n --suite-run-info: #8b5cf6;\n --suite-run-info-light: #f5f3ff;\n --suite-run-neutral: #6b7280;\n --suite-run-neutral-light: #f9fafb;\n --suite-run-bg: #f8fafc;\n --suite-run-card: #ffffff;\n --suite-run-border: #e2e8f0;\n --suite-run-text: #1e293b;\n --suite-run-text-secondary: #64748b;\n --suite-run-radius: 12px;\n --suite-run-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);\n --suite-run-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n --suite-run-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* Base Container */\n.test-suite-run-form {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--suite-run-bg);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n}\n\n/* ===================================\n Header Section\n =================================== */\n.suite-run-header {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n padding: 20px 24px;\n}\n\n/* Breadcrumb */\n.breadcrumb {\n margin-bottom: 16px;\n}\n\n.breadcrumb ol {\n display: flex;\n align-items: center;\n gap: 4px;\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: 13px;\n}\n\n.breadcrumb li {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.breadcrumb a {\n color: var(--suite-run-primary);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 8px;\n border-radius: 6px;\n transition: background 0.15s;\n}\n\n.breadcrumb a:hover {\n background: rgba(59, 130, 246, 0.1);\n text-decoration: none;\n}\n\n.breadcrumb .separator {\n font-size: 10px;\n color: var(--suite-run-text-secondary);\n margin: 0 4px;\n}\n\n.breadcrumb .current {\n color: var(--suite-run-text-secondary);\n font-weight: 500;\n}\n\n.breadcrumb-text {\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Header Content */\n.header-content {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 16px;\n margin-bottom: 24px;\n}\n\n.header-left {\n display: flex;\n gap: 16px;\n align-items: flex-start;\n}\n\n.suite-run-icon {\n width: 56px;\n height: 56px;\n border-radius: var(--suite-run-radius);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 24px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.suite-run-info h1 {\n margin: 0 0 8px 0;\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.suite-run-meta {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n}\n\n.status-badge.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-badge.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.meta-tag {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n background: var(--suite-run-neutral-light);\n border-radius: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.meta-tag i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.header-actions {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n\n/* ===================================\n Metrics Bar\n =================================== */\n.metrics-bar {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n margin-bottom: 20px;\n}\n\n.metric-card {\n display: flex;\n align-items: center;\n gap: 12px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n padding: 14px;\n transition: var(--suite-run-transition);\n}\n\n.metric-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-card);\n border-radius: 10px;\n color: var(--suite-run-primary);\n font-size: 16px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.metric-content {\n flex: 1;\n min-width: 0;\n}\n\n.metric-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.metric-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n margin-top: 2px;\n}\n\n/* ===================================\n Results Summary\n =================================== */\n.results-summary {\n display: flex;\n gap: 12px;\n padding-top: 20px;\n border-top: 1px solid var(--suite-run-border);\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.result-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: 10px;\n flex-shrink: 0;\n transition: var(--suite-run-transition);\n}\n\n.result-item:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.result-icon {\n font-size: 24px;\n}\n\n.result-content {\n display: flex;\n flex-direction: column;\n}\n\n.result-count {\n font-size: 20px;\n font-weight: 700;\n line-height: 1.2;\n}\n\n.result-label {\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.result-item.passed .result-icon,\n.result-item.passed .result-count {\n color: var(--suite-run-success);\n}\n\n.result-item.failed .result-icon,\n.result-item.failed .result-count {\n color: var(--suite-run-danger);\n}\n\n.result-item.error .result-icon,\n.result-item.error .result-count {\n color: var(--suite-run-warning);\n}\n\n.result-item.skipped .result-icon,\n.result-item.skipped .result-count {\n color: var(--suite-run-neutral);\n}\n\n.result-item.total .result-icon,\n.result-item.total .result-count {\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Tabs\n =================================== */\n.tabs-container {\n background: var(--suite-run-card);\n border-bottom: 1px solid var(--suite-run-border);\n position: sticky;\n top: 0;\n z-index: 10;\n}\n\n.tabs {\n display: flex;\n padding: 0 24px;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n}\n\n.tabs::-webkit-scrollbar {\n display: none;\n}\n\n.tab {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border: none;\n background: transparent;\n border-bottom: 3px solid transparent;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: var(--suite-run-transition);\n white-space: nowrap;\n position: relative;\n}\n\n.tab:hover {\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tab.active {\n color: var(--suite-run-primary);\n border-bottom-color: var(--suite-run-primary);\n font-weight: 600;\n}\n\n.tab i {\n font-size: 15px;\n}\n\n.tab-badge {\n background: var(--suite-run-border);\n color: var(--suite-run-text-secondary);\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.tab.active .tab-badge {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.tab-shortcut {\n display: none;\n width: 18px;\n height: 18px;\n background: var(--suite-run-neutral-light);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n align-items: center;\n justify-content: center;\n margin-left: 4px;\n}\n\n/* ===================================\n Tab Content\n =================================== */\n.tab-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n}\n\n/* ===================================\n Overview Tab\n =================================== */\n.overview-tab {\n display: flex;\n flex-direction: column;\n gap: 20px;\n max-width: 800px;\n margin: 0 auto;\n width: 100%;\n}\n\n.result-hero {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 48px 32px;\n text-align: center;\n border: 2px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n}\n\n.result-hero.passed {\n background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);\n border-color: var(--suite-run-success);\n}\n\n.result-hero.failed {\n background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);\n border-color: var(--suite-run-danger);\n}\n\n.result-hero.running {\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border-color: var(--suite-run-primary);\n}\n\n.result-hero.pending {\n background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);\n border-color: var(--suite-run-info);\n}\n\n.result-hero-icon {\n font-size: 72px;\n margin-bottom: 20px;\n}\n\n.result-hero.passed .result-hero-icon {\n color: var(--suite-run-success);\n}\n\n.result-hero.failed .result-hero-icon {\n color: var(--suite-run-danger);\n}\n\n.result-hero.running .result-hero-icon {\n color: var(--suite-run-primary);\n}\n\n.result-hero.pending .result-hero-icon {\n color: var(--suite-run-info);\n}\n\n.result-hero-text h2 {\n margin: 0 0 16px 0;\n font-size: 32px;\n font-weight: 800;\n color: var(--suite-run-text);\n letter-spacing: -0.025em;\n}\n\n.result-hero-stats {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 32px;\n}\n\n.stat-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-divider {\n width: 1px;\n height: 40px;\n background: var(--suite-run-border);\n}\n\n/* Progress Section */\n.progress-section {\n background: var(--suite-run-primary-light);\n border: 1px solid rgba(59, 130, 246, 0.2);\n border-radius: var(--suite-run-radius);\n padding: 20px;\n text-align: center;\n}\n\n.progress-info {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n font-size: 16px;\n font-weight: 500;\n color: var(--suite-run-primary);\n margin-bottom: 8px;\n}\n\n.progress-info i {\n font-size: 20px;\n}\n\n.auto-refresh-notice {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* ===================================\n Test Runs Tab\n =================================== */\n.runs-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n/* Loading Skeleton */\n.loading-state {\n animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.skeleton-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.skeleton-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 1px solid var(--suite-run-border);\n}\n\n.skeleton-sequence {\n width: 32px;\n height: 32px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 50%;\n}\n\n.skeleton-icon {\n width: 40px;\n height: 40px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 8px;\n}\n\n.skeleton-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.skeleton-line {\n height: 14px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n border-radius: 4px;\n}\n\n.skeleton-line.wide {\n width: 70%;\n}\n\n.skeleton-line.narrow {\n width: 40%;\n}\n\n@keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n}\n\n/* Test Runs List */\n.test-runs-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n transform: translateX(4px);\n}\n\n.test-run-item:active {\n transform: translateX(2px);\n}\n\n.run-sequence {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 13px;\n font-weight: 700;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.run-icon {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 10px;\n color: white;\n font-size: 16px;\n flex-shrink: 0;\n box-shadow: var(--suite-run-shadow);\n}\n\n.run-content {\n flex: 1;\n min-width: 0;\n}\n\n.run-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.run-meta {\n display: flex;\n gap: 16px;\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n flex-wrap: wrap;\n}\n\n.run-status {\n font-weight: 700;\n}\n\n.run-score,\n.run-duration {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-score i,\n.run-duration i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n.test-run-item > i {\n color: #cbd5e1;\n font-size: 14px;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover > i {\n color: var(--suite-run-primary);\n transform: translateX(4px);\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 20px;\n text-align: center;\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n border: 2px dashed var(--suite-run-border);\n}\n\n.empty-icon {\n width: 80px;\n height: 80px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n margin-bottom: 20px;\n}\n\n.empty-icon i {\n font-size: 32px;\n color: #cbd5e1;\n}\n\n.empty-state h4 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.empty-state p {\n margin: 0;\n font-size: 14px;\n color: var(--suite-run-text-secondary);\n max-width: 300px;\n}\n\n/* ===================================\n Details Tab\n =================================== */\n.details-tab {\n max-width: 900px;\n margin: 0 auto;\n width: 100%;\n}\n\n.details-card {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.details-card h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.details-card h3 i {\n color: var(--suite-run-primary);\n}\n\n.details-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 20px;\n}\n\n.detail-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.detail-label {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n}\n\n.detail-value {\n font-size: 14px;\n color: var(--suite-run-text);\n word-wrap: break-word;\n}\n\n.detail-value.monospace {\n font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;\n font-size: 12px;\n background: var(--suite-run-neutral-light);\n padding: 6px 10px;\n border-radius: 6px;\n}\n\n.detail-value a {\n color: var(--suite-run-primary);\n text-decoration: none;\n font-weight: 500;\n transition: var(--suite-run-transition);\n}\n\n.detail-value a:hover {\n color: #2563eb;\n text-decoration: underline;\n}\n\n.status-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-inline.status-completed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.status-inline.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.status-inline.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.status-inline.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.status-inline.status-cancelled {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n/* ===================================\n Keyboard Shortcuts\n =================================== */\n/* Toggle button - visible when shortcuts are hidden */\n.shortcuts-toggle {\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 36px;\n height: 36px;\n border-radius: 50%;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n box-shadow: var(--suite-run-shadow);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n z-index: 99;\n transition: var(--suite-run-transition);\n opacity: 0.7;\n}\n\n.shortcuts-toggle:hover {\n opacity: 1;\n transform: scale(1.1);\n color: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n}\n\n.keyboard-shortcuts {\n position: fixed;\n bottom: 20px;\n right: 20px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n padding: 12px 16px;\n box-shadow: var(--suite-run-shadow-lg);\n font-size: 12px;\n z-index: 100;\n opacity: 0.9;\n transition: var(--suite-run-transition);\n}\n\n.keyboard-shortcuts:hover {\n opacity: 1;\n}\n\n.shortcuts-header {\n display: flex;\n align-items: center;\n gap: 6px;\n font-weight: 600;\n color: var(--suite-run-text);\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.shortcuts-header i {\n color: var(--suite-run-primary);\n}\n\n.shortcuts-close {\n margin-left: auto;\n background: none;\n border: none;\n cursor: pointer;\n color: var(--suite-run-text-muted);\n font-size: 12px;\n padding: 2px 4px;\n border-radius: 4px;\n transition: var(--suite-run-transition);\n}\n\n.shortcuts-close:hover {\n color: var(--suite-run-text);\n background: var(--suite-run-border);\n}\n\n.shortcut-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.shortcut-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n}\n\n.shortcut-item span:first-child {\n color: var(--suite-run-text-secondary);\n}\n\n.shortcut-keys {\n display: flex;\n gap: 4px;\n}\n\nkbd {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: linear-gradient(180deg, #f8fafc 0%, #e2e8f0 100%);\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n font-family: inherit;\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text);\n box-shadow: 0 1px 0 #94a3b8;\n}\n\n/* ===================================\n Responsive Design - Tablet\n =================================== */\n@media (max-width: 1024px) {\n .suite-run-header {\n padding: 16px 20px;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .result-hero-stats {\n flex-direction: column;\n gap: 16px;\n }\n\n .stat-divider {\n display: none;\n }\n\n .details-grid {\n grid-template-columns: 1fr;\n }\n\n .tab-shortcut {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Mobile\n =================================== */\n@media (max-width: 768px) {\n .suite-run-header {\n padding: 16px;\n }\n\n .header-content {\n flex-direction: column;\n gap: 16px;\n }\n\n .header-left {\n width: 100%;\n }\n\n .suite-run-icon {\n width: 48px;\n height: 48px;\n font-size: 20px;\n }\n\n .suite-run-info h1 {\n font-size: 20px;\n }\n\n .header-actions {\n width: 100%;\n justify-content: stretch;\n }\n\n .header-actions button {\n flex: 1;\n }\n\n .metrics-bar {\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n }\n\n .metric-card {\n padding: 12px;\n flex-direction: column;\n text-align: center;\n gap: 8px;\n }\n\n .metric-icon {\n width: 36px;\n height: 36px;\n }\n\n .metric-value {\n font-size: 16px;\n }\n\n .results-summary {\n gap: 8px;\n padding-top: 16px;\n flex-wrap: nowrap;\n overflow-x: auto;\n padding-bottom: 8px;\n margin-bottom: -8px;\n }\n\n .result-item {\n padding: 10px 12px;\n min-width: 90px;\n }\n\n .result-icon {\n font-size: 20px;\n }\n\n .result-count {\n font-size: 18px;\n }\n\n .tabs {\n padding: 0 16px;\n }\n\n .tab {\n padding: 14px 16px;\n font-size: 13px;\n }\n\n .tab-content {\n padding: 16px;\n }\n\n .result-hero {\n padding: 32px 20px;\n }\n\n .result-hero-icon {\n font-size: 56px;\n }\n\n .result-hero-text h2 {\n font-size: 24px;\n }\n\n .stat-value {\n font-size: 20px;\n }\n\n .test-run-item {\n padding: 14px;\n }\n\n .run-sequence {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n\n .run-icon {\n width: 36px;\n height: 36px;\n font-size: 14px;\n }\n\n .run-name {\n font-size: 13px;\n }\n\n .run-meta {\n gap: 10px;\n font-size: 11px;\n }\n\n .empty-state {\n padding: 40px 16px;\n }\n\n .empty-icon {\n width: 64px;\n height: 64px;\n }\n\n .empty-icon i {\n font-size: 28px;\n }\n\n .details-card {\n padding: 16px;\n }\n\n .details-grid {\n gap: 16px;\n }\n\n .keyboard-shortcuts, .shortcuts-toggle {\n display: none;\n }\n}\n\n/* ===================================\n Responsive Design - Small Mobile\n =================================== */\n@media (max-width: 480px) {\n .suite-run-header {\n padding: 12px;\n }\n\n .breadcrumb {\n font-size: 12px;\n margin-bottom: 12px;\n }\n\n .suite-run-icon {\n width: 44px;\n height: 44px;\n font-size: 18px;\n }\n\n .suite-run-info h1 {\n font-size: 18px;\n }\n\n .suite-run-meta {\n gap: 8px;\n }\n\n .status-badge {\n padding: 4px 10px;\n font-size: 11px;\n }\n\n .meta-tag {\n font-size: 11px;\n padding: 3px 8px;\n }\n\n .metrics-bar {\n grid-template-columns: 1fr 1fr;\n }\n\n .metric-card {\n padding: 10px;\n gap: 6px;\n }\n\n .metric-icon {\n width: 32px;\n height: 32px;\n font-size: 14px;\n }\n\n .metric-value {\n font-size: 14px;\n }\n\n .metric-label {\n font-size: 9px;\n }\n\n .result-item {\n padding: 8px 10px;\n min-width: 80px;\n gap: 8px;\n }\n\n .result-icon {\n font-size: 18px;\n }\n\n .result-count {\n font-size: 16px;\n }\n\n .result-label {\n font-size: 9px;\n }\n\n .tabs {\n padding: 0 12px;\n }\n\n .tab {\n padding: 12px 14px;\n gap: 6px;\n }\n\n .tab i {\n font-size: 14px;\n }\n\n .tab-content {\n padding: 12px;\n }\n\n .result-hero {\n padding: 24px 16px;\n }\n\n .result-hero-icon {\n font-size: 48px;\n margin-bottom: 16px;\n }\n\n .result-hero-text h2 {\n font-size: 20px;\n margin-bottom: 12px;\n }\n\n .stat-value {\n font-size: 18px;\n }\n\n .stat-label {\n font-size: 10px;\n }\n\n .progress-section {\n padding: 16px;\n }\n\n .progress-info {\n font-size: 14px;\n }\n\n .test-run-item {\n padding: 12px;\n gap: 10px;\n }\n\n .run-sequence {\n width: 24px;\n height: 24px;\n font-size: 11px;\n }\n\n .run-icon {\n width: 32px;\n height: 32px;\n font-size: 12px;\n border-radius: 8px;\n }\n\n .run-name {\n font-size: 12px;\n margin-bottom: 3px;\n }\n\n .run-meta {\n gap: 8px;\n font-size: 10px;\n }\n\n .empty-state {\n padding: 32px 12px;\n }\n\n .empty-state h4 {\n font-size: 16px;\n }\n\n .empty-state p {\n font-size: 13px;\n }\n\n .details-card {\n padding: 14px;\n }\n\n .details-card h3 {\n font-size: 14px;\n margin-bottom: 16px;\n }\n\n .detail-label {\n font-size: 10px;\n }\n\n .detail-value {\n font-size: 13px;\n }\n}\n\n/* ===================================\n Touch Device Optimizations\n =================================== */\n@media (hover: none) and (pointer: coarse) {\n .test-run-item {\n min-height: 64px;\n }\n\n .test-run-item:hover {\n transform: none;\n background: var(--suite-run-card);\n border-color: var(--suite-run-border);\n }\n\n .test-run-item:active {\n background: var(--suite-run-primary-light);\n border-color: #93c5fd;\n }\n\n .tab:hover {\n background: transparent;\n color: var(--suite-run-text-secondary);\n }\n\n .tab:active {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n }\n\n .metric-card:hover {\n transform: none;\n box-shadow: none;\n }\n\n .result-item:hover {\n transform: none;\n box-shadow: none;\n }\n\n .keyboard-shortcuts {\n display: none;\n }\n}\n\n/* ===================================\n Print Styles\n =================================== */\n@media print {\n .suite-run-header {\n background: white;\n box-shadow: none;\n border-bottom: 2px solid #000;\n }\n\n .tabs-container,\n .header-actions,\n .keyboard-shortcuts {\n display: none;\n }\n\n .tab-content {\n padding: 20px 0;\n }\n\n .result-hero,\n .test-run-item,\n .details-card {\n box-shadow: none;\n border: 1px solid #ccc;\n }\n}\n\n/* ===================================\n Dark Mode Support (Future)\n =================================== */\n@media (prefers-color-scheme: dark) {\n /* Ready for dark mode implementation */\n}\n\n/* ===================================\n Tags Bar - Sleek Inline Display\n =================================== */\n.tags-bar {\n margin-top: 16px;\n padding: 8px 14px;\n background: linear-gradient(135deg, rgba(59, 130, 246, 0.04) 0%, rgba(59, 130, 246, 0.08) 100%);\n border: 1px solid rgba(59, 130, 246, 0.15);\n border-radius: 8px;\n max-width: 600px;\n}\n\n.tags-bar-content {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.tags-bar-label {\n color: var(--suite-run-text-secondary);\n font-size: 14px;\n}\n\n.tags-bar-label i {\n opacity: 0.6;\n}\n\n.tags-bar-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n flex: 1;\n}\n\n.tag-inline {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n letter-spacing: 0.01em;\n}\n\n.tags-bar-empty {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n opacity: 0.7;\n flex: 1;\n}\n\n.tags-bar-edit {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n background: transparent;\n border: 1px dashed var(--suite-run-border);\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.tags-bar-edit:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n background: var(--suite-run-primary-light);\n}\n\n.tags-bar-edit i {\n font-size: 10px;\n}\n\n/* ===================================\n Tags Editor Panel - Expanded Edit Mode\n =================================== */\n.tags-editor-panel {\n margin-top: 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n border-radius: 10px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(59, 130, 246, 0.1);\n max-width: 600px;\n}\n\n.tags-editor-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n background: var(--suite-run-primary-light);\n border-bottom: 1px solid rgba(59, 130, 246, 0.2);\n}\n\n.tags-editor-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.tags-editor-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tags-editor-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n min-height: 32px;\n}\n\n.tag-editable {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 8px 5px 12px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-primary);\n color: var(--suite-run-primary);\n border-radius: 14px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.tag-remove-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n background: transparent;\n border: none;\n color: var(--suite-run-primary);\n cursor: pointer;\n border-radius: 50%;\n font-size: 9px;\n opacity: 0.6;\n transition: var(--suite-run-transition);\n}\n\n.tag-remove-btn:hover {\n opacity: 1;\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.tags-empty-hint {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n font-style: italic;\n padding: 4px 0;\n}\n\n.tags-editor-input {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.tag-text-input {\n flex: 1;\n padding: 10px 14px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 13px;\n background: var(--suite-run-neutral-light);\n}\n\n.tag-text-input:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n background: var(--suite-run-card);\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.tag-text-input::placeholder {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n.tags-editor-footer {\n display: flex;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* ===================================\n Runs Toolbar\n =================================== */\n.runs-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 12px 16px;\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n flex-wrap: wrap;\n gap: 12px;\n}\n\n.run-filters {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 6px 14px;\n border: 1px solid var(--suite-run-border);\n background: var(--suite-run-card);\n border-radius: 20px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n cursor: pointer;\n transition: var(--suite-run-transition);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.filter-btn:hover {\n border-color: var(--suite-run-primary);\n color: var(--suite-run-primary);\n}\n\n.filter-btn.active {\n background: var(--suite-run-primary);\n border-color: var(--suite-run-primary);\n color: white;\n}\n\n.filter-btn.passed:hover,\n.filter-btn.passed.active {\n background: var(--suite-run-success);\n border-color: var(--suite-run-success);\n color: white;\n}\n\n.filter-btn.failed:hover,\n.filter-btn.failed.active {\n background: var(--suite-run-danger);\n border-color: var(--suite-run-danger);\n color: white;\n}\n\n.filter-btn.error:hover,\n.filter-btn.error.active {\n background: var(--suite-run-warning);\n border-color: var(--suite-run-warning);\n color: white;\n}\n\n.runs-actions {\n display: flex;\n gap: 8px;\n}\n\n/* ===================================\n Test Run Card (Expandable)\n =================================== */\n.test-run-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n margin-bottom: 10px;\n}\n\n.test-run-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.test-run-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.run-header-row {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n}\n\n.run-feedback-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.run-feedback-indicator i {\n font-size: 10px;\n}\n\n.run-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n}\n\n.tag-mini {\n display: inline-flex;\n padding: 2px 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n border-radius: 10px;\n font-size: 10px;\n font-weight: 500;\n}\n\n.tag-chip {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);\n border: 1px solid #bfdbfe;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 500;\n color: #1d4ed8;\n}\n\n.run-expand {\n color: var(--suite-run-text-secondary);\n transition: var(--suite-run-transition);\n}\n\n.test-run-item:hover .run-expand {\n color: var(--suite-run-primary);\n}\n\n.run-cost {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.run-cost i {\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* ===================================\n Inline Feedback\n =================================== */\n.inline-feedback {\n padding: 0 16px 16px;\n animation: slideDown 0.2s ease-out;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.feedback-divider {\n height: 1px;\n background: var(--suite-run-border);\n margin-bottom: 16px;\n}\n\n.feedback-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.feedback-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.inline-rating {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.rating-numbers {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n\n.rating-btn {\n width: 36px;\n height: 36px;\n border: 2px solid var(--suite-run-border);\n border-radius: 8px;\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-text-secondary);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.rating-btn:hover,\n.rating-btn.hover {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.low:hover,\n.rating-btn.low.hover {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.rating-btn.mid:hover,\n.rating-btn.mid.hover {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.rating-btn.high:hover,\n.rating-btn.high.hover {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.rating-btn.selected {\n transform: scale(1.1);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.rating-btn.selected.low {\n border-color: var(--suite-run-danger);\n background: var(--suite-run-danger);\n color: white;\n}\n\n.rating-btn.selected.mid {\n border-color: var(--suite-run-warning);\n background: var(--suite-run-warning);\n color: white;\n}\n\n.rating-btn.selected.high {\n border-color: var(--suite-run-success);\n background: var(--suite-run-success);\n color: white;\n}\n\n.rating-info {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 8px 14px;\n background: var(--suite-run-neutral-light);\n border-radius: 8px;\n}\n\n.rating-value {\n font-size: 18px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.rating-label-text {\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.correctness-row {\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.correctness-label {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.correctness-options {\n display: flex;\n gap: 16px;\n}\n\n.radio-opt {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: 13px;\n color: var(--suite-run-text-secondary);\n}\n\n.radio-opt input[type=\"radio\"] {\n width: 16px;\n height: 16px;\n cursor: pointer;\n}\n\n.comments-row {\n width: 100%;\n}\n\n.feedback-textarea {\n width: 100%;\n padding: 12px;\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 80px;\n}\n\n.feedback-textarea:focus {\n outline: none;\n border-color: var(--suite-run-primary);\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);\n}\n\n.feedback-actions {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding-top: 8px;\n}\n\n/* ===================================\n Mobile Responsive Updates\n =================================== */\n@media (max-width: 768px) {\n .tags-bar {\n padding: 8px 12px;\n }\n\n .tags-bar-content {\n gap: 8px;\n }\n\n .tag-inline {\n padding: 3px 8px;\n font-size: 10px;\n }\n\n .tags-editor-panel {\n margin-top: 12px;\n }\n\n .tags-editor-body {\n padding: 12px;\n }\n\n .tags-editor-footer {\n padding: 10px 12px;\n }\n\n .runs-toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .run-filters {\n justify-content: center;\n }\n\n .runs-actions {\n justify-content: center;\n }\n\n .rating-numbers {\n justify-content: center;\n }\n\n .rating-btn {\n width: 32px;\n height: 32px;\n font-size: 12px;\n }\n\n .correctness-row {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .feedback-actions {\n flex-direction: column;\n }\n\n .feedback-actions button {\n width: 100%;\n }\n}\n\n/* ===================================\n Animations\n =================================== */\n@keyframes pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n}\n\n.result-hero.running .result-hero-icon {\n animation: pulse 2s ease-in-out infinite;\n}\n\n/* Tab content fade in */\n.overview-tab,\n.runs-tab,\n.details-tab,\n.analytics-tab {\n animation: fadeIn 0.3s ease;\n}\n\n/* ===================================\n Analytics Tab\n =================================== */\n.analytics-tab {\n max-width: 1200px;\n margin: 0 auto;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.analytics-section {\n background: var(--suite-run-card);\n border-radius: var(--suite-run-radius);\n padding: 24px;\n box-shadow: var(--suite-run-shadow);\n}\n\n.analytics-section h3 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--suite-run-text);\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-section h3 i {\n color: var(--suite-run-primary);\n}\n\n.analytics-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n margin-bottom: 20px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.analytics-header h3 {\n margin: 0;\n padding: 0;\n border: none;\n}\n\n.analytics-legend {\n display: flex;\n gap: 16px;\n flex-wrap: wrap;\n}\n\n.legend-item {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.legend-item.passed {\n color: var(--suite-run-success);\n}\n\n.legend-item.failed {\n color: var(--suite-run-danger);\n}\n\n.legend-item.error {\n color: var(--suite-run-warning);\n}\n\n.legend-item.skipped {\n color: var(--suite-run-neutral);\n}\n\n/* Performance Matrix */\n.performance-matrix {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.matrix-row {\n display: grid;\n grid-template-columns: 2fr 120px 150px 100px 100px;\n border-bottom: 1px solid var(--suite-run-border);\n transition: var(--suite-run-transition);\n cursor: pointer;\n}\n\n.matrix-row:last-child {\n border-bottom: none;\n}\n\n.matrix-row:hover:not(.matrix-header-row) {\n background: var(--suite-run-primary-light);\n}\n\n.matrix-row.passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.matrix-row.failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.matrix-row.error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.matrix-row.skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n.matrix-header-row {\n background: var(--suite-run-neutral-light);\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n cursor: default;\n}\n\n.matrix-cell {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.test-name-cell {\n gap: 12px;\n}\n\n.test-sequence {\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--suite-run-neutral-light);\n border-radius: 50%;\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n flex-shrink: 0;\n}\n\n.test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.status-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 600;\n}\n\n.status-indicator.status-passed {\n color: var(--suite-run-success);\n}\n\n.status-indicator.status-failed {\n color: var(--suite-run-danger);\n}\n\n.status-indicator.status-error {\n color: var(--suite-run-warning);\n}\n\n.status-indicator.status-skipped {\n color: var(--suite-run-neutral);\n}\n\n.status-indicator.status-pending {\n color: var(--suite-run-info);\n}\n\n.status-indicator.status-running {\n color: var(--suite-run-primary);\n}\n\n.score-bar {\n position: relative;\n width: 100%;\n height: 20px;\n background: var(--suite-run-neutral-light);\n border-radius: 10px;\n overflow: hidden;\n}\n\n.score-fill {\n height: 100%;\n border-radius: 10px;\n transition: width 0.3s ease;\n}\n\n.score-fill.high {\n background: linear-gradient(90deg, var(--suite-run-success) 0%, #34d399 100%);\n}\n\n.score-fill.medium {\n background: linear-gradient(90deg, var(--suite-run-warning) 0%, #fbbf24 100%);\n}\n\n.score-fill.low {\n background: linear-gradient(90deg, var(--suite-run-danger) 0%, #f87171 100%);\n}\n\n.score-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.na-value {\n color: var(--suite-run-text-secondary);\n opacity: 0.6;\n}\n\n/* Summary Statistics Grid */\n.stats-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 16px;\n}\n\n.stat-card {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 20px;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n border: 1px solid var(--suite-run-border);\n border-radius: 12px;\n transition: var(--suite-run-transition);\n}\n\n.stat-card:hover {\n transform: translateY(-2px);\n box-shadow: var(--suite-run-shadow);\n}\n\n.stat-icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 12px;\n font-size: 20px;\n}\n\n.stat-icon.passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.stat-icon.failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.stat-icon.score {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.stat-icon.duration {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n.stat-icon.cost {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.stat-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.stat-card .stat-value {\n font-size: 24px;\n font-weight: 700;\n color: var(--suite-run-text);\n}\n\n.stat-card .stat-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.stat-percent {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n/* Responsive Analytics */\n@media (max-width: 768px) {\n .analytics-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .matrix-row {\n grid-template-columns: 1fr;\n gap: 8px;\n padding: 12px;\n }\n\n .matrix-header-row {\n display: none;\n }\n\n .matrix-cell {\n padding: 4px 0;\n }\n\n .test-name-cell::before,\n .status-cell::before,\n .score-cell::before,\n .duration-cell::before,\n .cost-cell::before {\n font-size: 10px;\n font-weight: 600;\n color: var(--suite-run-text-secondary);\n text-transform: uppercase;\n margin-right: 8px;\n min-width: 80px;\n }\n\n .status-cell::before { content: 'Status:'; }\n .score-cell::before { content: 'Score:'; }\n .duration-cell::before { content: 'Duration:'; }\n .cost-cell::before { content: 'Cost:'; }\n\n .stats-grid {\n grid-template-columns: 1fr 1fr;\n }\n\n .stat-card {\n padding: 16px;\n }\n\n .stat-icon {\n width: 40px;\n height: 40px;\n font-size: 16px;\n }\n\n .stat-card .stat-value {\n font-size: 20px;\n }\n}\n\n/* Focus States for Accessibility */\n.tab:focus-visible,\n.test-run-item:focus-visible,\nbutton:focus-visible {\n outline: 2px solid var(--suite-run-primary);\n outline-offset: 2px;\n}\n\n/* ===================================\n Analytics Loading State\n =================================== */\n.analytics-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n padding: 60px 20px;\n color: var(--suite-run-text-secondary);\n}\n\n.analytics-loading i {\n font-size: 32px;\n color: var(--suite-run-primary);\n}\n\n/* ===================================\n Results Table\n =================================== */\n.results-table-wrapper {\n border: 1px solid var(--suite-run-border);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.results-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n}\n\n.results-table thead {\n background: var(--suite-run-neutral-light);\n}\n\n.results-table th {\n padding: 12px 16px;\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--suite-run-text-secondary);\n border-bottom: 1px solid var(--suite-run-border);\n}\n\n.results-table td {\n padding: 12px 16px;\n border-bottom: 1px solid #f1f5f9;\n vertical-align: middle;\n}\n\n.results-table tbody tr:last-child td {\n border-bottom: none;\n}\n\n/* Column widths - Fixed columns fit content, name column takes remainder (max 50%) */\n.seq-col {\n width: 40px;\n min-width: 40px;\n text-align: center;\n white-space: nowrap;\n}\n\n.name-col {\n /* Take remaining space, but cap at 50% of table width */\n width: auto;\n max-width: 50%;\n}\n\n.status-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n}\n\n.score-col {\n width: 1%; /* Shrink to fit content */\n min-width: 120px; /* Score bar needs some minimum width */\n white-space: nowrap;\n}\n\n.duration-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n.cost-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: right;\n}\n\n/* Result Row */\n.result-row {\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.result-row:hover {\n background: var(--suite-run-primary-light);\n}\n\n.result-row.row-passed {\n border-left: 4px solid var(--suite-run-success);\n}\n\n.result-row.row-failed {\n border-left: 4px solid var(--suite-run-danger);\n}\n\n.result-row.row-error {\n border-left: 4px solid var(--suite-run-warning);\n}\n\n.result-row.row-skipped {\n border-left: 4px solid var(--suite-run-neutral);\n}\n\n/* Test Name Wrapper */\n.test-name-wrapper {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.test-name-wrapper .test-name {\n font-weight: 500;\n color: var(--suite-run-text);\n}\n\n.test-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n/* Score Display */\n.score-display {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.score-bar-mini {\n flex: 1;\n height: 6px;\n background: var(--suite-run-neutral-light);\n border-radius: 3px;\n overflow: hidden;\n min-width: 60px;\n}\n\n.score-bar-mini .score-fill {\n height: 100%;\n border-radius: 3px;\n transition: width 0.3s ease;\n}\n\n.score-bar-mini .score-fill.high {\n background: var(--suite-run-success);\n}\n\n.score-bar-mini .score-fill.medium {\n background: var(--suite-run-warning);\n}\n\n.score-bar-mini .score-fill.low {\n background: var(--suite-run-danger);\n}\n\n.score-display .score-text {\n position: static;\n transform: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--suite-run-text);\n min-width: 35px;\n text-align: right;\n}\n\n/* Status Badge in Table */\n.results-table .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.results-table .status-badge.status-passed {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.results-table .status-badge.status-failed {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.results-table .status-badge.status-error {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.results-table .status-badge.status-skipped {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.results-table .status-badge.status-pending {\n background: var(--suite-run-info-light);\n color: var(--suite-run-info);\n}\n\n.results-table .status-badge.status-running {\n background: var(--suite-run-primary-light);\n color: var(--suite-run-primary);\n}\n\n/* Responsive Results Table */\n@media (max-width: 768px) {\n .results-table-wrapper {\n overflow-x: auto;\n }\n\n .results-table {\n min-width: 600px;\n }\n\n .results-table th,\n .results-table td {\n padding: 10px 12px;\n }\n\n .name-col {\n min-width: 150px;\n }\n}\n\n/* ===================================\n High Contrast Mode\n =================================== */\n@media (prefers-contrast: high) {\n .status-badge,\n .status-inline {\n border: 2px solid currentColor;\n }\n\n .test-run-item {\n border-width: 2px;\n }\n\n .tab.active {\n border-bottom-width: 4px;\n }\n}\n\n/* ===================================\n Evaluation Summary\n =================================== */\n.evaluation-summary {\n margin-top: 20px;\n}\n\n.eval-summary-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n}\n\n.eval-summary-card {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n transition: var(--suite-run-transition);\n}\n\n.eval-summary-card:hover {\n box-shadow: var(--suite-run-shadow);\n}\n\n.eval-card-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background: var(--suite-run-neutral-light);\n border-bottom: 1px solid var(--suite-run-border);\n font-size: 13px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-card-header i {\n color: var(--suite-run-primary);\n}\n\n.eval-card-body {\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.eval-stat-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n\n.eval-stat-label {\n font-size: 12px;\n color: var(--suite-run-text-secondary);\n}\n\n.eval-stat-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--suite-run-text);\n}\n\n.eval-stat-value.correct {\n color: var(--suite-run-success);\n}\n\n.eval-stat-value.incorrect {\n color: var(--suite-run-danger);\n font-weight: 500;\n font-size: 12px;\n}\n\n.eval-stat-value.error {\n color: var(--suite-run-danger);\n}\n\n.eval-stat-value.timeout {\n color: var(--suite-run-warning);\n}\n\n.eval-card-footer {\n padding: 10px 16px;\n background: var(--suite-run-warning-light);\n border-top: 1px solid rgba(245, 158, 11, 0.2);\n}\n\n.pending-badge {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--suite-run-warning);\n}\n\n.pending-badge i {\n font-size: 11px;\n}\n\n/* ===================================\n Needs Review Section\n =================================== */\n.needs-review-section {\n background: var(--suite-run-card);\n border: 1px solid var(--suite-run-border);\n border-radius: var(--suite-run-radius);\n overflow: hidden;\n}\n\n.needs-review-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 14px 20px;\n background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);\n border-bottom: 1px solid rgba(245, 158, 11, 0.3);\n}\n\n.needs-review-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #92400e;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.needs-review-header h3 i {\n font-size: 16px;\n}\n\n.review-count {\n font-size: 12px;\n font-weight: 500;\n color: #92400e;\n background: rgba(255, 255, 255, 0.6);\n padding: 2px 10px;\n border-radius: 12px;\n}\n\n.needs-review-list {\n padding: 8px;\n}\n\n.review-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n cursor: pointer;\n transition: var(--suite-run-transition);\n}\n\n.review-item:hover {\n background: var(--suite-run-primary-light);\n}\n\n.review-item-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.review-item.high-priority .review-item-icon {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.review-item.medium-priority .review-item-icon {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.review-item:not(.high-priority):not(.medium-priority) .review-item-icon {\n background: var(--suite-run-neutral-light);\n color: var(--suite-run-neutral);\n}\n\n.review-item-content {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.review-item-name {\n font-size: 13px;\n font-weight: 500;\n color: var(--suite-run-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.review-item-reason {\n font-size: 11px;\n color: var(--suite-run-text-secondary);\n}\n\n.review-item-action {\n color: var(--suite-run-text-secondary);\n font-size: 12px;\n}\n\n.review-item:hover .review-item-action {\n color: var(--suite-run-primary);\n}\n\n.review-more {\n display: flex;\n justify-content: center;\n padding: 8px;\n border-top: 1px solid var(--suite-run-border);\n}\n\n/* Mobile Responsive for Evaluation */\n@media (max-width: 768px) {\n .eval-summary-grid {\n grid-template-columns: 1fr;\n }\n\n .eval-card-header {\n padding: 10px 14px;\n font-size: 12px;\n }\n\n .eval-card-body {\n padding: 12px 14px;\n }\n\n .needs-review-header {\n padding: 12px 16px;\n }\n\n .needs-review-header h3 {\n font-size: 13px;\n }\n\n .review-item {\n padding: 10px 12px;\n }\n\n .review-item-icon {\n width: 28px;\n height: 28px;\n font-size: 12px;\n }\n}\n\n/* ===================================\n Feedback Column in Analytics Table\n =================================== */\n.feedback-col {\n width: 1%; /* Shrink to fit content */\n white-space: nowrap;\n text-align: center;\n}\n\n.feedback-display {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n\n.feedback-rating {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--suite-run-neutral-light);\n}\n\n.feedback-rating.low {\n background: var(--suite-run-danger-light);\n color: var(--suite-run-danger);\n}\n\n.feedback-rating.mid {\n background: var(--suite-run-warning-light);\n color: var(--suite-run-warning);\n}\n\n.feedback-rating.high {\n background: var(--suite-run-success-light);\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i {\n font-size: 12px;\n}\n\n.feedback-correctness i.correct {\n color: var(--suite-run-success);\n}\n\n.feedback-correctness i.incorrect {\n color: var(--suite-run-danger);\n}\n\n.na-value.needs-review {\n color: var(--suite-run-warning);\n opacity: 0.7;\n}\n\n.na-value.needs-review i {\n font-size: 14px;\n}\n"] }]
|
|
2328
|
+
}], () => [{ type: i0.ElementRef }, { type: i1.SharedService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i3.TestingDialogService }, { type: i3.EvaluationPreferencesService }, { type: i0.ViewContainerRef }, { type: i4.ApplicationManager }], { handleKeyboardShortcut: [{
|
|
2277
2329
|
type: HostListener,
|
|
2278
2330
|
args: ['document:keydown', ['$event']]
|
|
2279
2331
|
}] }); })();
|
|
2280
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestSuiteRunFormComponentExtended, { className: "TestSuiteRunFormComponentExtended", filePath: "src/lib/custom/
|
|
2281
|
-
export function LoadTestSuiteRunFormComponentExtended() {
|
|
2282
|
-
// Prevents tree-shaking
|
|
2283
|
-
}
|
|
2284
|
-
LoadTestSuiteRunFormComponentExtended();
|
|
2332
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestSuiteRunFormComponentExtended, { className: "TestSuiteRunFormComponentExtended", filePath: "src/lib/custom/tests/test-suite-run-form.component.ts", lineNumber: 36 }); })();
|
|
2285
2333
|
//# sourceMappingURL=test-suite-run-form.component.js.map
|