@memberjunction/ng-dashboards 5.34.1 → 5.36.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 +96 -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 +453 -122
- 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.d.ts +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2084 -2079
- 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.d.ts +15 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +1423 -1438
- 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/APIKeys/api-keys-resource.component.d.ts +12 -8
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +329 -371
- package/dist/APIKeys/api-keys-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 +202 -158
- 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 +191 -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 +19 -79
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +19 -79
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +19 -79
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +19 -79
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/Admin/base-admin-container.component.d.ts +9 -7
- package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
- package/dist/Admin/base-admin-container.component.js +26 -17
- package/dist/Admin/base-admin-container.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +92 -91
- 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-new-message-resource.component.d.ts +93 -0
- package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
- package/dist/Communication/communication-new-message-resource.component.js +661 -0
- package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
- 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 +238 -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 +290 -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 +41 -21
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +148 -155
- 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 +25 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +46 -72
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -100
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +158 -168
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +257 -264
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts +5 -0
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +46 -64
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +75 -84
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +76 -85
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +24 -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 +307 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +654 -648
- 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 +595 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +230 -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.d.ts +5 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1138 -1147
- 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.d.ts +11 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +684 -697
- 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 +120 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1239 -610
- 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 +133 -3
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +1460 -272
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +1 -0
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +1 -0
- package/dist/Lists/index.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +236 -10
- package/dist/Lists/services/list-set-operations.service.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 +259 -103
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1009 -1264
- 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 +38 -6
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +679 -786
- 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 +114 -99
- 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 +51 -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 +9 -6
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +37 -7
- 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 +46 -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 +10 -9
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +40 -2
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -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 +42 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +53 -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
|
@@ -15,106 +15,122 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
15
15
|
* Persists the active section and filter state via UserInfoEngine settings
|
|
16
16
|
* with debounced writes.
|
|
17
17
|
*/
|
|
18
|
-
import { Component, ChangeDetectorRef, inject } from '@angular/core';
|
|
18
|
+
import { Component, ChangeDetectorRef, ViewChild, inject } from '@angular/core';
|
|
19
19
|
import { Subject } from 'rxjs';
|
|
20
20
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
21
21
|
import { UserInfoEngine } from '@memberjunction/core-entities';
|
|
22
22
|
import { RegisterClass } from '@memberjunction/global';
|
|
23
23
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
24
|
+
import { AIEngineBase } from '@memberjunction/ai-engine-base';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
|
-
import * as i1 from "
|
|
26
|
-
import * as i2 from "./
|
|
27
|
-
import * as i3 from "./
|
|
28
|
-
import * as i4 from "./
|
|
29
|
-
import * as i5 from "./
|
|
30
|
-
import * as i6 from "./
|
|
31
|
-
import * as i7 from "./
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
function
|
|
26
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
27
|
+
import * as i2 from "./executive-summary/executive-summary.component";
|
|
28
|
+
import * as i3 from "./prompt-runs/prompt-run-analysis.component";
|
|
29
|
+
import * as i4 from "./agent-runs/agent-run-analysis.component";
|
|
30
|
+
import * as i5 from "./model-performance/model-performance.component";
|
|
31
|
+
import * as i6 from "./cost-budget/cost-budget.component";
|
|
32
|
+
import * as i7 from "./error-analysis/error-analysis.component";
|
|
33
|
+
import * as i8 from "./usage-patterns/usage-patterns.component";
|
|
34
|
+
const _c0 = ["executiveSummary"];
|
|
35
|
+
const _c1 = ["promptRuns"];
|
|
36
|
+
const _forTrack0 = ($index, $item) => $item.value;
|
|
37
|
+
function AIAnalyticsResourceComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
37
38
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
38
|
-
i0.ɵɵelementStart(0, "
|
|
39
|
-
i0.ɵɵlistener("
|
|
40
|
-
i0.ɵɵ
|
|
41
|
-
i0.ɵɵ
|
|
42
|
-
i0.ɵɵtext(3);
|
|
39
|
+
i0.ɵɵelementStart(0, "mj-filter-popover", 16);
|
|
40
|
+
i0.ɵɵlistener("ClearAllRequested", function AIAnalyticsResourceComponent_Conditional_7_Template_mj_filter_popover_ClearAllRequested_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.resetPopoverFilters()); });
|
|
41
|
+
i0.ɵɵelementStart(1, "mj-filter-panel", 17);
|
|
42
|
+
i0.ɵɵlistener("ValuesChange", function AIAnalyticsResourceComponent_Conditional_7_Template_mj_filter_panel_ValuesChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onAnalyticsFilterValuesChange($event)); })("Reset", function AIAnalyticsResourceComponent_Conditional_7_Template_mj_filter_panel_Reset_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.resetPopoverFilters()); });
|
|
43
43
|
i0.ɵɵelementEnd()();
|
|
44
44
|
} if (rf & 2) {
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
i0.ɵɵclassProp("active", ctx_r2.ActiveSection === item_r2.Key);
|
|
45
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
46
|
+
i0.ɵɵproperty("ActiveCount", ctx_r1.ActiveFilterCount)("ShowClearAll", ctx_r1.ActiveFilterCount > 0);
|
|
48
47
|
i0.ɵɵadvance();
|
|
49
|
-
i0.ɵɵ
|
|
50
|
-
i0.ɵɵadvance(2);
|
|
51
|
-
i0.ɵɵtextInterpolate(item_r2.Label);
|
|
48
|
+
i0.ɵɵproperty("Fields", ctx_r1.analyticsFilterFields)("Values", ctx_r1.analyticsFilterValues);
|
|
52
49
|
} }
|
|
53
|
-
function
|
|
54
|
-
|
|
50
|
+
function AIAnalyticsResourceComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
52
|
+
i0.ɵɵelementStart(0, "button", 18);
|
|
53
|
+
i0.ɵɵtwoWayListener("selectedChange", function AIAnalyticsResourceComponent_Conditional_8_Template_button_selectedChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.compareActive, $event) || (ctx_r1.compareActive = $event); return i0.ɵɵresetView($event); });
|
|
54
|
+
i0.ɵɵlistener("selectedChange", function AIAnalyticsResourceComponent_Conditional_8_Template_button_selectedChange_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleCompare()); });
|
|
55
|
+
i0.ɵɵelement(1, "i", 19);
|
|
56
|
+
i0.ɵɵtext(2, " Compare ");
|
|
57
|
+
i0.ɵɵelementEnd();
|
|
55
58
|
} if (rf & 2) {
|
|
56
|
-
const
|
|
57
|
-
i0.ɵɵ
|
|
59
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
60
|
+
i0.ɵɵproperty("toggleable", true);
|
|
61
|
+
i0.ɵɵtwoWayProperty("selected", ctx_r1.compareActive);
|
|
58
62
|
} }
|
|
59
|
-
function
|
|
63
|
+
function AIAnalyticsResourceComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
60
64
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
61
|
-
i0.ɵɵelementStart(0, "
|
|
62
|
-
i0.ɵɵlistener("
|
|
65
|
+
i0.ɵɵelementStart(0, "button", 20);
|
|
66
|
+
i0.ɵɵlistener("click", function AIAnalyticsResourceComponent_Conditional_9_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnExportClicked()); });
|
|
67
|
+
i0.ɵɵelement(1, "i", 21);
|
|
68
|
+
i0.ɵɵtext(2, " Export ");
|
|
63
69
|
i0.ɵɵelementEnd();
|
|
64
|
-
} if (rf & 2) {
|
|
65
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
66
|
-
i0.ɵɵproperty("TimeRange", ctx_r2.CurrentTimeRange)("Filters", ctx_r2.CurrentFilters);
|
|
67
70
|
} }
|
|
68
|
-
function
|
|
71
|
+
function AIAnalyticsResourceComponent_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
69
72
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
70
|
-
i0.ɵɵelementStart(0, "
|
|
71
|
-
i0.ɵɵlistener("
|
|
72
|
-
i0.ɵɵelementEnd();
|
|
73
|
-
} if (rf & 2) {
|
|
74
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
75
|
-
i0.ɵɵproperty("TimeRange", ctx_r2.CurrentTimeRange)("Filters", ctx_r2.CurrentFilters);
|
|
76
|
-
} }
|
|
77
|
-
function AIAnalyticsResourceComponent_Case_11_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
-
const _r6 = i0.ɵɵgetCurrentView();
|
|
79
|
-
i0.ɵɵelementStart(0, "app-analytics-agent-runs", 12);
|
|
80
|
-
i0.ɵɵlistener("TimeRangeChange", function AIAnalyticsResourceComponent_Case_11_Template_app_analytics_agent_runs_TimeRangeChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnTimeRangeChange($event)); });
|
|
73
|
+
i0.ɵɵelementStart(0, "mj-filter-chip", 23);
|
|
74
|
+
i0.ɵɵlistener("Clicked", function AIAnalyticsResourceComponent_Conditional_10_For_2_Template_mj_filter_chip_Clicked_0_listener() { const chip_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnTimeRangeChange(chip_r6.value)); });
|
|
81
75
|
i0.ɵɵelementEnd();
|
|
82
76
|
} if (rf & 2) {
|
|
83
|
-
const
|
|
84
|
-
i0.ɵɵ
|
|
77
|
+
const chip_r6 = ctx.$implicit;
|
|
78
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
79
|
+
i0.ɵɵproperty("Label", chip_r6.text)("Active", ctx_r1.CurrentTimeRange === chip_r6.value);
|
|
85
80
|
} }
|
|
86
|
-
function
|
|
87
|
-
|
|
88
|
-
i0.ɵɵ
|
|
89
|
-
i0.ɵɵlistener("TimeRangeChange", function AIAnalyticsResourceComponent_Case_12_Template_app_analytics_model_performance_TimeRangeChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnTimeRangeChange($event)); });
|
|
81
|
+
function AIAnalyticsResourceComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
83
|
+
i0.ɵɵrepeaterCreate(1, AIAnalyticsResourceComponent_Conditional_10_For_2_Template, 1, 2, "mj-filter-chip", 22, _forTrack0);
|
|
90
84
|
i0.ɵɵelementEnd();
|
|
91
85
|
} if (rf & 2) {
|
|
92
|
-
const
|
|
93
|
-
i0.ɵɵ
|
|
86
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
87
|
+
i0.ɵɵadvance();
|
|
88
|
+
i0.ɵɵrepeater(ctx_r1.timeRangeChipOptions);
|
|
94
89
|
} }
|
|
95
90
|
function AIAnalyticsResourceComponent_Case_13_Template(rf, ctx) { if (rf & 1) {
|
|
96
|
-
const
|
|
97
|
-
i0.ɵɵelementStart(0, "app-analytics-
|
|
98
|
-
i0.ɵɵlistener("
|
|
91
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
92
|
+
i0.ɵɵelementStart(0, "app-analytics-executive-summary", 24, 0);
|
|
93
|
+
i0.ɵɵlistener("SectionNavigate", function AIAnalyticsResourceComponent_Case_13_Template_app_analytics_executive_summary_SectionNavigate_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSectionChange($event)); });
|
|
99
94
|
i0.ɵɵelementEnd();
|
|
100
95
|
} if (rf & 2) {
|
|
101
|
-
const
|
|
102
|
-
i0.ɵɵproperty("TimeRange",
|
|
96
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
97
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange)("Filters", ctx_r1.CurrentFilters);
|
|
103
98
|
} }
|
|
104
99
|
function AIAnalyticsResourceComponent_Case_14_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
-
i0.ɵɵelement(0, "app-analytics-
|
|
100
|
+
i0.ɵɵelement(0, "app-analytics-prompt-runs", 13, 1);
|
|
106
101
|
} if (rf & 2) {
|
|
107
|
-
const
|
|
108
|
-
i0.ɵɵproperty("TimeRange",
|
|
102
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
103
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange)("Filters", ctx_r1.CurrentFilters);
|
|
109
104
|
} }
|
|
110
105
|
function AIAnalyticsResourceComponent_Case_15_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
i0.ɵɵ
|
|
106
|
+
i0.ɵɵelement(0, "app-analytics-agent-runs", 13);
|
|
107
|
+
} if (rf & 2) {
|
|
108
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
109
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange)("Filters", ctx_r1.CurrentFilters);
|
|
110
|
+
} }
|
|
111
|
+
function AIAnalyticsResourceComponent_Case_16_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
+
i0.ɵɵelement(0, "app-analytics-model-performance", 14);
|
|
113
|
+
} if (rf & 2) {
|
|
114
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
115
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange)("SortBy", ctx_r1.CurrentSortBy)("SelectedVendor", ctx_r1.CurrentVendor);
|
|
116
|
+
} }
|
|
117
|
+
function AIAnalyticsResourceComponent_Case_17_Template(rf, ctx) { if (rf & 1) {
|
|
118
|
+
i0.ɵɵelement(0, "app-analytics-cost-budget", 13);
|
|
119
|
+
} if (rf & 2) {
|
|
120
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
121
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange)("Filters", ctx_r1.CurrentFilters);
|
|
122
|
+
} }
|
|
123
|
+
function AIAnalyticsResourceComponent_Case_18_Template(rf, ctx) { if (rf & 1) {
|
|
124
|
+
i0.ɵɵelement(0, "app-analytics-error-analysis", 13);
|
|
115
125
|
} if (rf & 2) {
|
|
116
|
-
const
|
|
117
|
-
i0.ɵɵproperty("TimeRange",
|
|
126
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
127
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange)("Filters", ctx_r1.CurrentFilters);
|
|
128
|
+
} }
|
|
129
|
+
function AIAnalyticsResourceComponent_Case_19_Template(rf, ctx) { if (rf & 1) {
|
|
130
|
+
i0.ɵɵelement(0, "app-analytics-usage-patterns", 15);
|
|
131
|
+
} if (rf & 2) {
|
|
132
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
133
|
+
i0.ɵɵproperty("TimeRange", ctx_r1.CurrentTimeRange);
|
|
118
134
|
} }
|
|
119
135
|
let AIAnalyticsResourceComponent = class AIAnalyticsResourceComponent extends BaseResourceComponent {
|
|
120
136
|
USER_SETTINGS_KEY = 'AI.Analytics.UserPreferences';
|
|
@@ -122,6 +138,8 @@ let AIAnalyticsResourceComponent = class AIAnalyticsResourceComponent extends Ba
|
|
|
122
138
|
destroy$ = new Subject();
|
|
123
139
|
settingsLoaded = false;
|
|
124
140
|
cdr = inject(ChangeDetectorRef);
|
|
141
|
+
executiveSummary;
|
|
142
|
+
promptRuns;
|
|
125
143
|
ActiveSection = 'executive-summary';
|
|
126
144
|
CurrentTimeRange = '24h';
|
|
127
145
|
CurrentFilters = {
|
|
@@ -130,16 +148,247 @@ let AIAnalyticsResourceComponent = class AIAnalyticsResourceComponent extends Ba
|
|
|
130
148
|
Prompts: [],
|
|
131
149
|
Statuses: []
|
|
132
150
|
};
|
|
151
|
+
/** Single-value SortBy used by Model Performance (lives on the shared chrome). */
|
|
152
|
+
CurrentSortBy = 'cost-efficiency';
|
|
153
|
+
/** Single-value Vendor filter used by Model Performance (lives on the shared chrome). */
|
|
154
|
+
CurrentVendor = '';
|
|
155
|
+
/** SortBy options for Model Performance leaderboard. */
|
|
156
|
+
sortByOptions = [
|
|
157
|
+
{ text: 'By Performance', value: 'cost-efficiency' },
|
|
158
|
+
{ text: 'By Cost', value: 'cost' },
|
|
159
|
+
{ text: 'By Speed', value: 'speed' },
|
|
160
|
+
{ text: 'By Reliability', value: 'reliability' },
|
|
161
|
+
{ text: 'By Usage', value: 'usage-volume' }
|
|
162
|
+
];
|
|
163
|
+
/** Vendor options, lazily built from AIEngineBase for Model Performance leaderboard. */
|
|
164
|
+
get vendorOptions() {
|
|
165
|
+
return AIEngineBase.Instance?.Vendors?.map(v => ({ text: v.Name ?? '', value: v.ID ?? '' }))
|
|
166
|
+
?.sort((a, b) => a.text.localeCompare(b.text)) ?? [];
|
|
167
|
+
}
|
|
168
|
+
/** Per-section filter-bar config — switched on ActiveSection. */
|
|
169
|
+
get FilterBarConfig() {
|
|
170
|
+
switch (this.ActiveSection) {
|
|
171
|
+
case 'executive-summary':
|
|
172
|
+
return { ShowModelFilter: false, ShowAgentFilter: false, ShowPromptFilter: false, ShowStatusFilter: false, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: true, ShowExportButton: false, TimeRangeOptions: ['1h', '6h', '24h', '7d', '30d'] };
|
|
173
|
+
case 'prompt-runs':
|
|
174
|
+
return { ShowModelFilter: true, ShowAgentFilter: true, ShowPromptFilter: true, ShowStatusFilter: true, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: false, ShowExportButton: true, TimeRangeOptions: ['1h', '6h', '24h', '7d', '30d'] };
|
|
175
|
+
case 'agent-runs':
|
|
176
|
+
return { ShowModelFilter: false, ShowAgentFilter: true, ShowPromptFilter: false, ShowStatusFilter: true, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: false, ShowExportButton: false, TimeRangeOptions: ['1h', '6h', '24h', '7d', '30d'] };
|
|
177
|
+
case 'model-performance':
|
|
178
|
+
return { ShowModelFilter: false, ShowAgentFilter: false, ShowPromptFilter: false, ShowStatusFilter: false, ShowSortBy: true, ShowVendor: true, ShowCompareToggle: false, ShowExportButton: false, TimeRangeOptions: ['24h', '7d', '30d'] };
|
|
179
|
+
case 'cost-budget':
|
|
180
|
+
return { ShowModelFilter: true, ShowAgentFilter: false, ShowPromptFilter: false, ShowStatusFilter: false, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: false, ShowExportButton: false, TimeRangeOptions: ['7d', '30d', '90d', 'MTD', 'YTD'] };
|
|
181
|
+
case 'error-analysis':
|
|
182
|
+
return { ShowModelFilter: true, ShowAgentFilter: false, ShowPromptFilter: true, ShowStatusFilter: false, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: false, ShowExportButton: false, TimeRangeOptions: ['1h', '6h', '24h', '7d', '30d'] };
|
|
183
|
+
case 'usage-patterns':
|
|
184
|
+
return { ShowModelFilter: false, ShowAgentFilter: false, ShowPromptFilter: false, ShowStatusFilter: false, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: false, ShowExportButton: false, TimeRangeOptions: ['1h', '6h', '24h', '7d', '30d'] };
|
|
185
|
+
default:
|
|
186
|
+
return { ShowModelFilter: false, ShowAgentFilter: false, ShowPromptFilter: false, ShowStatusFilter: false, ShowSortBy: false, ShowVendor: false, ShowCompareToggle: false, ShowExportButton: false, TimeRangeOptions: ['1h', '6h', '24h', '7d', '30d'] };
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Always true now — every section uses the shared chrome filter bar.
|
|
191
|
+
* Kept as a getter for future per-section carve-outs.
|
|
192
|
+
*/
|
|
193
|
+
get ShowSharedFilterBar() {
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
/** Status options used by the popover dropdown when the section has ShowStatusFilter. */
|
|
197
|
+
statusOptions = [
|
|
198
|
+
{ text: 'Success', value: 'Success' },
|
|
199
|
+
{ text: 'Error', value: 'Error' },
|
|
200
|
+
{ text: 'Running', value: 'Running' },
|
|
201
|
+
{ text: 'Pending', value: 'Pending' },
|
|
202
|
+
{ text: 'Canceled', value: 'Canceled' },
|
|
203
|
+
];
|
|
204
|
+
/** Built lazily from AIEngineBase. */
|
|
205
|
+
get modelOptions() {
|
|
206
|
+
return AIEngineBase.Instance?.Models?.map(m => ({ text: m.Name ?? '', value: m.ID }))
|
|
207
|
+
?.sort((a, b) => a.text.localeCompare(b.text)) ?? [];
|
|
208
|
+
}
|
|
209
|
+
get agentOptions() {
|
|
210
|
+
return AIEngineBase.Instance?.Agents
|
|
211
|
+
?.filter(a => a.Status === 'Active')
|
|
212
|
+
?.map(a => ({ text: a.Name ?? '', value: a.ID }))
|
|
213
|
+
?.sort((a, b) => a.text.localeCompare(b.text)) ?? [];
|
|
214
|
+
}
|
|
215
|
+
get promptOptions() {
|
|
216
|
+
return AIEngineBase.Instance?.Prompts?.map(p => ({ text: p.Name ?? '', value: p.ID }))
|
|
217
|
+
?.sort((a, b) => a.text.localeCompare(b.text)) ?? [];
|
|
218
|
+
}
|
|
219
|
+
/** Time-range chip options for the toolbar slot. */
|
|
220
|
+
get timeRangeChipOptions() {
|
|
221
|
+
return this.FilterBarConfig.TimeRangeOptions.map(t => ({ text: t, value: t }));
|
|
222
|
+
}
|
|
223
|
+
/** Compare-mode visual state (kept on the shell now that analytics-filter-bar is gone). */
|
|
224
|
+
compareActive = false;
|
|
225
|
+
/** Build the FilterFieldConfig[] for the popover based on the active section. */
|
|
226
|
+
get analyticsFilterFields() {
|
|
227
|
+
const cfg = this.FilterBarConfig;
|
|
228
|
+
const fields = [];
|
|
229
|
+
if (cfg.ShowModelFilter) {
|
|
230
|
+
fields.push({
|
|
231
|
+
key: 'Models',
|
|
232
|
+
type: 'dropdown',
|
|
233
|
+
label: 'Model',
|
|
234
|
+
icon: 'fa-solid fa-microchip',
|
|
235
|
+
filterable: this.modelOptions.length > 10,
|
|
236
|
+
options: [{ text: 'All Models', value: '' }, ...this.modelOptions],
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
if (cfg.ShowAgentFilter) {
|
|
240
|
+
fields.push({
|
|
241
|
+
key: 'Agents',
|
|
242
|
+
type: 'dropdown',
|
|
243
|
+
label: 'Agent',
|
|
244
|
+
icon: 'fa-solid fa-robot',
|
|
245
|
+
filterable: this.agentOptions.length > 10,
|
|
246
|
+
options: [{ text: 'All Agents', value: '' }, ...this.agentOptions],
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
if (cfg.ShowPromptFilter) {
|
|
250
|
+
fields.push({
|
|
251
|
+
key: 'Prompts',
|
|
252
|
+
type: 'dropdown',
|
|
253
|
+
label: 'Prompt',
|
|
254
|
+
icon: 'fa-solid fa-comment-dots',
|
|
255
|
+
filterable: this.promptOptions.length > 10,
|
|
256
|
+
options: [{ text: 'All Prompts', value: '' }, ...this.promptOptions],
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
if (cfg.ShowStatusFilter) {
|
|
260
|
+
fields.push({
|
|
261
|
+
key: 'Statuses',
|
|
262
|
+
type: 'dropdown',
|
|
263
|
+
label: 'Status',
|
|
264
|
+
icon: 'fa-solid fa-toggle-on',
|
|
265
|
+
options: [{ text: 'All Statuses', value: '' }, ...this.statusOptions],
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
if (cfg.ShowSortBy) {
|
|
269
|
+
fields.push({
|
|
270
|
+
key: 'SortBy',
|
|
271
|
+
type: 'dropdown',
|
|
272
|
+
label: 'Sort By',
|
|
273
|
+
icon: 'fa-solid fa-arrow-down-wide-short',
|
|
274
|
+
options: this.sortByOptions,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
if (cfg.ShowVendor) {
|
|
278
|
+
fields.push({
|
|
279
|
+
key: 'Vendor',
|
|
280
|
+
type: 'dropdown',
|
|
281
|
+
label: 'Vendor',
|
|
282
|
+
icon: 'fa-solid fa-building',
|
|
283
|
+
filterable: this.vendorOptions.length > 10,
|
|
284
|
+
options: [{ text: 'All Vendors', value: '' }, ...this.vendorOptions],
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
return fields;
|
|
288
|
+
}
|
|
289
|
+
/** Single-value flattened state for the centralized panel (the panel takes scalar values; we hold arrays in CurrentFilters). */
|
|
290
|
+
get analyticsFilterValues() {
|
|
291
|
+
return {
|
|
292
|
+
Models: this.CurrentFilters.Models?.[0] ?? '',
|
|
293
|
+
Agents: this.CurrentFilters.Agents?.[0] ?? '',
|
|
294
|
+
Prompts: this.CurrentFilters.Prompts?.[0] ?? '',
|
|
295
|
+
Statuses: this.CurrentFilters.Statuses?.[0] ?? '',
|
|
296
|
+
SortBy: this.CurrentSortBy,
|
|
297
|
+
Vendor: this.CurrentVendor,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
/** Receive popover updates and translate scalar → array shape used by GlobalFilterState. */
|
|
301
|
+
onAnalyticsFilterValuesChange(values) {
|
|
302
|
+
const next = {
|
|
303
|
+
Models: values['Models'] ? [values['Models']] : [],
|
|
304
|
+
Agents: values['Agents'] ? [values['Agents']] : [],
|
|
305
|
+
Prompts: values['Prompts'] ? [values['Prompts']] : [],
|
|
306
|
+
Statuses: values['Statuses'] ? [values['Statuses']] : [],
|
|
307
|
+
};
|
|
308
|
+
this.OnFiltersChange(next);
|
|
309
|
+
if ('SortBy' in values) {
|
|
310
|
+
this.CurrentSortBy = values['SortBy'] || 'cost-efficiency';
|
|
311
|
+
}
|
|
312
|
+
if ('Vendor' in values) {
|
|
313
|
+
this.CurrentVendor = values['Vendor'] || '';
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
/** Reset only the popover filters — leaves TimeRange and CompareActive alone. */
|
|
317
|
+
resetPopoverFilters() {
|
|
318
|
+
this.OnFiltersChange({ Models: [], Agents: [], Prompts: [], Statuses: [] });
|
|
319
|
+
// SortBy + Vendor reset only when Model Performance is the active section.
|
|
320
|
+
if (this.ActiveSection === 'model-performance') {
|
|
321
|
+
this.CurrentSortBy = 'cost-efficiency';
|
|
322
|
+
this.CurrentVendor = '';
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/** Active filter count for the popover badge. */
|
|
326
|
+
get ActiveFilterCount() {
|
|
327
|
+
const f = this.CurrentFilters;
|
|
328
|
+
let count = (f.Models?.length ?? 0) + (f.Agents?.length ?? 0) + (f.Prompts?.length ?? 0) + (f.Statuses?.length ?? 0);
|
|
329
|
+
// SortBy counts as "active" when it differs from the default.
|
|
330
|
+
if (this.FilterBarConfig.ShowSortBy && this.CurrentSortBy && this.CurrentSortBy !== 'cost-efficiency')
|
|
331
|
+
count++;
|
|
332
|
+
if (this.FilterBarConfig.ShowVendor && this.CurrentVendor)
|
|
333
|
+
count++;
|
|
334
|
+
return count;
|
|
335
|
+
}
|
|
336
|
+
/** Toggle Compare mode — the mjButton directive owns the [(selected)] flip, so this handler only forwards the new value. */
|
|
337
|
+
toggleCompare() {
|
|
338
|
+
this.OnCompareToggled(this.compareActive);
|
|
339
|
+
}
|
|
133
340
|
NavItems = [
|
|
134
|
-
{ Label: 'Executive Summary', Icon: 'fa-solid fa-gauge-high', Key: 'executive-summary'
|
|
135
|
-
|
|
136
|
-
{ Label: '
|
|
137
|
-
|
|
341
|
+
{ Label: 'Executive Summary', Icon: 'fa-solid fa-gauge-high', Key: 'executive-summary',
|
|
342
|
+
Description: 'High-level KPIs and trends across the platform' },
|
|
343
|
+
{ Label: 'Prompt Runs', Icon: 'fa-solid fa-comment-dots', Key: 'prompt-runs',
|
|
344
|
+
Description: 'Detailed analysis of individual prompt executions' },
|
|
345
|
+
{ Label: 'Agent Runs', Icon: 'fa-solid fa-robot', Key: 'agent-runs',
|
|
346
|
+
Description: 'Performance breakdown by agent' },
|
|
347
|
+
{ Label: 'Model Performance', Icon: 'fa-solid fa-microchip', Key: 'model-performance',
|
|
348
|
+
Description: 'Compare models across cost, speed, and quality' },
|
|
138
349
|
{ Key: 'divider' },
|
|
139
|
-
{ Label: 'Cost & Budget', Icon: 'fa-solid fa-coins', Key: 'cost-budget'
|
|
140
|
-
|
|
141
|
-
{ Label: '
|
|
350
|
+
{ Label: 'Cost & Budget', Icon: 'fa-solid fa-coins', Key: 'cost-budget',
|
|
351
|
+
Description: 'Spend trends and budget tracking' },
|
|
352
|
+
{ Label: 'Error Analysis', Icon: 'fa-solid fa-triangle-exclamation', Key: 'error-analysis',
|
|
353
|
+
Description: 'Failure patterns and root causes' },
|
|
354
|
+
{ Label: 'Usage Patterns', Icon: 'fa-solid fa-clock', Key: 'usage-patterns',
|
|
355
|
+
Description: 'Volume, frequency, and concurrency over time' },
|
|
142
356
|
];
|
|
357
|
+
/**
|
|
358
|
+
* Active section metadata — drives <mj-page-header-interior> Title +
|
|
359
|
+
* Subtitle. Mirrors the pattern in KH Configuration / KH Analytics: one
|
|
360
|
+
* source of truth (NavItems) used both to build the rail and to render
|
|
361
|
+
* per-section identity.
|
|
362
|
+
*/
|
|
363
|
+
get currentSection() {
|
|
364
|
+
return this.NavItems.find(n => n.Key === this.ActiveSection);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Wraps `NavItems` for `<mj-left-nav>`. The `{ Key: 'divider' }` entry
|
|
368
|
+
* splits the items into two `MJLeftNavSection`s (an unlabeled section per
|
|
369
|
+
* group) — the rail's natural section break replaces the bespoke
|
|
370
|
+
* `.nav-divider` line.
|
|
371
|
+
*/
|
|
372
|
+
get navSections() {
|
|
373
|
+
const sections = [{ items: [] }];
|
|
374
|
+
for (const item of this.NavItems) {
|
|
375
|
+
if (item.Key === 'divider') {
|
|
376
|
+
sections.push({ items: [] });
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
sections[sections.length - 1].items.push({
|
|
380
|
+
id: item.Key,
|
|
381
|
+
label: item.Label ?? '',
|
|
382
|
+
icon: item.Icon
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return sections;
|
|
387
|
+
}
|
|
388
|
+
/** Adapter for `<mj-left-nav>`'s `(ItemClicked)` output. */
|
|
389
|
+
onNavItemClicked(item) {
|
|
390
|
+
this.OnSectionChange(item.id);
|
|
391
|
+
}
|
|
143
392
|
async ngOnInit() {
|
|
144
393
|
super.ngOnInit();
|
|
145
394
|
this.setupSettingsDebounce();
|
|
@@ -176,6 +425,14 @@ let AIAnalyticsResourceComponent = class AIAnalyticsResourceComponent extends Ba
|
|
|
176
425
|
this.CurrentFilters = filters;
|
|
177
426
|
this.saveUserSettings();
|
|
178
427
|
}
|
|
428
|
+
/** Compare-toggle button — only visible on Executive Summary; forwards to that section. */
|
|
429
|
+
OnCompareToggled(value) {
|
|
430
|
+
this.executiveSummary?.OnCompareToggled?.(value);
|
|
431
|
+
}
|
|
432
|
+
/** Export button — only visible on Prompt Runs; forwards to that section. */
|
|
433
|
+
OnExportClicked() {
|
|
434
|
+
this.promptRuns?.ExportCSV?.();
|
|
435
|
+
}
|
|
179
436
|
// ── Private Helpers ──
|
|
180
437
|
setupSettingsDebounce() {
|
|
181
438
|
this.settingsPersistSubject.pipe(debounceTime(500), takeUntil(this.destroy$)).subscribe(() => this.persistUserSettings());
|
|
@@ -246,24 +503,49 @@ let AIAnalyticsResourceComponent = class AIAnalyticsResourceComponent extends Ba
|
|
|
246
503
|
}
|
|
247
504
|
}
|
|
248
505
|
static ɵfac = /*@__PURE__*/ (() => { let ɵAIAnalyticsResourceComponent_BaseFactory; return function AIAnalyticsResourceComponent_Factory(__ngFactoryType__) { return (ɵAIAnalyticsResourceComponent_BaseFactory || (ɵAIAnalyticsResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AIAnalyticsResourceComponent)))(__ngFactoryType__ || AIAnalyticsResourceComponent); }; })();
|
|
249
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAnalyticsResourceComponent, selectors: [["app-ai-analytics-resource"]],
|
|
250
|
-
i0.ɵɵ
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
i0.ɵɵ
|
|
254
|
-
i0.ɵɵ
|
|
255
|
-
|
|
506
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AIAnalyticsResourceComponent, selectors: [["app-ai-analytics-resource"]], viewQuery: function AIAnalyticsResourceComponent_Query(rf, ctx) { if (rf & 1) {
|
|
507
|
+
i0.ɵɵviewQuery(_c0, 5)(_c1, 5);
|
|
508
|
+
} if (rf & 2) {
|
|
509
|
+
let _t;
|
|
510
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.executiveSummary = _t.first);
|
|
511
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.promptRuns = _t.first);
|
|
512
|
+
} }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 20, vars: 11, consts: [["executiveSummary", ""], ["promptRuns", ""], ["Title", "AI Analytics", "Icon", "fa-solid fa-chart-line", "Subtitle", "Performance, cost, and usage analytics"], [1, "analytics-shell", 3, "Padding"], [3, "ItemClicked", "Sections", "ActiveId"], [3, "Title", "Subtitle"], ["actions", ""], [3, "ActiveCount", "ShowClearAll"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "toggleable", "selected"], ["mjButton", "", "variant", "secondary", "size", "sm"], ["toolbar", "", 1, "time-range-chips"], [3, "Padding"], [1, "analytics-content"], [3, "TimeRange", "Filters"], [3, "TimeRange", "SortBy", "SelectedVendor"], [3, "TimeRange"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "selectedChange", "toggleable", "selected"], [1, "fa-solid", "fa-code-compare"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-download"], [3, "Label", "Active"], [3, "Clicked", "Label", "Active"], [3, "SectionNavigate", "TimeRange", "Filters"]], template: function AIAnalyticsResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
513
|
+
i0.ɵɵelementStart(0, "mj-page-layout");
|
|
514
|
+
i0.ɵɵelement(1, "mj-page-header", 2);
|
|
515
|
+
i0.ɵɵelementStart(2, "mj-page-body", 3)(3, "mj-left-nav", 4);
|
|
516
|
+
i0.ɵɵlistener("ItemClicked", function AIAnalyticsResourceComponent_Template_mj_left_nav_ItemClicked_3_listener($event) { return ctx.onNavItemClicked($event); });
|
|
517
|
+
i0.ɵɵelementEnd();
|
|
518
|
+
i0.ɵɵelementStart(4, "mj-left-nav-content")(5, "mj-page-header-interior", 5)(6, "div", 6);
|
|
519
|
+
i0.ɵɵconditionalCreate(7, AIAnalyticsResourceComponent_Conditional_7_Template, 2, 4, "mj-filter-popover", 7);
|
|
520
|
+
i0.ɵɵconditionalCreate(8, AIAnalyticsResourceComponent_Conditional_8_Template, 3, 2, "button", 8);
|
|
521
|
+
i0.ɵɵconditionalCreate(9, AIAnalyticsResourceComponent_Conditional_9_Template, 3, 0, "button", 9);
|
|
256
522
|
i0.ɵɵelementEnd();
|
|
257
|
-
i0.ɵɵ
|
|
258
|
-
i0.ɵɵ
|
|
259
|
-
i0.ɵɵ
|
|
523
|
+
i0.ɵɵconditionalCreate(10, AIAnalyticsResourceComponent_Conditional_10_Template, 3, 0, "div", 10);
|
|
524
|
+
i0.ɵɵelementEnd();
|
|
525
|
+
i0.ɵɵelementStart(11, "mj-page-body-interior", 11)(12, "div", 12);
|
|
526
|
+
i0.ɵɵconditionalCreate(13, AIAnalyticsResourceComponent_Case_13_Template, 2, 2, "app-analytics-executive-summary", 13)(14, AIAnalyticsResourceComponent_Case_14_Template, 2, 2, "app-analytics-prompt-runs", 13)(15, AIAnalyticsResourceComponent_Case_15_Template, 1, 2, "app-analytics-agent-runs", 13)(16, AIAnalyticsResourceComponent_Case_16_Template, 1, 3, "app-analytics-model-performance", 14)(17, AIAnalyticsResourceComponent_Case_17_Template, 1, 2, "app-analytics-cost-budget", 13)(18, AIAnalyticsResourceComponent_Case_18_Template, 1, 2, "app-analytics-error-analysis", 13)(19, AIAnalyticsResourceComponent_Case_19_Template, 1, 1, "app-analytics-usage-patterns", 15);
|
|
527
|
+
i0.ɵɵelementEnd()()()()();
|
|
260
528
|
} if (rf & 2) {
|
|
261
|
-
let
|
|
262
|
-
i0.ɵɵadvance(
|
|
263
|
-
i0.ɵɵ
|
|
264
|
-
i0.ɵɵadvance(
|
|
265
|
-
i0.ɵɵ
|
|
266
|
-
|
|
529
|
+
let tmp_10_0;
|
|
530
|
+
i0.ɵɵadvance(2);
|
|
531
|
+
i0.ɵɵproperty("Padding", false);
|
|
532
|
+
i0.ɵɵadvance();
|
|
533
|
+
i0.ɵɵproperty("Sections", ctx.navSections)("ActiveId", ctx.ActiveSection);
|
|
534
|
+
i0.ɵɵadvance(2);
|
|
535
|
+
i0.ɵɵproperty("Title", (ctx.currentSection == null ? null : ctx.currentSection.Label) || "")("Subtitle", (ctx.currentSection == null ? null : ctx.currentSection.Description) || "");
|
|
536
|
+
i0.ɵɵadvance(2);
|
|
537
|
+
i0.ɵɵconditional(ctx.analyticsFilterFields.length > 0 ? 7 : -1);
|
|
538
|
+
i0.ɵɵadvance();
|
|
539
|
+
i0.ɵɵconditional(ctx.FilterBarConfig.ShowCompareToggle ? 8 : -1);
|
|
540
|
+
i0.ɵɵadvance();
|
|
541
|
+
i0.ɵɵconditional(ctx.FilterBarConfig.ShowExportButton ? 9 : -1);
|
|
542
|
+
i0.ɵɵadvance();
|
|
543
|
+
i0.ɵɵconditional(ctx.timeRangeChipOptions.length > 0 ? 10 : -1);
|
|
544
|
+
i0.ɵɵadvance();
|
|
545
|
+
i0.ɵɵproperty("Padding", false);
|
|
546
|
+
i0.ɵɵadvance(2);
|
|
547
|
+
i0.ɵɵconditional((tmp_10_0 = ctx.ActiveSection) === "executive-summary" ? 13 : tmp_10_0 === "prompt-runs" ? 14 : tmp_10_0 === "agent-runs" ? 15 : tmp_10_0 === "model-performance" ? 16 : tmp_10_0 === "cost-budget" ? 17 : tmp_10_0 === "error-analysis" ? 18 : tmp_10_0 === "usage-patterns" ? 19 : -1);
|
|
548
|
+
} }, dependencies: [i1.MJButtonDirective, i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJPageHeaderInteriorComponent, i1.MJPageBodyInteriorComponent, i1.MJLeftNavComponent, i1.MJLeftNavContentComponent, i1.MJFilterPopoverComponent, i1.MJFilterPanelComponent, i1.MJFilterChipComponent, i2.AnalyticsExecutiveSummaryComponent, i3.AnalyticsPromptRunsComponent, i4.AnalyticsAgentRunsComponent, i5.AnalyticsModelPerformanceComponent, i6.AnalyticsCostBudgetComponent, i7.AnalyticsErrorAnalysisComponent, i8.AnalyticsUsagePatternsComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n }\n\n .analytics-shell[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n }\n\n \n\n\n \n\n\n\n\n \n\n\n .analytics-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n \n\n\n .section-placeholder[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 80px 24px;\n color: var(--mj-text-muted);\n }\n\n .placeholder-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 20px;\n color: var(--mj-brand-primary);\n opacity: 0.4;\n }\n\n .section-placeholder[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px;\n }\n\n .section-placeholder[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n font-size: 14px;\n color: var(--mj-text-muted);\n margin: 0;\n max-width: 420px;\n }\n\n \n\n\n \n\n\n @media (max-width: 768px) {\n .analytics-content[_ngcontent-%COMP%] {\n padding: 16px;\n }\n }"] });
|
|
267
549
|
};
|
|
268
550
|
AIAnalyticsResourceComponent = __decorate([
|
|
269
551
|
RegisterClass(BaseResourceComponent, 'AIAnalyticsResource')
|
|
@@ -272,64 +554,105 @@ export { AIAnalyticsResourceComponent };
|
|
|
272
554
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AIAnalyticsResourceComponent, [{
|
|
273
555
|
type: Component,
|
|
274
556
|
args: [{ standalone: false, selector: 'app-ai-analytics-resource', template: `
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
557
|
+
<mj-page-layout>
|
|
558
|
+
<!-- Outer chrome — pure identity. Every control (filter-popover,
|
|
559
|
+
TimeRange chips, Compare, Export) lives in the per-section
|
|
560
|
+
<mj-page-header-interior> card below because each section
|
|
561
|
+
configures its own filter fields and time-range options. -->
|
|
562
|
+
<mj-page-header
|
|
563
|
+
Title="AI Analytics"
|
|
564
|
+
Icon="fa-solid fa-chart-line"
|
|
565
|
+
Subtitle="Performance, cost, and usage analytics">
|
|
566
|
+
</mj-page-header>
|
|
567
|
+
<mj-page-body [Padding]="false" class="analytics-shell">
|
|
568
|
+
<mj-left-nav
|
|
569
|
+
[Sections]="navSections"
|
|
570
|
+
[ActiveId]="ActiveSection"
|
|
571
|
+
(ItemClicked)="onNavItemClicked($event)">
|
|
572
|
+
</mj-left-nav>
|
|
573
|
+
|
|
574
|
+
<mj-left-nav-content>
|
|
575
|
+
<!-- Per-section interior chrome owns the complete control surface
|
|
576
|
+
for the active section: identity + actions + the section's
|
|
577
|
+
own time-range chip strip. Even TimeRange options vary per
|
|
578
|
+
section (Cost & Budget adds MTD / YTD, Model Performance
|
|
579
|
+
drops 1h / 6h, etc.) so it belongs here rather than in the
|
|
580
|
+
outer chrome. -->
|
|
581
|
+
<mj-page-header-interior
|
|
582
|
+
[Title]="currentSection?.Label || ''"
|
|
583
|
+
[Subtitle]="currentSection?.Description || ''">
|
|
584
|
+
<div actions>
|
|
585
|
+
@if (analyticsFilterFields.length > 0) {
|
|
586
|
+
<mj-filter-popover
|
|
587
|
+
[ActiveCount]="ActiveFilterCount"
|
|
588
|
+
[ShowClearAll]="ActiveFilterCount > 0"
|
|
589
|
+
(ClearAllRequested)="resetPopoverFilters()">
|
|
590
|
+
<mj-filter-panel
|
|
591
|
+
[Fields]="analyticsFilterFields"
|
|
592
|
+
[Values]="analyticsFilterValues"
|
|
593
|
+
(ValuesChange)="onAnalyticsFilterValuesChange($event)"
|
|
594
|
+
(Reset)="resetPopoverFilters()">
|
|
595
|
+
</mj-filter-panel>
|
|
596
|
+
</mj-filter-popover>
|
|
597
|
+
}
|
|
598
|
+
@if (FilterBarConfig.ShowCompareToggle) {
|
|
599
|
+
<button mjButton variant="secondary" size="sm" [toggleable]="true" [(selected)]="compareActive" (selectedChange)="toggleCompare()">
|
|
600
|
+
<i class="fa-solid fa-code-compare"></i> Compare
|
|
601
|
+
</button>
|
|
602
|
+
}
|
|
603
|
+
@if (FilterBarConfig.ShowExportButton) {
|
|
604
|
+
<button mjButton variant="secondary" size="sm" (click)="OnExportClicked()">
|
|
605
|
+
<i class="fa-solid fa-download"></i> Export
|
|
291
606
|
</button>
|
|
292
607
|
}
|
|
608
|
+
</div>
|
|
609
|
+
@if (timeRangeChipOptions.length > 0) {
|
|
610
|
+
<div toolbar class="time-range-chips">
|
|
611
|
+
@for (chip of timeRangeChipOptions; track chip.value) {
|
|
612
|
+
<mj-filter-chip
|
|
613
|
+
[Label]="chip.text"
|
|
614
|
+
[Active]="CurrentTimeRange === chip.value"
|
|
615
|
+
(Clicked)="OnTimeRangeChange(chip.value)">
|
|
616
|
+
</mj-filter-chip>
|
|
617
|
+
}
|
|
618
|
+
</div>
|
|
293
619
|
}
|
|
294
|
-
</
|
|
295
|
-
|
|
620
|
+
</mj-page-header-interior>
|
|
621
|
+
<mj-page-body-interior [Padding]="false">
|
|
296
622
|
<div class="analytics-content">
|
|
297
623
|
@switch (ActiveSection) {
|
|
298
624
|
@case ('executive-summary') {
|
|
299
625
|
<app-analytics-executive-summary
|
|
626
|
+
#executiveSummary
|
|
300
627
|
[TimeRange]="CurrentTimeRange"
|
|
301
628
|
[Filters]="CurrentFilters"
|
|
302
|
-
(TimeRangeChange)="OnTimeRangeChange($event)"
|
|
303
|
-
(FiltersChange)="OnFiltersChange($event)"
|
|
304
629
|
(SectionNavigate)="OnSectionChange($event)"
|
|
305
630
|
></app-analytics-executive-summary>
|
|
306
631
|
}
|
|
307
632
|
@case ('prompt-runs') {
|
|
308
633
|
<app-analytics-prompt-runs
|
|
634
|
+
#promptRuns
|
|
309
635
|
[TimeRange]="CurrentTimeRange"
|
|
310
636
|
[Filters]="CurrentFilters"
|
|
311
|
-
(TimeRangeChange)="OnTimeRangeChange($event)"
|
|
312
|
-
(FiltersChange)="OnFiltersChange($event)"
|
|
313
637
|
></app-analytics-prompt-runs>
|
|
314
638
|
}
|
|
315
639
|
@case ('agent-runs') {
|
|
316
640
|
<app-analytics-agent-runs
|
|
317
641
|
[TimeRange]="CurrentTimeRange"
|
|
318
|
-
|
|
642
|
+
[Filters]="CurrentFilters"
|
|
319
643
|
></app-analytics-agent-runs>
|
|
320
644
|
}
|
|
321
645
|
@case ('model-performance') {
|
|
322
646
|
<app-analytics-model-performance
|
|
323
647
|
[TimeRange]="CurrentTimeRange"
|
|
324
|
-
|
|
648
|
+
[SortBy]="CurrentSortBy"
|
|
649
|
+
[SelectedVendor]="CurrentVendor"
|
|
325
650
|
></app-analytics-model-performance>
|
|
326
651
|
}
|
|
327
652
|
@case ('cost-budget') {
|
|
328
653
|
<app-analytics-cost-budget
|
|
329
654
|
[TimeRange]="CurrentTimeRange"
|
|
330
655
|
[Filters]="CurrentFilters"
|
|
331
|
-
(TimeRangeChange)="OnTimeRangeChange($event)"
|
|
332
|
-
(FiltersChange)="OnFiltersChange($event)"
|
|
333
656
|
></app-analytics-cost-budget>
|
|
334
657
|
}
|
|
335
658
|
@case ('error-analysis') {
|
|
@@ -341,15 +664,23 @@ export { AIAnalyticsResourceComponent };
|
|
|
341
664
|
@case ('usage-patterns') {
|
|
342
665
|
<app-analytics-usage-patterns
|
|
343
666
|
[TimeRange]="CurrentTimeRange"
|
|
344
|
-
(TimeRangeChange)="OnTimeRangeChange($event)"
|
|
345
667
|
></app-analytics-usage-patterns>
|
|
346
668
|
}
|
|
347
669
|
}
|
|
348
670
|
</div>
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
671
|
+
</mj-page-body-interior>
|
|
672
|
+
</mj-left-nav-content>
|
|
673
|
+
</mj-page-body>
|
|
674
|
+
</mj-page-layout>
|
|
675
|
+
`, styles: ["\n :host {\n display: block;\n height: 100%;\n }\n\n .analytics-shell {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n }\n\n /* \u2500\u2500 Left Navigation \u2500\u2500 */\n\n /* Rail width + nav-item styling now owned by <mj-left-nav>; the\n divider is expressed as a new MJLeftNavSection rather than a CSS\n rule. */\n\n /* \u2500\u2500 Content Area \u2500\u2500 */\n\n .analytics-content {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n }\n\n /* \u2500\u2500 Section Placeholders \u2500\u2500 */\n\n .section-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 80px 24px;\n color: var(--mj-text-muted);\n }\n\n .placeholder-icon {\n font-size: 48px;\n margin-bottom: 20px;\n color: var(--mj-brand-primary);\n opacity: 0.4;\n }\n\n .section-placeholder h2 {\n font-size: 20px;\n font-weight: 600;\n color: var(--mj-text-primary);\n margin: 0 0 8px;\n }\n\n .section-placeholder p {\n font-size: 14px;\n color: var(--mj-text-muted);\n margin: 0;\n max-width: 420px;\n }\n\n /* \u2500\u2500 Responsive: collapse nav to horizontal strip \u2500\u2500 */\n\n /* Responsive \u2014 <mj-left-nav> handles its own collapse-to-row at\n narrow viewports. We only need to tune the content padding. */\n @media (max-width: 768px) {\n .analytics-content {\n padding: 16px;\n }\n }\n "] }]
|
|
676
|
+
}], null, { executiveSummary: [{
|
|
677
|
+
type: ViewChild,
|
|
678
|
+
args: ['executiveSummary']
|
|
679
|
+
}], promptRuns: [{
|
|
680
|
+
type: ViewChild,
|
|
681
|
+
args: ['promptRuns']
|
|
682
|
+
}] }); })();
|
|
683
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AIAnalyticsResourceComponent, { className: "AIAnalyticsResourceComponent", filePath: "src/AI/components/analytics/ai-analytics-resource.component.ts", lineNumber: 231 }); })();
|
|
353
684
|
export function LoadAIAnalyticsResource() {
|
|
354
685
|
// Prevents tree-shaking of the @RegisterClass decorator
|
|
355
686
|
}
|