@memberjunction/ng-dashboards 5.38.0 → 5.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -7
- package/dist/AI/components/agents/agent-configuration.component.js +199 -198
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
- 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 +166 -58
- package/dist/AI/components/analytics/cost-budget/cost-budget.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 +2 -1
- 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 +1 -0
- 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 +55 -36
- 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 +9 -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 +158 -117
- 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 +1 -0
- 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 +22 -8
- 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 +217 -860
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
- package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +209 -208
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +130 -128
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +17 -17
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +578 -538
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +331 -303
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +14 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/AI/services/cache-metrics.d.ts +50 -0
- package/dist/AI/services/cache-metrics.d.ts.map +1 -0
- package/dist/AI/services/cache-metrics.js +43 -0
- package/dist/AI/services/cache-metrics.js.map +1 -0
- package/dist/APIKeys/api-applications-panel.component.js +2 -2
- package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
- package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
- package/dist/APIKeys/api-keys-resource.component.js +132 -131
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +141 -141
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +15 -15
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +2 -2
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +2 -2
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +2 -2
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +72 -50
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +103 -102
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +52 -51
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +39 -38
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +92 -89
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +18 -17
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -85
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +155 -150
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +245 -243
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +18 -17
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +236 -229
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +390 -389
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +525 -566
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +135 -134
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +436 -427
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +1 -1
- package/dist/Testing/components/testing-runs.component.js +116 -115
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +6 -7
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +173 -172
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +116 -92
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +57 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +80 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +1 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +7 -1
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +12 -14
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +5 -14
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +4 -5
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +7 -5
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +57 -54
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
|
@@ -13,9 +13,8 @@ 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
15
|
import * as i5 from "@memberjunction/ng-ui-components";
|
|
16
|
-
import * as i6 from "@memberjunction/ng-
|
|
17
|
-
import * as i7 from "
|
|
18
|
-
import * as i8 from "../../shared/pipes/highlight-search.pipe";
|
|
16
|
+
import * as i6 from "@memberjunction/ng-shared-generic";
|
|
17
|
+
import * as i7 from "../../shared/pipes/highlight-search.pipe";
|
|
19
18
|
const _forTrack0 = ($index, $item) => $item.ID;
|
|
20
19
|
const _forTrack1 = ($index, $item) => $item.TestID;
|
|
21
20
|
function TestingExplorerComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -28,17 +27,7 @@ function TestingExplorerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
|
|
|
28
27
|
const content_r1 = i0.ɵɵreference(3);
|
|
29
28
|
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
30
29
|
} }
|
|
31
|
-
function
|
|
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)); });
|
|
35
|
-
i0.ɵɵelementEnd();
|
|
36
|
-
} if (rf & 2) {
|
|
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));
|
|
40
|
-
} }
|
|
41
|
-
function TestingExplorerComponent_Conditional_1_ng_container_20_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
function TestingExplorerComponent_Conditional_1_ng_container_18_Template(rf, ctx) { if (rf & 1) {
|
|
42
31
|
i0.ɵɵelementContainer(0);
|
|
43
32
|
} }
|
|
44
33
|
function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -46,232 +35,223 @@ function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1)
|
|
|
46
35
|
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 2)(2, "div", 3);
|
|
47
36
|
i0.ɵɵelement(3, "mj-stat-badge", 4);
|
|
48
37
|
i0.ɵɵelementEnd();
|
|
49
|
-
i0.ɵɵelementStart(4, "div", 5)(5, "
|
|
50
|
-
i0.ɵɵlistener("
|
|
51
|
-
i0.ɵɵ
|
|
52
|
-
i0.ɵɵ
|
|
38
|
+
i0.ɵɵelementStart(4, "div", 5)(5, "button", 6);
|
|
39
|
+
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.OnNewSuite()); });
|
|
40
|
+
i0.ɵɵelement(6, "i", 7);
|
|
41
|
+
i0.ɵɵelementStart(7, "span", 8);
|
|
42
|
+
i0.ɵɵtext(8, "New Suite");
|
|
53
43
|
i0.ɵɵelementEnd()();
|
|
54
|
-
i0.ɵɵelementStart(
|
|
55
|
-
i0.ɵɵlistener("
|
|
56
|
-
i0.ɵɵ
|
|
57
|
-
i0.ɵɵelementStart(
|
|
58
|
-
i0.ɵɵ
|
|
59
|
-
i0.ɵɵ
|
|
60
|
-
i0.ɵɵ
|
|
44
|
+
i0.ɵɵelementStart(9, "button", 9);
|
|
45
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewTest()); });
|
|
46
|
+
i0.ɵɵelement(10, "i", 10);
|
|
47
|
+
i0.ɵɵelementStart(11, "span", 8);
|
|
48
|
+
i0.ɵɵtext(12, "New Test");
|
|
49
|
+
i0.ɵɵelementEnd()()();
|
|
50
|
+
i0.ɵɵelementStart(13, "div", 11)(14, "mj-page-search", 12);
|
|
51
|
+
i0.ɵɵlistener("ValueChange", function TestingExplorerComponent_Conditional_1_Template_mj_page_search_ValueChange_14_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInputValue($event)); });
|
|
61
52
|
i0.ɵɵelementEnd();
|
|
62
|
-
i0.ɵɵelementStart(
|
|
63
|
-
i0.ɵɵlistener("
|
|
64
|
-
i0.ɵɵ
|
|
65
|
-
i0.ɵɵ
|
|
53
|
+
i0.ɵɵelementStart(15, "mj-filter-popover", 13);
|
|
54
|
+
i0.ɵɵlistener("ClearAllRequested", function TestingExplorerComponent_Conditional_1_Template_mj_filter_popover_ClearAllRequested_15_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.resetAllFilters()); });
|
|
55
|
+
i0.ɵɵelementStart(16, "mj-filter-panel", 14);
|
|
56
|
+
i0.ɵɵlistener("ValuesChange", function TestingExplorerComponent_Conditional_1_Template_mj_filter_panel_ValuesChange_16_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onFilterValuesChange($event)); })("Reset", function TestingExplorerComponent_Conditional_1_Template_mj_filter_panel_Reset_16_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.resetAllFilters()); });
|
|
66
57
|
i0.ɵɵelementEnd()();
|
|
67
|
-
i0.ɵɵelementStart(
|
|
68
|
-
i0.ɵɵlistener("
|
|
69
|
-
i0.ɵɵelementEnd();
|
|
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)); });
|
|
58
|
+
i0.ɵɵelementStart(17, "mj-view-toggle", 15);
|
|
59
|
+
i0.ɵɵlistener("KeyChange", function TestingExplorerComponent_Conditional_1_Template_mj_view_toggle_KeyChange_17_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode($event)); });
|
|
73
60
|
i0.ɵɵelementEnd()()();
|
|
74
|
-
i0.ɵɵ
|
|
75
|
-
i0.ɵɵ
|
|
76
|
-
i0.ɵɵelementEnd()();
|
|
61
|
+
i0.ɵɵtemplate(18, TestingExplorerComponent_Conditional_1_ng_container_18_Template, 1, 0, "ng-container", 1);
|
|
62
|
+
i0.ɵɵelementEnd();
|
|
77
63
|
} if (rf & 2) {
|
|
78
64
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
79
65
|
const content_r1 = i0.ɵɵreference(3);
|
|
80
66
|
i0.ɵɵadvance(3);
|
|
81
67
|
i0.ɵɵproperty("Count", ctx_r2.FilteredResultCount)("Total", ctx_r2.TotalItemCount);
|
|
82
|
-
i0.ɵɵadvance(
|
|
83
|
-
i0.ɵɵproperty("ActiveCount", ctx_r2.ActiveSortFilterCount)("ShowClearAll", ctx_r2.ActiveSortFilterCount > 0);
|
|
84
|
-
i0.ɵɵadvance();
|
|
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);
|
|
68
|
+
i0.ɵɵadvance(11);
|
|
89
69
|
i0.ɵɵproperty("Value", ctx_r2.SearchTerm);
|
|
90
70
|
i0.ɵɵadvance();
|
|
91
|
-
i0.ɵɵ
|
|
92
|
-
i0.ɵɵadvance(2);
|
|
93
|
-
i0.ɵɵproperty("Options", ctx_r2.DisplayModeOptions)("ActiveKey", ctx_r2.DisplayMode);
|
|
71
|
+
i0.ɵɵproperty("ActiveCount", ctx_r2.TotalActiveFilterCount)("ShowClearAll", ctx_r2.TotalActiveFilterCount > 0);
|
|
94
72
|
i0.ɵɵadvance();
|
|
95
|
-
i0.ɵɵproperty("
|
|
73
|
+
i0.ɵɵproperty("Fields", ctx_r2.filterFields)("Values", ctx_r2.filterValues);
|
|
74
|
+
i0.ɵɵadvance();
|
|
75
|
+
i0.ɵɵproperty("Options", ctx_r2.HeaderViewOptions)("ActiveKey", ctx_r2.ViewMode);
|
|
96
76
|
i0.ɵɵadvance();
|
|
97
77
|
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
98
78
|
} }
|
|
99
|
-
function
|
|
100
|
-
i0.ɵɵelementStart(0, "div",
|
|
101
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
79
|
+
function TestingExplorerComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
80
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
81
|
+
i0.ɵɵelement(1, "mj-loading", 23);
|
|
102
82
|
i0.ɵɵelementEnd();
|
|
103
83
|
} }
|
|
104
|
-
function
|
|
105
|
-
i0.ɵɵelement(0, "span",
|
|
84
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
+
i0.ɵɵelement(0, "span", 50);
|
|
106
86
|
i0.ɵɵtext(1);
|
|
107
87
|
} if (rf & 2) {
|
|
108
|
-
const
|
|
88
|
+
const suite_r7 = i0.ɵɵnextContext().$implicit;
|
|
109
89
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
110
90
|
i0.ɵɵadvance();
|
|
111
|
-
i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(
|
|
91
|
+
i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(suite_r7.LastRunDate), " ");
|
|
112
92
|
} }
|
|
113
|
-
function
|
|
114
|
-
i0.ɵɵelement(0, "p",
|
|
93
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelement(0, "p", 38);
|
|
115
95
|
i0.ɵɵpipe(1, "highlightSearch");
|
|
116
96
|
} if (rf & 2) {
|
|
117
|
-
const
|
|
97
|
+
const suite_r7 = i0.ɵɵnextContext().$implicit;
|
|
118
98
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
119
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1,
|
|
99
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, suite_r7.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
120
100
|
} }
|
|
121
|
-
function
|
|
122
|
-
i0.ɵɵelementStart(0, "div",
|
|
123
|
-
i0.ɵɵelement(1, "span",
|
|
124
|
-
i0.ɵɵelementStart(2, "span",
|
|
101
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
+
i0.ɵɵelementStart(0, "div", 52);
|
|
103
|
+
i0.ɵɵelement(1, "span", 53);
|
|
104
|
+
i0.ɵɵelementStart(2, "span", 54);
|
|
125
105
|
i0.ɵɵtext(3);
|
|
126
106
|
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵelementStart(4, "span",
|
|
107
|
+
i0.ɵɵelementStart(4, "span", 55);
|
|
128
108
|
i0.ɵɵtext(5);
|
|
129
109
|
i0.ɵɵelementEnd();
|
|
130
|
-
i0.ɵɵelementStart(6, "span",
|
|
131
|
-
i0.ɵɵelement(7, "span",
|
|
110
|
+
i0.ɵɵelementStart(6, "span", 56);
|
|
111
|
+
i0.ɵɵelement(7, "span", 57);
|
|
132
112
|
i0.ɵɵelementEnd();
|
|
133
|
-
i0.ɵɵelementStart(8, "span",
|
|
113
|
+
i0.ɵɵelementStart(8, "span", 58);
|
|
134
114
|
i0.ɵɵtext(9);
|
|
135
115
|
i0.ɵɵelementEnd()();
|
|
136
116
|
} if (rf & 2) {
|
|
137
|
-
const
|
|
117
|
+
const t_r8 = i0.ɵɵnextContext().$implicit;
|
|
138
118
|
const ctx_r2 = i0.ɵɵnextContext(7);
|
|
139
119
|
i0.ɵɵadvance();
|
|
140
|
-
i0.ɵɵattribute("data-status",
|
|
120
|
+
i0.ɵɵattribute("data-status", t_r8.LastStatus.toLowerCase());
|
|
141
121
|
i0.ɵɵadvance(2);
|
|
142
|
-
i0.ɵɵtextInterpolate(
|
|
122
|
+
i0.ɵɵtextInterpolate(t_r8.TestName);
|
|
143
123
|
i0.ɵɵadvance();
|
|
144
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
124
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r8.LastScore));
|
|
145
125
|
i0.ɵɵadvance();
|
|
146
|
-
i0.ɵɵtextInterpolate1("", (
|
|
126
|
+
i0.ɵɵtextInterpolate1("", (t_r8.LastScore * 100).toFixed(0), "%");
|
|
147
127
|
i0.ɵɵadvance(2);
|
|
148
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
149
|
-
i0.ɵɵstyleProp("width",
|
|
128
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(t_r8.LastScore) + "-bg");
|
|
129
|
+
i0.ɵɵstyleProp("width", t_r8.LastScore * 100, "%");
|
|
150
130
|
i0.ɵɵadvance();
|
|
151
|
-
i0.ɵɵattribute("data-status",
|
|
131
|
+
i0.ɵɵattribute("data-status", t_r8.LastStatus.toLowerCase());
|
|
152
132
|
i0.ɵɵadvance();
|
|
153
|
-
i0.ɵɵtextInterpolate(
|
|
133
|
+
i0.ɵɵtextInterpolate(t_r8.LastStatus);
|
|
154
134
|
} }
|
|
155
|
-
function
|
|
156
|
-
i0.ɵɵconditionalCreate(0,
|
|
135
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
136
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template, 10, 11, "div", 52);
|
|
157
137
|
} if (rf & 2) {
|
|
158
|
-
const ɵ$
|
|
159
|
-
i0.ɵɵconditional(ɵ$
|
|
138
|
+
const ɵ$index_138_r9 = ctx.$index;
|
|
139
|
+
i0.ɵɵconditional(ɵ$index_138_r9 < 4 ? 0 : -1);
|
|
160
140
|
} }
|
|
161
|
-
function
|
|
162
|
-
i0.ɵɵelementStart(0, "div",
|
|
141
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
142
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
163
143
|
i0.ɵɵtext(1);
|
|
164
144
|
i0.ɵɵelementEnd();
|
|
165
145
|
} if (rf & 2) {
|
|
166
|
-
const
|
|
146
|
+
const suite_r7 = i0.ɵɵnextContext(2).$implicit;
|
|
167
147
|
i0.ɵɵadvance();
|
|
168
|
-
i0.ɵɵtextInterpolate1("+",
|
|
148
|
+
i0.ɵɵtextInterpolate1("+", suite_r7.TotalTestsInSuite - 4, " more tests");
|
|
169
149
|
} }
|
|
170
|
-
function
|
|
171
|
-
i0.ɵɵelementStart(0, "div",
|
|
172
|
-
i0.ɵɵrepeaterCreate(1,
|
|
173
|
-
i0.ɵɵconditionalCreate(3,
|
|
150
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
151
|
+
i0.ɵɵelementStart(0, "div", 43);
|
|
152
|
+
i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_For_2_Template, 1, 1, null, null, _forTrack1);
|
|
153
|
+
i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_Conditional_3_Template, 2, 1, "div", 51);
|
|
174
154
|
i0.ɵɵelementEnd();
|
|
175
155
|
} if (rf & 2) {
|
|
176
|
-
const
|
|
156
|
+
const suite_r7 = i0.ɵɵnextContext().$implicit;
|
|
177
157
|
i0.ɵɵadvance();
|
|
178
|
-
i0.ɵɵrepeater(
|
|
158
|
+
i0.ɵɵrepeater(suite_r7.Tests);
|
|
179
159
|
i0.ɵɵadvance(2);
|
|
180
|
-
i0.ɵɵconditional(
|
|
160
|
+
i0.ɵɵconditional(suite_r7.TotalTestsInSuite > 4 ? 3 : -1);
|
|
181
161
|
} }
|
|
182
|
-
function
|
|
183
|
-
const
|
|
184
|
-
i0.ɵɵelementStart(0, "div",
|
|
185
|
-
i0.ɵɵelement(3, "i",
|
|
162
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
163
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
164
|
+
i0.ɵɵelementStart(0, "div", 31)(1, "div", 32)(2, "div", 33);
|
|
165
|
+
i0.ɵɵelement(3, "i", 34)(4, "span", 35);
|
|
186
166
|
i0.ɵɵpipe(5, "highlightSearch");
|
|
187
|
-
i0.ɵɵelementStart(6, "span",
|
|
167
|
+
i0.ɵɵelementStart(6, "span", 36);
|
|
188
168
|
i0.ɵɵtext(7);
|
|
189
169
|
i0.ɵɵelementEnd()();
|
|
190
|
-
i0.ɵɵelementStart(8, "div",
|
|
170
|
+
i0.ɵɵelementStart(8, "div", 37);
|
|
191
171
|
i0.ɵɵtext(9);
|
|
192
|
-
i0.ɵɵconditionalCreate(10,
|
|
172
|
+
i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_10_Template, 2, 1);
|
|
193
173
|
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵconditionalCreate(11,
|
|
174
|
+
i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 38);
|
|
195
175
|
i0.ɵɵelementEnd();
|
|
196
|
-
i0.ɵɵelementStart(12, "div",
|
|
176
|
+
i0.ɵɵelementStart(12, "div", 39)(13, "div", 40)(14, "span", 41);
|
|
197
177
|
i0.ɵɵtext(15, "Pass Rate");
|
|
198
178
|
i0.ɵɵelementEnd();
|
|
199
|
-
i0.ɵɵelementStart(16, "span",
|
|
179
|
+
i0.ɵɵelementStart(16, "span", 42);
|
|
200
180
|
i0.ɵɵtext(17);
|
|
201
181
|
i0.ɵɵelementEnd()();
|
|
202
|
-
i0.ɵɵelementStart(18, "div",
|
|
182
|
+
i0.ɵɵelementStart(18, "div", 40)(19, "span", 41);
|
|
203
183
|
i0.ɵɵtext(20, "Tests");
|
|
204
184
|
i0.ɵɵelementEnd();
|
|
205
|
-
i0.ɵɵelementStart(21, "span",
|
|
185
|
+
i0.ɵɵelementStart(21, "span", 42);
|
|
206
186
|
i0.ɵɵtext(22);
|
|
207
187
|
i0.ɵɵelementEnd()();
|
|
208
|
-
i0.ɵɵelementStart(23, "div",
|
|
188
|
+
i0.ɵɵelementStart(23, "div", 40)(24, "span", 41);
|
|
209
189
|
i0.ɵɵtext(25, "Avg Score");
|
|
210
190
|
i0.ɵɵelementEnd();
|
|
211
|
-
i0.ɵɵelementStart(26, "span",
|
|
191
|
+
i0.ɵɵelementStart(26, "span", 42);
|
|
212
192
|
i0.ɵɵtext(27);
|
|
213
193
|
i0.ɵɵelementEnd()();
|
|
214
|
-
i0.ɵɵelementStart(28, "div",
|
|
194
|
+
i0.ɵɵelementStart(28, "div", 40)(29, "span", 41);
|
|
215
195
|
i0.ɵɵtext(30, "Avg Duration");
|
|
216
196
|
i0.ɵɵelementEnd();
|
|
217
|
-
i0.ɵɵelementStart(31, "span",
|
|
197
|
+
i0.ɵɵelementStart(31, "span", 42);
|
|
218
198
|
i0.ɵɵtext(32);
|
|
219
199
|
i0.ɵɵelementEnd()()();
|
|
220
|
-
i0.ɵɵconditionalCreate(33,
|
|
221
|
-
i0.ɵɵelementStart(34, "div",
|
|
222
|
-
i0.ɵɵlistener("click", function
|
|
223
|
-
i0.ɵɵelement(36, "i",
|
|
200
|
+
i0.ɵɵconditionalCreate(33, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Conditional_33_Template, 4, 1, "div", 43);
|
|
201
|
+
i0.ɵɵelementStart(34, "div", 44)(35, "button", 45);
|
|
202
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Template_button_click_35_listener() { const suite_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.RunSuite(suite_r7.ID)); });
|
|
203
|
+
i0.ɵɵelement(36, "i", 46);
|
|
224
204
|
i0.ɵɵtext(37, " Run Suite ");
|
|
225
205
|
i0.ɵɵelementEnd();
|
|
226
|
-
i0.ɵɵelementStart(38, "button",
|
|
227
|
-
i0.ɵɵlistener("click", function
|
|
228
|
-
i0.ɵɵelement(39, "i",
|
|
206
|
+
i0.ɵɵelementStart(38, "button", 47);
|
|
207
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Template_button_click_38_listener() { const suite_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.ViewSuiteResults(suite_r7.ID)); });
|
|
208
|
+
i0.ɵɵelement(39, "i", 48);
|
|
229
209
|
i0.ɵɵtext(40, " Results ");
|
|
230
210
|
i0.ɵɵelementEnd();
|
|
231
|
-
i0.ɵɵelementStart(41, "button",
|
|
232
|
-
i0.ɵɵlistener("click", function
|
|
233
|
-
i0.ɵɵelement(42, "i",
|
|
211
|
+
i0.ɵɵelementStart(41, "button", 47);
|
|
212
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Template_button_click_41_listener() { const suite_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Test Suites", suite_r7.ID)); });
|
|
213
|
+
i0.ɵɵelement(42, "i", 49);
|
|
234
214
|
i0.ɵɵtext(43, " Edit ");
|
|
235
215
|
i0.ɵɵelementEnd()()();
|
|
236
216
|
} if (rf & 2) {
|
|
237
|
-
const
|
|
217
|
+
const suite_r7 = ctx.$implicit;
|
|
238
218
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
239
219
|
i0.ɵɵadvance(4);
|
|
240
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 15,
|
|
220
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 15, suite_r7.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
241
221
|
i0.ɵɵadvance(2);
|
|
242
|
-
i0.ɵɵattribute("data-status",
|
|
222
|
+
i0.ɵɵattribute("data-status", suite_r7.Status.toLowerCase());
|
|
243
223
|
i0.ɵɵadvance();
|
|
244
|
-
i0.ɵɵtextInterpolate(
|
|
224
|
+
i0.ɵɵtextInterpolate(suite_r7.Status);
|
|
245
225
|
i0.ɵɵadvance(2);
|
|
246
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
226
|
+
i0.ɵɵtextInterpolate1(" ", suite_r7.TestCount, " tests ");
|
|
247
227
|
i0.ɵɵadvance();
|
|
248
|
-
i0.ɵɵconditional(
|
|
228
|
+
i0.ɵɵconditional(suite_r7.LastRunDate ? 10 : -1);
|
|
249
229
|
i0.ɵɵadvance();
|
|
250
|
-
i0.ɵɵconditional(
|
|
230
|
+
i0.ɵɵconditional(suite_r7.Description ? 11 : -1);
|
|
251
231
|
i0.ɵɵadvance(5);
|
|
252
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
232
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r7.PassRate / 100));
|
|
253
233
|
i0.ɵɵadvance();
|
|
254
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(
|
|
234
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatPercent(suite_r7.PassRate));
|
|
255
235
|
i0.ɵɵadvance(5);
|
|
256
|
-
i0.ɵɵtextInterpolate(
|
|
236
|
+
i0.ɵɵtextInterpolate(suite_r7.TestCount);
|
|
257
237
|
i0.ɵɵadvance(4);
|
|
258
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
238
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(suite_r7.AvgScore));
|
|
259
239
|
i0.ɵɵadvance();
|
|
260
|
-
i0.ɵɵtextInterpolate1("", (
|
|
240
|
+
i0.ɵɵtextInterpolate1("", (suite_r7.AvgScore * 100).toFixed(0), "%");
|
|
261
241
|
i0.ɵɵadvance(5);
|
|
262
|
-
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(
|
|
242
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatDuration(suite_r7.AvgDuration));
|
|
263
243
|
i0.ɵɵadvance();
|
|
264
|
-
i0.ɵɵconditional(
|
|
244
|
+
i0.ɵɵconditional(suite_r7.Tests.length > 0 ? 33 : -1);
|
|
265
245
|
} }
|
|
266
|
-
function
|
|
267
|
-
i0.ɵɵelementStart(0, "div",
|
|
268
|
-
i0.ɵɵelement(2, "i",
|
|
246
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
247
|
+
i0.ɵɵelementStart(0, "div", 26)(1, "h3", 27);
|
|
248
|
+
i0.ɵɵelement(2, "i", 28);
|
|
269
249
|
i0.ɵɵtext(3, " Test Suites ");
|
|
270
|
-
i0.ɵɵelementStart(4, "span",
|
|
250
|
+
i0.ɵɵelementStart(4, "span", 29);
|
|
271
251
|
i0.ɵɵtext(5);
|
|
272
252
|
i0.ɵɵelementEnd()();
|
|
273
|
-
i0.ɵɵelementStart(6, "div",
|
|
274
|
-
i0.ɵɵrepeaterCreate(7,
|
|
253
|
+
i0.ɵɵelementStart(6, "div", 30);
|
|
254
|
+
i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_For_8_Template, 44, 18, "div", 31, _forTrack0);
|
|
275
255
|
i0.ɵɵelementEnd()();
|
|
276
256
|
} if (rf & 2) {
|
|
277
257
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
@@ -280,207 +260,207 @@ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_4_Cond
|
|
|
280
260
|
i0.ɵɵadvance(2);
|
|
281
261
|
i0.ɵɵrepeater(ctx_r2.FilteredSuites);
|
|
282
262
|
} }
|
|
283
|
-
function
|
|
284
|
-
i0.ɵɵconditionalCreate(0,
|
|
263
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Conditional_0_Template, 9, 1, "div", 26);
|
|
285
265
|
} if (rf & 2) {
|
|
286
266
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
287
267
|
i0.ɵɵconditional(ctx_r2.FilteredSuites.length > 0 ? 0 : -1);
|
|
288
268
|
} }
|
|
289
|
-
function
|
|
290
|
-
i0.ɵɵelement(0, "span",
|
|
269
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
270
|
+
i0.ɵɵelement(0, "span", 50);
|
|
291
271
|
i0.ɵɵtext(1);
|
|
292
272
|
} if (rf & 2) {
|
|
293
|
-
const
|
|
273
|
+
const test_r11 = i0.ɵɵnextContext().$implicit;
|
|
294
274
|
i0.ɵɵadvance();
|
|
295
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
275
|
+
i0.ɵɵtextInterpolate1(" ", test_r11.SuiteName, " ");
|
|
296
276
|
} }
|
|
297
|
-
function
|
|
298
|
-
i0.ɵɵelement(0, "p",
|
|
277
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
278
|
+
i0.ɵɵelement(0, "p", 38);
|
|
299
279
|
i0.ɵɵpipe(1, "highlightSearch");
|
|
300
280
|
} if (rf & 2) {
|
|
301
|
-
const
|
|
281
|
+
const test_r11 = i0.ɵɵnextContext().$implicit;
|
|
302
282
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
303
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1,
|
|
283
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, test_r11.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
304
284
|
} }
|
|
305
|
-
function
|
|
306
|
-
i0.ɵɵelementStart(0, "span",
|
|
307
|
-
i0.ɵɵelement(1, "i",
|
|
285
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
286
|
+
i0.ɵɵelementStart(0, "span", 63);
|
|
287
|
+
i0.ɵɵelement(1, "i", 68);
|
|
308
288
|
i0.ɵɵtext(2);
|
|
309
289
|
i0.ɵɵelementEnd();
|
|
310
290
|
} if (rf & 2) {
|
|
311
|
-
const
|
|
291
|
+
const test_r11 = i0.ɵɵnextContext().$implicit;
|
|
312
292
|
i0.ɵɵadvance(2);
|
|
313
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
293
|
+
i0.ɵɵtextInterpolate1(" ", test_r11.TypeName);
|
|
314
294
|
} }
|
|
315
|
-
function
|
|
316
|
-
i0.ɵɵelementStart(0, "span",
|
|
317
|
-
i0.ɵɵelement(1, "i",
|
|
295
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
296
|
+
i0.ɵɵelementStart(0, "span", 63);
|
|
297
|
+
i0.ɵɵelement(1, "i", 69);
|
|
318
298
|
i0.ɵɵtext(2);
|
|
319
299
|
i0.ɵɵelementEnd();
|
|
320
300
|
} if (rf & 2) {
|
|
321
|
-
const
|
|
301
|
+
const test_r11 = i0.ɵɵnextContext().$implicit;
|
|
322
302
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
323
303
|
i0.ɵɵadvance(2);
|
|
324
|
-
i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(
|
|
304
|
+
i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(test_r11.EstDuration));
|
|
325
305
|
} }
|
|
326
|
-
function
|
|
327
|
-
i0.ɵɵelementStart(0, "span",
|
|
328
|
-
i0.ɵɵelement(1, "i",
|
|
306
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
307
|
+
i0.ɵɵelementStart(0, "span", 63);
|
|
308
|
+
i0.ɵɵelement(1, "i", 70);
|
|
329
309
|
i0.ɵɵtext(2);
|
|
330
310
|
i0.ɵɵelementEnd();
|
|
331
311
|
} if (rf & 2) {
|
|
332
|
-
const
|
|
312
|
+
const test_r11 = i0.ɵɵnextContext().$implicit;
|
|
333
313
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
334
314
|
i0.ɵɵadvance(2);
|
|
335
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(
|
|
315
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(test_r11.EstCost));
|
|
336
316
|
} }
|
|
337
|
-
function
|
|
338
|
-
i0.ɵɵelementStart(0, "span",
|
|
317
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
318
|
+
i0.ɵɵelementStart(0, "span", 72);
|
|
339
319
|
i0.ɵɵtext(1);
|
|
340
320
|
i0.ɵɵelementEnd();
|
|
341
321
|
} if (rf & 2) {
|
|
342
|
-
const
|
|
322
|
+
const tag_r12 = i0.ɵɵnextContext().$implicit;
|
|
343
323
|
i0.ɵɵadvance();
|
|
344
|
-
i0.ɵɵtextInterpolate(
|
|
324
|
+
i0.ɵɵtextInterpolate(tag_r12);
|
|
345
325
|
} }
|
|
346
|
-
function
|
|
347
|
-
i0.ɵɵconditionalCreate(0,
|
|
326
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
327
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template, 2, 1, "span", 72);
|
|
348
328
|
} if (rf & 2) {
|
|
349
|
-
const ɵ$
|
|
350
|
-
i0.ɵɵconditional(ɵ$
|
|
329
|
+
const ɵ$index_246_r13 = ctx.$index;
|
|
330
|
+
i0.ɵɵconditional(ɵ$index_246_r13 < 4 ? 0 : -1);
|
|
351
331
|
} }
|
|
352
|
-
function
|
|
353
|
-
i0.ɵɵelementStart(0, "span",
|
|
332
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
333
|
+
i0.ɵɵelementStart(0, "span", 71);
|
|
354
334
|
i0.ɵɵtext(1);
|
|
355
335
|
i0.ɵɵelementEnd();
|
|
356
336
|
} if (rf & 2) {
|
|
357
|
-
const
|
|
337
|
+
const test_r11 = i0.ɵɵnextContext(2).$implicit;
|
|
358
338
|
i0.ɵɵadvance();
|
|
359
|
-
i0.ɵɵtextInterpolate1("+",
|
|
339
|
+
i0.ɵɵtextInterpolate1("+", test_r11.Tags.length - 4);
|
|
360
340
|
} }
|
|
361
|
-
function
|
|
362
|
-
i0.ɵɵelementStart(0, "div",
|
|
363
|
-
i0.ɵɵrepeaterCreate(1,
|
|
364
|
-
i0.ɵɵconditionalCreate(3,
|
|
341
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
342
|
+
i0.ɵɵelementStart(0, "div", 65);
|
|
343
|
+
i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
|
|
344
|
+
i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_Conditional_3_Template, 2, 1, "span", 71);
|
|
365
345
|
i0.ɵɵelementEnd();
|
|
366
346
|
} if (rf & 2) {
|
|
367
|
-
const
|
|
347
|
+
const test_r11 = i0.ɵɵnextContext().$implicit;
|
|
368
348
|
i0.ɵɵadvance();
|
|
369
|
-
i0.ɵɵrepeater(
|
|
349
|
+
i0.ɵɵrepeater(test_r11.Tags);
|
|
370
350
|
i0.ɵɵadvance(2);
|
|
371
|
-
i0.ɵɵconditional(
|
|
351
|
+
i0.ɵɵconditional(test_r11.Tags.length > 4 ? 3 : -1);
|
|
372
352
|
} }
|
|
373
|
-
function
|
|
374
|
-
const
|
|
375
|
-
i0.ɵɵelementStart(0, "div",
|
|
376
|
-
i0.ɵɵelement(3, "i",
|
|
353
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
354
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
355
|
+
i0.ɵɵelementStart(0, "div", 60)(1, "div", 32)(2, "div", 33);
|
|
356
|
+
i0.ɵɵelement(3, "i", 61)(4, "span", 35);
|
|
377
357
|
i0.ɵɵpipe(5, "highlightSearch");
|
|
378
|
-
i0.ɵɵelementStart(6, "span",
|
|
358
|
+
i0.ɵɵelementStart(6, "span", 36);
|
|
379
359
|
i0.ɵɵtext(7);
|
|
380
360
|
i0.ɵɵelementEnd()();
|
|
381
|
-
i0.ɵɵelementStart(8, "div",
|
|
361
|
+
i0.ɵɵelementStart(8, "div", 37);
|
|
382
362
|
i0.ɵɵtext(9);
|
|
383
|
-
i0.ɵɵconditionalCreate(10,
|
|
363
|
+
i0.ɵɵconditionalCreate(10, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_10_Template, 2, 1);
|
|
384
364
|
i0.ɵɵelementEnd();
|
|
385
|
-
i0.ɵɵconditionalCreate(11,
|
|
386
|
-
i0.ɵɵelementStart(12, "div",
|
|
387
|
-
i0.ɵɵconditionalCreate(13,
|
|
388
|
-
i0.ɵɵconditionalCreate(14,
|
|
389
|
-
i0.ɵɵconditionalCreate(15,
|
|
390
|
-
i0.ɵɵelementStart(16, "span",
|
|
391
|
-
i0.ɵɵelement(17, "i",
|
|
365
|
+
i0.ɵɵconditionalCreate(11, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 38);
|
|
366
|
+
i0.ɵɵelementStart(12, "div", 62);
|
|
367
|
+
i0.ɵɵconditionalCreate(13, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_13_Template, 3, 1, "span", 63);
|
|
368
|
+
i0.ɵɵconditionalCreate(14, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_14_Template, 3, 1, "span", 63);
|
|
369
|
+
i0.ɵɵconditionalCreate(15, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_15_Template, 3, 1, "span", 63);
|
|
370
|
+
i0.ɵɵelementStart(16, "span", 63);
|
|
371
|
+
i0.ɵɵelement(17, "i", 64);
|
|
392
372
|
i0.ɵɵtext(18);
|
|
393
373
|
i0.ɵɵelementEnd()();
|
|
394
|
-
i0.ɵɵconditionalCreate(19,
|
|
374
|
+
i0.ɵɵconditionalCreate(19, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Conditional_19_Template, 4, 1, "div", 65);
|
|
395
375
|
i0.ɵɵelementEnd();
|
|
396
|
-
i0.ɵɵelementStart(20, "div",
|
|
376
|
+
i0.ɵɵelementStart(20, "div", 39)(21, "div", 40)(22, "span", 41);
|
|
397
377
|
i0.ɵɵtext(23, "Last Status");
|
|
398
378
|
i0.ɵɵelementEnd();
|
|
399
|
-
i0.ɵɵelementStart(24, "span",
|
|
379
|
+
i0.ɵɵelementStart(24, "span", 66);
|
|
400
380
|
i0.ɵɵtext(25);
|
|
401
381
|
i0.ɵɵelementEnd()();
|
|
402
|
-
i0.ɵɵelementStart(26, "div",
|
|
382
|
+
i0.ɵɵelementStart(26, "div", 40)(27, "span", 41);
|
|
403
383
|
i0.ɵɵtext(28, "Score");
|
|
404
384
|
i0.ɵɵelementEnd();
|
|
405
|
-
i0.ɵɵelementStart(29, "span",
|
|
385
|
+
i0.ɵɵelementStart(29, "span", 42);
|
|
406
386
|
i0.ɵɵtext(30);
|
|
407
387
|
i0.ɵɵelementEnd()();
|
|
408
|
-
i0.ɵɵelementStart(31, "div",
|
|
388
|
+
i0.ɵɵelementStart(31, "div", 40)(32, "span", 41);
|
|
409
389
|
i0.ɵɵtext(33, "Total Runs");
|
|
410
390
|
i0.ɵɵelementEnd();
|
|
411
|
-
i0.ɵɵelementStart(34, "span",
|
|
391
|
+
i0.ɵɵelementStart(34, "span", 42);
|
|
412
392
|
i0.ɵɵtext(35);
|
|
413
393
|
i0.ɵɵelementEnd()();
|
|
414
|
-
i0.ɵɵelementStart(36, "div",
|
|
394
|
+
i0.ɵɵelementStart(36, "div", 40)(37, "span", 41);
|
|
415
395
|
i0.ɵɵtext(38, "Pass Rate");
|
|
416
396
|
i0.ɵɵelementEnd();
|
|
417
|
-
i0.ɵɵelementStart(39, "span",
|
|
397
|
+
i0.ɵɵelementStart(39, "span", 42);
|
|
418
398
|
i0.ɵɵtext(40);
|
|
419
399
|
i0.ɵɵelementEnd()()();
|
|
420
|
-
i0.ɵɵelementStart(41, "div",
|
|
421
|
-
i0.ɵɵlistener("click", function
|
|
422
|
-
i0.ɵɵelement(43, "i",
|
|
400
|
+
i0.ɵɵelementStart(41, "div", 44)(42, "button", 45);
|
|
401
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Template_button_click_42_listener() { const test_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.RunTest(test_r11.ID)); });
|
|
402
|
+
i0.ɵɵelement(43, "i", 46);
|
|
423
403
|
i0.ɵɵtext(44, " Run ");
|
|
424
404
|
i0.ɵɵelementEnd();
|
|
425
|
-
i0.ɵɵelementStart(45, "button",
|
|
426
|
-
i0.ɵɵlistener("click", function
|
|
427
|
-
i0.ɵɵelement(46, "i",
|
|
405
|
+
i0.ɵɵelementStart(45, "button", 47);
|
|
406
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Template_button_click_45_listener() { const test_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.ViewTestHistory(test_r11.ID)); });
|
|
407
|
+
i0.ɵɵelement(46, "i", 67);
|
|
428
408
|
i0.ɵɵtext(47, " History ");
|
|
429
409
|
i0.ɵɵelementEnd();
|
|
430
|
-
i0.ɵɵelementStart(48, "button",
|
|
431
|
-
i0.ɵɵlistener("click", function
|
|
432
|
-
i0.ɵɵelement(49, "i",
|
|
410
|
+
i0.ɵɵelementStart(48, "button", 47);
|
|
411
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Template_button_click_48_listener() { const test_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Tests", test_r11.ID)); });
|
|
412
|
+
i0.ɵɵelement(49, "i", 49);
|
|
433
413
|
i0.ɵɵtext(50, " Edit ");
|
|
434
414
|
i0.ɵɵelementEnd()()();
|
|
435
415
|
} if (rf & 2) {
|
|
436
|
-
const
|
|
416
|
+
const test_r11 = ctx.$implicit;
|
|
437
417
|
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
438
418
|
i0.ɵɵadvance(4);
|
|
439
|
-
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 20,
|
|
419
|
+
i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(5, 20, test_r11.Name, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
|
|
440
420
|
i0.ɵɵadvance(2);
|
|
441
|
-
i0.ɵɵattribute("data-status",
|
|
421
|
+
i0.ɵɵattribute("data-status", test_r11.Status.toLowerCase());
|
|
442
422
|
i0.ɵɵadvance();
|
|
443
|
-
i0.ɵɵtextInterpolate(
|
|
423
|
+
i0.ɵɵtextInterpolate(test_r11.Status);
|
|
444
424
|
i0.ɵɵadvance(2);
|
|
445
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
425
|
+
i0.ɵɵtextInterpolate1(" ", test_r11.TypeName, " ");
|
|
446
426
|
i0.ɵɵadvance();
|
|
447
|
-
i0.ɵɵconditional(
|
|
427
|
+
i0.ɵɵconditional(test_r11.SuiteName ? 10 : -1);
|
|
448
428
|
i0.ɵɵadvance();
|
|
449
|
-
i0.ɵɵconditional(
|
|
429
|
+
i0.ɵɵconditional(test_r11.Description ? 11 : -1);
|
|
450
430
|
i0.ɵɵadvance(2);
|
|
451
|
-
i0.ɵɵconditional(
|
|
431
|
+
i0.ɵɵconditional(test_r11.TypeName ? 13 : -1);
|
|
452
432
|
i0.ɵɵadvance();
|
|
453
|
-
i0.ɵɵconditional(
|
|
433
|
+
i0.ɵɵconditional(test_r11.EstDuration > 0 ? 14 : -1);
|
|
454
434
|
i0.ɵɵadvance();
|
|
455
|
-
i0.ɵɵconditional(
|
|
435
|
+
i0.ɵɵconditional(test_r11.EstCost > 0 ? 15 : -1);
|
|
456
436
|
i0.ɵɵadvance(3);
|
|
457
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(
|
|
437
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(test_r11.UpdatedAt));
|
|
458
438
|
i0.ɵɵadvance();
|
|
459
|
-
i0.ɵɵconditional(
|
|
439
|
+
i0.ɵɵconditional(test_r11.Tags.length > 0 ? 19 : -1);
|
|
460
440
|
i0.ɵɵadvance(5);
|
|
461
|
-
i0.ɵɵattribute("data-status",
|
|
441
|
+
i0.ɵɵattribute("data-status", test_r11.LastRunStatus.toLowerCase());
|
|
462
442
|
i0.ɵɵadvance();
|
|
463
|
-
i0.ɵɵtextInterpolate(
|
|
443
|
+
i0.ɵɵtextInterpolate(test_r11.LastRunStatus || "N/A");
|
|
464
444
|
i0.ɵɵadvance(4);
|
|
465
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
445
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r11.LastScore));
|
|
466
446
|
i0.ɵɵadvance();
|
|
467
|
-
i0.ɵɵtextInterpolate(
|
|
447
|
+
i0.ɵɵtextInterpolate(test_r11.LastScore > 0 ? (test_r11.LastScore * 100).toFixed(0) + "%" : "N/A");
|
|
468
448
|
i0.ɵɵadvance(5);
|
|
469
|
-
i0.ɵɵtextInterpolate(
|
|
449
|
+
i0.ɵɵtextInterpolate(test_r11.TotalRuns);
|
|
470
450
|
i0.ɵɵadvance(4);
|
|
471
|
-
i0.ɵɵclassMap(ctx_r2.GetScoreClass(
|
|
451
|
+
i0.ɵɵclassMap(ctx_r2.GetScoreClass(test_r11.PassRate / 100));
|
|
472
452
|
i0.ɵɵadvance();
|
|
473
|
-
i0.ɵɵtextInterpolate(
|
|
453
|
+
i0.ɵɵtextInterpolate(test_r11.TotalRuns > 0 ? ctx_r2.FormatPercent(test_r11.PassRate) : "N/A");
|
|
474
454
|
} }
|
|
475
|
-
function
|
|
476
|
-
i0.ɵɵelementStart(0, "div",
|
|
477
|
-
i0.ɵɵelement(2, "i",
|
|
455
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
456
|
+
i0.ɵɵelementStart(0, "div", 26)(1, "h3", 27);
|
|
457
|
+
i0.ɵɵelement(2, "i", 59);
|
|
478
458
|
i0.ɵɵtext(3, " Tests ");
|
|
479
|
-
i0.ɵɵelementStart(4, "span",
|
|
459
|
+
i0.ɵɵelementStart(4, "span", 29);
|
|
480
460
|
i0.ɵɵtext(5);
|
|
481
461
|
i0.ɵɵelementEnd()();
|
|
482
|
-
i0.ɵɵelementStart(6, "div",
|
|
483
|
-
i0.ɵɵrepeaterCreate(7,
|
|
462
|
+
i0.ɵɵelementStart(6, "div", 30);
|
|
463
|
+
i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_For_8_Template, 51, 23, "div", 60, _forTrack0);
|
|
484
464
|
i0.ɵɵelementEnd()();
|
|
485
465
|
} if (rf & 2) {
|
|
486
466
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
@@ -489,52 +469,51 @@ function TestingExplorerComponent_ng_template_2_Conditional_1_Conditional_5_Cond
|
|
|
489
469
|
i0.ɵɵadvance(2);
|
|
490
470
|
i0.ɵɵrepeater(ctx_r2.FilteredTests);
|
|
491
471
|
} }
|
|
492
|
-
function
|
|
493
|
-
i0.ɵɵconditionalCreate(0,
|
|
472
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
473
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Conditional_0_Template, 9, 1, "div", 26);
|
|
494
474
|
} if (rf & 2) {
|
|
495
475
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
496
476
|
i0.ɵɵconditional(ctx_r2.FilteredTests.length > 0 ? 0 : -1);
|
|
497
477
|
} }
|
|
498
|
-
function
|
|
499
|
-
i0.ɵɵelementStart(0, "div",
|
|
500
|
-
i0.ɵɵelement(1, "i",
|
|
478
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
479
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
480
|
+
i0.ɵɵelement(1, "i", 73);
|
|
501
481
|
i0.ɵɵelementStart(2, "p");
|
|
502
482
|
i0.ɵɵtext(3, "No tests or suites found");
|
|
503
483
|
i0.ɵɵelementEnd();
|
|
504
|
-
i0.ɵɵelementStart(4, "span",
|
|
484
|
+
i0.ɵɵelementStart(4, "span", 74);
|
|
505
485
|
i0.ɵɵtext(5, "Try adjusting your search or filters.");
|
|
506
486
|
i0.ɵɵelementEnd()();
|
|
507
487
|
} }
|
|
508
|
-
function
|
|
509
|
-
const
|
|
510
|
-
i0.ɵɵelementStart(0, "
|
|
511
|
-
i0.ɵɵlistener("ItemClicked", function
|
|
488
|
+
function TestingExplorerComponent_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
489
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
490
|
+
i0.ɵɵelementStart(0, "mj-left-nav", 24);
|
|
491
|
+
i0.ɵɵlistener("ItemClicked", function TestingExplorerComponent_ng_template_2_Conditional_2_Template_mj_left_nav_ItemClicked_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnNavItemClicked($event)); })("ItemToggled", function TestingExplorerComponent_ng_template_2_Conditional_2_Template_mj_left_nav_ItemToggled_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnNavItemToggled($event)); });
|
|
512
492
|
i0.ɵɵelementEnd();
|
|
513
|
-
i0.ɵɵelementStart(
|
|
514
|
-
i0.ɵɵconditionalCreate(
|
|
515
|
-
i0.ɵɵconditionalCreate(
|
|
516
|
-
i0.ɵɵconditionalCreate(
|
|
517
|
-
i0.ɵɵelementEnd()()
|
|
493
|
+
i0.ɵɵelementStart(1, "mj-left-nav-content")(2, "mj-page-body-interior");
|
|
494
|
+
i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_3_Template, 1, 1);
|
|
495
|
+
i0.ɵɵconditionalCreate(4, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_4_Template, 1, 1);
|
|
496
|
+
i0.ɵɵconditionalCreate(5, TestingExplorerComponent_ng_template_2_Conditional_2_Conditional_5_Template, 6, 0, "div", 25);
|
|
497
|
+
i0.ɵɵelementEnd()();
|
|
518
498
|
} if (rf & 2) {
|
|
519
499
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
520
|
-
i0.ɵɵadvance();
|
|
521
500
|
i0.ɵɵproperty("Sections", ctx_r2.NavSections)("ActiveId", ctx_r2.ActiveNavId)("ExpandedIds", ctx_r2.ExpandedNavIds);
|
|
522
501
|
i0.ɵɵadvance(3);
|
|
523
|
-
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "suites" ?
|
|
502
|
+
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "suites" ? 3 : -1);
|
|
524
503
|
i0.ɵɵadvance();
|
|
525
|
-
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "tests" ?
|
|
504
|
+
i0.ɵɵconditional(ctx_r2.DisplayMode === "all" || ctx_r2.DisplayMode === "tests" ? 4 : -1);
|
|
526
505
|
i0.ɵɵadvance();
|
|
527
|
-
i0.ɵɵconditional(ctx_r2.FilteredSuites.length === 0 && ctx_r2.FilteredTests.length === 0 ?
|
|
506
|
+
i0.ɵɵconditional(ctx_r2.FilteredSuites.length === 0 && ctx_r2.FilteredTests.length === 0 ? 5 : -1);
|
|
528
507
|
} }
|
|
529
|
-
function
|
|
530
|
-
const
|
|
531
|
-
i0.ɵɵelementStart(0, "div",
|
|
532
|
-
i0.ɵɵlistener("click", function
|
|
508
|
+
function TestingExplorerComponent_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
509
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
510
|
+
i0.ɵɵelementStart(0, "div", 75);
|
|
511
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_3_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
|
|
533
512
|
i0.ɵɵelementEnd();
|
|
534
513
|
} }
|
|
535
|
-
function
|
|
536
|
-
i0.ɵɵelementStart(0, "div",
|
|
537
|
-
i0.ɵɵelement(1, "i",
|
|
514
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
515
|
+
i0.ɵɵelementStart(0, "div", 84);
|
|
516
|
+
i0.ɵɵelement(1, "i", 103);
|
|
538
517
|
i0.ɵɵelementStart(2, "span");
|
|
539
518
|
i0.ɵɵtext(3);
|
|
540
519
|
i0.ɵɵelementEnd()();
|
|
@@ -543,29 +522,29 @@ function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_15_Tem
|
|
|
543
522
|
i0.ɵɵadvance(3);
|
|
544
523
|
i0.ɵɵtextInterpolate(ctx_r2.FormErrorMessage);
|
|
545
524
|
} }
|
|
546
|
-
function
|
|
547
|
-
i0.ɵɵelementStart(0, "option",
|
|
525
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_31_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
526
|
+
i0.ɵɵelementStart(0, "option", 95);
|
|
548
527
|
i0.ɵɵtext(1);
|
|
549
528
|
i0.ɵɵelementEnd();
|
|
550
529
|
} if (rf & 2) {
|
|
551
|
-
const
|
|
552
|
-
i0.ɵɵproperty("value",
|
|
530
|
+
const tt_r17 = ctx.$implicit;
|
|
531
|
+
i0.ɵɵproperty("value", tt_r17.ID);
|
|
553
532
|
i0.ɵɵadvance();
|
|
554
|
-
i0.ɵɵtextInterpolate(
|
|
533
|
+
i0.ɵɵtextInterpolate(tt_r17.Name);
|
|
555
534
|
} }
|
|
556
|
-
function
|
|
557
|
-
const
|
|
558
|
-
i0.ɵɵelementStart(0, "div",
|
|
535
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
536
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
537
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "label", 89);
|
|
559
538
|
i0.ɵɵtext(2, "Test Type ");
|
|
560
|
-
i0.ɵɵelementStart(3, "span",
|
|
539
|
+
i0.ɵɵelementStart(3, "span", 90);
|
|
561
540
|
i0.ɵɵtext(4, "*");
|
|
562
541
|
i0.ɵɵelementEnd()();
|
|
563
|
-
i0.ɵɵelementStart(5, "select",
|
|
564
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
565
|
-
i0.ɵɵelementStart(6, "option",
|
|
542
|
+
i0.ɵɵelementStart(5, "select", 94);
|
|
543
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_31_Template_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTypeID, $event) || (ctx_r2.FormTypeID = $event); return i0.ɵɵresetView($event); });
|
|
544
|
+
i0.ɵɵelementStart(6, "option", 104);
|
|
566
545
|
i0.ɵɵtext(7, "Select type...");
|
|
567
546
|
i0.ɵɵelementEnd();
|
|
568
|
-
i0.ɵɵrepeaterCreate(8,
|
|
547
|
+
i0.ɵɵrepeaterCreate(8, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_31_For_9_Template, 2, 2, "option", 95, _forTrack0);
|
|
569
548
|
i0.ɵɵelementEnd()();
|
|
570
549
|
} if (rf & 2) {
|
|
571
550
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -574,27 +553,27 @@ function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_31_Tem
|
|
|
574
553
|
i0.ɵɵadvance(3);
|
|
575
554
|
i0.ɵɵrepeater(ctx_r2.AllTestTypes);
|
|
576
555
|
} }
|
|
577
|
-
function
|
|
578
|
-
i0.ɵɵelementStart(0, "option",
|
|
556
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_32_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
557
|
+
i0.ɵɵelementStart(0, "option", 95);
|
|
579
558
|
i0.ɵɵtext(1);
|
|
580
559
|
i0.ɵɵelementEnd();
|
|
581
560
|
} if (rf & 2) {
|
|
582
|
-
const
|
|
583
|
-
i0.ɵɵproperty("value",
|
|
561
|
+
const s_r19 = ctx.$implicit;
|
|
562
|
+
i0.ɵɵproperty("value", s_r19.ID);
|
|
584
563
|
i0.ɵɵadvance();
|
|
585
|
-
i0.ɵɵtextInterpolate(
|
|
564
|
+
i0.ɵɵtextInterpolate(s_r19.Name);
|
|
586
565
|
} }
|
|
587
|
-
function
|
|
588
|
-
const
|
|
589
|
-
i0.ɵɵelementStart(0, "div",
|
|
566
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_32_Template(rf, ctx) { if (rf & 1) {
|
|
567
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
568
|
+
i0.ɵɵelementStart(0, "div", 88)(1, "label", 89);
|
|
590
569
|
i0.ɵɵtext(2, "Parent Suite");
|
|
591
570
|
i0.ɵɵelementEnd();
|
|
592
|
-
i0.ɵɵelementStart(3, "select",
|
|
593
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
594
|
-
i0.ɵɵelementStart(4, "option",
|
|
571
|
+
i0.ɵɵelementStart(3, "select", 94);
|
|
572
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_32_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormParentSuiteID, $event) || (ctx_r2.FormParentSuiteID = $event); return i0.ɵɵresetView($event); });
|
|
573
|
+
i0.ɵɵelementStart(4, "option", 105);
|
|
595
574
|
i0.ɵɵtext(5, "None (top-level)");
|
|
596
575
|
i0.ɵɵelementEnd();
|
|
597
|
-
i0.ɵɵrepeaterCreate(6,
|
|
576
|
+
i0.ɵɵrepeaterCreate(6, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_32_For_7_Template, 2, 2, "option", 95, _forTrack0);
|
|
598
577
|
i0.ɵɵelementEnd()();
|
|
599
578
|
} if (rf & 2) {
|
|
600
579
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -603,32 +582,32 @@ function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_32_Tem
|
|
|
603
582
|
i0.ɵɵadvance(3);
|
|
604
583
|
i0.ɵɵrepeater(ctx_r2.AllSuites);
|
|
605
584
|
} }
|
|
606
|
-
function
|
|
607
|
-
i0.ɵɵelementStart(0, "option",
|
|
585
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_For_38_Template(rf, ctx) { if (rf & 1) {
|
|
586
|
+
i0.ɵɵelementStart(0, "option", 95);
|
|
608
587
|
i0.ɵɵtext(1);
|
|
609
588
|
i0.ɵɵelementEnd();
|
|
610
589
|
} if (rf & 2) {
|
|
611
|
-
const
|
|
612
|
-
i0.ɵɵproperty("value",
|
|
590
|
+
const status_r20 = ctx.$implicit;
|
|
591
|
+
i0.ɵɵproperty("value", status_r20);
|
|
613
592
|
i0.ɵɵadvance();
|
|
614
|
-
i0.ɵɵtextInterpolate(
|
|
593
|
+
i0.ɵɵtextInterpolate(status_r20);
|
|
615
594
|
} }
|
|
616
|
-
function
|
|
617
|
-
const
|
|
618
|
-
i0.ɵɵelementStart(0, "div",
|
|
595
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
596
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
597
|
+
i0.ɵɵelementStart(0, "div", 86)(1, "div", 87);
|
|
619
598
|
i0.ɵɵtext(2, "Estimates");
|
|
620
599
|
i0.ɵɵelementEnd();
|
|
621
|
-
i0.ɵɵelementStart(3, "div",
|
|
600
|
+
i0.ɵɵelementStart(3, "div", 93)(4, "div", 88)(5, "label", 89);
|
|
622
601
|
i0.ɵɵtext(6, "Duration (seconds)");
|
|
623
602
|
i0.ɵɵelementEnd();
|
|
624
|
-
i0.ɵɵelementStart(7, "input",
|
|
625
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
603
|
+
i0.ɵɵelementStart(7, "input", 106);
|
|
604
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_39_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstDuration, $event) || (ctx_r2.FormEstDuration = $event); return i0.ɵɵresetView($event); });
|
|
626
605
|
i0.ɵɵelementEnd()();
|
|
627
|
-
i0.ɵɵelementStart(8, "div",
|
|
606
|
+
i0.ɵɵelementStart(8, "div", 88)(9, "label", 89);
|
|
628
607
|
i0.ɵɵtext(10, "Cost (USD)");
|
|
629
608
|
i0.ɵɵelementEnd();
|
|
630
|
-
i0.ɵɵelementStart(11, "input",
|
|
631
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
609
|
+
i0.ɵɵelementStart(11, "input", 107);
|
|
610
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_39_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstCost, $event) || (ctx_r2.FormEstCost = $event); return i0.ɵɵresetView($event); });
|
|
632
611
|
i0.ɵɵelementEnd()()()();
|
|
633
612
|
} if (rf & 2) {
|
|
634
613
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
@@ -637,78 +616,78 @@ function TestingExplorerComponent_ng_template_2_Conditional_5_Conditional_39_Tem
|
|
|
637
616
|
i0.ɵɵadvance(4);
|
|
638
617
|
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormEstCost);
|
|
639
618
|
} }
|
|
640
|
-
function
|
|
641
|
-
i0.ɵɵelement(0, "i",
|
|
619
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_51_Template(rf, ctx) { if (rf & 1) {
|
|
620
|
+
i0.ɵɵelement(0, "i", 101);
|
|
642
621
|
} }
|
|
643
|
-
function
|
|
644
|
-
i0.ɵɵelement(0, "i",
|
|
622
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_52_Template(rf, ctx) { if (rf & 1) {
|
|
623
|
+
i0.ɵɵelement(0, "i", 102);
|
|
645
624
|
} }
|
|
646
|
-
function
|
|
647
|
-
const
|
|
648
|
-
i0.ɵɵelementStart(0, "div",
|
|
649
|
-
i0.ɵɵelement(3, "i",
|
|
650
|
-
i0.ɵɵelementStart(4, "span",
|
|
625
|
+
function TestingExplorerComponent_ng_template_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
626
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
627
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "div", 76)(2, "div", 77);
|
|
628
|
+
i0.ɵɵelement(3, "i", 78);
|
|
629
|
+
i0.ɵɵelementStart(4, "span", 79);
|
|
651
630
|
i0.ɵɵtext(5);
|
|
652
631
|
i0.ɵɵelementEnd()();
|
|
653
|
-
i0.ɵɵelementStart(6, "button",
|
|
654
|
-
i0.ɵɵlistener("click", function
|
|
655
|
-
i0.ɵɵelement(7, "i",
|
|
632
|
+
i0.ɵɵelementStart(6, "button", 80);
|
|
633
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
|
|
634
|
+
i0.ɵɵelement(7, "i", 81);
|
|
656
635
|
i0.ɵɵelementEnd()();
|
|
657
|
-
i0.ɵɵelementStart(8, "div",
|
|
658
|
-
i0.ɵɵlistener("click", function
|
|
659
|
-
i0.ɵɵelement(10, "i",
|
|
636
|
+
i0.ɵɵelementStart(8, "div", 82)(9, "button", 83);
|
|
637
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("test")); });
|
|
638
|
+
i0.ɵɵelement(10, "i", 59);
|
|
660
639
|
i0.ɵɵtext(11, " Test ");
|
|
661
640
|
i0.ɵɵelementEnd();
|
|
662
|
-
i0.ɵɵelementStart(12, "button",
|
|
663
|
-
i0.ɵɵlistener("click", function
|
|
664
|
-
i0.ɵɵelement(13, "i",
|
|
641
|
+
i0.ɵɵelementStart(12, "button", 83);
|
|
642
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("suite")); });
|
|
643
|
+
i0.ɵɵelement(13, "i", 28);
|
|
665
644
|
i0.ɵɵtext(14, " Suite ");
|
|
666
645
|
i0.ɵɵelementEnd()();
|
|
667
|
-
i0.ɵɵconditionalCreate(15,
|
|
668
|
-
i0.ɵɵelementStart(16, "div",
|
|
646
|
+
i0.ɵɵconditionalCreate(15, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_15_Template, 4, 1, "div", 84);
|
|
647
|
+
i0.ɵɵelementStart(16, "div", 85)(17, "div", 86)(18, "div", 87);
|
|
669
648
|
i0.ɵɵtext(19, "General");
|
|
670
649
|
i0.ɵɵelementEnd();
|
|
671
|
-
i0.ɵɵelementStart(20, "div",
|
|
650
|
+
i0.ɵɵelementStart(20, "div", 88)(21, "label", 89);
|
|
672
651
|
i0.ɵɵtext(22, "Name ");
|
|
673
|
-
i0.ɵɵelementStart(23, "span",
|
|
652
|
+
i0.ɵɵelementStart(23, "span", 90);
|
|
674
653
|
i0.ɵɵtext(24, "*");
|
|
675
654
|
i0.ɵɵelementEnd()();
|
|
676
|
-
i0.ɵɵelementStart(25, "input",
|
|
677
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
655
|
+
i0.ɵɵelementStart(25, "input", 91);
|
|
656
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_input_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormName, $event) || (ctx_r2.FormName = $event); return i0.ɵɵresetView($event); });
|
|
678
657
|
i0.ɵɵelementEnd()();
|
|
679
|
-
i0.ɵɵelementStart(26, "div",
|
|
658
|
+
i0.ɵɵelementStart(26, "div", 88)(27, "label", 89);
|
|
680
659
|
i0.ɵɵtext(28, "Description");
|
|
681
660
|
i0.ɵɵelementEnd();
|
|
682
|
-
i0.ɵɵelementStart(29, "textarea",
|
|
683
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
661
|
+
i0.ɵɵelementStart(29, "textarea", 92);
|
|
662
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_textarea_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormDescription, $event) || (ctx_r2.FormDescription = $event); return i0.ɵɵresetView($event); });
|
|
684
663
|
i0.ɵɵelementEnd()();
|
|
685
|
-
i0.ɵɵelementStart(30, "div",
|
|
686
|
-
i0.ɵɵconditionalCreate(31,
|
|
687
|
-
i0.ɵɵconditionalCreate(32,
|
|
688
|
-
i0.ɵɵelementStart(33, "div",
|
|
664
|
+
i0.ɵɵelementStart(30, "div", 93);
|
|
665
|
+
i0.ɵɵconditionalCreate(31, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_31_Template, 10, 1, "div", 88);
|
|
666
|
+
i0.ɵɵconditionalCreate(32, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_32_Template, 8, 1, "div", 88);
|
|
667
|
+
i0.ɵɵelementStart(33, "div", 88)(34, "label", 89);
|
|
689
668
|
i0.ɵɵtext(35, "Status");
|
|
690
669
|
i0.ɵɵelementEnd();
|
|
691
|
-
i0.ɵɵelementStart(36, "select",
|
|
692
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
693
|
-
i0.ɵɵrepeaterCreate(37,
|
|
670
|
+
i0.ɵɵelementStart(36, "select", 94);
|
|
671
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_select_ngModelChange_36_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormStatus, $event) || (ctx_r2.FormStatus = $event); return i0.ɵɵresetView($event); });
|
|
672
|
+
i0.ɵɵrepeaterCreate(37, TestingExplorerComponent_ng_template_2_Conditional_6_For_38_Template, 2, 2, "option", 95, i0.ɵɵrepeaterTrackByIdentity);
|
|
694
673
|
i0.ɵɵelementEnd()()()();
|
|
695
|
-
i0.ɵɵconditionalCreate(39,
|
|
696
|
-
i0.ɵɵelementStart(40, "div",
|
|
674
|
+
i0.ɵɵconditionalCreate(39, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_39_Template, 12, 2, "div", 86);
|
|
675
|
+
i0.ɵɵelementStart(40, "div", 86)(41, "div", 87);
|
|
697
676
|
i0.ɵɵtext(42, "Tags");
|
|
698
677
|
i0.ɵɵelementEnd();
|
|
699
|
-
i0.ɵɵelementStart(43, "div",
|
|
700
|
-
i0.ɵɵtwoWayListener("ngModelChange", function
|
|
678
|
+
i0.ɵɵelementStart(43, "div", 88)(44, "input", 96);
|
|
679
|
+
i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_input_ngModelChange_44_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTags, $event) || (ctx_r2.FormTags = $event); return i0.ɵɵresetView($event); });
|
|
701
680
|
i0.ɵɵelementEnd();
|
|
702
|
-
i0.ɵɵelementStart(45, "span",
|
|
681
|
+
i0.ɵɵelementStart(45, "span", 97);
|
|
703
682
|
i0.ɵɵtext(46, "Separate multiple tags with commas");
|
|
704
683
|
i0.ɵɵelementEnd()()()();
|
|
705
|
-
i0.ɵɵelementStart(47, "div",
|
|
706
|
-
i0.ɵɵlistener("click", function
|
|
684
|
+
i0.ɵɵelementStart(47, "div", 98)(48, "button", 99);
|
|
685
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_button_click_48_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
|
|
707
686
|
i0.ɵɵtext(49, "Cancel");
|
|
708
687
|
i0.ɵɵelementEnd();
|
|
709
|
-
i0.ɵɵelementStart(50, "button",
|
|
710
|
-
i0.ɵɵlistener("click", function
|
|
711
|
-
i0.ɵɵconditionalCreate(51,
|
|
688
|
+
i0.ɵɵelementStart(50, "button", 100);
|
|
689
|
+
i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_6_Template_button_click_50_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SaveForm()); });
|
|
690
|
+
i0.ɵɵconditionalCreate(51, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_51_Template, 1, 0, "i", 101)(52, TestingExplorerComponent_ng_template_2_Conditional_6_Conditional_52_Template, 1, 0, "i", 102);
|
|
712
691
|
i0.ɵɵtext(53);
|
|
713
692
|
i0.ɵɵelementEnd()()();
|
|
714
693
|
} if (rf & 2) {
|
|
@@ -746,12 +725,12 @@ function TestingExplorerComponent_ng_template_2_Conditional_5_Template(rf, ctx)
|
|
|
746
725
|
i0.ɵɵadvance(2);
|
|
747
726
|
i0.ɵɵtextInterpolate1(" Create ", ctx_r2.SlideoutCreateType === "test" ? "Test" : "Suite", " ");
|
|
748
727
|
} }
|
|
749
|
-
function
|
|
750
|
-
const
|
|
751
|
-
i0.ɵɵelementStart(0, "mj-slide-panel",
|
|
752
|
-
i0.ɵɵlistener("Closed", function
|
|
753
|
-
i0.ɵɵelementStart(1, "app-test-run-dialog",
|
|
754
|
-
i0.ɵɵlistener("PanelClose", function
|
|
728
|
+
function TestingExplorerComponent_ng_template_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
729
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
730
|
+
i0.ɵɵelementStart(0, "mj-slide-panel", 108);
|
|
731
|
+
i0.ɵɵlistener("Closed", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
|
|
732
|
+
i0.ɵɵelementStart(1, "app-test-run-dialog", 109);
|
|
733
|
+
i0.ɵɵlistener("PanelClose", function TestingExplorerComponent_ng_template_2_Conditional_7_Template_app_test_run_dialog_PanelClose_1_listener() { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
|
|
755
734
|
i0.ɵɵelementEnd()();
|
|
756
735
|
} if (rf & 2) {
|
|
757
736
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -760,27 +739,31 @@ function TestingExplorerComponent_ng_template_2_Conditional_6_Template(rf, ctx)
|
|
|
760
739
|
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");
|
|
761
740
|
} }
|
|
762
741
|
function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
763
|
-
const
|
|
764
|
-
i0.ɵɵ
|
|
765
|
-
i0.ɵɵconditionalCreate(
|
|
766
|
-
i0.ɵɵ
|
|
767
|
-
i0.ɵɵ
|
|
742
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
743
|
+
i0.ɵɵelementStart(0, "mj-page-body", 16);
|
|
744
|
+
i0.ɵɵconditionalCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 2, 0, "div", 17)(2, TestingExplorerComponent_ng_template_2_Conditional_2_Template, 6, 6);
|
|
745
|
+
i0.ɵɵconditionalCreate(3, TestingExplorerComponent_ng_template_2_Conditional_3_Template, 1, 0, "div", 18);
|
|
746
|
+
i0.ɵɵelementStart(4, "div", 19)(5, "div", 20);
|
|
747
|
+
i0.ɵɵlistener("mousedown", function TestingExplorerComponent_ng_template_2_Template_div_mousedown_5_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnResizeStart($event)); });
|
|
748
|
+
i0.ɵɵelementEnd();
|
|
749
|
+
i0.ɵɵconditionalCreate(6, TestingExplorerComponent_ng_template_2_Conditional_6_Template, 54, 18, "div", 21);
|
|
768
750
|
i0.ɵɵelementEnd();
|
|
769
|
-
i0.ɵɵconditionalCreate(
|
|
751
|
+
i0.ɵɵconditionalCreate(7, TestingExplorerComponent_ng_template_2_Conditional_7_Template, 2, 5, "mj-slide-panel", 22);
|
|
770
752
|
i0.ɵɵelementEnd();
|
|
771
|
-
i0.ɵɵconditionalCreate(6, TestingExplorerComponent_ng_template_2_Conditional_6_Template, 2, 5, "mj-slide-panel", 24);
|
|
772
753
|
} if (rf & 2) {
|
|
773
754
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
774
|
-
i0.ɵɵ
|
|
755
|
+
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
756
|
+
i0.ɵɵadvance();
|
|
757
|
+
i0.ɵɵconditional(ctx_r2.IsLoading ? 1 : 2);
|
|
775
758
|
i0.ɵɵadvance(2);
|
|
776
|
-
i0.ɵɵconditional(ctx_r2.SlideoutOpen ?
|
|
759
|
+
i0.ɵɵconditional(ctx_r2.SlideoutOpen ? 3 : -1);
|
|
777
760
|
i0.ɵɵadvance();
|
|
778
761
|
i0.ɵɵstyleProp("width", ctx_r2.SlideoutWidth, "px");
|
|
779
762
|
i0.ɵɵclassProp("open", ctx_r2.SlideoutOpen);
|
|
780
763
|
i0.ɵɵadvance(2);
|
|
781
|
-
i0.ɵɵconditional(ctx_r2.SlideoutOpen ?
|
|
764
|
+
i0.ɵɵconditional(ctx_r2.SlideoutOpen ? 6 : -1);
|
|
782
765
|
i0.ɵɵadvance();
|
|
783
|
-
i0.ɵɵconditional(ctx_r2.testingDialogService.IsPanelOpen ?
|
|
766
|
+
i0.ɵɵconditional(ctx_r2.testingDialogService.IsPanelOpen ? 7 : -1);
|
|
784
767
|
} }
|
|
785
768
|
export class TestingExplorerComponent extends BaseAngularComponent {
|
|
786
769
|
cdr;
|
|
@@ -1075,18 +1058,46 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1075
1058
|
{ text: 'Ascending', value: 'asc' },
|
|
1076
1059
|
{ text: 'Descending', value: 'desc' },
|
|
1077
1060
|
];
|
|
1078
|
-
|
|
1061
|
+
/**
|
|
1062
|
+
* Concise-chrome model: every filter (View · Status · Sort) lives behind a
|
|
1063
|
+
* single "Filter" button via this one mj-filter-panel field set. The applied
|
|
1064
|
+
* state is surfaced separately as removable chips (see AppliedFilters), so
|
|
1065
|
+
* input (the button) and state (the chips) are cleanly separated.
|
|
1066
|
+
*/
|
|
1067
|
+
get filterFields() {
|
|
1079
1068
|
return [
|
|
1069
|
+
{ key: 'displayMode', type: 'chips', label: 'View', chipOptions: [
|
|
1070
|
+
{ text: 'All', value: 'all' },
|
|
1071
|
+
{ text: 'Suites', value: 'suites' },
|
|
1072
|
+
{ text: 'Tests', value: 'tests' },
|
|
1073
|
+
] },
|
|
1074
|
+
{ key: 'status', type: 'chips', label: 'Status', multi: true, chipOptions: [
|
|
1075
|
+
{ text: 'Active', value: 'Active' },
|
|
1076
|
+
{ text: 'Pending', value: 'Pending' },
|
|
1077
|
+
{ text: 'Disabled', value: 'Disabled' },
|
|
1078
|
+
] },
|
|
1080
1079
|
{ key: 'SortField', type: 'dropdown', label: 'Sort by',
|
|
1081
1080
|
icon: 'fa-solid fa-arrow-down-wide-short', options: this.sortFieldOptions },
|
|
1082
1081
|
{ key: 'SortDirection', type: 'dropdown', label: 'Direction',
|
|
1083
1082
|
icon: 'fa-solid fa-arrow-up-arrow-down', options: this.sortDirectionOptions },
|
|
1084
1083
|
];
|
|
1085
1084
|
}
|
|
1086
|
-
get
|
|
1087
|
-
return {
|
|
1085
|
+
get filterValues() {
|
|
1086
|
+
return {
|
|
1087
|
+
displayMode: this.DisplayMode,
|
|
1088
|
+
status: Array.from(this.StatusFilters),
|
|
1089
|
+
SortField: this.SortField,
|
|
1090
|
+
SortDirection: this.SortDirection,
|
|
1091
|
+
};
|
|
1088
1092
|
}
|
|
1089
|
-
|
|
1093
|
+
onFilterValuesChange(values) {
|
|
1094
|
+
if ('displayMode' in values) {
|
|
1095
|
+
this._displayMode$.next(values['displayMode']);
|
|
1096
|
+
}
|
|
1097
|
+
if ('status' in values) {
|
|
1098
|
+
const arr = Array.isArray(values['status']) ? values['status'] : [];
|
|
1099
|
+
this._statusFilters$.next(new Set(arr));
|
|
1100
|
+
}
|
|
1090
1101
|
if ('SortField' in values) {
|
|
1091
1102
|
this._sortField$.next(values['SortField']);
|
|
1092
1103
|
}
|
|
@@ -1098,7 +1109,13 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1098
1109
|
this._sortField$.next('name');
|
|
1099
1110
|
this._sortDirection$.next('asc');
|
|
1100
1111
|
}
|
|
1101
|
-
/**
|
|
1112
|
+
/** Clears every filter (View · Status · Sort) back to defaults. */
|
|
1113
|
+
resetAllFilters() {
|
|
1114
|
+
this._displayMode$.next('all');
|
|
1115
|
+
this._statusFilters$.next(new Set());
|
|
1116
|
+
this.resetSortFilters();
|
|
1117
|
+
}
|
|
1118
|
+
/** Active sort changes from defaults — contributes to the filter badge + chips. */
|
|
1102
1119
|
get ActiveSortFilterCount() {
|
|
1103
1120
|
let count = 0;
|
|
1104
1121
|
if (this.SortField !== 'name')
|
|
@@ -1107,6 +1124,11 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1107
1124
|
count++;
|
|
1108
1125
|
return count;
|
|
1109
1126
|
}
|
|
1127
|
+
/** Total active filters (View + Status + Sort) — drives the Filter button badge. */
|
|
1128
|
+
get TotalActiveFilterCount() {
|
|
1129
|
+
const displayModeActive = this.DisplayMode !== 'all' ? 1 : 0;
|
|
1130
|
+
return this.ActiveSortFilterCount + this.StatusFilters.size + displayModeActive;
|
|
1131
|
+
}
|
|
1110
1132
|
RunTest(testId) {
|
|
1111
1133
|
this.testingDialogService.OpenTestPanel(testId);
|
|
1112
1134
|
}
|
|
@@ -1668,12 +1690,12 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1668
1690
|
throw new Error('Failed to save test suite. Please check your input and try again.');
|
|
1669
1691
|
}
|
|
1670
1692
|
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)); };
|
|
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", ""], ["
|
|
1672
|
-
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingExplorerComponent_Conditional_1_Template,
|
|
1673
|
-
i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template,
|
|
1693
|
+
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", ""], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "action-btn-label"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search tests and suites...", 3, "ValueChange", "Value"], ["Label", "Filters", "Icon", "fa-solid fa-filter", 3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [3, "KeyChange", "Options", "ActiveKey"], ["Direction", "row", 3, "Flex", "Padding"], [1, "explorer-loading"], [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..."], ["MobileTitle", "Browse Tests", 3, "ItemClicked", "ItemToggled", "Sections", "ActiveId", "ExpandedIds"], [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) {
|
|
1694
|
+
i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingExplorerComponent_Conditional_1_Template, 19, 10, "mj-page-layout");
|
|
1695
|
+
i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template, 8, 10, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
1674
1696
|
} if (rf & 2) {
|
|
1675
1697
|
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 });
|
|
1698
|
+
} }, 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.MJPageBodyInteriorComponent, i5.MJFilterPopoverComponent, i5.MJFilterPanelComponent, i5.MJPageSearchComponent, i5.MJViewToggleComponent, i5.MJStatBadgeComponent, i5.MJLeftNavComponent, i5.MJLeftNavContentComponent, 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 flex: 1;\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\n\n\n \n\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 .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 .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 });
|
|
1677
1699
|
}
|
|
1678
1700
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingExplorerComponent, [{
|
|
1679
1701
|
type: Component,
|
|
@@ -1698,71 +1720,60 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1698
1720
|
</mj-stat-badge>
|
|
1699
1721
|
</div>
|
|
1700
1722
|
<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
1723
|
<button mjButton variant="secondary" size="sm" (click)="OnNewSuite()">
|
|
1725
|
-
<i class="fa-solid fa-folder-plus"></i> New Suite
|
|
1724
|
+
<i class="fa-solid fa-folder-plus"></i> <span class="action-btn-label">New Suite</span>
|
|
1726
1725
|
</button>
|
|
1727
1726
|
<button mjButton variant="primary" size="sm" (click)="OnNewTest()">
|
|
1728
|
-
<i class="fa-solid fa-plus"></i> New Test
|
|
1727
|
+
<i class="fa-solid fa-plus"></i> <span class="action-btn-label">New Test</span>
|
|
1729
1728
|
</button>
|
|
1730
1729
|
</div>
|
|
1731
1730
|
<div toolbar>
|
|
1731
|
+
<!-- Concise-chrome control bar: search · Filter · view, together.
|
|
1732
|
+
Search is persistent wayfinding (never a filter field); all
|
|
1733
|
+
filters live behind the one Filter button (docks as a bottom
|
|
1734
|
+
sheet on mobile); applied filters render as removable chips
|
|
1735
|
+
below the bar (see <mj-applied-filters>). -->
|
|
1732
1736
|
<mj-page-search
|
|
1733
1737
|
Placeholder="Search tests and suites..."
|
|
1734
1738
|
[Value]="SearchTerm"
|
|
1735
1739
|
(ValueChange)="OnSearchInputValue($event)">
|
|
1736
1740
|
</mj-page-search>
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1741
|
+
<mj-filter-popover
|
|
1742
|
+
Label="Filters"
|
|
1743
|
+
Icon="fa-solid fa-filter"
|
|
1744
|
+
[ActiveCount]="TotalActiveFilterCount"
|
|
1745
|
+
[ShowClearAll]="TotalActiveFilterCount > 0"
|
|
1746
|
+
(ClearAllRequested)="resetAllFilters()">
|
|
1747
|
+
<mj-filter-panel
|
|
1748
|
+
[Fields]="filterFields"
|
|
1749
|
+
[Values]="filterValues"
|
|
1750
|
+
(ValuesChange)="onFilterValuesChange($event)"
|
|
1751
|
+
(Reset)="resetAllFilters()">
|
|
1752
|
+
</mj-filter-panel>
|
|
1753
|
+
</mj-filter-popover>
|
|
1744
1754
|
<mj-view-toggle
|
|
1745
|
-
[Options]="
|
|
1746
|
-
[ActiveKey]="
|
|
1747
|
-
(KeyChange)="
|
|
1755
|
+
[Options]="HeaderViewOptions"
|
|
1756
|
+
[ActiveKey]="ViewMode"
|
|
1757
|
+
(KeyChange)="SetViewMode($any($event))">
|
|
1748
1758
|
</mj-view-toggle>
|
|
1749
1759
|
</div>
|
|
1750
1760
|
</mj-page-header>
|
|
1751
|
-
<
|
|
1752
|
-
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
1753
|
-
</mj-page-body>
|
|
1761
|
+
<ng-container *ngTemplateOutlet="content"></ng-container>
|
|
1754
1762
|
</mj-page-layout>
|
|
1755
1763
|
}
|
|
1756
1764
|
|
|
1757
1765
|
<ng-template #content>
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1766
|
+
<!-- Shared chrome primitives instead of bespoke wrappers: mj-page-body
|
|
1767
|
+
(row) is the rail+content layout, mj-page-body-interior is the
|
|
1768
|
+
scroller. Both reflow / scroll correctly on mobile. -->
|
|
1769
|
+
<mj-page-body [Flex]="true" [Padding]="false" Direction="row">
|
|
1770
|
+
@if (IsLoading) {
|
|
1771
|
+
<div class="explorer-loading">
|
|
1772
|
+
<mj-loading text="Loading test explorer..."></mj-loading>
|
|
1773
|
+
</div>
|
|
1774
|
+
} @else {
|
|
1765
1775
|
<mj-left-nav
|
|
1776
|
+
MobileTitle="Browse Tests"
|
|
1766
1777
|
[Sections]="NavSections"
|
|
1767
1778
|
[ActiveId]="ActiveNavId"
|
|
1768
1779
|
[ExpandedIds]="ExpandedNavIds"
|
|
@@ -1770,10 +1781,8 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1770
1781
|
(ItemToggled)="OnNavItemToggled($event)">
|
|
1771
1782
|
</mj-left-nav>
|
|
1772
1783
|
|
|
1773
|
-
<!-- Main Content -->
|
|
1774
1784
|
<mj-left-nav-content>
|
|
1775
|
-
|
|
1776
|
-
<div class="content-area">
|
|
1785
|
+
<mj-page-body-interior>
|
|
1777
1786
|
<!-- Suites Section -->
|
|
1778
1787
|
@if (DisplayMode === 'all' || DisplayMode === 'suites') {
|
|
1779
1788
|
@if (FilteredSuites.length > 0) {
|
|
@@ -1961,10 +1970,9 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
1961
1970
|
<span class="empty-hint">Try adjusting your search or filters.</span>
|
|
1962
1971
|
</div>
|
|
1963
1972
|
}
|
|
1964
|
-
</
|
|
1973
|
+
</mj-page-body-interior>
|
|
1965
1974
|
</mj-left-nav-content>
|
|
1966
|
-
|
|
1967
|
-
}
|
|
1975
|
+
}
|
|
1968
1976
|
|
|
1969
1977
|
<!-- Slideout Backdrop -->
|
|
1970
1978
|
@if (SlideoutOpen) {
|
|
@@ -2150,10 +2158,11 @@ export class TestingExplorerComponent extends BaseAngularComponent {
|
|
|
2150
2158
|
</app-test-run-dialog>
|
|
2151
2159
|
</mj-slide-panel>
|
|
2152
2160
|
}
|
|
2161
|
+
</mj-page-body>
|
|
2153
2162
|
</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 "] }]
|
|
2163
|
+
`, 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 flex: 1;\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 /* The rail + content layout is the shared <mj-page-body Direction=\"row\">\n (it reflows to a column on mobile) and the scroller is the shared\n <mj-page-body-interior> \u2014 no bespoke .explorer-layout / .content-area. */\n\n /* Mobile search-grow + icon-only action buttons are handled by the shared\n <mj-page-header> rules (action-btn-label + toolbar search-grow). */\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-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 .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
2164
|
}], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.TestingDialogService }, { type: i2.TestingInstrumentationService }], { HideToolbar: [{
|
|
2156
2165
|
type: Input
|
|
2157
2166
|
}] }); })();
|
|
2158
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber:
|
|
2167
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber: 1291 }); })();
|
|
2159
2168
|
//# sourceMappingURL=testing-explorer.component.js.map
|