@memberjunction/ng-dashboards 5.34.0 → 5.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +399 -292
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
- package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +17 -0
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +370 -425
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +317 -357
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +403 -362
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +781 -783
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +6 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +79 -30
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +196 -142
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -1
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +32 -40
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +32 -40
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +32 -40
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.js +24 -5
- package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
- package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +80 -99
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +127 -106
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +44 -45
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +60 -58
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -162
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +6 -0
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +521 -485
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +8 -0
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +309 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +866 -847
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +182 -163
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +241 -241
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +1 -1
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +28 -1
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +486 -532
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +152 -160
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +234 -246
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +1248 -1338
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +1 -1
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +34 -1
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Permissions/audit-log-resource.component.js +76 -85
- package/dist/Permissions/audit-log-resource.component.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +64 -69
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +63 -74
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +420 -393
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +587 -608
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +9 -12
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts +3 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +310 -274
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +16 -19
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts +3 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +307 -273
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +2 -0
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +107 -93
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +185 -188
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +154 -184
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +350 -354
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +163 -169
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/actions-dashboards.module.d.ts +15 -16
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +34 -11
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +45 -48
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +36 -10
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/archiving-dashboards.module.d.ts +2 -1
- package/dist/archiving-dashboards.module.d.ts.map +1 -1
- package/dist/archiving-dashboards.module.js +12 -2
- package/dist/archiving-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +2 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +24 -3
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +1 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +31 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +1 -1
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +28 -1
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +1 -1
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +28 -1
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -3
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +1 -1
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +31 -1
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +8 -7
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +30 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +52 -52
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
|
@@ -7,204 +7,239 @@ import { DEFAULT_EVALUATION_PREFERENCES } from '@memberjunction/ng-testing';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "../services/testing-instrumentation.service";
|
|
9
9
|
import * as i2 from "@memberjunction/ng-testing";
|
|
10
|
-
import * as i3 from "@angular/
|
|
11
|
-
import * as i4 from "@
|
|
12
|
-
import * as i5 from "@
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
import * as i4 from "@angular/forms";
|
|
12
|
+
import * as i5 from "@memberjunction/ng-ui-components";
|
|
13
|
+
import * as i6 from "@memberjunction/ng-shared-generic";
|
|
13
14
|
const _forTrack0 = ($index, $item) => $item.value;
|
|
14
|
-
function
|
|
15
|
+
function TestingRunsComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
i0.ɵɵelementContainer(0);
|
|
17
|
+
} }
|
|
18
|
+
function TestingRunsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵtemplate(0, TestingRunsComponent_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 1);
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
i0.ɵɵnextContext();
|
|
22
|
+
const content_r1 = i0.ɵɵreference(3);
|
|
23
|
+
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
24
|
+
} }
|
|
25
|
+
function TestingRunsComponent_Conditional_1_ng_container_8_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelementContainer(0);
|
|
27
|
+
} }
|
|
28
|
+
function TestingRunsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
30
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 2)(2, "div", 3)(3, "mj-refresh-button", 4);
|
|
31
|
+
i0.ɵɵlistener("Clicked", function TestingRunsComponent_Conditional_1_Template_mj_refresh_button_Clicked_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.Refresh()); });
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
i0.ɵɵelementStart(4, "button", 5);
|
|
34
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_Conditional_1_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.StartNewTest()); });
|
|
35
|
+
i0.ɵɵelement(5, "i", 6);
|
|
36
|
+
i0.ɵɵtext(6, " Run Test ");
|
|
37
|
+
i0.ɵɵelementEnd()()();
|
|
38
|
+
i0.ɵɵelementStart(7, "mj-page-body");
|
|
39
|
+
i0.ɵɵtemplate(8, TestingRunsComponent_Conditional_1_ng_container_8_Template, 1, 0, "ng-container", 1);
|
|
40
|
+
i0.ɵɵelementEnd()();
|
|
41
|
+
} if (rf & 2) {
|
|
42
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
43
|
+
const content_r1 = i0.ɵɵreference(3);
|
|
44
|
+
i0.ɵɵadvance(3);
|
|
45
|
+
i0.ɵɵproperty("Loading", ctx_r2.IsRefreshing);
|
|
46
|
+
i0.ɵɵadvance(5);
|
|
47
|
+
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
48
|
+
} }
|
|
49
|
+
function TestingRunsComponent_ng_template_2_For_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
50
|
i0.ɵɵelement(0, "i");
|
|
16
51
|
} if (rf & 2) {
|
|
17
|
-
const
|
|
18
|
-
i0.ɵɵclassMap(
|
|
52
|
+
const chip_r6 = i0.ɵɵnextContext().$implicit;
|
|
53
|
+
i0.ɵɵclassMap(chip_r6.icon);
|
|
19
54
|
} }
|
|
20
|
-
function
|
|
21
|
-
const
|
|
22
|
-
i0.ɵɵelementStart(0, "button",
|
|
23
|
-
i0.ɵɵlistener("click", function
|
|
24
|
-
i0.ɵɵconditionalCreate(1,
|
|
55
|
+
function TestingRunsComponent_ng_template_2_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
57
|
+
i0.ɵɵelementStart(0, "button", 35);
|
|
58
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_For_5_Template_button_click_0_listener() { const chip_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetStatusFilter(chip_r6.value)); });
|
|
59
|
+
i0.ɵɵconditionalCreate(1, TestingRunsComponent_ng_template_2_For_5_Conditional_1_Template, 1, 2, "i", 36);
|
|
25
60
|
i0.ɵɵtext(2);
|
|
26
61
|
i0.ɵɵelementEnd();
|
|
27
62
|
} if (rf & 2) {
|
|
28
|
-
const
|
|
29
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
30
|
-
i0.ɵɵclassProp("active", ctx_r2.filterState.status ===
|
|
31
|
-
i0.ɵɵattribute("data-status",
|
|
63
|
+
const chip_r6 = ctx.$implicit;
|
|
64
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
65
|
+
i0.ɵɵclassProp("active", ctx_r2.filterState.status === chip_r6.value);
|
|
66
|
+
i0.ɵɵattribute("data-status", chip_r6.value);
|
|
32
67
|
i0.ɵɵadvance();
|
|
33
|
-
i0.ɵɵconditional(
|
|
68
|
+
i0.ɵɵconditional(chip_r6.icon ? 1 : -1);
|
|
34
69
|
i0.ɵɵadvance();
|
|
35
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
70
|
+
i0.ɵɵtextInterpolate1(" ", chip_r6.label, " ");
|
|
36
71
|
} }
|
|
37
|
-
function
|
|
38
|
-
const
|
|
39
|
-
i0.ɵɵelementStart(0, "button",
|
|
40
|
-
i0.ɵɵlistener("click", function
|
|
41
|
-
i0.ɵɵelement(1, "i",
|
|
72
|
+
function TestingRunsComponent_ng_template_2_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
74
|
+
i0.ɵɵelementStart(0, "button", 37);
|
|
75
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_22_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ClearSearch()); });
|
|
76
|
+
i0.ɵɵelement(1, "i", 38);
|
|
42
77
|
i0.ɵɵelementEnd();
|
|
43
78
|
} }
|
|
44
|
-
function
|
|
45
|
-
i0.ɵɵelementStart(0, "div",
|
|
46
|
-
i0.ɵɵelement(3, "i",
|
|
79
|
+
function TestingRunsComponent_ng_template_2_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 39)(2, "div", 40);
|
|
81
|
+
i0.ɵɵelement(3, "i", 41);
|
|
47
82
|
i0.ɵɵelementEnd();
|
|
48
|
-
i0.ɵɵelementStart(4, "div",
|
|
83
|
+
i0.ɵɵelementStart(4, "div", 42)(5, "div", 43);
|
|
49
84
|
i0.ɵɵtext(6);
|
|
50
85
|
i0.ɵɵelementEnd();
|
|
51
|
-
i0.ɵɵelementStart(7, "div",
|
|
86
|
+
i0.ɵɵelementStart(7, "div", 44);
|
|
52
87
|
i0.ɵɵtext(8, "Total Runs");
|
|
53
88
|
i0.ɵɵelementEnd()()();
|
|
54
|
-
i0.ɵɵelementStart(9, "div",
|
|
55
|
-
i0.ɵɵelement(11, "i",
|
|
89
|
+
i0.ɵɵelementStart(9, "div", 39)(10, "div", 45);
|
|
90
|
+
i0.ɵɵelement(11, "i", 46);
|
|
56
91
|
i0.ɵɵelementEnd();
|
|
57
|
-
i0.ɵɵelementStart(12, "div",
|
|
92
|
+
i0.ɵɵelementStart(12, "div", 42)(13, "div", 43);
|
|
58
93
|
i0.ɵɵtext(14);
|
|
59
94
|
i0.ɵɵelementEnd();
|
|
60
|
-
i0.ɵɵelementStart(15, "div",
|
|
95
|
+
i0.ɵɵelementStart(15, "div", 44);
|
|
61
96
|
i0.ɵɵtext(16, "Pass Rate");
|
|
62
97
|
i0.ɵɵelementEnd()()();
|
|
63
|
-
i0.ɵɵelementStart(17, "div",
|
|
64
|
-
i0.ɵɵelement(19, "i",
|
|
98
|
+
i0.ɵɵelementStart(17, "div", 39)(18, "div", 47);
|
|
99
|
+
i0.ɵɵelement(19, "i", 48);
|
|
65
100
|
i0.ɵɵelementEnd();
|
|
66
|
-
i0.ɵɵelementStart(20, "div",
|
|
101
|
+
i0.ɵɵelementStart(20, "div", 42)(21, "div", 43);
|
|
67
102
|
i0.ɵɵtext(22);
|
|
68
103
|
i0.ɵɵelementEnd();
|
|
69
|
-
i0.ɵɵelementStart(23, "div",
|
|
104
|
+
i0.ɵɵelementStart(23, "div", 44);
|
|
70
105
|
i0.ɵɵtext(24, "Avg Duration");
|
|
71
106
|
i0.ɵɵelementEnd()()();
|
|
72
|
-
i0.ɵɵelementStart(25, "div",
|
|
73
|
-
i0.ɵɵelement(27, "i",
|
|
107
|
+
i0.ɵɵelementStart(25, "div", 39)(26, "div", 49);
|
|
108
|
+
i0.ɵɵelement(27, "i", 50);
|
|
74
109
|
i0.ɵɵelementEnd();
|
|
75
|
-
i0.ɵɵelementStart(28, "div",
|
|
110
|
+
i0.ɵɵelementStart(28, "div", 42)(29, "div", 43);
|
|
76
111
|
i0.ɵɵtext(30);
|
|
77
112
|
i0.ɵɵelementEnd();
|
|
78
|
-
i0.ɵɵelementStart(31, "div",
|
|
113
|
+
i0.ɵɵelementStart(31, "div", 44);
|
|
79
114
|
i0.ɵɵtext(32, "Total Cost");
|
|
80
115
|
i0.ɵɵelementEnd()()()();
|
|
81
116
|
} if (rf & 2) {
|
|
82
|
-
const
|
|
83
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
117
|
+
const stats_r8 = ctx;
|
|
118
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
84
119
|
i0.ɵɵadvance(6);
|
|
85
|
-
i0.ɵɵtextInterpolate(
|
|
120
|
+
i0.ɵɵtextInterpolate(stats_r8.totalRuns);
|
|
86
121
|
i0.ɵɵadvance(8);
|
|
87
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(
|
|
122
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(stats_r8.passRate));
|
|
88
123
|
i0.ɵɵadvance(8);
|
|
89
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(
|
|
124
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(stats_r8.avgDuration));
|
|
90
125
|
i0.ɵɵadvance(8);
|
|
91
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatCostTotal(
|
|
126
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatCostTotal(stats_r8.totalCost));
|
|
92
127
|
} }
|
|
93
|
-
function
|
|
94
|
-
i0.ɵɵelementStart(0, "div",
|
|
95
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
128
|
+
function TestingRunsComponent_ng_template_2_Conditional_41_Template(rf, ctx) { if (rf & 1) {
|
|
129
|
+
i0.ɵɵelementStart(0, "div", 33);
|
|
130
|
+
i0.ɵɵelement(1, "mj-loading", 51);
|
|
96
131
|
i0.ɵɵelementEnd();
|
|
97
132
|
} }
|
|
98
|
-
function
|
|
99
|
-
i0.ɵɵelementStart(0, "div",
|
|
100
|
-
i0.ɵɵelement(1, "i",
|
|
133
|
+
function TestingRunsComponent_ng_template_2_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
135
|
+
i0.ɵɵelement(1, "i", 52);
|
|
101
136
|
i0.ɵɵelementStart(2, "p");
|
|
102
137
|
i0.ɵɵtext(3, "No test runs found");
|
|
103
138
|
i0.ɵɵelementEnd();
|
|
104
|
-
i0.ɵɵelementStart(4, "span",
|
|
139
|
+
i0.ɵɵelementStart(4, "span", 53);
|
|
105
140
|
i0.ɵɵtext(5, "Try adjusting your filters or run a new test.");
|
|
106
141
|
i0.ɵɵelementEnd()();
|
|
107
142
|
} }
|
|
108
|
-
function
|
|
109
|
-
const
|
|
110
|
-
i0.ɵɵelementStart(0, "div",
|
|
111
|
-
i0.ɵɵlistener("click", function
|
|
112
|
-
i0.ɵɵelementStart(1, "div",
|
|
113
|
-
i0.ɵɵlistener("click", function
|
|
143
|
+
function TestingRunsComponent_ng_template_2_Conditional_45_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
145
|
+
i0.ɵɵelementStart(0, "div", 55);
|
|
146
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_45_For_1_Template_div_click_0_listener() { const run_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.SelectRun(run_r10)); });
|
|
147
|
+
i0.ɵɵelementStart(1, "div", 26)(2, "span", 56);
|
|
148
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_45_For_1_Template_span_click_2_listener($event) { const run_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.NavigateToTest(run_r10, $event)); });
|
|
114
149
|
i0.ɵɵtext(3);
|
|
115
150
|
i0.ɵɵelementEnd()();
|
|
116
|
-
i0.ɵɵelementStart(4, "div",
|
|
117
|
-
i0.ɵɵelement(5, "app-evaluation-badge",
|
|
151
|
+
i0.ɵɵelementStart(4, "div", 27);
|
|
152
|
+
i0.ɵɵelement(5, "app-evaluation-badge", 57);
|
|
118
153
|
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵelementStart(6, "div",
|
|
120
|
-
i0.ɵɵelement(7, "app-score-indicator",
|
|
154
|
+
i0.ɵɵelementStart(6, "div", 28);
|
|
155
|
+
i0.ɵɵelement(7, "app-score-indicator", 58);
|
|
121
156
|
i0.ɵɵelementEnd();
|
|
122
|
-
i0.ɵɵelementStart(8, "div",
|
|
157
|
+
i0.ɵɵelementStart(8, "div", 29);
|
|
123
158
|
i0.ɵɵtext(9);
|
|
124
159
|
i0.ɵɵelementEnd();
|
|
125
|
-
i0.ɵɵelementStart(10, "div",
|
|
126
|
-
i0.ɵɵelement(11, "app-cost-display",
|
|
160
|
+
i0.ɵɵelementStart(10, "div", 30);
|
|
161
|
+
i0.ɵɵelement(11, "app-cost-display", 59);
|
|
127
162
|
i0.ɵɵelementEnd();
|
|
128
|
-
i0.ɵɵelementStart(12, "div",
|
|
163
|
+
i0.ɵɵelementStart(12, "div", 31);
|
|
129
164
|
i0.ɵɵtext(13);
|
|
130
165
|
i0.ɵɵelementEnd();
|
|
131
|
-
i0.ɵɵelementStart(14, "div",
|
|
132
|
-
i0.ɵɵlistener("click", function
|
|
133
|
-
i0.ɵɵelement(16, "i",
|
|
166
|
+
i0.ɵɵelementStart(14, "div", 32)(15, "button", 60);
|
|
167
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_45_For_1_Template_button_click_15_listener($event) { const run_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); ctx_r2.SelectRun(run_r10); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
168
|
+
i0.ɵɵelement(16, "i", 61);
|
|
134
169
|
i0.ɵɵelementEnd();
|
|
135
|
-
i0.ɵɵelementStart(17, "button",
|
|
136
|
-
i0.ɵɵlistener("click", function
|
|
137
|
-
i0.ɵɵelement(18, "i",
|
|
170
|
+
i0.ɵɵelementStart(17, "button", 62);
|
|
171
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_45_For_1_Template_button_click_17_listener($event) { const run_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); ctx_r2.RerunTest(run_r10); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
172
|
+
i0.ɵɵelement(18, "i", 63);
|
|
138
173
|
i0.ɵɵelementEnd()()();
|
|
139
174
|
} if (rf & 2) {
|
|
140
|
-
const
|
|
141
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
142
|
-
i0.ɵɵclassProp("is-running",
|
|
175
|
+
const run_r10 = ctx.$implicit;
|
|
176
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
177
|
+
i0.ɵɵclassProp("is-running", run_r10.status === "Running")("is-selected", (ctx_r2.SelectedRun == null ? null : ctx_r2.SelectedRun.id) === run_r10.id);
|
|
143
178
|
i0.ɵɵadvance(3);
|
|
144
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
179
|
+
i0.ɵɵtextInterpolate1(" ", run_r10.testName, " ");
|
|
145
180
|
i0.ɵɵadvance(2);
|
|
146
|
-
i0.ɵɵproperty("executionStatus",
|
|
181
|
+
i0.ɵɵproperty("executionStatus", run_r10.status)("originalStatus", run_r10.status)("autoScore", run_r10.score)("passedChecks", run_r10.passedChecks)("failedChecks", run_r10.failedChecks)("totalChecks", run_r10.totalChecks)("humanRating", run_r10.humanRating)("humanIsCorrect", run_r10.humanIsCorrect)("hasHumanFeedback", run_r10.hasHumanFeedback)("preferences", ctx_r2.EvalPreferences);
|
|
147
182
|
i0.ɵɵadvance(2);
|
|
148
|
-
i0.ɵɵproperty("score",
|
|
183
|
+
i0.ɵɵproperty("score", run_r10.score)("showBar", true);
|
|
149
184
|
i0.ɵɵadvance(2);
|
|
150
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(
|
|
185
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(run_r10.duration));
|
|
151
186
|
i0.ɵɵadvance(2);
|
|
152
|
-
i0.ɵɵproperty("cost",
|
|
187
|
+
i0.ɵɵproperty("cost", run_r10.cost);
|
|
153
188
|
i0.ɵɵadvance(2);
|
|
154
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatRelativeTime(
|
|
189
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatRelativeTime(run_r10.runDateTime));
|
|
155
190
|
} }
|
|
156
|
-
function
|
|
157
|
-
i0.ɵɵrepeaterCreate(0,
|
|
191
|
+
function TestingRunsComponent_ng_template_2_Conditional_45_Template(rf, ctx) { if (rf & 1) {
|
|
192
|
+
i0.ɵɵrepeaterCreate(0, TestingRunsComponent_ng_template_2_Conditional_45_For_1_Template, 19, 20, "div", 54, i0.ɵɵcomponentInstance().TrackByRunId, true);
|
|
158
193
|
i0.ɵɵpipe(2, "async");
|
|
159
194
|
} if (rf & 2) {
|
|
160
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
195
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
161
196
|
i0.ɵɵrepeater(i0.ɵɵpipeBind1(2, 0, ctx_r2.FilteredRuns$));
|
|
162
197
|
} }
|
|
163
|
-
function
|
|
164
|
-
i0.ɵɵelementStart(0, "div",
|
|
165
|
-
i0.ɵɵelement(2, "i",
|
|
198
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_34_Template(rf, ctx) { if (rf & 1) {
|
|
199
|
+
i0.ɵɵelementStart(0, "div", 75)(1, "h4");
|
|
200
|
+
i0.ɵɵelement(2, "i", 82);
|
|
166
201
|
i0.ɵɵtext(3, " Execution Context");
|
|
167
202
|
i0.ɵɵelementEnd();
|
|
168
203
|
i0.ɵɵelement(4, "mj-execution-context");
|
|
169
204
|
i0.ɵɵelementEnd();
|
|
170
205
|
} }
|
|
171
|
-
function
|
|
172
|
-
i0.ɵɵelement(0, "i",
|
|
206
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
207
|
+
i0.ɵɵelement(0, "i", 86);
|
|
173
208
|
i0.ɵɵtext(1, " Yes ");
|
|
174
209
|
} }
|
|
175
|
-
function
|
|
176
|
-
i0.ɵɵelement(0, "i",
|
|
210
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
211
|
+
i0.ɵɵelement(0, "i", 87);
|
|
177
212
|
i0.ɵɵtext(1, " No ");
|
|
178
213
|
} }
|
|
179
|
-
function
|
|
214
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
180
215
|
i0.ɵɵtext(0, " -- ");
|
|
181
216
|
} }
|
|
182
|
-
function
|
|
183
|
-
i0.ɵɵelementStart(0, "div",
|
|
217
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
218
|
+
i0.ɵɵelementStart(0, "div", 85);
|
|
184
219
|
i0.ɵɵtext(1);
|
|
185
220
|
i0.ɵɵelementEnd();
|
|
186
221
|
} if (rf & 2) {
|
|
187
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
222
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
188
223
|
i0.ɵɵadvance();
|
|
189
224
|
i0.ɵɵtextInterpolate(ctx_r2.SelectedRun.humanComments);
|
|
190
225
|
} }
|
|
191
|
-
function
|
|
192
|
-
i0.ɵɵelementStart(0, "div",
|
|
226
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
+
i0.ɵɵelementStart(0, "div", 80)(1, "span", 83);
|
|
193
228
|
i0.ɵɵtext(2, "Rating:");
|
|
194
229
|
i0.ɵɵelementEnd();
|
|
195
|
-
i0.ɵɵelementStart(3, "span",
|
|
230
|
+
i0.ɵɵelementStart(3, "span", 84);
|
|
196
231
|
i0.ɵɵtext(4);
|
|
197
232
|
i0.ɵɵelementEnd();
|
|
198
|
-
i0.ɵɵelementStart(5, "span",
|
|
233
|
+
i0.ɵɵelementStart(5, "span", 83);
|
|
199
234
|
i0.ɵɵtext(6, "Correct:");
|
|
200
235
|
i0.ɵɵelementEnd();
|
|
201
|
-
i0.ɵɵelementStart(7, "span",
|
|
202
|
-
i0.ɵɵconditionalCreate(8,
|
|
236
|
+
i0.ɵɵelementStart(7, "span", 84);
|
|
237
|
+
i0.ɵɵconditionalCreate(8, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_8_Template, 2, 0)(9, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_9_Template, 2, 0)(10, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_10_Template, 1, 0);
|
|
203
238
|
i0.ɵɵelementEnd();
|
|
204
|
-
i0.ɵɵconditionalCreate(11,
|
|
239
|
+
i0.ɵɵconditionalCreate(11, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Conditional_11_Template, 2, 1, "div", 85);
|
|
205
240
|
i0.ɵɵelementEnd();
|
|
206
241
|
} if (rf & 2) {
|
|
207
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
242
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
208
243
|
i0.ɵɵadvance(4);
|
|
209
244
|
i0.ɵɵtextInterpolate1("", ctx_r2.SelectedRun.humanRating, "/10");
|
|
210
245
|
i0.ɵɵadvance(4);
|
|
@@ -212,53 +247,53 @@ function TestingRunsComponent_Conditional_58_Conditional_39_Template(rf, ctx) {
|
|
|
212
247
|
i0.ɵɵadvance(3);
|
|
213
248
|
i0.ɵɵconditional(ctx_r2.SelectedRun.humanComments ? 11 : -1);
|
|
214
249
|
} }
|
|
215
|
-
function
|
|
216
|
-
const
|
|
217
|
-
i0.ɵɵelementStart(0, "button",
|
|
218
|
-
i0.ɵɵlistener("click", function
|
|
250
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
251
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
252
|
+
i0.ɵɵelementStart(0, "button", 99);
|
|
253
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_For_6_Template_button_click_0_listener() { const n_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.feedbackRating = n_r14); });
|
|
219
254
|
i0.ɵɵtext(1);
|
|
220
255
|
i0.ɵɵelementEnd();
|
|
221
256
|
} if (rf & 2) {
|
|
222
|
-
const
|
|
223
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
224
|
-
i0.ɵɵclassProp("selected", ctx_r2.feedbackRating ===
|
|
257
|
+
const n_r14 = ctx.$implicit;
|
|
258
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
259
|
+
i0.ɵɵclassProp("selected", ctx_r2.feedbackRating === n_r14);
|
|
225
260
|
i0.ɵɵadvance();
|
|
226
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
261
|
+
i0.ɵɵtextInterpolate1(" ", n_r14, " ");
|
|
227
262
|
} }
|
|
228
|
-
function
|
|
229
|
-
const
|
|
230
|
-
i0.ɵɵelementStart(0, "div",
|
|
263
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
265
|
+
i0.ɵɵelementStart(0, "div", 81)(1, "div", 88)(2, "label");
|
|
231
266
|
i0.ɵɵtext(3, "Rating");
|
|
232
267
|
i0.ɵɵelementEnd();
|
|
233
|
-
i0.ɵɵelementStart(4, "div",
|
|
234
|
-
i0.ɵɵrepeaterCreate(5,
|
|
268
|
+
i0.ɵɵelementStart(4, "div", 89);
|
|
269
|
+
i0.ɵɵrepeaterCreate(5, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_For_6_Template, 2, 3, "button", 90, i0.ɵɵrepeaterTrackByIdentity);
|
|
235
270
|
i0.ɵɵelementEnd()();
|
|
236
|
-
i0.ɵɵelementStart(7, "div",
|
|
271
|
+
i0.ɵɵelementStart(7, "div", 91)(8, "label");
|
|
237
272
|
i0.ɵɵtext(9, "Is the result correct?");
|
|
238
273
|
i0.ɵɵelementEnd();
|
|
239
|
-
i0.ɵɵelementStart(10, "div",
|
|
240
|
-
i0.ɵɵlistener("click", function
|
|
241
|
-
i0.ɵɵelement(12, "i",
|
|
274
|
+
i0.ɵɵelementStart(10, "div", 92)(11, "button", 93);
|
|
275
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.feedbackIsCorrect = true); });
|
|
276
|
+
i0.ɵɵelement(12, "i", 94);
|
|
242
277
|
i0.ɵɵtext(13, " Yes ");
|
|
243
278
|
i0.ɵɵelementEnd();
|
|
244
|
-
i0.ɵɵelementStart(14, "button",
|
|
245
|
-
i0.ɵɵlistener("click", function
|
|
246
|
-
i0.ɵɵelement(15, "i",
|
|
279
|
+
i0.ɵɵelementStart(14, "button", 93);
|
|
280
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.feedbackIsCorrect = false); });
|
|
281
|
+
i0.ɵɵelement(15, "i", 38);
|
|
247
282
|
i0.ɵɵtext(16, " No ");
|
|
248
283
|
i0.ɵɵelementEnd()()();
|
|
249
|
-
i0.ɵɵelementStart(17, "div",
|
|
284
|
+
i0.ɵɵelementStart(17, "div", 95)(18, "label");
|
|
250
285
|
i0.ɵɵtext(19, "Comments");
|
|
251
286
|
i0.ɵɵelementEnd();
|
|
252
|
-
i0.ɵɵelementStart(20, "textarea",
|
|
253
|
-
i0.ɵɵlistener("input", function
|
|
287
|
+
i0.ɵɵelementStart(20, "textarea", 96);
|
|
288
|
+
i0.ɵɵlistener("input", function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_Template_textarea_input_20_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OnFeedbackCommentInput($event)); });
|
|
254
289
|
i0.ɵɵelementEnd()();
|
|
255
|
-
i0.ɵɵelementStart(21, "button",
|
|
256
|
-
i0.ɵɵlistener("click", function
|
|
257
|
-
i0.ɵɵelement(22, "i",
|
|
290
|
+
i0.ɵɵelementStart(21, "button", 97);
|
|
291
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.SubmitFeedback()); });
|
|
292
|
+
i0.ɵɵelement(22, "i", 98);
|
|
258
293
|
i0.ɵɵtext(23);
|
|
259
294
|
i0.ɵɵelementEnd()();
|
|
260
295
|
} if (rf & 2) {
|
|
261
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
296
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
262
297
|
i0.ɵɵadvance(5);
|
|
263
298
|
i0.ɵɵrepeater(ctx_r2.RatingValues);
|
|
264
299
|
i0.ɵɵadvance(6);
|
|
@@ -272,57 +307,57 @@ function TestingRunsComponent_Conditional_58_Conditional_40_Template(rf, ctx) {
|
|
|
272
307
|
i0.ɵɵadvance(2);
|
|
273
308
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.IsSubmittingFeedback ? "Submitting..." : "Submit Feedback", " ");
|
|
274
309
|
} }
|
|
275
|
-
function
|
|
276
|
-
const
|
|
277
|
-
i0.ɵɵelementStart(0, "div",
|
|
278
|
-
i0.ɵɵlistener("click", function
|
|
310
|
+
function TestingRunsComponent_ng_template_2_Conditional_46_Template(rf, ctx) { if (rf & 1) {
|
|
311
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
312
|
+
i0.ɵɵelementStart(0, "div", 64);
|
|
313
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_46_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseDetailPanel()); });
|
|
279
314
|
i0.ɵɵelementEnd();
|
|
280
|
-
i0.ɵɵelementStart(1, "div",
|
|
315
|
+
i0.ɵɵelementStart(1, "div", 65)(2, "div", 66)(3, "div", 67)(4, "h3");
|
|
281
316
|
i0.ɵɵtext(5);
|
|
282
317
|
i0.ɵɵelementEnd();
|
|
283
|
-
i0.ɵɵelement(6, "app-test-status-badge",
|
|
318
|
+
i0.ɵɵelement(6, "app-test-status-badge", 68);
|
|
284
319
|
i0.ɵɵelementEnd();
|
|
285
|
-
i0.ɵɵelementStart(7, "button",
|
|
286
|
-
i0.ɵɵlistener("click", function
|
|
287
|
-
i0.ɵɵelement(8, "i",
|
|
320
|
+
i0.ɵɵelementStart(7, "button", 69);
|
|
321
|
+
i0.ɵɵlistener("click", function TestingRunsComponent_ng_template_2_Conditional_46_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseDetailPanel()); });
|
|
322
|
+
i0.ɵɵelement(8, "i", 38);
|
|
288
323
|
i0.ɵɵelementEnd()();
|
|
289
|
-
i0.ɵɵelementStart(9, "div",
|
|
324
|
+
i0.ɵɵelementStart(9, "div", 70)(10, "div", 71)(11, "div", 72)(12, "span", 73);
|
|
290
325
|
i0.ɵɵtext(13, "Score");
|
|
291
326
|
i0.ɵɵelementEnd();
|
|
292
|
-
i0.ɵɵelement(14, "app-score-indicator",
|
|
327
|
+
i0.ɵɵelement(14, "app-score-indicator", 58);
|
|
293
328
|
i0.ɵɵelementEnd();
|
|
294
|
-
i0.ɵɵelementStart(15, "div",
|
|
329
|
+
i0.ɵɵelementStart(15, "div", 72)(16, "span", 73);
|
|
295
330
|
i0.ɵɵtext(17, "Duration");
|
|
296
331
|
i0.ɵɵelementEnd();
|
|
297
|
-
i0.ɵɵelementStart(18, "span",
|
|
332
|
+
i0.ɵɵelementStart(18, "span", 74);
|
|
298
333
|
i0.ɵɵtext(19);
|
|
299
334
|
i0.ɵɵelementEnd()();
|
|
300
|
-
i0.ɵɵelementStart(20, "div",
|
|
335
|
+
i0.ɵɵelementStart(20, "div", 72)(21, "span", 73);
|
|
301
336
|
i0.ɵɵtext(22, "Cost");
|
|
302
337
|
i0.ɵɵelementEnd();
|
|
303
|
-
i0.ɵɵelement(23, "app-cost-display",
|
|
338
|
+
i0.ɵɵelement(23, "app-cost-display", 59);
|
|
304
339
|
i0.ɵɵelementEnd();
|
|
305
|
-
i0.ɵɵelementStart(24, "div",
|
|
340
|
+
i0.ɵɵelementStart(24, "div", 72)(25, "span", 73);
|
|
306
341
|
i0.ɵɵtext(26, "Started");
|
|
307
342
|
i0.ɵɵelementEnd();
|
|
308
|
-
i0.ɵɵelementStart(27, "span",
|
|
343
|
+
i0.ɵɵelementStart(27, "span", 74);
|
|
309
344
|
i0.ɵɵtext(28);
|
|
310
345
|
i0.ɵɵelementEnd()()();
|
|
311
|
-
i0.ɵɵelementStart(29, "div",
|
|
312
|
-
i0.ɵɵelement(31, "i",
|
|
346
|
+
i0.ɵɵelementStart(29, "div", 75)(30, "h4");
|
|
347
|
+
i0.ɵɵelement(31, "i", 76);
|
|
313
348
|
i0.ɵɵtext(32, " Evaluation");
|
|
314
349
|
i0.ɵɵelementEnd();
|
|
315
|
-
i0.ɵɵelement(33, "app-evaluation-badge",
|
|
350
|
+
i0.ɵɵelement(33, "app-evaluation-badge", 77);
|
|
316
351
|
i0.ɵɵelementEnd();
|
|
317
|
-
i0.ɵɵconditionalCreate(34,
|
|
318
|
-
i0.ɵɵelementStart(35, "div",
|
|
319
|
-
i0.ɵɵelement(37, "i",
|
|
352
|
+
i0.ɵɵconditionalCreate(34, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_34_Template, 5, 0, "div", 75);
|
|
353
|
+
i0.ɵɵelementStart(35, "div", 78)(36, "h4");
|
|
354
|
+
i0.ɵɵelement(37, "i", 79);
|
|
320
355
|
i0.ɵɵtext(38, " Human Feedback");
|
|
321
356
|
i0.ɵɵelementEnd();
|
|
322
|
-
i0.ɵɵconditionalCreate(39,
|
|
357
|
+
i0.ɵɵconditionalCreate(39, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_39_Template, 12, 3, "div", 80)(40, TestingRunsComponent_ng_template_2_Conditional_46_Conditional_40_Template, 24, 7, "div", 81);
|
|
323
358
|
i0.ɵɵelementEnd()()();
|
|
324
359
|
} if (rf & 2) {
|
|
325
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
360
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
326
361
|
i0.ɵɵadvance(5);
|
|
327
362
|
i0.ɵɵtextInterpolate(ctx_r2.SelectedRun.testName);
|
|
328
363
|
i0.ɵɵadvance();
|
|
@@ -342,12 +377,98 @@ function TestingRunsComponent_Conditional_58_Template(rf, ctx) { if (rf & 1) {
|
|
|
342
377
|
i0.ɵɵadvance(5);
|
|
343
378
|
i0.ɵɵconditional(ctx_r2.SelectedRun.hasHumanFeedback ? 39 : 40);
|
|
344
379
|
} }
|
|
380
|
+
function TestingRunsComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
381
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
382
|
+
i0.ɵɵelementStart(0, "div", 7);
|
|
383
|
+
i0.ɵɵlistener("keydown.escape", function TestingRunsComponent_ng_template_2_Template_div_keydown_escape_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseDetailPanel()); });
|
|
384
|
+
i0.ɵɵelementStart(1, "div", 8)(2, "div", 9)(3, "div", 10);
|
|
385
|
+
i0.ɵɵrepeaterCreate(4, TestingRunsComponent_ng_template_2_For_5_Template, 3, 5, "button", 11, _forTrack0);
|
|
386
|
+
i0.ɵɵelementEnd();
|
|
387
|
+
i0.ɵɵelementStart(6, "span", 12);
|
|
388
|
+
i0.ɵɵtext(7);
|
|
389
|
+
i0.ɵɵpipe(8, "async");
|
|
390
|
+
i0.ɵɵelementEnd()();
|
|
391
|
+
i0.ɵɵelementStart(9, "div", 13)(10, "select", 14);
|
|
392
|
+
i0.ɵɵlistener("change", function TestingRunsComponent_ng_template_2_Template_select_change_10_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnTimeRangeChange($event)); });
|
|
393
|
+
i0.ɵɵelementStart(11, "option", 15);
|
|
394
|
+
i0.ɵɵtext(12, "Today");
|
|
395
|
+
i0.ɵɵelementEnd();
|
|
396
|
+
i0.ɵɵelementStart(13, "option", 16);
|
|
397
|
+
i0.ɵɵtext(14, "This Week");
|
|
398
|
+
i0.ɵɵelementEnd();
|
|
399
|
+
i0.ɵɵelementStart(15, "option", 17);
|
|
400
|
+
i0.ɵɵtext(16, "This Month");
|
|
401
|
+
i0.ɵɵelementEnd();
|
|
402
|
+
i0.ɵɵelementStart(17, "option", 18);
|
|
403
|
+
i0.ɵɵtext(18, "Last 90 Days");
|
|
404
|
+
i0.ɵɵelementEnd()();
|
|
405
|
+
i0.ɵɵelementStart(19, "div", 19);
|
|
406
|
+
i0.ɵɵelement(20, "i", 20);
|
|
407
|
+
i0.ɵɵelementStart(21, "input", 21);
|
|
408
|
+
i0.ɵɵlistener("input", function TestingRunsComponent_ng_template_2_Template_input_input_21_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInput($event)); });
|
|
409
|
+
i0.ɵɵelementEnd();
|
|
410
|
+
i0.ɵɵconditionalCreate(22, TestingRunsComponent_ng_template_2_Conditional_22_Template, 2, 0, "button", 22);
|
|
411
|
+
i0.ɵɵelementEnd()()();
|
|
412
|
+
i0.ɵɵconditionalCreate(23, TestingRunsComponent_ng_template_2_Conditional_23_Template, 33, 4, "div", 23);
|
|
413
|
+
i0.ɵɵpipe(24, "async");
|
|
414
|
+
i0.ɵɵelementStart(25, "div", 24)(26, "div", 25)(27, "div", 26);
|
|
415
|
+
i0.ɵɵtext(28, "Test Name");
|
|
416
|
+
i0.ɵɵelementEnd();
|
|
417
|
+
i0.ɵɵelementStart(29, "div", 27);
|
|
418
|
+
i0.ɵɵtext(30, "Evaluation");
|
|
419
|
+
i0.ɵɵelementEnd();
|
|
420
|
+
i0.ɵɵelementStart(31, "div", 28);
|
|
421
|
+
i0.ɵɵtext(32, "Score");
|
|
422
|
+
i0.ɵɵelementEnd();
|
|
423
|
+
i0.ɵɵelementStart(33, "div", 29);
|
|
424
|
+
i0.ɵɵtext(34, "Duration");
|
|
425
|
+
i0.ɵɵelementEnd();
|
|
426
|
+
i0.ɵɵelementStart(35, "div", 30);
|
|
427
|
+
i0.ɵɵtext(36, "Cost");
|
|
428
|
+
i0.ɵɵelementEnd();
|
|
429
|
+
i0.ɵɵelementStart(37, "div", 31);
|
|
430
|
+
i0.ɵɵtext(38, "Started");
|
|
431
|
+
i0.ɵɵelementEnd();
|
|
432
|
+
i0.ɵɵelementStart(39, "div", 32);
|
|
433
|
+
i0.ɵɵtext(40, "Actions");
|
|
434
|
+
i0.ɵɵelementEnd()();
|
|
435
|
+
i0.ɵɵconditionalCreate(41, TestingRunsComponent_ng_template_2_Conditional_41_Template, 2, 0, "div", 33);
|
|
436
|
+
i0.ɵɵpipe(42, "async");
|
|
437
|
+
i0.ɵɵpipe(43, "async");
|
|
438
|
+
i0.ɵɵconditionalBranchCreate(44, TestingRunsComponent_ng_template_2_Conditional_44_Template, 6, 0, "div", 34)(45, TestingRunsComponent_ng_template_2_Conditional_45_Template, 3, 2);
|
|
439
|
+
i0.ɵɵelementEnd();
|
|
440
|
+
i0.ɵɵconditionalCreate(46, TestingRunsComponent_ng_template_2_Conditional_46_Template, 41, 19);
|
|
441
|
+
i0.ɵɵelementEnd();
|
|
442
|
+
} if (rf & 2) {
|
|
443
|
+
let tmp_3_0;
|
|
444
|
+
let tmp_7_0;
|
|
445
|
+
let tmp_8_0;
|
|
446
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
447
|
+
i0.ɵɵadvance(4);
|
|
448
|
+
i0.ɵɵrepeater(ctx_r2.StatusChips);
|
|
449
|
+
i0.ɵɵadvance(3);
|
|
450
|
+
i0.ɵɵtextInterpolate1("", ((tmp_3_0 = i0.ɵɵpipeBind1(8, 7, ctx_r2.FilteredRuns$)) == null ? null : tmp_3_0.length) ?? 0, " results");
|
|
451
|
+
i0.ɵɵadvance(3);
|
|
452
|
+
i0.ɵɵproperty("value", ctx_r2.filterState.timeRange);
|
|
453
|
+
i0.ɵɵadvance(11);
|
|
454
|
+
i0.ɵɵproperty("value", ctx_r2.filterState.searchText);
|
|
455
|
+
i0.ɵɵadvance();
|
|
456
|
+
i0.ɵɵconditional(ctx_r2.filterState.searchText ? 22 : -1);
|
|
457
|
+
i0.ɵɵadvance();
|
|
458
|
+
i0.ɵɵconditional((tmp_7_0 = i0.ɵɵpipeBind1(24, 9, ctx_r2.FilteredStats$)) ? 23 : -1, tmp_7_0);
|
|
459
|
+
i0.ɵɵadvance(18);
|
|
460
|
+
i0.ɵɵconditional(i0.ɵɵpipeBind1(42, 11, ctx_r2.instrumentationService.isLoading$) ? 41 : ((tmp_8_0 = i0.ɵɵpipeBind1(43, 13, ctx_r2.FilteredRuns$)) == null ? null : tmp_8_0.length) === 0 ? 44 : 45);
|
|
461
|
+
i0.ɵɵadvance(5);
|
|
462
|
+
i0.ɵɵconditional(ctx_r2.SelectedRun ? 46 : -1);
|
|
463
|
+
} }
|
|
345
464
|
export class TestingRunsComponent {
|
|
346
465
|
instrumentationService;
|
|
347
466
|
testingDialogService;
|
|
348
467
|
cdr;
|
|
349
468
|
viewContainerRef;
|
|
350
469
|
initialState = null;
|
|
470
|
+
/** When true, the inner bespoke .page-header is hidden — the parent shell owns the chrome. */
|
|
471
|
+
HideToolbar = false;
|
|
351
472
|
stateChange = new EventEmitter();
|
|
352
473
|
destroy$ = new Subject();
|
|
353
474
|
filterTrigger$ = new BehaviorSubject(undefined);
|
|
@@ -638,129 +759,39 @@ export class TestingRunsComponent {
|
|
|
638
759
|
static ɵfac = function TestingRunsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingRunsComponent)(i0.ɵɵdirectiveInject(i1.TestingInstrumentationService), i0.ɵɵdirectiveInject(i2.TestingDialogService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef)); };
|
|
639
760
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingRunsComponent, selectors: [["app-testing-runs"]], hostBindings: function TestingRunsComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
640
761
|
i0.ɵɵlistener("keydown.escape", function TestingRunsComponent_keydown_escape_HostBindingHandler() { return ctx.OnEscapeKey(); }, i0.ɵɵresolveDocument);
|
|
641
|
-
} }, inputs: { initialState: "initialState" }, outputs: { stateChange: "stateChange" }, standalone: false, decls:
|
|
642
|
-
i0.ɵɵ
|
|
643
|
-
i0.ɵɵ
|
|
644
|
-
i0.ɵɵelementStart(1, "div", 1)(2, "div", 2);
|
|
645
|
-
i0.ɵɵelement(3, "i", 3);
|
|
646
|
-
i0.ɵɵelementStart(4, "h2");
|
|
647
|
-
i0.ɵɵtext(5, "Test Runs");
|
|
648
|
-
i0.ɵɵelementEnd()();
|
|
649
|
-
i0.ɵɵelementStart(6, "div", 4)(7, "button", 5);
|
|
650
|
-
i0.ɵɵlistener("click", function TestingRunsComponent_Template_button_click_7_listener() { return ctx.Refresh(); });
|
|
651
|
-
i0.ɵɵelement(8, "i", 6);
|
|
652
|
-
i0.ɵɵtext(9, " Refresh ");
|
|
653
|
-
i0.ɵɵelementEnd();
|
|
654
|
-
i0.ɵɵelementStart(10, "button", 7);
|
|
655
|
-
i0.ɵɵlistener("click", function TestingRunsComponent_Template_button_click_10_listener() { return ctx.StartNewTest(); });
|
|
656
|
-
i0.ɵɵelement(11, "i", 8);
|
|
657
|
-
i0.ɵɵtext(12, " Run Test ");
|
|
658
|
-
i0.ɵɵelementEnd()()();
|
|
659
|
-
i0.ɵɵelementStart(13, "div", 9)(14, "div", 10)(15, "div", 11);
|
|
660
|
-
i0.ɵɵrepeaterCreate(16, TestingRunsComponent_For_17_Template, 3, 5, "button", 12, _forTrack0);
|
|
661
|
-
i0.ɵɵelementEnd();
|
|
662
|
-
i0.ɵɵelementStart(18, "span", 13);
|
|
663
|
-
i0.ɵɵtext(19);
|
|
664
|
-
i0.ɵɵpipe(20, "async");
|
|
665
|
-
i0.ɵɵelementEnd()();
|
|
666
|
-
i0.ɵɵelementStart(21, "div", 14)(22, "select", 15);
|
|
667
|
-
i0.ɵɵlistener("change", function TestingRunsComponent_Template_select_change_22_listener($event) { return ctx.OnTimeRangeChange($event); });
|
|
668
|
-
i0.ɵɵelementStart(23, "option", 16);
|
|
669
|
-
i0.ɵɵtext(24, "Today");
|
|
670
|
-
i0.ɵɵelementEnd();
|
|
671
|
-
i0.ɵɵelementStart(25, "option", 17);
|
|
672
|
-
i0.ɵɵtext(26, "This Week");
|
|
673
|
-
i0.ɵɵelementEnd();
|
|
674
|
-
i0.ɵɵelementStart(27, "option", 18);
|
|
675
|
-
i0.ɵɵtext(28, "This Month");
|
|
676
|
-
i0.ɵɵelementEnd();
|
|
677
|
-
i0.ɵɵelementStart(29, "option", 19);
|
|
678
|
-
i0.ɵɵtext(30, "Last 90 Days");
|
|
679
|
-
i0.ɵɵelementEnd()();
|
|
680
|
-
i0.ɵɵelementStart(31, "div", 20);
|
|
681
|
-
i0.ɵɵelement(32, "i", 21);
|
|
682
|
-
i0.ɵɵelementStart(33, "input", 22);
|
|
683
|
-
i0.ɵɵlistener("input", function TestingRunsComponent_Template_input_input_33_listener($event) { return ctx.OnSearchInput($event); });
|
|
684
|
-
i0.ɵɵelementEnd();
|
|
685
|
-
i0.ɵɵconditionalCreate(34, TestingRunsComponent_Conditional_34_Template, 2, 0, "button", 23);
|
|
686
|
-
i0.ɵɵelementEnd()()();
|
|
687
|
-
i0.ɵɵconditionalCreate(35, TestingRunsComponent_Conditional_35_Template, 33, 4, "div", 24);
|
|
688
|
-
i0.ɵɵpipe(36, "async");
|
|
689
|
-
i0.ɵɵelementStart(37, "div", 25)(38, "div", 26)(39, "div", 27);
|
|
690
|
-
i0.ɵɵtext(40, "Test Name");
|
|
691
|
-
i0.ɵɵelementEnd();
|
|
692
|
-
i0.ɵɵelementStart(41, "div", 28);
|
|
693
|
-
i0.ɵɵtext(42, "Evaluation");
|
|
694
|
-
i0.ɵɵelementEnd();
|
|
695
|
-
i0.ɵɵelementStart(43, "div", 29);
|
|
696
|
-
i0.ɵɵtext(44, "Score");
|
|
697
|
-
i0.ɵɵelementEnd();
|
|
698
|
-
i0.ɵɵelementStart(45, "div", 30);
|
|
699
|
-
i0.ɵɵtext(46, "Duration");
|
|
700
|
-
i0.ɵɵelementEnd();
|
|
701
|
-
i0.ɵɵelementStart(47, "div", 31);
|
|
702
|
-
i0.ɵɵtext(48, "Cost");
|
|
703
|
-
i0.ɵɵelementEnd();
|
|
704
|
-
i0.ɵɵelementStart(49, "div", 32);
|
|
705
|
-
i0.ɵɵtext(50, "Started");
|
|
706
|
-
i0.ɵɵelementEnd();
|
|
707
|
-
i0.ɵɵelementStart(51, "div", 33);
|
|
708
|
-
i0.ɵɵtext(52, "Actions");
|
|
709
|
-
i0.ɵɵelementEnd()();
|
|
710
|
-
i0.ɵɵconditionalCreate(53, TestingRunsComponent_Conditional_53_Template, 2, 0, "div", 34);
|
|
711
|
-
i0.ɵɵpipe(54, "async");
|
|
712
|
-
i0.ɵɵpipe(55, "async");
|
|
713
|
-
i0.ɵɵconditionalBranchCreate(56, TestingRunsComponent_Conditional_56_Template, 6, 0, "div", 35)(57, TestingRunsComponent_Conditional_57_Template, 3, 2);
|
|
714
|
-
i0.ɵɵelementEnd();
|
|
715
|
-
i0.ɵɵconditionalCreate(58, TestingRunsComponent_Conditional_58_Template, 41, 19);
|
|
716
|
-
i0.ɵɵelementEnd();
|
|
762
|
+
} }, inputs: { initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { stateChange: "stateChange" }, standalone: false, decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Test Runs", "Icon", "fa-solid fa-list-check", "Subtitle", "Test execution history and monitoring"], ["actions", ""], [3, "Clicked", "Loading"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-play"], [1, "runs-container", 3, "keydown.escape"], [1, "filter-bar"], [1, "filter-left"], [1, "filter-chips"], [1, "chip", 3, "active"], [1, "result-count"], [1, "filter-right"], [1, "time-select", 3, "change", "value"], ["value", "today"], ["value", "week"], ["value", "month"], ["value", "90days"], [1, "search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search by test name...", 3, "input", "value"], [1, "clear-search"], [1, "stats-row"], [1, "runs-table-wrapper"], [1, "table-header"], [1, "col", "col-name"], [1, "col", "col-eval"], [1, "col", "col-score"], [1, "col", "col-duration"], [1, "col", "col-cost"], [1, "col", "col-time"], [1, "col", "col-actions"], [1, "table-loading"], [1, "table-empty"], [1, "chip", 3, "click"], [3, "class"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], [1, "stat-card"], [1, "stat-icon", "total"], [1, "fa-solid", "fa-hashtag"], [1, "stat-body"], [1, "stat-value"], [1, "stat-label"], [1, "stat-icon", "pass"], [1, "fa-solid", "fa-check-circle"], [1, "stat-icon", "duration"], [1, "fa-solid", "fa-clock"], [1, "stat-icon", "cost"], [1, "fa-solid", "fa-dollar-sign"], ["text", "Loading test runs..."], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "table-row", 3, "is-running", "is-selected"], [1, "table-row", 3, "click"], [1, "test-name-link", 3, "click"], ["mode", "compact", 3, "executionStatus", "originalStatus", "autoScore", "passedChecks", "failedChecks", "totalChecks", "humanRating", "humanIsCorrect", "hasHumanFeedback", "preferences"], [3, "score", "showBar"], [3, "cost"], ["title", "View details", 1, "icon-btn", 3, "click"], [1, "fa-solid", "fa-eye"], ["title", "Re-run test", 1, "icon-btn", 3, "click"], [1, "fa-solid", "fa-rotate-right"], [1, "detail-overlay", 3, "click"], [1, "detail-panel"], [1, "detail-panel-header"], [1, "detail-title-section"], [3, "status"], [1, "close-btn", 3, "click"], [1, "detail-panel-body"], [1, "detail-metrics"], [1, "detail-metric"], [1, "dm-label"], [1, "dm-value"], [1, "detail-section"], [1, "fa-solid", "fa-clipboard-check"], ["mode", "expanded", 3, "executionStatus", "originalStatus", "autoScore", "passedChecks", "failedChecks", "totalChecks", "humanRating", "humanIsCorrect", "hasHumanFeedback", "preferences"], [1, "detail-section", "feedback-section"], [1, "fa-solid", "fa-comment-dots"], [1, "existing-feedback"], [1, "feedback-form"], [1, "fa-solid", "fa-server"], [1, "feedback-label"], [1, "feedback-value"], [1, "feedback-comments"], [1, "fa-solid", "fa-check", 2, "color", "var(--mj-status-success)"], [1, "fa-solid", "fa-times", 2, "color", "var(--mj-status-error)"], [1, "rating-row"], [1, "rating-buttons"], [1, "rating-btn", 3, "selected"], [1, "correctness-row"], [1, "toggle-group"], [1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-check"], [1, "comments-row"], ["rows", "3", "placeholder", "Optional feedback comments...", 3, "input", "value"], [1, "btn", "btn-primary", "submit-feedback-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-paper-plane"], [1, "rating-btn", 3, "click"]], template: function TestingRunsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
763
|
+
i0.ɵɵconditionalCreate(0, TestingRunsComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingRunsComponent_Conditional_1_Template, 9, 2, "mj-page-layout");
|
|
764
|
+
i0.ɵɵtemplate(2, TestingRunsComponent_ng_template_2_Template, 47, 15, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
717
765
|
} if (rf & 2) {
|
|
718
|
-
|
|
719
|
-
let tmp_7_0;
|
|
720
|
-
let tmp_8_0;
|
|
721
|
-
i0.ɵɵadvance(7);
|
|
722
|
-
i0.ɵɵproperty("disabled", ctx.IsRefreshing);
|
|
723
|
-
i0.ɵɵadvance();
|
|
724
|
-
i0.ɵɵclassProp("spinning", ctx.IsRefreshing);
|
|
725
|
-
i0.ɵɵadvance(8);
|
|
726
|
-
i0.ɵɵrepeater(ctx.StatusChips);
|
|
727
|
-
i0.ɵɵadvance(3);
|
|
728
|
-
i0.ɵɵtextInterpolate1("", ((tmp_3_0 = i0.ɵɵpipeBind1(20, 10, ctx.FilteredRuns$)) == null ? null : tmp_3_0.length) ?? 0, " results");
|
|
729
|
-
i0.ɵɵadvance(3);
|
|
730
|
-
i0.ɵɵproperty("value", ctx.filterState.timeRange);
|
|
731
|
-
i0.ɵɵadvance(11);
|
|
732
|
-
i0.ɵɵproperty("value", ctx.filterState.searchText);
|
|
733
|
-
i0.ɵɵadvance();
|
|
734
|
-
i0.ɵɵconditional(ctx.filterState.searchText ? 34 : -1);
|
|
735
|
-
i0.ɵɵadvance();
|
|
736
|
-
i0.ɵɵconditional((tmp_7_0 = i0.ɵɵpipeBind1(36, 12, ctx.FilteredStats$)) ? 35 : -1, tmp_7_0);
|
|
737
|
-
i0.ɵɵadvance(18);
|
|
738
|
-
i0.ɵɵconditional(i0.ɵɵpipeBind1(54, 14, ctx.instrumentationService.isLoading$) ? 53 : ((tmp_8_0 = i0.ɵɵpipeBind1(55, 16, ctx.FilteredRuns$)) == null ? null : tmp_8_0.length) === 0 ? 56 : 57);
|
|
739
|
-
i0.ɵɵadvance(5);
|
|
740
|
-
i0.ɵɵconditional(ctx.SelectedRun ? 58 : -1);
|
|
741
|
-
} }, dependencies: [i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i2.TestStatusBadgeComponent, i2.ScoreIndicatorComponent, i2.CostDisplayComponent, i2.EvaluationBadgeComponent, i2.ExecutionContextComponent, i4.LoadingComponent, i5.AsyncPipe], styles: ["\n\n\n\n\n .runs-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n position: relative;\n }\n\n \n\n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n }\n\n .header-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 22px;\n color: var(--mj-brand-primary);\n }\n\n .header-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: none;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n }\n\n @keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n \n\n .filter-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n margin-bottom: 20px;\n padding: 14px 20px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .filter-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .filter-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n }\n\n .chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 2px solid transparent;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .chip[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n }\n\n .chip.active[data-status=\"running\"][_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n }\n\n .chip.active[data-status=\"passed\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"failed\"][_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n border-color: var(--mj-status-error);\n }\n\n .chip.active[data-status=\"error\"][_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .filter-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .time-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface);\n cursor: pointer;\n }\n\n .time-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n }\n\n .search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-card);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n min-width: 220px;\n transition: border-color 0.2s ease;\n }\n\n .search-box[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-secondary);\n }\n\n .search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n \n\n .stats-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 14px;\n margin-bottom: 20px;\n }\n\n .stat-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .stat-icon[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n }\n\n .stat-icon.total[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface)); color: var(--mj-brand-primary); }\n .stat-icon.pass[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface)); color: var(--mj-status-success); }\n .stat-icon.duration[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface)); color: var(--mj-brand-primary); }\n .stat-icon.cost[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface)); color: var(--mj-status-warning); }\n\n .stat-body[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1.1;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 2px;\n }\n\n \n\n .runs-table-wrapper[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .table-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 140px 120px 100px 100px 120px 90px;\n gap: 12px;\n padding: 14px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .table-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 140px 120px 100px 100px 120px 90px;\n gap: 12px;\n padding: 14px 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n cursor: pointer;\n transition: background 0.15s ease;\n align-items: center;\n }\n\n .table-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .table-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n }\n\n .table-row.is-selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface));\n border-left: 3px solid var(--mj-brand-primary);\n }\n\n .table-row.is-running[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n }\n\n .table-row.is-running[_ngcontent-%COMP%] .test-name-link[_ngcontent-%COMP%]::after {\n content: '';\n display: inline-block;\n width: 8px;\n height: 8px;\n background: var(--mj-brand-primary);\n border-radius: 50%;\n margin-left: 8px;\n animation: _ngcontent-%COMP%_pulse-dot 1.5s infinite;\n }\n\n @keyframes _ngcontent-%COMP%_pulse-dot {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.3; }\n }\n\n .col[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n }\n\n .test-name-link[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .test-name-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n text-decoration: underline;\n }\n\n .col-actions[_ngcontent-%COMP%] {\n gap: 6px;\n justify-content: flex-end;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-muted);\n cursor: pointer;\n border-radius: 8px;\n font-size: 13px;\n transition: all 0.2s ease;\n }\n\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n \n\n .table-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 80px 40px;\n }\n\n .table-empty[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .table-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-strong);\n margin-bottom: 16px;\n }\n\n .table-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n .detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n }\n\n \n\n .detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: 520px;\n max-width: 90vw;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease-out;\n }\n\n @keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n }\n\n .detail-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n .detail-title-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .detail-title-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n flex-shrink: 0;\n margin-left: 12px;\n transition: all 0.15s ease;\n }\n\n .close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .detail-panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .detail-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 24px;\n }\n\n .detail-metric[_ngcontent-%COMP%] {\n padding: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border-left: 3px solid var(--mj-brand-primary);\n }\n\n .dm-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .dm-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n\n .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n \n\n .existing-feedback[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 16px;\n align-items: center;\n padding: 14px;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-radius: 8px;\n font-size: 13px;\n }\n\n .feedback-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-muted);\n }\n\n .feedback-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 500;\n }\n\n .feedback-comments[_ngcontent-%COMP%] {\n width: 100%;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-style: italic;\n }\n\n .feedback-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .feedback-form[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .rating-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n }\n\n .rating-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .rating-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n }\n\n .rating-btn.selected[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 2px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .comments-row[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px;\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n font-family: inherit;\n color: var(--mj-text-secondary);\n resize: vertical;\n box-sizing: border-box;\n }\n\n .comments-row[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n }\n\n .comments-row[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .submit-feedback-btn[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n\n \n\n @media (max-width: 1400px) {\n .stats-row[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n @media (max-width: 1200px) {\n .filter-bar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-left[_ngcontent-%COMP%], .filter-right[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .table-header[_ngcontent-%COMP%], .table-row[_ngcontent-%COMP%] {\n grid-template-columns: 2fr 120px 100px 100px 80px;\n }\n\n .col-eval[_ngcontent-%COMP%], .col-time[_ngcontent-%COMP%] {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .stats-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .detail-panel[_ngcontent-%COMP%] {\n width: 100vw;\n max-width: 100vw;\n }\n }\n\n @media (max-width: 480px) {\n .table-header[_ngcontent-%COMP%], .table-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 80px 60px;\n }\n\n .col-score[_ngcontent-%COMP%], .col-duration[_ngcontent-%COMP%] {\n display: none;\n }\n\n .chip[_ngcontent-%COMP%] {\n min-height: 44px;\n padding: 8px 14px;\n }\n\n .table-row[_ngcontent-%COMP%] {\n min-height: 44px;\n }\n }"], changeDetection: 0 });
|
|
766
|
+
i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
|
|
767
|
+
} }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i5.MJButtonDirective, i5.MJPageHeaderComponent, i5.MJPageLayoutComponent, i5.MJPageBodyComponent, i5.MJRefreshButtonComponent, i2.TestStatusBadgeComponent, i2.ScoreIndicatorComponent, i2.CostDisplayComponent, i2.EvaluationBadgeComponent, i2.ExecutionContextComponent, i6.LoadingComponent, i3.AsyncPipe], styles: ["\n\n\n\n\n .runs-container[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n position: relative;\n }\n\n \n\n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n }\n\n .header-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 22px;\n color: var(--mj-brand-primary);\n }\n\n .header-title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .header-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: none;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .spinning[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n }\n\n @keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n \n\n .filter-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n margin-bottom: 20px;\n padding: 14px 20px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .filter-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .filter-chips[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n }\n\n .chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 2px solid transparent;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .chip[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n }\n\n .chip.active[data-status=\"running\"][_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n }\n\n .chip.active[data-status=\"passed\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"failed\"][_ngcontent-%COMP%] {\n background: var(--mj-status-error);\n border-color: var(--mj-status-error);\n }\n\n .chip.active[data-status=\"error\"][_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .filter-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .time-select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface);\n cursor: pointer;\n }\n\n .time-select[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n }\n\n .search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-card);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n min-width: 220px;\n transition: border-color 0.2s ease;\n }\n\n .search-box[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-secondary);\n }\n\n .search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n \n\n .stats-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 14px;\n margin-bottom: 20px;\n }\n\n .stat-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .stat-icon[_ngcontent-%COMP%] {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n }\n\n .stat-icon.total[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface)); color: var(--mj-brand-primary); }\n .stat-icon.pass[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface)); color: var(--mj-status-success); }\n .stat-icon.duration[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface)); color: var(--mj-brand-primary); }\n .stat-icon.cost[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface)); color: var(--mj-status-warning); }\n\n .stat-body[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1.1;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 2px;\n }\n\n \n\n .runs-table-wrapper[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .table-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 140px 120px 100px 100px 120px 90px;\n gap: 12px;\n padding: 14px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .table-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 2fr 140px 120px 100px 100px 120px 90px;\n gap: 12px;\n padding: 14px 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n cursor: pointer;\n transition: background 0.15s ease;\n align-items: center;\n }\n\n .table-row[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .table-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-card);\n }\n\n .table-row.is-selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface));\n border-left: 3px solid var(--mj-brand-primary);\n }\n\n .table-row.is-running[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n }\n\n .table-row.is-running[_ngcontent-%COMP%] .test-name-link[_ngcontent-%COMP%]::after {\n content: '';\n display: inline-block;\n width: 8px;\n height: 8px;\n background: var(--mj-brand-primary);\n border-radius: 50%;\n margin-left: 8px;\n animation: _ngcontent-%COMP%_pulse-dot 1.5s infinite;\n }\n\n @keyframes _ngcontent-%COMP%_pulse-dot {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.3; }\n }\n\n .col[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n }\n\n .test-name-link[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .test-name-link[_ngcontent-%COMP%]:hover {\n color: var(--mj-brand-primary);\n text-decoration: underline;\n }\n\n .col-actions[_ngcontent-%COMP%] {\n gap: 6px;\n justify-content: flex-end;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-muted);\n cursor: pointer;\n border-radius: 8px;\n font-size: 13px;\n transition: all 0.2s ease;\n }\n\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n \n\n .table-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 80px 40px;\n }\n\n .table-empty[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .table-empty[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-border-strong);\n margin-bottom: 16px;\n }\n\n .table-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n .detail-overlay[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n }\n\n \n\n .detail-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: 520px;\n max-width: 90vw;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: _ngcontent-%COMP%_slideIn 0.25s ease-out;\n }\n\n @keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n }\n\n .detail-panel-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n .detail-title-section[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .detail-title-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n flex-shrink: 0;\n margin-left: 12px;\n transition: all 0.15s ease;\n }\n\n .close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .detail-panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .detail-metrics[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 24px;\n }\n\n .detail-metric[_ngcontent-%COMP%] {\n padding: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border-left: 3px solid var(--mj-brand-primary);\n }\n\n .dm-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .dm-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n\n .detail-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .detail-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n \n\n .existing-feedback[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 16px;\n align-items: center;\n padding: 14px;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-radius: 8px;\n font-size: 13px;\n }\n\n .feedback-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-muted);\n }\n\n .feedback-value[_ngcontent-%COMP%] {\n color: var(--mj-text-primary);\n font-weight: 500;\n }\n\n .feedback-comments[_ngcontent-%COMP%] {\n width: 100%;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-style: italic;\n }\n\n .feedback-form[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .feedback-form[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .rating-buttons[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n }\n\n .rating-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .rating-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n }\n\n .rating-btn.selected[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 2px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .comments-row[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px;\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n font-family: inherit;\n color: var(--mj-text-secondary);\n resize: vertical;\n box-sizing: border-box;\n }\n\n .comments-row[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n }\n\n .comments-row[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .submit-feedback-btn[_ngcontent-%COMP%] {\n align-self: flex-start;\n }\n\n \n\n @media (max-width: 1400px) {\n .stats-row[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n @media (max-width: 1200px) {\n .filter-bar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-left[_ngcontent-%COMP%], .filter-right[_ngcontent-%COMP%] {\n justify-content: center;\n }\n\n .table-header[_ngcontent-%COMP%], .table-row[_ngcontent-%COMP%] {\n grid-template-columns: 2fr 120px 100px 100px 80px;\n }\n\n .col-eval[_ngcontent-%COMP%], .col-time[_ngcontent-%COMP%] {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .stats-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .detail-panel[_ngcontent-%COMP%] {\n width: 100vw;\n max-width: 100vw;\n }\n }\n\n @media (max-width: 480px) {\n .table-header[_ngcontent-%COMP%], .table-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 80px 60px;\n }\n\n .col-score[_ngcontent-%COMP%], .col-duration[_ngcontent-%COMP%] {\n display: none;\n }\n\n .chip[_ngcontent-%COMP%] {\n min-height: 44px;\n padding: 8px 14px;\n }\n\n .table-row[_ngcontent-%COMP%] {\n min-height: 44px;\n }\n }"], changeDetection: 0 });
|
|
742
768
|
}
|
|
743
769
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingRunsComponent, [{
|
|
744
770
|
type: Component,
|
|
745
771
|
args: [{ standalone: false, selector: 'app-testing-runs', changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
746
|
-
|
|
772
|
+
@if (HideToolbar) {
|
|
773
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
774
|
+
} @else {
|
|
775
|
+
<mj-page-layout>
|
|
776
|
+
<mj-page-header
|
|
777
|
+
Title="Test Runs"
|
|
778
|
+
Icon="fa-solid fa-list-check"
|
|
779
|
+
Subtitle="Test execution history and monitoring">
|
|
780
|
+
<div actions>
|
|
781
|
+
<mj-refresh-button [Loading]="IsRefreshing" (Clicked)="Refresh()"></mj-refresh-button>
|
|
782
|
+
<button mjButton variant="primary" size="sm" (click)="StartNewTest()">
|
|
783
|
+
<i class="fa-solid fa-play"></i> Run Test
|
|
784
|
+
</button>
|
|
785
|
+
</div>
|
|
786
|
+
</mj-page-header>
|
|
787
|
+
<mj-page-body>
|
|
788
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
789
|
+
</mj-page-body>
|
|
790
|
+
</mj-page-layout>
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
<ng-template #content>
|
|
747
794
|
<div class="runs-container" (keydown.escape)="CloseDetailPanel()">
|
|
748
|
-
<div class="page-header">
|
|
749
|
-
<div class="header-title">
|
|
750
|
-
<i class="fa-solid fa-list-check"></i>
|
|
751
|
-
<h2>Test Runs</h2>
|
|
752
|
-
</div>
|
|
753
|
-
<div class="header-actions">
|
|
754
|
-
<button class="btn btn-secondary" (click)="Refresh()" [disabled]="IsRefreshing">
|
|
755
|
-
<i class="fa-solid fa-sync-alt" [class.spinning]="IsRefreshing"></i>
|
|
756
|
-
Refresh
|
|
757
|
-
</button>
|
|
758
|
-
<button class="btn btn-primary" (click)="StartNewTest()">
|
|
759
|
-
<i class="fa-solid fa-play"></i>
|
|
760
|
-
Run Test
|
|
761
|
-
</button>
|
|
762
|
-
</div>
|
|
763
|
-
</div>
|
|
764
795
|
|
|
765
796
|
<!-- Filter Bar -->
|
|
766
797
|
<div class="filter-bar">
|
|
@@ -1056,14 +1087,17 @@ export class TestingRunsComponent {
|
|
|
1056
1087
|
</div>
|
|
1057
1088
|
}
|
|
1058
1089
|
</div>
|
|
1090
|
+
</ng-template>
|
|
1059
1091
|
`, styles: ["\n /* ==========================================\n Testing Runs Component\n ========================================== */\n\n .runs-container {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n position: relative;\n }\n\n /* Page Header */\n .page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n }\n\n .header-title {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-title i {\n font-size: 22px;\n color: var(--mj-brand-primary);\n }\n\n .header-title h2 {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .header-actions {\n display: flex;\n gap: 10px;\n }\n\n /* Buttons */\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: none;\n border-radius: 10px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary:hover:not(:disabled) {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary:hover:not(:disabled) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .spinning {\n animation: spin 1s linear infinite;\n }\n\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n /* Filter Bar */\n .filter-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n margin-bottom: 20px;\n padding: 14px 20px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .filter-left {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .filter-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n }\n\n .chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 7px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 2px solid transparent;\n border-radius: 20px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .chip:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n border-color: var(--mj-brand-primary);\n }\n\n .chip.active[data-status=\"running\"] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n }\n\n .chip.active[data-status=\"passed\"] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"failed\"] {\n background: var(--mj-status-error);\n border-color: var(--mj-status-error);\n }\n\n .chip.active[data-status=\"error\"] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .result-count {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .filter-right {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .time-select {\n padding: 8px 12px;\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-text-secondary);\n background: var(--mj-bg-surface);\n cursor: pointer;\n }\n\n .time-select:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n }\n\n .search-box {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-card);\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n min-width: 220px;\n transition: border-color 0.2s ease;\n }\n\n .search-box:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .search-box i {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .search-box input {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-secondary);\n }\n\n .search-box input::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n /* Stats Row */\n .stats-row {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 14px;\n margin-bottom: 20px;\n }\n\n .stat-card {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 16px 20px;\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .stat-icon {\n width: 42px;\n height: 42px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n }\n\n .stat-icon.total { background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface)); color: var(--mj-brand-primary); }\n .stat-icon.pass { background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface)); color: var(--mj-status-success); }\n .stat-icon.duration { background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface)); color: var(--mj-brand-primary); }\n .stat-icon.cost { background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface)); color: var(--mj-status-warning); }\n\n .stat-body {\n flex: 1;\n }\n\n .stat-value {\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1.1;\n }\n\n .stat-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-top: 2px;\n }\n\n /* Runs Table */\n .runs-table-wrapper {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .table-header {\n display: grid;\n grid-template-columns: 2fr 140px 120px 100px 100px 120px 90px;\n gap: 12px;\n padding: 14px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 700;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .table-row {\n display: grid;\n grid-template-columns: 2fr 140px 120px 100px 100px 120px 90px;\n gap: 12px;\n padding: 14px 24px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n cursor: pointer;\n transition: background 0.15s ease;\n align-items: center;\n }\n\n .table-row:last-child {\n border-bottom: none;\n }\n\n .table-row:hover {\n background: var(--mj-bg-surface-card);\n }\n\n .table-row.is-selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 6%, var(--mj-bg-surface));\n border-left: 3px solid var(--mj-brand-primary);\n }\n\n .table-row.is-running {\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n }\n\n .table-row.is-running .test-name-link::after {\n content: '';\n display: inline-block;\n width: 8px;\n height: 8px;\n background: var(--mj-brand-primary);\n border-radius: 50%;\n margin-left: 8px;\n animation: pulse-dot 1.5s infinite;\n }\n\n @keyframes pulse-dot {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.3; }\n }\n\n .col {\n display: flex;\n align-items: center;\n font-size: 13px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n }\n\n .test-name-link {\n font-weight: 600;\n color: var(--mj-text-primary);\n cursor: pointer;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .test-name-link:hover {\n color: var(--mj-brand-primary);\n text-decoration: underline;\n }\n\n .col-actions {\n gap: 6px;\n justify-content: flex-end;\n }\n\n .icon-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n color: var(--mj-text-muted);\n cursor: pointer;\n border-radius: 8px;\n font-size: 13px;\n transition: all 0.2s ease;\n }\n\n .icon-btn:hover {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n /* Table states */\n .table-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 80px 40px;\n }\n\n .table-empty {\n padding: 80px 40px;\n text-align: center;\n }\n\n .table-empty i {\n font-size: 48px;\n color: var(--mj-border-strong);\n margin-bottom: 16px;\n }\n\n .table-empty p {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n /* Detail Panel Overlay */\n .detail-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n }\n\n /* Detail Panel */\n .detail-panel {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n width: 520px;\n max-width: 90vw;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n animation: slideIn 0.25s ease-out;\n }\n\n @keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n }\n\n .detail-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n .detail-title-section {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n min-width: 0;\n }\n\n .detail-title-section h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .close-btn {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n flex-shrink: 0;\n margin-left: 12px;\n transition: all 0.15s ease;\n }\n\n .close-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .detail-panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .detail-metrics {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n margin-bottom: 24px;\n }\n\n .detail-metric {\n padding: 12px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border-left: 3px solid var(--mj-brand-primary);\n }\n\n .dm-label {\n display: block;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .dm-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n\n .detail-section {\n margin-bottom: 24px;\n }\n\n .detail-section h4 {\n font-size: 13px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n margin: 0 0 12px 0;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .detail-section h4 i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n /* Feedback Section */\n .existing-feedback {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 16px;\n align-items: center;\n padding: 14px;\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n border-radius: 8px;\n font-size: 13px;\n }\n\n .feedback-label {\n font-weight: 600;\n color: var(--mj-text-muted);\n }\n\n .feedback-value {\n color: var(--mj-text-primary);\n font-weight: 500;\n }\n\n .feedback-comments {\n width: 100%;\n margin-top: 8px;\n padding-top: 8px;\n border-top: 1px solid color-mix(in srgb, var(--mj-status-success) 25%, var(--mj-bg-surface));\n font-size: 13px;\n color: var(--mj-text-secondary);\n font-style: italic;\n }\n\n .feedback-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n }\n\n .feedback-form label {\n display: block;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .rating-buttons {\n display: flex;\n gap: 4px;\n }\n\n .rating-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 2px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .rating-btn:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n }\n\n .rating-btn.selected {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-group {\n display: flex;\n gap: 8px;\n }\n\n .toggle-btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 2px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn.active {\n border-color: var(--mj-brand-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 8%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .comments-row textarea {\n width: 100%;\n padding: 10px 12px;\n border: 2px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n font-family: inherit;\n color: var(--mj-text-secondary);\n resize: vertical;\n box-sizing: border-box;\n }\n\n .comments-row textarea:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n }\n\n .comments-row textarea::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .submit-feedback-btn {\n align-self: flex-start;\n }\n\n /* Responsive */\n @media (max-width: 1400px) {\n .stats-row {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n @media (max-width: 1200px) {\n .filter-bar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .filter-left, .filter-right {\n justify-content: center;\n }\n\n .table-header, .table-row {\n grid-template-columns: 2fr 120px 100px 100px 80px;\n }\n\n .col-eval, .col-time {\n display: none;\n }\n }\n\n @media (max-width: 768px) {\n .stats-row {\n grid-template-columns: 1fr;\n }\n\n .detail-panel {\n width: 100vw;\n max-width: 100vw;\n }\n }\n\n @media (max-width: 480px) {\n .table-header, .table-row {\n grid-template-columns: 1fr 80px 60px;\n }\n\n .col-score, .col-duration {\n display: none;\n }\n\n .chip {\n min-height: 44px;\n padding: 8px 14px;\n }\n\n .table-row {\n min-height: 44px;\n }\n }\n "] }]
|
|
1060
1092
|
}], () => [{ type: i1.TestingInstrumentationService }, { type: i2.TestingDialogService }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }], { initialState: [{
|
|
1061
1093
|
type: Input
|
|
1094
|
+
}], HideToolbar: [{
|
|
1095
|
+
type: Input
|
|
1062
1096
|
}], stateChange: [{
|
|
1063
1097
|
type: Output
|
|
1064
1098
|
}], OnEscapeKey: [{
|
|
1065
1099
|
type: HostListener,
|
|
1066
1100
|
args: ['document:keydown.escape']
|
|
1067
1101
|
}] }); })();
|
|
1068
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingRunsComponent, { className: "TestingRunsComponent", filePath: "src/Testing/components/testing-runs.component.ts", lineNumber:
|
|
1102
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingRunsComponent, { className: "TestingRunsComponent", filePath: "src/Testing/components/testing-runs.component.ts", lineNumber: 1129 }); })();
|
|
1069
1103
|
//# sourceMappingURL=testing-runs.component.js.map
|