@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.
- package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +399 -292
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
- package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +17 -0
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +370 -425
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +317 -357
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +403 -362
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +781 -783
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +6 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +79 -30
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +196 -142
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -1
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +32 -40
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +32 -40
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +32 -40
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.js +24 -5
- package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
- package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +80 -99
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +127 -106
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +44 -45
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +60 -58
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -162
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +6 -0
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +521 -485
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +8 -0
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +309 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +866 -847
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +182 -163
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +241 -241
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +1 -1
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +28 -1
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +486 -532
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +152 -160
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +234 -246
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +1248 -1338
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +1 -1
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +34 -1
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Permissions/audit-log-resource.component.js +76 -85
- package/dist/Permissions/audit-log-resource.component.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +64 -69
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +63 -74
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +4 -0
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +812 -784
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +420 -393
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +587 -608
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +9 -12
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts +3 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +310 -274
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +16 -19
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts +3 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +307 -273
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +2 -0
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +107 -93
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +185 -188
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +154 -184
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +350 -354
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +163 -169
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/actions-dashboards.module.d.ts +15 -16
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +34 -11
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +45 -48
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +36 -10
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/archiving-dashboards.module.d.ts +2 -1
- package/dist/archiving-dashboards.module.d.ts.map +1 -1
- package/dist/archiving-dashboards.module.js +12 -2
- package/dist/archiving-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +2 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +24 -3
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +1 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +31 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +1 -1
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +28 -1
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +1 -1
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +28 -1
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -3
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +1 -1
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +31 -1
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +8 -7
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +30 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +52 -52
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
- 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/
|
|
8
|
-
import * as i3 from "@
|
|
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
|
|
12
|
-
i0.ɵɵ
|
|
13
|
-
|
|
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(
|
|
16
|
-
i0.ɵɵ
|
|
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
|
|
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.ɵɵ
|
|
51
|
+
i0.ɵɵproperty("ngTemplateOutlet", content_r1);
|
|
22
52
|
} }
|
|
23
|
-
function
|
|
24
|
-
i0.ɵɵelementStart(0, "div",
|
|
25
|
-
i0.ɵɵelement(3, "i",
|
|
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",
|
|
57
|
+
i0.ɵɵelementStart(4, "div", 30)(5, "div", 31);
|
|
28
58
|
i0.ɵɵtext(6);
|
|
29
59
|
i0.ɵɵelementEnd();
|
|
30
|
-
i0.ɵɵelementStart(7, "div",
|
|
60
|
+
i0.ɵɵelementStart(7, "div", 32);
|
|
31
61
|
i0.ɵɵtext(8, "Pending Review");
|
|
32
62
|
i0.ɵɵelementEnd()()();
|
|
33
|
-
i0.ɵɵelementStart(9, "div",
|
|
34
|
-
i0.ɵɵelement(11, "i",
|
|
63
|
+
i0.ɵɵelementStart(9, "div", 27)(10, "div", 33);
|
|
64
|
+
i0.ɵɵelement(11, "i", 34);
|
|
35
65
|
i0.ɵɵelementEnd();
|
|
36
|
-
i0.ɵɵelementStart(12, "div",
|
|
66
|
+
i0.ɵɵelementStart(12, "div", 30)(13, "div", 31);
|
|
37
67
|
i0.ɵɵtext(14);
|
|
38
68
|
i0.ɵɵelementEnd();
|
|
39
|
-
i0.ɵɵelementStart(15, "div",
|
|
69
|
+
i0.ɵɵelementStart(15, "div", 32);
|
|
40
70
|
i0.ɵɵtext(16, "Reviewed");
|
|
41
71
|
i0.ɵɵelementEnd()()();
|
|
42
|
-
i0.ɵɵelementStart(17, "div",
|
|
43
|
-
i0.ɵɵelement(19, "i",
|
|
72
|
+
i0.ɵɵelementStart(17, "div", 27)(18, "div", 35);
|
|
73
|
+
i0.ɵɵelement(19, "i", 36);
|
|
44
74
|
i0.ɵɵelementEnd();
|
|
45
|
-
i0.ɵɵelementStart(20, "div",
|
|
75
|
+
i0.ɵɵelementStart(20, "div", 30)(21, "div", 31);
|
|
46
76
|
i0.ɵɵtext(22);
|
|
47
|
-
i0.ɵɵelementStart(23, "span",
|
|
77
|
+
i0.ɵɵelementStart(23, "span", 37);
|
|
48
78
|
i0.ɵɵtext(24, "/10");
|
|
49
79
|
i0.ɵɵelementEnd()();
|
|
50
|
-
i0.ɵɵelementStart(25, "div",
|
|
80
|
+
i0.ɵɵelementStart(25, "div", 32);
|
|
51
81
|
i0.ɵɵtext(26, "Avg Rating");
|
|
52
82
|
i0.ɵɵelementEnd()()();
|
|
53
|
-
i0.ɵɵelementStart(27, "div",
|
|
54
|
-
i0.ɵɵelement(29, "i",
|
|
83
|
+
i0.ɵɵelementStart(27, "div", 27)(28, "div", 38);
|
|
84
|
+
i0.ɵɵelement(29, "i", 39);
|
|
55
85
|
i0.ɵɵelementEnd();
|
|
56
|
-
i0.ɵɵelementStart(30, "div",
|
|
86
|
+
i0.ɵɵelementStart(30, "div", 30)(31, "div", 31);
|
|
57
87
|
i0.ɵɵtext(32);
|
|
58
|
-
i0.ɵɵelementStart(33, "span",
|
|
88
|
+
i0.ɵɵelementStart(33, "span", 37);
|
|
59
89
|
i0.ɵɵtext(34, "%");
|
|
60
90
|
i0.ɵɵelementEnd()();
|
|
61
|
-
i0.ɵɵelementStart(35, "div",
|
|
91
|
+
i0.ɵɵelementStart(35, "div", 32);
|
|
62
92
|
i0.ɵɵtext(36, "Agreement Rate");
|
|
63
93
|
i0.ɵɵelementEnd()()()();
|
|
64
94
|
} if (rf & 2) {
|
|
65
|
-
const
|
|
95
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
66
96
|
i0.ɵɵadvance(6);
|
|
67
|
-
i0.ɵɵtextInterpolate(
|
|
97
|
+
i0.ɵɵtextInterpolate(ctx_r2.Metrics.humanPendingCount);
|
|
68
98
|
i0.ɵɵadvance(8);
|
|
69
|
-
i0.ɵɵtextInterpolate(
|
|
99
|
+
i0.ɵɵtextInterpolate(ctx_r2.Metrics.humanReviewedCount);
|
|
70
100
|
i0.ɵɵadvance(8);
|
|
71
|
-
i0.ɵɵtextInterpolate(
|
|
101
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatDecimal(ctx_r2.Metrics.humanAvgRating, 1));
|
|
72
102
|
i0.ɵɵadvance(10);
|
|
73
|
-
i0.ɵɵtextInterpolate(
|
|
103
|
+
i0.ɵɵtextInterpolate(ctx_r2.FormatDecimal(ctx_r2.Metrics.agreementRate, 0));
|
|
74
104
|
} }
|
|
75
|
-
function
|
|
76
|
-
i0.ɵɵelementStart(0, "div",
|
|
77
|
-
i0.ɵɵelement(1, "i",
|
|
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
|
|
86
|
-
i0.ɵɵelement(0, "i",
|
|
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
|
|
90
|
-
i0.ɵɵelement(0, "i",
|
|
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
|
|
94
|
-
i0.ɵɵelement(0, "i",
|
|
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
|
|
98
|
-
const
|
|
99
|
-
i0.ɵɵelementStart(0, "button",
|
|
100
|
-
i0.ɵɵlistener("click", function
|
|
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
|
|
105
|
-
const
|
|
106
|
-
i0.ɵɵclassProp("selected",
|
|
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(" ",
|
|
138
|
+
i0.ɵɵtextInterpolate1(" ", n_r9, " ");
|
|
109
139
|
} }
|
|
110
|
-
function
|
|
111
|
-
i0.ɵɵelementStart(0, "span",
|
|
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
|
|
145
|
+
const ctx_r2 = i0.ɵɵnextContext(6);
|
|
116
146
|
i0.ɵɵadvance();
|
|
117
|
-
i0.ɵɵtextInterpolate1("",
|
|
147
|
+
i0.ɵɵtextInterpolate1("", ctx_r2.FormState.rating, "/10");
|
|
118
148
|
} }
|
|
119
|
-
function
|
|
120
|
-
const
|
|
121
|
-
i0.ɵɵelementStart(0, "div",
|
|
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",
|
|
125
|
-
i0.ɵɵrepeaterCreate(5,
|
|
126
|
-
i0.ɵɵconditionalCreate(7,
|
|
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",
|
|
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",
|
|
132
|
-
i0.ɵɵlistener("click", function
|
|
133
|
-
i0.ɵɵelement(13, "i",
|
|
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",
|
|
137
|
-
i0.ɵɵlistener("click", function
|
|
138
|
-
i0.ɵɵelement(16, "i",
|
|
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",
|
|
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",
|
|
145
|
-
i0.ɵɵlistener("input", function
|
|
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",
|
|
148
|
-
i0.ɵɵlistener("click", function
|
|
149
|
-
i0.ɵɵelement(24, "i",
|
|
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",
|
|
153
|
-
i0.ɵɵlistener("click", function
|
|
154
|
-
i0.ɵɵelement(27, "i",
|
|
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
|
|
188
|
+
const ctx_r2 = i0.ɵɵnextContext(5);
|
|
159
189
|
i0.ɵɵadvance(5);
|
|
160
|
-
i0.ɵɵrepeater(
|
|
190
|
+
i0.ɵɵrepeater(ctx_r2.RatingNumbers);
|
|
161
191
|
i0.ɵɵadvance(2);
|
|
162
|
-
i0.ɵɵconditional(
|
|
192
|
+
i0.ɵɵconditional(ctx_r2.FormState.rating != null ? 7 : -1);
|
|
163
193
|
i0.ɵɵadvance(5);
|
|
164
|
-
i0.ɵɵclassProp("active",
|
|
194
|
+
i0.ɵɵclassProp("active", ctx_r2.FormState.isCorrect === true);
|
|
165
195
|
i0.ɵɵadvance(3);
|
|
166
|
-
i0.ɵɵclassProp("active",
|
|
196
|
+
i0.ɵɵclassProp("active", ctx_r2.FormState.isCorrect === false);
|
|
167
197
|
i0.ɵɵadvance(6);
|
|
168
|
-
i0.ɵɵproperty("value",
|
|
198
|
+
i0.ɵɵproperty("value", ctx_r2.FormState.comments);
|
|
169
199
|
i0.ɵɵadvance(2);
|
|
170
|
-
i0.ɵɵproperty("disabled", !
|
|
200
|
+
i0.ɵɵproperty("disabled", !ctx_r2.IsFormValid || ctx_r2.IsSubmitting);
|
|
171
201
|
i0.ɵɵadvance(2);
|
|
172
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
202
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.IsSubmitting ? "Submitting..." : "Submit", " ");
|
|
173
203
|
} }
|
|
174
|
-
function
|
|
175
|
-
const
|
|
176
|
-
i0.ɵɵelementStart(0, "div",
|
|
177
|
-
i0.ɵɵlistener("click", function
|
|
178
|
-
i0.ɵɵelementStart(2, "div",
|
|
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",
|
|
182
|
-
i0.ɵɵelement(7, "i",
|
|
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",
|
|
215
|
+
i0.ɵɵelement(9, "app-score-indicator", 51)(10, "app-test-status-badge", 52);
|
|
186
216
|
i0.ɵɵelementEnd()();
|
|
187
|
-
i0.ɵɵelementStart(11, "div",
|
|
188
|
-
i0.ɵɵconditionalCreate(13,
|
|
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",
|
|
191
|
-
i0.ɵɵelement(17, "i",
|
|
220
|
+
i0.ɵɵelementStart(16, "button", 55);
|
|
221
|
+
i0.ɵɵelement(17, "i", 56);
|
|
192
222
|
i0.ɵɵelementEnd()()();
|
|
193
|
-
i0.ɵɵconditionalCreate(18,
|
|
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
|
|
197
|
-
const
|
|
198
|
-
i0.ɵɵclassProp("expanded",
|
|
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(
|
|
230
|
+
i0.ɵɵtextInterpolate(item_r6.testName);
|
|
201
231
|
i0.ɵɵadvance(4);
|
|
202
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
232
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(item_r6.runDateTime), " ");
|
|
203
233
|
i0.ɵɵadvance();
|
|
204
|
-
i0.ɵɵproperty("score",
|
|
234
|
+
i0.ɵɵproperty("score", item_r6.automatedScore)("showBar", true);
|
|
205
235
|
i0.ɵɵadvance();
|
|
206
|
-
i0.ɵɵproperty("status",
|
|
236
|
+
i0.ɵɵproperty("status", item_r6.automatedStatus);
|
|
207
237
|
i0.ɵɵadvance(2);
|
|
208
|
-
i0.ɵɵclassMap("reason-" +
|
|
238
|
+
i0.ɵɵclassMap("reason-" + item_r6.reason);
|
|
209
239
|
i0.ɵɵadvance();
|
|
210
|
-
i0.ɵɵconditional(
|
|
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", !
|
|
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(
|
|
244
|
+
i0.ɵɵconditional(ctx_r2.IsItemExpanded(item_r6.testRunID) ? 18 : -1);
|
|
215
245
|
} }
|
|
216
|
-
function
|
|
217
|
-
i0.ɵɵelementStart(0, "div",
|
|
218
|
-
i0.ɵɵrepeaterCreate(1,
|
|
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
|
|
251
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
222
252
|
i0.ɵɵadvance();
|
|
223
|
-
i0.ɵɵrepeater(
|
|
253
|
+
i0.ɵɵrepeater(ctx_r2.PendingItems);
|
|
224
254
|
} }
|
|
225
|
-
function
|
|
226
|
-
i0.ɵɵelementStart(0, "div",
|
|
227
|
-
i0.ɵɵconditionalCreate(1,
|
|
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
|
|
260
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
231
261
|
i0.ɵɵadvance();
|
|
232
|
-
i0.ɵɵconditional(
|
|
262
|
+
i0.ɵɵconditional(ctx_r2.PendingItems.length === 0 ? 1 : 2);
|
|
233
263
|
} }
|
|
234
|
-
function
|
|
235
|
-
i0.ɵɵelementStart(0, "div",
|
|
236
|
-
i0.ɵɵelement(1, "i",
|
|
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
|
|
245
|
-
i0.ɵɵelement(0, "span",
|
|
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
|
|
248
|
-
const
|
|
249
|
-
i0.ɵɵclassProp("filled",
|
|
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
|
|
252
|
-
i0.ɵɵelementStart(0, "span",
|
|
253
|
-
i0.ɵɵelement(1, "i",
|
|
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
|
|
258
|
-
i0.ɵɵelementStart(0, "span",
|
|
259
|
-
i0.ɵɵelement(1, "i",
|
|
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
|
|
264
|
-
const
|
|
265
|
-
i0.ɵɵelementStart(0, "div",
|
|
266
|
-
i0.ɵɵlistener("click", function
|
|
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
|
|
272
|
-
const
|
|
273
|
-
i0.ɵɵclassProp("expanded",
|
|
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(
|
|
305
|
+
i0.ɵɵtextInterpolate(item_r12.humanComments);
|
|
276
306
|
} }
|
|
277
|
-
function
|
|
278
|
-
i0.ɵɵelementStart(0, "div",
|
|
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",
|
|
282
|
-
i0.ɵɵelement(5, "i",
|
|
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",
|
|
286
|
-
i0.ɵɵrepeaterCreate(9,
|
|
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",
|
|
318
|
+
i0.ɵɵelementStart(11, "span", 97);
|
|
289
319
|
i0.ɵɵtext(12);
|
|
290
320
|
i0.ɵɵelementEnd()();
|
|
291
|
-
i0.ɵɵelementStart(13, "div",
|
|
292
|
-
i0.ɵɵconditionalCreate(14,
|
|
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",
|
|
295
|
-
i0.ɵɵelement(17, "app-score-indicator",
|
|
324
|
+
i0.ɵɵelementStart(16, "div", 101);
|
|
325
|
+
i0.ɵɵelement(17, "app-score-indicator", 51);
|
|
296
326
|
i0.ɵɵelementEnd();
|
|
297
|
-
i0.ɵɵconditionalCreate(18,
|
|
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
|
|
301
|
-
const
|
|
330
|
+
const item_r12 = ctx.$implicit;
|
|
331
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
302
332
|
i0.ɵɵadvance(3);
|
|
303
|
-
i0.ɵɵtextInterpolate(
|
|
333
|
+
i0.ɵɵtextInterpolate(item_r12.testName);
|
|
304
334
|
i0.ɵɵadvance(3);
|
|
305
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
335
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.FormatRelativeTime(item_r12.runDateTime), " ");
|
|
306
336
|
i0.ɵɵadvance(3);
|
|
307
|
-
i0.ɵɵrepeater(
|
|
337
|
+
i0.ɵɵrepeater(ctx_r2.RatingNumbers);
|
|
308
338
|
i0.ɵɵadvance(3);
|
|
309
|
-
i0.ɵɵtextInterpolate1("",
|
|
339
|
+
i0.ɵɵtextInterpolate1("", item_r12.humanRating ?? 0, "/10");
|
|
310
340
|
i0.ɵɵadvance(2);
|
|
311
|
-
i0.ɵɵconditional(
|
|
341
|
+
i0.ɵɵconditional(item_r12.humanIsCorrect === true ? 14 : item_r12.humanIsCorrect === false ? 15 : -1);
|
|
312
342
|
i0.ɵɵadvance(3);
|
|
313
|
-
i0.ɵɵproperty("score",
|
|
343
|
+
i0.ɵɵproperty("score", item_r12.score)("showBar", true);
|
|
314
344
|
i0.ɵɵadvance();
|
|
315
|
-
i0.ɵɵconditional(
|
|
345
|
+
i0.ɵɵconditional(item_r12.humanComments ? 18 : -1);
|
|
316
346
|
} }
|
|
317
|
-
function
|
|
318
|
-
i0.ɵɵelementStart(0, "div",
|
|
319
|
-
i0.ɵɵrepeaterCreate(1,
|
|
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
|
|
352
|
+
const ctx_r2 = i0.ɵɵnextContext(3);
|
|
323
353
|
i0.ɵɵadvance();
|
|
324
|
-
i0.ɵɵrepeater(
|
|
354
|
+
i0.ɵɵrepeater(ctx_r2.FilteredHistoryItems);
|
|
325
355
|
} }
|
|
326
|
-
function
|
|
327
|
-
const
|
|
328
|
-
i0.ɵɵelementStart(0, "div",
|
|
329
|
-
i0.ɵɵelement(3, "i",
|
|
330
|
-
i0.ɵɵelementStart(4, "input",
|
|
331
|
-
i0.ɵɵlistener("input", function
|
|
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",
|
|
363
|
+
i0.ɵɵelementStart(5, "div", 82)(6, "label");
|
|
334
364
|
i0.ɵɵtext(7, "Sort by:");
|
|
335
365
|
i0.ɵɵelementEnd();
|
|
336
|
-
i0.ɵɵelementStart(8, "select",
|
|
337
|
-
i0.ɵɵlistener("change", function
|
|
338
|
-
i0.ɵɵelementStart(9, "option",
|
|
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",
|
|
371
|
+
i0.ɵɵelementStart(11, "option", 85);
|
|
342
372
|
i0.ɵɵtext(12, "Rating");
|
|
343
373
|
i0.ɵɵelementEnd();
|
|
344
|
-
i0.ɵɵelementStart(13, "option",
|
|
374
|
+
i0.ɵɵelementStart(13, "option", 86);
|
|
345
375
|
i0.ɵɵtext(14, "Test Name");
|
|
346
376
|
i0.ɵɵelementEnd()()()();
|
|
347
|
-
i0.ɵɵconditionalCreate(15,
|
|
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
|
|
380
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
351
381
|
i0.ɵɵadvance(4);
|
|
352
|
-
i0.ɵɵproperty("value",
|
|
382
|
+
i0.ɵɵproperty("value", ctx_r2.HistorySearchText);
|
|
353
383
|
i0.ɵɵadvance(4);
|
|
354
|
-
i0.ɵɵproperty("value",
|
|
384
|
+
i0.ɵɵproperty("value", ctx_r2.HistorySortField);
|
|
355
385
|
i0.ɵɵadvance(7);
|
|
356
|
-
i0.ɵɵconditional(
|
|
386
|
+
i0.ɵɵconditional(ctx_r2.FilteredHistoryItems.length === 0 ? 15 : 16);
|
|
357
387
|
} }
|
|
358
|
-
function
|
|
359
|
-
i0.ɵɵelementStart(0, "div",
|
|
360
|
-
i0.ɵɵelement(1, "i",
|
|
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:
|
|
612
|
-
i0.ɵɵ
|
|
613
|
-
i0.ɵɵ
|
|
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.ɵɵ
|
|
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
|
-
|
|
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:
|
|
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
|