@memberjunction/ng-dashboards 5.20.0 → 5.22.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.
Files changed (99) hide show
  1. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +102 -0
  2. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -0
  3. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +583 -0
  4. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -0
  5. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +148 -0
  6. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -0
  7. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +773 -0
  8. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -0
  9. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +241 -0
  10. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -0
  11. package/dist/AI/components/vectors/vector-management-resource.component.js +1782 -0
  12. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -0
  13. package/dist/AI/index.d.ts +3 -0
  14. package/dist/AI/index.d.ts.map +1 -1
  15. package/dist/AI/index.js +6 -0
  16. package/dist/AI/index.js.map +1 -1
  17. package/dist/AI/services/ai-instrumentation.service.d.ts +50 -7
  18. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  19. package/dist/AI/services/ai-instrumentation.service.js +161 -193
  20. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  21. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts +11 -0
  22. package/dist/DashboardBrowser/dashboard-browser-resource.component.d.ts.map +1 -1
  23. package/dist/DashboardBrowser/dashboard-browser-resource.component.js +57 -0
  24. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  25. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +1 -1
  26. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +10 -2
  27. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  28. package/dist/DataExplorer/data-explorer-dashboard.component.js +35 -11
  29. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  30. package/dist/DataExplorer/data-explorer-resource.component.d.ts +1 -0
  31. package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
  32. package/dist/DataExplorer/data-explorer-resource.component.js +8 -4
  33. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  34. package/dist/Home/home-dashboard.component.d.ts +181 -1
  35. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  36. package/dist/Home/home-dashboard.component.js +1704 -182
  37. package/dist/Home/home-dashboard.component.js.map +1 -1
  38. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +121 -0
  39. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -0
  40. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +1058 -0
  41. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -0
  42. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.d.ts +56 -0
  43. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.d.ts.map +1 -0
  44. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.js +291 -0
  45. package/dist/KnowledgeHub/components/results-detail/search-result-detail.component.js.map +1 -0
  46. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts +85 -0
  47. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.d.ts.map +1 -0
  48. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js +461 -0
  49. package/dist/KnowledgeHub/components/search/knowledge-search-resource.component.js.map +1 -0
  50. package/dist/KnowledgeHub/index.d.ts +4 -0
  51. package/dist/KnowledgeHub/index.d.ts.map +1 -0
  52. package/dist/KnowledgeHub/index.js +5 -0
  53. package/dist/KnowledgeHub/index.js.map +1 -0
  54. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  55. package/dist/QueryBrowser/query-browser-resource.component.js +5 -1
  56. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  57. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  58. package/dist/SystemDiagnostics/system-diagnostics.component.js +1 -0
  59. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  60. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +7 -1
  61. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  62. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +63 -8
  63. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  64. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +9 -1
  65. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  66. package/dist/Testing/components/testing-dashboard-tab.component.js +109 -62
  67. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  68. package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
  69. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  70. package/dist/Testing/components/testing-explorer.component.js +241 -200
  71. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  72. package/dist/Testing/components/testing-runs-resource.component.d.ts +7 -1
  73. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  74. package/dist/Testing/components/testing-runs-resource.component.js +63 -8
  75. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  76. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  77. package/dist/Testing/components/testing-runs.component.js +7 -5
  78. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  79. package/dist/Testing/testing-dashboard.component.d.ts +9 -1
  80. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  81. package/dist/Testing/testing-dashboard.component.js +128 -59
  82. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  83. package/dist/ai-dashboards.module.d.ts +26 -19
  84. package/dist/ai-dashboards.module.d.ts.map +1 -1
  85. package/dist/ai-dashboards.module.js +40 -5
  86. package/dist/ai-dashboards.module.js.map +1 -1
  87. package/dist/core-dashboards.module.d.ts +1 -0
  88. package/dist/core-dashboards.module.d.ts.map +1 -1
  89. package/dist/core-dashboards.module.js +3 -0
  90. package/dist/core-dashboards.module.js.map +1 -1
  91. package/dist/public-api.d.ts +4 -1
  92. package/dist/public-api.d.ts.map +1 -1
  93. package/dist/public-api.js +5 -1
  94. package/dist/public-api.js.map +1 -1
  95. package/dist/testing-dashboards.module.d.ts +5 -4
  96. package/dist/testing-dashboards.module.d.ts.map +1 -1
  97. package/dist/testing-dashboards.module.js +4 -0
  98. package/dist/testing-dashboards.module.js.map +1 -1
  99. package/package.json +44 -42
@@ -11,22 +11,23 @@ import * as i1 from "@memberjunction/ng-testing";
11
11
  import * as i2 from "../services/testing-instrumentation.service";
12
12
  import * as i3 from "@angular/common";
13
13
  import * as i4 from "@angular/forms";
14
- import * as i5 from "@memberjunction/ng-shared-generic";
15
- import * as i6 from "../../shared/pipes/highlight-search.pipe";
14
+ import * as i5 from "@memberjunction/ng-versions";
15
+ import * as i6 from "@memberjunction/ng-shared-generic";
16
+ import * as i7 from "../../shared/pipes/highlight-search.pipe";
16
17
  const _c0 = a0 => ({ node: a0, depth: 0 });
17
18
  const _c1 = (a0, a1) => ({ node: a0, depth: a1 });
18
19
  const _forTrack0 = ($index, $item) => $item.ID;
19
20
  const _forTrack1 = ($index, $item) => $item.TestID;
20
21
  function TestingExplorerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
21
22
  i0.ɵɵelementStart(0, "div", 1);
22
- i0.ɵɵelement(1, "mj-loading", 7);
23
+ i0.ɵɵelement(1, "mj-loading", 8);
23
24
  i0.ɵɵelementEnd();
24
25
  } }
25
26
  function TestingExplorerComponent_Conditional_1_Conditional_7_For_20_ng_container_0_Template(rf, ctx) { if (rf & 1) {
26
27
  i0.ɵɵelementContainer(0);
27
28
  } }
28
29
  function TestingExplorerComponent_Conditional_1_Conditional_7_For_20_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵtemplate(0, TestingExplorerComponent_Conditional_1_Conditional_7_For_20_ng_container_0_Template, 1, 0, "ng-container", 49);
30
+ i0.ɵɵtemplate(0, TestingExplorerComponent_Conditional_1_Conditional_7_For_20_ng_container_0_Template, 1, 0, "ng-container", 50);
30
31
  } if (rf & 2) {
31
32
  const node_r5 = ctx.$implicit;
32
33
  i0.ɵɵnextContext(3);
@@ -34,19 +35,19 @@ function TestingExplorerComponent_Conditional_1_Conditional_7_For_20_Template(rf
34
35
  i0.ɵɵproperty("ngTemplateOutlet", suiteTreeTpl_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c0, node_r5));
35
36
  } }
36
37
  function TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template(rf, ctx) { if (rf & 1) {
37
- i0.ɵɵelementStart(0, "div", 47);
38
+ i0.ɵɵelementStart(0, "div", 48);
38
39
  i0.ɵɵtext(1, "No suites found");
39
40
  i0.ɵɵelementEnd();
40
41
  } }
41
42
  function TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template(rf, ctx) { if (rf & 1) {
42
43
  const _r7 = i0.ɵɵgetCurrentView();
43
- i0.ɵɵelementStart(0, "div", 43);
44
+ i0.ɵɵelementStart(0, "div", 44);
44
45
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template_div_click_0_listener() { const tt_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "testType", ID: tt_r8.ID })); });
45
- i0.ɵɵelement(1, "i", 50);
46
+ i0.ɵɵelement(1, "i", 51);
46
47
  i0.ɵɵelementStart(2, "span");
47
48
  i0.ɵɵtext(3);
48
49
  i0.ɵɵelementEnd();
49
- i0.ɵɵelementStart(4, "span", 45);
50
+ i0.ɵɵelementStart(4, "span", 46);
50
51
  i0.ɵɵtext(5);
51
52
  i0.ɵɵelementEnd()();
52
53
  } if (rf & 2) {
@@ -60,37 +61,37 @@ function TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template(rf
60
61
  } }
61
62
  function TestingExplorerComponent_Conditional_1_Conditional_7_Template(rf, ctx) { if (rf & 1) {
62
63
  const _r4 = i0.ɵɵgetCurrentView();
63
- i0.ɵɵelementStart(0, "div", 12)(1, "div", 41)(2, "div", 42);
64
+ i0.ɵɵelementStart(0, "div", 13)(1, "div", 42)(2, "div", 43);
64
65
  i0.ɵɵtext(3, "Browse");
65
66
  i0.ɵɵelementEnd();
66
- i0.ɵɵelementStart(4, "div", 43);
67
+ i0.ɵɵelementStart(4, "div", 44);
67
68
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_7_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "all", ID: null })); });
68
- i0.ɵɵelement(5, "i", 44);
69
+ i0.ɵɵelement(5, "i", 45);
69
70
  i0.ɵɵelementStart(6, "span");
70
71
  i0.ɵɵtext(7, "All Items");
71
72
  i0.ɵɵelementEnd();
72
- i0.ɵɵelementStart(8, "span", 45);
73
+ i0.ɵɵelementStart(8, "span", 46);
73
74
  i0.ɵɵtext(9);
74
75
  i0.ɵɵelementEnd()();
75
- i0.ɵɵelementStart(10, "div", 43);
76
+ i0.ɵɵelementStart(10, "div", 44);
76
77
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_7_Template_div_click_10_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "standalone", ID: null })); });
77
- i0.ɵɵelement(11, "i", 46);
78
+ i0.ɵɵelement(11, "i", 47);
78
79
  i0.ɵɵelementStart(12, "span");
79
80
  i0.ɵɵtext(13, "Standalone Tests");
80
81
  i0.ɵɵelementEnd();
81
- i0.ɵɵelementStart(14, "span", 45);
82
+ i0.ɵɵelementStart(14, "span", 46);
82
83
  i0.ɵɵtext(15);
83
84
  i0.ɵɵelementEnd()()();
84
- i0.ɵɵelementStart(16, "div", 41)(17, "div", 42);
85
+ i0.ɵɵelementStart(16, "div", 42)(17, "div", 43);
85
86
  i0.ɵɵtext(18, "Test Suites");
86
87
  i0.ɵɵelementEnd();
87
88
  i0.ɵɵrepeaterCreate(19, TestingExplorerComponent_Conditional_1_Conditional_7_For_20_Template, 1, 4, "ng-container", null, _forTrack0);
88
- i0.ɵɵconditionalCreate(21, TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template, 2, 0, "div", 47);
89
+ i0.ɵɵconditionalCreate(21, TestingExplorerComponent_Conditional_1_Conditional_7_Conditional_21_Template, 2, 0, "div", 48);
89
90
  i0.ɵɵelementEnd();
90
- i0.ɵɵelementStart(22, "div", 41)(23, "div", 42);
91
+ i0.ɵɵelementStart(22, "div", 42)(23, "div", 43);
91
92
  i0.ɵɵtext(24, "Test Types");
92
93
  i0.ɵɵelementEnd();
93
- i0.ɵɵrepeaterCreate(25, TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template, 6, 4, "div", 48, _forTrack0);
94
+ i0.ɵɵrepeaterCreate(25, TestingExplorerComponent_Conditional_1_Conditional_7_For_26_Template, 6, 4, "div", 49, _forTrack0);
94
95
  i0.ɵɵelementEnd()();
95
96
  } if (rf & 2) {
96
97
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -111,14 +112,14 @@ function TestingExplorerComponent_Conditional_1_Conditional_7_Template(rf, ctx)
111
112
  } }
112
113
  function TestingExplorerComponent_Conditional_1_Conditional_14_Template(rf, ctx) { if (rf & 1) {
113
114
  const _r9 = i0.ɵɵgetCurrentView();
114
- i0.ɵɵelementStart(0, "button", 51);
115
+ i0.ɵɵelementStart(0, "button", 52);
115
116
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ClearSearch()); });
116
- i0.ɵɵelement(1, "i", 52);
117
+ i0.ɵɵelement(1, "i", 53);
117
118
  i0.ɵɵelementEnd();
118
119
  } }
119
120
  function TestingExplorerComponent_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
120
121
  const _r10 = i0.ɵɵgetCurrentView();
121
- i0.ɵɵelementStart(0, "button", 53);
122
+ i0.ɵɵelementStart(0, "button", 54);
122
123
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_For_17_Template_button_click_0_listener() { const status_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.ToggleStatus(status_r11)); });
123
124
  i0.ɵɵtext(1);
124
125
  i0.ɵɵelementEnd();
@@ -131,7 +132,7 @@ function TestingExplorerComponent_Conditional_1_For_17_Template(rf, ctx) { if (r
131
132
  i0.ɵɵtextInterpolate1(" ", status_r11, " ");
132
133
  } }
133
134
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
134
- i0.ɵɵelement(0, "span", 78);
135
+ i0.ɵɵelement(0, "span", 79);
135
136
  i0.ɵɵtext(1);
136
137
  } if (rf & 2) {
137
138
  const suite_r13 = i0.ɵɵnextContext().$implicit;
@@ -140,7 +141,7 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For
140
141
  i0.ɵɵtextInterpolate1(" Last run ", ctx_r2.FormatRelativeTime(suite_r13.LastRunDate), " ");
141
142
  } }
142
143
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
143
- i0.ɵɵelement(0, "p", 66);
144
+ i0.ɵɵelement(0, "p", 67);
144
145
  i0.ɵɵpipe(1, "highlightSearch");
145
146
  } if (rf & 2) {
146
147
  const suite_r13 = i0.ɵɵnextContext().$implicit;
@@ -148,18 +149,18 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For
148
149
  i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, suite_r13.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
149
150
  } }
150
151
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
151
- i0.ɵɵelementStart(0, "div", 80);
152
- i0.ɵɵelement(1, "span", 81);
153
- i0.ɵɵelementStart(2, "span", 82);
152
+ i0.ɵɵelementStart(0, "div", 81);
153
+ i0.ɵɵelement(1, "span", 82);
154
+ i0.ɵɵelementStart(2, "span", 83);
154
155
  i0.ɵɵtext(3);
155
156
  i0.ɵɵelementEnd();
156
- i0.ɵɵelementStart(4, "span", 83);
157
+ i0.ɵɵelementStart(4, "span", 84);
157
158
  i0.ɵɵtext(5);
158
159
  i0.ɵɵelementEnd();
159
- i0.ɵɵelementStart(6, "span", 84);
160
- i0.ɵɵelement(7, "span", 85);
160
+ i0.ɵɵelementStart(6, "span", 85);
161
+ i0.ɵɵelement(7, "span", 86);
161
162
  i0.ɵɵelementEnd();
162
- i0.ɵɵelementStart(8, "span", 86);
163
+ i0.ɵɵelementStart(8, "span", 87);
163
164
  i0.ɵɵtext(9);
164
165
  i0.ɵɵelementEnd()();
165
166
  } if (rf & 2) {
@@ -182,13 +183,13 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For
182
183
  i0.ɵɵtextInterpolate(t_r14.LastStatus);
183
184
  } }
184
185
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Template(rf, ctx) { if (rf & 1) {
185
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template, 10, 11, "div", 80);
186
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Conditional_0_Template, 10, 11, "div", 81);
186
187
  } if (rf & 2) {
187
188
  const ɵ$index_227_r15 = ctx.$index;
188
189
  i0.ɵɵconditional(ɵ$index_227_r15 < 4 ? 0 : -1);
189
190
  } }
190
191
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
191
- i0.ɵɵelementStart(0, "div", 79);
192
+ i0.ɵɵelementStart(0, "div", 80);
192
193
  i0.ɵɵtext(1);
193
194
  i0.ɵɵelementEnd();
194
195
  } if (rf & 2) {
@@ -197,9 +198,9 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For
197
198
  i0.ɵɵtextInterpolate1("+", suite_r13.TotalTestsInSuite - 4, " more tests");
198
199
  } }
199
200
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Template(rf, ctx) { if (rf & 1) {
200
- i0.ɵɵelementStart(0, "div", 71);
201
+ i0.ɵɵelementStart(0, "div", 72);
201
202
  i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_For_2_Template, 1, 1, null, null, _forTrack1);
202
- i0.ɵɵconditionalCreate(3, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Conditional_3_Template, 2, 1, "div", 79);
203
+ i0.ɵɵconditionalCreate(3, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Conditional_3_Template, 2, 1, "div", 80);
203
204
  i0.ɵɵelementEnd();
204
205
  } if (rf & 2) {
205
206
  const suite_r13 = i0.ɵɵnextContext().$implicit;
@@ -210,56 +211,56 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For
210
211
  } }
211
212
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
212
213
  const _r12 = i0.ɵɵgetCurrentView();
213
- i0.ɵɵelementStart(0, "div", 59)(1, "div", 60)(2, "div", 61);
214
- i0.ɵɵelement(3, "i", 62)(4, "span", 63);
214
+ i0.ɵɵelementStart(0, "div", 60)(1, "div", 61)(2, "div", 62);
215
+ i0.ɵɵelement(3, "i", 63)(4, "span", 64);
215
216
  i0.ɵɵpipe(5, "highlightSearch");
216
- i0.ɵɵelementStart(6, "span", 64);
217
+ i0.ɵɵelementStart(6, "span", 65);
217
218
  i0.ɵɵtext(7);
218
219
  i0.ɵɵelementEnd()();
219
- i0.ɵɵelementStart(8, "div", 65);
220
+ i0.ɵɵelementStart(8, "div", 66);
220
221
  i0.ɵɵtext(9);
221
222
  i0.ɵɵconditionalCreate(10, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_10_Template, 2, 1);
222
223
  i0.ɵɵelementEnd();
223
- i0.ɵɵconditionalCreate(11, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 66);
224
+ i0.ɵɵconditionalCreate(11, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 67);
224
225
  i0.ɵɵelementEnd();
225
- i0.ɵɵelementStart(12, "div", 67)(13, "div", 68)(14, "span", 69);
226
+ i0.ɵɵelementStart(12, "div", 68)(13, "div", 69)(14, "span", 70);
226
227
  i0.ɵɵtext(15, "Pass Rate");
227
228
  i0.ɵɵelementEnd();
228
- i0.ɵɵelementStart(16, "span", 70);
229
+ i0.ɵɵelementStart(16, "span", 71);
229
230
  i0.ɵɵtext(17);
230
231
  i0.ɵɵelementEnd()();
231
- i0.ɵɵelementStart(18, "div", 68)(19, "span", 69);
232
+ i0.ɵɵelementStart(18, "div", 69)(19, "span", 70);
232
233
  i0.ɵɵtext(20, "Tests");
233
234
  i0.ɵɵelementEnd();
234
- i0.ɵɵelementStart(21, "span", 70);
235
+ i0.ɵɵelementStart(21, "span", 71);
235
236
  i0.ɵɵtext(22);
236
237
  i0.ɵɵelementEnd()();
237
- i0.ɵɵelementStart(23, "div", 68)(24, "span", 69);
238
+ i0.ɵɵelementStart(23, "div", 69)(24, "span", 70);
238
239
  i0.ɵɵtext(25, "Avg Score");
239
240
  i0.ɵɵelementEnd();
240
- i0.ɵɵelementStart(26, "span", 70);
241
+ i0.ɵɵelementStart(26, "span", 71);
241
242
  i0.ɵɵtext(27);
242
243
  i0.ɵɵelementEnd()();
243
- i0.ɵɵelementStart(28, "div", 68)(29, "span", 69);
244
+ i0.ɵɵelementStart(28, "div", 69)(29, "span", 70);
244
245
  i0.ɵɵtext(30, "Avg Duration");
245
246
  i0.ɵɵelementEnd();
246
- i0.ɵɵelementStart(31, "span", 70);
247
+ i0.ɵɵelementStart(31, "span", 71);
247
248
  i0.ɵɵtext(32);
248
249
  i0.ɵɵelementEnd()()();
249
- i0.ɵɵconditionalCreate(33, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Template, 4, 1, "div", 71);
250
- i0.ɵɵelementStart(34, "div", 72)(35, "button", 73);
250
+ i0.ɵɵconditionalCreate(33, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Conditional_33_Template, 4, 1, "div", 72);
251
+ i0.ɵɵelementStart(34, "div", 73)(35, "button", 74);
251
252
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template_button_click_35_listener() { const suite_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.RunSuite(suite_r13.ID)); });
252
- i0.ɵɵelement(36, "i", 74);
253
+ i0.ɵɵelement(36, "i", 75);
253
254
  i0.ɵɵtext(37, " Run Suite ");
254
255
  i0.ɵɵelementEnd();
255
- i0.ɵɵelementStart(38, "button", 75);
256
+ i0.ɵɵelementStart(38, "button", 76);
256
257
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template_button_click_38_listener() { const suite_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ViewSuiteResults(suite_r13.ID)); });
257
- i0.ɵɵelement(39, "i", 76);
258
+ i0.ɵɵelement(39, "i", 77);
258
259
  i0.ɵɵtext(40, " Results ");
259
260
  i0.ɵɵelementEnd();
260
- i0.ɵɵelementStart(41, "button", 75);
261
+ i0.ɵɵelementStart(41, "button", 76);
261
262
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template_button_click_41_listener() { const suite_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Test Suites", suite_r13.ID)); });
262
- i0.ɵɵelement(42, "i", 77);
263
+ i0.ɵɵelement(42, "i", 78);
263
264
  i0.ɵɵtext(43, " Edit ");
264
265
  i0.ɵɵelementEnd()()();
265
266
  } if (rf & 2) {
@@ -293,14 +294,14 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For
293
294
  i0.ɵɵconditional(suite_r13.Tests.length > 0 ? 33 : -1);
294
295
  } }
295
296
  function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_Template(rf, ctx) { if (rf & 1) {
296
- i0.ɵɵelementStart(0, "div", 54)(1, "h3", 55);
297
- i0.ɵɵelement(2, "i", 56);
297
+ i0.ɵɵelementStart(0, "div", 55)(1, "h3", 56);
298
+ i0.ɵɵelement(2, "i", 57);
298
299
  i0.ɵɵtext(3, " Test Suites ");
299
- i0.ɵɵelementStart(4, "span", 57);
300
+ i0.ɵɵelementStart(4, "span", 58);
300
301
  i0.ɵɵtext(5);
301
302
  i0.ɵɵelementEnd()();
302
- i0.ɵɵelementStart(6, "div", 58);
303
- i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template, 44, 18, "div", 59, _forTrack0);
303
+ i0.ɵɵelementStart(6, "div", 59);
304
+ i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_For_8_Template, 44, 18, "div", 60, _forTrack0);
304
305
  i0.ɵɵelementEnd()();
305
306
  } if (rf & 2) {
306
307
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -310,13 +311,13 @@ function TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_Tem
310
311
  i0.ɵɵrepeater(ctx_r2.FilteredSuites);
311
312
  } }
312
313
  function TestingExplorerComponent_Conditional_1_Conditional_46_Template(rf, ctx) { if (rf & 1) {
313
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_Template, 9, 1, "div", 54);
314
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_46_Conditional_0_Template, 9, 1, "div", 55);
314
315
  } if (rf & 2) {
315
316
  const ctx_r2 = i0.ɵɵnextContext(2);
316
317
  i0.ɵɵconditional(ctx_r2.FilteredSuites.length > 0 ? 0 : -1);
317
318
  } }
318
319
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_10_Template(rf, ctx) { if (rf & 1) {
319
- i0.ɵɵelement(0, "span", 78);
320
+ i0.ɵɵelement(0, "span", 79);
320
321
  i0.ɵɵtext(1);
321
322
  } if (rf & 2) {
322
323
  const test_r17 = i0.ɵɵnextContext().$implicit;
@@ -324,7 +325,7 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
324
325
  i0.ɵɵtextInterpolate1(" ", test_r17.SuiteName, " ");
325
326
  } }
326
327
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
327
- i0.ɵɵelement(0, "p", 66);
328
+ i0.ɵɵelement(0, "p", 67);
328
329
  i0.ɵɵpipe(1, "highlightSearch");
329
330
  } if (rf & 2) {
330
331
  const test_r17 = i0.ɵɵnextContext().$implicit;
@@ -332,8 +333,8 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
332
333
  i0.ɵɵproperty("innerHTML", i0.ɵɵpipeBind2(1, 1, test_r17.Description, ctx_r2.SearchTerm), i0.ɵɵsanitizeHtml);
333
334
  } }
334
335
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_13_Template(rf, ctx) { if (rf & 1) {
335
- i0.ɵɵelementStart(0, "span", 90);
336
- i0.ɵɵelement(1, "i", 95);
336
+ i0.ɵɵelementStart(0, "span", 91);
337
+ i0.ɵɵelement(1, "i", 96);
337
338
  i0.ɵɵtext(2);
338
339
  i0.ɵɵelementEnd();
339
340
  } if (rf & 2) {
@@ -342,8 +343,8 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
342
343
  i0.ɵɵtextInterpolate1(" ", test_r17.TypeName);
343
344
  } }
344
345
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_14_Template(rf, ctx) { if (rf & 1) {
345
- i0.ɵɵelementStart(0, "span", 90);
346
- i0.ɵɵelement(1, "i", 96);
346
+ i0.ɵɵelementStart(0, "span", 91);
347
+ i0.ɵɵelement(1, "i", 97);
347
348
  i0.ɵɵtext(2);
348
349
  i0.ɵɵelementEnd();
349
350
  } if (rf & 2) {
@@ -353,8 +354,8 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
353
354
  i0.ɵɵtextInterpolate1(" ~", ctx_r2.FormatDurationSeconds(test_r17.EstDuration));
354
355
  } }
355
356
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_15_Template(rf, ctx) { if (rf & 1) {
356
- i0.ɵɵelementStart(0, "span", 90);
357
- i0.ɵɵelement(1, "i", 97);
357
+ i0.ɵɵelementStart(0, "span", 91);
358
+ i0.ɵɵelement(1, "i", 98);
358
359
  i0.ɵɵtext(2);
359
360
  i0.ɵɵelementEnd();
360
361
  } if (rf & 2) {
@@ -364,7 +365,7 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
364
365
  i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatCost(test_r17.EstCost));
365
366
  } }
366
367
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
367
- i0.ɵɵelementStart(0, "span", 99);
368
+ i0.ɵɵelementStart(0, "span", 100);
368
369
  i0.ɵɵtext(1);
369
370
  i0.ɵɵelementEnd();
370
371
  } if (rf & 2) {
@@ -373,13 +374,13 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
373
374
  i0.ɵɵtextInterpolate(tag_r18);
374
375
  } }
375
376
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Template(rf, ctx) { if (rf & 1) {
376
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template, 2, 1, "span", 99);
377
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Conditional_0_Template, 2, 1, "span", 100);
377
378
  } if (rf & 2) {
378
379
  const ɵ$index_335_r19 = ctx.$index;
379
380
  i0.ɵɵconditional(ɵ$index_335_r19 < 4 ? 0 : -1);
380
381
  } }
381
382
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Conditional_3_Template(rf, ctx) { if (rf & 1) {
382
- i0.ɵɵelementStart(0, "span", 98);
383
+ i0.ɵɵelementStart(0, "span", 99);
383
384
  i0.ɵɵtext(1);
384
385
  i0.ɵɵelementEnd();
385
386
  } if (rf & 2) {
@@ -388,9 +389,9 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
388
389
  i0.ɵɵtextInterpolate1("+", test_r17.Tags.length - 4);
389
390
  } }
390
391
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Template(rf, ctx) { if (rf & 1) {
391
- i0.ɵɵelementStart(0, "div", 92);
392
+ i0.ɵɵelementStart(0, "div", 93);
392
393
  i0.ɵɵrepeaterCreate(1, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);
393
- i0.ɵɵconditionalCreate(3, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Conditional_3_Template, 2, 1, "span", 98);
394
+ i0.ɵɵconditionalCreate(3, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Conditional_3_Template, 2, 1, "span", 99);
394
395
  i0.ɵɵelementEnd();
395
396
  } if (rf & 2) {
396
397
  const test_r17 = i0.ɵɵnextContext().$implicit;
@@ -401,64 +402,64 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
401
402
  } }
402
403
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
403
404
  const _r16 = i0.ɵɵgetCurrentView();
404
- i0.ɵɵelementStart(0, "div", 87)(1, "div", 60)(2, "div", 61);
405
- i0.ɵɵelement(3, "i", 88)(4, "span", 63);
405
+ i0.ɵɵelementStart(0, "div", 88)(1, "div", 61)(2, "div", 62);
406
+ i0.ɵɵelement(3, "i", 89)(4, "span", 64);
406
407
  i0.ɵɵpipe(5, "highlightSearch");
407
- i0.ɵɵelementStart(6, "span", 64);
408
+ i0.ɵɵelementStart(6, "span", 65);
408
409
  i0.ɵɵtext(7);
409
410
  i0.ɵɵelementEnd()();
410
- i0.ɵɵelementStart(8, "div", 65);
411
+ i0.ɵɵelementStart(8, "div", 66);
411
412
  i0.ɵɵtext(9);
412
413
  i0.ɵɵconditionalCreate(10, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_10_Template, 2, 1);
413
414
  i0.ɵɵelementEnd();
414
- i0.ɵɵconditionalCreate(11, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 66);
415
- i0.ɵɵelementStart(12, "div", 89);
416
- i0.ɵɵconditionalCreate(13, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_13_Template, 3, 1, "span", 90);
417
- i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_14_Template, 3, 1, "span", 90);
418
- i0.ɵɵconditionalCreate(15, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_15_Template, 3, 1, "span", 90);
419
- i0.ɵɵelementStart(16, "span", 90);
420
- i0.ɵɵelement(17, "i", 91);
415
+ i0.ɵɵconditionalCreate(11, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_11_Template, 2, 4, "p", 67);
416
+ i0.ɵɵelementStart(12, "div", 90);
417
+ i0.ɵɵconditionalCreate(13, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_13_Template, 3, 1, "span", 91);
418
+ i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_14_Template, 3, 1, "span", 91);
419
+ i0.ɵɵconditionalCreate(15, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_15_Template, 3, 1, "span", 91);
420
+ i0.ɵɵelementStart(16, "span", 91);
421
+ i0.ɵɵelement(17, "i", 92);
421
422
  i0.ɵɵtext(18);
422
423
  i0.ɵɵelementEnd()();
423
- i0.ɵɵconditionalCreate(19, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Template, 4, 1, "div", 92);
424
+ i0.ɵɵconditionalCreate(19, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Conditional_19_Template, 4, 1, "div", 93);
424
425
  i0.ɵɵelementEnd();
425
- i0.ɵɵelementStart(20, "div", 67)(21, "div", 68)(22, "span", 69);
426
+ i0.ɵɵelementStart(20, "div", 68)(21, "div", 69)(22, "span", 70);
426
427
  i0.ɵɵtext(23, "Last Status");
427
428
  i0.ɵɵelementEnd();
428
- i0.ɵɵelementStart(24, "span", 93);
429
+ i0.ɵɵelementStart(24, "span", 94);
429
430
  i0.ɵɵtext(25);
430
431
  i0.ɵɵelementEnd()();
431
- i0.ɵɵelementStart(26, "div", 68)(27, "span", 69);
432
+ i0.ɵɵelementStart(26, "div", 69)(27, "span", 70);
432
433
  i0.ɵɵtext(28, "Score");
433
434
  i0.ɵɵelementEnd();
434
- i0.ɵɵelementStart(29, "span", 70);
435
+ i0.ɵɵelementStart(29, "span", 71);
435
436
  i0.ɵɵtext(30);
436
437
  i0.ɵɵelementEnd()();
437
- i0.ɵɵelementStart(31, "div", 68)(32, "span", 69);
438
+ i0.ɵɵelementStart(31, "div", 69)(32, "span", 70);
438
439
  i0.ɵɵtext(33, "Total Runs");
439
440
  i0.ɵɵelementEnd();
440
- i0.ɵɵelementStart(34, "span", 70);
441
+ i0.ɵɵelementStart(34, "span", 71);
441
442
  i0.ɵɵtext(35);
442
443
  i0.ɵɵelementEnd()();
443
- i0.ɵɵelementStart(36, "div", 68)(37, "span", 69);
444
+ i0.ɵɵelementStart(36, "div", 69)(37, "span", 70);
444
445
  i0.ɵɵtext(38, "Pass Rate");
445
446
  i0.ɵɵelementEnd();
446
- i0.ɵɵelementStart(39, "span", 70);
447
+ i0.ɵɵelementStart(39, "span", 71);
447
448
  i0.ɵɵtext(40);
448
449
  i0.ɵɵelementEnd()()();
449
- i0.ɵɵelementStart(41, "div", 72)(42, "button", 73);
450
+ i0.ɵɵelementStart(41, "div", 73)(42, "button", 74);
450
451
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template_button_click_42_listener() { const test_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.RunTest(test_r17.ID)); });
451
- i0.ɵɵelement(43, "i", 74);
452
+ i0.ɵɵelement(43, "i", 75);
452
453
  i0.ɵɵtext(44, " Run ");
453
454
  i0.ɵɵelementEnd();
454
- i0.ɵɵelementStart(45, "button", 75);
455
+ i0.ɵɵelementStart(45, "button", 76);
455
456
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template_button_click_45_listener() { const test_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ViewTestHistory(test_r17.ID)); });
456
- i0.ɵɵelement(46, "i", 94);
457
+ i0.ɵɵelement(46, "i", 95);
457
458
  i0.ɵɵtext(47, " History ");
458
459
  i0.ɵɵelementEnd();
459
- i0.ɵɵelementStart(48, "button", 75);
460
+ i0.ɵɵelementStart(48, "button", 76);
460
461
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template_button_click_48_listener() { const test_r17 = i0.ɵɵrestoreView(_r16).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.EditItem("MJ: Tests", test_r17.ID)); });
461
- i0.ɵɵelement(49, "i", 77);
462
+ i0.ɵɵelement(49, "i", 78);
462
463
  i0.ɵɵtext(50, " Edit ");
463
464
  i0.ɵɵelementEnd()()();
464
465
  } if (rf & 2) {
@@ -502,14 +503,14 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For
502
503
  i0.ɵɵtextInterpolate(test_r17.TotalRuns > 0 ? ctx_r2.FormatPercent(test_r17.PassRate) : "N/A");
503
504
  } }
504
505
  function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_Template(rf, ctx) { if (rf & 1) {
505
- i0.ɵɵelementStart(0, "div", 54)(1, "h3", 55);
506
- i0.ɵɵelement(2, "i", 46);
506
+ i0.ɵɵelementStart(0, "div", 55)(1, "h3", 56);
507
+ i0.ɵɵelement(2, "i", 47);
507
508
  i0.ɵɵtext(3, " Tests ");
508
- i0.ɵɵelementStart(4, "span", 57);
509
+ i0.ɵɵelementStart(4, "span", 58);
509
510
  i0.ɵɵtext(5);
510
511
  i0.ɵɵelementEnd()();
511
- i0.ɵɵelementStart(6, "div", 58);
512
- i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template, 51, 23, "div", 87, _forTrack0);
512
+ i0.ɵɵelementStart(6, "div", 59);
513
+ i0.ɵɵrepeaterCreate(7, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_For_8_Template, 51, 23, "div", 88, _forTrack0);
513
514
  i0.ɵɵelementEnd()();
514
515
  } if (rf & 2) {
515
516
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -519,85 +520,85 @@ function TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_Tem
519
520
  i0.ɵɵrepeater(ctx_r2.FilteredTests);
520
521
  } }
521
522
  function TestingExplorerComponent_Conditional_1_Conditional_47_Template(rf, ctx) { if (rf & 1) {
522
- i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_Template, 9, 1, "div", 54);
523
+ i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_1_Conditional_47_Conditional_0_Template, 9, 1, "div", 55);
523
524
  } if (rf & 2) {
524
525
  const ctx_r2 = i0.ɵɵnextContext(2);
525
526
  i0.ɵɵconditional(ctx_r2.FilteredTests.length > 0 ? 0 : -1);
526
527
  } }
527
528
  function TestingExplorerComponent_Conditional_1_Conditional_48_Template(rf, ctx) { if (rf & 1) {
528
- i0.ɵɵelementStart(0, "div", 40);
529
- i0.ɵɵelement(1, "i", 100);
529
+ i0.ɵɵelementStart(0, "div", 41);
530
+ i0.ɵɵelement(1, "i", 101);
530
531
  i0.ɵɵelementStart(2, "p");
531
532
  i0.ɵɵtext(3, "No tests or suites found");
532
533
  i0.ɵɵelementEnd();
533
- i0.ɵɵelementStart(4, "span", 101);
534
+ i0.ɵɵelementStart(4, "span", 102);
534
535
  i0.ɵɵtext(5, "Try adjusting your search or filters.");
535
536
  i0.ɵɵelementEnd()();
536
537
  } }
537
538
  function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
538
539
  const _r2 = i0.ɵɵgetCurrentView();
539
- i0.ɵɵelementStart(0, "div", 2)(1, "aside", 8)(2, "div", 9)(3, "h3");
540
+ i0.ɵɵelementStart(0, "div", 2)(1, "aside", 9)(2, "div", 10)(3, "h3");
540
541
  i0.ɵɵtext(4, "Explorer");
541
542
  i0.ɵɵelementEnd();
542
- i0.ɵɵelementStart(5, "button", 10);
543
+ i0.ɵɵelementStart(5, "button", 11);
543
544
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSidebar()); });
544
- i0.ɵɵelement(6, "i", 11);
545
+ i0.ɵɵelement(6, "i", 12);
545
546
  i0.ɵɵelementEnd()();
546
- i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_1_Conditional_7_Template, 27, 7, "div", 12);
547
+ i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_1_Conditional_7_Template, 27, 7, "div", 13);
547
548
  i0.ɵɵelementEnd();
548
- i0.ɵɵelementStart(8, "main", 13)(9, "div", 14)(10, "div", 15)(11, "div", 16);
549
- i0.ɵɵelement(12, "i", 17);
550
- i0.ɵɵelementStart(13, "input", 18);
549
+ i0.ɵɵelementStart(8, "main", 14)(9, "div", 15)(10, "div", 16)(11, "div", 17);
550
+ i0.ɵɵelement(12, "i", 18);
551
+ i0.ɵɵelementStart(13, "input", 19);
551
552
  i0.ɵɵlistener("input", function TestingExplorerComponent_Conditional_1_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSearchInput($event)); });
552
553
  i0.ɵɵelementEnd();
553
- i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_14_Template, 2, 0, "button", 19);
554
+ i0.ɵɵconditionalCreate(14, TestingExplorerComponent_Conditional_1_Conditional_14_Template, 2, 0, "button", 20);
554
555
  i0.ɵɵelementEnd();
555
- i0.ɵɵelementStart(15, "div", 20);
556
- i0.ɵɵrepeaterCreate(16, TestingExplorerComponent_Conditional_1_For_17_Template, 2, 4, "button", 21, i0.ɵɵrepeaterTrackByIdentity);
556
+ i0.ɵɵelementStart(15, "div", 21);
557
+ i0.ɵɵrepeaterCreate(16, TestingExplorerComponent_Conditional_1_For_17_Template, 2, 4, "button", 22, i0.ɵɵrepeaterTrackByIdentity);
557
558
  i0.ɵɵelementEnd()();
558
- i0.ɵɵelementStart(18, "div", 22)(19, "span", 23);
559
+ i0.ɵɵelementStart(18, "div", 23)(19, "span", 24);
559
560
  i0.ɵɵtext(20);
560
561
  i0.ɵɵelementEnd();
561
- i0.ɵɵelementStart(21, "div", 24)(22, "button", 25);
562
+ i0.ɵɵelementStart(21, "div", 25)(22, "button", 26);
562
563
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("card")); });
563
- i0.ɵɵelement(23, "i", 26);
564
+ i0.ɵɵelement(23, "i", 27);
564
565
  i0.ɵɵelementEnd();
565
- i0.ɵɵelementStart(24, "button", 27);
566
+ i0.ɵɵelementStart(24, "button", 28);
566
567
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetViewMode("list")); });
567
- i0.ɵɵelement(25, "i", 28);
568
+ i0.ɵɵelement(25, "i", 29);
568
569
  i0.ɵɵelementEnd()();
569
- i0.ɵɵelementStart(26, "button", 29);
570
+ i0.ɵɵelementStart(26, "button", 30);
570
571
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewSuite()); });
571
- i0.ɵɵelement(27, "i", 30);
572
+ i0.ɵɵelement(27, "i", 31);
572
573
  i0.ɵɵtext(28, " New Suite ");
573
574
  i0.ɵɵelementEnd();
574
- i0.ɵɵelementStart(29, "button", 31);
575
+ i0.ɵɵelementStart(29, "button", 32);
575
576
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnNewTest()); });
576
- i0.ɵɵelement(30, "i", 32);
577
+ i0.ɵɵelement(30, "i", 33);
577
578
  i0.ɵɵtext(31, " New Test ");
578
579
  i0.ɵɵelementEnd()()();
579
- i0.ɵɵelementStart(32, "div", 33)(33, "div", 34)(34, "button", 35);
580
+ i0.ɵɵelementStart(32, "div", 34)(33, "div", 35)(34, "button", 36);
580
581
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_34_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("all")); });
581
582
  i0.ɵɵtext(35, "All");
582
583
  i0.ɵɵelementEnd();
583
- i0.ɵɵelementStart(36, "button", 35);
584
+ i0.ɵɵelementStart(36, "button", 36);
584
585
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_36_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("suites")); });
585
586
  i0.ɵɵtext(37, "Suites Only");
586
587
  i0.ɵɵelementEnd();
587
- i0.ɵɵelementStart(38, "button", 35);
588
+ i0.ɵɵelementStart(38, "button", 36);
588
589
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_38_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetDisplayMode("tests")); });
589
590
  i0.ɵɵtext(39, "Tests Only");
590
591
  i0.ɵɵelementEnd()();
591
- i0.ɵɵelementStart(40, "div", 36)(41, "button", 37);
592
+ i0.ɵɵelementStart(40, "div", 37)(41, "button", 38);
592
593
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_1_Template_button_click_41_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSortDirection()); });
593
- i0.ɵɵelement(42, "i", 38);
594
+ i0.ɵɵelement(42, "i", 39);
594
595
  i0.ɵɵtext(43);
595
- i0.ɵɵelement(44, "i", 11);
596
+ i0.ɵɵelement(44, "i", 12);
596
597
  i0.ɵɵelementEnd()()();
597
- i0.ɵɵelementStart(45, "div", 39);
598
+ i0.ɵɵelementStart(45, "div", 40);
598
599
  i0.ɵɵconditionalCreate(46, TestingExplorerComponent_Conditional_1_Conditional_46_Template, 1, 1);
599
600
  i0.ɵɵconditionalCreate(47, TestingExplorerComponent_Conditional_1_Conditional_47_Template, 1, 1);
600
- i0.ɵɵconditionalCreate(48, TestingExplorerComponent_Conditional_1_Conditional_48_Template, 6, 0, "div", 40);
601
+ i0.ɵɵconditionalCreate(48, TestingExplorerComponent_Conditional_1_Conditional_48_Template, 6, 0, "div", 41);
601
602
  i0.ɵɵelementEnd()()();
602
603
  } if (rf & 2) {
603
604
  const ctx_r2 = i0.ɵɵnextContext();
@@ -638,9 +639,9 @@ function TestingExplorerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1)
638
639
  } }
639
640
  function TestingExplorerComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
640
641
  const _r22 = i0.ɵɵgetCurrentView();
641
- i0.ɵɵelementStart(0, "button", 105);
642
+ i0.ɵɵelementStart(0, "button", 106);
642
643
  i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Conditional_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r22); const node_r21 = i0.ɵɵnextContext().node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.ToggleSuiteExpand(node_r21, $event)); });
643
- i0.ɵɵelement(1, "i", 11);
644
+ i0.ɵɵelement(1, "i", 12);
644
645
  i0.ɵɵelementEnd();
645
646
  } if (rf & 2) {
646
647
  const node_r21 = i0.ɵɵnextContext().node;
@@ -651,7 +652,7 @@ function TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container
651
652
  i0.ɵɵelementContainer(0);
652
653
  } }
653
654
  function TestingExplorerComponent_ng_template_2_Conditional_7_For_1_Template(rf, ctx) { if (rf & 1) {
654
- i0.ɵɵtemplate(0, TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container_0_Template, 1, 0, "ng-container", 49);
655
+ i0.ɵɵtemplate(0, TestingExplorerComponent_ng_template_2_Conditional_7_For_1_ng_container_0_Template, 1, 0, "ng-container", 50);
655
656
  } if (rf & 2) {
656
657
  const child_r23 = ctx.$implicit;
657
658
  const depth_r24 = i0.ɵɵnextContext(2).depth;
@@ -667,14 +668,14 @@ function TestingExplorerComponent_ng_template_2_Conditional_7_Template(rf, ctx)
667
668
  } }
668
669
  function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
669
670
  const _r20 = i0.ɵɵgetCurrentView();
670
- i0.ɵɵelementStart(0, "div", 102);
671
+ i0.ɵɵelementStart(0, "div", 103);
671
672
  i0.ɵɵlistener("click", function TestingExplorerComponent_ng_template_2_Template_div_click_0_listener() { const node_r21 = i0.ɵɵrestoreView(_r20).node; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SelectSidebarItem({ Type: "suite", ID: node_r21.ID })); });
672
- i0.ɵɵconditionalCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 2, 4, "button", 103);
673
- i0.ɵɵelement(2, "i", 56);
674
- i0.ɵɵelementStart(3, "span", 104);
673
+ i0.ɵɵconditionalCreate(1, TestingExplorerComponent_ng_template_2_Conditional_1_Template, 2, 4, "button", 104);
674
+ i0.ɵɵelement(2, "i", 57);
675
+ i0.ɵɵelementStart(3, "span", 105);
675
676
  i0.ɵɵtext(4);
676
677
  i0.ɵɵelementEnd();
677
- i0.ɵɵelementStart(5, "span", 45);
678
+ i0.ɵɵelementStart(5, "span", 46);
678
679
  i0.ɵɵtext(6);
679
680
  i0.ɵɵelementEnd()();
680
681
  i0.ɵɵconditionalCreate(7, TestingExplorerComponent_ng_template_2_Conditional_7_Template, 2, 0);
@@ -695,13 +696,13 @@ function TestingExplorerComponent_ng_template_2_Template(rf, ctx) { if (rf & 1)
695
696
  } }
696
697
  function TestingExplorerComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
697
698
  const _r25 = i0.ɵɵgetCurrentView();
698
- i0.ɵɵelementStart(0, "div", 106);
699
+ i0.ɵɵelementStart(0, "div", 107);
699
700
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_4_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r25); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
700
701
  i0.ɵɵelementEnd();
701
702
  } }
702
703
  function TestingExplorerComponent_Conditional_7_Conditional_15_Template(rf, ctx) { if (rf & 1) {
703
- i0.ɵɵelementStart(0, "div", 115);
704
- i0.ɵɵelement(1, "i", 133);
704
+ i0.ɵɵelementStart(0, "div", 116);
705
+ i0.ɵɵelement(1, "i", 134);
705
706
  i0.ɵɵelementStart(2, "span");
706
707
  i0.ɵɵtext(3);
707
708
  i0.ɵɵelementEnd()();
@@ -711,7 +712,7 @@ function TestingExplorerComponent_Conditional_7_Conditional_15_Template(rf, ctx)
711
712
  i0.ɵɵtextInterpolate(ctx_r2.FormErrorMessage);
712
713
  } }
713
714
  function TestingExplorerComponent_Conditional_7_Conditional_31_For_9_Template(rf, ctx) { if (rf & 1) {
714
- i0.ɵɵelementStart(0, "option", 126);
715
+ i0.ɵɵelementStart(0, "option", 127);
715
716
  i0.ɵɵtext(1);
716
717
  i0.ɵɵelementEnd();
717
718
  } if (rf & 2) {
@@ -722,17 +723,17 @@ function TestingExplorerComponent_Conditional_7_Conditional_31_For_9_Template(rf
722
723
  } }
723
724
  function TestingExplorerComponent_Conditional_7_Conditional_31_Template(rf, ctx) { if (rf & 1) {
724
725
  const _r27 = i0.ɵɵgetCurrentView();
725
- i0.ɵɵelementStart(0, "div", 119)(1, "label", 120);
726
+ i0.ɵɵelementStart(0, "div", 120)(1, "label", 121);
726
727
  i0.ɵɵtext(2, "Test Type ");
727
- i0.ɵɵelementStart(3, "span", 121);
728
+ i0.ɵɵelementStart(3, "span", 122);
728
729
  i0.ɵɵtext(4, "*");
729
730
  i0.ɵɵelementEnd()();
730
- i0.ɵɵelementStart(5, "select", 125);
731
+ i0.ɵɵelementStart(5, "select", 126);
731
732
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_31_Template_select_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTypeID, $event) || (ctx_r2.FormTypeID = $event); return i0.ɵɵresetView($event); });
732
- i0.ɵɵelementStart(6, "option", 134);
733
+ i0.ɵɵelementStart(6, "option", 135);
733
734
  i0.ɵɵtext(7, "Select type...");
734
735
  i0.ɵɵelementEnd();
735
- i0.ɵɵrepeaterCreate(8, TestingExplorerComponent_Conditional_7_Conditional_31_For_9_Template, 2, 2, "option", 126, _forTrack0);
736
+ i0.ɵɵrepeaterCreate(8, TestingExplorerComponent_Conditional_7_Conditional_31_For_9_Template, 2, 2, "option", 127, _forTrack0);
736
737
  i0.ɵɵelementEnd()();
737
738
  } if (rf & 2) {
738
739
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -742,7 +743,7 @@ function TestingExplorerComponent_Conditional_7_Conditional_31_Template(rf, ctx)
742
743
  i0.ɵɵrepeater(ctx_r2.AllTestTypes);
743
744
  } }
744
745
  function TestingExplorerComponent_Conditional_7_Conditional_32_For_7_Template(rf, ctx) { if (rf & 1) {
745
- i0.ɵɵelementStart(0, "option", 126);
746
+ i0.ɵɵelementStart(0, "option", 127);
746
747
  i0.ɵɵtext(1);
747
748
  i0.ɵɵelementEnd();
748
749
  } if (rf & 2) {
@@ -753,15 +754,15 @@ function TestingExplorerComponent_Conditional_7_Conditional_32_For_7_Template(rf
753
754
  } }
754
755
  function TestingExplorerComponent_Conditional_7_Conditional_32_Template(rf, ctx) { if (rf & 1) {
755
756
  const _r29 = i0.ɵɵgetCurrentView();
756
- i0.ɵɵelementStart(0, "div", 119)(1, "label", 120);
757
+ i0.ɵɵelementStart(0, "div", 120)(1, "label", 121);
757
758
  i0.ɵɵtext(2, "Parent Suite");
758
759
  i0.ɵɵelementEnd();
759
- i0.ɵɵelementStart(3, "select", 125);
760
+ i0.ɵɵelementStart(3, "select", 126);
760
761
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_32_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormParentSuiteID, $event) || (ctx_r2.FormParentSuiteID = $event); return i0.ɵɵresetView($event); });
761
- i0.ɵɵelementStart(4, "option", 135);
762
+ i0.ɵɵelementStart(4, "option", 136);
762
763
  i0.ɵɵtext(5, "None (top-level)");
763
764
  i0.ɵɵelementEnd();
764
- i0.ɵɵrepeaterCreate(6, TestingExplorerComponent_Conditional_7_Conditional_32_For_7_Template, 2, 2, "option", 126, _forTrack0);
765
+ i0.ɵɵrepeaterCreate(6, TestingExplorerComponent_Conditional_7_Conditional_32_For_7_Template, 2, 2, "option", 127, _forTrack0);
765
766
  i0.ɵɵelementEnd()();
766
767
  } if (rf & 2) {
767
768
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -771,7 +772,7 @@ function TestingExplorerComponent_Conditional_7_Conditional_32_Template(rf, ctx)
771
772
  i0.ɵɵrepeater(ctx_r2.AllSuites);
772
773
  } }
773
774
  function TestingExplorerComponent_Conditional_7_For_38_Template(rf, ctx) { if (rf & 1) {
774
- i0.ɵɵelementStart(0, "option", 126);
775
+ i0.ɵɵelementStart(0, "option", 127);
775
776
  i0.ɵɵtext(1);
776
777
  i0.ɵɵelementEnd();
777
778
  } if (rf & 2) {
@@ -782,19 +783,19 @@ function TestingExplorerComponent_Conditional_7_For_38_Template(rf, ctx) { if (r
782
783
  } }
783
784
  function TestingExplorerComponent_Conditional_7_Conditional_39_Template(rf, ctx) { if (rf & 1) {
784
785
  const _r32 = i0.ɵɵgetCurrentView();
785
- i0.ɵɵelementStart(0, "div", 117)(1, "div", 118);
786
+ i0.ɵɵelementStart(0, "div", 118)(1, "div", 119);
786
787
  i0.ɵɵtext(2, "Estimates");
787
788
  i0.ɵɵelementEnd();
788
- i0.ɵɵelementStart(3, "div", 124)(4, "div", 119)(5, "label", 120);
789
+ i0.ɵɵelementStart(3, "div", 125)(4, "div", 120)(5, "label", 121);
789
790
  i0.ɵɵtext(6, "Duration (seconds)");
790
791
  i0.ɵɵelementEnd();
791
- i0.ɵɵelementStart(7, "input", 136);
792
+ i0.ɵɵelementStart(7, "input", 137);
792
793
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_39_Template_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstDuration, $event) || (ctx_r2.FormEstDuration = $event); return i0.ɵɵresetView($event); });
793
794
  i0.ɵɵelementEnd()();
794
- i0.ɵɵelementStart(8, "div", 119)(9, "label", 120);
795
+ i0.ɵɵelementStart(8, "div", 120)(9, "label", 121);
795
796
  i0.ɵɵtext(10, "Cost (USD)");
796
797
  i0.ɵɵelementEnd();
797
- i0.ɵɵelementStart(11, "input", 137);
798
+ i0.ɵɵelementStart(11, "input", 138);
798
799
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Conditional_39_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r2 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r2.FormEstCost, $event) || (ctx_r2.FormEstCost = $event); return i0.ɵɵresetView($event); });
799
800
  i0.ɵɵelementEnd()()()();
800
801
  } if (rf & 2) {
@@ -805,77 +806,77 @@ function TestingExplorerComponent_Conditional_7_Conditional_39_Template(rf, ctx)
805
806
  i0.ɵɵtwoWayProperty("ngModel", ctx_r2.FormEstCost);
806
807
  } }
807
808
  function TestingExplorerComponent_Conditional_7_Conditional_51_Template(rf, ctx) { if (rf & 1) {
808
- i0.ɵɵelement(0, "i", 131);
809
+ i0.ɵɵelement(0, "i", 132);
809
810
  } }
810
811
  function TestingExplorerComponent_Conditional_7_Conditional_52_Template(rf, ctx) { if (rf & 1) {
811
- i0.ɵɵelement(0, "i", 132);
812
+ i0.ɵɵelement(0, "i", 133);
812
813
  } }
813
814
  function TestingExplorerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
814
815
  const _r26 = i0.ɵɵgetCurrentView();
815
- i0.ɵɵelementStart(0, "div", 6)(1, "div", 107)(2, "div", 108);
816
- i0.ɵɵelement(3, "i", 109);
817
- i0.ɵɵelementStart(4, "span", 110);
816
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 108)(2, "div", 109);
817
+ i0.ɵɵelement(3, "i", 110);
818
+ i0.ɵɵelementStart(4, "span", 111);
818
819
  i0.ɵɵtext(5);
819
820
  i0.ɵɵelementEnd()();
820
- i0.ɵɵelementStart(6, "button", 111);
821
+ i0.ɵɵelementStart(6, "button", 112);
821
822
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
822
- i0.ɵɵelement(7, "i", 112);
823
+ i0.ɵɵelement(7, "i", 113);
823
824
  i0.ɵɵelementEnd()();
824
- i0.ɵɵelementStart(8, "div", 113)(9, "button", 114);
825
+ i0.ɵɵelementStart(8, "div", 114)(9, "button", 115);
825
826
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("test")); });
826
- i0.ɵɵelement(10, "i", 46);
827
+ i0.ɵɵelement(10, "i", 47);
827
828
  i0.ɵɵtext(11, " Test ");
828
829
  i0.ɵɵelementEnd();
829
- i0.ɵɵelementStart(12, "button", 114);
830
+ i0.ɵɵelementStart(12, "button", 115);
830
831
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetSlideoutCreateType("suite")); });
831
- i0.ɵɵelement(13, "i", 56);
832
+ i0.ɵɵelement(13, "i", 57);
832
833
  i0.ɵɵtext(14, " Suite ");
833
834
  i0.ɵɵelementEnd()();
834
- i0.ɵɵconditionalCreate(15, TestingExplorerComponent_Conditional_7_Conditional_15_Template, 4, 1, "div", 115);
835
- i0.ɵɵelementStart(16, "div", 116)(17, "div", 117)(18, "div", 118);
835
+ i0.ɵɵconditionalCreate(15, TestingExplorerComponent_Conditional_7_Conditional_15_Template, 4, 1, "div", 116);
836
+ i0.ɵɵelementStart(16, "div", 117)(17, "div", 118)(18, "div", 119);
836
837
  i0.ɵɵtext(19, "General");
837
838
  i0.ɵɵelementEnd();
838
- i0.ɵɵelementStart(20, "div", 119)(21, "label", 120);
839
+ i0.ɵɵelementStart(20, "div", 120)(21, "label", 121);
839
840
  i0.ɵɵtext(22, "Name ");
840
- i0.ɵɵelementStart(23, "span", 121);
841
+ i0.ɵɵelementStart(23, "span", 122);
841
842
  i0.ɵɵtext(24, "*");
842
843
  i0.ɵɵelementEnd()();
843
- i0.ɵɵelementStart(25, "input", 122);
844
+ i0.ɵɵelementStart(25, "input", 123);
844
845
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_input_ngModelChange_25_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormName, $event) || (ctx_r2.FormName = $event); return i0.ɵɵresetView($event); });
845
846
  i0.ɵɵelementEnd()();
846
- i0.ɵɵelementStart(26, "div", 119)(27, "label", 120);
847
+ i0.ɵɵelementStart(26, "div", 120)(27, "label", 121);
847
848
  i0.ɵɵtext(28, "Description");
848
849
  i0.ɵɵelementEnd();
849
- i0.ɵɵelementStart(29, "textarea", 123);
850
+ i0.ɵɵelementStart(29, "textarea", 124);
850
851
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_textarea_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormDescription, $event) || (ctx_r2.FormDescription = $event); return i0.ɵɵresetView($event); });
851
852
  i0.ɵɵelementEnd()();
852
- i0.ɵɵelementStart(30, "div", 124);
853
- i0.ɵɵconditionalCreate(31, TestingExplorerComponent_Conditional_7_Conditional_31_Template, 10, 1, "div", 119);
854
- i0.ɵɵconditionalCreate(32, TestingExplorerComponent_Conditional_7_Conditional_32_Template, 8, 1, "div", 119);
855
- i0.ɵɵelementStart(33, "div", 119)(34, "label", 120);
853
+ i0.ɵɵelementStart(30, "div", 125);
854
+ i0.ɵɵconditionalCreate(31, TestingExplorerComponent_Conditional_7_Conditional_31_Template, 10, 1, "div", 120);
855
+ i0.ɵɵconditionalCreate(32, TestingExplorerComponent_Conditional_7_Conditional_32_Template, 8, 1, "div", 120);
856
+ i0.ɵɵelementStart(33, "div", 120)(34, "label", 121);
856
857
  i0.ɵɵtext(35, "Status");
857
858
  i0.ɵɵelementEnd();
858
- i0.ɵɵelementStart(36, "select", 125);
859
+ i0.ɵɵelementStart(36, "select", 126);
859
860
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_select_ngModelChange_36_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormStatus, $event) || (ctx_r2.FormStatus = $event); return i0.ɵɵresetView($event); });
860
- i0.ɵɵrepeaterCreate(37, TestingExplorerComponent_Conditional_7_For_38_Template, 2, 2, "option", 126, i0.ɵɵrepeaterTrackByIdentity);
861
+ i0.ɵɵrepeaterCreate(37, TestingExplorerComponent_Conditional_7_For_38_Template, 2, 2, "option", 127, i0.ɵɵrepeaterTrackByIdentity);
861
862
  i0.ɵɵelementEnd()()()();
862
- i0.ɵɵconditionalCreate(39, TestingExplorerComponent_Conditional_7_Conditional_39_Template, 12, 2, "div", 117);
863
- i0.ɵɵelementStart(40, "div", 117)(41, "div", 118);
863
+ i0.ɵɵconditionalCreate(39, TestingExplorerComponent_Conditional_7_Conditional_39_Template, 12, 2, "div", 118);
864
+ i0.ɵɵelementStart(40, "div", 118)(41, "div", 119);
864
865
  i0.ɵɵtext(42, "Tags");
865
866
  i0.ɵɵelementEnd();
866
- i0.ɵɵelementStart(43, "div", 119)(44, "input", 127);
867
+ i0.ɵɵelementStart(43, "div", 120)(44, "input", 128);
867
868
  i0.ɵɵtwoWayListener("ngModelChange", function TestingExplorerComponent_Conditional_7_Template_input_ngModelChange_44_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.FormTags, $event) || (ctx_r2.FormTags = $event); return i0.ɵɵresetView($event); });
868
869
  i0.ɵɵelementEnd();
869
- i0.ɵɵelementStart(45, "span", 128);
870
+ i0.ɵɵelementStart(45, "span", 129);
870
871
  i0.ɵɵtext(46, "Separate multiple tags with commas");
871
872
  i0.ɵɵelementEnd()()()();
872
- i0.ɵɵelementStart(47, "div", 129)(48, "button", 29);
873
+ i0.ɵɵelementStart(47, "div", 130)(48, "button", 30);
873
874
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_48_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.CloseSlideout()); });
874
875
  i0.ɵɵtext(49, "Cancel");
875
876
  i0.ɵɵelementEnd();
876
- i0.ɵɵelementStart(50, "button", 130);
877
+ i0.ɵɵelementStart(50, "button", 131);
877
878
  i0.ɵɵlistener("click", function TestingExplorerComponent_Conditional_7_Template_button_click_50_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SaveForm()); });
878
- i0.ɵɵconditionalCreate(51, TestingExplorerComponent_Conditional_7_Conditional_51_Template, 1, 0, "i", 131)(52, TestingExplorerComponent_Conditional_7_Conditional_52_Template, 1, 0, "i", 132);
879
+ i0.ɵɵconditionalCreate(51, TestingExplorerComponent_Conditional_7_Conditional_51_Template, 1, 0, "i", 132)(52, TestingExplorerComponent_Conditional_7_Conditional_52_Template, 1, 0, "i", 133);
879
880
  i0.ɵɵtext(53);
880
881
  i0.ɵɵelementEnd()()();
881
882
  } if (rf & 2) {
@@ -913,6 +914,19 @@ function TestingExplorerComponent_Conditional_7_Template(rf, ctx) { if (rf & 1)
913
914
  i0.ɵɵadvance(2);
914
915
  i0.ɵɵtextInterpolate1(" Create ", ctx_r2.SlideoutCreateType === "test" ? "Test" : "Suite", " ");
915
916
  } }
917
+ function TestingExplorerComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
918
+ const _r33 = i0.ɵɵgetCurrentView();
919
+ i0.ɵɵelementStart(0, "mj-slide-panel", 139);
920
+ i0.ɵɵlistener("Closed", function TestingExplorerComponent_Conditional_8_Template_mj_slide_panel_Closed_0_listener() { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
921
+ i0.ɵɵelementStart(1, "app-test-run-dialog", 140);
922
+ i0.ɵɵlistener("PanelClose", function TestingExplorerComponent_Conditional_8_Template_app_test_run_dialog_PanelClose_1_listener() { i0.ɵɵrestoreView(_r33); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnPanelClosed()); });
923
+ i0.ɵɵelementEnd()();
924
+ } if (rf & 2) {
925
+ const ctx_r2 = i0.ɵɵnextContext();
926
+ i0.ɵɵproperty("Resizable", true);
927
+ i0.ɵɵadvance();
928
+ i0.ɵɵproperty("PanelMode", true)("selectedTestId", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.testId) ?? null)("selectedSuiteId", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.suiteId) ?? null)("runMode", (ctx_r2.testingDialogService.PanelOptions == null ? null : ctx_r2.testingDialogService.PanelOptions.mode) ?? "test");
929
+ } }
916
930
  export class TestingExplorerComponent {
917
931
  cdr;
918
932
  viewContainerRef;
@@ -1021,6 +1035,9 @@ export class TestingExplorerComponent {
1021
1035
  this.cdr.markForCheck();
1022
1036
  }
1023
1037
  this.subscribeToStateChanges();
1038
+ this.testingDialogService.PanelStateChanged$.pipe(takeUntil(this.destroy$)).subscribe(() => {
1039
+ this.cdr.detectChanges();
1040
+ });
1024
1041
  }
1025
1042
  ngOnDestroy() {
1026
1043
  this.destroy$.next();
@@ -1087,10 +1104,14 @@ export class TestingExplorerComponent {
1087
1104
  this._sortDirection$.next(newDir);
1088
1105
  }
1089
1106
  RunTest(testId) {
1090
- this.testingDialogService.OpenTestDialog(testId, this.viewContainerRef);
1107
+ this.testingDialogService.OpenTestPanel(testId);
1091
1108
  }
1092
1109
  RunSuite(suiteId) {
1093
- this.testingDialogService.OpenSuiteDialog(suiteId, this.viewContainerRef);
1110
+ this.testingDialogService.OpenSuitePanel(suiteId);
1111
+ }
1112
+ OnPanelClosed() {
1113
+ this.testingDialogService.ClosePanel();
1114
+ this.cdr.detectChanges();
1094
1115
  }
1095
1116
  EditItem(entityName, id) {
1096
1117
  SharedService.Instance.OpenEntityRecord(entityName, CompositeKey.FromID(id));
@@ -1643,7 +1664,7 @@ export class TestingExplorerComponent {
1643
1664
  throw new Error('Failed to save test suite. Please check your input and try again.');
1644
1665
  }
1645
1666
  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)); };
1646
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingExplorerComponent, selectors: [["app-testing-explorer"]], standalone: false, decls: 8, vars: 7, consts: [["suiteTreeTpl", ""], [1, "explorer-loading"], [1, "explorer-layout"], [1, "slideout-backdrop"], [1, "slideout-panel"], [1, "slideout-resize-handle", 3, "mousedown"], [1, "slideout-container"], ["text", "Loading test explorer..."], [1, "sidebar"], [1, "sidebar-header"], [1, "sidebar-toggle", 3, "click"], [1, "fa-solid"], [1, "sidebar-content"], [1, "main-content"], [1, "toolbar"], [1, "toolbar-left"], [1, "toolbar-search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search tests and suites...", 3, "input", "value"], [1, "clear-search"], [1, "status-chips"], [1, "chip", 3, "active"], [1, "toolbar-right"], [1, "result-count"], [1, "view-toggle"], ["title", "Card View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-list"], [1, "btn", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "btn", "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "toggle-bar"], [1, "toggle-group"], [1, "toggle-btn", 3, "click"], [1, "sort-indicator"], [1, "sort-btn", 3, "click"], [1, "fa-solid", "fa-arrow-down-short-wide"], [1, "content-area"], [1, "empty-state"], [1, "sidebar-section"], [1, "sidebar-section-title"], [1, "sidebar-item", 3, "click"], [1, "fa-solid", "fa-layer-group"], [1, "sidebar-count"], [1, "fa-solid", "fa-vial"], [1, "sidebar-empty"], [1, "sidebar-item", 3, "active"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "fa-solid", "fa-tag"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], [1, "chip", 3, "click"], [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, "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, "sidebar-item", "suite-tree-item", 3, "click"], [1, "tree-toggle"], [1, "tree-name"], [1, "tree-toggle", 3, "click"], [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-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"]], template: function TestingExplorerComponent_Template(rf, ctx) { if (rf & 1) {
1667
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingExplorerComponent, selectors: [["app-testing-explorer"]], standalone: false, decls: 9, vars: 8, consts: [["suiteTreeTpl", ""], [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..."], [1, "sidebar"], [1, "sidebar-header"], [1, "sidebar-toggle", 3, "click"], [1, "fa-solid"], [1, "sidebar-content"], [1, "main-content"], [1, "toolbar"], [1, "toolbar-left"], [1, "toolbar-search-box"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search tests and suites...", 3, "input", "value"], [1, "clear-search"], [1, "status-chips"], [1, "chip", 3, "active"], [1, "toolbar-right"], [1, "result-count"], [1, "view-toggle"], ["title", "Card View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-grip"], ["title", "List View", 1, "view-btn", 3, "click"], [1, "fa-solid", "fa-list"], [1, "btn", "btn-secondary", 3, "click"], [1, "fa-solid", "fa-folder-plus"], [1, "btn", "btn-primary", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "toggle-bar"], [1, "toggle-group"], [1, "toggle-btn", 3, "click"], [1, "sort-indicator"], [1, "sort-btn", 3, "click"], [1, "fa-solid", "fa-arrow-down-short-wide"], [1, "content-area"], [1, "empty-state"], [1, "sidebar-section"], [1, "sidebar-section-title"], [1, "sidebar-item", 3, "click"], [1, "fa-solid", "fa-layer-group"], [1, "sidebar-count"], [1, "fa-solid", "fa-vial"], [1, "sidebar-empty"], [1, "sidebar-item", 3, "active"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "fa-solid", "fa-tag"], [1, "clear-search", 3, "click"], [1, "fa-solid", "fa-times"], [1, "chip", 3, "click"], [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, "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, "sidebar-item", "suite-tree-item", 3, "click"], [1, "tree-toggle"], [1, "tree-name"], [1, "tree-toggle", 3, "click"], [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-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) {
1647
1668
  const _r1 = i0.ɵɵgetCurrentView();
1648
1669
  i0.ɵɵconditionalCreate(0, TestingExplorerComponent_Conditional_0_Template, 2, 0, "div", 1)(1, TestingExplorerComponent_Conditional_1_Template, 49, 28, "div", 2);
1649
1670
  i0.ɵɵtemplate(2, TestingExplorerComponent_ng_template_2_Template, 8, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
@@ -1653,6 +1674,7 @@ export class TestingExplorerComponent {
1653
1674
  i0.ɵɵelementEnd();
1654
1675
  i0.ɵɵconditionalCreate(7, TestingExplorerComponent_Conditional_7_Template, 54, 18, "div", 6);
1655
1676
  i0.ɵɵelementEnd();
1677
+ i0.ɵɵconditionalCreate(8, TestingExplorerComponent_Conditional_8_Template, 2, 5, "mj-slide-panel", 7);
1656
1678
  } if (rf & 2) {
1657
1679
  i0.ɵɵconditional(ctx.IsLoading ? 0 : 1);
1658
1680
  i0.ɵɵadvance(4);
@@ -1662,7 +1684,9 @@ export class TestingExplorerComponent {
1662
1684
  i0.ɵɵclassProp("open", ctx.SlideoutOpen);
1663
1685
  i0.ɵɵadvance(2);
1664
1686
  i0.ɵɵconditional(ctx.SlideoutOpen ? 7 : -1);
1665
- } }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.MinValidator, i4.NgModel, i5.LoadingComponent, i6.HighlightSearchPipe], styles: ["\n\n\n\n\n [_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n \n\n .explorer-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n \n\n .explorer-layout[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n \n\n\n\n .sidebar[_ngcontent-%COMP%] {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: none;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title[_ngcontent-%COMP%] {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] .sidebar-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .suite-tree-item[_ngcontent-%COMP%] {\n gap: 6px;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n .main-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n \n\n .toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n }\n\n .chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn[_ngcontent-%COMP%] {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm[_ngcontent-%COMP%] {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n \n\n .toggle-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .sort-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n \n\n .content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n }\n\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n \n\n .card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n \n\n .suite-card[_ngcontent-%COMP%], \n .test-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card[_ngcontent-%COMP%]:hover, \n .test-card[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 16px 16px 12px;\n }\n\n .card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .test-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .card-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep[_ngcontent-%COMP%] {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n \n\n .card-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .stat-value.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .stat-value.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"][_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n \n\n .card-tests-preview[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"][_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"][_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .preview-test-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-score.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-score.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .preview-bar[_ngcontent-%COMP%] {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .warn-bg[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .bad-bg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .preview-status[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n .preview-more[_ngcontent-%COMP%] {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n\n\n .slideout-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeInBackdrop 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open[_ngcontent-%COMP%] {\n right: 0;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n \n\n .slideout-type-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n \n\n .slideout-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n \n\n .slideout-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .form-section-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .form-input[_ngcontent-%COMP%], \n .form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input[_ngcontent-%COMP%]:focus, \n .form-textarea[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input[_ngcontent-%COMP%]::placeholder, \n .form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n \n\n .slideout-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n \n\n mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n \n\n\n\n @media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar[_ngcontent-%COMP%] {\n display: none;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%], .toolbar-right[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .card-stats[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .form-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"], changeDetection: 0 });
1687
+ i0.ɵɵadvance();
1688
+ i0.ɵɵconditional(ctx.testingDialogService.IsPanelOpen ? 8 : -1);
1689
+ } }, dependencies: [i3.NgTemplateOutlet, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.MinValidator, i4.NgModel, i1.TestRunDialogComponent, i5.MjSlidePanelComponent, i6.LoadingComponent, i7.HighlightSearchPipe], styles: ["\n\n\n\n\n [_nghost-%COMP%] {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n \n\n .explorer-loading[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n \n\n .explorer-layout[_ngcontent-%COMP%] {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n \n\n\n\n .sidebar[_ngcontent-%COMP%] {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n display: none;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title[_ngcontent-%COMP%] {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active[_ngcontent-%COMP%] .sidebar-count[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty[_ngcontent-%COMP%] {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .suite-tree-item[_ngcontent-%COMP%] {\n gap: 6px;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name[_ngcontent-%COMP%] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n .main-content[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n \n\n .toolbar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%]:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search[_ngcontent-%COMP%] {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n }\n\n .chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"][_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn[_ngcontent-%COMP%] {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n \n\n .btn[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary[_ngcontent-%COMP%]:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm[_ngcontent-%COMP%] {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n \n\n .toggle-bar[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn[_ngcontent-%COMP%]:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n }\n\n .sort-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }\n\n \n\n .content-area[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section[_ngcontent-%COMP%] {\n margin-bottom: 32px;\n }\n\n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n \n\n .card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n \n\n .suite-card[_ngcontent-%COMP%], \n .test-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card[_ngcontent-%COMP%]:hover, \n .test-card[_ngcontent-%COMP%]:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header[_ngcontent-%COMP%] {\n padding: 16px 16px 12px;\n }\n\n .card-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .test-icon[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .card-name[_ngcontent-%COMP%] {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"][_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"][_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep[_ngcontent-%COMP%] {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more[_ngcontent-%COMP%] {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n \n\n .card-stats[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .stat-value.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .stat-value.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"][_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"][_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n \n\n .card-tests-preview[_ngcontent-%COMP%] {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"][_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"][_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .preview-test-name[_ngcontent-%COMP%] {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score[_ngcontent-%COMP%] {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-score.warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-score.bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n .preview-bar[_ngcontent-%COMP%] {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .warn-bg[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .bad-bg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n .preview-status[_ngcontent-%COMP%] {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"][_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"][_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"][_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"][_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n .preview-more[_ngcontent-%COMP%] {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n \n\n .card-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n \n\n .empty-state[_ngcontent-%COMP%] {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n \n\n\n\n .slideout-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: _ngcontent-%COMP%_fadeInBackdrop 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open[_ngcontent-%COMP%] {\n right: 0;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%]:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n \n\n .slideout-type-toggle[_ngcontent-%COMP%] {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n \n\n .slideout-error[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n \n\n .slideout-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 24px;\n }\n\n .form-section-title[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n }\n\n .form-input[_ngcontent-%COMP%], \n .form-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input[_ngcontent-%COMP%]:focus, \n .form-textarea[_ngcontent-%COMP%]:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input[_ngcontent-%COMP%]::placeholder, \n .form-textarea[_ngcontent-%COMP%]::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n \n\n .slideout-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%] {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n \n\n mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n \n\n\n\n @media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar[_ngcontent-%COMP%] {\n display: none;\n }\n\n .toolbar[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left[_ngcontent-%COMP%], .toolbar-right[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .card-stats[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel[_ngcontent-%COMP%] {\n width: 100% !important;\n }\n\n .slideout-resize-handle[_ngcontent-%COMP%] {\n display: none;\n }\n\n .form-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n }"], changeDetection: 0 });
1666
1690
  }
1667
1691
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingExplorerComponent, [{
1668
1692
  type: Component,
@@ -2217,7 +2241,24 @@ export class TestingExplorerComponent {
2217
2241
  </div>
2218
2242
  }
2219
2243
  </div>
2244
+
2245
+ <!-- Slide Panel for Test Execution -->
2246
+ @if (testingDialogService.IsPanelOpen) {
2247
+ <mj-slide-panel
2248
+ Mode="slide"
2249
+ Title="Run Test"
2250
+ [Resizable]="true"
2251
+ (Closed)="OnPanelClosed()">
2252
+ <app-test-run-dialog
2253
+ [PanelMode]="true"
2254
+ [selectedTestId]="testingDialogService.PanelOptions?.testId ?? null"
2255
+ [selectedSuiteId]="testingDialogService.PanelOptions?.suiteId ?? null"
2256
+ [runMode]="testingDialogService.PanelOptions?.mode ?? 'test'"
2257
+ (PanelClose)="OnPanelClosed()">
2258
+ </app-test-run-dialog>
2259
+ </mj-slide-panel>
2260
+ }
2220
2261
  `, styles: ["\n /* ==========================================\n Testing Explorer Component\n ========================================== */\n\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n /* Loading */\n .explorer-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n min-height: 400px;\n background: var(--mj-bg-surface-sunken);\n }\n\n /* Layout */\n .explorer-layout {\n display: flex;\n height: 100%;\n background: var(--mj-bg-surface-sunken);\n overflow: hidden;\n }\n\n /* ==========================================\n Sidebar\n ========================================== */\n .sidebar {\n width: 280px;\n min-width: 280px;\n background: var(--mj-bg-surface);\n border-right: 1px solid var(--mj-border-default);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: width 0.2s ease, min-width 0.2s ease;\n }\n\n .sidebar.collapsed {\n width: 48px;\n min-width: 48px;\n }\n\n .sidebar-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .sidebar-header h3 {\n margin: 0;\n font-size: 15px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .sidebar.collapsed .sidebar-header h3 {\n display: none;\n }\n\n .sidebar-toggle {\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 11px;\n transition: all 0.15s ease;\n }\n\n .sidebar-toggle:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-content {\n flex: 1;\n overflow-y: auto;\n padding: 8px 0;\n }\n\n .sidebar-section {\n margin-bottom: 8px;\n }\n\n .sidebar-section-title {\n padding: 8px 16px 4px;\n font-size: 10px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n }\n\n .sidebar-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n font-size: 13px;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .sidebar-item:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n }\n\n .sidebar-item.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n font-weight: 600;\n }\n\n .sidebar-item i {\n font-size: 12px;\n width: 16px;\n text-align: center;\n flex-shrink: 0;\n }\n\n .sidebar-item span:not(.sidebar-count) {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .sidebar-count {\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n flex-shrink: 0;\n }\n\n .sidebar-item.active .sidebar-count {\n color: var(--mj-brand-primary);\n }\n\n .sidebar-empty {\n padding: 8px 16px;\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Tree nodes */\n .suite-tree-item {\n gap: 6px;\n }\n\n .tree-toggle {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 9px;\n flex-shrink: 0;\n border-radius: 4px;\n padding: 0;\n }\n\n .tree-toggle:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n .tree-name {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* ==========================================\n Main Content\n ========================================== */\n .main-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n /* Toolbar */\n .toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n padding: 16px 24px;\n background: var(--mj-bg-surface);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toolbar-left {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1;\n min-width: 0;\n }\n\n .toolbar-search-box {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n min-width: 240px;\n max-width: 360px;\n flex: 1;\n transition: border-color 0.2s ease;\n }\n\n .toolbar-search-box:focus-within {\n border-color: var(--mj-brand-primary);\n background: var(--mj-bg-surface);\n }\n\n .toolbar-search-box i {\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .toolbar-search-box input {\n flex: 1;\n border: none;\n background: transparent;\n outline: none;\n font-size: 13px;\n color: var(--mj-text-primary);\n }\n\n .toolbar-search-box input::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .clear-search {\n border: none;\n background: transparent;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 2px 4px;\n border-radius: 4px;\n }\n\n .clear-search:hover {\n color: var(--mj-text-muted);\n background: var(--mj-border-default);\n }\n\n .status-chips {\n display: flex;\n gap: 6px;\n }\n\n .chip {\n display: inline-flex;\n align-items: center;\n padding: 6px 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid transparent;\n border-radius: 16px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .chip:hover {\n background: var(--mj-border-default);\n }\n\n .chip.active {\n color: var(--mj-text-inverse);\n }\n\n .chip.active[data-status=\"active\"] {\n background: var(--mj-status-success);\n border-color: var(--mj-status-success);\n }\n\n .chip.active[data-status=\"pending\"] {\n background: var(--mj-status-warning);\n border-color: var(--mj-status-warning);\n }\n\n .chip.active[data-status=\"disabled\"] {\n background: var(--mj-text-muted);\n border-color: var(--mj-text-muted);\n }\n\n .toolbar-right {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .result-count {\n font-size: 12px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n white-space: nowrap;\n }\n\n .view-toggle {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .view-btn {\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--mj-bg-surface);\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n font-size: 13px;\n transition: all 0.15s ease;\n }\n\n .view-btn:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .view-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .view-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n /* Buttons */\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 9px 16px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.15s ease;\n white-space: nowrap;\n }\n\n .btn-primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .btn-primary:hover {\n background: var(--mj-brand-primary-hover);\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .btn-secondary {\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n border: 1px solid var(--mj-border-default);\n }\n\n .btn-secondary:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .btn-sm {\n padding: 6px 12px;\n font-size: 12px;\n }\n\n /* Toggle Bar */\n .toggle-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 24px;\n background: var(--mj-bg-surface-card);\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .toggle-group {\n display: flex;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n overflow: hidden;\n }\n\n .toggle-btn {\n padding: 6px 16px;\n background: var(--mj-bg-surface);\n border: none;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .toggle-btn:not(:last-child) {\n border-right: 1px solid var(--mj-border-default);\n }\n\n .toggle-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .toggle-btn:hover:not(.active) {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-indicator {\n display: flex;\n align-items: center;\n }\n\n .sort-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-muted);\n cursor: pointer;\n }\n\n .sort-btn:hover {\n background: var(--mj-bg-surface-sunken);\n }\n\n .sort-btn i {\n font-size: 11px;\n }\n\n /* Content Area */\n .content-area {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n .content-section {\n margin-bottom: 32px;\n }\n\n .section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0 0 16px 0;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .section-title i {\n color: var(--mj-brand-primary);\n font-size: 14px;\n }\n\n .section-count {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n background: var(--mj-bg-surface-sunken);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Card Grid */\n .card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));\n gap: 16px;\n }\n\n /* Suite Card */\n .suite-card,\n .test-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .suite-card:hover,\n .test-card:hover {\n border-color: color-mix(in srgb, var(--mj-brand-primary) 30%, var(--mj-bg-surface));\n box-shadow: var(--mj-shadow-md);\n }\n\n .card-header {\n padding: 16px 16px 12px;\n }\n\n .card-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 6px;\n }\n\n .card-icon {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n .suite-icon {\n color: var(--mj-brand-primary);\n }\n\n .test-icon {\n color: var(--mj-brand-primary);\n }\n\n .card-name {\n flex: 1;\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n flex-shrink: 0;\n }\n\n .status-badge[data-status=\"active\"] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .status-badge[data-status=\"pending\"] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .status-badge[data-status=\"disabled\"] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n }\n\n .card-subtitle {\n font-size: 12px;\n color: var(--mj-text-muted);\n margin-bottom: 6px;\n }\n\n .dot-sep {\n display: inline-block;\n width: 3px;\n height: 3px;\n background: var(--mj-text-disabled);\n border-radius: 50%;\n vertical-align: middle;\n margin: 0 6px;\n }\n\n .card-description {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n line-height: 1.5;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-meta-row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 8px;\n }\n\n .meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .meta-item i {\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n\n .card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 8px;\n }\n\n .tag {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n border-radius: 4px;\n }\n\n .tag-more {\n background: var(--mj-border-default);\n color: var(--mj-text-disabled);\n }\n\n /* Card Stats */\n .card-stats {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 1px;\n background: var(--mj-border-default);\n border-top: 1px solid var(--mj-border-default);\n }\n\n .stat {\n background: var(--mj-bg-surface-card);\n padding: 10px 12px;\n text-align: center;\n }\n\n .stat-label {\n display: block;\n font-size: 10px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.3px;\n margin-bottom: 2px;\n }\n\n .stat-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .stat-value.good { color: var(--mj-status-success); }\n .stat-value.warn { color: var(--mj-status-warning); }\n .stat-value.bad { color: var(--mj-status-error); }\n\n .status-text[data-status=\"passed\"] { color: var(--mj-status-success); }\n .status-text[data-status=\"failed\"] { color: var(--mj-status-error); }\n .status-text[data-status=\"error\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"running\"] { color: var(--mj-brand-primary); }\n .status-text[data-status=\"pending\"] { color: var(--mj-status-warning); }\n .status-text[data-status=\"skipped\"] { color: var(--mj-text-muted); }\n\n /* Suite Tests Preview */\n .card-tests-preview {\n padding: 10px 16px;\n border-top: 1px solid var(--mj-border-default);\n }\n\n .preview-test-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n font-size: 12px;\n }\n\n .preview-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .preview-dot[data-status=\"passed\"] { background: var(--mj-status-success); }\n .preview-dot[data-status=\"failed\"] { background: var(--mj-status-error); }\n .preview-dot[data-status=\"error\"] { background: var(--mj-status-warning); }\n .preview-dot[data-status=\"running\"] { background: var(--mj-brand-primary); }\n .preview-dot[data-status=\"\"] { background: var(--mj-text-disabled); }\n\n .preview-test-name {\n flex: 1;\n color: var(--mj-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .preview-score {\n font-weight: 600;\n font-size: 11px;\n min-width: 32px;\n text-align: right;\n }\n\n .preview-score.good { color: var(--mj-status-success); }\n .preview-score.warn { color: var(--mj-status-warning); }\n .preview-score.bad { color: var(--mj-status-error); }\n\n .preview-bar {\n width: 48px;\n height: 4px;\n background: var(--mj-border-default);\n border-radius: 2px;\n overflow: hidden;\n flex-shrink: 0;\n }\n\n .preview-bar-fill {\n height: 100%;\n border-radius: 2px;\n transition: width 0.3s ease;\n }\n\n .good-bg { background: var(--mj-status-success); }\n .warn-bg { background: var(--mj-status-warning); }\n .bad-bg { background: var(--mj-status-error); }\n\n .preview-status {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n min-width: 44px;\n text-align: right;\n }\n\n .preview-status[data-status=\"passed\"] { color: var(--mj-status-success); }\n .preview-status[data-status=\"failed\"] { color: var(--mj-status-error); }\n .preview-status[data-status=\"error\"] { color: var(--mj-status-warning); }\n .preview-status[data-status=\"\"] { color: var(--mj-text-disabled); }\n\n .preview-more {\n padding: 4px 0 0;\n font-size: 11px;\n color: var(--mj-text-disabled);\n font-style: italic;\n }\n\n /* Card Actions */\n .card-actions {\n display: flex;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n }\n\n /* Empty State */\n .empty-state {\n padding: 80px 40px;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n }\n\n .empty-state p {\n font-size: 16px;\n color: var(--mj-text-muted);\n margin: 0 0 8px 0;\n }\n\n .empty-hint {\n font-size: 13px;\n color: var(--mj-text-disabled);\n }\n\n /* ==========================================\n Slideout Panel\n ========================================== */\n .slideout-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--mj-bg-overlay);\n z-index: 999;\n animation: fadeInBackdrop 0.2s ease;\n }\n\n @keyframes fadeInBackdrop {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .slideout-panel {\n position: fixed;\n top: 0;\n right: -100%;\n height: 100vh;\n background: var(--mj-bg-surface);\n box-shadow: var(--mj-shadow-lg);\n z-index: 1000;\n transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .slideout-panel.open {\n right: 0;\n }\n\n .slideout-resize-handle {\n position: absolute;\n top: 0;\n left: 0;\n width: 5px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n transition: background 0.2s;\n }\n\n .slideout-resize-handle:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n }\n\n .slideout-resize-handle:active {\n background: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n }\n\n .slideout-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n }\n\n .slideout-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .slideout-title-row {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .slideout-title-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n }\n\n .slideout-title-text {\n font-size: 18px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n .slideout-close-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n font-size: 14px;\n transition: all 0.15s ease;\n }\n\n .slideout-close-btn:hover {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n border-color: var(--mj-border-strong);\n }\n\n /* Type Toggle */\n .slideout-type-toggle {\n display: flex;\n gap: 0;\n padding: 16px 24px;\n border-bottom: 1px solid var(--mj-border-default);\n flex-shrink: 0;\n }\n\n .type-toggle-btn {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 16px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .type-toggle-btn:first-child {\n border-radius: 8px 0 0 8px;\n border-right: none;\n }\n\n .type-toggle-btn:last-child {\n border-radius: 0 8px 8px 0;\n }\n\n .type-toggle-btn.active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .type-toggle-btn:hover:not(.active) {\n background: var(--mj-border-default);\n }\n\n /* Error Banner */\n .slideout-error {\n display: flex;\n align-items: center;\n gap: 10px;\n margin: 16px 24px 0;\n padding: 12px 16px;\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-status-error) 30%, var(--mj-bg-surface));\n border-radius: 8px;\n color: var(--mj-status-error);\n font-size: 13px;\n flex-shrink: 0;\n }\n\n .slideout-error i {\n font-size: 14px;\n flex-shrink: 0;\n }\n\n /* Slideout Body */\n .slideout-body {\n flex: 1;\n overflow-y: auto;\n padding: 20px 24px;\n }\n\n .form-section {\n margin-bottom: 24px;\n }\n\n .form-section-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--mj-border-default);\n }\n\n .form-group {\n margin-bottom: 16px;\n }\n\n .form-label {\n display: block;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n }\n\n .form-required {\n color: var(--mj-status-error);\n }\n\n .form-input,\n .form-textarea {\n width: 100%;\n padding: 10px 14px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-primary);\n transition: border-color 0.2s ease;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n }\n\n .form-input:focus,\n .form-textarea:focus {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .form-input::placeholder,\n .form-textarea::placeholder {\n color: var(--mj-text-disabled);\n }\n\n .form-textarea {\n resize: vertical;\n min-height: 80px;\n }\n\n .form-row {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n }\n\n .form-hint {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 4px;\n }\n\n /* Slideout Footer */\n .slideout-footer {\n display: flex;\n justify-content: flex-end;\n gap: 10px;\n padding: 16px 24px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n }\n\n .slideout-footer .btn {\n min-width: 100px;\n justify-content: center;\n }\n\n .slideout-footer .btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n }\n\n /* Search Highlight */\n ::ng-deep mark.search-highlight {\n background: color-mix(in srgb, var(--mj-status-warning) 20%, var(--mj-bg-surface));\n color: inherit;\n padding: 1px 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n\n /* ==========================================\n Responsive\n ========================================== */\n @media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 900px) {\n .sidebar {\n display: none;\n }\n\n .toolbar {\n flex-direction: column;\n align-items: stretch;\n }\n\n .toolbar-left, .toolbar-right {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n @media (max-width: 600px) {\n .content-area {\n padding: 16px;\n }\n\n .card-stats {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .slideout-panel {\n width: 100% !important;\n }\n\n .slideout-resize-handle {\n display: none;\n }\n\n .form-row {\n grid-template-columns: 1fr;\n }\n }\n "] }]
2221
2262
  }], () => [{ type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i1.TestingDialogService }, { type: i2.TestingInstrumentationService }], null); })();
2222
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber: 1805 }); })();
2263
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingExplorerComponent, { className: "TestingExplorerComponent", filePath: "src/Testing/components/testing-explorer.component.ts", lineNumber: 1822 }); })();
2223
2264
  //# sourceMappingURL=testing-explorer.component.js.map