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