@memberjunction/ng-dashboards 5.34.0 → 5.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
  235. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  236. package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
  237. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  239. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  240. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  241. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  243. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  244. package/dist/Testing/components/testing-analytics.component.js +420 -393
  245. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  249. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  251. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  252. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  253. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  255. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  256. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  257. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  259. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  260. package/dist/Testing/components/testing-explorer.component.js +587 -608
  261. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  263. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  264. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  265. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  266. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  267. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  268. package/dist/Testing/components/testing-review.component.js +310 -274
  269. package/dist/Testing/components/testing-review.component.js.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  271. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  272. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  273. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  275. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  276. package/dist/Testing/components/testing-runs.component.js +307 -273
  277. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  279. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  280. package/dist/Testing/testing-dashboard.component.js +107 -93
  281. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  282. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  283. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  285. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  287. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  288. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  289. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  290. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  291. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  292. package/dist/actions-dashboards.module.d.ts +15 -16
  293. package/dist/actions-dashboards.module.d.ts.map +1 -1
  294. package/dist/actions-dashboards.module.js +34 -11
  295. package/dist/actions-dashboards.module.js.map +1 -1
  296. package/dist/ai-dashboards.module.d.ts +45 -48
  297. package/dist/ai-dashboards.module.d.ts.map +1 -1
  298. package/dist/ai-dashboards.module.js +36 -10
  299. package/dist/ai-dashboards.module.js.map +1 -1
  300. package/dist/archiving-dashboards.module.d.ts +2 -1
  301. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  302. package/dist/archiving-dashboards.module.js +12 -2
  303. package/dist/archiving-dashboards.module.js.map +1 -1
  304. package/dist/communication-dashboards.module.d.ts +2 -1
  305. package/dist/communication-dashboards.module.d.ts.map +1 -1
  306. package/dist/communication-dashboards.module.js +24 -3
  307. package/dist/communication-dashboards.module.js.map +1 -1
  308. package/dist/core-dashboards.module.d.ts +1 -1
  309. package/dist/core-dashboards.module.d.ts.map +1 -1
  310. package/dist/core-dashboards.module.js +31 -1
  311. package/dist/core-dashboards.module.js.map +1 -1
  312. package/dist/credentials-dashboards.module.d.ts +1 -1
  313. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  314. package/dist/credentials-dashboards.module.js +28 -1
  315. package/dist/credentials-dashboards.module.js.map +1 -1
  316. package/dist/lists-dashboards.module.d.ts +1 -1
  317. package/dist/lists-dashboards.module.d.ts.map +1 -1
  318. package/dist/lists-dashboards.module.js +28 -1
  319. package/dist/lists-dashboards.module.js.map +1 -1
  320. package/dist/public-api.d.ts +2 -2
  321. package/dist/public-api.d.ts.map +1 -1
  322. package/dist/public-api.js +3 -3
  323. package/dist/public-api.js.map +1 -1
  324. package/dist/scheduling-dashboards.module.d.ts +1 -1
  325. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  326. package/dist/scheduling-dashboards.module.js +31 -1
  327. package/dist/scheduling-dashboards.module.js.map +1 -1
  328. package/dist/testing-dashboards.module.d.ts +8 -7
  329. package/dist/testing-dashboards.module.d.ts.map +1 -1
  330. package/dist/testing-dashboards.module.js +30 -0
  331. package/dist/testing-dashboards.module.js.map +1 -1
  332. package/package.json +52 -52
  333. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  334. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  335. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  336. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  339. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  340. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  342. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  343. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  344. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  346. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  347. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  348. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -4,77 +4,107 @@ import { takeUntil } from 'rxjs/operators';
4
4
  import { UUIDsEqual } from '@memberjunction/global';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../services/testing-instrumentation.service";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@memberjunction/ng-testing";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/forms";
9
+ import * as i4 from "@memberjunction/ng-ui-components";
10
+ import * as i5 from "@memberjunction/ng-testing";
9
11
  const _forTrack0 = ($index, $item) => $item.testRunID;
10
12
  const _forTrack1 = ($index, $item) => $item.id;
11
- function TestingReviewComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "div", 4)(1, "span", 26);
13
- i0.ɵɵtext(2);
13
+ function TestingReviewComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelementContainer(0);
15
+ } }
16
+ function TestingReviewComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵtemplate(0, TestingReviewComponent_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 1);
18
+ } if (rf & 2) {
19
+ i0.ɵɵnextContext();
20
+ const content_r1 = i0.ɵɵreference(3);
21
+ i0.ɵɵproperty("ngTemplateOutlet", content_r1);
22
+ } }
23
+ function TestingReviewComponent_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelement(0, "mj-stat-badge", 4);
25
+ } if (rf & 2) {
26
+ const ctx_r2 = i0.ɵɵnextContext(2);
27
+ i0.ɵɵproperty("Count", ctx_r2.PendingCount);
28
+ } }
29
+ function TestingReviewComponent_Conditional_1_ng_container_7_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementContainer(0);
31
+ } }
32
+ function TestingReviewComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
33
+ const _r2 = i0.ɵɵgetCurrentView();
34
+ i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 2)(2, "div", 3);
35
+ i0.ɵɵconditionalCreate(3, TestingReviewComponent_Conditional_1_Conditional_3_Template, 1, 1, "mj-stat-badge", 4);
14
36
  i0.ɵɵelementEnd();
15
- i0.ɵɵelementStart(3, "span", 27);
16
- i0.ɵɵtext(4, "pending");
37
+ i0.ɵɵelementStart(4, "div", 5)(5, "mj-refresh-button", 6);
38
+ i0.ɵɵlistener("Clicked", function TestingReviewComponent_Conditional_1_Template_mj_refresh_button_Clicked_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.Refresh()); });
39
+ i0.ɵɵelementEnd()()();
40
+ i0.ɵɵelementStart(6, "mj-page-body");
41
+ i0.ɵɵtemplate(7, TestingReviewComponent_Conditional_1_ng_container_7_Template, 1, 0, "ng-container", 1);
17
42
  i0.ɵɵelementEnd()();
18
43
  } if (rf & 2) {
19
- const ctx_r0 = i0.ɵɵnextContext();
44
+ const ctx_r2 = i0.ɵɵnextContext();
45
+ const content_r1 = i0.ɵɵreference(3);
46
+ i0.ɵɵadvance(3);
47
+ i0.ɵɵconditional(ctx_r2.PendingCount > 0 ? 3 : -1);
48
+ i0.ɵɵadvance(2);
49
+ i0.ɵɵproperty("Loading", ctx_r2.IsRefreshing);
20
50
  i0.ɵɵadvance(2);
21
- i0.ɵɵtextInterpolate(ctx_r0.PendingCount);
51
+ i0.ɵɵproperty("ngTemplateOutlet", content_r1);
22
52
  } }
23
- function TestingReviewComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵelementStart(0, "div", 7)(1, "div", 28)(2, "div", 29);
25
- i0.ɵɵelement(3, "i", 30);
53
+ function TestingReviewComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 27)(2, "div", 28);
55
+ i0.ɵɵelement(3, "i", 29);
26
56
  i0.ɵɵelementEnd();
27
- i0.ɵɵelementStart(4, "div", 31)(5, "div", 32);
57
+ i0.ɵɵelementStart(4, "div", 30)(5, "div", 31);
28
58
  i0.ɵɵtext(6);
29
59
  i0.ɵɵelementEnd();
30
- i0.ɵɵelementStart(7, "div", 33);
60
+ i0.ɵɵelementStart(7, "div", 32);
31
61
  i0.ɵɵtext(8, "Pending Review");
32
62
  i0.ɵɵelementEnd()()();
33
- i0.ɵɵelementStart(9, "div", 28)(10, "div", 34);
34
- i0.ɵɵelement(11, "i", 35);
63
+ i0.ɵɵelementStart(9, "div", 27)(10, "div", 33);
64
+ i0.ɵɵelement(11, "i", 34);
35
65
  i0.ɵɵelementEnd();
36
- i0.ɵɵelementStart(12, "div", 31)(13, "div", 32);
66
+ i0.ɵɵelementStart(12, "div", 30)(13, "div", 31);
37
67
  i0.ɵɵtext(14);
38
68
  i0.ɵɵelementEnd();
39
- i0.ɵɵelementStart(15, "div", 33);
69
+ i0.ɵɵelementStart(15, "div", 32);
40
70
  i0.ɵɵtext(16, "Reviewed");
41
71
  i0.ɵɵelementEnd()()();
42
- i0.ɵɵelementStart(17, "div", 28)(18, "div", 36);
43
- i0.ɵɵelement(19, "i", 37);
72
+ i0.ɵɵelementStart(17, "div", 27)(18, "div", 35);
73
+ i0.ɵɵelement(19, "i", 36);
44
74
  i0.ɵɵelementEnd();
45
- i0.ɵɵelementStart(20, "div", 31)(21, "div", 32);
75
+ i0.ɵɵelementStart(20, "div", 30)(21, "div", 31);
46
76
  i0.ɵɵtext(22);
47
- i0.ɵɵelementStart(23, "span", 38);
77
+ i0.ɵɵelementStart(23, "span", 37);
48
78
  i0.ɵɵtext(24, "/10");
49
79
  i0.ɵɵelementEnd()();
50
- i0.ɵɵelementStart(25, "div", 33);
80
+ i0.ɵɵelementStart(25, "div", 32);
51
81
  i0.ɵɵtext(26, "Avg Rating");
52
82
  i0.ɵɵelementEnd()()();
53
- i0.ɵɵelementStart(27, "div", 28)(28, "div", 39);
54
- i0.ɵɵelement(29, "i", 40);
83
+ i0.ɵɵelementStart(27, "div", 27)(28, "div", 38);
84
+ i0.ɵɵelement(29, "i", 39);
55
85
  i0.ɵɵelementEnd();
56
- i0.ɵɵelementStart(30, "div", 31)(31, "div", 32);
86
+ i0.ɵɵelementStart(30, "div", 30)(31, "div", 31);
57
87
  i0.ɵɵtext(32);
58
- i0.ɵɵelementStart(33, "span", 38);
88
+ i0.ɵɵelementStart(33, "span", 37);
59
89
  i0.ɵɵtext(34, "%");
60
90
  i0.ɵɵelementEnd()();
61
- i0.ɵɵelementStart(35, "div", 33);
91
+ i0.ɵɵelementStart(35, "div", 32);
62
92
  i0.ɵɵtext(36, "Agreement Rate");
63
93
  i0.ɵɵelementEnd()()()();
64
94
  } if (rf & 2) {
65
- const ctx_r0 = i0.ɵɵnextContext();
95
+ const ctx_r2 = i0.ɵɵnextContext(2);
66
96
  i0.ɵɵadvance(6);
67
- i0.ɵɵtextInterpolate(ctx_r0.Metrics.humanPendingCount);
97
+ i0.ɵɵtextInterpolate(ctx_r2.Metrics.humanPendingCount);
68
98
  i0.ɵɵadvance(8);
69
- i0.ɵɵtextInterpolate(ctx_r0.Metrics.humanReviewedCount);
99
+ i0.ɵɵtextInterpolate(ctx_r2.Metrics.humanReviewedCount);
70
100
  i0.ɵɵadvance(8);
71
- i0.ɵɵtextInterpolate(ctx_r0.FormatDecimal(ctx_r0.Metrics.humanAvgRating, 1));
101
+ i0.ɵɵtextInterpolate(ctx_r2.FormatDecimal(ctx_r2.Metrics.humanAvgRating, 1));
72
102
  i0.ɵɵadvance(10);
73
- i0.ɵɵtextInterpolate(ctx_r0.FormatDecimal(ctx_r0.Metrics.agreementRate, 0));
103
+ i0.ɵɵtextInterpolate(ctx_r2.FormatDecimal(ctx_r2.Metrics.agreementRate, 0));
74
104
  } }
75
- function TestingReviewComponent_Conditional_19_Conditional_1_Template(rf, ctx) { if (rf & 1) {
76
- i0.ɵɵelementStart(0, "div", 41);
77
- i0.ɵɵelement(1, "i", 43);
105
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_1_Template(rf, ctx) { if (rf & 1) {
106
+ i0.ɵɵelementStart(0, "div", 40);
107
+ i0.ɵɵelement(1, "i", 42);
78
108
  i0.ɵɵelementStart(2, "h3");
79
109
  i0.ɵɵtext(3, "All caught up!");
80
110
  i0.ɵɵelementEnd();
@@ -82,158 +112,158 @@ function TestingReviewComponent_Conditional_19_Conditional_1_Template(rf, ctx) {
82
112
  i0.ɵɵtext(5, "No tests currently require human review.");
83
113
  i0.ɵɵelementEnd()();
84
114
  } }
85
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵelement(0, "i", 59);
115
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
116
+ i0.ɵɵelement(0, "i", 58);
87
117
  i0.ɵɵtext(1, " No Feedback ");
88
118
  } }
89
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
90
- i0.ɵɵelement(0, "i", 60);
119
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
120
+ i0.ɵɵelement(0, "i", 59);
91
121
  i0.ɵɵtext(1, " Score Mismatch ");
92
122
  } }
93
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
94
- i0.ɵɵelement(0, "i", 61);
123
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
124
+ i0.ɵɵelement(0, "i", 60);
95
125
  i0.ɵɵtext(1, " Needs Verification ");
96
126
  } }
97
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_For_6_Template(rf, ctx) { if (rf & 1) {
98
- const _r5 = i0.ɵɵgetCurrentView();
99
- i0.ɵɵelementStart(0, "button", 78);
100
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_For_6_Template_button_click_0_listener() { const n_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r0 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r0.SelectRating(n_r6)); });
127
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_For_6_Template(rf, ctx) { if (rf & 1) {
128
+ const _r8 = i0.ɵɵgetCurrentView();
129
+ i0.ɵɵelementStart(0, "button", 77);
130
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_For_6_Template_button_click_0_listener() { const n_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r2 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r2.SelectRating(n_r9)); });
101
131
  i0.ɵɵtext(1);
102
132
  i0.ɵɵelementEnd();
103
133
  } if (rf & 2) {
104
- const n_r6 = ctx.$implicit;
105
- const ctx_r0 = i0.ɵɵnextContext(5);
106
- i0.ɵɵclassProp("selected", ctx_r0.FormState.rating != null && n_r6 <= ctx_r0.FormState.rating)("current", ctx_r0.FormState.rating === n_r6);
134
+ const n_r9 = ctx.$implicit;
135
+ const ctx_r2 = i0.ɵɵnextContext(6);
136
+ i0.ɵɵclassProp("selected", ctx_r2.FormState.rating != null && n_r9 <= ctx_r2.FormState.rating)("current", ctx_r2.FormState.rating === n_r9);
107
137
  i0.ɵɵadvance();
108
- i0.ɵɵtextInterpolate1(" ", n_r6, " ");
138
+ i0.ɵɵtextInterpolate1(" ", n_r9, " ");
109
139
  } }
110
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Conditional_7_Template(rf, ctx) { if (rf & 1) {
111
- i0.ɵɵelementStart(0, "span", 66);
140
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Conditional_7_Template(rf, ctx) { if (rf & 1) {
141
+ i0.ɵɵelementStart(0, "span", 65);
112
142
  i0.ɵɵtext(1);
113
143
  i0.ɵɵelementEnd();
114
144
  } if (rf & 2) {
115
- const ctx_r0 = i0.ɵɵnextContext(5);
145
+ const ctx_r2 = i0.ɵɵnextContext(6);
116
146
  i0.ɵɵadvance();
117
- i0.ɵɵtextInterpolate1("", ctx_r0.FormState.rating, "/10");
147
+ i0.ɵɵtextInterpolate1("", ctx_r2.FormState.rating, "/10");
118
148
  } }
119
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
120
- const _r4 = i0.ɵɵgetCurrentView();
121
- i0.ɵɵelementStart(0, "div", 58)(1, "div", 62)(2, "label", 63);
149
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
150
+ const _r7 = i0.ɵɵgetCurrentView();
151
+ i0.ɵɵelementStart(0, "div", 57)(1, "div", 61)(2, "label", 62);
122
152
  i0.ɵɵtext(3, "Rating");
123
153
  i0.ɵɵelementEnd();
124
- i0.ɵɵelementStart(4, "div", 64);
125
- i0.ɵɵrepeaterCreate(5, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_For_6_Template, 2, 5, "button", 65, i0.ɵɵrepeaterTrackByIdentity);
126
- i0.ɵɵconditionalCreate(7, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Conditional_7_Template, 2, 1, "span", 66);
154
+ i0.ɵɵelementStart(4, "div", 63);
155
+ i0.ɵɵrepeaterCreate(5, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_For_6_Template, 2, 5, "button", 64, i0.ɵɵrepeaterTrackByIdentity);
156
+ i0.ɵɵconditionalCreate(7, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Conditional_7_Template, 2, 1, "span", 65);
127
157
  i0.ɵɵelementEnd()();
128
- i0.ɵɵelementStart(8, "div", 62)(9, "label", 63);
158
+ i0.ɵɵelementStart(8, "div", 61)(9, "label", 62);
129
159
  i0.ɵɵtext(10, "Is the automated result correct?");
130
160
  i0.ɵɵelementEnd();
131
- i0.ɵɵelementStart(11, "div", 67)(12, "button", 68);
132
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.SelectCorrectness(true)); });
133
- i0.ɵɵelement(13, "i", 69);
161
+ i0.ɵɵelementStart(11, "div", 66)(12, "button", 67);
162
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template_button_click_12_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.SelectCorrectness(true)); });
163
+ i0.ɵɵelement(13, "i", 68);
134
164
  i0.ɵɵtext(14, " Correct ");
135
165
  i0.ɵɵelementEnd();
136
- i0.ɵɵelementStart(15, "button", 70);
137
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.SelectCorrectness(false)); });
138
- i0.ɵɵelement(16, "i", 71);
166
+ i0.ɵɵelementStart(15, "button", 69);
167
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.SelectCorrectness(false)); });
168
+ i0.ɵɵelement(16, "i", 70);
139
169
  i0.ɵɵtext(17, " Incorrect ");
140
170
  i0.ɵɵelementEnd()()();
141
- i0.ɵɵelementStart(18, "div", 62)(19, "label", 63);
171
+ i0.ɵɵelementStart(18, "div", 61)(19, "label", 62);
142
172
  i0.ɵɵtext(20, "Notes (optional)");
143
173
  i0.ɵɵelementEnd();
144
- i0.ɵɵelementStart(21, "textarea", 72);
145
- i0.ɵɵlistener("input", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template_textarea_input_21_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.OnCommentsChange($event)); });
174
+ i0.ɵɵelementStart(21, "textarea", 71);
175
+ i0.ɵɵlistener("input", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template_textarea_input_21_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.OnCommentsChange($event)); });
146
176
  i0.ɵɵelementEnd()();
147
- i0.ɵɵelementStart(22, "div", 73)(23, "button", 74);
148
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r4); const item_r3 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.SubmitReview(item_r3)); });
149
- i0.ɵɵelement(24, "i", 75);
177
+ i0.ɵɵelementStart(22, "div", 72)(23, "button", 73);
178
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r7); const item_r6 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.SubmitReview(item_r6)); });
179
+ i0.ɵɵelement(24, "i", 74);
150
180
  i0.ɵɵtext(25);
151
181
  i0.ɵɵelementEnd();
152
- i0.ɵɵelementStart(26, "button", 76);
153
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r0.SkipItem()); });
154
- i0.ɵɵelement(27, "i", 77);
182
+ i0.ɵɵelementStart(26, "button", 75);
183
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r2.SkipItem()); });
184
+ i0.ɵɵelement(27, "i", 76);
155
185
  i0.ɵɵtext(28, " Skip ");
156
186
  i0.ɵɵelementEnd()()();
157
187
  } if (rf & 2) {
158
- const ctx_r0 = i0.ɵɵnextContext(4);
188
+ const ctx_r2 = i0.ɵɵnextContext(5);
159
189
  i0.ɵɵadvance(5);
160
- i0.ɵɵrepeater(ctx_r0.RatingNumbers);
190
+ i0.ɵɵrepeater(ctx_r2.RatingNumbers);
161
191
  i0.ɵɵadvance(2);
162
- i0.ɵɵconditional(ctx_r0.FormState.rating != null ? 7 : -1);
192
+ i0.ɵɵconditional(ctx_r2.FormState.rating != null ? 7 : -1);
163
193
  i0.ɵɵadvance(5);
164
- i0.ɵɵclassProp("active", ctx_r0.FormState.isCorrect === true);
194
+ i0.ɵɵclassProp("active", ctx_r2.FormState.isCorrect === true);
165
195
  i0.ɵɵadvance(3);
166
- i0.ɵɵclassProp("active", ctx_r0.FormState.isCorrect === false);
196
+ i0.ɵɵclassProp("active", ctx_r2.FormState.isCorrect === false);
167
197
  i0.ɵɵadvance(6);
168
- i0.ɵɵproperty("value", ctx_r0.FormState.comments);
198
+ i0.ɵɵproperty("value", ctx_r2.FormState.comments);
169
199
  i0.ɵɵadvance(2);
170
- i0.ɵɵproperty("disabled", !ctx_r0.IsFormValid || ctx_r0.IsSubmitting);
200
+ i0.ɵɵproperty("disabled", !ctx_r2.IsFormValid || ctx_r2.IsSubmitting);
171
201
  i0.ɵɵadvance(2);
172
- i0.ɵɵtextInterpolate1(" ", ctx_r0.IsSubmitting ? "Submitting..." : "Submit", " ");
202
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.IsSubmitting ? "Submitting..." : "Submit", " ");
173
203
  } }
174
- function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
175
- const _r2 = i0.ɵɵgetCurrentView();
176
- i0.ɵɵelementStart(0, "div", 45)(1, "div", 46);
177
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_19_Conditional_2_For_2_Template_div_click_1_listener() { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleExpand(item_r3.testRunID)); });
178
- i0.ɵɵelementStart(2, "div", 47)(3, "div", 48);
204
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
205
+ const _r5 = i0.ɵɵgetCurrentView();
206
+ i0.ɵɵelementStart(0, "div", 44)(1, "div", 45);
207
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Template_div_click_1_listener() { const item_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ToggleExpand(item_r6.testRunID)); });
208
+ i0.ɵɵelementStart(2, "div", 46)(3, "div", 47);
179
209
  i0.ɵɵtext(4);
180
210
  i0.ɵɵelementEnd();
181
- i0.ɵɵelementStart(5, "div", 49)(6, "span", 50);
182
- i0.ɵɵelement(7, "i", 51);
211
+ i0.ɵɵelementStart(5, "div", 48)(6, "span", 49);
212
+ i0.ɵɵelement(7, "i", 50);
183
213
  i0.ɵɵtext(8);
184
214
  i0.ɵɵelementEnd();
185
- i0.ɵɵelement(9, "app-score-indicator", 52)(10, "app-test-status-badge", 53);
215
+ i0.ɵɵelement(9, "app-score-indicator", 51)(10, "app-test-status-badge", 52);
186
216
  i0.ɵɵelementEnd()();
187
- i0.ɵɵelementStart(11, "div", 54)(12, "span", 55);
188
- i0.ɵɵconditionalCreate(13, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_13_Template, 2, 0)(14, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_14_Template, 2, 0)(15, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_15_Template, 2, 0);
217
+ i0.ɵɵelementStart(11, "div", 53)(12, "span", 54);
218
+ i0.ɵɵconditionalCreate(13, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_13_Template, 2, 0)(14, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_14_Template, 2, 0)(15, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_15_Template, 2, 0);
189
219
  i0.ɵɵelementEnd();
190
- i0.ɵɵelementStart(16, "button", 56);
191
- i0.ɵɵelement(17, "i", 57);
220
+ i0.ɵɵelementStart(16, "button", 55);
221
+ i0.ɵɵelement(17, "i", 56);
192
222
  i0.ɵɵelementEnd()()();
193
- i0.ɵɵconditionalCreate(18, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Conditional_18_Template, 29, 8, "div", 58);
223
+ i0.ɵɵconditionalCreate(18, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Conditional_18_Template, 29, 8, "div", 57);
194
224
  i0.ɵɵelementEnd();
195
225
  } if (rf & 2) {
196
- const item_r3 = ctx.$implicit;
197
- const ctx_r0 = i0.ɵɵnextContext(3);
198
- i0.ɵɵclassProp("expanded", ctx_r0.IsItemExpanded(item_r3.testRunID));
226
+ const item_r6 = ctx.$implicit;
227
+ const ctx_r2 = i0.ɵɵnextContext(4);
228
+ i0.ɵɵclassProp("expanded", ctx_r2.IsItemExpanded(item_r6.testRunID));
199
229
  i0.ɵɵadvance(4);
200
- i0.ɵɵtextInterpolate(item_r3.testName);
230
+ i0.ɵɵtextInterpolate(item_r6.testName);
201
231
  i0.ɵɵadvance(4);
202
- i0.ɵɵtextInterpolate1(" ", ctx_r0.FormatRelativeTime(item_r3.runDateTime), " ");
232
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(item_r6.runDateTime), " ");
203
233
  i0.ɵɵadvance();
204
- i0.ɵɵproperty("score", item_r3.automatedScore)("showBar", true);
234
+ i0.ɵɵproperty("score", item_r6.automatedScore)("showBar", true);
205
235
  i0.ɵɵadvance();
206
- i0.ɵɵproperty("status", item_r3.automatedStatus);
236
+ i0.ɵɵproperty("status", item_r6.automatedStatus);
207
237
  i0.ɵɵadvance(2);
208
- i0.ɵɵclassMap("reason-" + item_r3.reason);
238
+ i0.ɵɵclassMap("reason-" + item_r6.reason);
209
239
  i0.ɵɵadvance();
210
- i0.ɵɵconditional(item_r3.reason === "no-feedback" ? 13 : item_r3.reason === "high-score-failed" ? 14 : 15);
240
+ i0.ɵɵconditional(item_r6.reason === "no-feedback" ? 13 : item_r6.reason === "high-score-failed" ? 14 : 15);
211
241
  i0.ɵɵadvance(4);
212
- i0.ɵɵclassProp("fa-chevron-down", !ctx_r0.IsItemExpanded(item_r3.testRunID))("fa-chevron-up", ctx_r0.IsItemExpanded(item_r3.testRunID));
242
+ i0.ɵɵclassProp("fa-chevron-down", !ctx_r2.IsItemExpanded(item_r6.testRunID))("fa-chevron-up", ctx_r2.IsItemExpanded(item_r6.testRunID));
213
243
  i0.ɵɵadvance();
214
- i0.ɵɵconditional(ctx_r0.IsItemExpanded(item_r3.testRunID) ? 18 : -1);
244
+ i0.ɵɵconditional(ctx_r2.IsItemExpanded(item_r6.testRunID) ? 18 : -1);
215
245
  } }
216
- function TestingReviewComponent_Conditional_19_Conditional_2_Template(rf, ctx) { if (rf & 1) {
217
- i0.ɵɵelementStart(0, "div", 42);
218
- i0.ɵɵrepeaterCreate(1, TestingReviewComponent_Conditional_19_Conditional_2_For_2_Template, 19, 15, "div", 44, _forTrack0);
246
+ function TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_Template(rf, ctx) { if (rf & 1) {
247
+ i0.ɵɵelementStart(0, "div", 41);
248
+ i0.ɵɵrepeaterCreate(1, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_For_2_Template, 19, 15, "div", 43, _forTrack0);
219
249
  i0.ɵɵelementEnd();
220
250
  } if (rf & 2) {
221
- const ctx_r0 = i0.ɵɵnextContext(2);
251
+ const ctx_r2 = i0.ɵɵnextContext(3);
222
252
  i0.ɵɵadvance();
223
- i0.ɵɵrepeater(ctx_r0.PendingItems);
253
+ i0.ɵɵrepeater(ctx_r2.PendingItems);
224
254
  } }
225
- function TestingReviewComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
226
- i0.ɵɵelementStart(0, "div", 13);
227
- i0.ɵɵconditionalCreate(1, TestingReviewComponent_Conditional_19_Conditional_1_Template, 6, 0, "div", 41)(2, TestingReviewComponent_Conditional_19_Conditional_2_Template, 3, 0, "div", 42);
255
+ function TestingReviewComponent_ng_template_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
256
+ i0.ɵɵelementStart(0, "div", 14);
257
+ i0.ɵɵconditionalCreate(1, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_1_Template, 6, 0, "div", 40)(2, TestingReviewComponent_ng_template_2_Conditional_10_Conditional_2_Template, 3, 0, "div", 41);
228
258
  i0.ɵɵelementEnd();
229
259
  } if (rf & 2) {
230
- const ctx_r0 = i0.ɵɵnextContext();
260
+ const ctx_r2 = i0.ɵɵnextContext(2);
231
261
  i0.ɵɵadvance();
232
- i0.ɵɵconditional(ctx_r0.PendingItems.length === 0 ? 1 : 2);
262
+ i0.ɵɵconditional(ctx_r2.PendingItems.length === 0 ? 1 : 2);
233
263
  } }
234
- function TestingReviewComponent_Conditional_20_Conditional_15_Template(rf, ctx) { if (rf & 1) {
235
- i0.ɵɵelementStart(0, "div", 41);
236
- i0.ɵɵelement(1, "i", 89);
264
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_15_Template(rf, ctx) { if (rf & 1) {
265
+ i0.ɵɵelementStart(0, "div", 40);
266
+ i0.ɵɵelement(1, "i", 88);
237
267
  i0.ɵɵelementStart(2, "h3");
238
268
  i0.ɵɵtext(3, "No reviewed items");
239
269
  i0.ɵɵelementEnd();
@@ -241,130 +271,185 @@ function TestingReviewComponent_Conditional_20_Conditional_15_Template(rf, ctx)
241
271
  i0.ɵɵtext(5, "Reviewed tests will appear here once feedback is submitted.");
242
272
  i0.ɵɵelementEnd()();
243
273
  } }
244
- function TestingReviewComponent_Conditional_20_Conditional_16_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
245
- i0.ɵɵelement(0, "span", 104);
274
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
275
+ i0.ɵɵelement(0, "span", 103);
246
276
  } if (rf & 2) {
247
- const n_r8 = ctx.$implicit;
248
- const item_r9 = i0.ɵɵnextContext().$implicit;
249
- i0.ɵɵclassProp("filled", item_r9.humanRating != null && n_r8 <= item_r9.humanRating);
277
+ const n_r11 = ctx.$implicit;
278
+ const item_r12 = i0.ɵɵnextContext().$implicit;
279
+ i0.ɵɵclassProp("filled", item_r12.humanRating != null && n_r11 <= item_r12.humanRating);
250
280
  } }
251
- function TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelementStart(0, "span", 100);
253
- i0.ɵɵelement(1, "i", 69);
281
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
282
+ i0.ɵɵelementStart(0, "span", 99);
283
+ i0.ɵɵelement(1, "i", 68);
254
284
  i0.ɵɵtext(2, " Correct ");
255
285
  i0.ɵɵelementEnd();
256
286
  } }
257
- function TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵelementStart(0, "span", 101);
259
- i0.ɵɵelement(1, "i", 71);
287
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
288
+ i0.ɵɵelementStart(0, "span", 100);
289
+ i0.ɵɵelement(1, "i", 70);
260
290
  i0.ɵɵtext(2, " Incorrect ");
261
291
  i0.ɵɵelementEnd();
262
292
  } }
263
- function TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
264
- const _r10 = i0.ɵɵgetCurrentView();
265
- i0.ɵɵelementStart(0, "div", 105);
266
- i0.ɵɵlistener("click", function TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_18_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r10); const item_r9 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleHistoryComment(item_r9.id)); });
293
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_18_Template(rf, ctx) { if (rf & 1) {
294
+ const _r13 = i0.ɵɵgetCurrentView();
295
+ i0.ɵɵelementStart(0, "div", 104);
296
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_18_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r13); const item_r12 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.ToggleHistoryComment(item_r12.id)); });
267
297
  i0.ɵɵelementStart(1, "p");
268
298
  i0.ɵɵtext(2);
269
299
  i0.ɵɵelementEnd()();
270
300
  } if (rf & 2) {
271
- const item_r9 = i0.ɵɵnextContext().$implicit;
272
- const ctx_r0 = i0.ɵɵnextContext(3);
273
- i0.ɵɵclassProp("expanded", ctx_r0.ExpandedHistoryId === item_r9.id);
301
+ const item_r12 = i0.ɵɵnextContext().$implicit;
302
+ const ctx_r2 = i0.ɵɵnextContext(4);
303
+ i0.ɵɵclassProp("expanded", ctx_r2.ExpandedHistoryId === item_r12.id);
274
304
  i0.ɵɵadvance(2);
275
- i0.ɵɵtextInterpolate(item_r9.humanComments);
305
+ i0.ɵɵtextInterpolate(item_r12.humanComments);
276
306
  } }
277
- function TestingReviewComponent_Conditional_20_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
278
- i0.ɵɵelementStart(0, "div", 90)(1, "div", 91)(2, "div", 92);
307
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
308
+ i0.ɵɵelementStart(0, "div", 89)(1, "div", 90)(2, "div", 91);
279
309
  i0.ɵɵtext(3);
280
310
  i0.ɵɵelementEnd();
281
- i0.ɵɵelementStart(4, "div", 93);
282
- i0.ɵɵelement(5, "i", 94);
311
+ i0.ɵɵelementStart(4, "div", 92);
312
+ i0.ɵɵelement(5, "i", 93);
283
313
  i0.ɵɵtext(6);
284
314
  i0.ɵɵelementEnd()();
285
- i0.ɵɵelementStart(7, "div", 95)(8, "div", 96);
286
- i0.ɵɵrepeaterCreate(9, TestingReviewComponent_Conditional_20_Conditional_16_For_2_For_10_Template, 1, 2, "span", 97, i0.ɵɵrepeaterTrackByIdentity);
315
+ i0.ɵɵelementStart(7, "div", 94)(8, "div", 95);
316
+ i0.ɵɵrepeaterCreate(9, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_For_10_Template, 1, 2, "span", 96, i0.ɵɵrepeaterTrackByIdentity);
287
317
  i0.ɵɵelementEnd();
288
- i0.ɵɵelementStart(11, "span", 98);
318
+ i0.ɵɵelementStart(11, "span", 97);
289
319
  i0.ɵɵtext(12);
290
320
  i0.ɵɵelementEnd()();
291
- i0.ɵɵelementStart(13, "div", 99);
292
- i0.ɵɵconditionalCreate(14, TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_14_Template, 3, 0, "span", 100)(15, TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_15_Template, 3, 0, "span", 101);
321
+ i0.ɵɵelementStart(13, "div", 98);
322
+ i0.ɵɵconditionalCreate(14, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_14_Template, 3, 0, "span", 99)(15, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_15_Template, 3, 0, "span", 100);
293
323
  i0.ɵɵelementEnd();
294
- i0.ɵɵelementStart(16, "div", 102);
295
- i0.ɵɵelement(17, "app-score-indicator", 52);
324
+ i0.ɵɵelementStart(16, "div", 101);
325
+ i0.ɵɵelement(17, "app-score-indicator", 51);
296
326
  i0.ɵɵelementEnd();
297
- i0.ɵɵconditionalCreate(18, TestingReviewComponent_Conditional_20_Conditional_16_For_2_Conditional_18_Template, 3, 3, "div", 103);
327
+ i0.ɵɵconditionalCreate(18, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Conditional_18_Template, 3, 3, "div", 102);
298
328
  i0.ɵɵelementEnd();
299
329
  } if (rf & 2) {
300
- const item_r9 = ctx.$implicit;
301
- const ctx_r0 = i0.ɵɵnextContext(3);
330
+ const item_r12 = ctx.$implicit;
331
+ const ctx_r2 = i0.ɵɵnextContext(4);
302
332
  i0.ɵɵadvance(3);
303
- i0.ɵɵtextInterpolate(item_r9.testName);
333
+ i0.ɵɵtextInterpolate(item_r12.testName);
304
334
  i0.ɵɵadvance(3);
305
- i0.ɵɵtextInterpolate1(" ", ctx_r0.FormatRelativeTime(item_r9.runDateTime), " ");
335
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(item_r12.runDateTime), " ");
306
336
  i0.ɵɵadvance(3);
307
- i0.ɵɵrepeater(ctx_r0.RatingNumbers);
337
+ i0.ɵɵrepeater(ctx_r2.RatingNumbers);
308
338
  i0.ɵɵadvance(3);
309
- i0.ɵɵtextInterpolate1("", item_r9.humanRating ?? 0, "/10");
339
+ i0.ɵɵtextInterpolate1("", item_r12.humanRating ?? 0, "/10");
310
340
  i0.ɵɵadvance(2);
311
- i0.ɵɵconditional(item_r9.humanIsCorrect === true ? 14 : item_r9.humanIsCorrect === false ? 15 : -1);
341
+ i0.ɵɵconditional(item_r12.humanIsCorrect === true ? 14 : item_r12.humanIsCorrect === false ? 15 : -1);
312
342
  i0.ɵɵadvance(3);
313
- i0.ɵɵproperty("score", item_r9.score)("showBar", true);
343
+ i0.ɵɵproperty("score", item_r12.score)("showBar", true);
314
344
  i0.ɵɵadvance();
315
- i0.ɵɵconditional(item_r9.humanComments ? 18 : -1);
345
+ i0.ɵɵconditional(item_r12.humanComments ? 18 : -1);
316
346
  } }
317
- function TestingReviewComponent_Conditional_20_Conditional_16_Template(rf, ctx) { if (rf & 1) {
318
- i0.ɵɵelementStart(0, "div", 88);
319
- i0.ɵɵrepeaterCreate(1, TestingReviewComponent_Conditional_20_Conditional_16_For_2_Template, 19, 7, "div", 90, _forTrack1);
347
+ function TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_Template(rf, ctx) { if (rf & 1) {
348
+ i0.ɵɵelementStart(0, "div", 87);
349
+ i0.ɵɵrepeaterCreate(1, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_For_2_Template, 19, 7, "div", 89, _forTrack1);
320
350
  i0.ɵɵelementEnd();
321
351
  } if (rf & 2) {
322
- const ctx_r0 = i0.ɵɵnextContext(2);
352
+ const ctx_r2 = i0.ɵɵnextContext(3);
323
353
  i0.ɵɵadvance();
324
- i0.ɵɵrepeater(ctx_r0.FilteredHistoryItems);
354
+ i0.ɵɵrepeater(ctx_r2.FilteredHistoryItems);
325
355
  } }
326
- function TestingReviewComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
327
- const _r7 = i0.ɵɵgetCurrentView();
328
- i0.ɵɵelementStart(0, "div", 13)(1, "div", 79)(2, "div", 80);
329
- i0.ɵɵelement(3, "i", 81);
330
- i0.ɵɵelementStart(4, "input", 82);
331
- i0.ɵɵlistener("input", function TestingReviewComponent_Conditional_20_Template_input_input_4_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnHistorySearch($event)); });
356
+ function TestingReviewComponent_ng_template_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
357
+ const _r10 = i0.ɵɵgetCurrentView();
358
+ i0.ɵɵelementStart(0, "div", 14)(1, "div", 78)(2, "div", 79);
359
+ i0.ɵɵelement(3, "i", 80);
360
+ i0.ɵɵelementStart(4, "input", 81);
361
+ i0.ɵɵlistener("input", function TestingReviewComponent_ng_template_2_Conditional_11_Template_input_input_4_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnHistorySearch($event)); });
332
362
  i0.ɵɵelementEnd()();
333
- i0.ɵɵelementStart(5, "div", 83)(6, "label");
363
+ i0.ɵɵelementStart(5, "div", 82)(6, "label");
334
364
  i0.ɵɵtext(7, "Sort by:");
335
365
  i0.ɵɵelementEnd();
336
- i0.ɵɵelementStart(8, "select", 84);
337
- i0.ɵɵlistener("change", function TestingReviewComponent_Conditional_20_Template_select_change_8_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnHistorySortChange($event)); });
338
- i0.ɵɵelementStart(9, "option", 85);
366
+ i0.ɵɵelementStart(8, "select", 83);
367
+ i0.ɵɵlistener("change", function TestingReviewComponent_ng_template_2_Conditional_11_Template_select_change_8_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.OnHistorySortChange($event)); });
368
+ i0.ɵɵelementStart(9, "option", 84);
339
369
  i0.ɵɵtext(10, "Date");
340
370
  i0.ɵɵelementEnd();
341
- i0.ɵɵelementStart(11, "option", 86);
371
+ i0.ɵɵelementStart(11, "option", 85);
342
372
  i0.ɵɵtext(12, "Rating");
343
373
  i0.ɵɵelementEnd();
344
- i0.ɵɵelementStart(13, "option", 87);
374
+ i0.ɵɵelementStart(13, "option", 86);
345
375
  i0.ɵɵtext(14, "Test Name");
346
376
  i0.ɵɵelementEnd()()()();
347
- i0.ɵɵconditionalCreate(15, TestingReviewComponent_Conditional_20_Conditional_15_Template, 6, 0, "div", 41)(16, TestingReviewComponent_Conditional_20_Conditional_16_Template, 3, 0, "div", 88);
377
+ i0.ɵɵconditionalCreate(15, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_15_Template, 6, 0, "div", 40)(16, TestingReviewComponent_ng_template_2_Conditional_11_Conditional_16_Template, 3, 0, "div", 87);
348
378
  i0.ɵɵelementEnd();
349
379
  } if (rf & 2) {
350
- const ctx_r0 = i0.ɵɵnextContext();
380
+ const ctx_r2 = i0.ɵɵnextContext(2);
351
381
  i0.ɵɵadvance(4);
352
- i0.ɵɵproperty("value", ctx_r0.HistorySearchText);
382
+ i0.ɵɵproperty("value", ctx_r2.HistorySearchText);
353
383
  i0.ɵɵadvance(4);
354
- i0.ɵɵproperty("value", ctx_r0.HistorySortField);
384
+ i0.ɵɵproperty("value", ctx_r2.HistorySortField);
355
385
  i0.ɵɵadvance(7);
356
- i0.ɵɵconditional(ctx_r0.FilteredHistoryItems.length === 0 ? 15 : 16);
386
+ i0.ɵɵconditional(ctx_r2.FilteredHistoryItems.length === 0 ? 15 : 16);
357
387
  } }
358
- function TestingReviewComponent_Conditional_36_Template(rf, ctx) { if (rf & 1) {
359
- i0.ɵɵelementStart(0, "div", 25);
360
- i0.ɵɵelement(1, "i", 60);
388
+ function TestingReviewComponent_ng_template_2_Conditional_27_Template(rf, ctx) { if (rf & 1) {
389
+ i0.ɵɵelementStart(0, "div", 26);
390
+ i0.ɵɵelement(1, "i", 59);
361
391
  i0.ɵɵtext(2, " Low agreement may indicate evaluation criteria need refinement. ");
362
392
  i0.ɵɵelementEnd();
363
393
  } }
394
+ function TestingReviewComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
395
+ const _r4 = i0.ɵɵgetCurrentView();
396
+ i0.ɵɵelementStart(0, "div", 7);
397
+ i0.ɵɵconditionalCreate(1, TestingReviewComponent_ng_template_2_Conditional_1_Template, 37, 4, "div", 8);
398
+ i0.ɵɵelementStart(2, "div", 9)(3, "div", 10)(4, "button", 11);
399
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetView("queue")); });
400
+ i0.ɵɵelement(5, "i", 12);
401
+ i0.ɵɵtext(6, " Review Queue ");
402
+ i0.ɵɵelementEnd();
403
+ i0.ɵɵelementStart(7, "button", 11);
404
+ i0.ɵɵlistener("click", function TestingReviewComponent_ng_template_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.SetView("history")); });
405
+ i0.ɵɵelement(8, "i", 13);
406
+ i0.ɵɵtext(9, " History ");
407
+ i0.ɵɵelementEnd()()();
408
+ i0.ɵɵconditionalCreate(10, TestingReviewComponent_ng_template_2_Conditional_10_Template, 3, 1, "div", 14);
409
+ i0.ɵɵconditionalCreate(11, TestingReviewComponent_ng_template_2_Conditional_11_Template, 17, 3, "div", 14);
410
+ i0.ɵɵelementStart(12, "div", 15)(13, "h3");
411
+ i0.ɵɵelement(14, "i", 16);
412
+ i0.ɵɵtext(15, " Human vs Auto Agreement ");
413
+ i0.ɵɵelementEnd();
414
+ i0.ɵɵelementStart(16, "div", 17)(17, "div", 18)(18, "div", 19);
415
+ i0.ɵɵnamespaceSVG();
416
+ i0.ɵɵelementStart(19, "svg", 20);
417
+ i0.ɵɵelement(20, "circle", 21)(21, "circle", 22);
418
+ i0.ɵɵelementEnd();
419
+ i0.ɵɵnamespaceHTML();
420
+ i0.ɵɵelementStart(22, "div", 23);
421
+ i0.ɵɵtext(23);
422
+ i0.ɵɵelementEnd()()();
423
+ i0.ɵɵelementStart(24, "div", 24)(25, "p", 25);
424
+ i0.ɵɵtext(26, " Measures how often human reviewers agree with automated evaluation scores. ");
425
+ i0.ɵɵelementEnd();
426
+ i0.ɵɵconditionalCreate(27, TestingReviewComponent_ng_template_2_Conditional_27_Template, 3, 0, "div", 26);
427
+ i0.ɵɵelementEnd()()()();
428
+ } if (rf & 2) {
429
+ const ctx_r2 = i0.ɵɵnextContext();
430
+ i0.ɵɵadvance();
431
+ i0.ɵɵconditional(ctx_r2.Metrics ? 1 : -1);
432
+ i0.ɵɵadvance(3);
433
+ i0.ɵɵclassProp("active", ctx_r2.CurrentView === "queue");
434
+ i0.ɵɵadvance(3);
435
+ i0.ɵɵclassProp("active", ctx_r2.CurrentView === "history");
436
+ i0.ɵɵadvance(3);
437
+ i0.ɵɵconditional(ctx_r2.CurrentView === "queue" ? 10 : -1);
438
+ i0.ɵɵadvance();
439
+ i0.ɵɵconditional(ctx_r2.CurrentView === "history" ? 11 : -1);
440
+ i0.ɵɵadvance(10);
441
+ i0.ɵɵattribute("stroke", ctx_r2.AgreementColor)("stroke-dasharray", ctx_r2.AgreementDash);
442
+ i0.ɵɵadvance(2);
443
+ i0.ɵɵtextInterpolate1("", ctx_r2.FormatDecimal(ctx_r2.AgreementRate, 0), "%");
444
+ i0.ɵɵadvance(4);
445
+ i0.ɵɵconditional(ctx_r2.AgreementRate < 70 ? 27 : -1);
446
+ } }
364
447
  export class TestingReviewComponent {
365
448
  instrumentationService;
366
449
  cdr;
367
450
  initialState = null;
451
+ /** When true, the inner bespoke .page-header is hidden — the parent shell owns the chrome. */
452
+ HideToolbar = false;
368
453
  stateChange = new EventEmitter();
369
454
  destroy$ = new Subject();
370
455
  // View state
@@ -608,99 +693,47 @@ export class TestingReviewComponent {
608
693
  this.stateChange.emit({ viewMode: this.CurrentView });
609
694
  }
610
695
  static ɵfac = function TestingReviewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestingReviewComponent)(i0.ɵɵdirectiveInject(i1.TestingInstrumentationService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
611
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingReviewComponent, selectors: [["app-testing-review"]], inputs: { initialState: "initialState" }, outputs: { stateChange: "stateChange" }, standalone: false, decls: 37, vars: 16, consts: [[1, "review-page"], [1, "page-header"], [1, "header-left"], [1, "fa-solid", "fa-clipboard-check"], [1, "pending-badge"], [1, "refresh-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-arrows-rotate"], [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"], [1, "calibration-warning"], [1, "badge-count"], [1, "badge-text"], [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"], [1, "empty-state"], [1, "queue-list"], [1, "fa-solid", "fa-circle-check"], [1, "queue-item", 3, "expanded"], [1, "queue-item"], [1, "queue-item-header", 3, "click"], [1, "item-info"], [1, "item-name"], [1, "item-meta"], [1, "meta-time"], [1, "fa-solid", "fa-clock"], [3, "score", "showBar"], [3, "status"], [1, "item-actions-area"], [1, "reason-badge"], [1, "expand-toggle"], [1, "fa-solid"], [1, "review-form-panel"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-circle-question"], [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"], [1, "history-list"], [1, "fa-solid", "fa-folder-open"], [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) {
612
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h2");
613
- i0.ɵɵelement(4, "i", 3);
614
- i0.ɵɵtext(5, " Human Review ");
615
- i0.ɵɵelementEnd();
616
- i0.ɵɵconditionalCreate(6, TestingReviewComponent_Conditional_6_Template, 5, 1, "div", 4);
617
- i0.ɵɵelementEnd();
618
- i0.ɵɵelementStart(7, "button", 5);
619
- i0.ɵɵlistener("click", function TestingReviewComponent_Template_button_click_7_listener() { return ctx.Refresh(); });
620
- i0.ɵɵelement(8, "i", 6);
621
- i0.ɵɵtext(9);
622
- i0.ɵɵelementEnd()();
623
- i0.ɵɵconditionalCreate(10, TestingReviewComponent_Conditional_10_Template, 37, 4, "div", 7);
624
- i0.ɵɵelementStart(11, "div", 8)(12, "div", 9)(13, "button", 10);
625
- i0.ɵɵlistener("click", function TestingReviewComponent_Template_button_click_13_listener() { return ctx.SetView("queue"); });
626
- i0.ɵɵelement(14, "i", 11);
627
- i0.ɵɵtext(15, " Review Queue ");
628
- i0.ɵɵelementEnd();
629
- i0.ɵɵelementStart(16, "button", 10);
630
- i0.ɵɵlistener("click", function TestingReviewComponent_Template_button_click_16_listener() { return ctx.SetView("history"); });
631
- i0.ɵɵelement(17, "i", 12);
632
- i0.ɵɵtext(18, " History ");
633
- i0.ɵɵelementEnd()()();
634
- i0.ɵɵconditionalCreate(19, TestingReviewComponent_Conditional_19_Template, 3, 1, "div", 13);
635
- i0.ɵɵconditionalCreate(20, TestingReviewComponent_Conditional_20_Template, 17, 3, "div", 13);
636
- i0.ɵɵelementStart(21, "div", 14)(22, "h3");
637
- i0.ɵɵelement(23, "i", 15);
638
- i0.ɵɵtext(24, " Human vs Auto Agreement ");
639
- i0.ɵɵelementEnd();
640
- i0.ɵɵelementStart(25, "div", 16)(26, "div", 17)(27, "div", 18);
641
- i0.ɵɵnamespaceSVG();
642
- i0.ɵɵelementStart(28, "svg", 19);
643
- i0.ɵɵelement(29, "circle", 20)(30, "circle", 21);
644
- i0.ɵɵelementEnd();
645
- i0.ɵɵnamespaceHTML();
646
- i0.ɵɵelementStart(31, "div", 22);
647
- i0.ɵɵtext(32);
648
- i0.ɵɵelementEnd()()();
649
- i0.ɵɵelementStart(33, "div", 23)(34, "p", 24);
650
- i0.ɵɵtext(35, " Measures how often human reviewers agree with automated evaluation scores. ");
651
- i0.ɵɵelementEnd();
652
- i0.ɵɵconditionalCreate(36, TestingReviewComponent_Conditional_36_Template, 3, 0, "div", 25);
653
- i0.ɵɵelementEnd()()()();
696
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TestingReviewComponent, selectors: [["app-testing-review"]], inputs: { initialState: "initialState", HideToolbar: "HideToolbar" }, outputs: { 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"], [1, "calibration-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"], [1, "empty-state"], [1, "queue-list"], [1, "fa-solid", "fa-circle-check"], [1, "queue-item", 3, "expanded"], [1, "queue-item"], [1, "queue-item-header", 3, "click"], [1, "item-info"], [1, "item-name"], [1, "item-meta"], [1, "meta-time"], [1, "fa-solid", "fa-clock"], [3, "score", "showBar"], [3, "status"], [1, "item-actions-area"], [1, "reason-badge"], [1, "expand-toggle"], [1, "fa-solid"], [1, "review-form-panel"], [1, "fa-solid", "fa-comment-slash"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-circle-question"], [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"], [1, "history-list"], [1, "fa-solid", "fa-folder-open"], [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) {
697
+ i0.ɵɵconditionalCreate(0, TestingReviewComponent_Conditional_0_Template, 1, 1, "ng-container")(1, TestingReviewComponent_Conditional_1_Template, 8, 3, "mj-page-layout");
698
+ i0.ɵɵtemplate(2, TestingReviewComponent_ng_template_2_Template, 28, 11, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
654
699
  } if (rf & 2) {
655
- i0.ɵɵadvance(6);
656
- i0.ɵɵconditional(ctx.PendingCount > 0 ? 6 : -1);
657
- i0.ɵɵadvance();
658
- i0.ɵɵproperty("disabled", ctx.IsRefreshing);
659
- i0.ɵɵadvance();
660
- i0.ɵɵclassProp("fa-spin", ctx.IsRefreshing);
661
- i0.ɵɵadvance();
662
- i0.ɵɵtextInterpolate1(" ", ctx.IsRefreshing ? "Refreshing..." : "Refresh", " ");
663
- i0.ɵɵadvance();
664
- i0.ɵɵconditional(ctx.Metrics ? 10 : -1);
665
- i0.ɵɵadvance(3);
666
- i0.ɵɵclassProp("active", ctx.CurrentView === "queue");
667
- i0.ɵɵadvance(3);
668
- i0.ɵɵclassProp("active", ctx.CurrentView === "history");
669
- i0.ɵɵadvance(3);
670
- i0.ɵɵconditional(ctx.CurrentView === "queue" ? 19 : -1);
671
- i0.ɵɵadvance();
672
- i0.ɵɵconditional(ctx.CurrentView === "history" ? 20 : -1);
673
- i0.ɵɵadvance(10);
674
- i0.ɵɵattribute("stroke", ctx.AgreementColor)("stroke-dasharray", ctx.AgreementDash);
675
- i0.ɵɵadvance(2);
676
- i0.ɵɵtextInterpolate1("", ctx.FormatDecimal(ctx.AgreementRate, 0), "%");
677
- i0.ɵɵadvance(4);
678
- i0.ɵɵconditional(ctx.AgreementRate < 70 ? 36 : -1);
679
- } }, dependencies: [i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i3.TestStatusBadgeComponent, i3.ScoreIndicatorComponent], 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\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\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\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\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\n .queue-list[_ngcontent-%COMP%] {\n max-height: 600px;\n overflow-y: auto;\n }\n\n .queue-item[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background 0.2s ease;\n }\n\n .queue-item.expanded[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n }\n\n .queue-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .queue-item-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n align-items: center;\n gap: 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n }\n\n .queue-item-header[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\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 .item-actions-area[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\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 .expand-toggle[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 8px;\n border-radius: 6px;\n font-size: 14px;\n transition: all 0.2s ease;\n }\n\n .expand-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n \n\n .review-form-panel[_ngcontent-%COMP%] {\n padding: 20px 20px 20px 36px;\n border-top: 1px solid var(--mj-border-default);\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\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\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\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\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\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\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\n .empty-state[_ngcontent-%COMP%] {\n padding: 60px 20px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 52px;\n margin-bottom: 16px;\n color: var(--mj-status-success);\n }\n\n .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n font-weight: 600;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-disabled);\n margin: 0;\n }\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 .calibration-warning[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\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: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-status-warning);\n }\n\n .calibration-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 16px;\n flex-shrink: 0;\n }\n\n \n\n .queue-item[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\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 .queue-item-header[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n\n .item-actions-area[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: flex-end;\n margin-top: 8px;\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 });
700
+ i0.ɵɵconditional(ctx.HideToolbar ? 0 : 1);
701
+ } }, dependencies: [i2.NgTemplateOutlet, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i4.MJPageHeaderComponent, i4.MJPageLayoutComponent, i4.MJPageBodyComponent, i4.MJStatBadgeComponent, i4.MJRefreshButtonComponent, i5.TestStatusBadgeComponent, i5.ScoreIndicatorComponent], 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\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\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\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\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\n .queue-list[_ngcontent-%COMP%] {\n max-height: 600px;\n overflow-y: auto;\n }\n\n .queue-item[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background 0.2s ease;\n }\n\n .queue-item.expanded[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n }\n\n .queue-item[_ngcontent-%COMP%]:last-child {\n border-bottom: none;\n }\n\n .queue-item-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n align-items: center;\n gap: 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n }\n\n .queue-item-header[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\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 .item-actions-area[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\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 .expand-toggle[_ngcontent-%COMP%] {\n background: none;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 8px;\n border-radius: 6px;\n font-size: 14px;\n transition: all 0.2s ease;\n }\n\n .expand-toggle[_ngcontent-%COMP%]:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n \n\n .review-form-panel[_ngcontent-%COMP%] {\n padding: 20px 20px 20px 36px;\n border-top: 1px solid var(--mj-border-default);\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\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\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\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\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\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\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\n .empty-state[_ngcontent-%COMP%] {\n padding: 60px 20px;\n text-align: center;\n }\n\n .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 52px;\n margin-bottom: 16px;\n color: var(--mj-status-success);\n }\n\n .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n font-weight: 600;\n }\n\n .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-disabled);\n margin: 0;\n }\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 .calibration-warning[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\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: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-status-warning);\n }\n\n .calibration-warning[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n font-size: 16px;\n flex-shrink: 0;\n }\n\n \n\n .queue-item[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease;\n }\n\n @keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\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 .queue-item-header[_ngcontent-%COMP%] {\n flex-wrap: wrap;\n }\n\n .item-actions-area[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: flex-end;\n margin-top: 8px;\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 });
680
702
  }
681
703
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TestingReviewComponent, [{
682
704
  type: Component,
683
705
  args: [{ standalone: false, selector: 'app-testing-review', changeDetection: ChangeDetectionStrategy.OnPush, template: `
684
- <!-- Page Header -->
706
+ @if (HideToolbar) {
707
+ <ng-container *ngTemplateOutlet="content"></ng-container>
708
+ } @else {
709
+ <mj-page-layout>
710
+ <mj-page-header
711
+ Title="Human Review"
712
+ Icon="fa-solid fa-clipboard-check"
713
+ Subtitle="Human-in-the-loop review for test outcomes">
714
+ <div meta>
715
+ @if (PendingCount > 0) {
716
+ <mj-stat-badge
717
+ Icon="fa-solid fa-hourglass-half"
718
+ [Count]="PendingCount"
719
+ Label="pending"
720
+ Variant="warning">
721
+ </mj-stat-badge>
722
+ }
723
+ </div>
724
+ <div actions>
725
+ <mj-refresh-button [Loading]="IsRefreshing" (Clicked)="Refresh()"></mj-refresh-button>
726
+ </div>
727
+ </mj-page-header>
728
+ <mj-page-body>
729
+ <ng-container *ngTemplateOutlet="content"></ng-container>
730
+ </mj-page-body>
731
+ </mj-page-layout>
732
+ }
733
+
734
+ <ng-template #content>
735
+ <!-- Inner page content -->
685
736
  <div class="review-page">
686
- <div class="page-header">
687
- <div class="header-left">
688
- <h2>
689
- <i class="fa-solid fa-clipboard-check"></i>
690
- Human Review
691
- </h2>
692
- @if (PendingCount > 0) {
693
- <div class="pending-badge">
694
- <span class="badge-count">{{ PendingCount }}</span>
695
- <span class="badge-text">pending</span>
696
- </div>
697
- }
698
- </div>
699
- <button class="refresh-btn" (click)="Refresh()" [disabled]="IsRefreshing">
700
- <i class="fa-solid fa-arrows-rotate" [class.fa-spin]="IsRefreshing"></i>
701
- {{ IsRefreshing ? 'Refreshing...' : 'Refresh' }}
702
- </button>
703
- </div>
704
737
 
705
738
  <!-- KPI Summary Row -->
706
739
  @if (Metrics) {
@@ -979,11 +1012,14 @@ export class TestingReviewComponent {
979
1012
  </div>
980
1013
  </div>
981
1014
  </div>
1015
+ </ng-template>
982
1016
  `, styles: ["\n :host {\n display: block;\n height: 100%;\n }\n\n .review-page {\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 /* Page Header */\n .page-header {\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 {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .header-left h2 {\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 h2 i {\n color: var(--mj-brand-primary);\n }\n\n .pending-badge {\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 {\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 {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-status-warning);\n }\n\n .refresh-btn {\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:hover:not(:disabled) {\n background: var(--mj-bg-surface-card);\n border-color: var(--mj-border-strong);\n }\n\n .refresh-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n /* KPI Row */\n .kpi-row {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 16px;\n margin-bottom: 20px;\n }\n\n .kpi-card {\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 {\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 { background: var(--mj-status-warning); }\n .kpi-icon.green { background: var(--mj-status-success); }\n .kpi-icon.gold { background: var(--mj-status-warning); }\n .kpi-icon.blue { background: var(--mj-brand-primary); }\n\n .kpi-content {\n flex: 1;\n min-width: 0;\n }\n\n .kpi-value {\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 {\n font-size: 14px;\n font-weight: 500;\n color: var(--mj-text-muted);\n }\n\n .kpi-label {\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 /* View Toggle */\n .view-toggle-bar {\n margin-bottom: 20px;\n }\n\n .toggle-group {\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 {\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:hover:not(.active) {\n background: var(--mj-bg-surface-card);\n }\n\n .toggle-btn.active {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n\n /* Content Card */\n .content-card {\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 /* Queue List */\n .queue-list {\n max-height: 600px;\n overflow-y: auto;\n }\n\n .queue-item {\n border-bottom: 1px solid var(--mj-bg-surface-sunken);\n transition: background 0.2s ease;\n }\n\n .queue-item.expanded {\n background: var(--mj-bg-surface-card);\n }\n\n .queue-item:last-child {\n border-bottom: none;\n }\n\n .queue-item-header {\n padding: 16px 20px;\n display: flex;\n align-items: center;\n gap: 16px;\n cursor: pointer;\n transition: background 0.2s ease;\n }\n\n .queue-item-header:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 4%, var(--mj-bg-surface));\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n }\n\n .item-name {\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 {\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 {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .item-actions-area {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-shrink: 0;\n }\n\n .reason-badge {\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 {\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 {\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 {\n background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n color: var(--mj-status-warning);\n }\n\n .expand-toggle {\n background: none;\n border: none;\n color: var(--mj-text-disabled);\n cursor: pointer;\n padding: 8px;\n border-radius: 6px;\n font-size: 14px;\n transition: all 0.2s ease;\n }\n\n .expand-toggle:hover {\n background: var(--mj-border-default);\n color: var(--mj-text-muted);\n }\n\n /* Review Form */\n .review-form-panel {\n padding: 20px 20px 20px 36px;\n border-top: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n }\n\n .form-section {\n margin-bottom: 20px;\n }\n\n .form-section:last-of-type {\n margin-bottom: 16px;\n }\n\n .form-label {\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 /* Rating Circles */\n .rating-row {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .rating-circle {\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: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 {\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 {\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 {\n margin-left: 12px;\n font-size: 16px;\n font-weight: 700;\n color: var(--mj-text-primary);\n }\n\n /* Correctness Buttons */\n .correctness-row {\n display: flex;\n gap: 12px;\n }\n\n .correctness-btn {\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:hover,\n .correctness-btn.correct.active {\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:hover,\n .correctness-btn.incorrect.active {\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 /* Notes */\n .notes-textarea {\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: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 /* Form Actions */\n .form-actions {\n display: flex;\n gap: 12px;\n }\n\n .submit-btn {\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:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: var(--mj-shadow-md);\n }\n\n .submit-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .skip-btn {\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:hover {\n border-color: var(--mj-border-strong);\n background: var(--mj-bg-surface-card);\n }\n\n /* History Filters */\n .history-filters {\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 {\n flex: 1;\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .search-wrapper > i {\n position: absolute;\n left: 12px;\n color: var(--mj-text-disabled);\n font-size: 13px;\n }\n\n .search-wrapper input {\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 input: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 {\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 select {\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 /* History List */\n .history-list {\n max-height: 600px;\n overflow-y: auto;\n }\n\n .history-item {\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:last-child {\n border-bottom: none;\n }\n\n .history-item-main {\n flex: 1;\n min-width: 160px;\n }\n\n .history-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin-bottom: 4px;\n }\n\n .history-date {\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 {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .rating-dots {\n display: flex;\n gap: 3px;\n }\n\n .rating-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--mj-border-default);\n }\n\n .rating-dot.filled {\n background: var(--mj-status-warning);\n }\n\n .rating-label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-muted);\n }\n\n .history-verdict {\n flex-shrink: 0;\n }\n\n .verdict {\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 {\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 {\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 {\n flex-shrink: 0;\n }\n\n .history-comments {\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 p {\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 p {\n white-space: normal;\n }\n\n /* Empty State */\n .empty-state {\n padding: 60px 20px;\n text-align: center;\n }\n\n .empty-state i {\n font-size: 52px;\n margin-bottom: 16px;\n color: var(--mj-status-success);\n }\n\n .empty-state h3 {\n font-size: 18px;\n color: var(--mj-text-primary);\n margin: 0 0 8px 0;\n font-weight: 600;\n }\n\n .empty-state p {\n font-size: 14px;\n color: var(--mj-text-disabled);\n margin: 0;\n }\n\n /* Calibration Section */\n .calibration-section {\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 h3 {\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 h3 i {\n color: var(--mj-brand-primary);\n }\n\n .calibration-body {\n display: flex;\n align-items: center;\n gap: 32px;\n }\n\n .gauge-display {\n flex-shrink: 0;\n }\n\n .gauge-ring {\n position: relative;\n width: 120px;\n height: 120px;\n }\n\n .gauge-svg {\n width: 100%;\n height: 100%;\n }\n\n .gauge-track {\n stroke: var(--mj-border-default);\n }\n\n .gauge-value {\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 {\n flex: 1;\n }\n\n .calibration-description {\n margin: 0 0 12px 0;\n font-size: 14px;\n color: var(--mj-text-muted);\n line-height: 1.6;\n }\n\n .calibration-warning {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\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: 8px;\n font-size: 13px;\n font-weight: 500;\n color: var(--mj-status-warning);\n }\n\n .calibration-warning i {\n color: var(--mj-status-warning);\n font-size: 16px;\n flex-shrink: 0;\n }\n\n /* Success toast animation */\n .queue-item {\n animation: fadeIn 0.2s ease;\n }\n\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .kpi-row {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n\n @media (max-width: 768px) {\n .review-page {\n padding: 16px;\n }\n\n .page-header {\n flex-direction: column;\n gap: 16px;\n align-items: flex-start;\n }\n\n .kpi-row {\n grid-template-columns: 1fr 1fr;\n }\n\n .kpi-card {\n padding: 16px;\n }\n\n .kpi-value {\n font-size: 22px;\n }\n\n .queue-item-header {\n flex-wrap: wrap;\n }\n\n .item-actions-area {\n width: 100%;\n justify-content: flex-end;\n margin-top: 8px;\n }\n\n .correctness-row {\n flex-direction: column;\n }\n\n .correctness-btn {\n max-width: 100%;\n }\n\n .history-item {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .calibration-body {\n flex-direction: column;\n align-items: center;\n text-align: center;\n }\n }\n "] }]
983
1017
  }], () => [{ type: i1.TestingInstrumentationService }, { type: i0.ChangeDetectorRef }], { initialState: [{
984
1018
  type: Input
1019
+ }], HideToolbar: [{
1020
+ type: Input
985
1021
  }], stateChange: [{
986
1022
  type: Output
987
1023
  }] }); })();
988
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingReviewComponent, { className: "TestingReviewComponent", filePath: "src/Testing/components/testing-review.component.ts", lineNumber: 1198 }); })();
1024
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TestingReviewComponent, { className: "TestingReviewComponent", filePath: "src/Testing/components/testing-review.component.ts", lineNumber: 1210 }); })();
989
1025
  //# sourceMappingURL=testing-review.component.js.map