@memberjunction/ng-dashboards 6.2.0-edge.1 → 6.2.0-edge.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +3 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -2
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
- package/dist/AI/components/rubric-drift-series.d.ts +32 -0
- package/dist/AI/components/rubric-drift-series.d.ts.map +1 -0
- package/dist/AI/components/rubric-drift-series.js +49 -0
- package/dist/AI/components/rubric-drift-series.js.map +1 -0
- package/dist/AI/components/rubric-drift.component.d.ts +42 -0
- package/dist/AI/components/rubric-drift.component.d.ts.map +1 -0
- package/dist/AI/components/rubric-drift.component.js +197 -0
- package/dist/AI/components/rubric-drift.component.js.map +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +4 -3
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +5 -2
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts +5 -0
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +151 -136
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +3 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts +11 -0
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js +17 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +52 -45
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +11 -0
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +47 -10
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Rubrics/catalog-grid.d.ts +4 -0
- package/dist/Rubrics/catalog-grid.d.ts.map +1 -0
- package/dist/Rubrics/catalog-grid.js +22 -0
- package/dist/Rubrics/catalog-grid.js.map +1 -0
- package/dist/Rubrics/rubrics-dashboard.component.d.ts +31 -0
- package/dist/Rubrics/rubrics-dashboard.component.d.ts.map +1 -0
- package/dist/Rubrics/rubrics-dashboard.component.js +285 -0
- package/dist/Rubrics/rubrics-dashboard.component.js.map +1 -0
- package/dist/Rubrics/rubrics-resource.component.d.ts +13 -0
- package/dist/Rubrics/rubrics-resource.component.d.ts.map +1 -0
- package/dist/Rubrics/rubrics-resource.component.js +42 -0
- package/dist/Rubrics/rubrics-resource.component.js.map +1 -0
- package/dist/Rubrics/scales-dashboard.component.d.ts +34 -0
- package/dist/Rubrics/scales-dashboard.component.d.ts.map +1 -0
- package/dist/Rubrics/scales-dashboard.component.js +204 -0
- package/dist/Rubrics/scales-dashboard.component.js.map +1 -0
- package/dist/Rubrics/scales-resource.component.d.ts +13 -0
- package/dist/Rubrics/scales-resource.component.d.ts.map +1 -0
- package/dist/Rubrics/scales-resource.component.js +42 -0
- package/dist/Rubrics/scales-resource.component.js.map +1 -0
- package/dist/Testing/components/testing-analytics.component.d.ts +15 -0
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +465 -296
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts +6 -0
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +289 -173
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts +8 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.d.ts.map +1 -1
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js +68 -43
- package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
- package/dist/module.d.ts +23 -22
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +1 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +1 -0
- package/dist/public-api.js.map +1 -1
- package/dist/rubrics-dashboards.module.d.ts +17 -0
- package/dist/rubrics-dashboards.module.d.ts.map +1 -0
- package/dist/rubrics-dashboards.module.js +76 -0
- package/dist/rubrics-dashboards.module.js.map +1 -0
- package/package.json +70 -64
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { takeUntil, map, shareReplay } from 'rxjs/operators';
|
|
4
|
+
import { CompositeKey, RunView } from '@memberjunction/core';
|
|
5
|
+
import { SharedService } from '@memberjunction/ng-shared';
|
|
6
|
+
import { CriterionFailureRates, CriterionIdentity, RubricScoreTrend } from '@memberjunction/ng-testing';
|
|
4
7
|
import * as i0 from "@angular/core";
|
|
5
8
|
import * as i1 from "../services/testing-instrumentation.service";
|
|
6
9
|
import * as i2 from "@angular/common";
|
|
7
10
|
import * as i3 from "@memberjunction/ng-ui-components";
|
|
8
11
|
const _forTrack0 = ($index, $item) => $item.days;
|
|
9
|
-
const _forTrack1 = ($index, $item) => $item.
|
|
10
|
-
const _forTrack2 = ($index, $item) => $item.
|
|
11
|
-
const _forTrack3 = ($index, $item) => $item.
|
|
12
|
+
const _forTrack1 = ($index, $item) => $item.key;
|
|
13
|
+
const _forTrack2 = ($index, $item) => $item.testName;
|
|
14
|
+
const _forTrack3 = ($index, $item) => $item.label;
|
|
15
|
+
const _forTrack4 = ($index, $item) => $item.version;
|
|
12
16
|
function TestingAnalyticsComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
13
17
|
i0.ɵɵelementContainer(0);
|
|
14
18
|
} }
|
|
@@ -50,482 +54,548 @@ function TestingAnalyticsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1)
|
|
|
50
54
|
i0.ɵɵadvance(4);
|
|
51
55
|
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
52
56
|
} }
|
|
53
|
-
function
|
|
54
|
-
i0.ɵɵ
|
|
57
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementStart(0, "p", 8);
|
|
59
|
+
i0.ɵɵtext(1);
|
|
60
|
+
i0.ɵɵelementEnd();
|
|
61
|
+
} if (rf & 2) {
|
|
62
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
63
|
+
i0.ɵɵadvance();
|
|
64
|
+
i0.ɵɵtextInterpolate(ctx_r4.RubricAnalyticsError);
|
|
65
|
+
} }
|
|
66
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_2_For_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
68
|
+
i0.ɵɵelementStart(0, "button", 33);
|
|
69
|
+
i0.ɵɵlistener("click", function TestingAnalyticsComponent_ng_template_2_Conditional_2_For_4_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const point_r7 = i0.ɵɵnextContext().$implicit; const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.OpenRun(point_r7.runId)); });
|
|
70
|
+
i0.ɵɵtext(1, "Open run");
|
|
71
|
+
i0.ɵɵelementEnd();
|
|
72
|
+
} }
|
|
73
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_2_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
+
i0.ɵɵelementStart(0, "p");
|
|
75
|
+
i0.ɵɵtext(1);
|
|
76
|
+
i0.ɵɵconditionalCreate(2, TestingAnalyticsComponent_ng_template_2_Conditional_2_For_4_Conditional_2_Template, 2, 0, "button", 32);
|
|
77
|
+
i0.ɵɵelementEnd();
|
|
78
|
+
} if (rf & 2) {
|
|
79
|
+
const point_r7 = ctx.$implicit;
|
|
80
|
+
i0.ɵɵadvance();
|
|
81
|
+
i0.ɵɵtextInterpolate2(" ", point_r7.at, " \u2014 ", point_r7.score, " ");
|
|
82
|
+
i0.ɵɵadvance();
|
|
83
|
+
i0.ɵɵconditional(point_r7.runId ? 2 : -1);
|
|
84
|
+
} }
|
|
85
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_2_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
+
i0.ɵɵelementStart(0, "p");
|
|
87
|
+
i0.ɵɵtext(1, "CriterionKey ");
|
|
88
|
+
i0.ɵɵelementStart(2, "code");
|
|
89
|
+
i0.ɵɵtext(3);
|
|
90
|
+
i0.ɵɵelementEnd();
|
|
91
|
+
i0.ɵɵtext(4);
|
|
92
|
+
i0.ɵɵelementEnd();
|
|
93
|
+
} if (rf & 2) {
|
|
94
|
+
const rate_r8 = ctx.$implicit;
|
|
95
|
+
i0.ɵɵadvance(3);
|
|
96
|
+
i0.ɵɵtextInterpolate(rate_r8.key);
|
|
97
|
+
i0.ɵɵadvance();
|
|
98
|
+
i0.ɵɵtextInterpolate1(" \u2014 ", rate_r8.rate);
|
|
55
99
|
} }
|
|
56
|
-
function
|
|
57
|
-
i0.ɵɵelementStart(0, "div",
|
|
100
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
102
|
+
i0.ɵɵelement(1, "i", 31);
|
|
103
|
+
i0.ɵɵtext(2, " Rubric scores ");
|
|
104
|
+
i0.ɵɵelementEnd();
|
|
105
|
+
i0.ɵɵrepeaterCreate(3, TestingAnalyticsComponent_ng_template_2_Conditional_2_For_4_Template, 3, 3, "p", null, i0.ɵɵrepeaterTrackByIndex);
|
|
106
|
+
i0.ɵɵrepeaterCreate(5, TestingAnalyticsComponent_ng_template_2_Conditional_2_For_6_Template, 5, 2, "p", null, _forTrack1);
|
|
107
|
+
} if (rf & 2) {
|
|
108
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
109
|
+
i0.ɵɵadvance(3);
|
|
110
|
+
i0.ɵɵrepeater(ctx_r4.RubricTrend);
|
|
111
|
+
i0.ɵɵadvance(2);
|
|
112
|
+
i0.ɵɵrepeater(ctx_r4.FailureRates);
|
|
113
|
+
} }
|
|
114
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
i0.ɵɵelement(0, "mj-empty-state", 34);
|
|
116
|
+
} }
|
|
117
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "span", 38);
|
|
58
119
|
i0.ɵɵtext(2);
|
|
59
120
|
i0.ɵɵelementEnd();
|
|
60
|
-
i0.ɵɵelementStart(3, "div",
|
|
61
|
-
i0.ɵɵelement(4, "div",
|
|
121
|
+
i0.ɵɵelementStart(3, "div", 39);
|
|
122
|
+
i0.ɵɵelement(4, "div", 40);
|
|
62
123
|
i0.ɵɵelementEnd();
|
|
63
|
-
i0.ɵɵelementStart(5, "span",
|
|
124
|
+
i0.ɵɵelementStart(5, "span", 41);
|
|
64
125
|
i0.ɵɵtext(6);
|
|
65
126
|
i0.ɵɵpipe(7, "number");
|
|
66
127
|
i0.ɵɵelementEnd()();
|
|
67
128
|
} if (rf & 2) {
|
|
68
|
-
const
|
|
129
|
+
const t_r9 = ctx.$implicit;
|
|
69
130
|
const ctx_r4 = i0.ɵɵnextContext(4);
|
|
70
131
|
i0.ɵɵadvance(2);
|
|
71
|
-
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(
|
|
132
|
+
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(t_r9.timestamp));
|
|
72
133
|
i0.ɵɵadvance(2);
|
|
73
|
-
i0.ɵɵstyleProp("width", ctx_r4.PassRate(
|
|
134
|
+
i0.ɵɵstyleProp("width", ctx_r4.PassRate(t_r9), "%");
|
|
74
135
|
i0.ɵɵadvance();
|
|
75
|
-
i0.ɵɵclassMap(ctx_r4.PassRateClass(
|
|
136
|
+
i0.ɵɵclassMap(ctx_r4.PassRateClass(t_r9));
|
|
76
137
|
i0.ɵɵadvance();
|
|
77
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(7, 6, ctx_r4.PassRate(
|
|
138
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(7, 6, ctx_r4.PassRate(t_r9), "1.0-0"), "%");
|
|
78
139
|
} }
|
|
79
|
-
function
|
|
80
|
-
i0.ɵɵelement(0, "i",
|
|
81
|
-
i0.ɵɵelementStart(1, "span",
|
|
140
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
141
|
+
i0.ɵɵelement(0, "i", 42);
|
|
142
|
+
i0.ɵɵelementStart(1, "span", 43);
|
|
82
143
|
i0.ɵɵtext(2, "Improving");
|
|
83
144
|
i0.ɵɵelementEnd();
|
|
84
145
|
} }
|
|
85
|
-
function
|
|
86
|
-
i0.ɵɵelement(0, "i",
|
|
87
|
-
i0.ɵɵelementStart(1, "span",
|
|
146
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
+
i0.ɵɵelement(0, "i", 44);
|
|
148
|
+
i0.ɵɵelementStart(1, "span", 45);
|
|
88
149
|
i0.ɵɵtext(2, "Declining");
|
|
89
150
|
i0.ɵɵelementEnd();
|
|
90
151
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵelement(0, "i",
|
|
93
|
-
i0.ɵɵelementStart(1, "span",
|
|
152
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
153
|
+
i0.ɵɵelement(0, "i", 46);
|
|
154
|
+
i0.ɵɵelementStart(1, "span", 47);
|
|
94
155
|
i0.ɵɵtext(2, "Stable");
|
|
95
156
|
i0.ɵɵelementEnd();
|
|
96
157
|
} }
|
|
97
|
-
function
|
|
98
|
-
i0.ɵɵconditionalCreate(0,
|
|
158
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
159
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Conditional_0_Template, 3, 0)(1, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Conditional_1_Template, 3, 0)(2, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Conditional_2_Template, 3, 0);
|
|
99
160
|
} if (rf & 2) {
|
|
100
|
-
const
|
|
101
|
-
i0.ɵɵconditional(
|
|
161
|
+
const dir_r10 = ctx;
|
|
162
|
+
i0.ɵɵconditional(dir_r10 === "up" ? 0 : dir_r10 === "down" ? 1 : 2);
|
|
102
163
|
} }
|
|
103
|
-
function
|
|
104
|
-
i0.ɵɵelementStart(0, "div",
|
|
105
|
-
i0.ɵɵrepeaterCreate(1,
|
|
164
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
165
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
166
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_For_2_Template, 8, 9, "div", 36, i0.ɵɵcomponentInstance().trackTrend, true);
|
|
106
167
|
i0.ɵɵelementEnd();
|
|
107
|
-
i0.ɵɵelementStart(3, "div",
|
|
108
|
-
i0.ɵɵconditionalCreate(4,
|
|
168
|
+
i0.ɵɵelementStart(3, "div", 37);
|
|
169
|
+
i0.ɵɵconditionalCreate(4, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Conditional_4_Template, 3, 1);
|
|
109
170
|
i0.ɵɵpipe(5, "async");
|
|
110
171
|
i0.ɵɵelementEnd();
|
|
111
172
|
} if (rf & 2) {
|
|
112
173
|
let tmp_6_0;
|
|
113
|
-
const
|
|
174
|
+
const trends_r11 = i0.ɵɵnextContext();
|
|
114
175
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
115
176
|
i0.ɵɵadvance();
|
|
116
|
-
i0.ɵɵrepeater(
|
|
177
|
+
i0.ɵɵrepeater(trends_r11);
|
|
117
178
|
i0.ɵɵadvance(3);
|
|
118
179
|
i0.ɵɵconditional((tmp_6_0 = i0.ɵɵpipeBind1(5, 1, ctx_r4.PassRateTrendDirection$)) ? 4 : -1, tmp_6_0);
|
|
119
180
|
} }
|
|
120
|
-
function
|
|
121
|
-
i0.ɵɵconditionalCreate(0,
|
|
181
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
182
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_0_Template, 1, 0, "mj-empty-state", 34)(1, TestingAnalyticsComponent_ng_template_2_Conditional_11_Conditional_1_Template, 6, 3);
|
|
122
183
|
} if (rf & 2) {
|
|
123
184
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
124
185
|
} }
|
|
125
|
-
function
|
|
126
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
186
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_17_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
187
|
+
i0.ɵɵelement(0, "mj-empty-state", 48);
|
|
127
188
|
} }
|
|
128
|
-
function
|
|
129
|
-
i0.ɵɵelementStart(0, "div",
|
|
189
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_17_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
190
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "span", 38);
|
|
130
191
|
i0.ɵɵtext(2);
|
|
131
192
|
i0.ɵɵelementEnd();
|
|
132
|
-
i0.ɵɵelementStart(3, "div",
|
|
133
|
-
i0.ɵɵelement(4, "div",
|
|
193
|
+
i0.ɵɵelementStart(3, "div", 53);
|
|
194
|
+
i0.ɵɵelement(4, "div", 54)(5, "div", 55)(6, "div", 56);
|
|
134
195
|
i0.ɵɵelementEnd();
|
|
135
|
-
i0.ɵɵelementStart(7, "span",
|
|
196
|
+
i0.ɵɵelementStart(7, "span", 41);
|
|
136
197
|
i0.ɵɵtext(8);
|
|
137
198
|
i0.ɵɵelementEnd()();
|
|
138
199
|
} if (rf & 2) {
|
|
139
|
-
const
|
|
200
|
+
const t_r12 = ctx.$implicit;
|
|
140
201
|
const ctx_r4 = i0.ɵɵnextContext(4);
|
|
141
202
|
i0.ɵɵadvance(2);
|
|
142
|
-
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(
|
|
203
|
+
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(t_r12.timestamp));
|
|
143
204
|
i0.ɵɵadvance(2);
|
|
144
|
-
i0.ɵɵstyleProp("width", ctx_r4.SegmentPct(
|
|
205
|
+
i0.ɵɵstyleProp("width", ctx_r4.SegmentPct(t_r12, "passed"), "%");
|
|
145
206
|
i0.ɵɵadvance();
|
|
146
|
-
i0.ɵɵstyleProp("width", ctx_r4.SegmentPct(
|
|
207
|
+
i0.ɵɵstyleProp("width", ctx_r4.SegmentPct(t_r12, "failed"), "%");
|
|
147
208
|
i0.ɵɵadvance();
|
|
148
|
-
i0.ɵɵstyleProp("width", ctx_r4.SegmentPct(
|
|
209
|
+
i0.ɵɵstyleProp("width", ctx_r4.SegmentPct(t_r12, "skipped"), "%");
|
|
149
210
|
i0.ɵɵadvance(2);
|
|
150
|
-
i0.ɵɵtextInterpolate(
|
|
211
|
+
i0.ɵɵtextInterpolate(t_r12.totalRuns);
|
|
151
212
|
} }
|
|
152
|
-
function
|
|
153
|
-
i0.ɵɵelementStart(0, "div",
|
|
154
|
-
i0.ɵɵrepeaterCreate(1,
|
|
213
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
214
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
215
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_17_Conditional_1_For_2_Template, 9, 8, "div", 36, i0.ɵɵcomponentInstance().trackTrend, true);
|
|
155
216
|
i0.ɵɵelementEnd();
|
|
156
|
-
i0.ɵɵelementStart(3, "div",
|
|
157
|
-
i0.ɵɵelement(4, "span",
|
|
217
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
218
|
+
i0.ɵɵelement(4, "span", 50);
|
|
158
219
|
i0.ɵɵtext(5, " Passed ");
|
|
159
|
-
i0.ɵɵelement(6, "span",
|
|
220
|
+
i0.ɵɵelement(6, "span", 51);
|
|
160
221
|
i0.ɵɵtext(7, " Failed ");
|
|
161
|
-
i0.ɵɵelement(8, "span",
|
|
222
|
+
i0.ɵɵelement(8, "span", 52);
|
|
162
223
|
i0.ɵɵtext(9, " Skipped ");
|
|
163
224
|
i0.ɵɵelementEnd();
|
|
164
225
|
} if (rf & 2) {
|
|
165
|
-
const
|
|
226
|
+
const trends_r13 = i0.ɵɵnextContext();
|
|
166
227
|
i0.ɵɵadvance();
|
|
167
|
-
i0.ɵɵrepeater(
|
|
228
|
+
i0.ɵɵrepeater(trends_r13);
|
|
168
229
|
} }
|
|
169
|
-
function
|
|
170
|
-
i0.ɵɵconditionalCreate(0,
|
|
230
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
231
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_17_Conditional_0_Template, 1, 0, "mj-empty-state", 48)(1, TestingAnalyticsComponent_ng_template_2_Conditional_17_Conditional_1_Template, 10, 0);
|
|
171
232
|
} if (rf & 2) {
|
|
172
233
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
173
234
|
} }
|
|
174
|
-
function
|
|
175
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
235
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_23_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
236
|
+
i0.ɵɵelement(0, "mj-empty-state", 57);
|
|
176
237
|
} }
|
|
177
|
-
function
|
|
178
|
-
i0.ɵɵelementStart(0, "div",
|
|
238
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_23_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
239
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "span", 38);
|
|
179
240
|
i0.ɵɵtext(2);
|
|
180
241
|
i0.ɵɵelementEnd();
|
|
181
|
-
i0.ɵɵelementStart(3, "div",
|
|
182
|
-
i0.ɵɵelement(4, "div",
|
|
242
|
+
i0.ɵɵelementStart(3, "div", 39);
|
|
243
|
+
i0.ɵɵelement(4, "div", 58);
|
|
183
244
|
i0.ɵɵelementEnd();
|
|
184
|
-
i0.ɵɵelementStart(5, "span",
|
|
245
|
+
i0.ɵɵelementStart(5, "span", 41);
|
|
185
246
|
i0.ɵɵtext(6);
|
|
186
247
|
i0.ɵɵpipe(7, "number");
|
|
187
248
|
i0.ɵɵelementEnd()();
|
|
188
249
|
} if (rf & 2) {
|
|
189
|
-
const
|
|
250
|
+
const t_r14 = ctx.$implicit;
|
|
190
251
|
const ctx_r4 = i0.ɵɵnextContext(4);
|
|
191
252
|
i0.ɵɵadvance(2);
|
|
192
|
-
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(
|
|
253
|
+
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(t_r14.timestamp));
|
|
193
254
|
i0.ɵɵadvance(2);
|
|
194
|
-
i0.ɵɵclassMap(ctx_r4.ScoreBarClass(
|
|
195
|
-
i0.ɵɵstyleProp("width",
|
|
255
|
+
i0.ɵɵclassMap(ctx_r4.ScoreBarClass(t_r14.averageScore));
|
|
256
|
+
i0.ɵɵstyleProp("width", t_r14.averageScore * 100, "%");
|
|
196
257
|
i0.ɵɵadvance();
|
|
197
|
-
i0.ɵɵclassMap(ctx_r4.ScoreTextClass(
|
|
258
|
+
i0.ɵɵclassMap(ctx_r4.ScoreTextClass(t_r14.averageScore));
|
|
198
259
|
i0.ɵɵadvance();
|
|
199
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(7, 8,
|
|
260
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(7, 8, t_r14.averageScore * 100, "1.0-0"), "%");
|
|
200
261
|
} }
|
|
201
|
-
function
|
|
202
|
-
i0.ɵɵelementStart(0, "div",
|
|
203
|
-
i0.ɵɵrepeaterCreate(1,
|
|
262
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_23_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
263
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
264
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_23_Conditional_1_For_2_Template, 8, 11, "div", 36, i0.ɵɵcomponentInstance().trackTrend, true);
|
|
204
265
|
i0.ɵɵelementEnd();
|
|
205
266
|
} if (rf & 2) {
|
|
206
|
-
const
|
|
267
|
+
const trends_r15 = i0.ɵɵnextContext();
|
|
207
268
|
i0.ɵɵadvance();
|
|
208
|
-
i0.ɵɵrepeater(
|
|
269
|
+
i0.ɵɵrepeater(trends_r15);
|
|
209
270
|
} }
|
|
210
|
-
function
|
|
211
|
-
i0.ɵɵconditionalCreate(0,
|
|
271
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
272
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_23_Conditional_0_Template, 1, 0, "mj-empty-state", 57)(1, TestingAnalyticsComponent_ng_template_2_Conditional_23_Conditional_1_Template, 3, 0, "div", 35);
|
|
212
273
|
} if (rf & 2) {
|
|
213
274
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
214
275
|
} }
|
|
215
|
-
function
|
|
216
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
276
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_29_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
277
|
+
i0.ɵɵelement(0, "mj-empty-state", 59);
|
|
217
278
|
} }
|
|
218
|
-
function
|
|
219
|
-
i0.ɵɵelementStart(0, "div",
|
|
279
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_29_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
280
|
+
i0.ɵɵelementStart(0, "div", 36)(1, "span", 38);
|
|
220
281
|
i0.ɵɵtext(2);
|
|
221
282
|
i0.ɵɵelementEnd();
|
|
222
|
-
i0.ɵɵelementStart(3, "div",
|
|
223
|
-
i0.ɵɵelement(4, "div",
|
|
283
|
+
i0.ɵɵelementStart(3, "div", 39);
|
|
284
|
+
i0.ɵɵelement(4, "div", 60);
|
|
224
285
|
i0.ɵɵelementEnd();
|
|
225
|
-
i0.ɵɵelementStart(5, "span",
|
|
286
|
+
i0.ɵɵelementStart(5, "span", 41);
|
|
226
287
|
i0.ɵɵtext(6);
|
|
227
288
|
i0.ɵɵpipe(7, "number");
|
|
228
289
|
i0.ɵɵelementEnd()();
|
|
229
290
|
} if (rf & 2) {
|
|
230
|
-
const
|
|
231
|
-
const
|
|
291
|
+
const t_r16 = ctx.$implicit;
|
|
292
|
+
const trends_r17 = i0.ɵɵnextContext(2);
|
|
232
293
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
233
294
|
i0.ɵɵadvance(2);
|
|
234
|
-
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(
|
|
295
|
+
i0.ɵɵtextInterpolate(ctx_r4.FormatBucketDate(t_r16.timestamp));
|
|
235
296
|
i0.ɵɵadvance(2);
|
|
236
|
-
i0.ɵɵstyleProp("width", ctx_r4.CostBarPct(
|
|
297
|
+
i0.ɵɵstyleProp("width", ctx_r4.CostBarPct(t_r16, trends_r17), "%");
|
|
237
298
|
i0.ɵɵadvance(2);
|
|
238
|
-
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(7, 4,
|
|
299
|
+
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(7, 4, t_r16.totalCost, "1.2-2"));
|
|
239
300
|
} }
|
|
240
|
-
function
|
|
241
|
-
i0.ɵɵelementStart(0, "div",
|
|
242
|
-
i0.ɵɵrepeaterCreate(1,
|
|
301
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_29_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
302
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
303
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_29_Conditional_1_For_2_Template, 8, 7, "div", 36, i0.ɵɵcomponentInstance().trackTrend, true);
|
|
243
304
|
i0.ɵɵelementEnd();
|
|
244
305
|
} if (rf & 2) {
|
|
245
|
-
const
|
|
306
|
+
const trends_r17 = i0.ɵɵnextContext();
|
|
246
307
|
i0.ɵɵadvance();
|
|
247
|
-
i0.ɵɵrepeater(
|
|
308
|
+
i0.ɵɵrepeater(trends_r17);
|
|
248
309
|
} }
|
|
249
|
-
function
|
|
250
|
-
i0.ɵɵconditionalCreate(0,
|
|
310
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
311
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_29_Conditional_0_Template, 1, 0, "mj-empty-state", 59)(1, TestingAnalyticsComponent_ng_template_2_Conditional_29_Conditional_1_Template, 3, 0, "div", 35);
|
|
251
312
|
} if (rf & 2) {
|
|
252
313
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
253
314
|
} }
|
|
254
|
-
function
|
|
255
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
315
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_39_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
316
|
+
i0.ɵɵelement(0, "mj-empty-state", 61);
|
|
256
317
|
} }
|
|
257
|
-
function
|
|
258
|
-
i0.ɵɵelementStart(0, "div",
|
|
318
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_39_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
319
|
+
i0.ɵɵelementStart(0, "div", 63)(1, "span", 64);
|
|
259
320
|
i0.ɵɵtext(2);
|
|
260
321
|
i0.ɵɵelementEnd();
|
|
261
|
-
i0.ɵɵelementStart(3, "span",
|
|
322
|
+
i0.ɵɵelementStart(3, "span", 65);
|
|
262
323
|
i0.ɵɵtext(4);
|
|
263
324
|
i0.ɵɵelementEnd();
|
|
264
|
-
i0.ɵɵelementStart(5, "span",
|
|
325
|
+
i0.ɵɵelementStart(5, "span", 66);
|
|
265
326
|
i0.ɵɵtext(6);
|
|
266
327
|
i0.ɵɵpipe(7, "number");
|
|
267
328
|
i0.ɵɵelementEnd()();
|
|
268
329
|
} if (rf & 2) {
|
|
269
|
-
const
|
|
330
|
+
const t_r18 = ctx.$implicit;
|
|
270
331
|
i0.ɵɵadvance();
|
|
271
|
-
i0.ɵɵproperty("title",
|
|
332
|
+
i0.ɵɵproperty("title", t_r18.testName);
|
|
272
333
|
i0.ɵɵadvance();
|
|
273
|
-
i0.ɵɵtextInterpolate(
|
|
334
|
+
i0.ɵɵtextInterpolate(t_r18.testName);
|
|
274
335
|
i0.ɵɵadvance(2);
|
|
275
|
-
i0.ɵɵtextInterpolate(
|
|
336
|
+
i0.ɵɵtextInterpolate(t_r18.failureCount);
|
|
276
337
|
i0.ɵɵadvance(2);
|
|
277
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(7, 4,
|
|
338
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(7, 4, t_r18.failureRate, "1.0-1"), "%");
|
|
278
339
|
} }
|
|
279
|
-
function
|
|
280
|
-
i0.ɵɵelementStart(0, "div",
|
|
281
|
-
i0.ɵɵrepeaterCreate(1,
|
|
340
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_39_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
341
|
+
i0.ɵɵelementStart(0, "div", 62);
|
|
342
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_39_Conditional_1_For_2_Template, 8, 7, "div", 63, _forTrack2);
|
|
282
343
|
i0.ɵɵelementEnd();
|
|
283
344
|
} if (rf & 2) {
|
|
284
|
-
const
|
|
345
|
+
const tests_r19 = i0.ɵɵnextContext();
|
|
285
346
|
i0.ɵɵadvance();
|
|
286
|
-
i0.ɵɵrepeater(
|
|
347
|
+
i0.ɵɵrepeater(tests_r19);
|
|
287
348
|
} }
|
|
288
|
-
function
|
|
289
|
-
i0.ɵɵconditionalCreate(0,
|
|
349
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
350
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_39_Conditional_0_Template, 1, 0, "mj-empty-state", 61)(1, TestingAnalyticsComponent_ng_template_2_Conditional_39_Conditional_1_Template, 3, 0, "div", 62);
|
|
290
351
|
} if (rf & 2) {
|
|
291
352
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
292
353
|
} }
|
|
293
|
-
function
|
|
294
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
354
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_45_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
355
|
+
i0.ɵɵelement(0, "mj-empty-state", 67);
|
|
295
356
|
} }
|
|
296
|
-
function
|
|
297
|
-
i0.ɵɵelementStart(0, "div",
|
|
357
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_45_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
358
|
+
i0.ɵɵelementStart(0, "div", 63)(1, "span", 64);
|
|
298
359
|
i0.ɵɵtext(2);
|
|
299
360
|
i0.ɵɵelementEnd();
|
|
300
|
-
i0.ɵɵelementStart(3, "span",
|
|
361
|
+
i0.ɵɵelementStart(3, "span", 68);
|
|
301
362
|
i0.ɵɵtext(4);
|
|
302
363
|
i0.ɵɵelementEnd();
|
|
303
|
-
i0.ɵɵelementStart(5, "span",
|
|
364
|
+
i0.ɵɵelementStart(5, "span", 66);
|
|
304
365
|
i0.ɵɵtext(6);
|
|
305
366
|
i0.ɵɵelementEnd()();
|
|
306
367
|
} if (rf & 2) {
|
|
307
|
-
const
|
|
368
|
+
const t_r20 = ctx.$implicit;
|
|
308
369
|
const ctx_r4 = i0.ɵɵnextContext(4);
|
|
309
370
|
i0.ɵɵadvance();
|
|
310
|
-
i0.ɵɵproperty("title",
|
|
371
|
+
i0.ɵɵproperty("title", t_r20.testName);
|
|
311
372
|
i0.ɵɵadvance();
|
|
312
|
-
i0.ɵɵtextInterpolate(
|
|
373
|
+
i0.ɵɵtextInterpolate(t_r20.testName);
|
|
313
374
|
i0.ɵɵadvance(2);
|
|
314
|
-
i0.ɵɵtextInterpolate(ctx_r4.FormatDuration(
|
|
375
|
+
i0.ɵɵtextInterpolate(ctx_r4.FormatDuration(t_r20.avgDuration));
|
|
315
376
|
i0.ɵɵadvance(2);
|
|
316
|
-
i0.ɵɵtextInterpolate1("max ", ctx_r4.FormatDuration(
|
|
377
|
+
i0.ɵɵtextInterpolate1("max ", ctx_r4.FormatDuration(t_r20.maxDuration));
|
|
317
378
|
} }
|
|
318
|
-
function
|
|
319
|
-
i0.ɵɵelementStart(0, "div",
|
|
320
|
-
i0.ɵɵrepeaterCreate(1,
|
|
379
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_45_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
380
|
+
i0.ɵɵelementStart(0, "div", 62);
|
|
381
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_45_Conditional_1_For_2_Template, 7, 4, "div", 63, _forTrack2);
|
|
321
382
|
i0.ɵɵelementEnd();
|
|
322
383
|
} if (rf & 2) {
|
|
323
|
-
const
|
|
384
|
+
const tests_r21 = i0.ɵɵnextContext();
|
|
324
385
|
i0.ɵɵadvance();
|
|
325
|
-
i0.ɵɵrepeater(
|
|
386
|
+
i0.ɵɵrepeater(tests_r21);
|
|
326
387
|
} }
|
|
327
|
-
function
|
|
328
|
-
i0.ɵɵconditionalCreate(0,
|
|
388
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_45_Template(rf, ctx) { if (rf & 1) {
|
|
389
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_45_Conditional_0_Template, 1, 0, "mj-empty-state", 67)(1, TestingAnalyticsComponent_ng_template_2_Conditional_45_Conditional_1_Template, 3, 0, "div", 62);
|
|
329
390
|
} if (rf & 2) {
|
|
330
391
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
331
392
|
} }
|
|
332
|
-
function
|
|
333
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
393
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
394
|
+
i0.ɵɵelement(0, "mj-empty-state", 69);
|
|
334
395
|
} }
|
|
335
|
-
function
|
|
336
|
-
i0.ɵɵelementStart(0, "div",
|
|
396
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_51_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
397
|
+
i0.ɵɵelementStart(0, "div", 63)(1, "span", 64);
|
|
337
398
|
i0.ɵɵtext(2);
|
|
338
399
|
i0.ɵɵelementEnd();
|
|
339
|
-
i0.ɵɵelementStart(3, "span",
|
|
400
|
+
i0.ɵɵelementStart(3, "span", 68);
|
|
340
401
|
i0.ɵɵtext(4);
|
|
341
402
|
i0.ɵɵpipe(5, "number");
|
|
342
403
|
i0.ɵɵelementEnd();
|
|
343
|
-
i0.ɵɵelementStart(6, "span",
|
|
404
|
+
i0.ɵɵelementStart(6, "span", 66);
|
|
344
405
|
i0.ɵɵtext(7);
|
|
345
406
|
i0.ɵɵpipe(8, "number");
|
|
346
407
|
i0.ɵɵelementEnd()();
|
|
347
408
|
} if (rf & 2) {
|
|
348
|
-
const
|
|
409
|
+
const t_r22 = ctx.$implicit;
|
|
349
410
|
i0.ɵɵadvance();
|
|
350
|
-
i0.ɵɵproperty("title",
|
|
411
|
+
i0.ɵɵproperty("title", t_r22.testName);
|
|
351
412
|
i0.ɵɵadvance();
|
|
352
|
-
i0.ɵɵtextInterpolate(
|
|
413
|
+
i0.ɵɵtextInterpolate(t_r22.testName);
|
|
353
414
|
i0.ɵɵadvance(2);
|
|
354
|
-
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(5, 4,
|
|
415
|
+
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(5, 4, t_r22.totalCost, "1.2-2"));
|
|
355
416
|
i0.ɵɵadvance(3);
|
|
356
|
-
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(8, 7,
|
|
417
|
+
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(8, 7, t_r22.avgCost, "1.4-4"), "/run");
|
|
357
418
|
} }
|
|
358
|
-
function
|
|
359
|
-
i0.ɵɵelementStart(0, "div",
|
|
360
|
-
i0.ɵɵrepeaterCreate(1,
|
|
419
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_51_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
420
|
+
i0.ɵɵelementStart(0, "div", 62);
|
|
421
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_51_Conditional_1_For_2_Template, 9, 10, "div", 63, _forTrack2);
|
|
361
422
|
i0.ɵɵelementEnd();
|
|
362
423
|
} if (rf & 2) {
|
|
363
|
-
const
|
|
424
|
+
const tests_r23 = i0.ɵɵnextContext();
|
|
364
425
|
i0.ɵɵadvance();
|
|
365
|
-
i0.ɵɵrepeater(
|
|
426
|
+
i0.ɵɵrepeater(tests_r23);
|
|
366
427
|
} }
|
|
367
|
-
function
|
|
368
|
-
i0.ɵɵconditionalCreate(0,
|
|
428
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_51_Template(rf, ctx) { if (rf & 1) {
|
|
429
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_51_Conditional_0_Template, 1, 0, "mj-empty-state", 69)(1, TestingAnalyticsComponent_ng_template_2_Conditional_51_Conditional_1_Template, 3, 0, "div", 62);
|
|
369
430
|
} if (rf & 2) {
|
|
370
431
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
371
432
|
} }
|
|
372
|
-
function
|
|
373
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
433
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_57_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
434
|
+
i0.ɵɵelement(0, "mj-empty-state", 70);
|
|
374
435
|
} }
|
|
375
|
-
function
|
|
376
|
-
i0.ɵɵelementStart(0, "div",
|
|
436
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_57_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
437
|
+
i0.ɵɵelementStart(0, "div", 72)(1, "span", 73);
|
|
377
438
|
i0.ɵɵtext(2);
|
|
378
439
|
i0.ɵɵelementEnd();
|
|
379
|
-
i0.ɵɵelementStart(3, "div",
|
|
380
|
-
i0.ɵɵelement(4, "div",
|
|
440
|
+
i0.ɵɵelementStart(3, "div", 74);
|
|
441
|
+
i0.ɵɵelement(4, "div", 75);
|
|
381
442
|
i0.ɵɵelementEnd();
|
|
382
|
-
i0.ɵɵelementStart(5, "span",
|
|
443
|
+
i0.ɵɵelementStart(5, "span", 76);
|
|
383
444
|
i0.ɵɵtext(6);
|
|
384
445
|
i0.ɵɵelementEnd();
|
|
385
|
-
i0.ɵɵelementStart(7, "span",
|
|
446
|
+
i0.ɵɵelementStart(7, "span", 77);
|
|
386
447
|
i0.ɵɵtext(8);
|
|
387
448
|
i0.ɵɵpipe(9, "number");
|
|
388
449
|
i0.ɵɵelementEnd()();
|
|
389
450
|
} if (rf & 2) {
|
|
390
|
-
const
|
|
451
|
+
const b_r24 = ctx.$implicit;
|
|
391
452
|
i0.ɵɵadvance(2);
|
|
392
|
-
i0.ɵɵtextInterpolate(
|
|
453
|
+
i0.ɵɵtextInterpolate(b_r24.label);
|
|
393
454
|
i0.ɵɵadvance(2);
|
|
394
|
-
i0.ɵɵstyleProp("width",
|
|
455
|
+
i0.ɵɵstyleProp("width", b_r24.percentage, "%")("background", b_r24.color);
|
|
395
456
|
i0.ɵɵadvance(2);
|
|
396
|
-
i0.ɵɵtextInterpolate(
|
|
457
|
+
i0.ɵɵtextInterpolate(b_r24.count);
|
|
397
458
|
i0.ɵɵadvance(2);
|
|
398
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(9, 7,
|
|
459
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(9, 7, b_r24.percentage, "1.0-1"), "%");
|
|
399
460
|
} }
|
|
400
|
-
function
|
|
401
|
-
i0.ɵɵelementStart(0, "div",
|
|
402
|
-
i0.ɵɵrepeaterCreate(1,
|
|
461
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_57_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
462
|
+
i0.ɵɵelementStart(0, "div", 71);
|
|
463
|
+
i0.ɵɵrepeaterCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_57_Conditional_1_For_2_Template, 10, 10, "div", 72, _forTrack3);
|
|
403
464
|
i0.ɵɵelementEnd();
|
|
404
465
|
} if (rf & 2) {
|
|
405
|
-
const
|
|
466
|
+
const buckets_r25 = i0.ɵɵnextContext();
|
|
406
467
|
i0.ɵɵadvance();
|
|
407
|
-
i0.ɵɵrepeater(
|
|
468
|
+
i0.ɵɵrepeater(buckets_r25);
|
|
408
469
|
} }
|
|
409
|
-
function
|
|
410
|
-
i0.ɵɵconditionalCreate(0,
|
|
470
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_57_Template(rf, ctx) { if (rf & 1) {
|
|
471
|
+
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_ng_template_2_Conditional_57_Conditional_0_Template, 1, 0, "mj-empty-state", 70)(1, TestingAnalyticsComponent_ng_template_2_Conditional_57_Conditional_1_Template, 3, 0, "div", 71);
|
|
411
472
|
} if (rf & 2) {
|
|
412
473
|
i0.ɵɵconditional(ctx.length === 0 ? 0 : 1);
|
|
413
474
|
} }
|
|
414
|
-
function
|
|
415
|
-
i0.ɵɵelementStart(0, "div",
|
|
416
|
-
i0.ɵɵelement(1, "i",
|
|
475
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_65_Template(rf, ctx) { if (rf & 1) {
|
|
476
|
+
i0.ɵɵelementStart(0, "div", 28);
|
|
477
|
+
i0.ɵɵelement(1, "i", 78);
|
|
417
478
|
i0.ɵɵelementStart(2, "span");
|
|
418
479
|
i0.ɵɵtext(3, "Loading versions...");
|
|
419
480
|
i0.ɵɵelementEnd()();
|
|
420
481
|
} }
|
|
421
|
-
function
|
|
422
|
-
i0.ɵɵ
|
|
482
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_66_Template(rf, ctx) { if (rf & 1) {
|
|
483
|
+
i0.ɵɵelementStart(0, "p", 8);
|
|
484
|
+
i0.ɵɵtext(1);
|
|
485
|
+
i0.ɵɵelementEnd();
|
|
486
|
+
} if (rf & 2) {
|
|
487
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
488
|
+
i0.ɵɵadvance();
|
|
489
|
+
i0.ɵɵtextInterpolate(ctx_r4.VersionMetricsError);
|
|
490
|
+
} }
|
|
491
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_67_Template(rf, ctx) { if (rf & 1) {
|
|
492
|
+
i0.ɵɵelement(0, "mj-empty-state", 29);
|
|
423
493
|
} }
|
|
424
|
-
function
|
|
425
|
-
i0.ɵɵelement(0, "i",
|
|
494
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
495
|
+
i0.ɵɵelement(0, "i", 85);
|
|
426
496
|
} }
|
|
427
|
-
function
|
|
428
|
-
i0.ɵɵelement(0, "i",
|
|
497
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_15_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
498
|
+
i0.ɵɵelement(0, "i", 86);
|
|
429
499
|
} }
|
|
430
|
-
function
|
|
431
|
-
i0.ɵɵelementStart(0, "span",
|
|
432
|
-
i0.ɵɵconditionalCreate(1,
|
|
500
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
501
|
+
i0.ɵɵelementStart(0, "span", 84);
|
|
502
|
+
i0.ɵɵconditionalCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_15_Conditional_1_Template, 1, 0, "i", 85)(2, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_15_Conditional_2_Template, 1, 0, "i", 86);
|
|
433
503
|
i0.ɵɵtext(3);
|
|
434
504
|
i0.ɵɵpipe(4, "number");
|
|
435
505
|
i0.ɵɵelementEnd();
|
|
436
506
|
} if (rf & 2) {
|
|
437
|
-
const
|
|
507
|
+
const row_r26 = i0.ɵɵnextContext().$implicit;
|
|
438
508
|
const ctx_r4 = i0.ɵɵnextContext(3);
|
|
439
|
-
i0.ɵɵclassProp("delta-up",
|
|
509
|
+
i0.ɵɵclassProp("delta-up", row_r26.passRateDelta > 0)("delta-down", row_r26.passRateDelta < 0)("delta-neutral", row_r26.passRateDelta === 0);
|
|
440
510
|
i0.ɵɵadvance();
|
|
441
|
-
i0.ɵɵconditional(
|
|
511
|
+
i0.ɵɵconditional(row_r26.passRateDelta > 0 ? 1 : row_r26.passRateDelta < 0 ? 2 : -1);
|
|
442
512
|
i0.ɵɵadvance(2);
|
|
443
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 8, ctx_r4.AbsNum(
|
|
513
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 8, ctx_r4.AbsNum(row_r26.passRateDelta), "1.1-1"), "% ");
|
|
444
514
|
} }
|
|
445
|
-
function
|
|
446
|
-
i0.ɵɵelement(0, "i",
|
|
515
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_20_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
516
|
+
i0.ɵɵelement(0, "i", 85);
|
|
447
517
|
} }
|
|
448
|
-
function
|
|
449
|
-
i0.ɵɵelement(0, "i",
|
|
518
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_20_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
519
|
+
i0.ɵɵelement(0, "i", 86);
|
|
450
520
|
} }
|
|
451
|
-
function
|
|
452
|
-
i0.ɵɵelementStart(0, "span",
|
|
453
|
-
i0.ɵɵconditionalCreate(1,
|
|
521
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
522
|
+
i0.ɵɵelementStart(0, "span", 84);
|
|
523
|
+
i0.ɵɵconditionalCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_20_Conditional_1_Template, 1, 0, "i", 85)(2, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_20_Conditional_2_Template, 1, 0, "i", 86);
|
|
454
524
|
i0.ɵɵtext(3);
|
|
455
525
|
i0.ɵɵpipe(4, "number");
|
|
456
526
|
i0.ɵɵelementEnd();
|
|
457
527
|
} if (rf & 2) {
|
|
458
|
-
const
|
|
528
|
+
const row_r26 = i0.ɵɵnextContext().$implicit;
|
|
459
529
|
const ctx_r4 = i0.ɵɵnextContext(3);
|
|
460
|
-
i0.ɵɵclassProp("delta-up",
|
|
530
|
+
i0.ɵɵclassProp("delta-up", row_r26.costDelta < 0)("delta-down", row_r26.costDelta > 0)("delta-neutral", row_r26.costDelta === 0);
|
|
461
531
|
i0.ɵɵadvance();
|
|
462
|
-
i0.ɵɵconditional(
|
|
532
|
+
i0.ɵɵconditional(row_r26.costDelta > 0 ? 1 : row_r26.costDelta < 0 ? 2 : -1);
|
|
463
533
|
i0.ɵɵadvance(2);
|
|
464
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 8, ctx_r4.AbsNum(
|
|
534
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 8, ctx_r4.AbsNum(row_r26.costDelta), "1.1-1"), "% ");
|
|
465
535
|
} }
|
|
466
|
-
function
|
|
467
|
-
i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span",
|
|
536
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Template(rf, ctx) { if (rf & 1) {
|
|
537
|
+
i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 81);
|
|
468
538
|
i0.ɵɵtext(3);
|
|
469
539
|
i0.ɵɵelementEnd();
|
|
470
|
-
i0.ɵɵelementStart(4, "span",
|
|
540
|
+
i0.ɵɵelementStart(4, "span", 82);
|
|
471
541
|
i0.ɵɵtext(5);
|
|
472
542
|
i0.ɵɵelementEnd()();
|
|
473
543
|
i0.ɵɵelementStart(6, "td");
|
|
474
544
|
i0.ɵɵtext(7);
|
|
475
545
|
i0.ɵɵpipe(8, "date");
|
|
476
546
|
i0.ɵɵelementEnd();
|
|
477
|
-
i0.ɵɵelementStart(9, "td",
|
|
547
|
+
i0.ɵɵelementStart(9, "td", 80);
|
|
478
548
|
i0.ɵɵtext(10);
|
|
479
549
|
i0.ɵɵelementEnd();
|
|
480
|
-
i0.ɵɵelementStart(11, "td",
|
|
550
|
+
i0.ɵɵelementStart(11, "td", 80)(12, "span");
|
|
481
551
|
i0.ɵɵtext(13);
|
|
482
552
|
i0.ɵɵpipe(14, "number");
|
|
483
553
|
i0.ɵɵelementEnd();
|
|
484
|
-
i0.ɵɵconditionalCreate(15,
|
|
554
|
+
i0.ɵɵconditionalCreate(15, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_15_Template, 5, 11, "span", 83);
|
|
485
555
|
i0.ɵɵelementEnd();
|
|
486
|
-
i0.ɵɵelementStart(16, "td",
|
|
556
|
+
i0.ɵɵelementStart(16, "td", 80)(17, "span");
|
|
487
557
|
i0.ɵɵtext(18);
|
|
488
558
|
i0.ɵɵpipe(19, "number");
|
|
489
559
|
i0.ɵɵelementEnd();
|
|
490
|
-
i0.ɵɵconditionalCreate(20,
|
|
560
|
+
i0.ɵɵconditionalCreate(20, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Conditional_20_Template, 5, 11, "span", 83);
|
|
491
561
|
i0.ɵɵelementEnd()();
|
|
492
562
|
} if (rf & 2) {
|
|
493
|
-
const
|
|
563
|
+
const row_r26 = ctx.$implicit;
|
|
494
564
|
i0.ɵɵadvance(3);
|
|
495
|
-
i0.ɵɵtextInterpolate(
|
|
565
|
+
i0.ɵɵtextInterpolate(row_r26.gitCommitShort);
|
|
496
566
|
i0.ɵɵadvance(2);
|
|
497
|
-
i0.ɵɵtextInterpolate(
|
|
567
|
+
i0.ɵɵtextInterpolate(row_r26.agentVersion);
|
|
498
568
|
i0.ɵɵadvance(2);
|
|
499
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(8, 8,
|
|
569
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(8, 8, row_r26.date, "mediumDate"));
|
|
500
570
|
i0.ɵɵadvance(3);
|
|
501
|
-
i0.ɵɵtextInterpolate(
|
|
571
|
+
i0.ɵɵtextInterpolate(row_r26.totalTests);
|
|
502
572
|
i0.ɵɵadvance(3);
|
|
503
|
-
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(14, 11,
|
|
573
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind2(14, 11, row_r26.passRate, "1.1-1"), "%");
|
|
504
574
|
i0.ɵɵadvance(2);
|
|
505
|
-
i0.ɵɵconditional(
|
|
575
|
+
i0.ɵɵconditional(row_r26.passRateDelta !== null ? 15 : -1);
|
|
506
576
|
i0.ɵɵadvance(3);
|
|
507
|
-
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(19, 14,
|
|
577
|
+
i0.ɵɵtextInterpolate1("$", i0.ɵɵpipeBind2(19, 14, row_r26.totalCost, "1.2-2"));
|
|
508
578
|
i0.ɵɵadvance(2);
|
|
509
|
-
i0.ɵɵconditional(
|
|
579
|
+
i0.ɵɵconditional(row_r26.costDelta !== null ? 20 : -1);
|
|
510
580
|
} }
|
|
511
|
-
function
|
|
512
|
-
i0.ɵɵelementStart(0, "div",
|
|
581
|
+
function TestingAnalyticsComponent_ng_template_2_Conditional_68_Template(rf, ctx) { if (rf & 1) {
|
|
582
|
+
i0.ɵɵelementStart(0, "div", 30)(1, "table", 79)(2, "thead")(3, "tr")(4, "th");
|
|
513
583
|
i0.ɵɵtext(5, "Version");
|
|
514
584
|
i0.ɵɵelementEnd();
|
|
515
585
|
i0.ɵɵelementStart(6, "th");
|
|
516
586
|
i0.ɵɵtext(7, "Date");
|
|
517
587
|
i0.ɵɵelementEnd();
|
|
518
|
-
i0.ɵɵelementStart(8, "th",
|
|
588
|
+
i0.ɵɵelementStart(8, "th", 80);
|
|
519
589
|
i0.ɵɵtext(9, "Tests");
|
|
520
590
|
i0.ɵɵelementEnd();
|
|
521
|
-
i0.ɵɵelementStart(10, "th",
|
|
591
|
+
i0.ɵɵelementStart(10, "th", 80);
|
|
522
592
|
i0.ɵɵtext(11, "Pass Rate");
|
|
523
593
|
i0.ɵɵelementEnd();
|
|
524
|
-
i0.ɵɵelementStart(12, "th",
|
|
594
|
+
i0.ɵɵelementStart(12, "th", 80);
|
|
525
595
|
i0.ɵɵtext(13, "Cost");
|
|
526
596
|
i0.ɵɵelementEnd()()();
|
|
527
597
|
i0.ɵɵelementStart(14, "tbody");
|
|
528
|
-
i0.ɵɵrepeaterCreate(15,
|
|
598
|
+
i0.ɵɵrepeaterCreate(15, TestingAnalyticsComponent_ng_template_2_Conditional_68_For_16_Template, 21, 17, "tr", null, _forTrack4);
|
|
529
599
|
i0.ɵɵelementEnd()()();
|
|
530
600
|
} if (rf & 2) {
|
|
531
601
|
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
@@ -533,108 +603,115 @@ function TestingAnalyticsComponent_ng_template_2_Conditional_65_Template(rf, ctx
|
|
|
533
603
|
i0.ɵɵrepeater(ctx_r4.VersionRows);
|
|
534
604
|
} }
|
|
535
605
|
function TestingAnalyticsComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
536
|
-
i0.ɵɵelementStart(0, "div", 7)
|
|
537
|
-
i0.ɵɵ
|
|
538
|
-
i0.ɵɵ
|
|
606
|
+
i0.ɵɵelementStart(0, "div", 7);
|
|
607
|
+
i0.ɵɵconditionalCreate(1, TestingAnalyticsComponent_ng_template_2_Conditional_1_Template, 2, 1, "p", 8);
|
|
608
|
+
i0.ɵɵconditionalCreate(2, TestingAnalyticsComponent_ng_template_2_Conditional_2_Template, 7, 0);
|
|
609
|
+
i0.ɵɵelementStart(3, "div", 9);
|
|
610
|
+
i0.ɵɵelement(4, "i", 10);
|
|
611
|
+
i0.ɵɵtext(5, " Trend Overview ");
|
|
539
612
|
i0.ɵɵelementEnd();
|
|
540
|
-
i0.ɵɵelementStart(
|
|
541
|
-
i0.ɵɵelement(
|
|
542
|
-
i0.ɵɵtext(
|
|
613
|
+
i0.ɵɵelementStart(6, "div", 11)(7, "div", 12)(8, "h4");
|
|
614
|
+
i0.ɵɵelement(9, "i", 13);
|
|
615
|
+
i0.ɵɵtext(10, " Pass Rate Trend");
|
|
543
616
|
i0.ɵɵelementEnd();
|
|
544
|
-
i0.ɵɵconditionalCreate(
|
|
545
|
-
i0.ɵɵpipe(
|
|
617
|
+
i0.ɵɵconditionalCreate(11, TestingAnalyticsComponent_ng_template_2_Conditional_11_Template, 2, 1);
|
|
618
|
+
i0.ɵɵpipe(12, "async");
|
|
546
619
|
i0.ɵɵelementEnd();
|
|
547
|
-
i0.ɵɵelementStart(
|
|
548
|
-
i0.ɵɵelement(
|
|
549
|
-
i0.ɵɵtext(
|
|
620
|
+
i0.ɵɵelementStart(13, "div", 12)(14, "h4");
|
|
621
|
+
i0.ɵɵelement(15, "i", 14);
|
|
622
|
+
i0.ɵɵtext(16, " Run Volume");
|
|
550
623
|
i0.ɵɵelementEnd();
|
|
551
|
-
i0.ɵɵconditionalCreate(
|
|
552
|
-
i0.ɵɵpipe(
|
|
624
|
+
i0.ɵɵconditionalCreate(17, TestingAnalyticsComponent_ng_template_2_Conditional_17_Template, 2, 1);
|
|
625
|
+
i0.ɵɵpipe(18, "async");
|
|
553
626
|
i0.ɵɵelementEnd();
|
|
554
|
-
i0.ɵɵelementStart(
|
|
555
|
-
i0.ɵɵelement(
|
|
556
|
-
i0.ɵɵtext(
|
|
627
|
+
i0.ɵɵelementStart(19, "div", 12)(20, "h4");
|
|
628
|
+
i0.ɵɵelement(21, "i", 15);
|
|
629
|
+
i0.ɵɵtext(22, " Score Trend");
|
|
557
630
|
i0.ɵɵelementEnd();
|
|
558
|
-
i0.ɵɵconditionalCreate(
|
|
559
|
-
i0.ɵɵpipe(
|
|
631
|
+
i0.ɵɵconditionalCreate(23, TestingAnalyticsComponent_ng_template_2_Conditional_23_Template, 2, 1);
|
|
632
|
+
i0.ɵɵpipe(24, "async");
|
|
560
633
|
i0.ɵɵelementEnd();
|
|
561
|
-
i0.ɵɵelementStart(
|
|
562
|
-
i0.ɵɵelement(
|
|
563
|
-
i0.ɵɵtext(
|
|
634
|
+
i0.ɵɵelementStart(25, "div", 12)(26, "h4");
|
|
635
|
+
i0.ɵɵelement(27, "i", 16);
|
|
636
|
+
i0.ɵɵtext(28, " Cost Trend");
|
|
564
637
|
i0.ɵɵelementEnd();
|
|
565
|
-
i0.ɵɵconditionalCreate(
|
|
566
|
-
i0.ɵɵpipe(
|
|
638
|
+
i0.ɵɵconditionalCreate(29, TestingAnalyticsComponent_ng_template_2_Conditional_29_Template, 2, 1);
|
|
639
|
+
i0.ɵɵpipe(30, "async");
|
|
567
640
|
i0.ɵɵelementEnd()();
|
|
568
|
-
i0.ɵɵelementStart(
|
|
569
|
-
i0.ɵɵelement(
|
|
570
|
-
i0.ɵɵtext(
|
|
641
|
+
i0.ɵɵelementStart(31, "div", 9);
|
|
642
|
+
i0.ɵɵelement(32, "i", 17);
|
|
643
|
+
i0.ɵɵtext(33, " Insights ");
|
|
571
644
|
i0.ɵɵelementEnd();
|
|
572
|
-
i0.ɵɵelementStart(
|
|
573
|
-
i0.ɵɵelement(
|
|
574
|
-
i0.ɵɵtext(
|
|
645
|
+
i0.ɵɵelementStart(34, "div", 18)(35, "div", 19)(36, "h4");
|
|
646
|
+
i0.ɵɵelement(37, "i", 20);
|
|
647
|
+
i0.ɵɵtext(38, " Top Failing Tests");
|
|
575
648
|
i0.ɵɵelementEnd();
|
|
576
|
-
i0.ɵɵconditionalCreate(
|
|
577
|
-
i0.ɵɵpipe(
|
|
649
|
+
i0.ɵɵconditionalCreate(39, TestingAnalyticsComponent_ng_template_2_Conditional_39_Template, 2, 1);
|
|
650
|
+
i0.ɵɵpipe(40, "async");
|
|
578
651
|
i0.ɵɵelementEnd();
|
|
579
|
-
i0.ɵɵelementStart(
|
|
580
|
-
i0.ɵɵelement(
|
|
581
|
-
i0.ɵɵtext(
|
|
652
|
+
i0.ɵɵelementStart(41, "div", 19)(42, "h4");
|
|
653
|
+
i0.ɵɵelement(43, "i", 21);
|
|
654
|
+
i0.ɵɵtext(44, " Slowest Tests");
|
|
582
655
|
i0.ɵɵelementEnd();
|
|
583
|
-
i0.ɵɵconditionalCreate(
|
|
584
|
-
i0.ɵɵpipe(
|
|
656
|
+
i0.ɵɵconditionalCreate(45, TestingAnalyticsComponent_ng_template_2_Conditional_45_Template, 2, 1);
|
|
657
|
+
i0.ɵɵpipe(46, "async");
|
|
585
658
|
i0.ɵɵelementEnd();
|
|
586
|
-
i0.ɵɵelementStart(
|
|
587
|
-
i0.ɵɵelement(
|
|
588
|
-
i0.ɵɵtext(
|
|
659
|
+
i0.ɵɵelementStart(47, "div", 19)(48, "h4");
|
|
660
|
+
i0.ɵɵelement(49, "i", 22);
|
|
661
|
+
i0.ɵɵtext(50, " Most Expensive Tests");
|
|
589
662
|
i0.ɵɵelementEnd();
|
|
590
|
-
i0.ɵɵconditionalCreate(
|
|
591
|
-
i0.ɵɵpipe(
|
|
663
|
+
i0.ɵɵconditionalCreate(51, TestingAnalyticsComponent_ng_template_2_Conditional_51_Template, 2, 1);
|
|
664
|
+
i0.ɵɵpipe(52, "async");
|
|
592
665
|
i0.ɵɵelementEnd()();
|
|
593
|
-
i0.ɵɵelementStart(
|
|
594
|
-
i0.ɵɵelement(
|
|
595
|
-
i0.ɵɵtext(
|
|
596
|
-
i0.ɵɵelementEnd();
|
|
597
|
-
i0.ɵɵelementStart(
|
|
598
|
-
i0.ɵɵconditionalCreate(
|
|
599
|
-
i0.ɵɵpipe(
|
|
600
|
-
i0.ɵɵelementEnd();
|
|
601
|
-
i0.ɵɵelementStart(
|
|
602
|
-
i0.ɵɵelement(
|
|
603
|
-
i0.ɵɵtext(
|
|
604
|
-
i0.ɵɵelementStart(
|
|
605
|
-
i0.ɵɵtext(
|
|
666
|
+
i0.ɵɵelementStart(53, "div", 9);
|
|
667
|
+
i0.ɵɵelement(54, "i", 23);
|
|
668
|
+
i0.ɵɵtext(55, " Score Distribution ");
|
|
669
|
+
i0.ɵɵelementEnd();
|
|
670
|
+
i0.ɵɵelementStart(56, "div", 24);
|
|
671
|
+
i0.ɵɵconditionalCreate(57, TestingAnalyticsComponent_ng_template_2_Conditional_57_Template, 2, 1);
|
|
672
|
+
i0.ɵɵpipe(58, "async");
|
|
673
|
+
i0.ɵɵelementEnd();
|
|
674
|
+
i0.ɵɵelementStart(59, "div", 9);
|
|
675
|
+
i0.ɵɵelement(60, "i", 25);
|
|
676
|
+
i0.ɵɵtext(61, " Version Comparison ");
|
|
677
|
+
i0.ɵɵelementStart(62, "span", 26);
|
|
678
|
+
i0.ɵɵtext(63, "Compare metrics across different builds");
|
|
606
679
|
i0.ɵɵelementEnd()();
|
|
607
|
-
i0.ɵɵelementStart(
|
|
608
|
-
i0.ɵɵconditionalCreate(
|
|
680
|
+
i0.ɵɵelementStart(64, "div", 27);
|
|
681
|
+
i0.ɵɵconditionalCreate(65, TestingAnalyticsComponent_ng_template_2_Conditional_65_Template, 4, 0, "div", 28)(66, TestingAnalyticsComponent_ng_template_2_Conditional_66_Template, 2, 1, "p", 8)(67, TestingAnalyticsComponent_ng_template_2_Conditional_67_Template, 1, 0, "mj-empty-state", 29)(68, TestingAnalyticsComponent_ng_template_2_Conditional_68_Template, 17, 0, "div", 30);
|
|
609
682
|
i0.ɵɵelementEnd()();
|
|
610
683
|
} if (rf & 2) {
|
|
611
|
-
let tmp_2_0;
|
|
612
|
-
let tmp_3_0;
|
|
613
684
|
let tmp_4_0;
|
|
614
685
|
let tmp_5_0;
|
|
615
686
|
let tmp_6_0;
|
|
616
687
|
let tmp_7_0;
|
|
617
688
|
let tmp_8_0;
|
|
618
689
|
let tmp_9_0;
|
|
690
|
+
let tmp_10_0;
|
|
691
|
+
let tmp_11_0;
|
|
619
692
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
693
|
+
i0.ɵɵadvance();
|
|
694
|
+
i0.ɵɵconditional(ctx_r4.RubricAnalyticsError ? 1 : -1);
|
|
695
|
+
i0.ɵɵadvance();
|
|
696
|
+
i0.ɵɵconditional(ctx_r4.RubricTrend.length || ctx_r4.FailureRates.length ? 2 : -1);
|
|
620
697
|
i0.ɵɵadvance(9);
|
|
621
|
-
i0.ɵɵconditional((
|
|
698
|
+
i0.ɵɵconditional((tmp_4_0 = i0.ɵɵpipeBind1(12, 11, ctx_r4.DisplayTrends$)) ? 11 : -1, tmp_4_0);
|
|
622
699
|
i0.ɵɵadvance(6);
|
|
623
|
-
i0.ɵɵconditional((
|
|
700
|
+
i0.ɵɵconditional((tmp_5_0 = i0.ɵɵpipeBind1(18, 13, ctx_r4.DisplayTrends$)) ? 17 : -1, tmp_5_0);
|
|
624
701
|
i0.ɵɵadvance(6);
|
|
625
|
-
i0.ɵɵconditional((
|
|
702
|
+
i0.ɵɵconditional((tmp_6_0 = i0.ɵɵpipeBind1(24, 15, ctx_r4.DisplayTrends$)) ? 23 : -1, tmp_6_0);
|
|
626
703
|
i0.ɵɵadvance(6);
|
|
627
|
-
i0.ɵɵconditional((
|
|
704
|
+
i0.ɵɵconditional((tmp_7_0 = i0.ɵɵpipeBind1(30, 17, ctx_r4.DisplayTrends$)) ? 29 : -1, tmp_7_0);
|
|
628
705
|
i0.ɵɵadvance(10);
|
|
629
|
-
i0.ɵɵconditional((
|
|
706
|
+
i0.ɵɵconditional((tmp_8_0 = i0.ɵɵpipeBind1(40, 19, ctx_r4.TopFailingTests$)) ? 39 : -1, tmp_8_0);
|
|
630
707
|
i0.ɵɵadvance(6);
|
|
631
|
-
i0.ɵɵconditional((
|
|
708
|
+
i0.ɵɵconditional((tmp_9_0 = i0.ɵɵpipeBind1(46, 21, ctx_r4.SlowestTests$)) ? 45 : -1, tmp_9_0);
|
|
632
709
|
i0.ɵɵadvance(6);
|
|
633
|
-
i0.ɵɵconditional((
|
|
710
|
+
i0.ɵɵconditional((tmp_10_0 = i0.ɵɵpipeBind1(52, 23, ctx_r4.MostExpensiveTests$)) ? 51 : -1, tmp_10_0);
|
|
634
711
|
i0.ɵɵadvance(6);
|
|
635
|
-
i0.ɵɵconditional((
|
|
712
|
+
i0.ɵɵconditional((tmp_11_0 = i0.ɵɵpipeBind1(58, 25, ctx_r4.ScoreDistribution$)) ? 57 : -1, tmp_11_0);
|
|
636
713
|
i0.ɵɵadvance(8);
|
|
637
|
-
i0.ɵɵconditional(ctx_r4.IsLoadingVersions ?
|
|
714
|
+
i0.ɵɵconditional(ctx_r4.IsLoadingVersions ? 65 : ctx_r4.VersionMetricsError ? 66 : ctx_r4.VersionRows.length === 0 ? 67 : 68);
|
|
638
715
|
} }
|
|
639
716
|
// ---------------------------------------------------------------------------
|
|
640
717
|
// Component
|
|
@@ -672,6 +749,10 @@ export class TestingAnalyticsComponent {
|
|
|
672
749
|
SelectedDays = 30;
|
|
673
750
|
VersionRows = [];
|
|
674
751
|
IsLoadingVersions = false;
|
|
752
|
+
RubricTrend = [];
|
|
753
|
+
FailureRates = [];
|
|
754
|
+
RubricAnalyticsError = '';
|
|
755
|
+
VersionMetricsError = '';
|
|
675
756
|
// Cached breakdown name lists for the dashboard's agent context.
|
|
676
757
|
topFailingNames = [];
|
|
677
758
|
slowestNames = [];
|
|
@@ -697,6 +778,70 @@ export class TestingAnalyticsComponent {
|
|
|
697
778
|
this.restoreState();
|
|
698
779
|
this.setupObservables();
|
|
699
780
|
this.loadVersionMetrics();
|
|
781
|
+
void this.LoadRubricAnalytics();
|
|
782
|
+
}
|
|
783
|
+
/** Submitted evaluation scores over time, and per-criterion failure rates. Suite-run scores are not rubric scores. */
|
|
784
|
+
async LoadRubricAnalytics() {
|
|
785
|
+
try {
|
|
786
|
+
const provider = this.instrumentationService.Provider;
|
|
787
|
+
if (!provider)
|
|
788
|
+
return;
|
|
789
|
+
const view = RunView.FromMetadataProvider(provider);
|
|
790
|
+
const evaluations = await view.RunView({
|
|
791
|
+
EntityName: 'MJ: Rubric Evaluations',
|
|
792
|
+
ExtraFilter: `Status = 'Submitted' AND NormalizedScore IS NOT NULL`,
|
|
793
|
+
OrderBy: 'SubmittedAt DESC',
|
|
794
|
+
ResultType: 'simple',
|
|
795
|
+
MaxRows: 500,
|
|
796
|
+
});
|
|
797
|
+
if (!evaluations.Success)
|
|
798
|
+
throw new Error(evaluations.ErrorMessage || 'Could not load evaluations.');
|
|
799
|
+
this.RubricTrend = RubricScoreTrend((evaluations.Results ?? []).map(row => ({
|
|
800
|
+
at: row.SubmittedAt == null ? null : String(row.SubmittedAt),
|
|
801
|
+
score: row.NormalizedScore == null ? null : Number(row.NormalizedScore),
|
|
802
|
+
runId: row.SubjectRecordID == null ? null : String(row.SubjectRecordID),
|
|
803
|
+
})));
|
|
804
|
+
const scores = await view.RunView({
|
|
805
|
+
EntityName: 'MJ: Rubric Evaluation Scores',
|
|
806
|
+
ExtraFilter: `EvaluationStatus = 'Submitted' AND NormalizedScore IS NOT NULL`,
|
|
807
|
+
ResultType: 'simple',
|
|
808
|
+
MaxRows: 1000,
|
|
809
|
+
});
|
|
810
|
+
if (!scores.Success)
|
|
811
|
+
throw new Error(scores.ErrorMessage || 'Could not load rubric scores.');
|
|
812
|
+
const versions = await view.RunView({
|
|
813
|
+
EntityName: 'MJ: Rubric Versions',
|
|
814
|
+
ResultType: 'simple',
|
|
815
|
+
MaxRows: 500,
|
|
816
|
+
});
|
|
817
|
+
if (!versions.Success)
|
|
818
|
+
throw new Error(versions.ErrorMessage || 'Could not load rubric versions.');
|
|
819
|
+
const evaluationById = new Map((evaluations.Results ?? []).map(row => [String(row.ID), row]));
|
|
820
|
+
const thresholdByVersion = new Map((versions.Results ?? []).map(row => [String(row.ID), row.PassThreshold == null ? null : Number(row.PassThreshold)]));
|
|
821
|
+
this.FailureRates = CriterionFailureRates((scores.Results ?? []).map(row => {
|
|
822
|
+
const evaluation = evaluationById.get(String(row.EvaluationID ?? ''));
|
|
823
|
+
const versionId = evaluation ? String(evaluation.RubricVersionID ?? '') : '';
|
|
824
|
+
return {
|
|
825
|
+
key: CriterionIdentity(row).key,
|
|
826
|
+
normalizedScore: row.NormalizedScore == null ? null : Number(row.NormalizedScore),
|
|
827
|
+
gateFailed: row.GateFailed === true || row.GateFailed === 1,
|
|
828
|
+
passThreshold: thresholdByVersion.get(versionId) ?? null,
|
|
829
|
+
};
|
|
830
|
+
}).filter(row => row.key.length > 0));
|
|
831
|
+
this.RubricAnalyticsError = '';
|
|
832
|
+
this.cdr.markForCheck();
|
|
833
|
+
}
|
|
834
|
+
catch (error) {
|
|
835
|
+
this.RubricTrend = [];
|
|
836
|
+
this.FailureRates = [];
|
|
837
|
+
this.RubricAnalyticsError = error instanceof Error ? error.message : 'Could not load rubric analytics.';
|
|
838
|
+
this.cdr.markForCheck();
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
OpenRun(runId) {
|
|
842
|
+
if (!runId)
|
|
843
|
+
return;
|
|
844
|
+
SharedService.Instance.OpenEntityRecord('MJ: Test Runs', CompositeKey.FromID(runId));
|
|
700
845
|
}
|
|
701
846
|
ngOnDestroy() {
|
|
702
847
|
this.destroy$.next();
|
|
@@ -858,9 +1003,11 @@ export class TestingAnalyticsComponent {
|
|
|
858
1003
|
try {
|
|
859
1004
|
const metrics = await this.instrumentationService.getVersionMetrics();
|
|
860
1005
|
this.VersionRows = this.buildVersionRows(metrics);
|
|
1006
|
+
this.VersionMetricsError = '';
|
|
861
1007
|
}
|
|
862
|
-
catch {
|
|
1008
|
+
catch (error) {
|
|
863
1009
|
this.VersionRows = [];
|
|
1010
|
+
this.VersionMetricsError = error instanceof Error ? error.message : 'Could not load version metrics.';
|
|
864
1011
|
}
|
|
865
1012
|
finally {
|
|
866
1013
|
this.IsLoadingVersions = false;
|
|
@@ -904,12 +1051,12 @@ export class TestingAnalyticsComponent {
|
|
|
904
1051
|
});
|
|
905
1052
|
}
|
|
906
1053
|
static ɵfac = function TestingAnalyticsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingAnalyticsComponent)(i0.ɵɵdirectiveInject(i1.TestingInstrumentationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
907
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingAnalyticsComponent, selectors: [["app-testing-analytics"]], inputs: { InitialState: "InitialState", initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { StateChange: "StateChange", stateChange: "stateChange" }, standalone: false, decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Testing Analytics", "Icon", "fa-solid fa-chart-bar", "Subtitle", "Test trends, pass rates, and version metrics"], ["actions", ""], [3, "Label", "Active"], [3, "Clicked"], [3, "Clicked", "Label", "Active"], [1, "testing-analytics"], [1, "section-title"], [1, "fa-solid", "fa-chart-line"], [1, "trend-grid"], [1, "card", "trend-card"], [1, "fa-solid", "fa-check-double"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-star-half-stroke"], [1, "fa-solid", "fa-dollar-sign"], [1, "fa-solid", "fa-magnifying-glass-chart"], [1, "insights-grid"], [1, "card", "insight-card"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-coins"], [1, "fa-solid", "fa-chart-pie"], [1, "card", "distribution-card"], [1, "fa-solid", "fa-code-compare"], [1, "section-subtitle"], [1, "card", "version-card"], [1, "empty-mini"], ["Size", "compact", "Icon", "fa-solid fa-code-branch", "Title", "No version data available"], [1, "version-table-wrap"], ["Size", "compact", "Icon", "fa-solid fa-chart-area", "Title", "No trend data"], [1, "bar-chart"], [1, "bar-row"], [1, "trend-direction"], [1, "bar-label"], [1, "bar-track"], [1, "bar-fill", "pass-rate-bar"], [1, "bar-value"], [1, "fa-solid", "fa-arrow-trend-up", "trend-up"], [1, "trend-up"], [1, "fa-solid", "fa-arrow-trend-down", "trend-down"], [1, "trend-down"], [1, "fa-solid", "fa-minus", "trend-neutral"], [1, "trend-neutral"], ["Size", "compact", "Icon", "fa-solid fa-chart-bar", "Title", "No volume data"], [1, "legend-row"], [1, "legend-dot", "passed-seg"], [1, "legend-dot", "failed-seg"], [1, "legend-dot", "skipped-seg"], [1, "bar-track", "stacked"], [1, "bar-segment", "passed-seg"], [1, "bar-segment", "failed-seg"], [1, "bar-segment", "skipped-seg"], ["Size", "compact", "Icon", "fa-solid fa-star", "Title", "No score data"], [1, "bar-fill"], ["Size", "compact", "Icon", "fa-solid fa-wallet", "Title", "No cost data"], [1, "bar-fill", "cost-bar"], ["Variant", "success", "Size", "compact", "Title", "No failing tests"], [1, "insight-list"], [1, "insight-row"], [1, "insight-name", 3, "title"], [1, "badge-fail"], [1, "insight-secondary"], ["Size", "compact", "Icon", "fa-solid fa-bolt", "Title", "No duration data"], [1, "insight-primary"], ["Size", "compact", "Icon", "fa-solid fa-dollar-sign", "Title", "No cost data"], ["Size", "compact", "Icon", "fa-solid fa-chart-simple", "Title", "No score data available"], [1, "distribution-bars"], [1, "dist-row"], [1, "dist-label"], [1, "dist-track"], [1, "dist-fill"], [1, "dist-count"], [1, "dist-pct"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "version-table"], [1, "num"], [1, "version-label"], [1, "version-agent"], [1, "delta", 3, "delta-up", "delta-down", "delta-neutral"], [1, "delta"], [1, "fa-solid", "fa-arrow-up"], [1, "fa-solid", "fa-arrow-down"]], template: function TestingAnalyticsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1054
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingAnalyticsComponent, selectors: [["app-testing-analytics"]], inputs: { InitialState: "InitialState", initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { StateChange: "StateChange", stateChange: "stateChange" }, standalone: false, decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Testing Analytics", "Icon", "fa-solid fa-chart-bar", "Subtitle", "Test trends, pass rates, and version metrics"], ["actions", ""], [3, "Label", "Active"], [3, "Clicked"], [3, "Clicked", "Label", "Active"], [1, "testing-analytics"], ["role", "alert"], [1, "section-title"], [1, "fa-solid", "fa-chart-line"], [1, "trend-grid"], [1, "card", "trend-card"], [1, "fa-solid", "fa-check-double"], [1, "fa-solid", "fa-layer-group"], [1, "fa-solid", "fa-star-half-stroke"], [1, "fa-solid", "fa-dollar-sign"], [1, "fa-solid", "fa-magnifying-glass-chart"], [1, "insights-grid"], [1, "card", "insight-card"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-clock"], [1, "fa-solid", "fa-coins"], [1, "fa-solid", "fa-chart-pie"], [1, "card", "distribution-card"], [1, "fa-solid", "fa-code-compare"], [1, "section-subtitle"], [1, "card", "version-card"], [1, "empty-mini"], ["Size", "compact", "Icon", "fa-solid fa-code-branch", "Title", "No version data available"], [1, "version-table-wrap"], [1, "fa-solid", "fa-scale-balanced"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], ["Size", "compact", "Icon", "fa-solid fa-chart-area", "Title", "No trend data"], [1, "bar-chart"], [1, "bar-row"], [1, "trend-direction"], [1, "bar-label"], [1, "bar-track"], [1, "bar-fill", "pass-rate-bar"], [1, "bar-value"], [1, "fa-solid", "fa-arrow-trend-up", "trend-up"], [1, "trend-up"], [1, "fa-solid", "fa-arrow-trend-down", "trend-down"], [1, "trend-down"], [1, "fa-solid", "fa-minus", "trend-neutral"], [1, "trend-neutral"], ["Size", "compact", "Icon", "fa-solid fa-chart-bar", "Title", "No volume data"], [1, "legend-row"], [1, "legend-dot", "passed-seg"], [1, "legend-dot", "failed-seg"], [1, "legend-dot", "skipped-seg"], [1, "bar-track", "stacked"], [1, "bar-segment", "passed-seg"], [1, "bar-segment", "failed-seg"], [1, "bar-segment", "skipped-seg"], ["Size", "compact", "Icon", "fa-solid fa-star", "Title", "No score data"], [1, "bar-fill"], ["Size", "compact", "Icon", "fa-solid fa-wallet", "Title", "No cost data"], [1, "bar-fill", "cost-bar"], ["Variant", "success", "Size", "compact", "Title", "No failing tests"], [1, "insight-list"], [1, "insight-row"], [1, "insight-name", 3, "title"], [1, "badge-fail"], [1, "insight-secondary"], ["Size", "compact", "Icon", "fa-solid fa-bolt", "Title", "No duration data"], [1, "insight-primary"], ["Size", "compact", "Icon", "fa-solid fa-dollar-sign", "Title", "No cost data"], ["Size", "compact", "Icon", "fa-solid fa-chart-simple", "Title", "No score data available"], [1, "distribution-bars"], [1, "dist-row"], [1, "dist-label"], [1, "dist-track"], [1, "dist-fill"], [1, "dist-count"], [1, "dist-pct"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "version-table"], [1, "num"], [1, "version-label"], [1, "version-agent"], [1, "delta", 3, "delta-up", "delta-down", "delta-neutral"], [1, "delta"], [1, "fa-solid", "fa-arrow-up"], [1, "fa-solid", "fa-arrow-down"]], template: function TestingAnalyticsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
908
1055
|
i0.ɵɵconditionalCreate(0, TestingAnalyticsComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingAnalyticsComponent_Conditional_1_Template, 8, 1, "mj-page-layout");
|
|
909
|
-
i0.ɵɵtemplate(2, TestingAnalyticsComponent_ng_template_2_Template,
|
|
1056
|
+
i0.ɵɵtemplate(2, TestingAnalyticsComponent_ng_template_2_Template, 69, 27, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
910
1057
|
} if (rf & 2) {
|
|
911
1058
|
i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
|
|
912
|
-
} }, dependencies: [i2.NgTemplateOutlet, i3.MJPageHeaderComponent, i3.MJPageLayoutComponent, i3.MJPageBodyComponent, i3.MJFilterChipComponent, i3.MJRefreshButtonComponent, i3.MJEmptyStateComponent, i2.AsyncPipe, i2.DecimalPipe, i2.DatePipe], styles: ["\n \n \n .testing-analytics[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n }\n\n \n \n \n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n background: var(--mj-bg-surface);\n padding: 20px 24px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n margin-bottom: 24px;\n }\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n }\n\n \n .time-range-pills[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n padding: 3px;\n }\n .pill[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n background: transparent;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n .pill[_ngcontent-%COMP%]:hover { background: var(--mj-border-default); }\n .pill.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n box-shadow: var(--mj-shadow-sm);\n }\n\n .refresh-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n .refresh-btn[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); border-color: var(--mj-border-strong); }\n\n \n \n \n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 14px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .section-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 400;\n color: var(--mj-text-disabled);\n margin-left: 4px;\n }\n\n \n \n \n .card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n padding: 20px;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n }\n .card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-md);\n }\n .card[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 14px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .card[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); font-size: 14px; }\n\n \n \n \n .trend-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin-bottom: 28px;\n }\n\n \n .bar-chart[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .bar-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 60px 1fr 52px;\n align-items: center;\n gap: 8px;\n }\n .bar-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n text-align: right;\n white-space: nowrap;\n }\n .bar-track[_ngcontent-%COMP%] {\n height: 14px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 7px;\n overflow: hidden;\n position: relative;\n }\n .bar-track.stacked[_ngcontent-%COMP%] {\n display: flex;\n }\n .bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 7px;\n transition: width 0.4s ease;\n }\n .bar-value[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-align: right;\n }\n\n \n .pass-rate-bar[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n }\n .cost-bar[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n }\n .score-excellent[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .score-good[_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .score-fair[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .score-poor[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n \n .text-excellent[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .text-good[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .text-fair[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .text-poor[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .text-pass-good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .text-pass-warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .text-pass-bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n \n .bar-segment[_ngcontent-%COMP%] { height: 100%; transition: width 0.4s ease; }\n .passed-seg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .failed-seg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .skipped-seg[_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .legend-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n .legend-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n margin-left: 8px;\n }\n .legend-dot[_ngcontent-%COMP%]:first-child { margin-left: 0; }\n .legend-dot.passed-seg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .legend-dot.failed-seg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .legend-dot.skipped-seg[_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .trend-direction[_ngcontent-%COMP%] {\n margin-top: 10px;\n font-size: 12px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .trend-up[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .trend-down[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .trend-neutral[_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n \n \n \n .insights-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 16px;\n margin-bottom: 28px;\n }\n\n .insight-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n .insight-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr auto auto;\n align-items: center;\n gap: 10px;\n padding: 8px 10px;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n .insight-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); }\n .insight-name[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .badge-fail[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n font-size: 11px;\n font-weight: 700;\n padding: 2px 8px;\n border-radius: 10px;\n }\n .insight-primary[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-brand-primary);\n }\n .insight-secondary[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-text-disabled);\n }\n\n \n \n \n .distribution-card[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n }\n .distribution-bars[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .dist-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 110px 1fr 40px 50px;\n align-items: center;\n gap: 10px;\n }\n .dist-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n }\n .dist-track[_ngcontent-%COMP%] {\n height: 22px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n overflow: hidden;\n }\n .dist-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 6px;\n transition: width 0.4s ease;\n }\n .dist-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n text-align: right;\n }\n .dist-pct[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-align: right;\n }\n\n \n \n \n .version-card[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n }\n .version-table-wrap[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n .version-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n }\n .version-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n padding: 10px 12px;\n border-bottom: 2px solid var(--mj-border-default);\n }\n .version-table[_ngcontent-%COMP%] th.num[_ngcontent-%COMP%], \n .version-table[_ngcontent-%COMP%] td.num[_ngcontent-%COMP%] { text-align: right; }\n .version-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n vertical-align: middle;\n }\n .version-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); }\n .version-label[_ngcontent-%COMP%] {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-weight: 600;\n font-size: 12px;\n color: var(--mj-brand-primary);\n }\n .version-agent[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 2px;\n }\n\n .delta[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n font-size: 11px;\n font-weight: 600;\n margin-left: 6px;\n padding: 1px 6px;\n border-radius: 4px;\n }\n .delta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n .delta-up[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface)); color: var(--mj-status-success); }\n .delta-down[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface)); color: var(--mj-status-error); }\n .delta-neutral[_ngcontent-%COMP%] { background: var(--mj-bg-surface-card); color: var(--mj-text-disabled); }\n\n \n \n \n .empty-mini[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n color: var(--mj-border-strong);\n gap: 8px;\n }\n .empty-mini[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 28px; opacity: 0.5; }\n .empty-mini[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { font-size: 12px; }\n\n \n \n \n @media (max-width: 1100px) {\n .trend-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n .insights-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr 1fr; }\n }\n @media (max-width: 720px) {\n .page-header[_ngcontent-%COMP%] { flex-direction: column; align-items: flex-start; }\n .insights-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n .dist-row[_ngcontent-%COMP%] { grid-template-columns: 80px 1fr 32px 42px; }\n }"], changeDetection: 0 });
|
|
1059
|
+
} }, dependencies: [i2.NgTemplateOutlet, i3.MJButtonDirective, i3.MJPageHeaderComponent, i3.MJPageLayoutComponent, i3.MJPageBodyComponent, i3.MJFilterChipComponent, i3.MJRefreshButtonComponent, i3.MJEmptyStateComponent, i2.AsyncPipe, i2.DecimalPipe, i2.DatePipe], styles: ["\n \n \n .testing-analytics[_ngcontent-%COMP%] {\n padding: 24px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n }\n\n \n \n \n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n background: var(--mj-bg-surface);\n padding: 20px 24px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n margin-bottom: 24px;\n }\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n }\n\n \n .time-range-pills[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 8px;\n padding: 3px;\n }\n .pill[_ngcontent-%COMP%] {\n padding: 6px 14px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n background: transparent;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n .pill[_ngcontent-%COMP%]:hover { background: var(--mj-border-default); }\n .pill.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n box-shadow: var(--mj-shadow-sm);\n }\n\n .refresh-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n .refresh-btn[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); border-color: var(--mj-border-strong); }\n\n \n \n \n .section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: 14px;\n }\n .section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .section-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 400;\n color: var(--mj-text-disabled);\n margin-left: 4px;\n }\n\n \n \n \n .card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n padding: 20px;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n }\n .card[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-md);\n }\n .card[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0 0 14px 0;\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .card[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); font-size: 14px; }\n\n \n \n \n .trend-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 16px;\n margin-bottom: 28px;\n }\n\n \n .bar-chart[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .bar-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 60px 1fr 52px;\n align-items: center;\n gap: 8px;\n }\n .bar-label[_ngcontent-%COMP%] {\n font-size: 10px;\n color: var(--mj-text-disabled);\n font-weight: 500;\n text-align: right;\n white-space: nowrap;\n }\n .bar-track[_ngcontent-%COMP%] {\n height: 14px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 7px;\n overflow: hidden;\n position: relative;\n }\n .bar-track.stacked[_ngcontent-%COMP%] {\n display: flex;\n }\n .bar-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 7px;\n transition: width 0.4s ease;\n }\n .bar-value[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n text-align: right;\n }\n\n \n .pass-rate-bar[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n }\n .cost-bar[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n }\n .score-excellent[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .score-good[_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n .score-fair[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .score-poor[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n \n .text-excellent[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .text-good[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n .text-fair[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .text-poor[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .text-pass-good[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .text-pass-warn[_ngcontent-%COMP%] { color: var(--mj-status-warning); }\n .text-pass-bad[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n\n \n .bar-segment[_ngcontent-%COMP%] { height: 100%; transition: width 0.4s ease; }\n .passed-seg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .failed-seg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .skipped-seg[_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .legend-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n font-size: 10px;\n color: var(--mj-text-disabled);\n }\n .legend-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n margin-left: 8px;\n }\n .legend-dot[_ngcontent-%COMP%]:first-child { margin-left: 0; }\n .legend-dot.passed-seg[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .legend-dot.failed-seg[_ngcontent-%COMP%] { background: var(--mj-status-error); }\n .legend-dot.skipped-seg[_ngcontent-%COMP%] { background: var(--mj-text-disabled); }\n\n .trend-direction[_ngcontent-%COMP%] {\n margin-top: 10px;\n font-size: 12px;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 6px;\n }\n .trend-up[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n .trend-down[_ngcontent-%COMP%] { color: var(--mj-status-error); }\n .trend-neutral[_ngcontent-%COMP%] { color: var(--mj-text-disabled); }\n\n \n \n \n .insights-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 16px;\n margin-bottom: 28px;\n }\n\n .insight-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n .insight-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr auto auto;\n align-items: center;\n gap: 10px;\n padding: 8px 10px;\n border-radius: 6px;\n transition: background 0.15s ease;\n }\n .insight-row[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); }\n .insight-name[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .badge-fail[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n font-size: 11px;\n font-weight: 700;\n padding: 2px 8px;\n border-radius: 10px;\n }\n .insight-primary[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-brand-primary);\n }\n .insight-secondary[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 500;\n color: var(--mj-text-disabled);\n }\n\n \n \n \n .distribution-card[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n }\n .distribution-bars[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .dist-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 110px 1fr 40px 50px;\n align-items: center;\n gap: 10px;\n }\n .dist-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n }\n .dist-track[_ngcontent-%COMP%] {\n height: 22px;\n background: var(--mj-bg-surface-sunken);\n border-radius: 6px;\n overflow: hidden;\n }\n .dist-fill[_ngcontent-%COMP%] {\n height: 100%;\n border-radius: 6px;\n transition: width 0.4s ease;\n }\n .dist-count[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-primary);\n text-align: right;\n }\n .dist-pct[_ngcontent-%COMP%] {\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-align: right;\n }\n\n \n \n \n .version-card[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n }\n .version-table-wrap[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n .version-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n }\n .version-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n font-size: 11px;\n font-weight: 600;\n color: var(--mj-text-disabled);\n text-transform: uppercase;\n padding: 10px 12px;\n border-bottom: 2px solid var(--mj-border-default);\n }\n .version-table[_ngcontent-%COMP%] th.num[_ngcontent-%COMP%], \n .version-table[_ngcontent-%COMP%] td.num[_ngcontent-%COMP%] { text-align: right; }\n .version-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n color: var(--mj-text-primary);\n vertical-align: middle;\n }\n .version-table[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-card); }\n .version-label[_ngcontent-%COMP%] {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n font-weight: 600;\n font-size: 12px;\n color: var(--mj-brand-primary);\n }\n .version-agent[_ngcontent-%COMP%] {\n display: block;\n font-size: 11px;\n color: var(--mj-text-disabled);\n margin-top: 2px;\n }\n\n .delta[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n font-size: 11px;\n font-weight: 600;\n margin-left: 6px;\n padding: 1px 6px;\n border-radius: 4px;\n }\n .delta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 9px; }\n .delta-up[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface)); color: var(--mj-status-success); }\n .delta-down[_ngcontent-%COMP%] { background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface)); color: var(--mj-status-error); }\n .delta-neutral[_ngcontent-%COMP%] { background: var(--mj-bg-surface-card); color: var(--mj-text-disabled); }\n\n \n \n \n .empty-mini[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 16px;\n color: var(--mj-border-strong);\n gap: 8px;\n }\n .empty-mini[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 28px; opacity: 0.5; }\n .empty-mini[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { font-size: 12px; }\n\n \n \n \n @media (max-width: 1100px) {\n .trend-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n .insights-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr 1fr; }\n }\n @media (max-width: 720px) {\n .page-header[_ngcontent-%COMP%] { flex-direction: column; align-items: flex-start; }\n .insights-grid[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n .dist-row[_ngcontent-%COMP%] { grid-template-columns: 80px 1fr 32px 42px; }\n }"], changeDetection: 0 });
|
|
913
1060
|
}
|
|
914
1061
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingAnalyticsComponent, [{
|
|
915
1062
|
type: Component,
|
|
@@ -941,6 +1088,26 @@ export class TestingAnalyticsComponent {
|
|
|
941
1088
|
|
|
942
1089
|
<ng-template #content>
|
|
943
1090
|
<div class="testing-analytics">
|
|
1091
|
+
@if (RubricAnalyticsError) {
|
|
1092
|
+
<p role="alert">{{ RubricAnalyticsError }}</p>
|
|
1093
|
+
}
|
|
1094
|
+
@if (RubricTrend.length || FailureRates.length) {
|
|
1095
|
+
<div class="section-title">
|
|
1096
|
+
<i class="fa-solid fa-scale-balanced"></i>
|
|
1097
|
+
Rubric scores
|
|
1098
|
+
</div>
|
|
1099
|
+
@for (point of RubricTrend; track $index) {
|
|
1100
|
+
<p>
|
|
1101
|
+
{{ point.at }} — {{ point.score }}
|
|
1102
|
+
@if (point.runId) {
|
|
1103
|
+
<button type="button" mjButton variant="secondary" size="sm" (click)="OpenRun(point.runId)">Open run</button>
|
|
1104
|
+
}
|
|
1105
|
+
</p>
|
|
1106
|
+
}
|
|
1107
|
+
@for (rate of FailureRates; track rate.key) {
|
|
1108
|
+
<p>CriterionKey <code>{{ rate.key }}</code> — {{ rate.rate }}</p>
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
944
1111
|
|
|
945
1112
|
<!-- ===== 2. Trend Overview (2-column CSS charts) ===== -->
|
|
946
1113
|
<div class="section-title">
|
|
@@ -1159,6 +1326,8 @@ export class TestingAnalyticsComponent {
|
|
|
1159
1326
|
<div class="card version-card">
|
|
1160
1327
|
@if (IsLoadingVersions) {
|
|
1161
1328
|
<div class="empty-mini"><i class="fa-solid fa-spinner fa-spin"></i><span>Loading versions...</span></div>
|
|
1329
|
+
} @else if (VersionMetricsError) {
|
|
1330
|
+
<p role="alert">{{ VersionMetricsError }}</p>
|
|
1162
1331
|
} @else if (VersionRows.length === 0) {
|
|
1163
1332
|
<mj-empty-state Size="compact" Icon="fa-solid fa-code-branch" Title="No version data available" />
|
|
1164
1333
|
} @else {
|
|
@@ -1229,5 +1398,5 @@ export class TestingAnalyticsComponent {
|
|
|
1229
1398
|
}], stateChange: [{
|
|
1230
1399
|
type: Output
|
|
1231
1400
|
}] }); })();
|
|
1232
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingAnalyticsComponent, { className: "TestingAnalyticsComponent", filePath: "src/Testing/components/testing-analytics.component.ts", lineNumber:
|
|
1401
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingAnalyticsComponent, { className: "TestingAnalyticsComponent", filePath: "src/Testing/components/testing-analytics.component.ts", lineNumber: 805 }); })();
|
|
1233
1402
|
//# sourceMappingURL=testing-analytics.component.js.map
|