@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
|
@@ -2,6 +2,9 @@ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from
|
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { UUIDsEqual } from '@memberjunction/global';
|
|
5
|
+
import { CompositeKey, RunView } from '@memberjunction/core';
|
|
6
|
+
import { SharedService } from '@memberjunction/ng-shared';
|
|
7
|
+
import { CohortDisagreement } from '@memberjunction/ng-testing';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
6
9
|
import * as i1 from "../services/testing-instrumentation.service";
|
|
7
10
|
import * as i2 from "@angular/common";
|
|
@@ -51,44 +54,91 @@ function TestingReviewComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
51
54
|
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
52
55
|
} }
|
|
53
56
|
function TestingReviewComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
54
|
-
i0.ɵɵelementStart(0, "
|
|
55
|
-
i0.ɵɵ
|
|
57
|
+
i0.ɵɵelementStart(0, "p", 8);
|
|
58
|
+
i0.ɵɵtext(1);
|
|
59
|
+
i0.ɵɵelementEnd();
|
|
60
|
+
} if (rf & 2) {
|
|
61
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
62
|
+
i0.ɵɵadvance();
|
|
63
|
+
i0.ɵɵtextInterpolate(ctx_r2.DisagreementError);
|
|
64
|
+
} }
|
|
65
|
+
function TestingReviewComponent_ng_template_2_Conditional_2_For_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
67
|
+
i0.ɵɵelementStart(0, "button", 30);
|
|
68
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_2_For_4_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const row_r6 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.OpenRun(row_r6.runId)); });
|
|
69
|
+
i0.ɵɵtext(1, "Open run");
|
|
70
|
+
i0.ɵɵelementEnd();
|
|
71
|
+
} }
|
|
72
|
+
function TestingReviewComponent_ng_template_2_Conditional_2_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
i0.ɵɵelementStart(0, "p");
|
|
74
|
+
i0.ɵɵtext(1);
|
|
75
|
+
i0.ɵɵelementStart(2, "code");
|
|
76
|
+
i0.ɵɵtext(3);
|
|
77
|
+
i0.ɵɵelementEnd();
|
|
78
|
+
i0.ɵɵtext(4);
|
|
79
|
+
i0.ɵɵconditionalCreate(5, TestingReviewComponent_ng_template_2_Conditional_2_For_4_Conditional_5_Template, 2, 0, "button", 29);
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
} if (rf & 2) {
|
|
82
|
+
const row_r6 = ctx.$implicit;
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵtextInterpolate1(" ", row_r6.name, " CriterionKey ");
|
|
85
|
+
i0.ɵɵadvance(2);
|
|
86
|
+
i0.ɵɵtextInterpolate(row_r6.key);
|
|
87
|
+
i0.ɵɵadvance();
|
|
88
|
+
i0.ɵɵtextInterpolate2(" \u2014 human ", row_r6.humanMean, " / AI ", row_r6.aiMean, " ");
|
|
89
|
+
i0.ɵɵadvance();
|
|
90
|
+
i0.ɵɵconditional(row_r6.runId ? 5 : -1);
|
|
91
|
+
} }
|
|
92
|
+
function TestingReviewComponent_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
+
i0.ɵɵelementStart(0, "section", 9)(1, "h3");
|
|
94
|
+
i0.ɵɵtext(2, "Rubric disagreement");
|
|
95
|
+
i0.ɵɵelementEnd();
|
|
96
|
+
i0.ɵɵrepeaterCreate(3, TestingReviewComponent_ng_template_2_Conditional_2_For_4_Template, 6, 5, "p", null, i0.ɵɵrepeaterTrackByIndex);
|
|
97
|
+
i0.ɵɵelementEnd();
|
|
98
|
+
} if (rf & 2) {
|
|
99
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
100
|
+
i0.ɵɵadvance(3);
|
|
101
|
+
i0.ɵɵrepeater(ctx_r2.Disagreement);
|
|
102
|
+
} }
|
|
103
|
+
function TestingReviewComponent_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
104
|
+
i0.ɵɵelementStart(0, "div", 10)(1, "div", 31)(2, "div", 32);
|
|
105
|
+
i0.ɵɵelement(3, "i", 33);
|
|
56
106
|
i0.ɵɵelementEnd();
|
|
57
|
-
i0.ɵɵelementStart(4, "div",
|
|
107
|
+
i0.ɵɵelementStart(4, "div", 34)(5, "div", 35);
|
|
58
108
|
i0.ɵɵtext(6);
|
|
59
109
|
i0.ɵɵelementEnd();
|
|
60
|
-
i0.ɵɵelementStart(7, "div",
|
|
110
|
+
i0.ɵɵelementStart(7, "div", 36);
|
|
61
111
|
i0.ɵɵtext(8, "Pending Review");
|
|
62
112
|
i0.ɵɵelementEnd()()();
|
|
63
|
-
i0.ɵɵelementStart(9, "div",
|
|
64
|
-
i0.ɵɵelement(11, "i",
|
|
113
|
+
i0.ɵɵelementStart(9, "div", 31)(10, "div", 37);
|
|
114
|
+
i0.ɵɵelement(11, "i", 38);
|
|
65
115
|
i0.ɵɵelementEnd();
|
|
66
|
-
i0.ɵɵelementStart(12, "div",
|
|
116
|
+
i0.ɵɵelementStart(12, "div", 34)(13, "div", 35);
|
|
67
117
|
i0.ɵɵtext(14);
|
|
68
118
|
i0.ɵɵelementEnd();
|
|
69
|
-
i0.ɵɵelementStart(15, "div",
|
|
119
|
+
i0.ɵɵelementStart(15, "div", 36);
|
|
70
120
|
i0.ɵɵtext(16, "Reviewed");
|
|
71
121
|
i0.ɵɵelementEnd()()();
|
|
72
|
-
i0.ɵɵelementStart(17, "div",
|
|
73
|
-
i0.ɵɵelement(19, "i",
|
|
122
|
+
i0.ɵɵelementStart(17, "div", 31)(18, "div", 39);
|
|
123
|
+
i0.ɵɵelement(19, "i", 40);
|
|
74
124
|
i0.ɵɵelementEnd();
|
|
75
|
-
i0.ɵɵelementStart(20, "div",
|
|
125
|
+
i0.ɵɵelementStart(20, "div", 34)(21, "div", 35);
|
|
76
126
|
i0.ɵɵtext(22);
|
|
77
|
-
i0.ɵɵelementStart(23, "span",
|
|
127
|
+
i0.ɵɵelementStart(23, "span", 41);
|
|
78
128
|
i0.ɵɵtext(24, "/10");
|
|
79
129
|
i0.ɵɵelementEnd()();
|
|
80
|
-
i0.ɵɵelementStart(25, "div",
|
|
130
|
+
i0.ɵɵelementStart(25, "div", 36);
|
|
81
131
|
i0.ɵɵtext(26, "Avg Rating");
|
|
82
132
|
i0.ɵɵelementEnd()()();
|
|
83
|
-
i0.ɵɵelementStart(27, "div",
|
|
84
|
-
i0.ɵɵelement(29, "i",
|
|
133
|
+
i0.ɵɵelementStart(27, "div", 31)(28, "div", 42);
|
|
134
|
+
i0.ɵɵelement(29, "i", 43);
|
|
85
135
|
i0.ɵɵelementEnd();
|
|
86
|
-
i0.ɵɵelementStart(30, "div",
|
|
136
|
+
i0.ɵɵelementStart(30, "div", 34)(31, "div", 35);
|
|
87
137
|
i0.ɵɵtext(32);
|
|
88
|
-
i0.ɵɵelementStart(33, "span",
|
|
138
|
+
i0.ɵɵelementStart(33, "span", 41);
|
|
89
139
|
i0.ɵɵtext(34, "%");
|
|
90
140
|
i0.ɵɵelementEnd()();
|
|
91
|
-
i0.ɵɵelementStart(35, "div",
|
|
141
|
+
i0.ɵɵelementStart(35, "div", 36);
|
|
92
142
|
i0.ɵɵtext(36, "Agreement Rate");
|
|
93
143
|
i0.ɵɵelementEnd()()()();
|
|
94
144
|
} if (rf & 2) {
|
|
@@ -102,68 +152,68 @@ function TestingReviewComponent_ng_template_2_Conditional_1_Template(rf, ctx) {
|
|
|
102
152
|
i0.ɵɵadvance(10);
|
|
103
153
|
i0.ɵɵtextInterpolate(ctx_r2.FormatDecimal(ctx_r2.Metrics.agreementRate, 0));
|
|
104
154
|
} }
|
|
105
|
-
function
|
|
106
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
155
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
+
i0.ɵɵelement(0, "mj-empty-state", 44);
|
|
107
157
|
} }
|
|
108
|
-
function
|
|
109
|
-
i0.ɵɵelementStart(0, "div",
|
|
158
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
159
|
+
i0.ɵɵelementStart(0, "div", 51)(1, "div", 52);
|
|
110
160
|
i0.ɵɵtext(2);
|
|
111
161
|
i0.ɵɵelementEnd();
|
|
112
|
-
i0.ɵɵelementStart(3, "div",
|
|
113
|
-
i0.ɵɵelement(5, "i",
|
|
162
|
+
i0.ɵɵelementStart(3, "div", 53)(4, "span", 54);
|
|
163
|
+
i0.ɵɵelement(5, "i", 55);
|
|
114
164
|
i0.ɵɵtext(6);
|
|
115
165
|
i0.ɵɵelementEnd();
|
|
116
|
-
i0.ɵɵelement(7, "app-score-indicator",
|
|
166
|
+
i0.ɵɵelement(7, "app-score-indicator", 56)(8, "app-test-status-badge", 57);
|
|
117
167
|
i0.ɵɵelementEnd()();
|
|
118
168
|
} if (rf & 2) {
|
|
119
|
-
const
|
|
169
|
+
const item_r8 = i0.ɵɵnextContext().$implicit;
|
|
120
170
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
121
171
|
i0.ɵɵadvance(2);
|
|
122
|
-
i0.ɵɵtextInterpolate(
|
|
172
|
+
i0.ɵɵtextInterpolate(item_r8.testName);
|
|
123
173
|
i0.ɵɵadvance(4);
|
|
124
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(
|
|
174
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(item_r8.runDateTime), " ");
|
|
125
175
|
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵproperty("score",
|
|
176
|
+
i0.ɵɵproperty("score", item_r8.automatedScore)("showBar", true);
|
|
127
177
|
i0.ɵɵadvance();
|
|
128
|
-
i0.ɵɵproperty("status",
|
|
178
|
+
i0.ɵɵproperty("status", item_r8.automatedStatus);
|
|
129
179
|
} }
|
|
130
|
-
function
|
|
131
|
-
i0.ɵɵelement(0, "i",
|
|
180
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
181
|
+
i0.ɵɵelement(0, "i", 59);
|
|
132
182
|
i0.ɵɵtext(1, " No Feedback ");
|
|
133
183
|
} }
|
|
134
|
-
function
|
|
135
|
-
i0.ɵɵelement(0, "i",
|
|
184
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
185
|
+
i0.ɵɵelement(0, "i", 60);
|
|
136
186
|
i0.ɵɵtext(1, " Score Mismatch ");
|
|
137
187
|
} }
|
|
138
|
-
function
|
|
139
|
-
i0.ɵɵelement(0, "i",
|
|
188
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
189
|
+
i0.ɵɵelement(0, "i", 61);
|
|
140
190
|
i0.ɵɵtext(1, " Needs Verification ");
|
|
141
191
|
} }
|
|
142
|
-
function
|
|
143
|
-
i0.ɵɵelementStart(0, "span",
|
|
144
|
-
i0.ɵɵconditionalCreate(1,
|
|
192
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
193
|
+
i0.ɵɵelementStart(0, "span", 58);
|
|
194
|
+
i0.ɵɵconditionalCreate(1, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Conditional_1_Template, 2, 0)(2, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Conditional_2_Template, 2, 0)(3, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Conditional_3_Template, 2, 0);
|
|
145
195
|
i0.ɵɵelementEnd();
|
|
146
196
|
} if (rf & 2) {
|
|
147
|
-
const
|
|
148
|
-
i0.ɵɵclassMap("reason-" +
|
|
197
|
+
const item_r8 = i0.ɵɵnextContext().$implicit;
|
|
198
|
+
i0.ɵɵclassMap("reason-" + item_r8.reason);
|
|
149
199
|
i0.ɵɵadvance();
|
|
150
|
-
i0.ɵɵconditional(
|
|
200
|
+
i0.ɵɵconditional(item_r8.reason === "no-feedback" ? 1 : item_r8.reason === "high-score-failed" ? 2 : 3);
|
|
151
201
|
} }
|
|
152
|
-
function
|
|
153
|
-
const
|
|
154
|
-
i0.ɵɵelementStart(0, "button",
|
|
155
|
-
i0.ɵɵlistener("click", function
|
|
202
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
204
|
+
i0.ɵɵelementStart(0, "button", 79);
|
|
205
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_For_6_Template_button_click_0_listener() { const n_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.SelectRating(n_r11)); });
|
|
156
206
|
i0.ɵɵtext(1);
|
|
157
207
|
i0.ɵɵelementEnd();
|
|
158
208
|
} if (rf & 2) {
|
|
159
|
-
const
|
|
209
|
+
const n_r11 = ctx.$implicit;
|
|
160
210
|
const ctx_r2 = i0.ɵɵnextContext(6);
|
|
161
|
-
i0.ɵɵclassProp("selected", ctx_r2.FormState.rating != null &&
|
|
211
|
+
i0.ɵɵclassProp("selected", ctx_r2.FormState.rating != null && n_r11 <= ctx_r2.FormState.rating)("current", ctx_r2.FormState.rating === n_r11);
|
|
162
212
|
i0.ɵɵadvance();
|
|
163
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
213
|
+
i0.ɵɵtextInterpolate1(" ", n_r11, " ");
|
|
164
214
|
} }
|
|
165
|
-
function
|
|
166
|
-
i0.ɵɵelementStart(0, "span",
|
|
215
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
216
|
+
i0.ɵɵelementStart(0, "span", 67);
|
|
167
217
|
i0.ɵɵtext(1);
|
|
168
218
|
i0.ɵɵelementEnd();
|
|
169
219
|
} if (rf & 2) {
|
|
@@ -171,42 +221,42 @@ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2
|
|
|
171
221
|
i0.ɵɵadvance();
|
|
172
222
|
i0.ɵɵtextInterpolate1("", ctx_r2.FormState.rating, "/10");
|
|
173
223
|
} }
|
|
174
|
-
function
|
|
175
|
-
const
|
|
176
|
-
i0.ɵɵelementStart(0, "div",
|
|
224
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
225
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
226
|
+
i0.ɵɵelementStart(0, "div", 62)(1, "div", 63)(2, "label", 64);
|
|
177
227
|
i0.ɵɵtext(3, "Rating");
|
|
178
228
|
i0.ɵɵelementEnd();
|
|
179
|
-
i0.ɵɵelementStart(4, "div",
|
|
180
|
-
i0.ɵɵrepeaterCreate(5,
|
|
181
|
-
i0.ɵɵconditionalCreate(7,
|
|
229
|
+
i0.ɵɵelementStart(4, "div", 65);
|
|
230
|
+
i0.ɵɵrepeaterCreate(5, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_For_6_Template, 2, 5, "button", 66, i0.ɵɵrepeaterTrackByIdentity);
|
|
231
|
+
i0.ɵɵconditionalCreate(7, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Conditional_7_Template, 2, 1, "span", 67);
|
|
182
232
|
i0.ɵɵelementEnd()();
|
|
183
|
-
i0.ɵɵelementStart(8, "div",
|
|
233
|
+
i0.ɵɵelementStart(8, "div", 63)(9, "label", 64);
|
|
184
234
|
i0.ɵɵtext(10, "Is the automated result correct?");
|
|
185
235
|
i0.ɵɵelementEnd();
|
|
186
|
-
i0.ɵɵelementStart(11, "div",
|
|
187
|
-
i0.ɵɵlistener("click", function
|
|
188
|
-
i0.ɵɵelement(13, "i",
|
|
236
|
+
i0.ɵɵelementStart(11, "div", 68)(12, "button", 69);
|
|
237
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.SelectCorrectness(true)); });
|
|
238
|
+
i0.ɵɵelement(13, "i", 70);
|
|
189
239
|
i0.ɵɵtext(14, " Correct ");
|
|
190
240
|
i0.ɵɵelementEnd();
|
|
191
|
-
i0.ɵɵelementStart(15, "button",
|
|
192
|
-
i0.ɵɵlistener("click", function
|
|
193
|
-
i0.ɵɵelement(16, "i",
|
|
241
|
+
i0.ɵɵelementStart(15, "button", 71);
|
|
242
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.SelectCorrectness(false)); });
|
|
243
|
+
i0.ɵɵelement(16, "i", 72);
|
|
194
244
|
i0.ɵɵtext(17, " Incorrect ");
|
|
195
245
|
i0.ɵɵelementEnd()()();
|
|
196
|
-
i0.ɵɵelementStart(18, "div",
|
|
246
|
+
i0.ɵɵelementStart(18, "div", 63)(19, "label", 64);
|
|
197
247
|
i0.ɵɵtext(20, "Notes (optional)");
|
|
198
248
|
i0.ɵɵelementEnd();
|
|
199
|
-
i0.ɵɵelementStart(21, "textarea",
|
|
200
|
-
i0.ɵɵlistener("input", function
|
|
249
|
+
i0.ɵɵelementStart(21, "textarea", 73);
|
|
250
|
+
i0.ɵɵlistener("input", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template_textarea_input_21_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.OnCommentsChange($event)); });
|
|
201
251
|
i0.ɵɵelementEnd()();
|
|
202
|
-
i0.ɵɵelementStart(22, "div",
|
|
203
|
-
i0.ɵɵlistener("click", function
|
|
204
|
-
i0.ɵɵelement(24, "i",
|
|
252
|
+
i0.ɵɵelementStart(22, "div", 74)(23, "button", 75);
|
|
253
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r9); const item_r8 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.SubmitReview(item_r8)); });
|
|
254
|
+
i0.ɵɵelement(24, "i", 76);
|
|
205
255
|
i0.ɵɵtext(25);
|
|
206
256
|
i0.ɵɵelementEnd();
|
|
207
|
-
i0.ɵɵelementStart(26, "button",
|
|
208
|
-
i0.ɵɵlistener("click", function
|
|
209
|
-
i0.ɵɵelement(27, "i",
|
|
257
|
+
i0.ɵɵelementStart(26, "button", 77);
|
|
258
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.SkipItem()); });
|
|
259
|
+
i0.ɵɵelement(27, "i", 78);
|
|
210
260
|
i0.ɵɵtext(28, " Skip ");
|
|
211
261
|
i0.ɵɵelementEnd()()();
|
|
212
262
|
} if (rf & 2) {
|
|
@@ -226,142 +276,142 @@ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2
|
|
|
226
276
|
i0.ɵɵadvance(2);
|
|
227
277
|
i0.ɵɵtextInterpolate1(" ", ctx_r2.IsSubmitting ? "Submitting..." : "Submit", " ");
|
|
228
278
|
} }
|
|
229
|
-
function
|
|
230
|
-
const
|
|
231
|
-
i0.ɵɵelementStart(0, "mj-accordion-panel",
|
|
232
|
-
i0.ɵɵlistener("ExpandedChange", function
|
|
233
|
-
i0.ɵɵtemplate(1,
|
|
279
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
280
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
281
|
+
i0.ɵɵelementStart(0, "mj-accordion-panel", 47);
|
|
282
|
+
i0.ɵɵlistener("ExpandedChange", function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_Template_mj_accordion_panel_ExpandedChange_0_listener($event) { const item_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.OnItemExpandedChange(item_r8.testRunID, $event)); });
|
|
283
|
+
i0.ɵɵtemplate(1, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_1_Template, 9, 5, "ng-template", 48)(2, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_2_Template, 4, 3, "ng-template", 49)(3, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_ng_template_3_Template, 29, 8, "ng-template", 50);
|
|
234
284
|
i0.ɵɵelementEnd();
|
|
235
285
|
} if (rf & 2) {
|
|
236
|
-
const
|
|
286
|
+
const item_r8 = ctx.$implicit;
|
|
237
287
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
238
|
-
i0.ɵɵproperty("FlushBody", true)("Expanded", ctx_r2.IsItemExpanded(
|
|
288
|
+
i0.ɵɵproperty("FlushBody", true)("Expanded", ctx_r2.IsItemExpanded(item_r8.testRunID));
|
|
239
289
|
} }
|
|
240
|
-
function
|
|
241
|
-
i0.ɵɵelementStart(0, "div",
|
|
242
|
-
i0.ɵɵrepeaterCreate(1,
|
|
290
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
+
i0.ɵɵelementStart(0, "div", 45);
|
|
292
|
+
i0.ɵɵrepeaterCreate(1, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_For_2_Template, 4, 2, "mj-accordion-panel", 46, _forTrack0);
|
|
243
293
|
i0.ɵɵelementEnd();
|
|
244
294
|
} if (rf & 2) {
|
|
245
295
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
246
296
|
i0.ɵɵadvance();
|
|
247
297
|
i0.ɵɵrepeater(ctx_r2.PendingItems);
|
|
248
298
|
} }
|
|
249
|
-
function
|
|
250
|
-
i0.ɵɵelementStart(0, "div",
|
|
251
|
-
i0.ɵɵconditionalCreate(1,
|
|
299
|
+
function TestingReviewComponent_ng_template_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
300
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
301
|
+
i0.ɵɵconditionalCreate(1, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_1_Template, 1, 0, "mj-empty-state", 44)(2, TestingReviewComponent_ng_template_2_Conditional_12_Conditional_2_Template, 3, 0, "div", 45);
|
|
252
302
|
i0.ɵɵelementEnd();
|
|
253
303
|
} if (rf & 2) {
|
|
254
304
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
255
305
|
i0.ɵɵadvance();
|
|
256
306
|
i0.ɵɵconditional(ctx_r2.PendingItems.length === 0 ? 1 : 2);
|
|
257
307
|
} }
|
|
258
|
-
function
|
|
259
|
-
i0.ɵɵelement(0, "mj-empty-state",
|
|
308
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
309
|
+
i0.ɵɵelement(0, "mj-empty-state", 89);
|
|
260
310
|
} }
|
|
261
|
-
function
|
|
262
|
-
i0.ɵɵelement(0, "span",
|
|
311
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
|
|
312
|
+
i0.ɵɵelement(0, "span", 105);
|
|
263
313
|
} if (rf & 2) {
|
|
264
|
-
const
|
|
265
|
-
const
|
|
266
|
-
i0.ɵɵclassProp("filled",
|
|
314
|
+
const n_r13 = ctx.$implicit;
|
|
315
|
+
const item_r14 = i0.ɵɵnextContext().$implicit;
|
|
316
|
+
i0.ɵɵclassProp("filled", item_r14.humanRating != null && n_r13 <= item_r14.humanRating);
|
|
267
317
|
} }
|
|
268
|
-
function
|
|
269
|
-
i0.ɵɵelementStart(0, "span",
|
|
270
|
-
i0.ɵɵelement(1, "i",
|
|
318
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
319
|
+
i0.ɵɵelementStart(0, "span", 101);
|
|
320
|
+
i0.ɵɵelement(1, "i", 70);
|
|
271
321
|
i0.ɵɵtext(2, " Correct ");
|
|
272
322
|
i0.ɵɵelementEnd();
|
|
273
323
|
} }
|
|
274
|
-
function
|
|
275
|
-
i0.ɵɵelementStart(0, "span",
|
|
276
|
-
i0.ɵɵelement(1, "i",
|
|
324
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
325
|
+
i0.ɵɵelementStart(0, "span", 102);
|
|
326
|
+
i0.ɵɵelement(1, "i", 72);
|
|
277
327
|
i0.ɵɵtext(2, " Incorrect ");
|
|
278
328
|
i0.ɵɵelementEnd();
|
|
279
329
|
} }
|
|
280
|
-
function
|
|
281
|
-
const
|
|
282
|
-
i0.ɵɵelementStart(0, "div",
|
|
283
|
-
i0.ɵɵlistener("click", function
|
|
330
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
331
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
332
|
+
i0.ɵɵelementStart(0, "div", 106);
|
|
333
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_18_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r15); const item_r14 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ToggleHistoryComment(item_r14.id)); });
|
|
284
334
|
i0.ɵɵelementStart(1, "p");
|
|
285
335
|
i0.ɵɵtext(2);
|
|
286
336
|
i0.ɵɵelementEnd()();
|
|
287
337
|
} if (rf & 2) {
|
|
288
|
-
const
|
|
338
|
+
const item_r14 = i0.ɵɵnextContext().$implicit;
|
|
289
339
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
290
|
-
i0.ɵɵclassProp("expanded", ctx_r2.ExpandedHistoryId ===
|
|
340
|
+
i0.ɵɵclassProp("expanded", ctx_r2.ExpandedHistoryId === item_r14.id);
|
|
291
341
|
i0.ɵɵadvance(2);
|
|
292
|
-
i0.ɵɵtextInterpolate(
|
|
342
|
+
i0.ɵɵtextInterpolate(item_r14.humanComments);
|
|
293
343
|
} }
|
|
294
|
-
function
|
|
295
|
-
i0.ɵɵelementStart(0, "div",
|
|
344
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
345
|
+
i0.ɵɵelementStart(0, "div", 91)(1, "div", 92)(2, "div", 93);
|
|
296
346
|
i0.ɵɵtext(3);
|
|
297
347
|
i0.ɵɵelementEnd();
|
|
298
|
-
i0.ɵɵelementStart(4, "div",
|
|
299
|
-
i0.ɵɵelement(5, "i",
|
|
348
|
+
i0.ɵɵelementStart(4, "div", 94);
|
|
349
|
+
i0.ɵɵelement(5, "i", 95);
|
|
300
350
|
i0.ɵɵtext(6);
|
|
301
351
|
i0.ɵɵelementEnd()();
|
|
302
|
-
i0.ɵɵelementStart(7, "div",
|
|
303
|
-
i0.ɵɵrepeaterCreate(9,
|
|
352
|
+
i0.ɵɵelementStart(7, "div", 96)(8, "div", 97);
|
|
353
|
+
i0.ɵɵrepeaterCreate(9, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_For_10_Template, 1, 2, "span", 98, i0.ɵɵrepeaterTrackByIdentity);
|
|
304
354
|
i0.ɵɵelementEnd();
|
|
305
|
-
i0.ɵɵelementStart(11, "span",
|
|
355
|
+
i0.ɵɵelementStart(11, "span", 99);
|
|
306
356
|
i0.ɵɵtext(12);
|
|
307
357
|
i0.ɵɵelementEnd()();
|
|
308
|
-
i0.ɵɵelementStart(13, "div",
|
|
309
|
-
i0.ɵɵconditionalCreate(14,
|
|
358
|
+
i0.ɵɵelementStart(13, "div", 100);
|
|
359
|
+
i0.ɵɵconditionalCreate(14, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_14_Template, 3, 0, "span", 101)(15, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_15_Template, 3, 0, "span", 102);
|
|
310
360
|
i0.ɵɵelementEnd();
|
|
311
|
-
i0.ɵɵelementStart(16, "div",
|
|
312
|
-
i0.ɵɵelement(17, "app-score-indicator",
|
|
361
|
+
i0.ɵɵelementStart(16, "div", 103);
|
|
362
|
+
i0.ɵɵelement(17, "app-score-indicator", 56);
|
|
313
363
|
i0.ɵɵelementEnd();
|
|
314
|
-
i0.ɵɵconditionalCreate(18,
|
|
364
|
+
i0.ɵɵconditionalCreate(18, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Conditional_18_Template, 3, 3, "div", 104);
|
|
315
365
|
i0.ɵɵelementEnd();
|
|
316
366
|
} if (rf & 2) {
|
|
317
|
-
const
|
|
367
|
+
const item_r14 = ctx.$implicit;
|
|
318
368
|
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
319
369
|
i0.ɵɵadvance(3);
|
|
320
|
-
i0.ɵɵtextInterpolate(
|
|
370
|
+
i0.ɵɵtextInterpolate(item_r14.testName);
|
|
321
371
|
i0.ɵɵadvance(3);
|
|
322
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(
|
|
372
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(item_r14.runDateTime), " ");
|
|
323
373
|
i0.ɵɵadvance(3);
|
|
324
374
|
i0.ɵɵrepeater(ctx_r2.RatingNumbers);
|
|
325
375
|
i0.ɵɵadvance(3);
|
|
326
|
-
i0.ɵɵtextInterpolate1("",
|
|
376
|
+
i0.ɵɵtextInterpolate1("", item_r14.humanRating ?? 0, "/10");
|
|
327
377
|
i0.ɵɵadvance(2);
|
|
328
|
-
i0.ɵɵconditional(
|
|
378
|
+
i0.ɵɵconditional(item_r14.humanIsCorrect === true ? 14 : item_r14.humanIsCorrect === false ? 15 : -1);
|
|
329
379
|
i0.ɵɵadvance(3);
|
|
330
|
-
i0.ɵɵproperty("score",
|
|
380
|
+
i0.ɵɵproperty("score", item_r14.score)("showBar", true);
|
|
331
381
|
i0.ɵɵadvance();
|
|
332
|
-
i0.ɵɵconditional(
|
|
382
|
+
i0.ɵɵconditional(item_r14.humanComments ? 18 : -1);
|
|
333
383
|
} }
|
|
334
|
-
function
|
|
335
|
-
i0.ɵɵelementStart(0, "div",
|
|
336
|
-
i0.ɵɵrepeaterCreate(1,
|
|
384
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
385
|
+
i0.ɵɵelementStart(0, "div", 90);
|
|
386
|
+
i0.ɵɵrepeaterCreate(1, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_For_2_Template, 19, 7, "div", 91, _forTrack1);
|
|
337
387
|
i0.ɵɵelementEnd();
|
|
338
388
|
} if (rf & 2) {
|
|
339
389
|
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
340
390
|
i0.ɵɵadvance();
|
|
341
391
|
i0.ɵɵrepeater(ctx_r2.FilteredHistoryItems);
|
|
342
392
|
} }
|
|
343
|
-
function
|
|
344
|
-
const
|
|
345
|
-
i0.ɵɵelementStart(0, "div",
|
|
346
|
-
i0.ɵɵelement(3, "i",
|
|
347
|
-
i0.ɵɵelementStart(4, "input",
|
|
348
|
-
i0.ɵɵlistener("input", function
|
|
393
|
+
function TestingReviewComponent_ng_template_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
394
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
395
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "div", 80)(2, "div", 81);
|
|
396
|
+
i0.ɵɵelement(3, "i", 82);
|
|
397
|
+
i0.ɵɵelementStart(4, "input", 83);
|
|
398
|
+
i0.ɵɵlistener("input", function TestingReviewComponent_ng_template_2_Conditional_13_Template_input_input_4_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnHistorySearch($event)); });
|
|
349
399
|
i0.ɵɵelementEnd()();
|
|
350
|
-
i0.ɵɵelementStart(5, "div",
|
|
400
|
+
i0.ɵɵelementStart(5, "div", 84)(6, "label");
|
|
351
401
|
i0.ɵɵtext(7, "Sort by:");
|
|
352
402
|
i0.ɵɵelementEnd();
|
|
353
|
-
i0.ɵɵelementStart(8, "select",
|
|
354
|
-
i0.ɵɵlistener("change", function
|
|
355
|
-
i0.ɵɵelementStart(9, "option",
|
|
403
|
+
i0.ɵɵelementStart(8, "select", 85);
|
|
404
|
+
i0.ɵɵlistener("change", function TestingReviewComponent_ng_template_2_Conditional_13_Template_select_change_8_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnHistorySortChange($event)); });
|
|
405
|
+
i0.ɵɵelementStart(9, "option", 86);
|
|
356
406
|
i0.ɵɵtext(10, "Date");
|
|
357
407
|
i0.ɵɵelementEnd();
|
|
358
|
-
i0.ɵɵelementStart(11, "option",
|
|
408
|
+
i0.ɵɵelementStart(11, "option", 87);
|
|
359
409
|
i0.ɵɵtext(12, "Rating");
|
|
360
410
|
i0.ɵɵelementEnd();
|
|
361
|
-
i0.ɵɵelementStart(13, "option",
|
|
411
|
+
i0.ɵɵelementStart(13, "option", 88);
|
|
362
412
|
i0.ɵɵtext(14, "Test Name");
|
|
363
413
|
i0.ɵɵelementEnd()()()();
|
|
364
|
-
i0.ɵɵconditionalCreate(15,
|
|
414
|
+
i0.ɵɵconditionalCreate(15, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_15_Template, 1, 0, "mj-empty-state", 89)(16, TestingReviewComponent_ng_template_2_Conditional_13_Conditional_16_Template, 3, 0, "div", 90);
|
|
365
415
|
i0.ɵɵelementEnd();
|
|
366
416
|
} if (rf & 2) {
|
|
367
417
|
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
@@ -372,63 +422,69 @@ function TestingReviewComponent_ng_template_2_Conditional_11_Template(rf, ctx) {
|
|
|
372
422
|
i0.ɵɵadvance(7);
|
|
373
423
|
i0.ɵɵconditional(ctx_r2.FilteredHistoryItems.length === 0 ? 15 : 16);
|
|
374
424
|
} }
|
|
375
|
-
function
|
|
376
|
-
i0.ɵɵelementStart(0, "mj-alert",
|
|
425
|
+
function TestingReviewComponent_ng_template_2_Conditional_29_Template(rf, ctx) { if (rf & 1) {
|
|
426
|
+
i0.ɵɵelementStart(0, "mj-alert", 28);
|
|
377
427
|
i0.ɵɵtext(1, " Low agreement may indicate evaluation criteria need refinement. ");
|
|
378
428
|
i0.ɵɵelementEnd();
|
|
379
429
|
} }
|
|
380
430
|
function TestingReviewComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
381
431
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
382
432
|
i0.ɵɵelementStart(0, "div", 7);
|
|
383
|
-
i0.ɵɵconditionalCreate(1, TestingReviewComponent_ng_template_2_Conditional_1_Template,
|
|
384
|
-
i0.ɵɵ
|
|
385
|
-
i0.ɵɵ
|
|
386
|
-
i0.ɵɵ
|
|
387
|
-
i0.ɵɵ
|
|
433
|
+
i0.ɵɵconditionalCreate(1, TestingReviewComponent_ng_template_2_Conditional_1_Template, 2, 1, "p", 8);
|
|
434
|
+
i0.ɵɵconditionalCreate(2, TestingReviewComponent_ng_template_2_Conditional_2_Template, 5, 0, "section", 9);
|
|
435
|
+
i0.ɵɵconditionalCreate(3, TestingReviewComponent_ng_template_2_Conditional_3_Template, 37, 4, "div", 10);
|
|
436
|
+
i0.ɵɵelementStart(4, "div", 11)(5, "div", 12)(6, "button", 13);
|
|
437
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetView("queue")); });
|
|
438
|
+
i0.ɵɵelement(7, "i", 14);
|
|
439
|
+
i0.ɵɵtext(8, " Review Queue ");
|
|
388
440
|
i0.ɵɵelementEnd();
|
|
389
|
-
i0.ɵɵelementStart(
|
|
390
|
-
i0.ɵɵlistener("click", function
|
|
391
|
-
i0.ɵɵelement(
|
|
392
|
-
i0.ɵɵtext(
|
|
441
|
+
i0.ɵɵelementStart(9, "button", 13);
|
|
442
|
+
i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetView("history")); });
|
|
443
|
+
i0.ɵɵelement(10, "i", 15);
|
|
444
|
+
i0.ɵɵtext(11, " History ");
|
|
393
445
|
i0.ɵɵelementEnd()()();
|
|
394
|
-
i0.ɵɵconditionalCreate(
|
|
395
|
-
i0.ɵɵconditionalCreate(
|
|
396
|
-
i0.ɵɵelementStart(
|
|
397
|
-
i0.ɵɵelement(
|
|
398
|
-
i0.ɵɵtext(
|
|
446
|
+
i0.ɵɵconditionalCreate(12, TestingReviewComponent_ng_template_2_Conditional_12_Template, 3, 1, "div", 16);
|
|
447
|
+
i0.ɵɵconditionalCreate(13, TestingReviewComponent_ng_template_2_Conditional_13_Template, 17, 3, "div", 16);
|
|
448
|
+
i0.ɵɵelementStart(14, "div", 17)(15, "h3");
|
|
449
|
+
i0.ɵɵelement(16, "i", 18);
|
|
450
|
+
i0.ɵɵtext(17, " Human vs Auto Agreement ");
|
|
399
451
|
i0.ɵɵelementEnd();
|
|
400
|
-
i0.ɵɵelementStart(
|
|
452
|
+
i0.ɵɵelementStart(18, "div", 19)(19, "div", 20)(20, "div", 21);
|
|
401
453
|
i0.ɵɵnamespaceSVG();
|
|
402
|
-
i0.ɵɵelementStart(
|
|
403
|
-
i0.ɵɵelement(
|
|
454
|
+
i0.ɵɵelementStart(21, "svg", 22);
|
|
455
|
+
i0.ɵɵelement(22, "circle", 23)(23, "circle", 24);
|
|
404
456
|
i0.ɵɵelementEnd();
|
|
405
457
|
i0.ɵɵnamespaceHTML();
|
|
406
|
-
i0.ɵɵelementStart(
|
|
407
|
-
i0.ɵɵtext(
|
|
458
|
+
i0.ɵɵelementStart(24, "div", 25);
|
|
459
|
+
i0.ɵɵtext(25);
|
|
408
460
|
i0.ɵɵelementEnd()()();
|
|
409
|
-
i0.ɵɵelementStart(
|
|
410
|
-
i0.ɵɵtext(
|
|
461
|
+
i0.ɵɵelementStart(26, "div", 26)(27, "p", 27);
|
|
462
|
+
i0.ɵɵtext(28, " Measures how often human reviewers agree with automated evaluation scores. ");
|
|
411
463
|
i0.ɵɵelementEnd();
|
|
412
|
-
i0.ɵɵconditionalCreate(
|
|
464
|
+
i0.ɵɵconditionalCreate(29, TestingReviewComponent_ng_template_2_Conditional_29_Template, 2, 0, "mj-alert", 28);
|
|
413
465
|
i0.ɵɵelementEnd()()()();
|
|
414
466
|
} if (rf & 2) {
|
|
415
467
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
416
468
|
i0.ɵɵadvance();
|
|
417
|
-
i0.ɵɵconditional(ctx_r2.
|
|
469
|
+
i0.ɵɵconditional(ctx_r2.DisagreementError ? 1 : -1);
|
|
470
|
+
i0.ɵɵadvance();
|
|
471
|
+
i0.ɵɵconditional(ctx_r2.Disagreement.length ? 2 : -1);
|
|
472
|
+
i0.ɵɵadvance();
|
|
473
|
+
i0.ɵɵconditional(ctx_r2.Metrics ? 3 : -1);
|
|
418
474
|
i0.ɵɵadvance(3);
|
|
419
475
|
i0.ɵɵclassProp("active", ctx_r2.CurrentView === "queue");
|
|
420
476
|
i0.ɵɵadvance(3);
|
|
421
477
|
i0.ɵɵclassProp("active", ctx_r2.CurrentView === "history");
|
|
422
478
|
i0.ɵɵadvance(3);
|
|
423
|
-
i0.ɵɵconditional(ctx_r2.CurrentView === "queue" ?
|
|
479
|
+
i0.ɵɵconditional(ctx_r2.CurrentView === "queue" ? 12 : -1);
|
|
424
480
|
i0.ɵɵadvance();
|
|
425
|
-
i0.ɵɵconditional(ctx_r2.CurrentView === "history" ?
|
|
481
|
+
i0.ɵɵconditional(ctx_r2.CurrentView === "history" ? 13 : -1);
|
|
426
482
|
i0.ɵɵadvance(10);
|
|
427
483
|
i0.ɵɵattribute("stroke", ctx_r2.AgreementColor)("stroke-dasharray", ctx_r2.AgreementDash);
|
|
428
484
|
i0.ɵɵadvance(2);
|
|
429
485
|
i0.ɵɵtextInterpolate1("", ctx_r2.FormatDecimal(ctx_r2.AgreementRate, 0), "%");
|
|
430
486
|
i0.ɵɵadvance(4);
|
|
431
|
-
i0.ɵɵconditional(ctx_r2.AgreementRate < 70 ?
|
|
487
|
+
i0.ɵɵconditional(ctx_r2.AgreementRate < 70 ? 29 : -1);
|
|
432
488
|
} }
|
|
433
489
|
export class TestingReviewComponent {
|
|
434
490
|
instrumentationService;
|
|
@@ -470,6 +526,8 @@ export class TestingReviewComponent {
|
|
|
470
526
|
FilteredHistoryItems = [];
|
|
471
527
|
Metrics = null;
|
|
472
528
|
PendingCount = 0;
|
|
529
|
+
Disagreement = [];
|
|
530
|
+
DisagreementError = '';
|
|
473
531
|
// Constants
|
|
474
532
|
RatingNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
475
533
|
constructor(instrumentationService, cdr) {
|
|
@@ -479,6 +537,46 @@ export class TestingReviewComponent {
|
|
|
479
537
|
ngOnInit() {
|
|
480
538
|
this.restoreState();
|
|
481
539
|
this.setupSubscriptions();
|
|
540
|
+
void this.LoadDisagreement();
|
|
541
|
+
}
|
|
542
|
+
/** Stored cohort means, largest gap first. The view computes the means; this screen does not average a sample. */
|
|
543
|
+
async LoadDisagreement() {
|
|
544
|
+
try {
|
|
545
|
+
const provider = this.instrumentationService.Provider;
|
|
546
|
+
if (!provider)
|
|
547
|
+
return;
|
|
548
|
+
const view = RunView.FromMetadataProvider(provider);
|
|
549
|
+
const scores = await view.RunView({
|
|
550
|
+
EntityName: 'MJ: Rubric Evaluation Scores',
|
|
551
|
+
ExtraFilter: `EvaluationStatus = 'Submitted' AND CriterionCohortHumanMeanScore IS NOT NULL AND CriterionCohortAIMeanScore IS NOT NULL`,
|
|
552
|
+
ResultType: 'simple',
|
|
553
|
+
MaxRows: 1000,
|
|
554
|
+
});
|
|
555
|
+
if (!scores.Success)
|
|
556
|
+
throw new Error(scores.ErrorMessage || 'Could not load scores.');
|
|
557
|
+
this.Disagreement = CohortDisagreement((scores.Results ?? []).map(row => ({
|
|
558
|
+
CriterionKey: row.CriterionKey,
|
|
559
|
+
Criterion: row.Criterion,
|
|
560
|
+
CriterionCohortHumanMeanScore: row.CriterionCohortHumanMeanScore,
|
|
561
|
+
CriterionCohortAIMeanScore: row.CriterionCohortAIMeanScore,
|
|
562
|
+
SubjectRecordID: row.SubjectRecordID,
|
|
563
|
+
ContextRecordID: row.ContextRecordID,
|
|
564
|
+
RubricID: row.RubricID,
|
|
565
|
+
RubricMajorVersion: row.RubricMajorVersion,
|
|
566
|
+
})));
|
|
567
|
+
this.DisagreementError = '';
|
|
568
|
+
this.cdr.markForCheck();
|
|
569
|
+
}
|
|
570
|
+
catch (error) {
|
|
571
|
+
this.Disagreement = [];
|
|
572
|
+
this.DisagreementError = error instanceof Error ? error.message : 'Could not load disagreement.';
|
|
573
|
+
this.cdr.markForCheck();
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
OpenRun(runId) {
|
|
577
|
+
if (!runId)
|
|
578
|
+
return;
|
|
579
|
+
SharedService.Instance.OpenEntityRecord('MJ: Test Runs', CompositeKey.FromID(runId));
|
|
482
580
|
}
|
|
483
581
|
ngOnDestroy() {
|
|
484
582
|
this.destroy$.next();
|
|
@@ -715,12 +813,12 @@ export class TestingReviewComponent {
|
|
|
715
813
|
});
|
|
716
814
|
}
|
|
717
815
|
static ɵfac = function TestingReviewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingReviewComponent)(i0.ɵɵdirectiveInject(i1.TestingInstrumentationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
718
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingReviewComponent, selectors: [["app-testing-review"]], inputs: { InitialState: "InitialState", initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { StateChange: "StateChange", stateChange: "stateChange" }, standalone: false, decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Human Review", "Icon", "fa-solid fa-clipboard-check", "Subtitle", "Human-in-the-loop review for test outcomes"], ["meta", ""], ["Icon", "fa-solid fa-hourglass-half", "Label", "pending", "Variant", "warning", 3, "Count"], ["actions", ""], [3, "Clicked", "Loading"], [1, "review-page"], [1, "kpi-row"], [1, "view-toggle-bar"], [1, "toggle-group"], [1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-list-check"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "content-card"], [1, "calibration-section"], [1, "fa-solid", "fa-scale-balanced"], [1, "calibration-body"], [1, "gauge-display"], [1, "gauge-ring"], ["viewBox", "0 0 120 120", 1, "gauge-svg"], ["cx", "60", "cy", "60", "r", "52", "fill", "none", "stroke-width", "10", 1, "gauge-track"], ["cx", "60", "cy", "60", "r", "52", "fill", "none", "stroke-width", "10", "stroke-linecap", "round", "stroke-dashoffset", "0", "transform", "rotate(-90 60 60)"], [1, "gauge-value"], [1, "calibration-text"], [1, "calibration-description"], ["Variant", "warning"], [1, "kpi-card"], [1, "kpi-icon", "orange"], [1, "fa-solid", "fa-hourglass-half"], [1, "kpi-content"], [1, "kpi-value"], [1, "kpi-label"], [1, "kpi-icon", "green"], [1, "fa-solid", "fa-check-circle"], [1, "kpi-icon", "gold"], [1, "fa-solid", "fa-star"], [1, "kpi-unit"], [1, "kpi-icon", "blue"], [1, "fa-solid", "fa-handshake"], ["Variant", "success", "Title", "All caught up!", "Message", "No tests currently require human review."], [1, "queue-list"], ["Size", "sm", 3, "FlushBody", "Expanded"], ["Size", "sm", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionActions", ""], ["mjAccordionBody", ""], [1, "item-info"], [1, "item-name"], [1, "item-meta"], [1, "meta-time"], [1, "fa-solid", "fa-clock"], [3, "score", "showBar"], [3, "status"], [1, "reason-badge"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-circle-question"], [1, "review-form-panel"], [1, "form-section"], [1, "form-label"], [1, "rating-row"], [1, "rating-circle", 3, "selected", "current"], [1, "rating-display"], [1, "correctness-row"], [1, "correctness-btn", "correct", 3, "click"], [1, "fa-solid", "fa-check"], [1, "correctness-btn", "incorrect", 3, "click"], [1, "fa-solid", "fa-xmark"], ["rows", "3", "placeholder", "Add any comments about this evaluation...", 1, "notes-textarea", 3, "input", "value"], [1, "form-actions"], [1, "submit-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-paper-plane"], [1, "skip-btn", 3, "click"], [1, "fa-solid", "fa-forward"], [1, "rating-circle", 3, "click"], [1, "history-filters"], [1, "search-wrapper"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search by test name...", 3, "input", "value"], [1, "sort-control"], [3, "change", "value"], ["value", "date"], ["value", "rating"], ["value", "test-name"], ["Icon", "fa-solid fa-folder-open", "Title", "No reviewed items", "Message", "Reviewed tests will appear here once feedback is submitted."], [1, "history-list"], [1, "history-item"], [1, "history-item-main"], [1, "history-name"], [1, "history-date"], [1, "fa-solid", "fa-calendar"], [1, "history-rating"], [1, "rating-dots"], [1, "rating-dot", 3, "filled"], [1, "rating-label"], [1, "history-verdict"], [1, "verdict", "correct"], [1, "verdict", "incorrect"], [1, "history-auto-score"], [1, "history-comments", 3, "expanded"], [1, "rating-dot"], [1, "history-comments", 3, "click"]], template: function TestingReviewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
816
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingReviewComponent, selectors: [["app-testing-review"]], inputs: { InitialState: "InitialState", initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { StateChange: "StateChange", stateChange: "stateChange" }, standalone: false, decls: 4, vars: 1, consts: [["content", ""], [4, "ngTemplateOutlet"], ["Title", "Human Review", "Icon", "fa-solid fa-clipboard-check", "Subtitle", "Human-in-the-loop review for test outcomes"], ["meta", ""], ["Icon", "fa-solid fa-hourglass-half", "Label", "pending", "Variant", "warning", 3, "Count"], ["actions", ""], [3, "Clicked", "Loading"], [1, "review-page"], ["role", "alert"], ["aria-label", "Rubric disagreement", 1, "rubric-disagreement"], [1, "kpi-row"], [1, "view-toggle-bar"], [1, "toggle-group"], [1, "toggle-btn", 3, "click"], [1, "fa-solid", "fa-list-check"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "content-card"], [1, "calibration-section"], [1, "fa-solid", "fa-scale-balanced"], [1, "calibration-body"], [1, "gauge-display"], [1, "gauge-ring"], ["viewBox", "0 0 120 120", 1, "gauge-svg"], ["cx", "60", "cy", "60", "r", "52", "fill", "none", "stroke-width", "10", 1, "gauge-track"], ["cx", "60", "cy", "60", "r", "52", "fill", "none", "stroke-width", "10", "stroke-linecap", "round", "stroke-dashoffset", "0", "transform", "rotate(-90 60 60)"], [1, "gauge-value"], [1, "calibration-text"], [1, "calibration-description"], ["Variant", "warning"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm"], ["type", "button", "mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "kpi-card"], [1, "kpi-icon", "orange"], [1, "fa-solid", "fa-hourglass-half"], [1, "kpi-content"], [1, "kpi-value"], [1, "kpi-label"], [1, "kpi-icon", "green"], [1, "fa-solid", "fa-check-circle"], [1, "kpi-icon", "gold"], [1, "fa-solid", "fa-star"], [1, "kpi-unit"], [1, "kpi-icon", "blue"], [1, "fa-solid", "fa-handshake"], ["Variant", "success", "Title", "All caught up!", "Message", "No tests currently require human review."], [1, "queue-list"], ["Size", "sm", 3, "FlushBody", "Expanded"], ["Size", "sm", 3, "ExpandedChange", "FlushBody", "Expanded"], ["mjAccordionTitle", ""], ["mjAccordionActions", ""], ["mjAccordionBody", ""], [1, "item-info"], [1, "item-name"], [1, "item-meta"], [1, "meta-time"], [1, "fa-solid", "fa-clock"], [3, "score", "showBar"], [3, "status"], [1, "reason-badge"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-circle-question"], [1, "review-form-panel"], [1, "form-section"], [1, "form-label"], [1, "rating-row"], [1, "rating-circle", 3, "selected", "current"], [1, "rating-display"], [1, "correctness-row"], [1, "correctness-btn", "correct", 3, "click"], [1, "fa-solid", "fa-check"], [1, "correctness-btn", "incorrect", 3, "click"], [1, "fa-solid", "fa-xmark"], ["rows", "3", "placeholder", "Add any comments about this evaluation...", 1, "notes-textarea", 3, "input", "value"], [1, "form-actions"], [1, "submit-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-paper-plane"], [1, "skip-btn", 3, "click"], [1, "fa-solid", "fa-forward"], [1, "rating-circle", 3, "click"], [1, "history-filters"], [1, "search-wrapper"], [1, "fa-solid", "fa-search"], ["type", "text", "placeholder", "Search by test name...", 3, "input", "value"], [1, "sort-control"], [3, "change", "value"], ["value", "date"], ["value", "rating"], ["value", "test-name"], ["Icon", "fa-solid fa-folder-open", "Title", "No reviewed items", "Message", "Reviewed tests will appear here once feedback is submitted."], [1, "history-list"], [1, "history-item"], [1, "history-item-main"], [1, "history-name"], [1, "history-date"], [1, "fa-solid", "fa-calendar"], [1, "history-rating"], [1, "rating-dots"], [1, "rating-dot", 3, "filled"], [1, "rating-label"], [1, "history-verdict"], [1, "verdict", "correct"], [1, "verdict", "incorrect"], [1, "history-auto-score"], [1, "history-comments", 3, "expanded"], [1, "rating-dot"], [1, "history-comments", 3, "click"]], template: function TestingReviewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
719
817
|
i0.ɵɵconditionalCreate(0, TestingReviewComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingReviewComponent_Conditional_1_Template, 8, 3, "mj-page-layout");
|
|
720
|
-
i0.ɵɵtemplate(2, TestingReviewComponent_ng_template_2_Template,
|
|
818
|
+
i0.ɵɵtemplate(2, TestingReviewComponent_ng_template_2_Template, 30, 13, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
721
819
|
} if (rf & 2) {
|
|
722
820
|
i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
|
|
723
|
-
} }, dependencies: [i2.NgTemplateOutlet, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i4.MJPageHeaderComponent, i4.MJPageLayoutComponent, i4.MJPageBodyComponent, i4.MJStatBadgeComponent, i4.MJRefreshButtonComponent, i5.TestStatusBadgeComponent, i5.ScoreIndicatorComponent, i4.MJEmptyStateComponent, i4.MJAlertComponent, i4.MJAccordionPanelComponent, i4.MJAccordionTitleDirective, i4.MJAccordionActionsDirective, i4.MJAccordionBodyDirective], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n }\n\n .review-page[_ngcontent-%COMP%] {\n padding: 20px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n \n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n background: var(--mj-bg-surface);\n padding: 20px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .pending-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 14px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-warning);\n border-radius: 20px;\n }\n\n .badge-count[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-text-inverse);\n min-width: 24px;\n height: 24px;\n padding: 0 6px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 700;\n }\n\n .badge-text[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-status-warning);\n }\n\n .refresh-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .refresh-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n }\n\n .refresh-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n \n .kpi-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 20px;\n }\n\n .kpi-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 20px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .kpi-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n }\n\n .kpi-icon.orange[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .kpi-icon.green[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .kpi-icon.gold[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .kpi-icon.blue[_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n\n .kpi-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n }\n\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 26px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n margin-bottom: 4px;\n }\n\n .kpi-unit[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n }\n\n .kpi-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n \n .view-toggle-bar[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: inline-flex;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 24px;\n border: none;\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-bg-surface-card);\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n \n .content-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n margin-bottom: 20px;\n }\n\n \n .queue-list[_ngcontent-%COMP%] {\n max-height: 600px;\n overflow-y: auto;\n }\n\n \n\n\n\n\n .item-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n }\n\n .item-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 14px;\n font-size: 12px;\n color: var(--mj-text-muted);\n align-items: center;\n flex-wrap: wrap;\n }\n\n .meta-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n \n\n\n .reason-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 16px;\n font-size: 11px;\n font-weight: 600;\n }\n\n .reason-no-feedback[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .reason-high-score-failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .reason-low-score-passed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n \n\n\n \n\n\n .review-form-panel[_ngcontent-%COMP%] {\n padding: 20px 20px 20px 36px;\n background: var(--mj-bg-surface);\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-section[_ngcontent-%COMP%]:last-of-type {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 10px;\n }\n\n \n .rating-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .rating-circle[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n border: 2px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-disabled);\n font-size: 13px;\n font-weight: 700;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n }\n\n .rating-circle[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n transform: scale(1.1);\n }\n\n .rating-circle.selected[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .rating-circle.current[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary-hover);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n box-shadow: var(--mj-shadow-sm);\n }\n\n .rating-display[_ngcontent-%COMP%] {\n margin-left: 12px;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n \n .correctness-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n }\n\n .correctness-btn[_ngcontent-%COMP%] {\n flex: 1;\n max-width: 200px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n border: 2px solid var(--mj-border-strong);\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .correctness-btn.correct[_ngcontent-%COMP%]:hover, \n .correctness-btn.correct.active[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .correctness-btn.incorrect[_ngcontent-%COMP%]:hover, \n .correctness-btn.incorrect.active[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n \n .notes-textarea[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 500px;\n padding: 12px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 72px;\n box-sizing: border-box;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-primary);\n }\n\n .notes-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n \n .form-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n }\n\n .submit-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 11px 22px;\n border: none;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .submit-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .submit-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .skip-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 11px 20px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .skip-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n }\n\n \n .history-filters[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n align-items: center;\n }\n\n .search-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-wrapper[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px 10px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n\n .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .sort-control[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--mj-text-muted);\n flex-shrink: 0;\n }\n\n .sort-control[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n\n \n .history-list[_ngcontent-%COMP%] {\n max-height: 600px;\n overflow-y: auto;\n }\n\n .history-item[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n }\n\n .history-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .history-item-main[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 160px;\n }\n\n .history-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n }\n\n .history-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .history-rating[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .rating-dots[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n\n .rating-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--mj-border-default);\n }\n\n .rating-dot.filled[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n }\n\n .rating-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n }\n\n .history-verdict[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }\n\n .verdict[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border-radius: 14px;\n font-size: 11px;\n font-weight: 600;\n }\n\n .verdict.correct[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .verdict.incorrect[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .history-auto-score[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }\n\n .history-comments[_ngcontent-%COMP%] {\n width: 100%;\n margin-top: 8px;\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border-left: 3px solid var(--mj-brand-primary);\n cursor: pointer;\n }\n\n .history-comments[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .history-comments.expanded[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n white-space: normal;\n }\n\n \n .calibration-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 24px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .calibration-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .calibration-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .calibration-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 32px;\n }\n\n .gauge-display[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }\n\n .gauge-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 120px;\n height: 120px;\n }\n\n .gauge-svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .gauge-track[_ngcontent-%COMP%] {\n stroke: var(--mj-border-default);\n }\n\n .gauge-value[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n font-weight: 800;\n color: var(--mj-text-primary);\n }\n\n .calibration-text[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .calibration-description[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n }\n\n\n \n\n\n \n @media (max-width: 1024px) {\n .kpi-row[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n @media (max-width: 768px) {\n .review-page[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .page-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .kpi-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .kpi-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 22px;\n }\n\n .correctness-row[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .correctness-btn[_ngcontent-%COMP%] {\n max-width: 100%;\n }\n\n .history-item[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .calibration-body[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: center;\n text-align: center;\n }\n }"], changeDetection: 0 });
|
|
821
|
+
} }, dependencies: [i2.NgTemplateOutlet, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i4.MJButtonDirective, i4.MJPageHeaderComponent, i4.MJPageLayoutComponent, i4.MJPageBodyComponent, i4.MJStatBadgeComponent, i4.MJRefreshButtonComponent, i5.TestStatusBadgeComponent, i5.ScoreIndicatorComponent, i4.MJEmptyStateComponent, i4.MJAlertComponent, i4.MJAccordionPanelComponent, i4.MJAccordionTitleDirective, i4.MJAccordionActionsDirective, i4.MJAccordionBodyDirective], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n }\n\n .review-page[_ngcontent-%COMP%] {\n padding: 20px;\n height: 100%;\n overflow-y: auto;\n background: var(--mj-bg-surface-card);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n \n .page-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 20px;\n background: var(--mj-bg-surface);\n padding: 20px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 22px;\n font-weight: 700;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .header-left[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .pending-badge[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 14px;\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n border: 1px solid var(--mj-status-warning);\n border-radius: 20px;\n }\n\n .badge-count[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n color: var(--mj-text-inverse);\n min-width: 24px;\n height: 24px;\n padding: 0 6px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 700;\n }\n\n .badge-text[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-status-warning);\n }\n\n .refresh-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 18px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .refresh-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n }\n\n .refresh-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n \n .kpi-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 20px;\n }\n\n .kpi-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 20px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .kpi-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n color: var(--mj-text-inverse);\n flex-shrink: 0;\n }\n\n .kpi-icon.orange[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .kpi-icon.green[_ngcontent-%COMP%] { background: var(--mj-status-success); }\n .kpi-icon.gold[_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n .kpi-icon.blue[_ngcontent-%COMP%] { background: var(--mj-brand-primary); }\n\n .kpi-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n }\n\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 26px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1;\n margin-bottom: 4px;\n }\n\n .kpi-unit[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n }\n\n .kpi-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n \n .view-toggle-bar[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .toggle-group[_ngcontent-%COMP%] {\n display: inline-flex;\n background: var(--mj-bg-surface);\n border-radius: 10px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n }\n\n .toggle-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 24px;\n border: none;\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .toggle-btn[_ngcontent-%COMP%]:hover:not(.active) {\n background: var(--mj-bg-surface-card);\n }\n\n .toggle-btn.active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n \n .content-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n margin-bottom: 20px;\n }\n\n \n .queue-list[_ngcontent-%COMP%] {\n max-height: 600px;\n overflow-y: auto;\n }\n\n \n\n\n\n\n .item-info[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n }\n\n .item-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 6px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .item-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 14px;\n font-size: 12px;\n color: var(--mj-text-muted);\n align-items: center;\n flex-wrap: wrap;\n }\n\n .meta-time[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n \n\n\n .reason-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border-radius: 16px;\n font-size: 11px;\n font-weight: 600;\n }\n\n .reason-no-feedback[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n }\n\n .reason-high-score-failed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .reason-low-score-passed[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n \n\n\n \n\n\n .review-form-panel[_ngcontent-%COMP%] {\n padding: 20px 20px 20px 36px;\n background: var(--mj-bg-surface);\n }\n\n .form-section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n\n .form-section[_ngcontent-%COMP%]:last-of-type {\n margin-bottom: 16px;\n }\n\n .form-label[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n font-weight: 700;\n color: var(--mj-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 10px;\n }\n\n \n .rating-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .rating-circle[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n border: 2px solid var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-disabled);\n font-size: 13px;\n font-weight: 700;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n }\n\n .rating-circle[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n color: var(--mj-brand-primary);\n transform: scale(1.1);\n }\n\n .rating-circle.selected[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n .rating-circle.current[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary-hover);\n border-color: var(--mj-brand-primary-hover);\n color: var(--mj-text-inverse);\n box-shadow: var(--mj-shadow-sm);\n }\n\n .rating-display[_ngcontent-%COMP%] {\n margin-left: 12px;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n \n .correctness-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n }\n\n .correctness-btn[_ngcontent-%COMP%] {\n flex: 1;\n max-width: 200px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n border: 2px solid var(--mj-border-strong);\n border-radius: 10px;\n background: var(--mj-bg-surface-card);\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-muted);\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .correctness-btn.correct[_ngcontent-%COMP%]:hover, \n .correctness-btn.correct.active[_ngcontent-%COMP%] {\n border-color: var(--mj-status-success);\n background: color-mix(in srgb, var(--mj-status-success) 10%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .correctness-btn.incorrect[_ngcontent-%COMP%]:hover, \n .correctness-btn.incorrect.active[_ngcontent-%COMP%] {\n border-color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n \n .notes-textarea[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 500px;\n padding: 12px;\n border: 1px solid var(--mj-border-strong);\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n min-height: 72px;\n box-sizing: border-box;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-primary);\n }\n\n .notes-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n \n .form-actions[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n }\n\n .submit-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 11px 22px;\n border: none;\n border-radius: 8px;\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .submit-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .submit-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .skip-btn[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 11px 20px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-muted);\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .skip-btn[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n }\n\n \n .history-filters[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n align-items: center;\n }\n\n .search-wrapper[_ngcontent-%COMP%] {\n flex: 1;\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-wrapper[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] {\n position: absolute;\n left: 12px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 12px 10px 36px;\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n font-size: 13px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n\n .search-wrapper[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n }\n\n .sort-control[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--mj-text-muted);\n flex-shrink: 0;\n }\n\n .sort-control[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid var(--mj-border-default);\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n }\n\n \n .history-list[_ngcontent-%COMP%] {\n max-height: 600px;\n overflow-y: auto;\n }\n\n .history-item[_ngcontent-%COMP%] {\n padding: 16px 20px;\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n display: flex;\n align-items: center;\n gap: 16px;\n flex-wrap: wrap;\n }\n\n .history-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .history-item-main[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 160px;\n }\n\n .history-name[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n }\n\n .history-date[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-disabled);\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .history-rating[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .rating-dots[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n\n .rating-dot[_ngcontent-%COMP%] {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--mj-border-default);\n }\n\n .rating-dot.filled[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n }\n\n .rating-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n }\n\n .history-verdict[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }\n\n .verdict[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border-radius: 14px;\n font-size: 11px;\n font-weight: 600;\n }\n\n .verdict.correct[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n color: var(--mj-status-success);\n }\n\n .verdict.incorrect[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n color: var(--mj-status-error);\n }\n\n .history-auto-score[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }\n\n .history-comments[_ngcontent-%COMP%] {\n width: 100%;\n margin-top: 8px;\n padding: 10px 14px;\n background: var(--mj-bg-surface-card);\n border-radius: 8px;\n border-left: 3px solid var(--mj-brand-primary);\n cursor: pointer;\n }\n\n .history-comments[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .history-comments.expanded[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n white-space: normal;\n }\n\n \n .calibration-section[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n padding: 24px;\n border-radius: 12px;\n box-shadow: var(--mj-shadow-sm);\n }\n\n .calibration-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 20px 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .calibration-section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n }\n\n .calibration-body[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 32px;\n }\n\n .gauge-display[_ngcontent-%COMP%] {\n flex-shrink: 0;\n }\n\n .gauge-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 120px;\n height: 120px;\n }\n\n .gauge-svg[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .gauge-track[_ngcontent-%COMP%] {\n stroke: var(--mj-border-default);\n }\n\n .gauge-value[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 24px;\n font-weight: 800;\n color: var(--mj-text-primary);\n }\n\n .calibration-text[_ngcontent-%COMP%] {\n flex: 1;\n }\n\n .calibration-description[_ngcontent-%COMP%] {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n }\n\n\n \n\n\n \n @media (max-width: 1024px) {\n .kpi-row[_ngcontent-%COMP%] {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n @media (max-width: 768px) {\n .review-page[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .page-header[_ngcontent-%COMP%] {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .kpi-row[_ngcontent-%COMP%] {\n grid-template-columns: 1fr 1fr;\n }\n\n .kpi-card[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .kpi-value[_ngcontent-%COMP%] {\n font-size: 22px;\n }\n\n .correctness-row[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .correctness-btn[_ngcontent-%COMP%] {\n max-width: 100%;\n }\n\n .history-item[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .calibration-body[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: center;\n text-align: center;\n }\n }"], changeDetection: 0 });
|
|
724
822
|
}
|
|
725
823
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingReviewComponent, [{
|
|
726
824
|
type: Component,
|
|
@@ -756,6 +854,24 @@ export class TestingReviewComponent {
|
|
|
756
854
|
<ng-template #content>
|
|
757
855
|
<!-- Inner page content -->
|
|
758
856
|
<div class="review-page">
|
|
857
|
+
@if (DisagreementError) {
|
|
858
|
+
<p role="alert">{{ DisagreementError }}</p>
|
|
859
|
+
}
|
|
860
|
+
@if (Disagreement.length) {
|
|
861
|
+
<section class="rubric-disagreement" aria-label="Rubric disagreement">
|
|
862
|
+
<h3>Rubric disagreement</h3>
|
|
863
|
+
@for (row of Disagreement; track $index) {
|
|
864
|
+
<p>
|
|
865
|
+
{{ row.name }}
|
|
866
|
+
CriterionKey <code>{{ row.key }}</code>
|
|
867
|
+
— human {{ row.humanMean }} / AI {{ row.aiMean }}
|
|
868
|
+
@if (row.runId) {
|
|
869
|
+
<button type="button" mjButton variant="secondary" size="sm" (click)="OpenRun(row.runId)">Open run</button>
|
|
870
|
+
}
|
|
871
|
+
</p>
|
|
872
|
+
}
|
|
873
|
+
</section>
|
|
874
|
+
}
|
|
759
875
|
|
|
760
876
|
<!-- KPI Summary Row -->
|
|
761
877
|
@if (Metrics) {
|
|
@@ -1041,5 +1157,5 @@ export class TestingReviewComponent {
|
|
|
1041
1157
|
}], stateChange: [{
|
|
1042
1158
|
type: Output
|
|
1043
1159
|
}] }); })();
|
|
1044
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingReviewComponent, { className: "TestingReviewComponent", filePath: "src/Testing/components/testing-review.component.ts", lineNumber:
|
|
1160
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingReviewComponent, { className: "TestingReviewComponent", filePath: "src/Testing/components/testing-review.component.ts", lineNumber: 1128 }); })();
|
|
1045
1161
|
//# sourceMappingURL=testing-review.component.js.map
|