@memberjunction/ng-dashboards 5.37.0 → 5.39.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 +46 -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 +89 -842
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1353 -7683
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- 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 +235 -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 +1735 -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 +43 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +209 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +276 -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 +40 -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 +402 -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 +122 -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 +752 -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 +166 -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 +1384 -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 +70 -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 +448 -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 +47 -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 +220 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +293 -289
- package/dist/AI/components/duplicates/duplicate-detection-resource.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.js +550 -532
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +1 -1
- 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-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/ComponentStudio/component-studio-dashboard.component.d.ts +73 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +512 -127
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-resource.component.d.ts +22 -0
- package/dist/ComponentStudio/component-studio-resource.component.d.ts.map +1 -0
- package/dist/ComponentStudio/component-studio-resource.component.js +55 -0
- package/dist/ComponentStudio/component-studio-resource.component.js.map +1 -0
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +104 -45
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +234 -331
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.d.ts +54 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.d.ts.map +1 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.js +339 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-canvas.component.js.map +1 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.d.ts +65 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.d.ts.map +1 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.js +492 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-right-panel.component.js.map +1 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.d.ts +88 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.d.ts.map +1 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.js +457 -0
- package/dist/ComponentStudio/components/form-builder/form-builder-tab.component.js.map +1 -0
- package/dist/ComponentStudio/components/form-override-dialog.component.d.ts +106 -0
- package/dist/ComponentStudio/components/form-override-dialog.component.d.ts.map +1 -0
- package/dist/ComponentStudio/components/form-override-dialog.component.js +478 -0
- package/dist/ComponentStudio/components/form-override-dialog.component.js.map +1 -0
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +54 -0
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +361 -50
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts +10 -0
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js +114 -45
- package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
- package/dist/ComponentStudio/services/canvas-to-code.d.ts +32 -0
- package/dist/ComponentStudio/services/canvas-to-code.d.ts.map +1 -0
- package/dist/ComponentStudio/services/canvas-to-code.js +347 -0
- package/dist/ComponentStudio/services/canvas-to-code.js.map +1 -0
- package/dist/ComponentStudio/services/code-to-canvas.d.ts +32 -0
- package/dist/ComponentStudio/services/code-to-canvas.d.ts.map +1 -0
- package/dist/ComponentStudio/services/code-to-canvas.js +92 -0
- package/dist/ComponentStudio/services/code-to-canvas.js.map +1 -0
- package/dist/ComponentStudio/services/component-studio-state.service.d.ts +29 -0
- package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-studio-state.service.js +76 -0
- package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
- package/dist/ComponentStudio/services/entity-form-override.service.d.ts +86 -0
- package/dist/ComponentStudio/services/entity-form-override.service.d.ts.map +1 -0
- package/dist/ComponentStudio/services/entity-form-override.service.js +246 -0
- package/dist/ComponentStudio/services/entity-form-override.service.js.map +1 -0
- package/dist/ComponentStudio/services/field-binding-scanner.d.ts +29 -0
- package/dist/ComponentStudio/services/field-binding-scanner.d.ts.map +1 -0
- package/dist/ComponentStudio/services/field-binding-scanner.js +110 -0
- package/dist/ComponentStudio/services/field-binding-scanner.js.map +1 -0
- package/dist/ComponentStudio/services/form-canvas-model.d.ts +56 -0
- package/dist/ComponentStudio/services/form-canvas-model.d.ts.map +1 -0
- package/dist/ComponentStudio/services/form-canvas-model.js +35 -0
- package/dist/ComponentStudio/services/form-canvas-model.js.map +1 -0
- package/dist/ComponentStudio/services/form-host-props-fixture.d.ts +10 -0
- package/dist/ComponentStudio/services/form-host-props-fixture.d.ts.map +1 -0
- package/dist/ComponentStudio/services/form-host-props-fixture.js +10 -0
- package/dist/ComponentStudio/services/form-host-props-fixture.js.map +1 -0
- 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.js +2 -2
- package/dist/DataExplorer/data-explorer-dashboard.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/FormBuilder/form-builder-resource.component.d.ts +964 -0
- package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -0
- package/dist/FormBuilder/form-builder-resource.component.js +4487 -0
- package/dist/FormBuilder/form-builder-resource.component.js.map +1 -0
- package/dist/FormBuilder/form-builder-version-rail.helpers.d.ts +55 -0
- package/dist/FormBuilder/form-builder-version-rail.helpers.d.ts.map +1 -0
- package/dist/FormBuilder/form-builder-version-rail.helpers.js +73 -0
- package/dist/FormBuilder/form-builder-version-rail.helpers.js.map +1 -0
- package/dist/Home/home-application.d.ts +21 -1
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +60 -8
- package/dist/Home/home-application.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.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +45 -44
- 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/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/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +14 -14
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +11 -10
- 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 +47 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +40 -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/component-studio-dashboards.module.d.ts +34 -22
- package/dist/component-studio-dashboards.module.d.ts.map +1 -1
- package/dist/component-studio-dashboards.module.js +65 -9
- package/dist/component-studio-dashboards.module.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 +55 -53
|
@@ -18,24 +18,24 @@ import * as i4 from "@memberjunction/ng-shared-generic";
|
|
|
18
18
|
import * as i5 from "@angular/common";
|
|
19
19
|
const _forTrack0 = ($index, $item) => $item.categoryId;
|
|
20
20
|
const _forTrack1 = ($index, $item) => $item.ID;
|
|
21
|
-
function
|
|
21
|
+
function ActionsOverviewComponent_Conditional_77_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
22
22
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "div",
|
|
24
|
-
i0.ɵɵlistener("click", function
|
|
25
|
-
i0.ɵɵelementStart(1, "div",
|
|
23
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
24
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Conditional_77_For_2_Template_div_click_0_listener() { const category_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.openCategory(category_r2.categoryId)); });
|
|
25
|
+
i0.ɵɵelementStart(1, "div", 45)(2, "div", 46);
|
|
26
26
|
i0.ɵɵtext(3);
|
|
27
27
|
i0.ɵɵelementEnd();
|
|
28
|
-
i0.ɵɵelementStart(4, "div",
|
|
28
|
+
i0.ɵɵelementStart(4, "div", 47)(5, "span", 48);
|
|
29
29
|
i0.ɵɵtext(6);
|
|
30
30
|
i0.ɵɵelementEnd();
|
|
31
|
-
i0.ɵɵelementStart(7, "span",
|
|
31
|
+
i0.ɵɵelementStart(7, "span", 48);
|
|
32
32
|
i0.ɵɵtext(8);
|
|
33
33
|
i0.ɵɵelementEnd();
|
|
34
|
-
i0.ɵɵelementStart(9, "span",
|
|
34
|
+
i0.ɵɵelementStart(9, "span", 49);
|
|
35
35
|
i0.ɵɵtext(10);
|
|
36
36
|
i0.ɵɵelementEnd()()();
|
|
37
|
-
i0.ɵɵelementStart(11, "div",
|
|
38
|
-
i0.ɵɵelement(13, "div",
|
|
37
|
+
i0.ɵɵelementStart(11, "div", 50)(12, "div", 51);
|
|
38
|
+
i0.ɵɵelement(13, "div", 52);
|
|
39
39
|
i0.ɵɵelementEnd()()();
|
|
40
40
|
} if (rf & 2) {
|
|
41
41
|
const category_r2 = ctx.$implicit;
|
|
@@ -50,36 +50,36 @@ function ActionsOverviewComponent_Conditional_78_For_2_Template(rf, ctx) { if (r
|
|
|
50
50
|
i0.ɵɵadvance(3);
|
|
51
51
|
i0.ɵɵstyleProp("width", category_r2.successRate, "%");
|
|
52
52
|
} }
|
|
53
|
-
function
|
|
54
|
-
i0.ɵɵelementStart(0, "div",
|
|
55
|
-
i0.ɵɵrepeaterCreate(1,
|
|
53
|
+
function ActionsOverviewComponent_Conditional_77_Template(rf, ctx) { if (rf & 1) {
|
|
54
|
+
i0.ɵɵelementStart(0, "div", 34);
|
|
55
|
+
i0.ɵɵrepeaterCreate(1, ActionsOverviewComponent_Conditional_77_For_2_Template, 14, 6, "div", 43, _forTrack0);
|
|
56
56
|
i0.ɵɵelementEnd();
|
|
57
57
|
} if (rf & 2) {
|
|
58
58
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
59
59
|
i0.ɵɵadvance();
|
|
60
60
|
i0.ɵɵrepeater(ctx_r2.categoryStats);
|
|
61
61
|
} }
|
|
62
|
-
function
|
|
63
|
-
i0.ɵɵelementStart(0, "div",
|
|
64
|
-
i0.ɵɵelement(1, "i",
|
|
62
|
+
function ActionsOverviewComponent_Conditional_78_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
64
|
+
i0.ɵɵelement(1, "i", 32);
|
|
65
65
|
i0.ɵɵelementStart(2, "p");
|
|
66
66
|
i0.ɵɵtext(3, "No category statistics available");
|
|
67
67
|
i0.ɵɵelementEnd()();
|
|
68
68
|
} }
|
|
69
|
-
function
|
|
69
|
+
function ActionsOverviewComponent_Conditional_85_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
70
70
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
71
|
-
i0.ɵɵelementStart(0, "div",
|
|
72
|
-
i0.ɵɵlistener("click", function
|
|
73
|
-
i0.ɵɵelementStart(1, "div",
|
|
71
|
+
i0.ɵɵelementStart(0, "div", 54);
|
|
72
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Conditional_85_For_2_Template_div_click_0_listener() { const action_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.openAction(action_r5)); });
|
|
73
|
+
i0.ɵɵelementStart(1, "div", 55);
|
|
74
74
|
i0.ɵɵelement(2, "i");
|
|
75
75
|
i0.ɵɵelementEnd();
|
|
76
|
-
i0.ɵɵelementStart(3, "div",
|
|
76
|
+
i0.ɵɵelementStart(3, "div", 56)(4, "div", 57);
|
|
77
77
|
i0.ɵɵtext(5);
|
|
78
78
|
i0.ɵɵelementEnd();
|
|
79
|
-
i0.ɵɵelementStart(6, "div",
|
|
79
|
+
i0.ɵɵelementStart(6, "div", 58);
|
|
80
80
|
i0.ɵɵtext(7);
|
|
81
81
|
i0.ɵɵelementEnd()();
|
|
82
|
-
i0.ɵɵelementStart(8, "div",
|
|
82
|
+
i0.ɵɵelementStart(8, "div", 59)(9, "span", 60);
|
|
83
83
|
i0.ɵɵtext(10);
|
|
84
84
|
i0.ɵɵelementEnd()()();
|
|
85
85
|
} if (rf & 2) {
|
|
@@ -96,33 +96,33 @@ function ActionsOverviewComponent_Conditional_86_For_2_Template(rf, ctx) { if (r
|
|
|
96
96
|
i0.ɵɵadvance();
|
|
97
97
|
i0.ɵɵtextInterpolate1(" ", action_r5.Status, " ");
|
|
98
98
|
} }
|
|
99
|
-
function
|
|
100
|
-
i0.ɵɵelementStart(0, "div",
|
|
101
|
-
i0.ɵɵrepeaterCreate(1,
|
|
99
|
+
function ActionsOverviewComponent_Conditional_85_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵelementStart(0, "div", 38);
|
|
101
|
+
i0.ɵɵrepeaterCreate(1, ActionsOverviewComponent_Conditional_85_For_2_Template, 11, 6, "div", 53, _forTrack1);
|
|
102
102
|
i0.ɵɵelementEnd();
|
|
103
103
|
} if (rf & 2) {
|
|
104
104
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
105
105
|
i0.ɵɵadvance();
|
|
106
106
|
i0.ɵɵrepeater(ctx_r2.recentActions);
|
|
107
107
|
} }
|
|
108
|
-
function
|
|
109
|
-
i0.ɵɵelementStart(0, "div",
|
|
110
|
-
i0.ɵɵelement(1, "i",
|
|
108
|
+
function ActionsOverviewComponent_Conditional_86_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
110
|
+
i0.ɵɵelement(1, "i", 9);
|
|
111
111
|
i0.ɵɵelementStart(2, "p");
|
|
112
112
|
i0.ɵɵtext(3, "No recent actions found");
|
|
113
113
|
i0.ɵɵelementEnd()();
|
|
114
114
|
} }
|
|
115
|
-
function
|
|
115
|
+
function ActionsOverviewComponent_Conditional_93_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
116
116
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
117
|
-
i0.ɵɵelementStart(0, "div",
|
|
118
|
-
i0.ɵɵelement(3, "i",
|
|
117
|
+
i0.ɵɵelementStart(0, "div", 70)(1, "div", 71)(2, "h5");
|
|
118
|
+
i0.ɵɵelement(3, "i", 72);
|
|
119
119
|
i0.ɵɵtext(4, " Parameters");
|
|
120
120
|
i0.ɵɵelementEnd();
|
|
121
|
-
i0.ɵɵelement(5, "mj-code-editor",
|
|
121
|
+
i0.ɵɵelement(5, "mj-code-editor", 73);
|
|
122
122
|
i0.ɵɵelementEnd();
|
|
123
|
-
i0.ɵɵelementStart(6, "div",
|
|
124
|
-
i0.ɵɵlistener("click", function
|
|
125
|
-
i0.ɵɵelement(8, "i",
|
|
123
|
+
i0.ɵɵelementStart(6, "div", 74)(7, "button", 75);
|
|
124
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Conditional_93_For_2_Conditional_15_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r8); const execution_r7 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.openExecution(execution_r7)); });
|
|
125
|
+
i0.ɵɵelement(8, "i", 76);
|
|
126
126
|
i0.ɵɵtext(9, " Open Details ");
|
|
127
127
|
i0.ɵɵelementEnd()()();
|
|
128
128
|
} if (rf & 2) {
|
|
@@ -131,27 +131,27 @@ function ActionsOverviewComponent_Conditional_94_For_2_Conditional_15_Template(r
|
|
|
131
131
|
i0.ɵɵadvance(5);
|
|
132
132
|
i0.ɵɵproperty("ngModel", ctx_r2.formatJsonParams(execution_r7.Params))("readonly", true)("language", "json")("lineWrapping", true);
|
|
133
133
|
} }
|
|
134
|
-
function
|
|
134
|
+
function ActionsOverviewComponent_Conditional_93_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
135
135
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
136
|
-
i0.ɵɵelementStart(0, "div",
|
|
137
|
-
i0.ɵɵlistener("click", function
|
|
138
|
-
i0.ɵɵelementStart(2, "div",
|
|
136
|
+
i0.ɵɵelementStart(0, "div", 62)(1, "div", 63);
|
|
137
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Conditional_93_For_2_Template_div_click_1_listener() { const execution_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleExecutionExpanded(execution_r7)); });
|
|
138
|
+
i0.ɵɵelementStart(2, "div", 64);
|
|
139
139
|
i0.ɵɵtext(3);
|
|
140
140
|
i0.ɵɵpipe(4, "date");
|
|
141
141
|
i0.ɵɵelementEnd();
|
|
142
|
-
i0.ɵɵelementStart(5, "div",
|
|
142
|
+
i0.ɵɵelementStart(5, "div", 65)(6, "div", 66);
|
|
143
143
|
i0.ɵɵtext(7);
|
|
144
144
|
i0.ɵɵelementEnd();
|
|
145
|
-
i0.ɵɵelementStart(8, "div",
|
|
145
|
+
i0.ɵɵelementStart(8, "div", 67);
|
|
146
146
|
i0.ɵɵtext(9);
|
|
147
147
|
i0.ɵɵelementEnd()();
|
|
148
|
-
i0.ɵɵelementStart(10, "div",
|
|
148
|
+
i0.ɵɵelementStart(10, "div", 68)(11, "span", 60);
|
|
149
149
|
i0.ɵɵtext(12);
|
|
150
150
|
i0.ɵɵelementEnd()();
|
|
151
|
-
i0.ɵɵelementStart(13, "div",
|
|
151
|
+
i0.ɵɵelementStart(13, "div", 69);
|
|
152
152
|
i0.ɵɵelement(14, "i");
|
|
153
153
|
i0.ɵɵelementEnd()();
|
|
154
|
-
i0.ɵɵconditionalCreate(15,
|
|
154
|
+
i0.ɵɵconditionalCreate(15, ActionsOverviewComponent_Conditional_93_For_2_Conditional_15_Template, 10, 4, "div", 70);
|
|
155
155
|
i0.ɵɵelementEnd();
|
|
156
156
|
} if (rf & 2) {
|
|
157
157
|
const execution_r7 = ctx.$implicit;
|
|
@@ -172,25 +172,25 @@ function ActionsOverviewComponent_Conditional_94_For_2_Template(rf, ctx) { if (r
|
|
|
172
172
|
i0.ɵɵadvance();
|
|
173
173
|
i0.ɵɵconditional(execution_r7.isExpanded ? 15 : -1);
|
|
174
174
|
} }
|
|
175
|
-
function
|
|
176
|
-
i0.ɵɵelementStart(0, "div",
|
|
177
|
-
i0.ɵɵrepeaterCreate(1,
|
|
175
|
+
function ActionsOverviewComponent_Conditional_93_Template(rf, ctx) { if (rf & 1) {
|
|
176
|
+
i0.ɵɵelementStart(0, "div", 41);
|
|
177
|
+
i0.ɵɵrepeaterCreate(1, ActionsOverviewComponent_Conditional_93_For_2_Template, 16, 13, "div", 61, _forTrack1);
|
|
178
178
|
i0.ɵɵelementEnd();
|
|
179
179
|
} if (rf & 2) {
|
|
180
180
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
181
181
|
i0.ɵɵadvance();
|
|
182
182
|
i0.ɵɵrepeater(ctx_r2.recentExecutions);
|
|
183
183
|
} }
|
|
184
|
-
function
|
|
185
|
-
i0.ɵɵelementStart(0, "div",
|
|
186
|
-
i0.ɵɵelement(1, "i",
|
|
184
|
+
function ActionsOverviewComponent_Conditional_94_Template(rf, ctx) { if (rf & 1) {
|
|
185
|
+
i0.ɵɵelementStart(0, "div", 35);
|
|
186
|
+
i0.ɵɵelement(1, "i", 40);
|
|
187
187
|
i0.ɵɵelementStart(2, "p");
|
|
188
188
|
i0.ɵɵtext(3, "No recent executions found");
|
|
189
189
|
i0.ɵɵelementEnd()();
|
|
190
190
|
} }
|
|
191
|
-
function
|
|
192
|
-
i0.ɵɵelementStart(0, "div",
|
|
193
|
-
i0.ɵɵelement(1, "mj-loading",
|
|
191
|
+
function ActionsOverviewComponent_Conditional_95_Template(rf, ctx) { if (rf & 1) {
|
|
192
|
+
i0.ɵɵelementStart(0, "div", 42);
|
|
193
|
+
i0.ɵɵelement(1, "mj-loading", 77);
|
|
194
194
|
i0.ɵɵelementEnd();
|
|
195
195
|
} if (rf & 2) {
|
|
196
196
|
i0.ɵɵadvance();
|
|
@@ -512,124 +512,124 @@ let ActionsOverviewComponent = class ActionsOverviewComponent extends BaseResour
|
|
|
512
512
|
return 'fa-solid fa-bolt';
|
|
513
513
|
}
|
|
514
514
|
static ɵfac = function ActionsOverviewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionsOverviewComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
|
515
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsOverviewComponent, selectors: [["mj-actions-overview"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
516
|
-
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1)(3, "mj-
|
|
517
|
-
i0.ɵɵlistener("
|
|
518
|
-
i0.ɵɵelementStart(4, "mj-filter-panel", 3);
|
|
519
|
-
i0.ɵɵlistener("ValuesChange", function ActionsOverviewComponent_Template_mj_filter_panel_ValuesChange_4_listener($event) { return ctx.onFilterValuesChange($event); })("Reset", function ActionsOverviewComponent_Template_mj_filter_panel_Reset_4_listener() { return ctx.resetFilters(); });
|
|
520
|
-
i0.ɵɵelementEnd()()();
|
|
521
|
-
i0.ɵɵelementStart(5, "div", 4)(6, "mj-page-search", 5);
|
|
522
|
-
i0.ɵɵlistener("ValueChange", function ActionsOverviewComponent_Template_mj_page_search_ValueChange_6_listener($event) { return ctx.onSearchChange($event); });
|
|
523
|
-
i0.ɵɵelementEnd()()();
|
|
524
|
-
i0.ɵɵelementStart(7, "mj-page-body")(8, "div", 6)(9, "div", 7)(10, "div", 8);
|
|
525
|
-
i0.ɵɵlistener("click", function ActionsOverviewComponent_Template_div_click_10_listener() { return ctx.onTotalActionsClick(); });
|
|
526
|
-
i0.ɵɵelementStart(11, "div", 9);
|
|
527
|
-
i0.ɵɵelement(12, "i", 10);
|
|
515
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionsOverviewComponent, selectors: [["mj-actions-overview"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 96, vars: 19, consts: [["Title", "Actions Overview", "Icon", "fa-solid fa-bolt", "Subtitle", "Health and activity for all configured actions"], ["toolbar", ""], ["Placeholder", "Search actions...", 3, "ValueChange", "Value"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [1, "actions-overview"], [1, "metrics-grid"], [1, "metric-card", "primary", "clickable", 3, "click"], [1, "metric-icon"], [1, "fa-solid", "fa-cogs"], [1, "metric-content"], [1, "metric-value"], [1, "metric-label"], [1, "metric-breakdown"], [1, "active"], [1, "pending"], [1, "disabled"], [1, "metric-card", "success", "clickable", 3, "click"], [1, "fa-solid", "fa-play-circle"], [1, "recent"], [1, "success-rate"], [1, "metric-card", "info", "clickable", 3, "click"], [1, "fa-solid", "fa-sitemap"], [1, "metric-card", "warning", "clickable", 3, "click"], [1, "fa-solid", "fa-robot"], [1, "custom"], [1, "metric-card", "gallery", "clickable", 3, "click"], [1, "fa-solid", "fa-th"], [1, "fa-solid", "fa-sparkles"], [1, "content-grid"], [1, "panel", "category-stats"], [1, "panel-header"], [1, "fa-solid", "fa-chart-bar"], [1, "panel-content"], [1, "category-list"], [1, "empty-state"], [1, "panel", "recent-actions"], [1, "fa-solid", "fa-clock"], [1, "actions-list"], [1, "panel", "recent-executions"], [1, "fa-solid", "fa-history"], [1, "executions-list"], [1, "loading-overlay"], [1, "category-item"], [1, "category-item", 3, "click"], [1, "category-info"], [1, "category-name"], [1, "category-metrics"], [1, "metric"], [1, "metric", "success-rate"], [1, "category-chart"], [1, "progress-bar"], [1, "progress-fill"], [1, "action-item"], [1, "action-item", 3, "click"], [1, "action-icon"], [1, "action-info"], [1, "action-name"], [1, "action-description"], [1, "action-status"], [1, "status-chip"], [1, "execution-item", 3, "expanded"], [1, "execution-item"], [1, "execution-header", 3, "click"], [1, "execution-time"], [1, "execution-info"], [1, "execution-action"], [1, "execution-user"], [1, "execution-result"], [1, "execution-expand-icon"], [1, "execution-details"], [1, "params-section"], [1, "fa-solid", "fa-sliders"], [2, "height", "150px", "width", "100%", 3, "ngModel", "readonly", "language", "lineWrapping"], [1, "execution-actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-external-link"], ["size", "medium", 3, "showText"]], template: function ActionsOverviewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
516
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1)(3, "mj-page-search", 2);
|
|
517
|
+
i0.ɵɵlistener("ValueChange", function ActionsOverviewComponent_Template_mj_page_search_ValueChange_3_listener($event) { return ctx.onSearchChange($event); });
|
|
528
518
|
i0.ɵɵelementEnd();
|
|
529
|
-
i0.ɵɵelementStart(
|
|
530
|
-
i0.ɵɵ
|
|
519
|
+
i0.ɵɵelementStart(4, "mj-filter-popover", 3);
|
|
520
|
+
i0.ɵɵlistener("ClearAllRequested", function ActionsOverviewComponent_Template_mj_filter_popover_ClearAllRequested_4_listener() { return ctx.resetFilters(); });
|
|
521
|
+
i0.ɵɵelementStart(5, "mj-filter-panel", 4);
|
|
522
|
+
i0.ɵɵlistener("ValuesChange", function ActionsOverviewComponent_Template_mj_filter_panel_ValuesChange_5_listener($event) { return ctx.onFilterValuesChange($event); })("Reset", function ActionsOverviewComponent_Template_mj_filter_panel_Reset_5_listener() { return ctx.resetFilters(); });
|
|
523
|
+
i0.ɵɵelementEnd()()()();
|
|
524
|
+
i0.ɵɵelementStart(6, "mj-page-body")(7, "div", 5)(8, "div", 6)(9, "div", 7);
|
|
525
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Template_div_click_9_listener() { return ctx.onTotalActionsClick(); });
|
|
526
|
+
i0.ɵɵelementStart(10, "div", 8);
|
|
527
|
+
i0.ɵɵelement(11, "i", 9);
|
|
531
528
|
i0.ɵɵelementEnd();
|
|
532
|
-
i0.ɵɵelementStart(
|
|
533
|
-
i0.ɵɵtext(
|
|
529
|
+
i0.ɵɵelementStart(12, "div", 10)(13, "div", 11);
|
|
530
|
+
i0.ɵɵtext(14);
|
|
534
531
|
i0.ɵɵelementEnd();
|
|
535
|
-
i0.ɵɵelementStart(
|
|
536
|
-
i0.ɵɵtext(
|
|
532
|
+
i0.ɵɵelementStart(15, "div", 12);
|
|
533
|
+
i0.ɵɵtext(16, "Total Actions");
|
|
537
534
|
i0.ɵɵelementEnd();
|
|
538
|
-
i0.ɵɵelementStart(
|
|
539
|
-
i0.ɵɵtext(
|
|
535
|
+
i0.ɵɵelementStart(17, "div", 13)(18, "span", 14);
|
|
536
|
+
i0.ɵɵtext(19);
|
|
540
537
|
i0.ɵɵelementEnd();
|
|
541
|
-
i0.ɵɵelementStart(
|
|
542
|
-
i0.ɵɵtext(
|
|
538
|
+
i0.ɵɵelementStart(20, "span", 15);
|
|
539
|
+
i0.ɵɵtext(21);
|
|
540
|
+
i0.ɵɵelementEnd();
|
|
541
|
+
i0.ɵɵelementStart(22, "span", 16);
|
|
542
|
+
i0.ɵɵtext(23);
|
|
543
543
|
i0.ɵɵelementEnd()()()();
|
|
544
|
-
i0.ɵɵelementStart(
|
|
545
|
-
i0.ɵɵlistener("click", function
|
|
546
|
-
i0.ɵɵelementStart(
|
|
547
|
-
i0.ɵɵelement(
|
|
544
|
+
i0.ɵɵelementStart(24, "div", 17);
|
|
545
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Template_div_click_24_listener() { return ctx.onExecutionsClick(); });
|
|
546
|
+
i0.ɵɵelementStart(25, "div", 8);
|
|
547
|
+
i0.ɵɵelement(26, "i", 18);
|
|
548
548
|
i0.ɵɵelementEnd();
|
|
549
|
-
i0.ɵɵelementStart(
|
|
550
|
-
i0.ɵɵtext(
|
|
549
|
+
i0.ɵɵelementStart(27, "div", 10)(28, "div", 11);
|
|
550
|
+
i0.ɵɵtext(29);
|
|
551
551
|
i0.ɵɵelementEnd();
|
|
552
|
-
i0.ɵɵelementStart(
|
|
553
|
-
i0.ɵɵtext(
|
|
552
|
+
i0.ɵɵelementStart(30, "div", 12);
|
|
553
|
+
i0.ɵɵtext(31, "Total Executions");
|
|
554
554
|
i0.ɵɵelementEnd();
|
|
555
|
-
i0.ɵɵelementStart(
|
|
556
|
-
i0.ɵɵtext(
|
|
555
|
+
i0.ɵɵelementStart(32, "div", 13)(33, "span", 19);
|
|
556
|
+
i0.ɵɵtext(34);
|
|
557
557
|
i0.ɵɵelementEnd();
|
|
558
|
-
i0.ɵɵelementStart(
|
|
559
|
-
i0.ɵɵtext(
|
|
558
|
+
i0.ɵɵelementStart(35, "span", 20);
|
|
559
|
+
i0.ɵɵtext(36);
|
|
560
560
|
i0.ɵɵelementEnd()()()();
|
|
561
|
-
i0.ɵɵelementStart(
|
|
562
|
-
i0.ɵɵlistener("click", function
|
|
563
|
-
i0.ɵɵelementStart(
|
|
564
|
-
i0.ɵɵelement(
|
|
561
|
+
i0.ɵɵelementStart(37, "div", 21);
|
|
562
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Template_div_click_37_listener() { return ctx.onCategoriesClick(); });
|
|
563
|
+
i0.ɵɵelementStart(38, "div", 8);
|
|
564
|
+
i0.ɵɵelement(39, "i", 22);
|
|
565
565
|
i0.ɵɵelementEnd();
|
|
566
|
-
i0.ɵɵelementStart(
|
|
567
|
-
i0.ɵɵtext(
|
|
566
|
+
i0.ɵɵelementStart(40, "div", 10)(41, "div", 11);
|
|
567
|
+
i0.ɵɵtext(42);
|
|
568
568
|
i0.ɵɵelementEnd();
|
|
569
|
-
i0.ɵɵelementStart(
|
|
570
|
-
i0.ɵɵtext(
|
|
569
|
+
i0.ɵɵelementStart(43, "div", 12);
|
|
570
|
+
i0.ɵɵtext(44, "Categories");
|
|
571
571
|
i0.ɵɵelementEnd();
|
|
572
|
-
i0.ɵɵelementStart(
|
|
573
|
-
i0.ɵɵtext(
|
|
572
|
+
i0.ɵɵelementStart(45, "div", 13)(46, "span");
|
|
573
|
+
i0.ɵɵtext(47, "Organized structure");
|
|
574
574
|
i0.ɵɵelementEnd()()()();
|
|
575
|
-
i0.ɵɵelementStart(
|
|
576
|
-
i0.ɵɵlistener("click", function
|
|
577
|
-
i0.ɵɵelementStart(
|
|
578
|
-
i0.ɵɵelement(
|
|
575
|
+
i0.ɵɵelementStart(48, "div", 23);
|
|
576
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Template_div_click_48_listener() { return ctx.onAIGeneratedClick(); });
|
|
577
|
+
i0.ɵɵelementStart(49, "div", 8);
|
|
578
|
+
i0.ɵɵelement(50, "i", 24);
|
|
579
579
|
i0.ɵɵelementEnd();
|
|
580
|
-
i0.ɵɵelementStart(
|
|
581
|
-
i0.ɵɵtext(
|
|
580
|
+
i0.ɵɵelementStart(51, "div", 10)(52, "div", 11);
|
|
581
|
+
i0.ɵɵtext(53);
|
|
582
582
|
i0.ɵɵelementEnd();
|
|
583
|
-
i0.ɵɵelementStart(
|
|
584
|
-
i0.ɵɵtext(
|
|
583
|
+
i0.ɵɵelementStart(54, "div", 12);
|
|
584
|
+
i0.ɵɵtext(55, "AI Generated");
|
|
585
585
|
i0.ɵɵelementEnd();
|
|
586
|
-
i0.ɵɵelementStart(
|
|
587
|
-
i0.ɵɵtext(
|
|
586
|
+
i0.ɵɵelementStart(56, "div", 13)(57, "span", 25);
|
|
587
|
+
i0.ɵɵtext(58);
|
|
588
588
|
i0.ɵɵelementEnd()()()();
|
|
589
|
-
i0.ɵɵelementStart(
|
|
590
|
-
i0.ɵɵlistener("click", function
|
|
591
|
-
i0.ɵɵelementStart(
|
|
592
|
-
i0.ɵɵelement(
|
|
589
|
+
i0.ɵɵelementStart(59, "div", 26);
|
|
590
|
+
i0.ɵɵlistener("click", function ActionsOverviewComponent_Template_div_click_59_listener() { return ctx.onActionGalleryClick(); });
|
|
591
|
+
i0.ɵɵelementStart(60, "div", 8);
|
|
592
|
+
i0.ɵɵelement(61, "i", 27);
|
|
593
593
|
i0.ɵɵelementEnd();
|
|
594
|
-
i0.ɵɵelementStart(
|
|
595
|
-
i0.ɵɵelement(
|
|
594
|
+
i0.ɵɵelementStart(62, "div", 10)(63, "div", 11);
|
|
595
|
+
i0.ɵɵelement(64, "i", 28);
|
|
596
596
|
i0.ɵɵelementEnd();
|
|
597
|
-
i0.ɵɵelementStart(
|
|
598
|
-
i0.ɵɵtext(
|
|
597
|
+
i0.ɵɵelementStart(65, "div", 12);
|
|
598
|
+
i0.ɵɵtext(66, "Action Gallery");
|
|
599
599
|
i0.ɵɵelementEnd();
|
|
600
|
-
i0.ɵɵelementStart(
|
|
601
|
-
i0.ɵɵtext(
|
|
600
|
+
i0.ɵɵelementStart(67, "div", 13)(68, "span");
|
|
601
|
+
i0.ɵɵtext(69, "Visual action browser");
|
|
602
602
|
i0.ɵɵelementEnd()()()()();
|
|
603
|
-
i0.ɵɵelementStart(
|
|
604
|
-
i0.ɵɵelement(
|
|
605
|
-
i0.ɵɵtext(
|
|
603
|
+
i0.ɵɵelementStart(70, "div", 29)(71, "div", 30)(72, "div", 31)(73, "h3");
|
|
604
|
+
i0.ɵɵelement(74, "i", 32);
|
|
605
|
+
i0.ɵɵtext(75, " Category Performance");
|
|
606
606
|
i0.ɵɵelementEnd()();
|
|
607
|
-
i0.ɵɵelementStart(
|
|
608
|
-
i0.ɵɵconditionalCreate(
|
|
607
|
+
i0.ɵɵelementStart(76, "div", 33);
|
|
608
|
+
i0.ɵɵconditionalCreate(77, ActionsOverviewComponent_Conditional_77_Template, 3, 0, "div", 34)(78, ActionsOverviewComponent_Conditional_78_Template, 4, 0, "div", 35);
|
|
609
609
|
i0.ɵɵelementEnd()();
|
|
610
|
-
i0.ɵɵelementStart(
|
|
611
|
-
i0.ɵɵelement(
|
|
612
|
-
i0.ɵɵtext(
|
|
610
|
+
i0.ɵɵelementStart(79, "div", 36)(80, "div", 31)(81, "h3");
|
|
611
|
+
i0.ɵɵelement(82, "i", 37);
|
|
612
|
+
i0.ɵɵtext(83, " Recent Actions");
|
|
613
613
|
i0.ɵɵelementEnd()();
|
|
614
|
-
i0.ɵɵelementStart(
|
|
615
|
-
i0.ɵɵconditionalCreate(
|
|
614
|
+
i0.ɵɵelementStart(84, "div", 33);
|
|
615
|
+
i0.ɵɵconditionalCreate(85, ActionsOverviewComponent_Conditional_85_Template, 3, 0, "div", 38)(86, ActionsOverviewComponent_Conditional_86_Template, 4, 0, "div", 35);
|
|
616
616
|
i0.ɵɵelementEnd()();
|
|
617
|
-
i0.ɵɵelementStart(
|
|
618
|
-
i0.ɵɵelement(
|
|
619
|
-
i0.ɵɵtext(
|
|
617
|
+
i0.ɵɵelementStart(87, "div", 39)(88, "div", 31)(89, "h3");
|
|
618
|
+
i0.ɵɵelement(90, "i", 40);
|
|
619
|
+
i0.ɵɵtext(91, " Recent Executions");
|
|
620
620
|
i0.ɵɵelementEnd()();
|
|
621
|
-
i0.ɵɵelementStart(
|
|
622
|
-
i0.ɵɵconditionalCreate(
|
|
621
|
+
i0.ɵɵelementStart(92, "div", 33);
|
|
622
|
+
i0.ɵɵconditionalCreate(93, ActionsOverviewComponent_Conditional_93_Template, 3, 0, "div", 41)(94, ActionsOverviewComponent_Conditional_94_Template, 4, 0, "div", 35);
|
|
623
623
|
i0.ɵɵelementEnd()()();
|
|
624
|
-
i0.ɵɵconditionalCreate(
|
|
624
|
+
i0.ɵɵconditionalCreate(95, ActionsOverviewComponent_Conditional_95_Template, 2, 1, "div", 42);
|
|
625
625
|
i0.ɵɵelementEnd()()();
|
|
626
626
|
} if (rf & 2) {
|
|
627
627
|
i0.ɵɵadvance(3);
|
|
628
|
+
i0.ɵɵproperty("Value", ctx.searchTerm$.value);
|
|
629
|
+
i0.ɵɵadvance();
|
|
628
630
|
i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
|
|
629
631
|
i0.ɵɵadvance();
|
|
630
632
|
i0.ɵɵproperty("Fields", ctx.FilterFields)("Values", ctx.FilterValues);
|
|
631
|
-
i0.ɵɵadvance(2);
|
|
632
|
-
i0.ɵɵproperty("Value", ctx.searchTerm$.value);
|
|
633
633
|
i0.ɵɵadvance(9);
|
|
634
634
|
i0.ɵɵtextInterpolate(ctx.metrics.totalActions);
|
|
635
635
|
i0.ɵɵadvance(5);
|
|
@@ -651,13 +651,13 @@ let ActionsOverviewComponent = class ActionsOverviewComponent extends BaseResour
|
|
|
651
651
|
i0.ɵɵadvance(5);
|
|
652
652
|
i0.ɵɵtextInterpolate1("", ctx.metrics.customActions, " Custom");
|
|
653
653
|
i0.ɵɵadvance(19);
|
|
654
|
-
i0.ɵɵconditional(ctx.categoryStats.length > 0 ?
|
|
654
|
+
i0.ɵɵconditional(ctx.categoryStats.length > 0 ? 77 : 78);
|
|
655
655
|
i0.ɵɵadvance(8);
|
|
656
|
-
i0.ɵɵconditional(ctx.recentActions.length > 0 ?
|
|
656
|
+
i0.ɵɵconditional(ctx.recentActions.length > 0 ? 85 : 86);
|
|
657
657
|
i0.ɵɵadvance(8);
|
|
658
|
-
i0.ɵɵconditional(ctx.recentExecutions.length > 0 ?
|
|
658
|
+
i0.ɵɵconditional(ctx.recentExecutions.length > 0 ? 93 : 94);
|
|
659
659
|
i0.ɵɵadvance(2);
|
|
660
|
-
i0.ɵɵconditional(ctx.isLoading ?
|
|
660
|
+
i0.ɵɵconditional(ctx.isLoading ? 95 : -1);
|
|
661
661
|
} }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.MJButtonDirective, i2.MJPageBodyComponent, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageSearchComponent, i2.MJFilterPopoverComponent, i2.MJFilterPanelComponent, i3.CodeEditorComponent, i4.LoadingComponent, i5.DatePipe], styles: [".actions-overview[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n position: relative; \n\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1.5rem;\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.5rem;\n border-radius: var(--mj-radius-lg);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n transition: all var(--mj-transition-base);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.clickable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.clickable[_ngcontent-%COMP%]:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-md);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xl);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-text-inverse);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] {\n flex: 1;\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-value[_ngcontent-%COMP%] {\n font-size: 1.75rem;\n font-weight: var(--mj-font-bold);\n line-height: var(--mj-leading-none);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-label[_ngcontent-%COMP%] {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n font-size: var(--mj-text-xs);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span.active[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span.pending[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span.disabled[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span.recent[_ngcontent-%COMP%] {\n color: var(--mj-status-info);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span.success-rate[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card[_ngcontent-%COMP%] .metric-content[_ngcontent-%COMP%] .metric-breakdown[_ngcontent-%COMP%] span.custom[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.primary[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.success[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.info[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-info);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.warning[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-status-warning);\n}\n.actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] .metric-card.gallery[_ngcontent-%COMP%] .metric-icon[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto;\n gap: 1.5rem;\n flex: 1;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n overflow: hidden;\n box-shadow: var(--mj-shadow-sm);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-elevated);\n border-bottom: 1px solid var(--mj-border-default);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-base);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .panel[_ngcontent-%COMP%] .panel-content[_ngcontent-%COMP%] {\n padding: 1.5rem;\n height: calc(100% - 60px);\n overflow-y: auto;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%] .category-name[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%] .category-metrics[_ngcontent-%COMP%] {\n display: flex;\n gap: 1rem;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-info[_ngcontent-%COMP%] .category-metrics[_ngcontent-%COMP%] .metric.success-rate[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n font-weight: var(--mj-font-semibold);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-chart[_ngcontent-%COMP%] {\n width: 60px;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-chart[_ngcontent-%COMP%] .progress-bar[_ngcontent-%COMP%] {\n height: 6px;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n overflow: hidden;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .category-stats[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-chart[_ngcontent-%COMP%] .progress-bar[_ngcontent-%COMP%] .progress-fill[_ngcontent-%COMP%] {\n height: 100%;\n background: var(--mj-status-success);\n transition: width var(--mj-transition-slow);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: var(--mj-radius-sm);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n font-size: var(--mj-text-base);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] .action-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] .action-info[_ngcontent-%COMP%] .action-name[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] .action-info[_ngcontent-%COMP%] .action-description[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: var(--mj-leading-snug);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-actions[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .action-item[_ngcontent-%COMP%] .action-status[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] {\n grid-column: 1/-1;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n transition: all var(--mj-transition-base);\n margin-bottom: 0.5rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item.expanded[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n cursor: pointer;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] .execution-time[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n font-weight: var(--mj-font-semibold);\n min-width: 80px;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] .execution-info[_ngcontent-%COMP%] {\n flex: 1;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] .execution-info[_ngcontent-%COMP%] .execution-action[_ngcontent-%COMP%] {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] .execution-info[_ngcontent-%COMP%] .execution-user[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] .execution-result[_ngcontent-%COMP%] {\n flex-shrink: 0;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-header[_ngcontent-%COMP%] .execution-expand-icon[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n margin-left: 0.5rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] {\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .params-section[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .params-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .params-section[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n}\n.actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] .executions-list[_ngcontent-%COMP%] .execution-item[_ngcontent-%COMP%] .execution-details[_ngcontent-%COMP%] .execution-actions[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n}\n.actions-overview[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.actions-overview[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.actions-overview[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm);\n}\n.actions-overview[_ngcontent-%COMP%] .loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n .actions-overview[_ngcontent-%COMP%] .content-grid[_ngcontent-%COMP%] .recent-executions[_ngcontent-%COMP%] {\n grid-column: 1;\n }\n}\n@media (max-width: 768px) {\n .actions-overview[_ngcontent-%COMP%] {\n padding: 1rem;\n gap: 1rem;\n }\n .actions-overview[_ngcontent-%COMP%] .metrics-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n .actions-overview[_ngcontent-%COMP%] .overview-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n .actions-overview[_ngcontent-%COMP%] .overview-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .search-container[_ngcontent-%COMP%], \n .actions-overview[_ngcontent-%COMP%] .overview-header[_ngcontent-%COMP%] .filters-row[_ngcontent-%COMP%] .filter-container[_ngcontent-%COMP%] {\n min-width: unset;\n }\n}"] });
|
|
662
662
|
};
|
|
663
663
|
ActionsOverviewComponent = __decorate([
|
|
@@ -666,7 +666,7 @@ ActionsOverviewComponent = __decorate([
|
|
|
666
666
|
export { ActionsOverviewComponent };
|
|
667
667
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionsOverviewComponent, [{
|
|
668
668
|
type: Component,
|
|
669
|
-
args: [{ standalone: false, selector: 'mj-actions-overview', template: "<mj-page-layout>\n <mj-page-header\n Title=\"Actions Overview\"\n Icon=\"fa-solid fa-bolt\"\n Subtitle=\"Health and activity for all configured actions\">\n <!-- [meta] intentionally omitted \u2014 chrome slot discipline audit Task B.\n totalActions was a single inventory count; the body's KPI cards\n surface this and other metrics in their proper place. -->\n <div actions>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetFilters()\">\n <mj-filter-panel\n [Fields]=\"FilterFields\"\n [Values]=\"FilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search actions...\"\n [Value]=\"searchTerm$.value\"\n (ValueChange)=\"onSearchChange($event)\">\n </mj-page-search>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <div class=\"actions-overview\" >\n\n <!-- Metrics Cards -->\n <div class=\"metrics-grid\">\n <div class=\"metric-card primary clickable\" (click)=\"onTotalActionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-cogs\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalActions }}</div>\n <div class=\"metric-label\">Total Actions</div>\n <div class=\"metric-breakdown\">\n <span class=\"active\">{{ metrics.activeActions }} Active</span>\n <span class=\"pending\">{{ metrics.pendingActions }} Pending</span>\n <span class=\"disabled\">{{ metrics.disabledActions }} Disabled</span>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card success clickable\" (click)=\"onExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-play-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalExecutions }}</div>\n <div class=\"metric-label\">Total Executions</div>\n <div class=\"metric-breakdown\">\n <span class=\"recent\">{{ metrics.recentExecutions }} in last 24h</span>\n <span class=\"success-rate\">{{ metrics.successRate }}% success rate</span>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card info clickable\" (click)=\"onCategoriesClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalCategories }}</div>\n <div class=\"metric-label\">Categories</div>\n <div class=\"metric-breakdown\">\n <span>Organized structure</span>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card warning clickable\" (click)=\"onAIGeneratedClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-robot\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.aiGeneratedActions }}</div>\n <div class=\"metric-label\">AI Generated</div>\n <div class=\"metric-breakdown\">\n <span class=\"custom\">{{ metrics.customActions }} Custom</span>\n </div>\n </div>\n </div>\n \n <div class=\"metric-card gallery clickable\" (click)=\"onActionGalleryClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-th\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">\n <i class=\"fa-solid fa-sparkles\"></i>\n </div>\n <div class=\"metric-label\">Action Gallery</div>\n <div class=\"metric-breakdown\">\n <span>Visual action browser</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Content Grid -->\n <div class=\"content-grid\">\n <!-- Category Statistics -->\n <div class=\"panel category-stats\">\n <div class=\"panel-header\">\n <h3><i class=\"fa-solid fa-chart-bar\"></i> Category Performance</h3>\n </div>\n <div class=\"panel-content\">\n @if (categoryStats.length > 0) {\n <div class=\"category-list\">\n @for (category of categoryStats; track category.categoryId) {\n <div class=\"category-item\" (click)=\"openCategory(category.categoryId)\">\n <div class=\"category-info\">\n <div class=\"category-name\">{{ category.categoryName }}</div>\n <div class=\"category-metrics\">\n <span class=\"metric\">{{ category.actionCount }} actions</span>\n <span class=\"metric\">{{ category.executionCount }} executions</span>\n <span class=\"metric success-rate\">{{ category.successRate }}% success</span>\n </div>\n </div>\n <div class=\"category-chart\">\n <div class=\"progress-bar\">\n <div class=\"progress-fill\" [style.width.%]=\"category.successRate\"></div>\n </div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-chart-bar\"></i>\n <p>No category statistics available</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Recent Actions -->\n <div class=\"panel recent-actions\">\n <div class=\"panel-header\">\n <h3><i class=\"fa-solid fa-clock\"></i> Recent Actions</h3>\n </div>\n <div class=\"panel-content\">\n @if (recentActions.length > 0) {\n <div class=\"actions-list\">\n @for (action of recentActions; track action.ID) {\n <div class=\"action-item\" (click)=\"openAction(action)\">\n <div class=\"action-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"action-info\">\n <div class=\"action-name\">{{ action.Name }}</div>\n <div class=\"action-description\">{{ action.Description || 'No description' }}</div>\n </div>\n <div class=\"action-status\">\n <span class=\"status-chip\" [attr.data-color]=\"getStatusColor(action.Status)\">\n {{ action.Status }}\n </span>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-cogs\"></i>\n <p>No recent actions found</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Recent Executions -->\n <div class=\"panel recent-executions\">\n <div class=\"panel-header\">\n <h3><i class=\"fa-solid fa-history\"></i> Recent Executions</h3>\n </div>\n <div class=\"panel-content\">\n @if (recentExecutions.length > 0) {\n <div class=\"executions-list\">\n @for (execution of recentExecutions; track execution.ID) {\n <div class=\"execution-item\" [class.expanded]=\"execution.isExpanded\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution)\">\n <div class=\"execution-time\">\n {{ execution.StartedAt | date:'MMM d, HH:mm' }}\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-action\">{{ execution.Action || 'Action ID: ' + execution.ActionID }}</div>\n <div class=\"execution-user\">{{ execution.User || 'User ID: ' + execution.UserID }}</div>\n </div>\n <div class=\"execution-result\">\n <span class=\"status-chip\" [attr.data-color]=\"isExecutionSuccess(execution) ? 'success' : 'error'\">\n {{ execution.ResultCode || 'Unknown' }}\n </span>\n </div>\n <div class=\"execution-expand-icon\">\n <i [class]=\"execution.isExpanded ? 'fa-solid fa-chevron-up' : 'fa-solid fa-chevron-down'\"></i>\n </div>\n </div>\n @if (execution.isExpanded) {\n <div class=\"execution-details\">\n <div class=\"params-section\">\n <h5><i class=\"fa-solid fa-sliders\"></i> Parameters</h5>\n <mj-code-editor \n [ngModel]=\"formatJsonParams(execution.Params)\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 150px; width: 100%;\">\n </mj-code-editor>\n </div>\n <div class=\"execution-actions\">\n <button mjButton\n variant=\"primary\"\n size=\"sm\"\n (click)=\"openExecution(execution)\">\n <i class=\"fa-solid fa-external-link\"></i> Open Details\n </button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-history\"></i>\n <p>No recent executions found</p>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isLoading) {\n <div class=\"loading-overlay\">\n <mj-loading [showText]=\"false\" size=\"medium\"></mj-loading>\n </div>\n }\n</div>\n </mj-page-body>\n</mj-page-layout>", styles: [".actions-overview {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n position: relative; /* Required for scoped loading overlay */\n}\n.actions-overview .metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1.5rem;\n}\n.actions-overview .metrics-grid .metric-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.5rem;\n border-radius: var(--mj-radius-lg);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n transition: all var(--mj-transition-base);\n}\n.actions-overview .metrics-grid .metric-card.clickable {\n cursor: pointer;\n}\n.actions-overview .metrics-grid .metric-card.clickable:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-md);\n}\n.actions-overview .metrics-grid .metric-card .metric-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xl);\n}\n.actions-overview .metrics-grid .metric-card .metric-icon i {\n color: var(--mj-text-inverse);\n}\n.actions-overview .metrics-grid .metric-card .metric-content {\n flex: 1;\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-value {\n font-size: 1.75rem;\n font-weight: var(--mj-font-bold);\n line-height: var(--mj-leading-none);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-label {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n font-size: var(--mj-text-xs);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span {\n color: var(--mj-text-muted);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.active {\n color: var(--mj-status-success);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.pending {\n color: var(--mj-status-warning);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.disabled {\n color: var(--mj-status-error);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.recent {\n color: var(--mj-status-info);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.success-rate {\n color: var(--mj-status-success);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.custom {\n color: var(--mj-brand-primary);\n}\n.actions-overview .metrics-grid .metric-card.primary .metric-icon {\n background: var(--mj-brand-primary);\n}\n.actions-overview .metrics-grid .metric-card.success .metric-icon {\n background: var(--mj-status-success);\n}\n.actions-overview .metrics-grid .metric-card.info .metric-icon {\n background: var(--mj-status-info);\n}\n.actions-overview .metrics-grid .metric-card.warning .metric-icon {\n background: var(--mj-status-warning);\n}\n.actions-overview .metrics-grid .metric-card.gallery .metric-icon {\n background: var(--mj-brand-primary);\n}\n.actions-overview .content-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto;\n gap: 1.5rem;\n flex: 1;\n}\n.actions-overview .content-grid .panel {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n overflow: hidden;\n box-shadow: var(--mj-shadow-sm);\n}\n.actions-overview .content-grid .panel .panel-header {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-elevated);\n border-bottom: 1px solid var(--mj-border-default);\n}\n.actions-overview .content-grid .panel .panel-header h3 {\n margin: 0;\n font-size: var(--mj-text-base);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.actions-overview .content-grid .panel .panel-header h3 i {\n color: var(--mj-brand-primary);\n}\n.actions-overview .content-grid .panel .panel-content {\n padding: 1.5rem;\n height: calc(100% - 60px);\n overflow-y: auto;\n}\n.actions-overview .content-grid .category-stats .category-list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info {\n flex: 1;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info .category-name {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info .category-metrics {\n display: flex;\n gap: 1rem;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info .category-metrics .metric.success-rate {\n color: var(--mj-status-success);\n font-weight: var(--mj-font-semibold);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-chart {\n width: 60px;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-chart .progress-bar {\n height: 6px;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n overflow: hidden;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-chart .progress-bar .progress-fill {\n height: 100%;\n background: var(--mj-status-success);\n transition: width var(--mj-transition-slow);\n}\n.actions-overview .content-grid .recent-actions .actions-list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: var(--mj-radius-sm);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-icon i {\n color: var(--mj-brand-primary);\n font-size: var(--mj-text-base);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-info {\n flex: 1;\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-info .action-name {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-info .action-description {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: var(--mj-leading-snug);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-status {\n flex-shrink: 0;\n}\n.actions-overview .content-grid .recent-executions {\n grid-column: 1/-1;\n}\n.actions-overview .content-grid .recent-executions .executions-list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n transition: all var(--mj-transition-base);\n margin-bottom: 0.5rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item.expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n cursor: pointer;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header:hover {\n background: var(--mj-bg-surface-hover);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-time {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n font-weight: var(--mj-font-semibold);\n min-width: 80px;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-info {\n flex: 1;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-info .execution-action {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-info .execution-user {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-result {\n flex-shrink: 0;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-expand-icon {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n margin-left: 0.5rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details {\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .params-section {\n margin-bottom: 1rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .params-section h5 {\n margin: 0 0 0.5rem 0;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .params-section h5 i {\n font-size: var(--mj-text-xs);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .execution-actions {\n display: flex;\n justify-content: flex-end;\n}\n.actions-overview .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.actions-overview .empty-state i {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.actions-overview .empty-state p {\n margin: 0;\n font-size: var(--mj-text-sm);\n}\n.actions-overview .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .actions-overview .content-grid {\n grid-template-columns: 1fr;\n }\n .actions-overview .content-grid .recent-executions {\n grid-column: 1;\n }\n}\n@media (max-width: 768px) {\n .actions-overview {\n padding: 1rem;\n gap: 1rem;\n }\n .actions-overview .metrics-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n .actions-overview .overview-header .filters-row {\n flex-direction: column;\n align-items: stretch;\n }\n .actions-overview .overview-header .filters-row .search-container,\n .actions-overview .overview-header .filters-row .filter-container {\n min-width: unset;\n }\n}\n"] }]
|
|
669
|
+
args: [{ standalone: false, selector: 'mj-actions-overview', template: "<mj-page-layout>\n <mj-page-header\n Title=\"Actions Overview\"\n Icon=\"fa-solid fa-bolt\"\n Subtitle=\"Health and activity for all configured actions\">\n <!-- [meta] intentionally omitted \u2014 chrome slot discipline audit Task B.\n totalActions was a single inventory count; the body's KPI cards\n surface this and other metrics in their proper place. -->\n <!-- No [actions] \u2014 this page has no primary CTA; the control bar lives in [toolbar] per \u00A73. -->\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search actions...\"\n [Value]=\"searchTerm$.value\"\n (ValueChange)=\"onSearchChange($event)\">\n </mj-page-search>\n <mj-filter-popover\n [ActiveCount]=\"ActiveFilterCount\"\n [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"resetFilters()\">\n <mj-filter-panel\n [Fields]=\"FilterFields\"\n [Values]=\"FilterValues\"\n (ValuesChange)=\"onFilterValuesChange($event)\"\n (Reset)=\"resetFilters()\">\n </mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <div class=\"actions-overview\" >\n\n <!-- Metrics Cards -->\n <div class=\"metrics-grid\">\n <div class=\"metric-card primary clickable\" (click)=\"onTotalActionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-cogs\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalActions }}</div>\n <div class=\"metric-label\">Total Actions</div>\n <div class=\"metric-breakdown\">\n <span class=\"active\">{{ metrics.activeActions }} Active</span>\n <span class=\"pending\">{{ metrics.pendingActions }} Pending</span>\n <span class=\"disabled\">{{ metrics.disabledActions }} Disabled</span>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card success clickable\" (click)=\"onExecutionsClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-play-circle\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalExecutions }}</div>\n <div class=\"metric-label\">Total Executions</div>\n <div class=\"metric-breakdown\">\n <span class=\"recent\">{{ metrics.recentExecutions }} in last 24h</span>\n <span class=\"success-rate\">{{ metrics.successRate }}% success rate</span>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card info clickable\" (click)=\"onCategoriesClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-sitemap\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.totalCategories }}</div>\n <div class=\"metric-label\">Categories</div>\n <div class=\"metric-breakdown\">\n <span>Organized structure</span>\n </div>\n </div>\n </div>\n\n <div class=\"metric-card warning clickable\" (click)=\"onAIGeneratedClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-robot\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">{{ metrics.aiGeneratedActions }}</div>\n <div class=\"metric-label\">AI Generated</div>\n <div class=\"metric-breakdown\">\n <span class=\"custom\">{{ metrics.customActions }} Custom</span>\n </div>\n </div>\n </div>\n \n <div class=\"metric-card gallery clickable\" (click)=\"onActionGalleryClick()\">\n <div class=\"metric-icon\">\n <i class=\"fa-solid fa-th\"></i>\n </div>\n <div class=\"metric-content\">\n <div class=\"metric-value\">\n <i class=\"fa-solid fa-sparkles\"></i>\n </div>\n <div class=\"metric-label\">Action Gallery</div>\n <div class=\"metric-breakdown\">\n <span>Visual action browser</span>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Content Grid -->\n <div class=\"content-grid\">\n <!-- Category Statistics -->\n <div class=\"panel category-stats\">\n <div class=\"panel-header\">\n <h3><i class=\"fa-solid fa-chart-bar\"></i> Category Performance</h3>\n </div>\n <div class=\"panel-content\">\n @if (categoryStats.length > 0) {\n <div class=\"category-list\">\n @for (category of categoryStats; track category.categoryId) {\n <div class=\"category-item\" (click)=\"openCategory(category.categoryId)\">\n <div class=\"category-info\">\n <div class=\"category-name\">{{ category.categoryName }}</div>\n <div class=\"category-metrics\">\n <span class=\"metric\">{{ category.actionCount }} actions</span>\n <span class=\"metric\">{{ category.executionCount }} executions</span>\n <span class=\"metric success-rate\">{{ category.successRate }}% success</span>\n </div>\n </div>\n <div class=\"category-chart\">\n <div class=\"progress-bar\">\n <div class=\"progress-fill\" [style.width.%]=\"category.successRate\"></div>\n </div>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-chart-bar\"></i>\n <p>No category statistics available</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Recent Actions -->\n <div class=\"panel recent-actions\">\n <div class=\"panel-header\">\n <h3><i class=\"fa-solid fa-clock\"></i> Recent Actions</h3>\n </div>\n <div class=\"panel-content\">\n @if (recentActions.length > 0) {\n <div class=\"actions-list\">\n @for (action of recentActions; track action.ID) {\n <div class=\"action-item\" (click)=\"openAction(action)\">\n <div class=\"action-icon\">\n <i [class]=\"getActionIcon(action)\"></i>\n </div>\n <div class=\"action-info\">\n <div class=\"action-name\">{{ action.Name }}</div>\n <div class=\"action-description\">{{ action.Description || 'No description' }}</div>\n </div>\n <div class=\"action-status\">\n <span class=\"status-chip\" [attr.data-color]=\"getStatusColor(action.Status)\">\n {{ action.Status }}\n </span>\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-cogs\"></i>\n <p>No recent actions found</p>\n </div>\n }\n </div>\n </div>\n\n <!-- Recent Executions -->\n <div class=\"panel recent-executions\">\n <div class=\"panel-header\">\n <h3><i class=\"fa-solid fa-history\"></i> Recent Executions</h3>\n </div>\n <div class=\"panel-content\">\n @if (recentExecutions.length > 0) {\n <div class=\"executions-list\">\n @for (execution of recentExecutions; track execution.ID) {\n <div class=\"execution-item\" [class.expanded]=\"execution.isExpanded\">\n <div class=\"execution-header\" (click)=\"toggleExecutionExpanded(execution)\">\n <div class=\"execution-time\">\n {{ execution.StartedAt | date:'MMM d, HH:mm' }}\n </div>\n <div class=\"execution-info\">\n <div class=\"execution-action\">{{ execution.Action || 'Action ID: ' + execution.ActionID }}</div>\n <div class=\"execution-user\">{{ execution.User || 'User ID: ' + execution.UserID }}</div>\n </div>\n <div class=\"execution-result\">\n <span class=\"status-chip\" [attr.data-color]=\"isExecutionSuccess(execution) ? 'success' : 'error'\">\n {{ execution.ResultCode || 'Unknown' }}\n </span>\n </div>\n <div class=\"execution-expand-icon\">\n <i [class]=\"execution.isExpanded ? 'fa-solid fa-chevron-up' : 'fa-solid fa-chevron-down'\"></i>\n </div>\n </div>\n @if (execution.isExpanded) {\n <div class=\"execution-details\">\n <div class=\"params-section\">\n <h5><i class=\"fa-solid fa-sliders\"></i> Parameters</h5>\n <mj-code-editor \n [ngModel]=\"formatJsonParams(execution.Params)\"\n [readonly]=\"true\"\n [language]=\"'json'\"\n [lineWrapping]=\"true\"\n style=\"height: 150px; width: 100%;\">\n </mj-code-editor>\n </div>\n <div class=\"execution-actions\">\n <button mjButton\n variant=\"primary\"\n size=\"sm\"\n (click)=\"openExecution(execution)\">\n <i class=\"fa-solid fa-external-link\"></i> Open Details\n </button>\n </div>\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-history\"></i>\n <p>No recent executions found</p>\n </div>\n }\n </div>\n </div>\n </div>\n\n @if (isLoading) {\n <div class=\"loading-overlay\">\n <mj-loading [showText]=\"false\" size=\"medium\"></mj-loading>\n </div>\n }\n</div>\n </mj-page-body>\n</mj-page-layout>", styles: [".actions-overview {\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n position: relative; /* Required for scoped loading overlay */\n}\n.actions-overview .metrics-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n gap: 1.5rem;\n}\n.actions-overview .metrics-grid .metric-card {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1.5rem;\n border-radius: var(--mj-radius-lg);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n box-shadow: var(--mj-shadow-sm);\n transition: all var(--mj-transition-base);\n}\n.actions-overview .metrics-grid .metric-card.clickable {\n cursor: pointer;\n}\n.actions-overview .metrics-grid .metric-card.clickable:hover {\n transform: translateY(-2px);\n box-shadow: var(--mj-shadow-md);\n}\n.actions-overview .metrics-grid .metric-card .metric-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3rem;\n height: 3rem;\n border-radius: var(--mj-radius-md);\n font-size: var(--mj-text-xl);\n}\n.actions-overview .metrics-grid .metric-card .metric-icon i {\n color: var(--mj-text-inverse);\n}\n.actions-overview .metrics-grid .metric-card .metric-content {\n flex: 1;\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-value {\n font-size: 1.75rem;\n font-weight: var(--mj-font-bold);\n line-height: var(--mj-leading-none);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-label {\n font-size: var(--mj-text-sm);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-muted);\n margin-bottom: 0.5rem;\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n font-size: var(--mj-text-xs);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span {\n color: var(--mj-text-muted);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.active {\n color: var(--mj-status-success);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.pending {\n color: var(--mj-status-warning);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.disabled {\n color: var(--mj-status-error);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.recent {\n color: var(--mj-status-info);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.success-rate {\n color: var(--mj-status-success);\n}\n.actions-overview .metrics-grid .metric-card .metric-content .metric-breakdown span.custom {\n color: var(--mj-brand-primary);\n}\n.actions-overview .metrics-grid .metric-card.primary .metric-icon {\n background: var(--mj-brand-primary);\n}\n.actions-overview .metrics-grid .metric-card.success .metric-icon {\n background: var(--mj-status-success);\n}\n.actions-overview .metrics-grid .metric-card.info .metric-icon {\n background: var(--mj-status-info);\n}\n.actions-overview .metrics-grid .metric-card.warning .metric-icon {\n background: var(--mj-status-warning);\n}\n.actions-overview .metrics-grid .metric-card.gallery .metric-icon {\n background: var(--mj-brand-primary);\n}\n.actions-overview .content-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: auto auto;\n gap: 1.5rem;\n flex: 1;\n}\n.actions-overview .content-grid .panel {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-lg);\n overflow: hidden;\n box-shadow: var(--mj-shadow-sm);\n}\n.actions-overview .content-grid .panel .panel-header {\n padding: 1rem 1.5rem;\n background: var(--mj-bg-surface-elevated);\n border-bottom: 1px solid var(--mj-border-default);\n}\n.actions-overview .content-grid .panel .panel-header h3 {\n margin: 0;\n font-size: var(--mj-text-base);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.actions-overview .content-grid .panel .panel-header h3 i {\n color: var(--mj-brand-primary);\n}\n.actions-overview .content-grid .panel .panel-content {\n padding: 1.5rem;\n height: calc(100% - 60px);\n overflow-y: auto;\n}\n.actions-overview .content-grid .category-stats .category-list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info {\n flex: 1;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info .category-name {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info .category-metrics {\n display: flex;\n gap: 1rem;\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-info .category-metrics .metric.success-rate {\n color: var(--mj-status-success);\n font-weight: var(--mj-font-semibold);\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-chart {\n width: 60px;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-chart .progress-bar {\n height: 6px;\n background: var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n overflow: hidden;\n}\n.actions-overview .content-grid .category-stats .category-list .category-item .category-chart .progress-bar .progress-fill {\n height: 100%;\n background: var(--mj-status-success);\n transition: width var(--mj-transition-slow);\n}\n.actions-overview .content-grid .recent-actions .actions-list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n cursor: pointer;\n transition: all var(--mj-transition-base);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item:hover {\n background: var(--mj-bg-surface-hover);\n border-color: var(--mj-brand-primary);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: var(--mj-radius-sm);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-icon i {\n color: var(--mj-brand-primary);\n font-size: var(--mj-text-base);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-info {\n flex: 1;\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-info .action-name {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n color: var(--mj-text-primary);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-info .action-description {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: var(--mj-leading-snug);\n}\n.actions-overview .content-grid .recent-actions .actions-list .action-item .action-status {\n flex-shrink: 0;\n}\n.actions-overview .content-grid .recent-executions {\n grid-column: 1/-1;\n}\n.actions-overview .content-grid .recent-executions .executions-list {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n transition: all var(--mj-transition-base);\n margin-bottom: 0.5rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item.expanded {\n border-color: var(--mj-brand-primary);\n box-shadow: var(--mj-shadow-sm);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n cursor: pointer;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header:hover {\n background: var(--mj-bg-surface-hover);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-time {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n font-weight: var(--mj-font-semibold);\n min-width: 80px;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-info {\n flex: 1;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-info .execution-action {\n font-weight: var(--mj-font-semibold);\n margin-bottom: 0.25rem;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-primary);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-info .execution-user {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-result {\n flex-shrink: 0;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-header .execution-expand-icon {\n color: var(--mj-text-muted);\n font-size: var(--mj-text-xs);\n margin-left: 0.5rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details {\n padding: 1rem;\n background: var(--mj-bg-surface-card);\n border-top: 1px solid var(--mj-border-default);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .params-section {\n margin-bottom: 1rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .params-section h5 {\n margin: 0 0 0.5rem 0;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-muted);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .params-section h5 i {\n font-size: var(--mj-text-xs);\n}\n.actions-overview .content-grid .recent-executions .executions-list .execution-item .execution-details .execution-actions {\n display: flex;\n justify-content: flex-end;\n}\n.actions-overview .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n text-align: center;\n color: var(--mj-text-muted);\n}\n.actions-overview .empty-state i {\n font-size: 2.5rem;\n margin-bottom: 1rem;\n opacity: 0.5;\n}\n.actions-overview .empty-state p {\n margin: 0;\n font-size: var(--mj-text-sm);\n}\n.actions-overview .loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: color-mix(in srgb, var(--mj-bg-surface) 80%, transparent);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n@media (max-width: 1200px) {\n .actions-overview .content-grid {\n grid-template-columns: 1fr;\n }\n .actions-overview .content-grid .recent-executions {\n grid-column: 1;\n }\n}\n@media (max-width: 768px) {\n .actions-overview {\n padding: 1rem;\n gap: 1rem;\n }\n .actions-overview .metrics-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n }\n .actions-overview .overview-header .filters-row {\n flex-direction: column;\n align-items: stretch;\n }\n .actions-overview .overview-header .filters-row .search-container,\n .actions-overview .overview-header .filters-row .filter-container {\n min-width: unset;\n }\n}\n"] }]
|
|
670
670
|
}], () => [{ type: i0.ChangeDetectorRef }], null); })();
|
|
671
671
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionsOverviewComponent, { className: "ActionsOverviewComponent", filePath: "src/Actions/components/actions-overview.component.ts", lineNumber: 44 }); })();
|
|
672
672
|
//# sourceMappingURL=actions-overview.component.js.map
|