@memberjunction/ng-dashboards 5.38.0 → 5.40.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/README.md +14 -7
- package/dist/AI/components/agents/agent-configuration.component.js +199 -198
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
- 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 +166 -58
- package/dist/AI/components/analytics/cost-budget/cost-budget.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 +2 -1
- 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 +1 -0
- 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 +55 -36
- 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 +9 -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 +158 -117
- 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 +1 -0
- 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 +22 -8
- 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 +217 -860
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
- package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +209 -208
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +130 -128
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +17 -17
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +578 -538
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +331 -303
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +14 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/AI/services/cache-metrics.d.ts +50 -0
- package/dist/AI/services/cache-metrics.d.ts.map +1 -0
- package/dist/AI/services/cache-metrics.js +43 -0
- package/dist/AI/services/cache-metrics.js.map +1 -0
- package/dist/APIKeys/api-applications-panel.component.js +2 -2
- package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
- package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
- package/dist/APIKeys/api-keys-resource.component.js +132 -131
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +141 -141
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +15 -15
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +2 -2
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +2 -2
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +2 -2
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +72 -50
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +103 -102
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +52 -51
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +39 -38
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +92 -89
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +18 -17
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -85
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +155 -150
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +245 -243
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +18 -17
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +236 -229
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +390 -389
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +525 -566
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +135 -134
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +436 -427
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +1 -1
- package/dist/Testing/components/testing-runs.component.js +116 -115
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +6 -7
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +173 -172
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +116 -92
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +57 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +80 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +1 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +7 -1
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +12 -14
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +5 -14
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +4 -5
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +7 -5
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +57 -54
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
|
@@ -31,47 +31,47 @@ function AgentRequestsResourceComponent_Conditional_2_Template(rf, ctx) { if (rf
|
|
|
31
31
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
32
32
|
i0.ɵɵproperty("Count", ctx_r0.PendingCount);
|
|
33
33
|
} }
|
|
34
|
-
function
|
|
35
|
-
i0.ɵɵelementStart(0, "div",
|
|
36
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
34
|
+
function AgentRequestsResourceComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
35
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
36
|
+
i0.ɵɵelement(1, "mj-loading", 10);
|
|
37
37
|
i0.ɵɵelementEnd();
|
|
38
38
|
} }
|
|
39
|
-
function
|
|
40
|
-
i0.ɵɵelementStart(0, "p",
|
|
39
|
+
function AgentRequestsResourceComponent_Conditional_9_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementStart(0, "p", 12);
|
|
41
41
|
i0.ɵɵtext(1, "No agent requests yet");
|
|
42
42
|
i0.ɵɵelementEnd();
|
|
43
|
-
i0.ɵɵelementStart(2, "p",
|
|
43
|
+
i0.ɵɵelementStart(2, "p", 13);
|
|
44
44
|
i0.ɵɵtext(3, "When agents need human input, their requests will appear here.");
|
|
45
45
|
i0.ɵɵelementEnd();
|
|
46
46
|
} }
|
|
47
|
-
function
|
|
47
|
+
function AgentRequestsResourceComponent_Conditional_9_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
48
48
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
49
|
-
i0.ɵɵelementStart(0, "p",
|
|
49
|
+
i0.ɵɵelementStart(0, "p", 12);
|
|
50
50
|
i0.ɵɵtext(1, "No requests match your filters");
|
|
51
51
|
i0.ɵɵelementEnd();
|
|
52
|
-
i0.ɵɵelementStart(2, "button",
|
|
53
|
-
i0.ɵɵlistener("click", function
|
|
52
|
+
i0.ɵɵelementStart(2, "button", 14);
|
|
53
|
+
i0.ɵɵlistener("click", function AgentRequestsResourceComponent_Conditional_9_Conditional_3_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.ClearFilters()); });
|
|
54
54
|
i0.ɵɵtext(3, "Clear Filters");
|
|
55
55
|
i0.ɵɵelementEnd();
|
|
56
56
|
} }
|
|
57
|
-
function
|
|
58
|
-
i0.ɵɵelementStart(0, "div",
|
|
59
|
-
i0.ɵɵelement(1, "i",
|
|
60
|
-
i0.ɵɵconditionalCreate(2,
|
|
57
|
+
function AgentRequestsResourceComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementStart(0, "div", 7);
|
|
59
|
+
i0.ɵɵelement(1, "i", 11);
|
|
60
|
+
i0.ɵɵconditionalCreate(2, AgentRequestsResourceComponent_Conditional_9_Conditional_2_Template, 4, 0)(3, AgentRequestsResourceComponent_Conditional_9_Conditional_3_Template, 4, 0);
|
|
61
61
|
i0.ɵɵelementEnd();
|
|
62
62
|
} if (rf & 2) {
|
|
63
63
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
64
64
|
i0.ɵɵadvance(2);
|
|
65
65
|
i0.ɵɵconditional(ctx_r0.Requests.length === 0 ? 2 : 3);
|
|
66
66
|
} }
|
|
67
|
-
function
|
|
68
|
-
i0.ɵɵelementStart(0, "span",
|
|
67
|
+
function AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
+
i0.ɵɵelementStart(0, "span", 21);
|
|
69
69
|
i0.ɵɵtext(1, "Expired");
|
|
70
70
|
i0.ɵɵelementEnd();
|
|
71
71
|
} }
|
|
72
|
-
function
|
|
73
|
-
i0.ɵɵelementStart(0, "span",
|
|
74
|
-
i0.ɵɵelement(1, "i",
|
|
72
|
+
function AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
i0.ɵɵelementStart(0, "span", 24);
|
|
74
|
+
i0.ɵɵelement(1, "i", 28);
|
|
75
75
|
i0.ɵɵtext(2);
|
|
76
76
|
i0.ɵɵelementEnd();
|
|
77
77
|
} if (rf & 2) {
|
|
@@ -79,9 +79,9 @@ function AgentRequestsResourceComponent_Conditional_11_For_2_Conditional_15_Temp
|
|
|
79
79
|
i0.ɵɵadvance(2);
|
|
80
80
|
i0.ɵɵtextInterpolate1(" ", request_r4.Agent, " ");
|
|
81
81
|
} }
|
|
82
|
-
function
|
|
83
|
-
i0.ɵɵelementStart(0, "span",
|
|
84
|
-
i0.ɵɵelement(1, "i",
|
|
82
|
+
function AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
+
i0.ɵɵelementStart(0, "span", 24);
|
|
84
|
+
i0.ɵɵelement(1, "i", 29);
|
|
85
85
|
i0.ɵɵtext(2);
|
|
86
86
|
i0.ɵɵpipe(3, "date");
|
|
87
87
|
i0.ɵɵelementEnd();
|
|
@@ -90,9 +90,9 @@ function AgentRequestsResourceComponent_Conditional_11_For_2_Conditional_16_Temp
|
|
|
90
90
|
i0.ɵɵadvance(2);
|
|
91
91
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(3, 1, request_r4.__mj_CreatedAt, "short"), " ");
|
|
92
92
|
} }
|
|
93
|
-
function
|
|
94
|
-
i0.ɵɵelementStart(0, "span",
|
|
95
|
-
i0.ɵɵelement(1, "i",
|
|
93
|
+
function AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelementStart(0, "span", 24);
|
|
95
|
+
i0.ɵɵelement(1, "i", 30);
|
|
96
96
|
i0.ɵɵtext(2);
|
|
97
97
|
i0.ɵɵpipe(3, "date");
|
|
98
98
|
i0.ɵɵelementEnd();
|
|
@@ -103,14 +103,14 @@ function AgentRequestsResourceComponent_Conditional_11_For_2_Conditional_17_Temp
|
|
|
103
103
|
i0.ɵɵadvance(2);
|
|
104
104
|
i0.ɵɵtextInterpolate1(" Expires ", i0.ɵɵpipeBind2(3, 3, request_r4.ExpiresAt, "short"), " ");
|
|
105
105
|
} }
|
|
106
|
-
function
|
|
106
|
+
function AgentRequestsResourceComponent_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
107
107
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
108
|
-
i0.ɵɵelementStart(0, "div",
|
|
109
|
-
i0.ɵɵlistener("click", function
|
|
110
|
-
i0.ɵɵelementStart(1, "div",
|
|
108
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
109
|
+
i0.ɵɵlistener("click", function AgentRequestsResourceComponent_Conditional_10_For_2_Template_div_click_0_listener() { const request_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.OnRequestClick(request_r4)); });
|
|
110
|
+
i0.ɵɵelementStart(1, "div", 17);
|
|
111
111
|
i0.ɵɵelement(2, "i");
|
|
112
112
|
i0.ɵɵelementEnd();
|
|
113
|
-
i0.ɵɵelementStart(3, "div",
|
|
113
|
+
i0.ɵɵelementStart(3, "div", 18)(4, "div", 19)(5, "span", 20);
|
|
114
114
|
i0.ɵɵtext(6);
|
|
115
115
|
i0.ɵɵelementEnd();
|
|
116
116
|
i0.ɵɵelementStart(7, "span");
|
|
@@ -119,18 +119,18 @@ function AgentRequestsResourceComponent_Conditional_11_For_2_Template(rf, ctx) {
|
|
|
119
119
|
i0.ɵɵelementStart(9, "span");
|
|
120
120
|
i0.ɵɵtext(10);
|
|
121
121
|
i0.ɵɵelementEnd();
|
|
122
|
-
i0.ɵɵconditionalCreate(11,
|
|
122
|
+
i0.ɵɵconditionalCreate(11, AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_11_Template, 2, 0, "span", 21);
|
|
123
123
|
i0.ɵɵelementEnd();
|
|
124
|
-
i0.ɵɵelementStart(12, "p",
|
|
124
|
+
i0.ɵɵelementStart(12, "p", 22);
|
|
125
125
|
i0.ɵɵtext(13);
|
|
126
126
|
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵelementStart(14, "div",
|
|
128
|
-
i0.ɵɵconditionalCreate(15,
|
|
129
|
-
i0.ɵɵconditionalCreate(16,
|
|
130
|
-
i0.ɵɵconditionalCreate(17,
|
|
127
|
+
i0.ɵɵelementStart(14, "div", 23);
|
|
128
|
+
i0.ɵɵconditionalCreate(15, AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_15_Template, 3, 1, "span", 24);
|
|
129
|
+
i0.ɵɵconditionalCreate(16, AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_16_Template, 4, 4, "span", 24);
|
|
130
|
+
i0.ɵɵconditionalCreate(17, AgentRequestsResourceComponent_Conditional_10_For_2_Conditional_17_Template, 4, 6, "span", 25);
|
|
131
131
|
i0.ɵɵelementEnd()();
|
|
132
|
-
i0.ɵɵelementStart(18, "div",
|
|
133
|
-
i0.ɵɵelement(19, "i",
|
|
132
|
+
i0.ɵɵelementStart(18, "div", 26);
|
|
133
|
+
i0.ɵɵelement(19, "i", 27);
|
|
134
134
|
i0.ɵɵelementEnd()();
|
|
135
135
|
} if (rf & 2) {
|
|
136
136
|
const request_r4 = ctx.$implicit;
|
|
@@ -159,19 +159,19 @@ function AgentRequestsResourceComponent_Conditional_11_For_2_Template(rf, ctx) {
|
|
|
159
159
|
i0.ɵɵadvance();
|
|
160
160
|
i0.ɵɵconditional(request_r4.ExpiresAt ? 17 : -1);
|
|
161
161
|
} }
|
|
162
|
-
function
|
|
163
|
-
i0.ɵɵelementStart(0, "div",
|
|
164
|
-
i0.ɵɵrepeaterCreate(1,
|
|
162
|
+
function AgentRequestsResourceComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
163
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
164
|
+
i0.ɵɵrepeaterCreate(1, AgentRequestsResourceComponent_Conditional_10_For_2_Template, 20, 21, "div", 15, _forTrack0);
|
|
165
165
|
i0.ɵɵelementEnd();
|
|
166
166
|
} if (rf & 2) {
|
|
167
167
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
168
168
|
i0.ɵɵadvance();
|
|
169
169
|
i0.ɵɵrepeater(ctx_r0.FilteredRequests);
|
|
170
170
|
} }
|
|
171
|
-
function
|
|
171
|
+
function AgentRequestsResourceComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
172
172
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
173
|
-
i0.ɵɵelementStart(0, "mj-agent-request-dialog",
|
|
174
|
-
i0.ɵɵlistener("Close", function
|
|
173
|
+
i0.ɵɵelementStart(0, "mj-agent-request-dialog", 31);
|
|
174
|
+
i0.ɵɵlistener("Close", function AgentRequestsResourceComponent_Conditional_11_Template_mj_agent_request_dialog_Close_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnPanelClose($event)); });
|
|
175
175
|
i0.ɵɵelementEnd();
|
|
176
176
|
} if (rf & 2) {
|
|
177
177
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -498,34 +498,34 @@ let AgentRequestsResourceComponent = class AgentRequestsResourceComponent extend
|
|
|
498
498
|
}
|
|
499
499
|
}
|
|
500
500
|
static ɵfac = function AgentRequestsResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgentRequestsResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
501
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentRequestsResourceComponent, selectors: [["app-agent-requests-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
501
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentRequestsResourceComponent, selectors: [["app-agent-requests-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 8, consts: [["Title", "Agent Requests", "Icon", "fa-solid fa-inbox"], ["meta", "", "Icon", "fa-solid fa-hourglass-half", "Label", "pending", "Variant", "warning", 3, "Count"], ["toolbar", ""], ["Placeholder", "Search requests...", 3, "ValueChange", "Value"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [1, "loading-container"], [1, "empty-state"], [1, "requests-list"], [3, "Visible", "Request"], ["text", "Loading agent requests..."], [1, "fa-solid", "fa-inbox", "empty-icon"], [1, "empty-text"], [1, "empty-subtext"], [1, "clear-filters-btn", 3, "click"], [1, "request-card", 3, "actionable", "expired"], [1, "request-card", 3, "click"], [1, "card-left"], [1, "card-content"], [1, "card-top-row"], [1, "request-type-name"], [1, "expired-tag"], [1, "request-text"], [1, "card-meta"], [1, "meta-item"], [1, "meta-item", 3, "expired"], [1, "card-right"], [1, "fa-solid", "fa-chevron-right"], [1, "fa-solid", "fa-robot"], [1, "fa-regular", "fa-clock"], [1, "fa-solid", "fa-hourglass-end"], [3, "Close", "Visible", "Request"]], template: function AgentRequestsResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
502
502
|
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0);
|
|
503
503
|
i0.ɵɵconditionalCreate(2, AgentRequestsResourceComponent_Conditional_2_Template, 1, 1, "mj-stat-badge", 1);
|
|
504
|
-
i0.ɵɵelementStart(3, "div", 2)(4, "mj-
|
|
505
|
-
i0.ɵɵlistener("
|
|
506
|
-
i0.ɵɵ
|
|
507
|
-
i0.ɵɵ
|
|
508
|
-
i0.ɵɵ
|
|
509
|
-
i0.ɵɵelementStart(6, "
|
|
510
|
-
i0.ɵɵlistener("
|
|
511
|
-
i0.ɵɵelementEnd()()();
|
|
512
|
-
i0.ɵɵelementStart(
|
|
513
|
-
i0.ɵɵconditionalCreate(
|
|
504
|
+
i0.ɵɵelementStart(3, "div", 2)(4, "mj-page-search", 3);
|
|
505
|
+
i0.ɵɵlistener("ValueChange", function AgentRequestsResourceComponent_Template_mj_page_search_ValueChange_4_listener($event) { return ctx.OnSearchChange($event); });
|
|
506
|
+
i0.ɵɵelementEnd();
|
|
507
|
+
i0.ɵɵelementStart(5, "mj-filter-popover", 4);
|
|
508
|
+
i0.ɵɵlistener("ClearAllRequested", function AgentRequestsResourceComponent_Template_mj_filter_popover_ClearAllRequested_5_listener() { return ctx.resetPopoverFilters(); });
|
|
509
|
+
i0.ɵɵelementStart(6, "mj-filter-panel", 5);
|
|
510
|
+
i0.ɵɵlistener("ValuesChange", function AgentRequestsResourceComponent_Template_mj_filter_panel_ValuesChange_6_listener($event) { return ctx.onFilterValuesChange($event); })("Reset", function AgentRequestsResourceComponent_Template_mj_filter_panel_Reset_6_listener() { return ctx.resetPopoverFilters(); });
|
|
511
|
+
i0.ɵɵelementEnd()()()();
|
|
512
|
+
i0.ɵɵelementStart(7, "mj-page-body");
|
|
513
|
+
i0.ɵɵconditionalCreate(8, AgentRequestsResourceComponent_Conditional_8_Template, 2, 0, "div", 6)(9, AgentRequestsResourceComponent_Conditional_9_Template, 4, 1, "div", 7)(10, AgentRequestsResourceComponent_Conditional_10_Template, 3, 0, "div", 8);
|
|
514
514
|
i0.ɵɵelementEnd()();
|
|
515
|
-
i0.ɵɵconditionalCreate(
|
|
515
|
+
i0.ɵɵconditionalCreate(11, AgentRequestsResourceComponent_Conditional_11_Template, 1, 2, "mj-agent-request-dialog", 9);
|
|
516
516
|
} if (rf & 2) {
|
|
517
517
|
i0.ɵɵadvance(2);
|
|
518
518
|
i0.ɵɵconditional(ctx.PendingCount > 0 ? 2 : -1);
|
|
519
519
|
i0.ɵɵadvance(2);
|
|
520
|
+
i0.ɵɵproperty("Value", ctx.Filters.SearchTerm);
|
|
521
|
+
i0.ɵɵadvance();
|
|
520
522
|
i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
|
|
521
523
|
i0.ɵɵadvance();
|
|
522
524
|
i0.ɵɵproperty("Fields", ctx.requestFilterFields)("Values", ctx.requestFilterValues);
|
|
523
525
|
i0.ɵɵadvance(2);
|
|
524
|
-
i0.ɵɵ
|
|
525
|
-
i0.ɵɵadvance(2);
|
|
526
|
-
i0.ɵɵconditional(ctx.IsLoading ? 9 : ctx.FilteredRequests.length === 0 ? 10 : 11);
|
|
526
|
+
i0.ɵɵconditional(ctx.IsLoading ? 8 : ctx.FilteredRequests.length === 0 ? 9 : 10);
|
|
527
527
|
i0.ɵɵadvance(3);
|
|
528
|
-
i0.ɵɵconditional(ctx.ShowRequestPanel && ctx.SelectedRequest ?
|
|
528
|
+
i0.ɵɵconditional(ctx.ShowRequestPanel && ctx.SelectedRequest ? 11 : -1);
|
|
529
529
|
} }, dependencies: [i1.LoadingComponent, i2.AgentRequestDialogComponent, i3.MJPageHeaderComponent, i3.MJPageLayoutComponent, i3.MJPageBodyComponent, i3.MJFilterPopoverComponent, i3.MJPageSearchComponent, i3.MJFilterPanelComponent, i3.MJStatBadgeComponent, i4.DatePipe], styles: ["\n\n\n\n\n\n.clear-filters-btn[_ngcontent-%COMP%] {\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.clear-filters-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 60px 20px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 20px;\n text-align: center;\n}\n\n.empty-icon[_ngcontent-%COMP%] {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n}\n\n.empty-text[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-subtext[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n\n\n.requests-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n padding: 0 20px 20px;\n overflow-y: auto;\n}\n\n.request-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 14px;\n padding: 14px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.request-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.request-card.actionable[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.request-card.expired[_ngcontent-%COMP%] {\n opacity: 0.7;\n}\n\n.card-left[_ngcontent-%COMP%] {\n flex-shrink: 0;\n padding-top: 2px;\n}\n\n.type-icon[_ngcontent-%COMP%] {\n font-size: 18px;\n color: var(--mj-brand-primary);\n}\n\n.card-content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n}\n\n.card-top-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.request-type-name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.request-text[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.card-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-item.expired[_ngcontent-%COMP%] {\n color: var(--mj-status-error-text);\n}\n\n.card-right[_ngcontent-%COMP%] {\n flex-shrink: 0;\n color: var(--mj-text-disabled);\n font-size: 12px;\n padding-top: 4px;\n}\n\n\n\n.status-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-requested[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid var(--mj-status-info-border);\n}\n\n.status-approved[_ngcontent-%COMP%], \n.status-responded[_ngcontent-%COMP%] {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid var(--mj-status-success-border);\n}\n\n.status-rejected[_ngcontent-%COMP%], \n.status-canceled[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n}\n\n.status-expired[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n}\n\n.priority-badge[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.priority-low[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.priority-normal[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.priority-high[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.priority-critical[_ngcontent-%COMP%] {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.expired-tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}"] });
|
|
530
530
|
};
|
|
531
531
|
AgentRequestsResourceComponent = __decorate([
|
|
@@ -534,7 +534,7 @@ AgentRequestsResourceComponent = __decorate([
|
|
|
534
534
|
export { AgentRequestsResourceComponent };
|
|
535
535
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentRequestsResourceComponent, [{
|
|
536
536
|
type: Component,
|
|
537
|
-
args: [{ standalone: false, selector: 'app-agent-requests-resource', template: "<mj-page-layout>\n <!-- Header -->\n <mj-page-header\n Title=\"Agent Requests\"\n Icon=\"fa-solid fa-inbox\">\n @if (PendingCount > 0) {\n <mj-stat-badge meta\n Icon=\"fa-solid fa-hourglass-half\"\n [Count]=\"PendingCount\"\n Label=\"pending\"\n Variant=\"warning\">\n </mj-stat-badge>\n }\n <div actions>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetPopoverFilters()\">\n <mj-filter-panel\n [Fields]=\"requestFilterFields\"\n [Values]=\"requestFilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetPopoverFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search requests...\"\n [Value]=\"Filters.SearchTerm\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <!-- Content -->\n @if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agent requests...\"></mj-loading>\n </div>\n } @else if (FilteredRequests.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox empty-icon\"></i>\n @if (Requests.length === 0) {\n <p class=\"empty-text\">No agent requests yet</p>\n <p class=\"empty-subtext\">When agents need human input, their requests will appear here.</p>\n } @else {\n <p class=\"empty-text\">No requests match your filters</p>\n <button class=\"clear-filters-btn\" (click)=\"ClearFilters()\">Clear Filters</button>\n }\n </div>\n } @else {\n <div class=\"requests-list\">\n @for (request of FilteredRequests; track request.ID) {\n <div\n class=\"request-card\"\n [class.actionable]=\"request.Status === 'Requested'\"\n [class.expired]=\"IsExpired(request)\"\n (click)=\"OnRequestClick(request)\">\n <div class=\"card-left\">\n <i class=\"{{ GetRequestTypeIcon(request.RequestTypeID) }} type-icon\"></i>\n </div>\n <div class=\"card-content\">\n <div class=\"card-top-row\">\n <span class=\"request-type-name\">{{ GetRequestTypeName(request.RequestTypeID) }}</span>\n <span class=\"priority-badge {{ GetPriorityClass(request.Priority) }}\">\n {{ GetPriorityLabel(request.Priority) }}\n </span>\n <span class=\"status-badge status-{{ request.Status.toLowerCase() }}\">\n {{ request.Status }}\n </span>\n @if (IsExpired(request) && request.Status === 'Requested') {\n <span class=\"expired-tag\">Expired</span>\n }\n </div>\n <p class=\"request-text\">{{ request.Request }}</p>\n <div class=\"card-meta\">\n @if (request.Agent) {\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-robot\"></i> {{ request.Agent }}\n </span>\n }\n @if (request.__mj_CreatedAt) {\n <span class=\"meta-item\">\n <i class=\"fa-regular fa-clock\"></i> {{ request.__mj_CreatedAt | date:'short' }}\n </span>\n }\n @if (request.ExpiresAt) {\n <span class=\"meta-item\" [class.expired]=\"IsExpired(request)\">\n <i class=\"fa-solid fa-hourglass-end\"></i> Expires {{ request.ExpiresAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"card-right\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n\n<!-- Agent Request Detail Panel -->\n@if (ShowRequestPanel && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestPanel\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnPanelClose($event)\">\n </mj-agent-request-dialog>\n}\n", styles: ["/* Container is now provided by <mj-page-layout>; body padding moved to .filter-bar / list sections below */\n\n/* Search & filters now live in <mj-page-header>'s toolbar/actions via shared components. */\n\n.clear-filters-btn {\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.clear-filters-btn:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n/* Loading */\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 60px 20px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 20px;\n text-align: center;\n}\n\n.empty-icon {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n}\n\n.empty-text {\n margin: 0 0 8px 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-subtext {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n/* Request Cards */\n.requests-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n padding: 0 20px 20px;\n overflow-y: auto;\n}\n\n.request-card {\n display: flex;\n align-items: flex-start;\n gap: 14px;\n padding: 14px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.request-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.request-card.actionable {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.request-card.expired {\n opacity: 0.7;\n}\n\n.card-left {\n flex-shrink: 0;\n padding-top: 2px;\n}\n\n.type-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n}\n\n.card-content {\n flex: 1;\n min-width: 0;\n}\n\n.card-top-row {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.request-type-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.request-text {\n margin: 0 0 8px 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.card-meta {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-item.expired {\n color: var(--mj-status-error-text);\n}\n\n.card-right {\n flex-shrink: 0;\n color: var(--mj-text-disabled);\n font-size: 12px;\n padding-top: 4px;\n}\n\n/* Badges */\n.status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-requested {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid var(--mj-status-info-border);\n}\n\n.status-approved,\n.status-responded {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid var(--mj-status-success-border);\n}\n\n.status-rejected,\n.status-canceled {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n}\n\n.status-expired {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n}\n\n.priority-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.priority-low {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.priority-normal {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.priority-high {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.priority-critical {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.expired-tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n"] }]
|
|
537
|
+
args: [{ standalone: false, selector: 'app-agent-requests-resource', template: "<mj-page-layout>\n <!-- Header -->\n <mj-page-header\n Title=\"Agent Requests\"\n Icon=\"fa-solid fa-inbox\">\n @if (PendingCount > 0) {\n <mj-stat-badge meta\n Icon=\"fa-solid fa-hourglass-half\"\n [Count]=\"PendingCount\"\n Label=\"pending\"\n Variant=\"warning\">\n </mj-stat-badge>\n }\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search requests...\"\n [Value]=\"Filters.SearchTerm\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetPopoverFilters()\">\n <mj-filter-panel\n [Fields]=\"requestFilterFields\"\n [Values]=\"requestFilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetPopoverFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <!-- Content -->\n @if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agent requests...\"></mj-loading>\n </div>\n } @else if (FilteredRequests.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox empty-icon\"></i>\n @if (Requests.length === 0) {\n <p class=\"empty-text\">No agent requests yet</p>\n <p class=\"empty-subtext\">When agents need human input, their requests will appear here.</p>\n } @else {\n <p class=\"empty-text\">No requests match your filters</p>\n <button class=\"clear-filters-btn\" (click)=\"ClearFilters()\">Clear Filters</button>\n }\n </div>\n } @else {\n <div class=\"requests-list\">\n @for (request of FilteredRequests; track request.ID) {\n <div\n class=\"request-card\"\n [class.actionable]=\"request.Status === 'Requested'\"\n [class.expired]=\"IsExpired(request)\"\n (click)=\"OnRequestClick(request)\">\n <div class=\"card-left\">\n <i class=\"{{ GetRequestTypeIcon(request.RequestTypeID) }} type-icon\"></i>\n </div>\n <div class=\"card-content\">\n <div class=\"card-top-row\">\n <span class=\"request-type-name\">{{ GetRequestTypeName(request.RequestTypeID) }}</span>\n <span class=\"priority-badge {{ GetPriorityClass(request.Priority) }}\">\n {{ GetPriorityLabel(request.Priority) }}\n </span>\n <span class=\"status-badge status-{{ request.Status.toLowerCase() }}\">\n {{ request.Status }}\n </span>\n @if (IsExpired(request) && request.Status === 'Requested') {\n <span class=\"expired-tag\">Expired</span>\n }\n </div>\n <p class=\"request-text\">{{ request.Request }}</p>\n <div class=\"card-meta\">\n @if (request.Agent) {\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-robot\"></i> {{ request.Agent }}\n </span>\n }\n @if (request.__mj_CreatedAt) {\n <span class=\"meta-item\">\n <i class=\"fa-regular fa-clock\"></i> {{ request.__mj_CreatedAt | date:'short' }}\n </span>\n }\n @if (request.ExpiresAt) {\n <span class=\"meta-item\" [class.expired]=\"IsExpired(request)\">\n <i class=\"fa-solid fa-hourglass-end\"></i> Expires {{ request.ExpiresAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"card-right\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n\n<!-- Agent Request Detail Panel -->\n@if (ShowRequestPanel && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestPanel\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnPanelClose($event)\">\n </mj-agent-request-dialog>\n}\n", styles: ["/* Container is now provided by <mj-page-layout>; body padding moved to .filter-bar / list sections below */\n\n/* Search & filters now live in <mj-page-header>'s toolbar/actions via shared components. */\n\n.clear-filters-btn {\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-secondary);\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.clear-filters-btn:hover {\n background: var(--mj-bg-surface-active);\n color: var(--mj-text-primary);\n}\n\n/* Loading */\n.loading-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 60px 20px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 80px 20px;\n text-align: center;\n}\n\n.empty-icon {\n font-size: 48px;\n color: var(--mj-text-disabled);\n margin-bottom: 16px;\n}\n\n.empty-text {\n margin: 0 0 8px 0;\n font-size: 16px;\n color: var(--mj-text-secondary);\n}\n\n.empty-subtext {\n margin: 0;\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n/* Request Cards */\n.requests-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n padding: 0 20px 20px;\n overflow-y: auto;\n}\n\n.request-card {\n display: flex;\n align-items: flex-start;\n gap: 14px;\n padding: 14px 16px;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n cursor: pointer;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.request-card:hover {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 2px 8px color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n}\n\n.request-card.actionable {\n border-left: 3px solid var(--mj-status-warning);\n}\n\n.request-card.expired {\n opacity: 0.7;\n}\n\n.card-left {\n flex-shrink: 0;\n padding-top: 2px;\n}\n\n.type-icon {\n font-size: 18px;\n color: var(--mj-brand-primary);\n}\n\n.card-content {\n flex: 1;\n min-width: 0;\n}\n\n.card-top-row {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n margin-bottom: 6px;\n}\n\n.request-type-name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.request-text {\n margin: 0 0 8px 0;\n font-size: 13px;\n color: var(--mj-text-secondary);\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.card-meta {\n display: flex;\n gap: 14px;\n flex-wrap: wrap;\n}\n\n.meta-item {\n font-size: 11px;\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.meta-item.expired {\n color: var(--mj-status-error-text);\n}\n\n.card-right {\n flex-shrink: 0;\n color: var(--mj-text-disabled);\n font-size: 12px;\n padding-top: 4px;\n}\n\n/* Badges */\n.status-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.status-requested {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n border: 1px solid var(--mj-status-info-border);\n}\n\n.status-approved,\n.status-responded {\n background: var(--mj-status-success-bg);\n color: var(--mj-status-success-text);\n border: 1px solid var(--mj-status-success-border);\n}\n\n.status-rejected,\n.status-canceled {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n}\n\n.status-expired {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n}\n\n.priority-badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 10px;\n font-weight: 600;\n}\n\n.priority-low {\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n}\n\n.priority-normal {\n background: var(--mj-status-info-bg);\n color: var(--mj-status-info-text);\n}\n\n.priority-high {\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n\n.priority-critical {\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n}\n\n.expired-tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 600;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n}\n"] }]
|
|
538
538
|
}], () => [{ type: i0.ChangeDetectorRef }], null); })();
|
|
539
539
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AgentRequestsResourceComponent, { className: "AgentRequestsResourceComponent", filePath: "src/AI/components/requests/agent-requests-resource.component.ts", lineNumber: 44 }); })();
|
|
540
540
|
export function LoadAgentRequestsResource() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-requests-resource.component.js","sourceRoot":"","sources":["../../../../src/AI/components/requests/agent-requests-resource.component.ts","../../../../src/AI/components/requests/agent-requests-resource.component.html"],"names":[],"mappings":";;;;;;AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAA+C,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAgB,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;;;;;;;;ICVtD,mCAKgB;;;IAHZ,2CAAsB;;;IA8B9B,8BAA+B;IAC3B,iCAA0D;IAC9D,iBAAM;;;IAKE,6BAAsB;IAAA,qCAAqB;IAAA,iBAAI;IAC/C,6BAAyB;IAAA,8EAA8D;IAAA,iBAAI;;;;IAE3F,6BAAsB;IAAA,8CAA8B;IAAA,iBAAI;IACxD,kCAA2D;IAAzB,kNAAS,qBAAc,KAAC;IAAC,6BAAa;IAAA,iBAAS;;;IAPzF,8BAAyB;IACrB,wBAA4C;IAI1C,AAHF,qGAA6B,+EAGpB;IAIb,iBAAM;;;IAPF,eAMC;IAND,sDAMC;;;IAuBmB,gCAA0B;IAAA,uBAAO;IAAA,iBAAO;;;IAMxC,gCAAwB;IACpB,wBAAiC;IAAC,YACtC;IAAA,iBAAO;;;IAD+B,eACtC;IADsC,iDACtC;;;IAGA,gCAAwB;IACpB,wBAAmC;IAAC,YACxC;;IAAA,iBAAO;;;IADiC,eACxC;IADwC,yFACxC;;;IAGA,gCAA6D;IACzD,wBAAyC;IAAC,YAC9C;;IAAA,iBAAO;;;;IAFiB,uDAAoC;IACd,eAC9C;IAD8C,4FAC9C;;;;IApChB,+BAIsC;IAAlC,oOAAS,iCAAuB,KAAC;IACjC,+BAAuB;IACnB,oBAAyE;IAC7E,iBAAM;IAGE,AADJ,AADJ,+BAA0B,cACI,eACU;IAAA,YAA+C;IAAA,iBAAO;IACtF,4BAAsE;IAClE,YACJ;IAAA,iBAAO;IACP,4BAAqE;IACjE,aACJ;IAAA,iBAAO;IACP,yHAA4D;IAGhE,iBAAM;IACN,8BAAwB;IAAA,aAAqB;IAAA,iBAAI;IACjD,gCAAuB;IACnB,yHAAqB;IAKrB,yHAA8B;IAK9B,yHAAyB;IAMjC,AADI,iBAAM,EACJ;IACN,gCAAwB;IACpB,yBAAyC;IAEjD,AADI,iBAAM,EACJ;;;;IAxCF,AADA,+DAAmD,yCACf;IAG7B,eAAiE;IAAjE,cAAA,wFAAiE,CAAA;IAIhC,eAA+C;IAA/C,yEAA+C;IACzE,cAA+D;IAA/D,cAAA,kFAA+D,CAAA;IACjE,cACJ;IADI,6EACJ;IACM,cAA8D;IAA9D,cAAA,0EAA8D,CAAA;IAChE,cACJ;IADI,kDACJ;IACA,cAEC;IAFD,6FAEC;IAEmB,eAAqB;IAArB,wCAAqB;IAEzC,eAIC;IAJD,4CAIC;IACD,cAIC;IAJD,qDAIC;IACD,cAIC;IAJD,gDAIC;;;IAvCrB,8BAA2B;IACvB,mHA6CC;IACL,iBAAM;;;IA9CF,cA6CC;IA7CD,sCA6CC;;;;IAQT,mDAGmC;IAA/B,0NAAS,2BAAoB,KAAC;IAClC,iBAA0B;;;IAFtB,AADA,iDAA4B,mCACD;;ADlE5B,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,qBAAqB;IAkCjD;IAjCH,iBAAiB,GAAG,kCAAkC,CAAC;IAChE,sBAAsB,GAAG,IAAI,OAAO,EAAQ,CAAC;IAClC,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;IAC1C,cAAc,GAAG,KAAK,CAAC;IAExB,SAAS,GAAG,KAAK,CAAC;IAClB,QAAQ,GAA6B,EAAE,CAAC;IACxC,gBAAgB,GAA6B,EAAE,CAAC;IAChD,YAAY,GAAiC,EAAE,CAAC;IAEvD,cAAc;IACP,eAAe,GAAkC,IAAI,CAAC;IACtD,gBAAgB,GAAG,KAAK,CAAC;IAEhC,eAAe;IACR,OAAO,GAAkB;QAC5B,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE;KACf,CAAC;IAEF,2BAA2B;IACpB,aAAa,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1F,eAAe,GAAG;QACrB,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,UAAU,EAAE;QACjD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE;QACxC,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC5C,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;KACxC,CAAC;IAEM,aAAa,GAAG,IAAI,OAAO,EAAU,CAAC;IAE9C,YAAoB,GAAsB;QACtC,KAAK,EAAE,CAAC;QADQ,QAAG,GAAH,GAAG,CAAmB;IAE1C,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW;QACP,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAkB;QAC3C,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAkB;QACzC,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,yCAAyC;IACzC,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IACtE,CAAC;IAED,0CAA0C;IACnC,cAAc,CAAC,OAA+B;QACjD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,yBAAyB;IAClB,YAAY,CAAC,MAA+B;QAC/C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,gDAAgD;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,0BAA0B;IACnB,cAAc,CAAC,IAAY;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,4BAA4B;IACrB,cAAc;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,wBAAwB;IACjB,YAAY;QACf,IAAI,CAAC,OAAO,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,sFAAsF;IAC/E,mBAAmB;QACtB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC9E,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,kHAAkH;IAClH,IAAW,iBAAiB;QACxB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;YAAO,CAAC,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,CAAC,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC;IACb,CAAC;IAED,mEAAmE;IACnE,IAAW,mBAAmB;QAC1B,OAAO;YACH,MAAM,EAAO,IAAI,CAAC,OAAO,CAAC,MAAM;YAChC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,QAAQ,EAAK,IAAI,CAAC,OAAO,CAAC,QAAQ;SACrC,CAAC;IACN,CAAC;IAED,kEAAkE;IAClE,IAAW,mBAAmB;QAC1B,OAAO;YACH;gBACI,GAAG,EAAE,QAAQ;gBACb,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE;oBACL,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;oBACnC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;iBAC1D;aACJ;YACD;gBACI,GAAG,EAAE,aAAa;gBAClB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE;gBACzC,OAAO,EAAE;oBACL,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;oBAChC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;iBACjE;aACJ;YACD;gBACI,GAAG,EAAE,UAAU;gBACf,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE;oBACL,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE;oBACrC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;iBACxE;aACJ;SACJ,CAAC;IACN,CAAC;IAED,6EAA6E;IACtE,oBAAoB,CAAC,MAA+B;QACvD,IAAI,CAAC,OAAO,GAAG;YACX,GAAG,IAAI,CAAC,OAAO;YACf,MAAM,EAAQ,MAAM,CAAC,QAAQ,CAAiB,IAAI,EAAE;YACpD,WAAW,EAAG,MAAM,CAAC,aAAa,CAAY,IAAI,EAAE;YACpD,QAAQ,EAAM,MAAM,CAAC,UAAU,CAAe,IAAI,EAAE;SACvD,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,sCAAsC;IAC/B,kBAAkB,CAAC,MAAqB;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,sCAAsC;IAC/B,kBAAkB,CAAC,MAAqB;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,6BAA6B,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,EAAE,IAAI,IAAI,6BAA6B,CAAC;IACvD,CAAC;IAED,4CAA4C;IACrC,gBAAgB,CAAC,QAAgB;QACpC,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,QAAQ,CAAC;QACpC,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAClC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,gDAAgD;IACzC,gBAAgB,CAAC,QAAgB;QACpC,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,cAAc,CAAC;QAC1C,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,iBAAiB,CAAC;QAC7C,IAAI,QAAQ,IAAI,EAAE;YAAE,OAAO,eAAe,CAAC;QAC3C,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,mCAAmC;IAC5B,SAAS,CAAC,OAA+B;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,4BAA4B;IAE5B;;;OAGG;IACK,8BAA8B;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS;eACnC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC;QACnE,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;QACnE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAEzB,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5D,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC;gBACpD;oBACI,UAAU,EAAE,uBAAuB;oBACnC,OAAO,EAAE,oCAAoC;oBAC7C,UAAU,EAAE,eAAe;iBAC9B;gBACD;oBACI,UAAU,EAAE,4BAA4B;oBACxC,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,eAAe;iBAC9B;aACJ,CAAC,CAAC;YAEH,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,OAAmC,CAAC;YACvE,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACtB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,OAAuC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC;IAEO,YAAY;QAChB,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElC,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC;QAED,sBAAsB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3B,CAAC,CAAC,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAC3E,CAAC;QACN,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACrB,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC5B,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC3B,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxC,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;oBACtC,KAAK,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;oBAC/B,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;gBACzB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACnD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3B,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;QACN,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC5B,YAAY,CAAC,GAAG,CAAC,EACjB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACzE,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,MAAM,GAAiC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1D,CAAC;YACL,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,eAAe;QACnB,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,gBAAgB;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC7B,IAAI,CAAC;YACD,MAAM,KAAK,GAAiC;gBACxC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,UAAU;gBACtB,aAAa,EAAE,MAAM;aACxB,CAAC;YACF,MAAM,cAAc,CAAC,QAAQ,CAAC,UAAU,CACpC,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACxB,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACL,0CAA0C;QAC9C,CAAC;IACL,CAAC;wHAtWQ,8BAA8B;6DAA9B,8BAA8B;YCzCvC,AAFJ,sCAAgB,wBAIiB;YACzB,0GAAwB;YASpB,AADJ,8BAAa,2BAIuC;YAA5C,8IAAqB,yBAAqB,IAAC;YAC3C,0CAIoC;YAAhC,AADA,wIAAgB,gCAA4B,IAAC,uGACpC,yBAAqB,IAAC;YAG3C,AADI,AADI,iBAAkB,EACF,EAClB;YAEF,AADJ,8BAAa,wBAIkC;YAAvC,qIAAe,0BAAsB,IAAC;YAGlD,AADI,AADI,iBAAiB,EACf,EACO;YAEjB,oCAAc;YAiBZ,AAXA,AAJF,gGAAiB,4EAI2B,4EAWnC;YAmDb,AADI,iBAAe,EACF;YAGjB,uHAA2C;;YArGnC,eAOC;YAPD,+CAOC;YAGO,eAAiC;YACjC,AADA,mDAAiC,2CACK;YAGlC,cAA8B;YAC9B,AADA,gDAA8B,mCACA;YASlC,eAA4B;YAA5B,8CAA4B;YAQxC,eAgEC;YAhED,iFAgEC;YAKL,eAMC;YAND,uEAMC;;;ADrEY,8BAA8B;IAP1C,aAAa,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;GAOnD,8BAA8B,CAuW1C;;iFAvWY,8BAA8B;cAN1C,SAAS;6BACM,KAAK,YACP,6BAA6B;;kFAI9B,8BAA8B;AAyW3C,MAAM,UAAU,yBAAyB;IACrC,wBAAwB;AAC5B,CAAC","sourcesContent":["/**\n * @fileoverview Agent Requests Resource Component\n *\n * Dashboard resource for the AI application's \"Requests\" tab.\n * Displays all agent feedback requests with filtering by status, priority,\n * request type, and agent. Opens the generic agent-request-panel for\n * viewing details and responding.\n */\n\nimport { Component, ChangeDetectorRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { RunView } from '@memberjunction/core';\nimport { ResourceData, UserInfoEngine } from '@memberjunction/core-entities';\nimport { MJAIAgentRequestEntity, MJAIAgentRequestTypeEntity } from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { AgentRequestPanelResult } from '@memberjunction/ng-agent-requests';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\n\ninterface RequestFilter {\n SearchTerm: string;\n Status: string;\n RequestType: string;\n Priority: string;\n}\n\n/**\n * User preferences for the Agent Requests dashboard\n */\ninterface AgentRequestsUserPreferences {\n Filters: RequestFilter;\n SortColumn: string;\n SortDirection: 'asc' | 'desc';\n}\n\n@RegisterClass(BaseResourceComponent, 'AIAgentRequestsResource')\n@Component({\n standalone: false,\n selector: 'app-agent-requests-resource',\n templateUrl: './agent-requests-resource.component.html',\n styleUrls: ['./agent-requests-resource.component.css']\n})\nexport class AgentRequestsResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {\n private readonly USER_SETTINGS_KEY = 'AI.AgentRequests.UserPreferences';\n private settingsPersistSubject = new Subject<void>();\n protected override destroy$ = new Subject<void>();\n private settingsLoaded = false;\n\n public IsLoading = false;\n public Requests: MJAIAgentRequestEntity[] = [];\n public FilteredRequests: MJAIAgentRequestEntity[] = [];\n public RequestTypes: MJAIAgentRequestTypeEntity[] = [];\n\n // Panel state\n public SelectedRequest: MJAIAgentRequestEntity | null = null;\n public ShowRequestPanel = false;\n\n // Filter state\n public Filters: RequestFilter = {\n SearchTerm: '',\n Status: '',\n RequestType: '',\n Priority: ''\n };\n\n // Available filter options\n public StatusOptions = ['Requested', 'Approved', 'Rejected', 'Responded', 'Canceled', 'Expired'];\n public PriorityOptions = [\n { Label: 'Critical (76-100)', Value: 'critical' },\n { Label: 'High (51-75)', Value: 'high' },\n { Label: 'Normal (26-50)', Value: 'normal' },\n { Label: 'Low (1-25)', Value: 'low' }\n ];\n\n private searchSubject = new Subject<string>();\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n async ngAfterViewInit(): Promise<void> {\n this.setupSearchDebounce();\n await this.loadUserSettings();\n await this.loadData();\n this.autoOpenRequestFromQueryParams();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Agent Requests';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-inbox';\n }\n\n /** Count of pending (Requested) items */\n public get PendingCount(): number {\n return this.Requests.filter(r => r.Status === 'Requested').length;\n }\n\n /** Open the detail panel for a request */\n public OnRequestClick(request: MJAIAgentRequestEntity): void {\n this.SelectedRequest = request;\n this.ShowRequestPanel = true;\n this.cdr.detectChanges();\n }\n\n /** Handle panel close */\n public OnPanelClose(result: AgentRequestPanelResult): void {\n this.ShowRequestPanel = false;\n this.SelectedRequest = null;\n\n if (result.Success) {\n // Refresh the list to reflect the status change\n this.loadData();\n }\n this.cdr.detectChanges();\n }\n\n /** Handle search input */\n public OnSearchChange(term: string): void {\n this.searchSubject.next(term);\n }\n\n /** Handle filter changes */\n public OnFilterChange(): void {\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Clear all filters */\n public ClearFilters(): void {\n this.Filters = { SearchTerm: '', Status: '', RequestType: '', Priority: '' };\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Reset only the popover filters (Status/Type/Priority) — leave SearchTerm alone. */\n public resetPopoverFilters(): void {\n this.Filters = { ...this.Filters, Status: '', RequestType: '', Priority: '' };\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Number of currently-applied filter criteria inside the popover (excludes SearchTerm — surfaced separately). */\n public get ActiveFilterCount(): number {\n let n = 0;\n if (this.Filters.Status) n++;\n if (this.Filters.RequestType) n++;\n if (this.Filters.Priority) n++;\n return n;\n }\n\n /** Values record consumed by the centralized <mj-filter-panel>. */\n public get requestFilterValues(): Record<string, unknown> {\n return {\n Status: this.Filters.Status,\n RequestType: this.Filters.RequestType,\n Priority: this.Filters.Priority,\n };\n }\n\n /** Field config consumed by the centralized <mj-filter-panel>. */\n public get requestFilterFields(): FilterFieldConfig[] {\n return [\n {\n key: 'Status',\n type: 'dropdown',\n label: 'Status',\n icon: 'fa-solid fa-toggle-on',\n options: [\n { text: 'All Statuses', value: '' },\n ...this.StatusOptions.map(s => ({ text: s, value: s })),\n ],\n },\n {\n key: 'RequestType',\n type: 'dropdown',\n label: 'Type',\n icon: 'fa-solid fa-tag',\n filterable: this.RequestTypes.length > 10,\n options: [\n { text: 'All Types', value: '' },\n ...this.RequestTypes.map(t => ({ text: t.Name, value: t.ID })),\n ],\n },\n {\n key: 'Priority',\n type: 'dropdown',\n label: 'Priority',\n icon: 'fa-solid fa-flag',\n options: [\n { text: 'All Priorities', value: '' },\n ...this.PriorityOptions.map(p => ({ text: p.Label, value: p.Value })),\n ],\n },\n ];\n }\n\n /** Receive the updated values record from <mj-filter-panel> and apply it. */\n public onFilterValuesChange(values: Record<string, unknown>): void {\n this.Filters = {\n ...this.Filters,\n Status: (values['Status'] as string) ?? '',\n RequestType: (values['RequestType'] as string) ?? '',\n Priority: (values['Priority'] as string) ?? '',\n };\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Get the request type name by ID */\n public GetRequestTypeName(typeId: string | null): string {\n if (!typeId) return '';\n const type = this.RequestTypes.find(t => UUIDsEqual(t.ID, typeId));\n return type?.Name ?? '';\n }\n\n /** Get the request type icon by ID */\n public GetRequestTypeIcon(typeId: string | null): string {\n if (!typeId) return 'fa-solid fa-question-circle';\n const type = this.RequestTypes.find(t => UUIDsEqual(t.ID, typeId));\n return type?.Icon ?? 'fa-solid fa-question-circle';\n }\n\n /** Get priority label from numeric value */\n public GetPriorityLabel(priority: number): string {\n if (priority <= 25) return 'Low';\n if (priority <= 50) return 'Normal';\n if (priority <= 75) return 'High';\n return 'Critical';\n }\n\n /** Get priority CSS class from numeric value */\n public GetPriorityClass(priority: number): string {\n if (priority <= 25) return 'priority-low';\n if (priority <= 50) return 'priority-normal';\n if (priority <= 75) return 'priority-high';\n return 'priority-critical';\n }\n\n /** Whether a request is expired */\n public IsExpired(request: MJAIAgentRequestEntity): boolean {\n if (!request.ExpiresAt) return false;\n return new Date(request.ExpiresAt) < new Date();\n }\n\n // ---- Private Methods ----\n\n /**\n * If a requestId was passed via configuration (e.g. from a notification click),\n * auto-open that request in the detail panel.\n */\n private autoOpenRequestFromQueryParams(): void {\n const requestId = this.Data?.Configuration?.requestId\n || this.Data?.Configuration?.queryParams?.requestId;\n if (!requestId) return;\n\n const match = this.Requests.find(r => UUIDsEqual(r.ID, requestId));\n if (match) {\n this.OnRequestClick(match);\n }\n }\n\n private async loadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const [requestsResult, typesResult] = await rv.RunViews([\n {\n EntityName: 'MJ: AI Agent Requests',\n OrderBy: 'Priority DESC, __mj_CreatedAt DESC',\n ResultType: 'entity_object'\n },\n {\n EntityName: 'MJ: AI Agent Request Types',\n OrderBy: 'Name',\n ResultType: 'entity_object'\n }\n ]);\n\n if (requestsResult.Success) {\n this.Requests = requestsResult.Results as MJAIAgentRequestEntity[];\n }\n if (typesResult.Success) {\n this.RequestTypes = typesResult.Results as MJAIAgentRequestTypeEntity[];\n }\n\n this.applyFilters();\n } catch (error) {\n console.error('Error loading agent requests:', error);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private applyFilters(): void {\n let filtered = [...this.Requests];\n\n // Status filter\n if (this.Filters.Status) {\n filtered = filtered.filter(r => r.Status === this.Filters.Status);\n }\n\n // Request type filter\n if (this.Filters.RequestType) {\n filtered = filtered.filter(r =>\n r.RequestTypeID && UUIDsEqual(r.RequestTypeID, this.Filters.RequestType)\n );\n }\n\n // Priority filter\n if (this.Filters.Priority) {\n filtered = filtered.filter(r => {\n const p = r.Priority;\n switch (this.Filters.Priority) {\n case 'low': return p <= 25;\n case 'normal': return p > 25 && p <= 50;\n case 'high': return p > 50 && p <= 75;\n case 'critical': return p > 75;\n default: return true;\n }\n });\n }\n\n // Search term filter\n if (this.Filters.SearchTerm) {\n const term = this.Filters.SearchTerm.toLowerCase();\n filtered = filtered.filter(r =>\n (r.Request && r.Request.toLowerCase().includes(term)) ||\n (r.Agent && r.Agent.toLowerCase().includes(term)) ||\n (r.Response && r.Response.toLowerCase().includes(term))\n );\n }\n\n this.FilteredRequests = filtered;\n this.cdr.detectChanges();\n }\n\n private setupSearchDebounce(): void {\n this.searchSubject.pipe(\n debounceTime(300),\n takeUntil(this.destroy$)\n ).subscribe(term => {\n this.Filters.SearchTerm = term;\n this.applyFilters();\n this.saveUserSettings();\n });\n\n this.settingsPersistSubject.pipe(\n debounceTime(500),\n takeUntil(this.destroy$)\n ).subscribe(() => this.persistUserSettings());\n }\n\n private async loadUserSettings(): Promise<void> {\n try {\n const prefs = UserInfoEngine.Instance.GetSetting(this.USER_SETTINGS_KEY);\n if (prefs) {\n const parsed: AgentRequestsUserPreferences = JSON.parse(prefs);\n if (parsed.Filters) {\n this.Filters = { ...this.Filters, ...parsed.Filters };\n }\n }\n } catch {\n // Use defaults\n }\n this.settingsLoaded = true;\n }\n\n private saveUserSettings(): void {\n if (this.settingsLoaded) {\n this.settingsPersistSubject.next();\n }\n }\n\n private async persistUserSettings(): Promise<void> {\n try {\n const prefs: AgentRequestsUserPreferences = {\n Filters: this.Filters,\n SortColumn: 'Priority',\n SortDirection: 'desc'\n };\n await UserInfoEngine.Instance.SetSetting(\n this.USER_SETTINGS_KEY,\n JSON.stringify(prefs)\n );\n } catch {\n // Silent failure for settings persistence\n }\n }\n}\n\nexport function LoadAgentRequestsResource(): void {\n // Prevents tree-shaking\n}\n","<mj-page-layout>\n <!-- Header -->\n <mj-page-header\n Title=\"Agent Requests\"\n Icon=\"fa-solid fa-inbox\">\n @if (PendingCount > 0) {\n <mj-stat-badge meta\n Icon=\"fa-solid fa-hourglass-half\"\n [Count]=\"PendingCount\"\n Label=\"pending\"\n Variant=\"warning\">\n </mj-stat-badge>\n }\n <div actions>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetPopoverFilters()\">\n <mj-filter-panel\n [Fields]=\"requestFilterFields\"\n [Values]=\"requestFilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetPopoverFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search requests...\"\n [Value]=\"Filters.SearchTerm\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <!-- Content -->\n @if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agent requests...\"></mj-loading>\n </div>\n } @else if (FilteredRequests.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox empty-icon\"></i>\n @if (Requests.length === 0) {\n <p class=\"empty-text\">No agent requests yet</p>\n <p class=\"empty-subtext\">When agents need human input, their requests will appear here.</p>\n } @else {\n <p class=\"empty-text\">No requests match your filters</p>\n <button class=\"clear-filters-btn\" (click)=\"ClearFilters()\">Clear Filters</button>\n }\n </div>\n } @else {\n <div class=\"requests-list\">\n @for (request of FilteredRequests; track request.ID) {\n <div\n class=\"request-card\"\n [class.actionable]=\"request.Status === 'Requested'\"\n [class.expired]=\"IsExpired(request)\"\n (click)=\"OnRequestClick(request)\">\n <div class=\"card-left\">\n <i class=\"{{ GetRequestTypeIcon(request.RequestTypeID) }} type-icon\"></i>\n </div>\n <div class=\"card-content\">\n <div class=\"card-top-row\">\n <span class=\"request-type-name\">{{ GetRequestTypeName(request.RequestTypeID) }}</span>\n <span class=\"priority-badge {{ GetPriorityClass(request.Priority) }}\">\n {{ GetPriorityLabel(request.Priority) }}\n </span>\n <span class=\"status-badge status-{{ request.Status.toLowerCase() }}\">\n {{ request.Status }}\n </span>\n @if (IsExpired(request) && request.Status === 'Requested') {\n <span class=\"expired-tag\">Expired</span>\n }\n </div>\n <p class=\"request-text\">{{ request.Request }}</p>\n <div class=\"card-meta\">\n @if (request.Agent) {\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-robot\"></i> {{ request.Agent }}\n </span>\n }\n @if (request.__mj_CreatedAt) {\n <span class=\"meta-item\">\n <i class=\"fa-regular fa-clock\"></i> {{ request.__mj_CreatedAt | date:'short' }}\n </span>\n }\n @if (request.ExpiresAt) {\n <span class=\"meta-item\" [class.expired]=\"IsExpired(request)\">\n <i class=\"fa-solid fa-hourglass-end\"></i> Expires {{ request.ExpiresAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"card-right\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n\n<!-- Agent Request Detail Panel -->\n@if (ShowRequestPanel && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestPanel\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnPanelClose($event)\">\n </mj-agent-request-dialog>\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agent-requests-resource.component.js","sourceRoot":"","sources":["../../../../src/AI/components/requests/agent-requests-resource.component.ts","../../../../src/AI/components/requests/agent-requests-resource.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Agent Requests Resource Component\n *\n * Dashboard resource for the AI application's \"Requests\" tab.\n * Displays all agent feedback requests with filtering by status, priority,\n * request type, and agent. Opens the generic agent-request-panel for\n * viewing details and responding.\n */\n\nimport { Component, ChangeDetectorRef, OnDestroy, AfterViewInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { RunView } from '@memberjunction/core';\nimport { ResourceData, UserInfoEngine } from '@memberjunction/core-entities';\nimport { MJAIAgentRequestEntity, MJAIAgentRequestTypeEntity } from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { AgentRequestPanelResult } from '@memberjunction/ng-agent-requests';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\n\ninterface RequestFilter {\n SearchTerm: string;\n Status: string;\n RequestType: string;\n Priority: string;\n}\n\n/**\n * User preferences for the Agent Requests dashboard\n */\ninterface AgentRequestsUserPreferences {\n Filters: RequestFilter;\n SortColumn: string;\n SortDirection: 'asc' | 'desc';\n}\n\n@RegisterClass(BaseResourceComponent, 'AIAgentRequestsResource')\n@Component({\n standalone: false,\n selector: 'app-agent-requests-resource',\n templateUrl: './agent-requests-resource.component.html',\n styleUrls: ['./agent-requests-resource.component.css']\n})\nexport class AgentRequestsResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {\n private readonly USER_SETTINGS_KEY = 'AI.AgentRequests.UserPreferences';\n private settingsPersistSubject = new Subject<void>();\n protected override destroy$ = new Subject<void>();\n private settingsLoaded = false;\n\n public IsLoading = false;\n public Requests: MJAIAgentRequestEntity[] = [];\n public FilteredRequests: MJAIAgentRequestEntity[] = [];\n public RequestTypes: MJAIAgentRequestTypeEntity[] = [];\n\n // Panel state\n public SelectedRequest: MJAIAgentRequestEntity | null = null;\n public ShowRequestPanel = false;\n\n // Filter state\n public Filters: RequestFilter = {\n SearchTerm: '',\n Status: '',\n RequestType: '',\n Priority: ''\n };\n\n // Available filter options\n public StatusOptions = ['Requested', 'Approved', 'Rejected', 'Responded', 'Canceled', 'Expired'];\n public PriorityOptions = [\n { Label: 'Critical (76-100)', Value: 'critical' },\n { Label: 'High (51-75)', Value: 'high' },\n { Label: 'Normal (26-50)', Value: 'normal' },\n { Label: 'Low (1-25)', Value: 'low' }\n ];\n\n private searchSubject = new Subject<string>();\n\n constructor(private cdr: ChangeDetectorRef) {\n super();\n }\n\n async ngAfterViewInit(): Promise<void> {\n this.setupSearchDebounce();\n await this.loadUserSettings();\n await this.loadData();\n this.autoOpenRequestFromQueryParams();\n this.NotifyLoadComplete();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Agent Requests';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-inbox';\n }\n\n /** Count of pending (Requested) items */\n public get PendingCount(): number {\n return this.Requests.filter(r => r.Status === 'Requested').length;\n }\n\n /** Open the detail panel for a request */\n public OnRequestClick(request: MJAIAgentRequestEntity): void {\n this.SelectedRequest = request;\n this.ShowRequestPanel = true;\n this.cdr.detectChanges();\n }\n\n /** Handle panel close */\n public OnPanelClose(result: AgentRequestPanelResult): void {\n this.ShowRequestPanel = false;\n this.SelectedRequest = null;\n\n if (result.Success) {\n // Refresh the list to reflect the status change\n this.loadData();\n }\n this.cdr.detectChanges();\n }\n\n /** Handle search input */\n public OnSearchChange(term: string): void {\n this.searchSubject.next(term);\n }\n\n /** Handle filter changes */\n public OnFilterChange(): void {\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Clear all filters */\n public ClearFilters(): void {\n this.Filters = { SearchTerm: '', Status: '', RequestType: '', Priority: '' };\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Reset only the popover filters (Status/Type/Priority) — leave SearchTerm alone. */\n public resetPopoverFilters(): void {\n this.Filters = { ...this.Filters, Status: '', RequestType: '', Priority: '' };\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Number of currently-applied filter criteria inside the popover (excludes SearchTerm — surfaced separately). */\n public get ActiveFilterCount(): number {\n let n = 0;\n if (this.Filters.Status) n++;\n if (this.Filters.RequestType) n++;\n if (this.Filters.Priority) n++;\n return n;\n }\n\n /** Values record consumed by the centralized <mj-filter-panel>. */\n public get requestFilterValues(): Record<string, unknown> {\n return {\n Status: this.Filters.Status,\n RequestType: this.Filters.RequestType,\n Priority: this.Filters.Priority,\n };\n }\n\n /** Field config consumed by the centralized <mj-filter-panel>. */\n public get requestFilterFields(): FilterFieldConfig[] {\n return [\n {\n key: 'Status',\n type: 'dropdown',\n label: 'Status',\n icon: 'fa-solid fa-toggle-on',\n options: [\n { text: 'All Statuses', value: '' },\n ...this.StatusOptions.map(s => ({ text: s, value: s })),\n ],\n },\n {\n key: 'RequestType',\n type: 'dropdown',\n label: 'Type',\n icon: 'fa-solid fa-tag',\n filterable: this.RequestTypes.length > 10,\n options: [\n { text: 'All Types', value: '' },\n ...this.RequestTypes.map(t => ({ text: t.Name, value: t.ID })),\n ],\n },\n {\n key: 'Priority',\n type: 'dropdown',\n label: 'Priority',\n icon: 'fa-solid fa-flag',\n options: [\n { text: 'All Priorities', value: '' },\n ...this.PriorityOptions.map(p => ({ text: p.Label, value: p.Value })),\n ],\n },\n ];\n }\n\n /** Receive the updated values record from <mj-filter-panel> and apply it. */\n public onFilterValuesChange(values: Record<string, unknown>): void {\n this.Filters = {\n ...this.Filters,\n Status: (values['Status'] as string) ?? '',\n RequestType: (values['RequestType'] as string) ?? '',\n Priority: (values['Priority'] as string) ?? '',\n };\n this.applyFilters();\n this.saveUserSettings();\n }\n\n /** Get the request type name by ID */\n public GetRequestTypeName(typeId: string | null): string {\n if (!typeId) return '';\n const type = this.RequestTypes.find(t => UUIDsEqual(t.ID, typeId));\n return type?.Name ?? '';\n }\n\n /** Get the request type icon by ID */\n public GetRequestTypeIcon(typeId: string | null): string {\n if (!typeId) return 'fa-solid fa-question-circle';\n const type = this.RequestTypes.find(t => UUIDsEqual(t.ID, typeId));\n return type?.Icon ?? 'fa-solid fa-question-circle';\n }\n\n /** Get priority label from numeric value */\n public GetPriorityLabel(priority: number): string {\n if (priority <= 25) return 'Low';\n if (priority <= 50) return 'Normal';\n if (priority <= 75) return 'High';\n return 'Critical';\n }\n\n /** Get priority CSS class from numeric value */\n public GetPriorityClass(priority: number): string {\n if (priority <= 25) return 'priority-low';\n if (priority <= 50) return 'priority-normal';\n if (priority <= 75) return 'priority-high';\n return 'priority-critical';\n }\n\n /** Whether a request is expired */\n public IsExpired(request: MJAIAgentRequestEntity): boolean {\n if (!request.ExpiresAt) return false;\n return new Date(request.ExpiresAt) < new Date();\n }\n\n // ---- Private Methods ----\n\n /**\n * If a requestId was passed via configuration (e.g. from a notification click),\n * auto-open that request in the detail panel.\n */\n private autoOpenRequestFromQueryParams(): void {\n const requestId = this.Data?.Configuration?.requestId\n || this.Data?.Configuration?.queryParams?.requestId;\n if (!requestId) return;\n\n const match = this.Requests.find(r => UUIDsEqual(r.ID, requestId));\n if (match) {\n this.OnRequestClick(match);\n }\n }\n\n private async loadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const [requestsResult, typesResult] = await rv.RunViews([\n {\n EntityName: 'MJ: AI Agent Requests',\n OrderBy: 'Priority DESC, __mj_CreatedAt DESC',\n ResultType: 'entity_object'\n },\n {\n EntityName: 'MJ: AI Agent Request Types',\n OrderBy: 'Name',\n ResultType: 'entity_object'\n }\n ]);\n\n if (requestsResult.Success) {\n this.Requests = requestsResult.Results as MJAIAgentRequestEntity[];\n }\n if (typesResult.Success) {\n this.RequestTypes = typesResult.Results as MJAIAgentRequestTypeEntity[];\n }\n\n this.applyFilters();\n } catch (error) {\n console.error('Error loading agent requests:', error);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private applyFilters(): void {\n let filtered = [...this.Requests];\n\n // Status filter\n if (this.Filters.Status) {\n filtered = filtered.filter(r => r.Status === this.Filters.Status);\n }\n\n // Request type filter\n if (this.Filters.RequestType) {\n filtered = filtered.filter(r =>\n r.RequestTypeID && UUIDsEqual(r.RequestTypeID, this.Filters.RequestType)\n );\n }\n\n // Priority filter\n if (this.Filters.Priority) {\n filtered = filtered.filter(r => {\n const p = r.Priority;\n switch (this.Filters.Priority) {\n case 'low': return p <= 25;\n case 'normal': return p > 25 && p <= 50;\n case 'high': return p > 50 && p <= 75;\n case 'critical': return p > 75;\n default: return true;\n }\n });\n }\n\n // Search term filter\n if (this.Filters.SearchTerm) {\n const term = this.Filters.SearchTerm.toLowerCase();\n filtered = filtered.filter(r =>\n (r.Request && r.Request.toLowerCase().includes(term)) ||\n (r.Agent && r.Agent.toLowerCase().includes(term)) ||\n (r.Response && r.Response.toLowerCase().includes(term))\n );\n }\n\n this.FilteredRequests = filtered;\n this.cdr.detectChanges();\n }\n\n private setupSearchDebounce(): void {\n this.searchSubject.pipe(\n debounceTime(300),\n takeUntil(this.destroy$)\n ).subscribe(term => {\n this.Filters.SearchTerm = term;\n this.applyFilters();\n this.saveUserSettings();\n });\n\n this.settingsPersistSubject.pipe(\n debounceTime(500),\n takeUntil(this.destroy$)\n ).subscribe(() => this.persistUserSettings());\n }\n\n private async loadUserSettings(): Promise<void> {\n try {\n const prefs = UserInfoEngine.Instance.GetSetting(this.USER_SETTINGS_KEY);\n if (prefs) {\n const parsed: AgentRequestsUserPreferences = JSON.parse(prefs);\n if (parsed.Filters) {\n this.Filters = { ...this.Filters, ...parsed.Filters };\n }\n }\n } catch {\n // Use defaults\n }\n this.settingsLoaded = true;\n }\n\n private saveUserSettings(): void {\n if (this.settingsLoaded) {\n this.settingsPersistSubject.next();\n }\n }\n\n private async persistUserSettings(): Promise<void> {\n try {\n const prefs: AgentRequestsUserPreferences = {\n Filters: this.Filters,\n SortColumn: 'Priority',\n SortDirection: 'desc'\n };\n await UserInfoEngine.Instance.SetSetting(\n this.USER_SETTINGS_KEY,\n JSON.stringify(prefs)\n );\n } catch {\n // Silent failure for settings persistence\n }\n }\n}\n\nexport function LoadAgentRequestsResource(): void {\n // Prevents tree-shaking\n}\n","<mj-page-layout>\n <!-- Header -->\n <mj-page-header\n Title=\"Agent Requests\"\n Icon=\"fa-solid fa-inbox\">\n @if (PendingCount > 0) {\n <mj-stat-badge meta\n Icon=\"fa-solid fa-hourglass-half\"\n [Count]=\"PendingCount\"\n Label=\"pending\"\n Variant=\"warning\">\n </mj-stat-badge>\n }\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search requests...\"\n [Value]=\"Filters.SearchTerm\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetPopoverFilters()\">\n <mj-filter-panel\n [Fields]=\"requestFilterFields\"\n [Values]=\"requestFilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetPopoverFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <!-- Content -->\n @if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading agent requests...\"></mj-loading>\n </div>\n } @else if (FilteredRequests.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-inbox empty-icon\"></i>\n @if (Requests.length === 0) {\n <p class=\"empty-text\">No agent requests yet</p>\n <p class=\"empty-subtext\">When agents need human input, their requests will appear here.</p>\n } @else {\n <p class=\"empty-text\">No requests match your filters</p>\n <button class=\"clear-filters-btn\" (click)=\"ClearFilters()\">Clear Filters</button>\n }\n </div>\n } @else {\n <div class=\"requests-list\">\n @for (request of FilteredRequests; track request.ID) {\n <div\n class=\"request-card\"\n [class.actionable]=\"request.Status === 'Requested'\"\n [class.expired]=\"IsExpired(request)\"\n (click)=\"OnRequestClick(request)\">\n <div class=\"card-left\">\n <i class=\"{{ GetRequestTypeIcon(request.RequestTypeID) }} type-icon\"></i>\n </div>\n <div class=\"card-content\">\n <div class=\"card-top-row\">\n <span class=\"request-type-name\">{{ GetRequestTypeName(request.RequestTypeID) }}</span>\n <span class=\"priority-badge {{ GetPriorityClass(request.Priority) }}\">\n {{ GetPriorityLabel(request.Priority) }}\n </span>\n <span class=\"status-badge status-{{ request.Status.toLowerCase() }}\">\n {{ request.Status }}\n </span>\n @if (IsExpired(request) && request.Status === 'Requested') {\n <span class=\"expired-tag\">Expired</span>\n }\n </div>\n <p class=\"request-text\">{{ request.Request }}</p>\n <div class=\"card-meta\">\n @if (request.Agent) {\n <span class=\"meta-item\">\n <i class=\"fa-solid fa-robot\"></i> {{ request.Agent }}\n </span>\n }\n @if (request.__mj_CreatedAt) {\n <span class=\"meta-item\">\n <i class=\"fa-regular fa-clock\"></i> {{ request.__mj_CreatedAt | date:'short' }}\n </span>\n }\n @if (request.ExpiresAt) {\n <span class=\"meta-item\" [class.expired]=\"IsExpired(request)\">\n <i class=\"fa-solid fa-hourglass-end\"></i> Expires {{ request.ExpiresAt | date:'short' }}\n </span>\n }\n </div>\n </div>\n <div class=\"card-right\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </div>\n </div>\n }\n </div>\n }\n </mj-page-body>\n</mj-page-layout>\n\n<!-- Agent Request Detail Panel -->\n@if (ShowRequestPanel && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestPanel\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnPanelClose($event)\">\n </mj-agent-request-dialog>\n}\n"]}
|