@memberjunction/ng-dashboards 5.34.1 → 5.36.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 +96 -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 +453 -122
- 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.d.ts +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2084 -2079
- 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.d.ts +15 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +1423 -1438
- 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/APIKeys/api-keys-resource.component.d.ts +12 -8
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +329 -371
- package/dist/APIKeys/api-keys-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 +202 -158
- 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 +191 -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 +19 -79
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +19 -79
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +19 -79
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +19 -79
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/Admin/base-admin-container.component.d.ts +9 -7
- package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
- package/dist/Admin/base-admin-container.component.js +26 -17
- package/dist/Admin/base-admin-container.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +92 -91
- 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-new-message-resource.component.d.ts +93 -0
- package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
- package/dist/Communication/communication-new-message-resource.component.js +661 -0
- package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
- 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 +238 -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 +290 -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 +41 -21
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +148 -155
- 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 +25 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +46 -72
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -100
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +158 -168
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +257 -264
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts +5 -0
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +46 -64
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +75 -84
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +76 -85
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +24 -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 +307 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +654 -648
- 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 +595 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +230 -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.d.ts +5 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1138 -1147
- 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.d.ts +11 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +684 -697
- 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 +120 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1239 -610
- 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 +133 -3
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +1460 -272
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +1 -0
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +1 -0
- package/dist/Lists/index.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +236 -10
- package/dist/Lists/services/list-set-operations.service.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 +259 -103
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1009 -1264
- 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 +38 -6
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +679 -786
- 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 +114 -99
- 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 +51 -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 +9 -6
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +37 -7
- 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 +46 -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 +10 -9
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +40 -2
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -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 +42 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +53 -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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
2
|
import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
|
|
3
3
|
import { takeUntil, debounceTime } from 'rxjs/operators';
|
|
4
4
|
import { RunView, CompositeKey } from '@memberjunction/core';
|
|
@@ -12,876 +12,707 @@ import * as i1 from "@memberjunction/ng-testing";
|
|
|
12
12
|
import * as i2 from "../services/testing-instrumentation.service";
|
|
13
13
|
import * as i3 from "@angular/common";
|
|
14
14
|
import * as i4 from "@angular/forms";
|
|
15
|
-
import * as i5 from "@memberjunction/ng-
|
|
16
|
-
import * as i6 from "@memberjunction/ng-
|
|
17
|
-
import * as i7 from "
|
|
18
|
-
|
|
19
|
-
const _c1 = (a0, a1) => ({ node: a0, depth: a1 });
|
|
15
|
+
import * as i5 from "@memberjunction/ng-ui-components";
|
|
16
|
+
import * as i6 from "@memberjunction/ng-versions";
|
|
17
|
+
import * as i7 from "@memberjunction/ng-shared-generic";
|
|
18
|
+
import * as i8 from "../../shared/pipes/highlight-search.pipe";
|
|
20
19
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
21
20
|
const _forTrack1 = ($index, $item) => $item.TestID;
|
|
22
|
-
function
|
|
23
|
-
i0.ɵɵelementStart(0, "div", 1);
|
|
24
|
-
i0.ɵɵelement(1, "mj-loading", 8);
|
|
25
|
-
i0.ɵɵelementEnd();
|
|
26
|
-
} }
|
|
27
|
-
function TestingExplorerComponent_Conditional_1_Conditional_7_For_20_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
function TestingExplorerComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
28
22
|
i0.ɵɵelementContainer(0);
|
|
29
23
|
} }
|
|
30
|
-
function
|
|
31
|
-
i0.ɵɵtemplate(0,
|
|
24
|
+
function TestingExplorerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
i0.ɵɵtemplate(0, TestingExplorerComponent_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 1);
|
|
32
26
|
} if (rf & 2) {
|
|
33
|
-
|
|
34
|
-
i0.ɵɵ
|
|
35
|
-
|
|
36
|
-
i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r5));
|
|
37
|
-
} }
|
|
38
|
-
function TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
-
i0.ɵɵelementStart(0, "div", 48);
|
|
40
|
-
i0.ɵɵtext(1, "No suites found");
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
27
|
+
i0.ɵɵnextContext();
|
|
28
|
+
const content_r1 = i0.ɵɵreference(3);
|
|
29
|
+
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
42
30
|
} }
|
|
43
|
-
function
|
|
44
|
-
const
|
|
45
|
-
i0.ɵɵelementStart(0, "
|
|
46
|
-
i0.ɵɵlistener("
|
|
47
|
-
i0.ɵɵelement(1, "i", 51);
|
|
48
|
-
i0.ɵɵelementStart(2, "span");
|
|
49
|
-
i0.ɵɵtext(3);
|
|
31
|
+
function TestingExplorerComponent_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
33
|
+
i0.ɵɵelementStart(0, "mj-filter-chip", 17);
|
|
34
|
+
i0.ɵɵlistener("Clicked", function TestingExplorerComponent_Conditional_1_For_17_Template_mj_filter_chip_Clicked_0_listener() { const status_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleStatus(status_r5)); });
|
|
50
35
|
i0.ɵɵelementEnd();
|
|
51
|
-
i0.ɵɵelementStart(4, "span", 46);
|
|
52
|
-
i0.ɵɵtext(5);
|
|
53
|
-
i0.ɵɵelementEnd()();
|
|
54
36
|
} if (rf & 2) {
|
|
55
|
-
const
|
|
56
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
57
|
-
i0.ɵɵ
|
|
58
|
-
i0.ɵɵadvance(3);
|
|
59
|
-
i0.ɵɵtextInterpolate(tt_r8.Name);
|
|
60
|
-
i0.ɵɵadvance(2);
|
|
61
|
-
i0.ɵɵtextInterpolate(ctx_r2.GetTestCountForType(tt_r8.ID));
|
|
37
|
+
const status_r5 = ctx.$implicit;
|
|
38
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
39
|
+
i0.ɵɵproperty("Label", status_r5)("Active", ctx_r2.IsStatusActive(status_r5));
|
|
62
40
|
} }
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
i0.ɵɵ
|
|
68
|
-
i0.ɵɵelementStart(
|
|
69
|
-
i0.ɵɵ
|
|
70
|
-
i0.ɵɵelement(5, "i", 45);
|
|
71
|
-
i0.ɵɵelementStart(6, "span");
|
|
72
|
-
i0.ɵɵtext(7, "All Items");
|
|
41
|
+
function TestingExplorerComponent_Conditional_1_ng_container_20_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementContainer(0);
|
|
43
|
+
} }
|
|
44
|
+
function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
46
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 2)(2, "div", 3);
|
|
47
|
+
i0.ɵɵelement(3, "mj-stat-badge", 4);
|
|
73
48
|
i0.ɵɵelementEnd();
|
|
74
|
-
i0.ɵɵelementStart(
|
|
75
|
-
i0.ɵɵ
|
|
49
|
+
i0.ɵɵelementStart(4, "div", 5)(5, "mj-filter-popover", 6);
|
|
50
|
+
i0.ɵɵlistener("ClearAllRequested", function TestingExplorerComponent_Conditional_1_Template_mj_filter_popover_ClearAllRequested_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.resetSortFilters()); });
|
|
51
|
+
i0.ɵɵelementStart(6, "mj-filter-panel", 7);
|
|
52
|
+
i0.ɵɵlistener("ValuesChange", function TestingExplorerComponent_Conditional_1_Template_mj_filter_panel_ValuesChange_6_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onSortFilterChange($event)); })("Reset", function TestingExplorerComponent_Conditional_1_Template_mj_filter_panel_Reset_6_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.resetSortFilters()); });
|
|
76
53
|
i0.ɵɵelementEnd()();
|
|
77
|
-
i0.ɵɵelementStart(
|
|
78
|
-
i0.ɵɵlistener("
|
|
79
|
-
i0.ɵɵ
|
|
80
|
-
i0.ɵɵelementStart(
|
|
81
|
-
i0.ɵɵ
|
|
54
|
+
i0.ɵɵelementStart(7, "mj-view-toggle", 8);
|
|
55
|
+
i0.ɵɵlistener("KeyChange", function TestingExplorerComponent_Conditional_1_Template_mj_view_toggle_KeyChange_7_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode($event)); });
|
|
56
|
+
i0.ɵɵelementEnd();
|
|
57
|
+
i0.ɵɵelementStart(8, "button", 9);
|
|
58
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewSuite()); });
|
|
59
|
+
i0.ɵɵelement(9, "i", 10);
|
|
60
|
+
i0.ɵɵtext(10, " New Suite ");
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵelementStart(11, "button", 11);
|
|
63
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewTest()); });
|
|
64
|
+
i0.ɵɵelement(12, "i", 12);
|
|
65
|
+
i0.ɵɵtext(13, " New Test ");
|
|
66
|
+
i0.ɵɵelementEnd()();
|
|
67
|
+
i0.ɵɵelementStart(14, "div", 13)(15, "mj-page-search", 14);
|
|
68
|
+
i0.ɵɵlistener("ValueChange", function TestingExplorerComponent_Conditional_1_Template_mj_page_search_ValueChange_15_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInputValue($event)); });
|
|
82
69
|
i0.ɵɵelementEnd();
|
|
83
|
-
i0.ɵɵ
|
|
84
|
-
i0.ɵɵ
|
|
70
|
+
i0.ɵɵrepeaterCreate(16, TestingExplorerComponent_Conditional_1_For_17_Template, 1, 2, "mj-filter-chip", 15, i0.ɵɵrepeaterTrackByIdentity);
|
|
71
|
+
i0.ɵɵelementStart(18, "mj-view-toggle", 8);
|
|
72
|
+
i0.ɵɵlistener("KeyChange", function TestingExplorerComponent_Conditional_1_Template_mj_view_toggle_KeyChange_18_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode($event)); });
|
|
85
73
|
i0.ɵɵelementEnd()()();
|
|
86
|
-
i0.ɵɵelementStart(
|
|
87
|
-
i0.ɵɵ
|
|
88
|
-
i0.ɵɵelementEnd();
|
|
89
|
-
i0.ɵɵrepeaterCreate(19, TestingExplorerComponent_Conditional_1_Conditional_7_For_20_Template, 1, 4, "ng-container", null, _forTrack0);
|
|
90
|
-
i0.ɵɵconditionalCreate(21, TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template, 2, 0, "div", 48);
|
|
91
|
-
i0.ɵɵelementEnd();
|
|
92
|
-
i0.ɵɵelementStart(22, "div", 42)(23, "div", 43);
|
|
93
|
-
i0.ɵɵtext(24, "Test Types");
|
|
94
|
-
i0.ɵɵelementEnd();
|
|
95
|
-
i0.ɵɵrepeaterCreate(25, TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template, 6, 4, "div", 49, _forTrack0);
|
|
74
|
+
i0.ɵɵelementStart(19, "mj-page-body", 16);
|
|
75
|
+
i0.ɵɵtemplate(20, TestingExplorerComponent_Conditional_1_ng_container_20_Template, 1, 0, "ng-container", 1);
|
|
96
76
|
i0.ɵɵelementEnd()();
|
|
97
77
|
} if (rf & 2) {
|
|
98
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
99
|
-
i0.ɵɵ
|
|
100
|
-
i0.ɵɵ
|
|
101
|
-
i0.ɵɵ
|
|
102
|
-
i0.ɵɵ
|
|
78
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
79
|
+
const content_r1 = i0.ɵɵreference(3);
|
|
80
|
+
i0.ɵɵadvance(3);
|
|
81
|
+
i0.ɵɵproperty("Count", ctx_r2.FilteredResultCount)("Total", ctx_r2.TotalItemCount);
|
|
82
|
+
i0.ɵɵadvance(2);
|
|
83
|
+
i0.ɵɵproperty("ActiveCount", ctx_r2.ActiveSortFilterCount)("ShowClearAll", ctx_r2.ActiveSortFilterCount > 0);
|
|
103
84
|
i0.ɵɵadvance();
|
|
104
|
-
i0.ɵɵ
|
|
105
|
-
i0.ɵɵadvance(
|
|
106
|
-
i0.ɵɵ
|
|
107
|
-
i0.ɵɵadvance(
|
|
108
|
-
i0.ɵɵ
|
|
85
|
+
i0.ɵɵproperty("Fields", ctx_r2.sortFilterFields)("Values", ctx_r2.sortFilterValues);
|
|
86
|
+
i0.ɵɵadvance();
|
|
87
|
+
i0.ɵɵproperty("Options", ctx_r2.HeaderViewOptions)("ActiveKey", ctx_r2.ViewMode);
|
|
88
|
+
i0.ɵɵadvance(8);
|
|
89
|
+
i0.ɵɵproperty("Value", ctx_r2.SearchTerm);
|
|
90
|
+
i0.ɵɵadvance();
|
|
91
|
+
i0.ɵɵrepeater(ctx_r2.StatusOptions);
|
|
109
92
|
i0.ɵɵadvance(2);
|
|
110
|
-
i0.ɵɵ
|
|
111
|
-
i0.ɵɵadvance(
|
|
112
|
-
i0.ɵɵ
|
|
93
|
+
i0.ɵɵproperty("Options", ctx_r2.DisplayModeOptions)("ActiveKey", ctx_r2.DisplayMode);
|
|
94
|
+
i0.ɵɵadvance();
|
|
95
|
+
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
96
|
+
i0.ɵɵadvance();
|
|
97
|
+
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
113
98
|
} }
|
|
114
|
-
function
|
|
115
|
-
|
|
116
|
-
i0.ɵɵ
|
|
117
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ClearSearch()); });
|
|
118
|
-
i0.ɵɵelement(1, "i", 53);
|
|
99
|
+
function TestingExplorerComponent_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵelementStart(0, "div", 18);
|
|
101
|
+
i0.ɵɵelement(1, "mj-loading", 25);
|
|
119
102
|
i0.ɵɵelementEnd();
|
|
120
103
|
} }
|
|
121
|
-
function
|
|
122
|
-
|
|
123
|
-
i0.ɵɵelementStart(0, "button", 54);
|
|
124
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_For_17_Template_button_click_0_listener() { const status_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleStatus(status_r11)); });
|
|
104
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
+
i0.ɵɵelement(0, "span", 53);
|
|
125
106
|
i0.ɵɵtext(1);
|
|
126
|
-
i0.ɵɵelementEnd();
|
|
127
107
|
} if (rf & 2) {
|
|
128
|
-
const
|
|
129
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
130
|
-
i0.ɵɵclassProp("active", ctx_r2.IsStatusActive(status_r11));
|
|
131
|
-
i0.ɵɵattribute("data-status", status_r11.toLowerCase());
|
|
108
|
+
const suite_r9 = i0.ɵɵnextContext().$implicit;
|
|
109
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
132
110
|
i0.ɵɵadvance();
|
|
133
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
111
|
+
i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(suite_r9.LastRunDate), " ");
|
|
134
112
|
} }
|
|
135
|
-
function
|
|
136
|
-
i0.ɵɵelement(0, "
|
|
137
|
-
i0.ɵɵtext(1);
|
|
138
|
-
} if (rf & 2) {
|
|
139
|
-
const suite_r13 = i0.ɵɵnextContext().$implicit;
|
|
140
|
-
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
141
|
-
i0.ɵɵadvance();
|
|
142
|
-
i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(suite_r13.LastRunDate), " ");
|
|
143
|
-
} }
|
|
144
|
-
function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
145
|
-
i0.ɵɵelement(0, "p", 67);
|
|
113
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
114
|
+
i0.ɵɵelement(0, "p", 41);
|
|
146
115
|
i0.ɵɵpipe(1, "highlightSearch");
|
|
147
116
|
} if (rf & 2) {
|
|
148
|
-
const
|
|
149
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
150
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1,
|
|
117
|
+
const suite_r9 = i0.ɵɵnextContext().$implicit;
|
|
118
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
119
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, suite_r9.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
151
120
|
} }
|
|
152
|
-
function
|
|
153
|
-
i0.ɵɵelementStart(0, "div",
|
|
154
|
-
i0.ɵɵelement(1, "span",
|
|
155
|
-
i0.ɵɵelementStart(2, "span",
|
|
121
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
+
i0.ɵɵelementStart(0, "div", 55);
|
|
123
|
+
i0.ɵɵelement(1, "span", 56);
|
|
124
|
+
i0.ɵɵelementStart(2, "span", 57);
|
|
156
125
|
i0.ɵɵtext(3);
|
|
157
126
|
i0.ɵɵelementEnd();
|
|
158
|
-
i0.ɵɵelementStart(4, "span",
|
|
127
|
+
i0.ɵɵelementStart(4, "span", 58);
|
|
159
128
|
i0.ɵɵtext(5);
|
|
160
129
|
i0.ɵɵelementEnd();
|
|
161
|
-
i0.ɵɵelementStart(6, "span",
|
|
162
|
-
i0.ɵɵelement(7, "span",
|
|
130
|
+
i0.ɵɵelementStart(6, "span", 59);
|
|
131
|
+
i0.ɵɵelement(7, "span", 60);
|
|
163
132
|
i0.ɵɵelementEnd();
|
|
164
|
-
i0.ɵɵelementStart(8, "span",
|
|
133
|
+
i0.ɵɵelementStart(8, "span", 61);
|
|
165
134
|
i0.ɵɵtext(9);
|
|
166
135
|
i0.ɵɵelementEnd()();
|
|
167
136
|
} if (rf & 2) {
|
|
168
|
-
const
|
|
169
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
137
|
+
const t_r10 = i0.ɵɵnextContext().$implicit;
|
|
138
|
+
const ctx_r2 = i0.ɵɵnextContext(7);
|
|
170
139
|
i0.ɵɵadvance();
|
|
171
|
-
i0.ɵɵattribute("data-status",
|
|
140
|
+
i0.ɵɵattribute("data-status", t_r10.LastStatus.toLowerCase());
|
|
172
141
|
i0.ɵɵadvance(2);
|
|
173
|
-
i0.ɵɵtextInterpolate(
|
|
142
|
+
i0.ɵɵtextInterpolate(t_r10.TestName);
|
|
174
143
|
i0.ɵɵadvance();
|
|
175
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
144
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r10.LastScore));
|
|
176
145
|
i0.ɵɵadvance();
|
|
177
|
-
i0.ɵɵtextInterpolate1("", (
|
|
146
|
+
i0.ɵɵtextInterpolate1("", (t_r10.LastScore * 100).toFixed(0), "%");
|
|
178
147
|
i0.ɵɵadvance(2);
|
|
179
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
180
|
-
i0.ɵɵstyleProp("width",
|
|
148
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r10.LastScore) + "-bg");
|
|
149
|
+
i0.ɵɵstyleProp("width", t_r10.LastScore * 100, "%");
|
|
181
150
|
i0.ɵɵadvance();
|
|
182
|
-
i0.ɵɵattribute("data-status",
|
|
151
|
+
i0.ɵɵattribute("data-status", t_r10.LastStatus.toLowerCase());
|
|
183
152
|
i0.ɵɵadvance();
|
|
184
|
-
i0.ɵɵtextInterpolate(
|
|
153
|
+
i0.ɵɵtextInterpolate(t_r10.LastStatus);
|
|
185
154
|
} }
|
|
186
|
-
function
|
|
187
|
-
i0.ɵɵconditionalCreate(0,
|
|
155
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template, 10, 11, "div", 55);
|
|
188
157
|
} if (rf & 2) {
|
|
189
|
-
const ɵ$
|
|
190
|
-
i0.ɵɵconditional(ɵ$
|
|
158
|
+
const ɵ$index_141_r11 = ctx.$index;
|
|
159
|
+
i0.ɵɵconditional(ɵ$index_141_r11 < 4 ? 0 : -1);
|
|
191
160
|
} }
|
|
192
|
-
function
|
|
193
|
-
i0.ɵɵelementStart(0, "div",
|
|
161
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
+
i0.ɵɵelementStart(0, "div", 54);
|
|
194
163
|
i0.ɵɵtext(1);
|
|
195
164
|
i0.ɵɵelementEnd();
|
|
196
165
|
} if (rf & 2) {
|
|
197
|
-
const
|
|
166
|
+
const suite_r9 = i0.ɵɵnextContext(2).$implicit;
|
|
198
167
|
i0.ɵɵadvance();
|
|
199
|
-
i0.ɵɵtextInterpolate1("+",
|
|
168
|
+
i0.ɵɵtextInterpolate1("+", suite_r9.TotalTestsInSuite - 4, " more tests");
|
|
200
169
|
} }
|
|
201
|
-
function
|
|
202
|
-
i0.ɵɵelementStart(0, "div",
|
|
203
|
-
i0.ɵɵrepeaterCreate(1,
|
|
204
|
-
i0.ɵɵconditionalCreate(3,
|
|
170
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
171
|
+
i0.ɵɵelementStart(0, "div", 46);
|
|
172
|
+
i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_For_2_Template, 1, 1, null, null, _forTrack1);
|
|
173
|
+
i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_Conditional_3_Template, 2, 1, "div", 54);
|
|
205
174
|
i0.ɵɵelementEnd();
|
|
206
175
|
} if (rf & 2) {
|
|
207
|
-
const
|
|
176
|
+
const suite_r9 = i0.ɵɵnextContext().$implicit;
|
|
208
177
|
i0.ɵɵadvance();
|
|
209
|
-
i0.ɵɵrepeater(
|
|
178
|
+
i0.ɵɵrepeater(suite_r9.Tests);
|
|
210
179
|
i0.ɵɵadvance(2);
|
|
211
|
-
i0.ɵɵconditional(
|
|
180
|
+
i0.ɵɵconditional(suite_r9.TotalTestsInSuite > 4 ? 3 : -1);
|
|
212
181
|
} }
|
|
213
|
-
function
|
|
214
|
-
const
|
|
215
|
-
i0.ɵɵelementStart(0, "div",
|
|
216
|
-
i0.ɵɵelement(3, "i",
|
|
182
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
183
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
184
|
+
i0.ɵɵelementStart(0, "div", 34)(1, "div", 35)(2, "div", 36);
|
|
185
|
+
i0.ɵɵelement(3, "i", 37)(4, "span", 38);
|
|
217
186
|
i0.ɵɵpipe(5, "highlightSearch");
|
|
218
|
-
i0.ɵɵelementStart(6, "span",
|
|
187
|
+
i0.ɵɵelementStart(6, "span", 39);
|
|
219
188
|
i0.ɵɵtext(7);
|
|
220
189
|
i0.ɵɵelementEnd()();
|
|
221
|
-
i0.ɵɵelementStart(8, "div",
|
|
190
|
+
i0.ɵɵelementStart(8, "div", 40);
|
|
222
191
|
i0.ɵɵtext(9);
|
|
223
|
-
i0.ɵɵconditionalCreate(10,
|
|
192
|
+
i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_10_Template, 2, 1);
|
|
224
193
|
i0.ɵɵelementEnd();
|
|
225
|
-
i0.ɵɵconditionalCreate(11,
|
|
194
|
+
i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 41);
|
|
226
195
|
i0.ɵɵelementEnd();
|
|
227
|
-
i0.ɵɵelementStart(12, "div",
|
|
196
|
+
i0.ɵɵelementStart(12, "div", 42)(13, "div", 43)(14, "span", 44);
|
|
228
197
|
i0.ɵɵtext(15, "Pass Rate");
|
|
229
198
|
i0.ɵɵelementEnd();
|
|
230
|
-
i0.ɵɵelementStart(16, "span",
|
|
199
|
+
i0.ɵɵelementStart(16, "span", 45);
|
|
231
200
|
i0.ɵɵtext(17);
|
|
232
201
|
i0.ɵɵelementEnd()();
|
|
233
|
-
i0.ɵɵelementStart(18, "div",
|
|
202
|
+
i0.ɵɵelementStart(18, "div", 43)(19, "span", 44);
|
|
234
203
|
i0.ɵɵtext(20, "Tests");
|
|
235
204
|
i0.ɵɵelementEnd();
|
|
236
|
-
i0.ɵɵelementStart(21, "span",
|
|
205
|
+
i0.ɵɵelementStart(21, "span", 45);
|
|
237
206
|
i0.ɵɵtext(22);
|
|
238
207
|
i0.ɵɵelementEnd()();
|
|
239
|
-
i0.ɵɵelementStart(23, "div",
|
|
208
|
+
i0.ɵɵelementStart(23, "div", 43)(24, "span", 44);
|
|
240
209
|
i0.ɵɵtext(25, "Avg Score");
|
|
241
210
|
i0.ɵɵelementEnd();
|
|
242
|
-
i0.ɵɵelementStart(26, "span",
|
|
211
|
+
i0.ɵɵelementStart(26, "span", 45);
|
|
243
212
|
i0.ɵɵtext(27);
|
|
244
213
|
i0.ɵɵelementEnd()();
|
|
245
|
-
i0.ɵɵelementStart(28, "div",
|
|
214
|
+
i0.ɵɵelementStart(28, "div", 43)(29, "span", 44);
|
|
246
215
|
i0.ɵɵtext(30, "Avg Duration");
|
|
247
216
|
i0.ɵɵelementEnd();
|
|
248
|
-
i0.ɵɵelementStart(31, "span",
|
|
217
|
+
i0.ɵɵelementStart(31, "span", 45);
|
|
249
218
|
i0.ɵɵtext(32);
|
|
250
219
|
i0.ɵɵelementEnd()()();
|
|
251
|
-
i0.ɵɵconditionalCreate(33,
|
|
252
|
-
i0.ɵɵelementStart(34, "div",
|
|
253
|
-
i0.ɵɵlistener("click", function
|
|
254
|
-
i0.ɵɵelement(36, "i",
|
|
220
|
+
i0.ɵɵconditionalCreate(33, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Conditional_33_Template, 4, 1, "div", 46);
|
|
221
|
+
i0.ɵɵelementStart(34, "div", 47)(35, "button", 48);
|
|
222
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Template_button_click_35_listener() { const suite_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.RunSuite(suite_r9.ID)); });
|
|
223
|
+
i0.ɵɵelement(36, "i", 49);
|
|
255
224
|
i0.ɵɵtext(37, " Run Suite ");
|
|
256
225
|
i0.ɵɵelementEnd();
|
|
257
|
-
i0.ɵɵelementStart(38, "button",
|
|
258
|
-
i0.ɵɵlistener("click", function
|
|
259
|
-
i0.ɵɵelement(39, "i",
|
|
226
|
+
i0.ɵɵelementStart(38, "button", 50);
|
|
227
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Template_button_click_38_listener() { const suite_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.ViewSuiteResults(suite_r9.ID)); });
|
|
228
|
+
i0.ɵɵelement(39, "i", 51);
|
|
260
229
|
i0.ɵɵtext(40, " Results ");
|
|
261
230
|
i0.ɵɵelementEnd();
|
|
262
|
-
i0.ɵɵelementStart(41, "button",
|
|
263
|
-
i0.ɵɵlistener("click", function
|
|
264
|
-
i0.ɵɵelement(42, "i",
|
|
231
|
+
i0.ɵɵelementStart(41, "button", 50);
|
|
232
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Template_button_click_41_listener() { const suite_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Test Suites", suite_r9.ID)); });
|
|
233
|
+
i0.ɵɵelement(42, "i", 52);
|
|
265
234
|
i0.ɵɵtext(43, " Edit ");
|
|
266
235
|
i0.ɵɵelementEnd()()();
|
|
267
236
|
} if (rf & 2) {
|
|
268
|
-
const
|
|
269
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
237
|
+
const suite_r9 = ctx.$implicit;
|
|
238
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
270
239
|
i0.ɵɵadvance(4);
|
|
271
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 15,
|
|
240
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 15, suite_r9.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
272
241
|
i0.ɵɵadvance(2);
|
|
273
|
-
i0.ɵɵattribute("data-status",
|
|
242
|
+
i0.ɵɵattribute("data-status", suite_r9.Status.toLowerCase());
|
|
274
243
|
i0.ɵɵadvance();
|
|
275
|
-
i0.ɵɵtextInterpolate(
|
|
244
|
+
i0.ɵɵtextInterpolate(suite_r9.Status);
|
|
276
245
|
i0.ɵɵadvance(2);
|
|
277
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
246
|
+
i0.ɵɵtextInterpolate1(" ", suite_r9.TestCount, " tests ");
|
|
278
247
|
i0.ɵɵadvance();
|
|
279
|
-
i0.ɵɵconditional(
|
|
248
|
+
i0.ɵɵconditional(suite_r9.LastRunDate ? 10 : -1);
|
|
280
249
|
i0.ɵɵadvance();
|
|
281
|
-
i0.ɵɵconditional(
|
|
250
|
+
i0.ɵɵconditional(suite_r9.Description ? 11 : -1);
|
|
282
251
|
i0.ɵɵadvance(5);
|
|
283
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
252
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r9.PassRate / 100));
|
|
284
253
|
i0.ɵɵadvance();
|
|
285
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(
|
|
254
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(suite_r9.PassRate));
|
|
286
255
|
i0.ɵɵadvance(5);
|
|
287
|
-
i0.ɵɵtextInterpolate(
|
|
256
|
+
i0.ɵɵtextInterpolate(suite_r9.TestCount);
|
|
288
257
|
i0.ɵɵadvance(4);
|
|
289
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
258
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r9.AvgScore));
|
|
290
259
|
i0.ɵɵadvance();
|
|
291
|
-
i0.ɵɵtextInterpolate1("", (
|
|
260
|
+
i0.ɵɵtextInterpolate1("", (suite_r9.AvgScore * 100).toFixed(0), "%");
|
|
292
261
|
i0.ɵɵadvance(5);
|
|
293
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(
|
|
262
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(suite_r9.AvgDuration));
|
|
294
263
|
i0.ɵɵadvance();
|
|
295
|
-
i0.ɵɵconditional(
|
|
264
|
+
i0.ɵɵconditional(suite_r9.Tests.length > 0 ? 33 : -1);
|
|
296
265
|
} }
|
|
297
|
-
function
|
|
298
|
-
i0.ɵɵelementStart(0, "div",
|
|
299
|
-
i0.ɵɵelement(2, "i",
|
|
266
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
267
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "h3", 30);
|
|
268
|
+
i0.ɵɵelement(2, "i", 31);
|
|
300
269
|
i0.ɵɵtext(3, " Test Suites ");
|
|
301
|
-
i0.ɵɵelementStart(4, "span",
|
|
270
|
+
i0.ɵɵelementStart(4, "span", 32);
|
|
302
271
|
i0.ɵɵtext(5);
|
|
303
272
|
i0.ɵɵelementEnd()();
|
|
304
|
-
i0.ɵɵelementStart(6, "div",
|
|
305
|
-
i0.ɵɵrepeaterCreate(7,
|
|
273
|
+
i0.ɵɵelementStart(6, "div", 33);
|
|
274
|
+
i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_For_8_Template, 44, 18, "div", 34, _forTrack0);
|
|
306
275
|
i0.ɵɵelementEnd()();
|
|
307
276
|
} if (rf & 2) {
|
|
308
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
277
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
309
278
|
i0.ɵɵadvance(5);
|
|
310
279
|
i0.ɵɵtextInterpolate(ctx_r2.FilteredSuites.length);
|
|
311
280
|
i0.ɵɵadvance(2);
|
|
312
281
|
i0.ɵɵrepeater(ctx_r2.FilteredSuites);
|
|
313
282
|
} }
|
|
314
|
-
function
|
|
315
|
-
i0.ɵɵconditionalCreate(0,
|
|
283
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
284
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_Template, 9, 1, "div", 29);
|
|
316
285
|
} if (rf & 2) {
|
|
317
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
286
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
318
287
|
i0.ɵɵconditional(ctx_r2.FilteredSuites.length > 0 ? 0 : -1);
|
|
319
288
|
} }
|
|
320
|
-
function
|
|
321
|
-
i0.ɵɵelement(0, "span",
|
|
289
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
290
|
+
i0.ɵɵelement(0, "span", 53);
|
|
322
291
|
i0.ɵɵtext(1);
|
|
323
292
|
} if (rf & 2) {
|
|
324
|
-
const
|
|
293
|
+
const test_r13 = i0.ɵɵnextContext().$implicit;
|
|
325
294
|
i0.ɵɵadvance();
|
|
326
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
295
|
+
i0.ɵɵtextInterpolate1(" ", test_r13.SuiteName, " ");
|
|
327
296
|
} }
|
|
328
|
-
function
|
|
329
|
-
i0.ɵɵelement(0, "p",
|
|
297
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
298
|
+
i0.ɵɵelement(0, "p", 41);
|
|
330
299
|
i0.ɵɵpipe(1, "highlightSearch");
|
|
331
300
|
} if (rf & 2) {
|
|
332
|
-
const
|
|
333
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
334
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1,
|
|
301
|
+
const test_r13 = i0.ɵɵnextContext().$implicit;
|
|
302
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
303
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, test_r13.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
335
304
|
} }
|
|
336
|
-
function
|
|
337
|
-
i0.ɵɵelementStart(0, "span",
|
|
338
|
-
i0.ɵɵelement(1, "i",
|
|
305
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
306
|
+
i0.ɵɵelementStart(0, "span", 66);
|
|
307
|
+
i0.ɵɵelement(1, "i", 71);
|
|
339
308
|
i0.ɵɵtext(2);
|
|
340
309
|
i0.ɵɵelementEnd();
|
|
341
310
|
} if (rf & 2) {
|
|
342
|
-
const
|
|
311
|
+
const test_r13 = i0.ɵɵnextContext().$implicit;
|
|
343
312
|
i0.ɵɵadvance(2);
|
|
344
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
313
|
+
i0.ɵɵtextInterpolate1(" ", test_r13.TypeName);
|
|
345
314
|
} }
|
|
346
|
-
function
|
|
347
|
-
i0.ɵɵelementStart(0, "span",
|
|
348
|
-
i0.ɵɵelement(1, "i",
|
|
315
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
316
|
+
i0.ɵɵelementStart(0, "span", 66);
|
|
317
|
+
i0.ɵɵelement(1, "i", 72);
|
|
349
318
|
i0.ɵɵtext(2);
|
|
350
319
|
i0.ɵɵelementEnd();
|
|
351
320
|
} if (rf & 2) {
|
|
352
|
-
const
|
|
353
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
321
|
+
const test_r13 = i0.ɵɵnextContext().$implicit;
|
|
322
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
354
323
|
i0.ɵɵadvance(2);
|
|
355
|
-
i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(
|
|
324
|
+
i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(test_r13.EstDuration));
|
|
356
325
|
} }
|
|
357
|
-
function
|
|
358
|
-
i0.ɵɵelementStart(0, "span",
|
|
359
|
-
i0.ɵɵelement(1, "i",
|
|
326
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
327
|
+
i0.ɵɵelementStart(0, "span", 66);
|
|
328
|
+
i0.ɵɵelement(1, "i", 73);
|
|
360
329
|
i0.ɵɵtext(2);
|
|
361
330
|
i0.ɵɵelementEnd();
|
|
362
331
|
} if (rf & 2) {
|
|
363
|
-
const
|
|
364
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
332
|
+
const test_r13 = i0.ɵɵnextContext().$implicit;
|
|
333
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
365
334
|
i0.ɵɵadvance(2);
|
|
366
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(
|
|
335
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(test_r13.EstCost));
|
|
367
336
|
} }
|
|
368
|
-
function
|
|
369
|
-
i0.ɵɵelementStart(0, "span",
|
|
337
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
338
|
+
i0.ɵɵelementStart(0, "span", 75);
|
|
370
339
|
i0.ɵɵtext(1);
|
|
371
340
|
i0.ɵɵelementEnd();
|
|
372
341
|
} if (rf & 2) {
|
|
373
|
-
const
|
|
342
|
+
const tag_r14 = i0.ɵɵnextContext().$implicit;
|
|
374
343
|
i0.ɵɵadvance();
|
|
375
|
-
i0.ɵɵtextInterpolate(
|
|
344
|
+
i0.ɵɵtextInterpolate(tag_r14);
|
|
376
345
|
} }
|
|
377
|
-
function
|
|
378
|
-
i0.ɵɵconditionalCreate(0,
|
|
346
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
347
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template, 2, 1, "span", 75);
|
|
379
348
|
} if (rf & 2) {
|
|
380
|
-
const ɵ$
|
|
381
|
-
i0.ɵɵconditional(ɵ$
|
|
349
|
+
const ɵ$index_249_r15 = ctx.$index;
|
|
350
|
+
i0.ɵɵconditional(ɵ$index_249_r15 < 4 ? 0 : -1);
|
|
382
351
|
} }
|
|
383
|
-
function
|
|
384
|
-
i0.ɵɵelementStart(0, "span",
|
|
352
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
353
|
+
i0.ɵɵelementStart(0, "span", 74);
|
|
385
354
|
i0.ɵɵtext(1);
|
|
386
355
|
i0.ɵɵelementEnd();
|
|
387
356
|
} if (rf & 2) {
|
|
388
|
-
const
|
|
357
|
+
const test_r13 = i0.ɵɵnextContext(2).$implicit;
|
|
389
358
|
i0.ɵɵadvance();
|
|
390
|
-
i0.ɵɵtextInterpolate1("+",
|
|
359
|
+
i0.ɵɵtextInterpolate1("+", test_r13.Tags.length - 4);
|
|
391
360
|
} }
|
|
392
|
-
function
|
|
393
|
-
i0.ɵɵelementStart(0, "div",
|
|
394
|
-
i0.ɵɵrepeaterCreate(1,
|
|
395
|
-
i0.ɵɵconditionalCreate(3,
|
|
361
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
362
|
+
i0.ɵɵelementStart(0, "div", 68);
|
|
363
|
+
i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
|
|
364
|
+
i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_Conditional_3_Template, 2, 1, "span", 74);
|
|
396
365
|
i0.ɵɵelementEnd();
|
|
397
366
|
} if (rf & 2) {
|
|
398
|
-
const
|
|
367
|
+
const test_r13 = i0.ɵɵnextContext().$implicit;
|
|
399
368
|
i0.ɵɵadvance();
|
|
400
|
-
i0.ɵɵrepeater(
|
|
369
|
+
i0.ɵɵrepeater(test_r13.Tags);
|
|
401
370
|
i0.ɵɵadvance(2);
|
|
402
|
-
i0.ɵɵconditional(
|
|
371
|
+
i0.ɵɵconditional(test_r13.Tags.length > 4 ? 3 : -1);
|
|
403
372
|
} }
|
|
404
|
-
function
|
|
405
|
-
const
|
|
406
|
-
i0.ɵɵelementStart(0, "div",
|
|
407
|
-
i0.ɵɵelement(3, "i",
|
|
373
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
374
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
375
|
+
i0.ɵɵelementStart(0, "div", 63)(1, "div", 35)(2, "div", 36);
|
|
376
|
+
i0.ɵɵelement(3, "i", 64)(4, "span", 38);
|
|
408
377
|
i0.ɵɵpipe(5, "highlightSearch");
|
|
409
|
-
i0.ɵɵelementStart(6, "span",
|
|
378
|
+
i0.ɵɵelementStart(6, "span", 39);
|
|
410
379
|
i0.ɵɵtext(7);
|
|
411
380
|
i0.ɵɵelementEnd()();
|
|
412
|
-
i0.ɵɵelementStart(8, "div",
|
|
381
|
+
i0.ɵɵelementStart(8, "div", 40);
|
|
413
382
|
i0.ɵɵtext(9);
|
|
414
|
-
i0.ɵɵconditionalCreate(10,
|
|
415
|
-
i0.ɵɵelementEnd();
|
|
416
|
-
i0.ɵɵconditionalCreate(11,
|
|
417
|
-
i0.ɵɵelementStart(12, "div",
|
|
418
|
-
i0.ɵɵconditionalCreate(13,
|
|
419
|
-
i0.ɵɵconditionalCreate(14,
|
|
420
|
-
i0.ɵɵconditionalCreate(15,
|
|
421
|
-
i0.ɵɵelementStart(16, "span",
|
|
422
|
-
i0.ɵɵelement(17, "i",
|
|
383
|
+
i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_10_Template, 2, 1);
|
|
384
|
+
i0.ɵɵelementEnd();
|
|
385
|
+
i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 41);
|
|
386
|
+
i0.ɵɵelementStart(12, "div", 65);
|
|
387
|
+
i0.ɵɵconditionalCreate(13, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_13_Template, 3, 1, "span", 66);
|
|
388
|
+
i0.ɵɵconditionalCreate(14, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_14_Template, 3, 1, "span", 66);
|
|
389
|
+
i0.ɵɵconditionalCreate(15, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_15_Template, 3, 1, "span", 66);
|
|
390
|
+
i0.ɵɵelementStart(16, "span", 66);
|
|
391
|
+
i0.ɵɵelement(17, "i", 67);
|
|
423
392
|
i0.ɵɵtext(18);
|
|
424
393
|
i0.ɵɵelementEnd()();
|
|
425
|
-
i0.ɵɵconditionalCreate(19,
|
|
394
|
+
i0.ɵɵconditionalCreate(19, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Conditional_19_Template, 4, 1, "div", 68);
|
|
426
395
|
i0.ɵɵelementEnd();
|
|
427
|
-
i0.ɵɵelementStart(20, "div",
|
|
396
|
+
i0.ɵɵelementStart(20, "div", 42)(21, "div", 43)(22, "span", 44);
|
|
428
397
|
i0.ɵɵtext(23, "Last Status");
|
|
429
398
|
i0.ɵɵelementEnd();
|
|
430
|
-
i0.ɵɵelementStart(24, "span",
|
|
399
|
+
i0.ɵɵelementStart(24, "span", 69);
|
|
431
400
|
i0.ɵɵtext(25);
|
|
432
401
|
i0.ɵɵelementEnd()();
|
|
433
|
-
i0.ɵɵelementStart(26, "div",
|
|
402
|
+
i0.ɵɵelementStart(26, "div", 43)(27, "span", 44);
|
|
434
403
|
i0.ɵɵtext(28, "Score");
|
|
435
404
|
i0.ɵɵelementEnd();
|
|
436
|
-
i0.ɵɵelementStart(29, "span",
|
|
405
|
+
i0.ɵɵelementStart(29, "span", 45);
|
|
437
406
|
i0.ɵɵtext(30);
|
|
438
407
|
i0.ɵɵelementEnd()();
|
|
439
|
-
i0.ɵɵelementStart(31, "div",
|
|
408
|
+
i0.ɵɵelementStart(31, "div", 43)(32, "span", 44);
|
|
440
409
|
i0.ɵɵtext(33, "Total Runs");
|
|
441
410
|
i0.ɵɵelementEnd();
|
|
442
|
-
i0.ɵɵelementStart(34, "span",
|
|
411
|
+
i0.ɵɵelementStart(34, "span", 45);
|
|
443
412
|
i0.ɵɵtext(35);
|
|
444
413
|
i0.ɵɵelementEnd()();
|
|
445
|
-
i0.ɵɵelementStart(36, "div",
|
|
414
|
+
i0.ɵɵelementStart(36, "div", 43)(37, "span", 44);
|
|
446
415
|
i0.ɵɵtext(38, "Pass Rate");
|
|
447
416
|
i0.ɵɵelementEnd();
|
|
448
|
-
i0.ɵɵelementStart(39, "span",
|
|
417
|
+
i0.ɵɵelementStart(39, "span", 45);
|
|
449
418
|
i0.ɵɵtext(40);
|
|
450
419
|
i0.ɵɵelementEnd()()();
|
|
451
|
-
i0.ɵɵelementStart(41, "div",
|
|
452
|
-
i0.ɵɵlistener("click", function
|
|
453
|
-
i0.ɵɵelement(43, "i",
|
|
420
|
+
i0.ɵɵelementStart(41, "div", 47)(42, "button", 48);
|
|
421
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Template_button_click_42_listener() { const test_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.RunTest(test_r13.ID)); });
|
|
422
|
+
i0.ɵɵelement(43, "i", 49);
|
|
454
423
|
i0.ɵɵtext(44, " Run ");
|
|
455
424
|
i0.ɵɵelementEnd();
|
|
456
|
-
i0.ɵɵelementStart(45, "button",
|
|
457
|
-
i0.ɵɵlistener("click", function
|
|
458
|
-
i0.ɵɵelement(46, "i",
|
|
425
|
+
i0.ɵɵelementStart(45, "button", 50);
|
|
426
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Template_button_click_45_listener() { const test_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.ViewTestHistory(test_r13.ID)); });
|
|
427
|
+
i0.ɵɵelement(46, "i", 70);
|
|
459
428
|
i0.ɵɵtext(47, " History ");
|
|
460
429
|
i0.ɵɵelementEnd();
|
|
461
|
-
i0.ɵɵelementStart(48, "button",
|
|
462
|
-
i0.ɵɵlistener("click", function
|
|
463
|
-
i0.ɵɵelement(49, "i",
|
|
430
|
+
i0.ɵɵelementStart(48, "button", 50);
|
|
431
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Template_button_click_48_listener() { const test_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Tests", test_r13.ID)); });
|
|
432
|
+
i0.ɵɵelement(49, "i", 52);
|
|
464
433
|
i0.ɵɵtext(50, " Edit ");
|
|
465
434
|
i0.ɵɵelementEnd()()();
|
|
466
435
|
} if (rf & 2) {
|
|
467
|
-
const
|
|
468
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
436
|
+
const test_r13 = ctx.$implicit;
|
|
437
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
469
438
|
i0.ɵɵadvance(4);
|
|
470
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 20,
|
|
439
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 20, test_r13.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
471
440
|
i0.ɵɵadvance(2);
|
|
472
|
-
i0.ɵɵattribute("data-status",
|
|
441
|
+
i0.ɵɵattribute("data-status", test_r13.Status.toLowerCase());
|
|
473
442
|
i0.ɵɵadvance();
|
|
474
|
-
i0.ɵɵtextInterpolate(
|
|
443
|
+
i0.ɵɵtextInterpolate(test_r13.Status);
|
|
475
444
|
i0.ɵɵadvance(2);
|
|
476
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
445
|
+
i0.ɵɵtextInterpolate1(" ", test_r13.TypeName, " ");
|
|
477
446
|
i0.ɵɵadvance();
|
|
478
|
-
i0.ɵɵconditional(
|
|
447
|
+
i0.ɵɵconditional(test_r13.SuiteName ? 10 : -1);
|
|
479
448
|
i0.ɵɵadvance();
|
|
480
|
-
i0.ɵɵconditional(
|
|
449
|
+
i0.ɵɵconditional(test_r13.Description ? 11 : -1);
|
|
481
450
|
i0.ɵɵadvance(2);
|
|
482
|
-
i0.ɵɵconditional(
|
|
451
|
+
i0.ɵɵconditional(test_r13.TypeName ? 13 : -1);
|
|
483
452
|
i0.ɵɵadvance();
|
|
484
|
-
i0.ɵɵconditional(
|
|
453
|
+
i0.ɵɵconditional(test_r13.EstDuration > 0 ? 14 : -1);
|
|
485
454
|
i0.ɵɵadvance();
|
|
486
|
-
i0.ɵɵconditional(
|
|
455
|
+
i0.ɵɵconditional(test_r13.EstCost > 0 ? 15 : -1);
|
|
487
456
|
i0.ɵɵadvance(3);
|
|
488
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(
|
|
457
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(test_r13.UpdatedAt));
|
|
489
458
|
i0.ɵɵadvance();
|
|
490
|
-
i0.ɵɵconditional(
|
|
459
|
+
i0.ɵɵconditional(test_r13.Tags.length > 0 ? 19 : -1);
|
|
491
460
|
i0.ɵɵadvance(5);
|
|
492
|
-
i0.ɵɵattribute("data-status",
|
|
461
|
+
i0.ɵɵattribute("data-status", test_r13.LastRunStatus.toLowerCase());
|
|
493
462
|
i0.ɵɵadvance();
|
|
494
|
-
i0.ɵɵtextInterpolate(
|
|
463
|
+
i0.ɵɵtextInterpolate(test_r13.LastRunStatus || "N/A");
|
|
495
464
|
i0.ɵɵadvance(4);
|
|
496
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
465
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r13.LastScore));
|
|
497
466
|
i0.ɵɵadvance();
|
|
498
|
-
i0.ɵɵtextInterpolate(
|
|
467
|
+
i0.ɵɵtextInterpolate(test_r13.LastScore > 0 ? (test_r13.LastScore * 100).toFixed(0) + "%" : "N/A");
|
|
499
468
|
i0.ɵɵadvance(5);
|
|
500
|
-
i0.ɵɵtextInterpolate(
|
|
469
|
+
i0.ɵɵtextInterpolate(test_r13.TotalRuns);
|
|
501
470
|
i0.ɵɵadvance(4);
|
|
502
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
471
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r13.PassRate / 100));
|
|
503
472
|
i0.ɵɵadvance();
|
|
504
|
-
i0.ɵɵtextInterpolate(
|
|
473
|
+
i0.ɵɵtextInterpolate(test_r13.TotalRuns > 0 ? ctx_r2.FormatPercent(test_r13.PassRate) : "N/A");
|
|
505
474
|
} }
|
|
506
|
-
function
|
|
507
|
-
i0.ɵɵelementStart(0, "div",
|
|
508
|
-
i0.ɵɵelement(2, "i",
|
|
475
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
476
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "h3", 30);
|
|
477
|
+
i0.ɵɵelement(2, "i", 62);
|
|
509
478
|
i0.ɵɵtext(3, " Tests ");
|
|
510
|
-
i0.ɵɵelementStart(4, "span",
|
|
479
|
+
i0.ɵɵelementStart(4, "span", 32);
|
|
511
480
|
i0.ɵɵtext(5);
|
|
512
481
|
i0.ɵɵelementEnd()();
|
|
513
|
-
i0.ɵɵelementStart(6, "div",
|
|
514
|
-
i0.ɵɵrepeaterCreate(7,
|
|
482
|
+
i0.ɵɵelementStart(6, "div", 33);
|
|
483
|
+
i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_For_8_Template, 51, 23, "div", 63, _forTrack0);
|
|
515
484
|
i0.ɵɵelementEnd()();
|
|
516
485
|
} if (rf & 2) {
|
|
517
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
486
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
518
487
|
i0.ɵɵadvance(5);
|
|
519
488
|
i0.ɵɵtextInterpolate(ctx_r2.FilteredTests.length);
|
|
520
489
|
i0.ɵɵadvance(2);
|
|
521
490
|
i0.ɵɵrepeater(ctx_r2.FilteredTests);
|
|
522
491
|
} }
|
|
523
|
-
function
|
|
524
|
-
i0.ɵɵconditionalCreate(0,
|
|
492
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
493
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Conditional_0_Template, 9, 1, "div", 29);
|
|
525
494
|
} if (rf & 2) {
|
|
526
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
495
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
527
496
|
i0.ɵɵconditional(ctx_r2.FilteredTests.length > 0 ? 0 : -1);
|
|
528
497
|
} }
|
|
529
|
-
function
|
|
530
|
-
i0.ɵɵelementStart(0, "div",
|
|
531
|
-
i0.ɵɵelement(1, "i",
|
|
498
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
499
|
+
i0.ɵɵelementStart(0, "div", 28);
|
|
500
|
+
i0.ɵɵelement(1, "i", 76);
|
|
532
501
|
i0.ɵɵelementStart(2, "p");
|
|
533
502
|
i0.ɵɵtext(3, "No tests or suites found");
|
|
534
503
|
i0.ɵɵelementEnd();
|
|
535
|
-
i0.ɵɵelementStart(4, "span",
|
|
504
|
+
i0.ɵɵelementStart(4, "span", 77);
|
|
536
505
|
i0.ɵɵtext(5, "Try adjusting your search or filters.");
|
|
537
506
|
i0.ɵɵelementEnd()();
|
|
538
507
|
} }
|
|
539
|
-
function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
540
|
-
const _r2 = i0.ɵɵgetCurrentView();
|
|
541
|
-
i0.ɵɵelementStart(0, "div", 2)(1, "aside", 9)(2, "div", 10)(3, "h3");
|
|
542
|
-
i0.ɵɵtext(4, "Explorer");
|
|
543
|
-
i0.ɵɵelementEnd();
|
|
544
|
-
i0.ɵɵelementStart(5, "button", 11);
|
|
545
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSidebar()); });
|
|
546
|
-
i0.ɵɵelement(6, "i", 12);
|
|
547
|
-
i0.ɵɵelementEnd()();
|
|
548
|
-
i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_1_Conditional_7_Template, 27, 7, "div", 13);
|
|
549
|
-
i0.ɵɵelementEnd();
|
|
550
|
-
i0.ɵɵelementStart(8, "main", 14)(9, "div", 15)(10, "div", 16)(11, "div", 17);
|
|
551
|
-
i0.ɵɵelement(12, "i", 18);
|
|
552
|
-
i0.ɵɵelementStart(13, "input", 19);
|
|
553
|
-
i0.ɵɵlistener("input", function TestingExplorerComponent_Conditional_1_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInput($event)); });
|
|
554
|
-
i0.ɵɵelementEnd();
|
|
555
|
-
i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_14_Template, 2, 0, "button", 20);
|
|
556
|
-
i0.ɵɵelementEnd();
|
|
557
|
-
i0.ɵɵelementStart(15, "div", 21);
|
|
558
|
-
i0.ɵɵrepeaterCreate(16, TestingExplorerComponent_Conditional_1_For_17_Template, 2, 4, "button", 22, i0.ɵɵrepeaterTrackByIdentity);
|
|
559
|
-
i0.ɵɵelementEnd()();
|
|
560
|
-
i0.ɵɵelementStart(18, "div", 23)(19, "span", 24);
|
|
561
|
-
i0.ɵɵtext(20);
|
|
562
|
-
i0.ɵɵelementEnd();
|
|
563
|
-
i0.ɵɵelementStart(21, "div", 25)(22, "button", 26);
|
|
564
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("card")); });
|
|
565
|
-
i0.ɵɵelement(23, "i", 27);
|
|
566
|
-
i0.ɵɵelementEnd();
|
|
567
|
-
i0.ɵɵelementStart(24, "button", 28);
|
|
568
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("list")); });
|
|
569
|
-
i0.ɵɵelement(25, "i", 29);
|
|
570
|
-
i0.ɵɵelementEnd()();
|
|
571
|
-
i0.ɵɵelementStart(26, "button", 30);
|
|
572
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewSuite()); });
|
|
573
|
-
i0.ɵɵelement(27, "i", 31);
|
|
574
|
-
i0.ɵɵtext(28, " New Suite ");
|
|
575
|
-
i0.ɵɵelementEnd();
|
|
576
|
-
i0.ɵɵelementStart(29, "button", 32);
|
|
577
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewTest()); });
|
|
578
|
-
i0.ɵɵelement(30, "i", 33);
|
|
579
|
-
i0.ɵɵtext(31, " New Test ");
|
|
580
|
-
i0.ɵɵelementEnd()()();
|
|
581
|
-
i0.ɵɵelementStart(32, "div", 34)(33, "div", 35)(34, "button", 36);
|
|
582
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("all")); });
|
|
583
|
-
i0.ɵɵtext(35, "All");
|
|
584
|
-
i0.ɵɵelementEnd();
|
|
585
|
-
i0.ɵɵelementStart(36, "button", 36);
|
|
586
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_36_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("suites")); });
|
|
587
|
-
i0.ɵɵtext(37, "Suites Only");
|
|
588
|
-
i0.ɵɵelementEnd();
|
|
589
|
-
i0.ɵɵelementStart(38, "button", 36);
|
|
590
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_38_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("tests")); });
|
|
591
|
-
i0.ɵɵtext(39, "Tests Only");
|
|
592
|
-
i0.ɵɵelementEnd()();
|
|
593
|
-
i0.ɵɵelementStart(40, "div", 37)(41, "button", 38);
|
|
594
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_41_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSortDirection()); });
|
|
595
|
-
i0.ɵɵelement(42, "i", 39);
|
|
596
|
-
i0.ɵɵtext(43);
|
|
597
|
-
i0.ɵɵelement(44, "i", 12);
|
|
598
|
-
i0.ɵɵelementEnd()()();
|
|
599
|
-
i0.ɵɵelementStart(45, "div", 40);
|
|
600
|
-
i0.ɵɵconditionalCreate(46, TestingExplorerComponent_Conditional_1_Conditional_46_Template, 1, 1);
|
|
601
|
-
i0.ɵɵconditionalCreate(47, TestingExplorerComponent_Conditional_1_Conditional_47_Template, 1, 1);
|
|
602
|
-
i0.ɵɵconditionalCreate(48, TestingExplorerComponent_Conditional_1_Conditional_48_Template, 6, 0, "div", 41);
|
|
603
|
-
i0.ɵɵelementEnd()()();
|
|
604
|
-
} if (rf & 2) {
|
|
605
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
606
|
-
i0.ɵɵadvance();
|
|
607
|
-
i0.ɵɵclassProp("collapsed", ctx_r2.IsSidebarCollapsed);
|
|
608
|
-
i0.ɵɵadvance(5);
|
|
609
|
-
i0.ɵɵclassProp("fa-chevron-left", !ctx_r2.IsSidebarCollapsed)("fa-chevron-right", ctx_r2.IsSidebarCollapsed);
|
|
610
|
-
i0.ɵɵadvance();
|
|
611
|
-
i0.ɵɵconditional(!ctx_r2.IsSidebarCollapsed ? 7 : -1);
|
|
612
|
-
i0.ɵɵadvance(6);
|
|
613
|
-
i0.ɵɵproperty("value", ctx_r2.SearchTerm);
|
|
614
|
-
i0.ɵɵadvance();
|
|
615
|
-
i0.ɵɵconditional(ctx_r2.SearchTerm ? 14 : -1);
|
|
616
|
-
i0.ɵɵadvance(2);
|
|
617
|
-
i0.ɵɵrepeater(ctx_r2.StatusOptions);
|
|
618
|
-
i0.ɵɵadvance(4);
|
|
619
|
-
i0.ɵɵtextInterpolate1("", ctx_r2.FilteredResultCount, " results");
|
|
620
|
-
i0.ɵɵadvance(2);
|
|
621
|
-
i0.ɵɵclassProp("active", ctx_r2.ViewMode === "card");
|
|
622
|
-
i0.ɵɵadvance(2);
|
|
623
|
-
i0.ɵɵclassProp("active", ctx_r2.ViewMode === "list");
|
|
624
|
-
i0.ɵɵadvance(10);
|
|
625
|
-
i0.ɵɵclassProp("active", ctx_r2.DisplayMode === "all");
|
|
626
|
-
i0.ɵɵadvance(2);
|
|
627
|
-
i0.ɵɵclassProp("active", ctx_r2.DisplayMode === "suites");
|
|
628
|
-
i0.ɵɵadvance(2);
|
|
629
|
-
i0.ɵɵclassProp("active", ctx_r2.DisplayMode === "tests");
|
|
630
|
-
i0.ɵɵadvance(5);
|
|
631
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.SortFieldLabel, " ");
|
|
632
|
-
i0.ɵɵadvance();
|
|
633
|
-
i0.ɵɵclassProp("fa-arrow-up", ctx_r2.SortDirection === "asc")("fa-arrow-down", ctx_r2.SortDirection === "desc");
|
|
634
|
-
i0.ɵɵadvance(2);
|
|
635
|
-
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "suites" ? 46 : -1);
|
|
636
|
-
i0.ɵɵadvance();
|
|
637
|
-
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "tests" ? 47 : -1);
|
|
638
|
-
i0.ɵɵadvance();
|
|
639
|
-
i0.ɵɵconditional(ctx_r2.FilteredSuites.length === 0 && ctx_r2.FilteredTests.length === 0 ? 48 : -1);
|
|
640
|
-
} }
|
|
641
508
|
function TestingExplorerComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
642
|
-
const
|
|
643
|
-
i0.ɵɵelementStart(0, "
|
|
644
|
-
i0.ɵɵlistener("
|
|
645
|
-
i0.ɵɵelement(1, "i", 12);
|
|
646
|
-
i0.ɵɵelementEnd();
|
|
647
|
-
} if (rf & 2) {
|
|
648
|
-
const node_r21 = i0.ɵɵnextContext().node;
|
|
649
|
-
i0.ɵɵadvance();
|
|
650
|
-
i0.ɵɵclassProp("fa-chevron-right", !node_r21.Expanded)("fa-chevron-down", node_r21.Expanded);
|
|
651
|
-
} }
|
|
652
|
-
function TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
653
|
-
i0.ɵɵelementContainer(0);
|
|
654
|
-
} }
|
|
655
|
-
function TestingExplorerComponent_ng_template_2_Conditional_7_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
656
|
-
i0.ɵɵtemplate(0, TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container_0_Template, 1, 0, "ng-container", 50);
|
|
657
|
-
} if (rf & 2) {
|
|
658
|
-
const child_r23 = ctx.$implicit;
|
|
659
|
-
const depth_r24 = i0.ɵɵnextContext(2).depth;
|
|
660
|
-
i0.ɵɵnextContext();
|
|
661
|
-
const suiteTreeTpl_r6 = i0.ɵɵreference(3);
|
|
662
|
-
i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, child_r23, depth_r24 + 1));
|
|
663
|
-
} }
|
|
664
|
-
function TestingExplorerComponent_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
665
|
-
i0.ɵɵrepeaterCreate(0, TestingExplorerComponent_ng_template_2_Conditional_7_For_1_Template, 1, 5, "ng-container", null, _forTrack0);
|
|
666
|
-
} if (rf & 2) {
|
|
667
|
-
const node_r21 = i0.ɵɵnextContext().node;
|
|
668
|
-
i0.ɵɵrepeater(node_r21.Children);
|
|
669
|
-
} }
|
|
670
|
-
function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
671
|
-
const _r20 = i0.ɵɵgetCurrentView();
|
|
672
|
-
i0.ɵɵelementStart(0, "div", 103);
|
|
673
|
-
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Template_div_click_0_listener() { const node_r21 = i0.ɵɵrestoreView(_r20).node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "suite", ID: node_r21.ID })); });
|
|
674
|
-
i0.ɵɵconditionalCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 2, 4, "button", 104);
|
|
675
|
-
i0.ɵɵelement(2, "i", 57);
|
|
676
|
-
i0.ɵɵelementStart(3, "span", 105);
|
|
677
|
-
i0.ɵɵtext(4);
|
|
509
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
510
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "mj-left-nav", 26);
|
|
511
|
+
i0.ɵɵlistener("ItemClicked", function TestingExplorerComponent_ng_template_2_Conditional_1_Template_mj_left_nav_ItemClicked_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnNavItemClicked($event)); })("ItemToggled", function TestingExplorerComponent_ng_template_2_Conditional_1_Template_mj_left_nav_ItemToggled_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnNavItemToggled($event)); });
|
|
678
512
|
i0.ɵɵelementEnd();
|
|
679
|
-
i0.ɵɵelementStart(
|
|
680
|
-
i0.ɵɵ
|
|
681
|
-
i0.ɵɵ
|
|
682
|
-
i0.ɵɵconditionalCreate(
|
|
513
|
+
i0.ɵɵelementStart(2, "mj-left-nav-content")(3, "div", 27);
|
|
514
|
+
i0.ɵɵconditionalCreate(4, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Template, 1, 1);
|
|
515
|
+
i0.ɵɵconditionalCreate(5, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Template, 1, 1);
|
|
516
|
+
i0.ɵɵconditionalCreate(6, TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_6_Template, 6, 0, "div", 28);
|
|
517
|
+
i0.ɵɵelementEnd()()();
|
|
683
518
|
} if (rf & 2) {
|
|
684
|
-
const
|
|
685
|
-
const depth_r24 = ctx.depth;
|
|
686
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
687
|
-
i0.ɵɵstyleProp("padding-left", 16 + depth_r24 * 14, "px");
|
|
688
|
-
i0.ɵɵclassProp("active", ctx_r2.SelectedSidebar.Type === "suite" && ctx_r2.IsSidebarSelected(node_r21.ID));
|
|
519
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
689
520
|
i0.ɵɵadvance();
|
|
690
|
-
i0.ɵɵ
|
|
521
|
+
i0.ɵɵproperty("Sections", ctx_r2.NavSections)("ActiveId", ctx_r2.ActiveNavId)("ExpandedIds", ctx_r2.ExpandedNavIds);
|
|
691
522
|
i0.ɵɵadvance(3);
|
|
692
|
-
i0.ɵɵ
|
|
693
|
-
i0.ɵɵadvance(
|
|
694
|
-
i0.ɵɵ
|
|
523
|
+
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "suites" ? 4 : -1);
|
|
524
|
+
i0.ɵɵadvance();
|
|
525
|
+
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "tests" ? 5 : -1);
|
|
695
526
|
i0.ɵɵadvance();
|
|
696
|
-
i0.ɵɵconditional(
|
|
527
|
+
i0.ɵɵconditional(ctx_r2.FilteredSuites.length === 0 && ctx_r2.FilteredTests.length === 0 ? 6 : -1);
|
|
697
528
|
} }
|
|
698
|
-
function
|
|
699
|
-
const
|
|
700
|
-
i0.ɵɵelementStart(0, "div",
|
|
701
|
-
i0.ɵɵlistener("click", function
|
|
529
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
530
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
531
|
+
i0.ɵɵelementStart(0, "div", 78);
|
|
532
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
|
|
702
533
|
i0.ɵɵelementEnd();
|
|
703
534
|
} }
|
|
704
|
-
function
|
|
705
|
-
i0.ɵɵelementStart(0, "div",
|
|
706
|
-
i0.ɵɵelement(1, "i",
|
|
535
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
536
|
+
i0.ɵɵelementStart(0, "div", 87);
|
|
537
|
+
i0.ɵɵelement(1, "i", 106);
|
|
707
538
|
i0.ɵɵelementStart(2, "span");
|
|
708
539
|
i0.ɵɵtext(3);
|
|
709
540
|
i0.ɵɵelementEnd()();
|
|
710
541
|
} if (rf & 2) {
|
|
711
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
542
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
712
543
|
i0.ɵɵadvance(3);
|
|
713
544
|
i0.ɵɵtextInterpolate(ctx_r2.FormErrorMessage);
|
|
714
545
|
} }
|
|
715
|
-
function
|
|
716
|
-
i0.ɵɵelementStart(0, "option",
|
|
546
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_31_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
547
|
+
i0.ɵɵelementStart(0, "option", 98);
|
|
717
548
|
i0.ɵɵtext(1);
|
|
718
549
|
i0.ɵɵelementEnd();
|
|
719
550
|
} if (rf & 2) {
|
|
720
|
-
const
|
|
721
|
-
i0.ɵɵproperty("value",
|
|
551
|
+
const tt_r19 = ctx.$implicit;
|
|
552
|
+
i0.ɵɵproperty("value", tt_r19.ID);
|
|
722
553
|
i0.ɵɵadvance();
|
|
723
|
-
i0.ɵɵtextInterpolate(
|
|
554
|
+
i0.ɵɵtextInterpolate(tt_r19.Name);
|
|
724
555
|
} }
|
|
725
|
-
function
|
|
726
|
-
const
|
|
727
|
-
i0.ɵɵelementStart(0, "div",
|
|
556
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
557
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
558
|
+
i0.ɵɵelementStart(0, "div", 91)(1, "label", 92);
|
|
728
559
|
i0.ɵɵtext(2, "Test Type ");
|
|
729
|
-
i0.ɵɵelementStart(3, "span",
|
|
560
|
+
i0.ɵɵelementStart(3, "span", 93);
|
|
730
561
|
i0.ɵɵtext(4, "*");
|
|
731
562
|
i0.ɵɵelementEnd()();
|
|
732
|
-
i0.ɵɵelementStart(5, "select",
|
|
733
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
734
|
-
i0.ɵɵelementStart(6, "option",
|
|
563
|
+
i0.ɵɵelementStart(5, "select", 97);
|
|
564
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_31_Template_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTypeID, $event) || (ctx_r2.FormTypeID = $event); return i0.ɵɵresetView($event); });
|
|
565
|
+
i0.ɵɵelementStart(6, "option", 107);
|
|
735
566
|
i0.ɵɵtext(7, "Select type...");
|
|
736
567
|
i0.ɵɵelementEnd();
|
|
737
|
-
i0.ɵɵrepeaterCreate(8,
|
|
568
|
+
i0.ɵɵrepeaterCreate(8, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_31_For_9_Template, 2, 2, "option", 98, _forTrack0);
|
|
738
569
|
i0.ɵɵelementEnd()();
|
|
739
570
|
} if (rf & 2) {
|
|
740
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
571
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
741
572
|
i0.ɵɵadvance(5);
|
|
742
573
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormTypeID);
|
|
743
574
|
i0.ɵɵadvance(3);
|
|
744
575
|
i0.ɵɵrepeater(ctx_r2.AllTestTypes);
|
|
745
576
|
} }
|
|
746
|
-
function
|
|
747
|
-
i0.ɵɵelementStart(0, "option",
|
|
577
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_32_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
578
|
+
i0.ɵɵelementStart(0, "option", 98);
|
|
748
579
|
i0.ɵɵtext(1);
|
|
749
580
|
i0.ɵɵelementEnd();
|
|
750
581
|
} if (rf & 2) {
|
|
751
|
-
const
|
|
752
|
-
i0.ɵɵproperty("value",
|
|
582
|
+
const s_r21 = ctx.$implicit;
|
|
583
|
+
i0.ɵɵproperty("value", s_r21.ID);
|
|
753
584
|
i0.ɵɵadvance();
|
|
754
|
-
i0.ɵɵtextInterpolate(
|
|
585
|
+
i0.ɵɵtextInterpolate(s_r21.Name);
|
|
755
586
|
} }
|
|
756
|
-
function
|
|
757
|
-
const
|
|
758
|
-
i0.ɵɵelementStart(0, "div",
|
|
587
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
588
|
+
const _r20 = i0.ɵɵgetCurrentView();
|
|
589
|
+
i0.ɵɵelementStart(0, "div", 91)(1, "label", 92);
|
|
759
590
|
i0.ɵɵtext(2, "Parent Suite");
|
|
760
591
|
i0.ɵɵelementEnd();
|
|
761
|
-
i0.ɵɵelementStart(3, "select",
|
|
762
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
763
|
-
i0.ɵɵelementStart(4, "option",
|
|
592
|
+
i0.ɵɵelementStart(3, "select", 97);
|
|
593
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_32_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormParentSuiteID, $event) || (ctx_r2.FormParentSuiteID = $event); return i0.ɵɵresetView($event); });
|
|
594
|
+
i0.ɵɵelementStart(4, "option", 108);
|
|
764
595
|
i0.ɵɵtext(5, "None (top-level)");
|
|
765
596
|
i0.ɵɵelementEnd();
|
|
766
|
-
i0.ɵɵrepeaterCreate(6,
|
|
597
|
+
i0.ɵɵrepeaterCreate(6, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_32_For_7_Template, 2, 2, "option", 98, _forTrack0);
|
|
767
598
|
i0.ɵɵelementEnd()();
|
|
768
599
|
} if (rf & 2) {
|
|
769
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
600
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
770
601
|
i0.ɵɵadvance(3);
|
|
771
602
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormParentSuiteID);
|
|
772
603
|
i0.ɵɵadvance(3);
|
|
773
604
|
i0.ɵɵrepeater(ctx_r2.AllSuites);
|
|
774
605
|
} }
|
|
775
|
-
function
|
|
776
|
-
i0.ɵɵelementStart(0, "option",
|
|
606
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_For_38_Template(rf, ctx) { if (rf & 1) {
|
|
607
|
+
i0.ɵɵelementStart(0, "option", 98);
|
|
777
608
|
i0.ɵɵtext(1);
|
|
778
609
|
i0.ɵɵelementEnd();
|
|
779
610
|
} if (rf & 2) {
|
|
780
|
-
const
|
|
781
|
-
i0.ɵɵproperty("value",
|
|
611
|
+
const status_r22 = ctx.$implicit;
|
|
612
|
+
i0.ɵɵproperty("value", status_r22);
|
|
782
613
|
i0.ɵɵadvance();
|
|
783
|
-
i0.ɵɵtextInterpolate(
|
|
614
|
+
i0.ɵɵtextInterpolate(status_r22);
|
|
784
615
|
} }
|
|
785
|
-
function
|
|
786
|
-
const
|
|
787
|
-
i0.ɵɵelementStart(0, "div",
|
|
616
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
617
|
+
const _r23 = i0.ɵɵgetCurrentView();
|
|
618
|
+
i0.ɵɵelementStart(0, "div", 89)(1, "div", 90);
|
|
788
619
|
i0.ɵɵtext(2, "Estimates");
|
|
789
620
|
i0.ɵɵelementEnd();
|
|
790
|
-
i0.ɵɵelementStart(3, "div",
|
|
621
|
+
i0.ɵɵelementStart(3, "div", 96)(4, "div", 91)(5, "label", 92);
|
|
791
622
|
i0.ɵɵtext(6, "Duration (seconds)");
|
|
792
623
|
i0.ɵɵelementEnd();
|
|
793
|
-
i0.ɵɵelementStart(7, "input",
|
|
794
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
624
|
+
i0.ɵɵelementStart(7, "input", 109);
|
|
625
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_39_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstDuration, $event) || (ctx_r2.FormEstDuration = $event); return i0.ɵɵresetView($event); });
|
|
795
626
|
i0.ɵɵelementEnd()();
|
|
796
|
-
i0.ɵɵelementStart(8, "div",
|
|
627
|
+
i0.ɵɵelementStart(8, "div", 91)(9, "label", 92);
|
|
797
628
|
i0.ɵɵtext(10, "Cost (USD)");
|
|
798
629
|
i0.ɵɵelementEnd();
|
|
799
|
-
i0.ɵɵelementStart(11, "input",
|
|
800
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
630
|
+
i0.ɵɵelementStart(11, "input", 110);
|
|
631
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_39_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstCost, $event) || (ctx_r2.FormEstCost = $event); return i0.ɵɵresetView($event); });
|
|
801
632
|
i0.ɵɵelementEnd()()()();
|
|
802
633
|
} if (rf & 2) {
|
|
803
|
-
const ctx_r2 = i0.ɵɵnextContext(
|
|
634
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
804
635
|
i0.ɵɵadvance(7);
|
|
805
636
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormEstDuration);
|
|
806
637
|
i0.ɵɵadvance(4);
|
|
807
638
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormEstCost);
|
|
808
639
|
} }
|
|
809
|
-
function
|
|
810
|
-
i0.ɵɵelement(0, "i",
|
|
640
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_51_Template(rf, ctx) { if (rf & 1) {
|
|
641
|
+
i0.ɵɵelement(0, "i", 104);
|
|
811
642
|
} }
|
|
812
|
-
function
|
|
813
|
-
i0.ɵɵelement(0, "i",
|
|
643
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_52_Template(rf, ctx) { if (rf & 1) {
|
|
644
|
+
i0.ɵɵelement(0, "i", 105);
|
|
814
645
|
} }
|
|
815
|
-
function
|
|
816
|
-
const
|
|
817
|
-
i0.ɵɵelementStart(0, "div",
|
|
818
|
-
i0.ɵɵelement(3, "i",
|
|
819
|
-
i0.ɵɵelementStart(4, "span",
|
|
646
|
+
function TestingExplorerComponent_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
647
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
648
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "div", 79)(2, "div", 80);
|
|
649
|
+
i0.ɵɵelement(3, "i", 81);
|
|
650
|
+
i0.ɵɵelementStart(4, "span", 82);
|
|
820
651
|
i0.ɵɵtext(5);
|
|
821
652
|
i0.ɵɵelementEnd()();
|
|
822
|
-
i0.ɵɵelementStart(6, "button",
|
|
823
|
-
i0.ɵɵlistener("click", function
|
|
824
|
-
i0.ɵɵelement(7, "i",
|
|
653
|
+
i0.ɵɵelementStart(6, "button", 83);
|
|
654
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
|
|
655
|
+
i0.ɵɵelement(7, "i", 84);
|
|
825
656
|
i0.ɵɵelementEnd()();
|
|
826
|
-
i0.ɵɵelementStart(8, "div",
|
|
827
|
-
i0.ɵɵlistener("click", function
|
|
828
|
-
i0.ɵɵelement(10, "i",
|
|
657
|
+
i0.ɵɵelementStart(8, "div", 85)(9, "button", 86);
|
|
658
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("test")); });
|
|
659
|
+
i0.ɵɵelement(10, "i", 62);
|
|
829
660
|
i0.ɵɵtext(11, " Test ");
|
|
830
661
|
i0.ɵɵelementEnd();
|
|
831
|
-
i0.ɵɵelementStart(12, "button",
|
|
832
|
-
i0.ɵɵlistener("click", function
|
|
833
|
-
i0.ɵɵelement(13, "i",
|
|
662
|
+
i0.ɵɵelementStart(12, "button", 86);
|
|
663
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("suite")); });
|
|
664
|
+
i0.ɵɵelement(13, "i", 31);
|
|
834
665
|
i0.ɵɵtext(14, " Suite ");
|
|
835
666
|
i0.ɵɵelementEnd()();
|
|
836
|
-
i0.ɵɵconditionalCreate(15,
|
|
837
|
-
i0.ɵɵelementStart(16, "div",
|
|
667
|
+
i0.ɵɵconditionalCreate(15, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_15_Template, 4, 1, "div", 87);
|
|
668
|
+
i0.ɵɵelementStart(16, "div", 88)(17, "div", 89)(18, "div", 90);
|
|
838
669
|
i0.ɵɵtext(19, "General");
|
|
839
670
|
i0.ɵɵelementEnd();
|
|
840
|
-
i0.ɵɵelementStart(20, "div",
|
|
671
|
+
i0.ɵɵelementStart(20, "div", 91)(21, "label", 92);
|
|
841
672
|
i0.ɵɵtext(22, "Name ");
|
|
842
|
-
i0.ɵɵelementStart(23, "span",
|
|
673
|
+
i0.ɵɵelementStart(23, "span", 93);
|
|
843
674
|
i0.ɵɵtext(24, "*");
|
|
844
675
|
i0.ɵɵelementEnd()();
|
|
845
|
-
i0.ɵɵelementStart(25, "input",
|
|
846
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
676
|
+
i0.ɵɵelementStart(25, "input", 94);
|
|
677
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_input_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormName, $event) || (ctx_r2.FormName = $event); return i0.ɵɵresetView($event); });
|
|
847
678
|
i0.ɵɵelementEnd()();
|
|
848
|
-
i0.ɵɵelementStart(26, "div",
|
|
679
|
+
i0.ɵɵelementStart(26, "div", 91)(27, "label", 92);
|
|
849
680
|
i0.ɵɵtext(28, "Description");
|
|
850
681
|
i0.ɵɵelementEnd();
|
|
851
|
-
i0.ɵɵelementStart(29, "textarea",
|
|
852
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
682
|
+
i0.ɵɵelementStart(29, "textarea", 95);
|
|
683
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_textarea_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormDescription, $event) || (ctx_r2.FormDescription = $event); return i0.ɵɵresetView($event); });
|
|
853
684
|
i0.ɵɵelementEnd()();
|
|
854
|
-
i0.ɵɵelementStart(30, "div",
|
|
855
|
-
i0.ɵɵconditionalCreate(31,
|
|
856
|
-
i0.ɵɵconditionalCreate(32,
|
|
857
|
-
i0.ɵɵelementStart(33, "div",
|
|
685
|
+
i0.ɵɵelementStart(30, "div", 96);
|
|
686
|
+
i0.ɵɵconditionalCreate(31, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_31_Template, 10, 1, "div", 91);
|
|
687
|
+
i0.ɵɵconditionalCreate(32, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_32_Template, 8, 1, "div", 91);
|
|
688
|
+
i0.ɵɵelementStart(33, "div", 91)(34, "label", 92);
|
|
858
689
|
i0.ɵɵtext(35, "Status");
|
|
859
690
|
i0.ɵɵelementEnd();
|
|
860
|
-
i0.ɵɵelementStart(36, "select",
|
|
861
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
862
|
-
i0.ɵɵrepeaterCreate(37,
|
|
691
|
+
i0.ɵɵelementStart(36, "select", 97);
|
|
692
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_select_ngModelChange_36_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormStatus, $event) || (ctx_r2.FormStatus = $event); return i0.ɵɵresetView($event); });
|
|
693
|
+
i0.ɵɵrepeaterCreate(37, TestingExplorerComponent_ng_template_2_Conditional_5_For_38_Template, 2, 2, "option", 98, i0.ɵɵrepeaterTrackByIdentity);
|
|
863
694
|
i0.ɵɵelementEnd()()()();
|
|
864
|
-
i0.ɵɵconditionalCreate(39,
|
|
865
|
-
i0.ɵɵelementStart(40, "div",
|
|
695
|
+
i0.ɵɵconditionalCreate(39, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_39_Template, 12, 2, "div", 89);
|
|
696
|
+
i0.ɵɵelementStart(40, "div", 89)(41, "div", 90);
|
|
866
697
|
i0.ɵɵtext(42, "Tags");
|
|
867
698
|
i0.ɵɵelementEnd();
|
|
868
|
-
i0.ɵɵelementStart(43, "div",
|
|
869
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
699
|
+
i0.ɵɵelementStart(43, "div", 91)(44, "input", 99);
|
|
700
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_input_ngModelChange_44_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTags, $event) || (ctx_r2.FormTags = $event); return i0.ɵɵresetView($event); });
|
|
870
701
|
i0.ɵɵelementEnd();
|
|
871
|
-
i0.ɵɵelementStart(45, "span",
|
|
702
|
+
i0.ɵɵelementStart(45, "span", 100);
|
|
872
703
|
i0.ɵɵtext(46, "Separate multiple tags with commas");
|
|
873
704
|
i0.ɵɵelementEnd()()()();
|
|
874
|
-
i0.ɵɵelementStart(47, "div",
|
|
875
|
-
i0.ɵɵlistener("click", function
|
|
705
|
+
i0.ɵɵelementStart(47, "div", 101)(48, "button", 102);
|
|
706
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_button_click_48_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
|
|
876
707
|
i0.ɵɵtext(49, "Cancel");
|
|
877
708
|
i0.ɵɵelementEnd();
|
|
878
|
-
i0.ɵɵelementStart(50, "button",
|
|
879
|
-
i0.ɵɵlistener("click", function
|
|
880
|
-
i0.ɵɵconditionalCreate(51,
|
|
709
|
+
i0.ɵɵelementStart(50, "button", 103);
|
|
710
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_5_Template_button_click_50_listener() { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SaveForm()); });
|
|
711
|
+
i0.ɵɵconditionalCreate(51, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_51_Template, 1, 0, "i", 104)(52, TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_52_Template, 1, 0, "i", 105);
|
|
881
712
|
i0.ɵɵtext(53);
|
|
882
713
|
i0.ɵɵelementEnd()()();
|
|
883
714
|
} if (rf & 2) {
|
|
884
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
715
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
885
716
|
i0.ɵɵadvance(5);
|
|
886
717
|
i0.ɵɵtextInterpolate1(" Create ", ctx_r2.SlideoutCreateType === "test" ? "Test" : "Test Suite", " ");
|
|
887
718
|
i0.ɵɵadvance(4);
|
|
@@ -915,24 +746,63 @@ function TestingExplorerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1)
|
|
|
915
746
|
i0.ɵɵadvance(2);
|
|
916
747
|
i0.ɵɵtextInterpolate1(" Create ", ctx_r2.SlideoutCreateType === "test" ? "Test" : "Suite", " ");
|
|
917
748
|
} }
|
|
918
|
-
function
|
|
919
|
-
const
|
|
920
|
-
i0.ɵɵelementStart(0, "mj-slide-panel",
|
|
921
|
-
i0.ɵɵlistener("Closed", function
|
|
922
|
-
i0.ɵɵelementStart(1, "app-test-run-dialog",
|
|
923
|
-
i0.ɵɵlistener("PanelClose", function
|
|
749
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
750
|
+
const _r24 = i0.ɵɵgetCurrentView();
|
|
751
|
+
i0.ɵɵelementStart(0, "mj-slide-panel", 111);
|
|
752
|
+
i0.ɵɵlistener("Closed", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
|
|
753
|
+
i0.ɵɵelementStart(1, "app-test-run-dialog", 112);
|
|
754
|
+
i0.ɵɵlistener("PanelClose", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_app_test_run_dialog_PanelClose_1_listener() { i0.ɵɵrestoreView(_r24); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
|
|
924
755
|
i0.ɵɵelementEnd()();
|
|
925
756
|
} if (rf & 2) {
|
|
926
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
757
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
927
758
|
i0.ɵɵproperty("Resizable", true);
|
|
928
759
|
i0.ɵɵadvance();
|
|
929
760
|
i0.ɵɵproperty("PanelMode", true)("selectedTestId", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.testId) ?? null)("selectedSuiteId", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.suiteId) ?? null)("runMode", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.mode) ?? "test");
|
|
930
761
|
} }
|
|
762
|
+
function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
763
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
764
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_0_Template, 2, 0, "div", 18)(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 7, 6, "div", 19);
|
|
765
|
+
i0.ɵɵconditionalCreate(2, TestingExplorerComponent_ng_template_2_Conditional_2_Template, 1, 0, "div", 20);
|
|
766
|
+
i0.ɵɵelementStart(3, "div", 21)(4, "div", 22);
|
|
767
|
+
i0.ɵɵlistener("mousedown", function TestingExplorerComponent_ng_template_2_Template_div_mousedown_4_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnResizeStart($event)); });
|
|
768
|
+
i0.ɵɵelementEnd();
|
|
769
|
+
i0.ɵɵconditionalCreate(5, TestingExplorerComponent_ng_template_2_Conditional_5_Template, 54, 18, "div", 23);
|
|
770
|
+
i0.ɵɵelementEnd();
|
|
771
|
+
i0.ɵɵconditionalCreate(6, TestingExplorerComponent_ng_template_2_Conditional_6_Template, 2, 5, "mj-slide-panel", 24);
|
|
772
|
+
} if (rf & 2) {
|
|
773
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
774
|
+
i0.ɵɵconditional(ctx_r2.IsLoading ? 0 : 1);
|
|
775
|
+
i0.ɵɵadvance(2);
|
|
776
|
+
i0.ɵɵconditional(ctx_r2.SlideoutOpen ? 2 : -1);
|
|
777
|
+
i0.ɵɵadvance();
|
|
778
|
+
i0.ɵɵstyleProp("width", ctx_r2.SlideoutWidth, "px");
|
|
779
|
+
i0.ɵɵclassProp("open", ctx_r2.SlideoutOpen);
|
|
780
|
+
i0.ɵɵadvance(2);
|
|
781
|
+
i0.ɵɵconditional(ctx_r2.SlideoutOpen ? 5 : -1);
|
|
782
|
+
i0.ɵɵadvance();
|
|
783
|
+
i0.ɵɵconditional(ctx_r2.testingDialogService.IsPanelOpen ? 6 : -1);
|
|
784
|
+
} }
|
|
931
785
|
export class TestingExplorerComponent extends BaseAngularComponent {
|
|
932
786
|
cdr;
|
|
933
787
|
viewContainerRef;
|
|
934
788
|
testingDialogService;
|
|
935
789
|
instrumentationService;
|
|
790
|
+
HeaderViewOptions = [
|
|
791
|
+
{ key: 'card', icon: 'fa-solid fa-grip', title: 'Card view' },
|
|
792
|
+
{ key: 'list', icon: 'fa-solid fa-list', title: 'List view' }
|
|
793
|
+
];
|
|
794
|
+
DisplayModeOptions = [
|
|
795
|
+
{ key: 'all', label: 'All' },
|
|
796
|
+
{ key: 'suites', label: 'Suites' },
|
|
797
|
+
{ key: 'tests', label: 'Tests' }
|
|
798
|
+
];
|
|
799
|
+
/** mj-page-search emits a string; bridge it to the inner's Event-based OnSearchInput. */
|
|
800
|
+
OnSearchInputValue(value) {
|
|
801
|
+
const fakeEvent = { target: { value } };
|
|
802
|
+
this.OnSearchInput(fakeEvent);
|
|
803
|
+
}
|
|
804
|
+
/** When true, the inner bespoke .toolbar is hidden — the parent shell owns the chrome. */
|
|
805
|
+
HideToolbar = false;
|
|
936
806
|
destroy$ = new Subject();
|
|
937
807
|
// Raw cached data
|
|
938
808
|
allTests = [];
|
|
@@ -953,7 +823,6 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
953
823
|
_sortDirection$ = new BehaviorSubject('asc');
|
|
954
824
|
// Template-bound state
|
|
955
825
|
IsLoading = true;
|
|
956
|
-
IsSidebarCollapsed = false;
|
|
957
826
|
SearchTerm = '';
|
|
958
827
|
StatusFilters = new Set();
|
|
959
828
|
ViewMode = 'card';
|
|
@@ -1002,14 +871,6 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1002
871
|
return false;
|
|
1003
872
|
return true;
|
|
1004
873
|
}
|
|
1005
|
-
get SortFieldLabel() {
|
|
1006
|
-
switch (this.SortField) {
|
|
1007
|
-
case 'name': return 'Name';
|
|
1008
|
-
case 'updated': return 'Updated';
|
|
1009
|
-
case 'status': return 'Status';
|
|
1010
|
-
default: return 'Name';
|
|
1011
|
-
}
|
|
1012
|
-
}
|
|
1013
874
|
constructor(cdr, viewContainerRef, testingDialogService, instrumentationService) {
|
|
1014
875
|
super();
|
|
1015
876
|
this.cdr = cdr;
|
|
@@ -1092,18 +953,159 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1092
953
|
ClearSearch() {
|
|
1093
954
|
this._searchTerm$.next('');
|
|
1094
955
|
}
|
|
1095
|
-
|
|
1096
|
-
this.IsSidebarCollapsed = !this.IsSidebarCollapsed;
|
|
1097
|
-
this.cdr.markForCheck();
|
|
1098
|
-
}
|
|
1099
|
-
ToggleSuiteExpand(node, event) {
|
|
1100
|
-
event.stopPropagation();
|
|
956
|
+
ToggleSuiteExpand(node) {
|
|
1101
957
|
node.Expanded = !node.Expanded;
|
|
1102
958
|
this.cdr.markForCheck();
|
|
1103
959
|
}
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
960
|
+
// ---------------------------------------------------------------------------
|
|
961
|
+
// <mj-left-nav> adapters
|
|
962
|
+
//
|
|
963
|
+
// The rail is one <mj-left-nav> with three logical sections. Internal state
|
|
964
|
+
// still lives on SelectedSidebar (typed Type+ID) and on SuiteTreeNode.Expanded
|
|
965
|
+
// booleans — these getters translate to/from the primitive's flat
|
|
966
|
+
// string-id interface.
|
|
967
|
+
// ---------------------------------------------------------------------------
|
|
968
|
+
/** Composite-key sections fed to <mj-left-nav>. */
|
|
969
|
+
get NavSections() {
|
|
970
|
+
const suiteItems = this.FilteredSuiteTree.length === 0
|
|
971
|
+
? [{ id: '__suites-empty', label: 'No suites found', disabled: true }]
|
|
972
|
+
: this.FilteredSuiteTree.map(node => this.suiteNodeToNavItem(node));
|
|
973
|
+
return [
|
|
974
|
+
{
|
|
975
|
+
label: 'Browse',
|
|
976
|
+
items: [
|
|
977
|
+
{ id: 'all', label: 'All Items', icon: 'fa-solid fa-layer-group', badge: this.TotalItemCount },
|
|
978
|
+
{ id: 'standalone', label: 'Standalone Tests', icon: 'fa-solid fa-vial', badge: this.StandaloneTestCount },
|
|
979
|
+
]
|
|
980
|
+
},
|
|
981
|
+
{ label: 'Test Suites', items: suiteItems },
|
|
982
|
+
{
|
|
983
|
+
label: 'Test Types',
|
|
984
|
+
items: this.FilteredTestTypes.map(tt => ({
|
|
985
|
+
id: `testType:${tt.ID}`,
|
|
986
|
+
label: tt.Name,
|
|
987
|
+
icon: 'fa-solid fa-tag',
|
|
988
|
+
badge: this.GetTestCountForType(tt.ID)
|
|
989
|
+
}))
|
|
990
|
+
}
|
|
991
|
+
];
|
|
992
|
+
}
|
|
993
|
+
/** Recursive map SuiteTreeNode -> MJLeftNavItem. Leaves keep `children: []`
|
|
994
|
+
* so the primitive renders a placeholder where the chevron would be —
|
|
995
|
+
* this keeps siblings vertically aligned. */
|
|
996
|
+
suiteNodeToNavItem(node) {
|
|
997
|
+
return {
|
|
998
|
+
id: `suite:${node.ID}`,
|
|
999
|
+
label: node.Name,
|
|
1000
|
+
icon: 'fa-solid fa-folder',
|
|
1001
|
+
badge: node.TestCount,
|
|
1002
|
+
children: node.Children.map(child => this.suiteNodeToNavItem(child))
|
|
1003
|
+
};
|
|
1004
|
+
}
|
|
1005
|
+
/** Translate SelectedSidebar (typed Type+ID) to the rail's composite key. */
|
|
1006
|
+
get ActiveNavId() {
|
|
1007
|
+
const sel = this.SelectedSidebar;
|
|
1008
|
+
if (sel.Type === 'suite' || sel.Type === 'testType') {
|
|
1009
|
+
return `${sel.Type}:${sel.ID ?? ''}`;
|
|
1010
|
+
}
|
|
1011
|
+
return sel.Type;
|
|
1012
|
+
}
|
|
1013
|
+
/** Suite-node IDs that are currently expanded, walked from FilteredSuiteTree. */
|
|
1014
|
+
get ExpandedNavIds() {
|
|
1015
|
+
const out = [];
|
|
1016
|
+
const walk = (nodes) => {
|
|
1017
|
+
for (const n of nodes) {
|
|
1018
|
+
if (n.Expanded)
|
|
1019
|
+
out.push(`suite:${n.ID}`);
|
|
1020
|
+
walk(n.Children);
|
|
1021
|
+
}
|
|
1022
|
+
};
|
|
1023
|
+
walk(this.FilteredSuiteTree);
|
|
1024
|
+
return out;
|
|
1025
|
+
}
|
|
1026
|
+
/** Parse composite id and delegate to the existing SelectSidebarItem path. */
|
|
1027
|
+
OnNavItemClicked(item) {
|
|
1028
|
+
const id = item.id;
|
|
1029
|
+
if (id === 'all') {
|
|
1030
|
+
this.SelectSidebarItem({ Type: 'all', ID: null });
|
|
1031
|
+
}
|
|
1032
|
+
else if (id === 'standalone') {
|
|
1033
|
+
this.SelectSidebarItem({ Type: 'standalone', ID: null });
|
|
1034
|
+
}
|
|
1035
|
+
else if (id.startsWith('suite:')) {
|
|
1036
|
+
this.SelectSidebarItem({ Type: 'suite', ID: id.substring('suite:'.length) });
|
|
1037
|
+
}
|
|
1038
|
+
else if (id.startsWith('testType:')) {
|
|
1039
|
+
this.SelectSidebarItem({ Type: 'testType', ID: id.substring('testType:'.length) });
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
/** Chevron click on a suite item — toggle that node's Expanded flag. */
|
|
1043
|
+
OnNavItemToggled(item) {
|
|
1044
|
+
if (!item.id.startsWith('suite:'))
|
|
1045
|
+
return;
|
|
1046
|
+
const suiteId = item.id.substring('suite:'.length);
|
|
1047
|
+
const node = this.findSuiteNode(this.FilteredSuiteTree, suiteId);
|
|
1048
|
+
if (node)
|
|
1049
|
+
this.ToggleSuiteExpand(node);
|
|
1050
|
+
}
|
|
1051
|
+
findSuiteNode(tree, id) {
|
|
1052
|
+
for (const node of tree) {
|
|
1053
|
+
if (UUIDsEqual(node.ID, id))
|
|
1054
|
+
return node;
|
|
1055
|
+
const found = this.findSuiteNode(node.Children, id);
|
|
1056
|
+
if (found)
|
|
1057
|
+
return found;
|
|
1058
|
+
}
|
|
1059
|
+
return null;
|
|
1060
|
+
}
|
|
1061
|
+
// ---------------------------------------------------------------------------
|
|
1062
|
+
// Sort filter-popover wiring
|
|
1063
|
+
//
|
|
1064
|
+
// The chrome surfaces SortField + SortDirection through a <mj-filter-popover>
|
|
1065
|
+
// — same pattern AI Analytics → Model Performance uses for its SortBy
|
|
1066
|
+
// selection. Was previously a single direction-toggle button in chrome
|
|
1067
|
+
// [actions] with no way to change the field from the UI.
|
|
1068
|
+
// ---------------------------------------------------------------------------
|
|
1069
|
+
sortFieldOptions = [
|
|
1070
|
+
{ text: 'Name', value: 'name' },
|
|
1071
|
+
{ text: 'Updated', value: 'updated' },
|
|
1072
|
+
{ text: 'Status', value: 'status' },
|
|
1073
|
+
];
|
|
1074
|
+
sortDirectionOptions = [
|
|
1075
|
+
{ text: 'Ascending', value: 'asc' },
|
|
1076
|
+
{ text: 'Descending', value: 'desc' },
|
|
1077
|
+
];
|
|
1078
|
+
get sortFilterFields() {
|
|
1079
|
+
return [
|
|
1080
|
+
{ key: 'SortField', type: 'dropdown', label: 'Sort by',
|
|
1081
|
+
icon: 'fa-solid fa-arrow-down-wide-short', options: this.sortFieldOptions },
|
|
1082
|
+
{ key: 'SortDirection', type: 'dropdown', label: 'Direction',
|
|
1083
|
+
icon: 'fa-solid fa-arrow-up-arrow-down', options: this.sortDirectionOptions },
|
|
1084
|
+
];
|
|
1085
|
+
}
|
|
1086
|
+
get sortFilterValues() {
|
|
1087
|
+
return { SortField: this.SortField, SortDirection: this.SortDirection };
|
|
1088
|
+
}
|
|
1089
|
+
onSortFilterChange(values) {
|
|
1090
|
+
if ('SortField' in values) {
|
|
1091
|
+
this._sortField$.next(values['SortField']);
|
|
1092
|
+
}
|
|
1093
|
+
if ('SortDirection' in values) {
|
|
1094
|
+
this._sortDirection$.next(values['SortDirection']);
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
resetSortFilters() {
|
|
1098
|
+
this._sortField$.next('name');
|
|
1099
|
+
this._sortDirection$.next('asc');
|
|
1100
|
+
}
|
|
1101
|
+
/** Non-zero when the user has changed SortField or SortDirection from defaults — drives the popover badge. */
|
|
1102
|
+
get ActiveSortFilterCount() {
|
|
1103
|
+
let count = 0;
|
|
1104
|
+
if (this.SortField !== 'name')
|
|
1105
|
+
count++;
|
|
1106
|
+
if (this.SortDirection !== 'asc')
|
|
1107
|
+
count++;
|
|
1108
|
+
return count;
|
|
1107
1109
|
}
|
|
1108
1110
|
RunTest(testId) {
|
|
1109
1111
|
this.testingDialogService.OpenTestPanel(testId);
|
|
@@ -1666,196 +1668,110 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1666
1668
|
throw new Error('Failed to save test suite. Please check your input and try again.');
|
|
1667
1669
|
}
|
|
1668
1670
|
static ɵfac = function TestingExplorerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingExplorerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i1.TestingDialogService), i0.ɵɵdirectiveInject(i2.TestingInstrumentationService)); };
|
|
1669
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingExplorerComponent, selectors: [["app-testing-explorer"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
1670
|
-
|
|
1671
|
-
i0.ɵɵ
|
|
1672
|
-
i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template, 8, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1673
|
-
i0.ɵɵconditionalCreate(4, TestingExplorerComponent_Conditional_4_Template, 1, 0, "div", 3);
|
|
1674
|
-
i0.ɵɵelementStart(5, "div", 4)(6, "div", 5);
|
|
1675
|
-
i0.ɵɵlistener("mousedown", function TestingExplorerComponent_Template_div_mousedown_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnResizeStart($event)); });
|
|
1676
|
-
i0.ɵɵelementEnd();
|
|
1677
|
-
i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_7_Template, 54, 18, "div", 6);
|
|
1678
|
-
i0.ɵɵelementEnd();
|
|
1679
|
-
i0.ɵɵconditionalCreate(8, TestingExplorerComponent_Conditional_8_Template, 2, 5, "mj-slide-panel", 7);
|
|
1671
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingExplorerComponent, selectors: [["app-testing-explorer"]], inputs: { HideToolbar: "HideToolbar" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Test Explorer", "Icon", "fa-solid fa-compass", "Subtitle", "Browse tests and test suites"], ["meta", ""], ["Label", "results", 3, "Count", "Total"], ["actions", ""], ["Label", "Sort", "Icon", "fa-solid fa-arrow-down-wide-short", 3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [3, "KeyChange", "Options", "ActiveKey"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-folder-plus"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search tests and suites...", 3, "ValueChange", "Value"], [3, "Label", "Active"], [3, "Flex", "Padding"], [3, "Clicked", "Label", "Active"], [1, "explorer-loading"], [1, "explorer-layout"], [1, "slideout-backdrop"], [1, "slideout-panel"], [1, "slideout-resize-handle", 3, "mousedown"], [1, "slideout-container"], ["Mode", "slide", "Title", "Run Test", 3, "Resizable"], ["text", "Loading test explorer..."], [3, "ItemClicked", "ItemToggled", "Sections", "ActiveId", "ExpandedIds"], [1, "content-area"], [1, "empty-state"], [1, "content-section"], [1, "section-title"], [1, "fa-solid", "fa-folder"], [1, "section-count"], [1, "card-grid"], [1, "suite-card"], [1, "card-header"], [1, "card-title-row"], [1, "fa-solid", "fa-folder-open", "card-icon", "suite-icon"], [1, "card-name", 3, "innerHTML"], [1, "status-badge"], [1, "card-subtitle"], [1, "card-description", 3, "innerHTML"], [1, "card-stats"], [1, "stat"], [1, "stat-label"], [1, "stat-value"], [1, "card-tests-preview"], [1, "card-actions"], [1, "btn", "btn-sm", "btn-primary", 3, "click"], [1, "fa-solid", "fa-play"], [1, "btn", "btn-sm", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-chart-bar"], [1, "fa-solid", "fa-pen"], [1, "dot-sep"], [1, "preview-more"], [1, "preview-test-row"], [1, "preview-dot"], [1, "preview-test-name"], [1, "preview-score"], [1, "preview-bar"], [1, "preview-bar-fill"], [1, "preview-status"], [1, "fa-solid", "fa-vial"], [1, "test-card"], [1, "fa-solid", "fa-vial", "card-icon", "test-icon"], [1, "card-meta-row"], [1, "meta-item"], [1, "fa-solid", "fa-calendar"], [1, "card-tags"], [1, "stat-value", "status-text"], [1, "fa-solid", "fa-history"], [1, "fa-solid", "fa-robot"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-dollar-sign"], [1, "tag", "tag-more"], [1, "tag"], [1, "fa-solid", "fa-inbox"], [1, "empty-hint"], [1, "slideout-backdrop", 3, "click"], [1, "slideout-header"], [1, "slideout-title-row"], [1, "fa-solid", "fa-plus-circle", "slideout-title-icon"], [1, "slideout-title-text"], [1, "slideout-close-btn", 3, "click"], [1, "fa-solid", "fa-xmark"], [1, "slideout-type-toggle"], [1, "type-toggle-btn", 3, "click"], [1, "slideout-error"], [1, "slideout-body"], [1, "form-section"], [1, "form-section-title"], [1, "form-group"], [1, "form-label"], [1, "form-required"], ["type", "text", 1, "form-input", 3, "ngModelChange", "ngModel", "placeholder"], ["rows", "3", 1, "form-textarea", 3, "ngModelChange", "ngModel", "placeholder"], [1, "form-row"], [1, "form-input", 3, "ngModelChange", "ngModel"], [3, "value"], ["type", "text", "placeholder", "Comma-separated tags, e.g., agent, quality, v2", 1, "form-input", 3, "ngModelChange", "ngModel"], [1, "form-hint"], [1, "slideout-footer"], [1, "btn", "btn-secondary", 3, "click"], [1, "btn", "btn-primary", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-circle-exclamation"], ["value", "", "disabled", ""], ["value", ""], ["type", "number", "min", "0", "placeholder", "0", 1, "form-input", 3, "ngModelChange", "ngModel"], ["type", "number", "min", "0", "step", "0.01", "placeholder", "0.00", 1, "form-input", 3, "ngModelChange", "ngModel"], ["Mode", "slide", "Title", "Run Test", 3, "Closed", "Resizable"], [3, "PanelClose", "PanelMode", "selectedTestId", "selectedSuiteId", "runMode"]], template: function TestingExplorerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1672
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingExplorerComponent_Conditional_1_Template, 21, 14, "mj-page-layout");
|
|
1673
|
+
i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template, 7, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1680
1674
|
} if (rf & 2) {
|
|
1681
|
-
i0.ɵɵconditional(ctx.
|
|
1682
|
-
i0.ɵɵadvance(4);
|
|
1683
|
-
i0.ɵɵconditional(ctx.SlideoutOpen ? 4 : -1);
|
|
1684
|
-
i0.ɵɵadvance();
|
|
1685
|
-
i0.ɵɵstyleProp("width", ctx.SlideoutWidth, "px");
|
|
1686
|
-
i0.ɵɵclassProp("open", ctx.SlideoutOpen);
|
|
1687
|
-
i0.ɵɵadvance(2);
|
|
1688
|
-
i0.ɵɵconditional(ctx.SlideoutOpen ? 7 : -1);
|
|
1689
|
-
i0.ɵɵadvance();
|
|
1690
|
-
i0.ɵɵconditional(ctx.testingDialogService.IsPanelOpen ? 8 : -1);
|
|
1691
|
-
} }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.MinValidator, i4.NgModel, i1.TestRunDialogComponent, i5.MjSlidePanelComponent, i6.LoadingComponent, i7.HighlightSearchPipe], styles: ["\n\n\n\n\n [_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n \n\n .explorer-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n \n\n .explorer-layout[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n \n\n\n\n .sidebar[_ngcontent-%COMP%] {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: none;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title[_ngcontent-%COMP%] {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] .sidebar-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .suite-tree-item[_ngcontent-%COMP%] {\n gap: 6px;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n .main-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n \n\n .toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n }\n\n .chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn[_ngcontent-%COMP%] {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm[_ngcontent-%COMP%] {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n \n\n .toggle-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .sort-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n \n\n .content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n }\n\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n \n\n .card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n \n\n .suite-card[_ngcontent-%COMP%], \n .test-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card[_ngcontent-%COMP%]:hover, \n .test-card[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 16px 16px 12px;\n }\n\n .card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .test-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .card-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep[_ngcontent-%COMP%] {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n \n\n .card-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .stat-value.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .stat-value.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"][_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n \n\n .card-tests-preview[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"][_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"][_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .preview-test-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-score.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-score.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .preview-bar[_ngcontent-%COMP%] {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .warn-bg[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .bad-bg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .preview-status[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n .preview-more[_ngcontent-%COMP%] {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n\n\n .slideout-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeInBackdrop 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open[_ngcontent-%COMP%] {\n right: 0;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n \n\n .slideout-type-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n \n\n .slideout-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n \n\n .slideout-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .form-section-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .form-input[_ngcontent-%COMP%], \n .form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input[_ngcontent-%COMP%]:focus, \n .form-textarea[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input[_ngcontent-%COMP%]::placeholder, \n .form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n \n\n .slideout-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n \n\n mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n \n\n\n\n @media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar[_ngcontent-%COMP%] {\n display: none;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%], .toolbar-right[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .card-stats[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .form-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"], changeDetection: 0 });
|
|
1675
|
+
i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
|
|
1676
|
+
} }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.MinValidator, i4.NgModel, i5.MJButtonDirective, i5.MJPageHeaderComponent, i5.MJPageLayoutComponent, i5.MJPageBodyComponent, i5.MJFilterChipComponent, i5.MJFilterPopoverComponent, i5.MJFilterPanelComponent, i5.MJPageSearchComponent, i5.MJViewToggleComponent, i5.MJStatBadgeComponent, i5.MJLeftNavComponent, i5.MJLeftNavContentComponent, i1.TestRunDialogComponent, i6.MjSlidePanelComponent, i7.LoadingComponent, i8.HighlightSearchPipe], styles: ["\n\n\n\n\n [_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n \n\n .explorer-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n \n\n .explorer-layout[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n \n\n\n\n\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm[_ngcontent-%COMP%] {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n \n\n .content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n }\n\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n \n\n .card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n \n\n .suite-card[_ngcontent-%COMP%], \n .test-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card[_ngcontent-%COMP%]:hover, \n .test-card[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 16px 16px 12px;\n }\n\n .card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .test-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .card-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep[_ngcontent-%COMP%] {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n \n\n .card-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .stat-value.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .stat-value.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"][_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n \n\n .card-tests-preview[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"][_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"][_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .preview-test-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-score.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-score.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .preview-bar[_ngcontent-%COMP%] {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .warn-bg[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .bad-bg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .preview-status[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n .preview-more[_ngcontent-%COMP%] {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n\n\n .slideout-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeInBackdrop 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open[_ngcontent-%COMP%] {\n right: 0;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n \n\n .slideout-type-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n \n\n .slideout-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n \n\n .slideout-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .form-section-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .form-input[_ngcontent-%COMP%], \n .form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input[_ngcontent-%COMP%]:focus, \n .form-textarea[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input[_ngcontent-%COMP%]::placeholder, \n .form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n \n\n .slideout-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n \n\n mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n \n\n\n\n @media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 600px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .card-stats[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .form-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"], changeDetection: 0 });
|
|
1692
1677
|
}
|
|
1693
1678
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingExplorerComponent, [{
|
|
1694
1679
|
type: Component,
|
|
1695
1680
|
args: [{ standalone: false, selector: 'app-testing-explorer', changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
1681
|
+
@if (HideToolbar) {
|
|
1682
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
1683
|
+
} @else {
|
|
1684
|
+
<mj-page-layout>
|
|
1685
|
+
<mj-page-header
|
|
1686
|
+
Title="Test Explorer"
|
|
1687
|
+
Icon="fa-solid fa-compass"
|
|
1688
|
+
Subtitle="Browse tests and test suites">
|
|
1689
|
+
<!-- X-of-Y filtered count earns its meta spot per chrome conventions §2.
|
|
1690
|
+
TotalItemCount and FilteredResultCount are both kept in sync by
|
|
1691
|
+
the component as the rail selection / status chips / search input
|
|
1692
|
+
narrow the data. -->
|
|
1693
|
+
<div meta>
|
|
1694
|
+
<mj-stat-badge
|
|
1695
|
+
[Count]="FilteredResultCount"
|
|
1696
|
+
[Total]="TotalItemCount"
|
|
1697
|
+
Label="results">
|
|
1698
|
+
</mj-stat-badge>
|
|
1699
|
+
</div>
|
|
1700
|
+
<div actions>
|
|
1701
|
+
<!-- Sort + Direction live in a popover instead of a chrome
|
|
1702
|
+
toggle button so both dimensions surface together (was just
|
|
1703
|
+
a direction toggle before; the field selection was buried
|
|
1704
|
+
in code). Pattern matches AI Analytics → Model Performance
|
|
1705
|
+
where SortBy lives alongside other filter dropdowns. -->
|
|
1706
|
+
<mj-filter-popover
|
|
1707
|
+
Label="Sort"
|
|
1708
|
+
Icon="fa-solid fa-arrow-down-wide-short"
|
|
1709
|
+
[ActiveCount]="ActiveSortFilterCount"
|
|
1710
|
+
[ShowClearAll]="ActiveSortFilterCount > 0"
|
|
1711
|
+
(ClearAllRequested)="resetSortFilters()">
|
|
1712
|
+
<mj-filter-panel
|
|
1713
|
+
[Fields]="sortFilterFields"
|
|
1714
|
+
[Values]="sortFilterValues"
|
|
1715
|
+
(ValuesChange)="onSortFilterChange($event)"
|
|
1716
|
+
(Reset)="resetSortFilters()">
|
|
1717
|
+
</mj-filter-panel>
|
|
1718
|
+
</mj-filter-popover>
|
|
1719
|
+
<mj-view-toggle
|
|
1720
|
+
[Options]="HeaderViewOptions"
|
|
1721
|
+
[ActiveKey]="ViewMode"
|
|
1722
|
+
(KeyChange)="SetViewMode($any($event))">
|
|
1723
|
+
</mj-view-toggle>
|
|
1724
|
+
<button mjButton variant="secondary" size="sm" (click)="OnNewSuite()">
|
|
1725
|
+
<i class="fa-solid fa-folder-plus"></i> New Suite
|
|
1726
|
+
</button>
|
|
1727
|
+
<button mjButton variant="primary" size="sm" (click)="OnNewTest()">
|
|
1728
|
+
<i class="fa-solid fa-plus"></i> New Test
|
|
1729
|
+
</button>
|
|
1730
|
+
</div>
|
|
1731
|
+
<div toolbar>
|
|
1732
|
+
<mj-page-search
|
|
1733
|
+
Placeholder="Search tests and suites..."
|
|
1734
|
+
[Value]="SearchTerm"
|
|
1735
|
+
(ValueChange)="OnSearchInputValue($event)">
|
|
1736
|
+
</mj-page-search>
|
|
1737
|
+
@for (status of StatusOptions; track status) {
|
|
1738
|
+
<mj-filter-chip
|
|
1739
|
+
[Label]="status"
|
|
1740
|
+
[Active]="IsStatusActive(status)"
|
|
1741
|
+
(Clicked)="ToggleStatus(status)">
|
|
1742
|
+
</mj-filter-chip>
|
|
1743
|
+
}
|
|
1744
|
+
<mj-view-toggle
|
|
1745
|
+
[Options]="DisplayModeOptions"
|
|
1746
|
+
[ActiveKey]="DisplayMode"
|
|
1747
|
+
(KeyChange)="SetDisplayMode($any($event))">
|
|
1748
|
+
</mj-view-toggle>
|
|
1749
|
+
</div>
|
|
1750
|
+
</mj-page-header>
|
|
1751
|
+
<mj-page-body [Flex]="true" [Padding]="false">
|
|
1752
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
1753
|
+
</mj-page-body>
|
|
1754
|
+
</mj-page-layout>
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
<ng-template #content>
|
|
1696
1758
|
@if (IsLoading) {
|
|
1697
1759
|
<div class="explorer-loading">
|
|
1698
1760
|
<mj-loading text="Loading test explorer..."></mj-loading>
|
|
1699
1761
|
</div>
|
|
1700
1762
|
} @else {
|
|
1701
1763
|
<div class="explorer-layout">
|
|
1702
|
-
<!-- Left
|
|
1703
|
-
<
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
@if (!IsSidebarCollapsed) {
|
|
1712
|
-
<div class="sidebar-content">
|
|
1713
|
-
<!-- Browse Section -->
|
|
1714
|
-
<div class="sidebar-section">
|
|
1715
|
-
<div class="sidebar-section-title">Browse</div>
|
|
1716
|
-
<div
|
|
1717
|
-
class="sidebar-item"
|
|
1718
|
-
[class.active]="SelectedSidebar.Type === 'all'"
|
|
1719
|
-
(click)="SelectSidebarItem({ Type: 'all', ID: null })"
|
|
1720
|
-
>
|
|
1721
|
-
<i class="fa-solid fa-layer-group"></i>
|
|
1722
|
-
<span>All Items</span>
|
|
1723
|
-
<span class="sidebar-count">{{ TotalItemCount }}</span>
|
|
1724
|
-
</div>
|
|
1725
|
-
<div
|
|
1726
|
-
class="sidebar-item"
|
|
1727
|
-
[class.active]="SelectedSidebar.Type === 'standalone'"
|
|
1728
|
-
(click)="SelectSidebarItem({ Type: 'standalone', ID: null })"
|
|
1729
|
-
>
|
|
1730
|
-
<i class="fa-solid fa-vial"></i>
|
|
1731
|
-
<span>Standalone Tests</span>
|
|
1732
|
-
<span class="sidebar-count">{{ StandaloneTestCount }}</span>
|
|
1733
|
-
</div>
|
|
1734
|
-
</div>
|
|
1735
|
-
|
|
1736
|
-
<!-- Test Suites Section -->
|
|
1737
|
-
<div class="sidebar-section">
|
|
1738
|
-
<div class="sidebar-section-title">Test Suites</div>
|
|
1739
|
-
@for (node of FilteredSuiteTree; track node.ID) {
|
|
1740
|
-
<ng-container
|
|
1741
|
-
*ngTemplateOutlet="suiteTreeTpl; context: { node: node, depth: 0 }"
|
|
1742
|
-
></ng-container>
|
|
1743
|
-
}
|
|
1744
|
-
@if (FilteredSuiteTree.length === 0) {
|
|
1745
|
-
<div class="sidebar-empty">No suites found</div>
|
|
1746
|
-
}
|
|
1747
|
-
</div>
|
|
1748
|
-
|
|
1749
|
-
<!-- Test Types Section -->
|
|
1750
|
-
<div class="sidebar-section">
|
|
1751
|
-
<div class="sidebar-section-title">Test Types</div>
|
|
1752
|
-
@for (tt of FilteredTestTypes; track tt.ID) {
|
|
1753
|
-
<div
|
|
1754
|
-
class="sidebar-item"
|
|
1755
|
-
[class.active]="SelectedSidebar.Type === 'testType' && IsSidebarSelected(tt.ID)"
|
|
1756
|
-
(click)="SelectSidebarItem({ Type: 'testType', ID: tt.ID })"
|
|
1757
|
-
>
|
|
1758
|
-
<i class="fa-solid fa-tag"></i>
|
|
1759
|
-
<span>{{ tt.Name }}</span>
|
|
1760
|
-
<span class="sidebar-count">{{ GetTestCountForType(tt.ID) }}</span>
|
|
1761
|
-
</div>
|
|
1762
|
-
}
|
|
1763
|
-
</div>
|
|
1764
|
-
</div>
|
|
1765
|
-
}
|
|
1766
|
-
</aside>
|
|
1764
|
+
<!-- Left rail -->
|
|
1765
|
+
<mj-left-nav
|
|
1766
|
+
[Sections]="NavSections"
|
|
1767
|
+
[ActiveId]="ActiveNavId"
|
|
1768
|
+
[ExpandedIds]="ExpandedNavIds"
|
|
1769
|
+
(ItemClicked)="OnNavItemClicked($event)"
|
|
1770
|
+
(ItemToggled)="OnNavItemToggled($event)">
|
|
1771
|
+
</mj-left-nav>
|
|
1767
1772
|
|
|
1768
1773
|
<!-- Main Content -->
|
|
1769
|
-
<
|
|
1770
|
-
<!-- Toolbar -->
|
|
1771
|
-
<div class="toolbar">
|
|
1772
|
-
<div class="toolbar-left">
|
|
1773
|
-
<div class="toolbar-search-box">
|
|
1774
|
-
<i class="fa-solid fa-search"></i>
|
|
1775
|
-
<input
|
|
1776
|
-
type="text"
|
|
1777
|
-
placeholder="Search tests and suites..."
|
|
1778
|
-
[value]="SearchTerm"
|
|
1779
|
-
(input)="OnSearchInput($event)"
|
|
1780
|
-
/>
|
|
1781
|
-
@if (SearchTerm) {
|
|
1782
|
-
<button class="clear-search" (click)="ClearSearch()">
|
|
1783
|
-
<i class="fa-solid fa-times"></i>
|
|
1784
|
-
</button>
|
|
1785
|
-
}
|
|
1786
|
-
</div>
|
|
1787
|
-
<div class="status-chips">
|
|
1788
|
-
@for (status of StatusOptions; track status) {
|
|
1789
|
-
<button
|
|
1790
|
-
class="chip"
|
|
1791
|
-
[class.active]="IsStatusActive(status)"
|
|
1792
|
-
[attr.data-status]="status.toLowerCase()"
|
|
1793
|
-
(click)="ToggleStatus(status)"
|
|
1794
|
-
>
|
|
1795
|
-
{{ status }}
|
|
1796
|
-
</button>
|
|
1797
|
-
}
|
|
1798
|
-
</div>
|
|
1799
|
-
</div>
|
|
1800
|
-
<div class="toolbar-right">
|
|
1801
|
-
<span class="result-count">{{ FilteredResultCount }} results</span>
|
|
1802
|
-
<div class="view-toggle">
|
|
1803
|
-
<button
|
|
1804
|
-
class="view-btn"
|
|
1805
|
-
[class.active]="ViewMode === 'card'"
|
|
1806
|
-
(click)="SetViewMode('card')"
|
|
1807
|
-
title="Card View"
|
|
1808
|
-
>
|
|
1809
|
-
<i class="fa-solid fa-grip"></i>
|
|
1810
|
-
</button>
|
|
1811
|
-
<button
|
|
1812
|
-
class="view-btn"
|
|
1813
|
-
[class.active]="ViewMode === 'list'"
|
|
1814
|
-
(click)="SetViewMode('list')"
|
|
1815
|
-
title="List View"
|
|
1816
|
-
>
|
|
1817
|
-
<i class="fa-solid fa-list"></i>
|
|
1818
|
-
</button>
|
|
1819
|
-
</div>
|
|
1820
|
-
<button class="btn btn-secondary" (click)="OnNewSuite()">
|
|
1821
|
-
<i class="fa-solid fa-folder-plus"></i>
|
|
1822
|
-
New Suite
|
|
1823
|
-
</button>
|
|
1824
|
-
<button class="btn btn-primary" (click)="OnNewTest()">
|
|
1825
|
-
<i class="fa-solid fa-plus"></i>
|
|
1826
|
-
New Test
|
|
1827
|
-
</button>
|
|
1828
|
-
</div>
|
|
1829
|
-
</div>
|
|
1830
|
-
|
|
1831
|
-
<!-- Toggle Bar -->
|
|
1832
|
-
<div class="toggle-bar">
|
|
1833
|
-
<div class="toggle-group">
|
|
1834
|
-
<button
|
|
1835
|
-
class="toggle-btn"
|
|
1836
|
-
[class.active]="DisplayMode === 'all'"
|
|
1837
|
-
(click)="SetDisplayMode('all')"
|
|
1838
|
-
>All</button>
|
|
1839
|
-
<button
|
|
1840
|
-
class="toggle-btn"
|
|
1841
|
-
[class.active]="DisplayMode === 'suites'"
|
|
1842
|
-
(click)="SetDisplayMode('suites')"
|
|
1843
|
-
>Suites Only</button>
|
|
1844
|
-
<button
|
|
1845
|
-
class="toggle-btn"
|
|
1846
|
-
[class.active]="DisplayMode === 'tests'"
|
|
1847
|
-
(click)="SetDisplayMode('tests')"
|
|
1848
|
-
>Tests Only</button>
|
|
1849
|
-
</div>
|
|
1850
|
-
<div class="sort-indicator">
|
|
1851
|
-
<button class="sort-btn" (click)="ToggleSortDirection()">
|
|
1852
|
-
<i class="fa-solid fa-arrow-down-short-wide"></i>
|
|
1853
|
-
{{ SortFieldLabel }}
|
|
1854
|
-
<i class="fa-solid" [class.fa-arrow-up]="SortDirection === 'asc'" [class.fa-arrow-down]="SortDirection === 'desc'"></i>
|
|
1855
|
-
</button>
|
|
1856
|
-
</div>
|
|
1857
|
-
</div>
|
|
1858
|
-
|
|
1774
|
+
<mj-left-nav-content>
|
|
1859
1775
|
<!-- Content Area -->
|
|
1860
1776
|
<div class="content-area">
|
|
1861
1777
|
<!-- Suites Section -->
|
|
@@ -2046,36 +1962,10 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
2046
1962
|
</div>
|
|
2047
1963
|
}
|
|
2048
1964
|
</div>
|
|
2049
|
-
</
|
|
1965
|
+
</mj-left-nav-content>
|
|
2050
1966
|
</div>
|
|
2051
1967
|
}
|
|
2052
1968
|
|
|
2053
|
-
<!-- Template for recursive suite tree rendering -->
|
|
2054
|
-
<ng-template #suiteTreeTpl let-node="node" let-depth="depth">
|
|
2055
|
-
<div
|
|
2056
|
-
class="sidebar-item suite-tree-item"
|
|
2057
|
-
[style.paddingLeft.px]="16 + depth * 14"
|
|
2058
|
-
[class.active]="SelectedSidebar.Type === 'suite' && IsSidebarSelected(node.ID)"
|
|
2059
|
-
(click)="SelectSidebarItem({ Type: 'suite', ID: node.ID })"
|
|
2060
|
-
>
|
|
2061
|
-
@if (node.Children.length > 0) {
|
|
2062
|
-
<button class="tree-toggle" (click)="ToggleSuiteExpand(node, $event)">
|
|
2063
|
-
<i class="fa-solid" [class.fa-chevron-right]="!node.Expanded" [class.fa-chevron-down]="node.Expanded"></i>
|
|
2064
|
-
</button>
|
|
2065
|
-
}
|
|
2066
|
-
<i class="fa-solid fa-folder"></i>
|
|
2067
|
-
<span class="tree-name">{{ node.Name }}</span>
|
|
2068
|
-
<span class="sidebar-count">{{ node.TestCount }}</span>
|
|
2069
|
-
</div>
|
|
2070
|
-
@if (node.Expanded && node.Children.length > 0) {
|
|
2071
|
-
@for (child of node.Children; track child.ID) {
|
|
2072
|
-
<ng-container
|
|
2073
|
-
*ngTemplateOutlet="suiteTreeTpl; context: { node: child, depth: depth + 1 }"
|
|
2074
|
-
></ng-container>
|
|
2075
|
-
}
|
|
2076
|
-
}
|
|
2077
|
-
</ng-template>
|
|
2078
|
-
|
|
2079
1969
|
<!-- Slideout Backdrop -->
|
|
2080
1970
|
@if (SlideoutOpen) {
|
|
2081
1971
|
<div class="slideout-backdrop" (click)="CloseSlideout()"></div>
|
|
@@ -2260,7 +2150,10 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
2260
2150
|
</app-test-run-dialog>
|
|
2261
2151
|
</mj-slide-panel>
|
|
2262
2152
|
}
|
|
2263
|
-
`, styles: ["\n /* ==========================================\n Testing Explorer Component\n ========================================== */\n\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n /* Loading */\n .explorer-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n /* Layout */\n .explorer-layout {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n /* ==========================================\n Sidebar\n ========================================== */\n .sidebar {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed .sidebar-header h3 {\n display: none;\n }\n\n .sidebar-toggle {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item i {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item span:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active .sidebar-count {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Tree nodes */\n .suite-tree-item {\n gap: 6px;\n }\n\n .tree-toggle {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* ==========================================\n Main Content\n ========================================== */\n .main-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n /* Toolbar */\n .toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box i {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box input {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box input::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips {\n display: flex;\n gap: 6px;\n }\n\n .chip {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n /* Buttons */\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n /* Toggle Bar */\n .toggle-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator {\n display: flex;\n align-items: center;\n }\n\n .sort-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn i {\n font-size: 11px;\n }\n\n /* Content Area */\n .content-area {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section {\n margin-bottom: 32px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Card Grid */\n .card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n /* Suite Card */\n .suite-card,\n .test-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card:hover,\n .test-card:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header {\n padding: 16px 16px 12px;\n }\n\n .card-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon {\n color: var(--mj-brand-primary);\n }\n\n .test-icon {\n color: var(--mj-brand-primary);\n }\n\n .card-name {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n /* Card Stats */\n .card-stats {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good { color: var(--mj-status-success); }\n .stat-value.warn { color: var(--mj-status-warning); }\n .stat-value.bad { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"] { color: var(--mj-text-muted); }\n\n /* Suite Tests Preview */\n .card-tests-preview {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"] { background: var(--mj-text-disabled); }\n\n .preview-test-name {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good { color: var(--mj-status-success); }\n .preview-score.warn { color: var(--mj-status-warning); }\n .preview-score.bad { color: var(--mj-status-error); }\n\n .preview-bar {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg { background: var(--mj-status-success); }\n .warn-bg { background: var(--mj-status-warning); }\n .bad-bg { background: var(--mj-status-error); }\n\n .preview-status {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"] { color: var(--mj-text-disabled); }\n\n .preview-more {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Card Actions */\n .card-actions {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n /* Empty State */\n .empty-state {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state p {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n /* ==========================================\n Slideout Panel\n ========================================== */\n .slideout-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeInBackdrop 0.2s ease;\n }\n\n @keyframes fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open {\n right: 0;\n }\n\n .slideout-resize-handle {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n /* Type Toggle */\n .slideout-type-toggle {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n /* Error Banner */\n .slideout-error {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error i {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n /* Slideout Body */\n .slideout-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section {\n margin-bottom: 24px;\n }\n\n .form-section-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required {\n color: var(--mj-status-error);\n }\n\n .form-input,\n .form-textarea {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input:focus,\n .form-textarea:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input::placeholder,\n .form-textarea::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n /* Slideout Footer */\n .slideout-footer {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer .btn {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer .btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n /* Search Highlight */\n ::ng-deep mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n /* ==========================================\n Responsive\n ========================================== */\n @media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar {\n display: none;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left, .toolbar-right {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area {\n padding: 16px;\n }\n\n .card-stats {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel {\n width: 100% !important;\n }\n\n .slideout-resize-handle {\n display: none;\n }\n\n .form-row {\n grid-template-columns: 1fr;\n }\n }\n "] }]
|
|
2264
|
-
}], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.TestingDialogService }, { type: i2.TestingInstrumentationService }], null); })();
|
|
2265
|
-
(
|
|
2153
|
+
</ng-template>
|
|
2154
|
+
`, styles: ["\n /* ==========================================\n Testing Explorer Component\n ========================================== */\n\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n /* Loading */\n .explorer-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n /* Layout */\n .explorer-layout {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n /* ==========================================\n Main Content\n \u2014 left rail + content pane handled by <mj-left-nav> + <mj-left-nav-content>\n ========================================== */\n\n /* Buttons */\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n /* Content Area */\n .content-area {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section {\n margin-bottom: 32px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Card Grid */\n .card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n /* Suite Card */\n .suite-card,\n .test-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card:hover,\n .test-card:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header {\n padding: 16px 16px 12px;\n }\n\n .card-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon {\n color: var(--mj-brand-primary);\n }\n\n .test-icon {\n color: var(--mj-brand-primary);\n }\n\n .card-name {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n /* Card Stats */\n .card-stats {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good { color: var(--mj-status-success); }\n .stat-value.warn { color: var(--mj-status-warning); }\n .stat-value.bad { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"] { color: var(--mj-text-muted); }\n\n /* Suite Tests Preview */\n .card-tests-preview {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"] { background: var(--mj-text-disabled); }\n\n .preview-test-name {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good { color: var(--mj-status-success); }\n .preview-score.warn { color: var(--mj-status-warning); }\n .preview-score.bad { color: var(--mj-status-error); }\n\n .preview-bar {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg { background: var(--mj-status-success); }\n .warn-bg { background: var(--mj-status-warning); }\n .bad-bg { background: var(--mj-status-error); }\n\n .preview-status {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"] { color: var(--mj-text-disabled); }\n\n .preview-more {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Card Actions */\n .card-actions {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n /* Empty State */\n .empty-state {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state p {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n /* ==========================================\n Slideout Panel\n ========================================== */\n .slideout-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeInBackdrop 0.2s ease;\n }\n\n @keyframes fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open {\n right: 0;\n }\n\n .slideout-resize-handle {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n /* Type Toggle */\n .slideout-type-toggle {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n /* Error Banner */\n .slideout-error {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error i {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n /* Slideout Body */\n .slideout-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section {\n margin-bottom: 24px;\n }\n\n .form-section-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required {\n color: var(--mj-status-error);\n }\n\n .form-input,\n .form-textarea {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input:focus,\n .form-textarea:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input::placeholder,\n .form-textarea::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n /* Slideout Footer */\n .slideout-footer {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer .btn {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer .btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n /* Search Highlight */\n ::ng-deep mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n /* ==========================================\n Responsive\n ========================================== */\n @media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 600px) {\n .content-area {\n padding: 16px;\n }\n\n .card-stats {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel {\n width: 100% !important;\n }\n\n .slideout-resize-handle {\n display: none;\n }\n\n .form-row {\n grid-template-columns: 1fr;\n }\n }\n "] }]
|
|
2155
|
+
}], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.TestingDialogService }, { type: i2.TestingInstrumentationService }], { HideToolbar: [{
|
|
2156
|
+
type: Input
|
|
2157
|
+
}] }); })();
|
|
2158
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber: 1315 }); })();
|
|
2266
2159
|
//# sourceMappingURL=testing-explorer.component.js.map
|