@memberjunction/ng-dashboards 5.38.0 → 5.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -7
- package/dist/AI/components/agents/agent-configuration.component.js +199 -198
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +20 -17
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +15 -0
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +166 -58
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +2 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +1 -0
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +55 -36
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts +9 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +158 -117
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts +1 -0
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +22 -8
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +217 -860
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +1717 -7802
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts +56 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js +423 -0
- package/dist/AI/components/autotagging/components/classify-item-drilldown.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts +70 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +308 -0
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts +29 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +186 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts +69 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js +278 -0
- package/dist/AI/components/autotagging/components/classify-overview-analytics.component.js.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts +73 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js +393 -0
- package/dist/AI/components/autotagging/components/classify-seed-taxonomy.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts +122 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js +908 -0
- package/dist/AI/components/autotagging/dialogs/classify-setup-wizard.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts +87 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js +475 -0
- package/dist/AI/components/autotagging/dialogs/dry-run-preview.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts +29 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js +208 -0
- package/dist/AI/components/autotagging/dialogs/item-detail.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts +21 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js +70 -0
- package/dist/AI/components/autotagging/dialogs/no-content-type-warning.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts +333 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +2125 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts +61 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js +78 -0
- package/dist/AI/components/autotagging/shared/classify.dryrun.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts +58 -0
- package/dist/AI/components/autotagging/shared/classify.format.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.format.js +260 -0
- package/dist/AI/components/autotagging/shared/classify.format.js.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts +319 -0
- package/dist/AI/components/autotagging/shared/classify.types.d.ts.map +1 -0
- package/dist/AI/components/autotagging/shared/classify.types.js +6 -0
- package/dist/AI/components/autotagging/shared/classify.types.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts +103 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js +571 -0
- package/dist/AI/components/autotagging/tabs/health-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts +77 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js +519 -0
- package/dist/AI/components/autotagging/tabs/history-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts +107 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js +719 -0
- package/dist/AI/components/autotagging/tabs/inbox-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts +131 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js +813 -0
- package/dist/AI/components/autotagging/tabs/pipeline-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts +177 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1465 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts +78 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js +492 -0
- package/dist/AI/components/autotagging/tabs/tags-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts +397 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js +3490 -0
- package/dist/AI/components/autotagging/tabs/taxonomy-tab.component.js.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts +56 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.d.ts.map +1 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js +271 -0
- package/dist/AI/components/autotagging/tabs/types-tab.component.js.map +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +3 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +306 -290
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +1 -1
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +209 -208
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +130 -128
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +61 -61
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +17 -17
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +578 -538
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +3 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +331 -303
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +14 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/AI/services/cache-metrics.d.ts +50 -0
- package/dist/AI/services/cache-metrics.d.ts.map +1 -0
- package/dist/AI/services/cache-metrics.js +43 -0
- package/dist/AI/services/cache-metrics.js.map +1 -0
- package/dist/APIKeys/api-applications-panel.component.js +2 -2
- package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
- package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
- package/dist/APIKeys/api-keys-resource.component.js +132 -131
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +141 -141
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +15 -15
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +0 -5
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +139 -212
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +2 -2
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +2 -2
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +2 -2
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +2 -2
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +54 -49
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +6 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +72 -50
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +103 -102
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +52 -51
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +39 -38
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +6 -0
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +92 -89
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +136 -135
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +155 -152
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +119 -118
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +129 -128
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +107 -106
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +31 -340
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +468 -1958
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-resource.component.js +10 -0
- package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +115 -114
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +5 -6
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +4 -5
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +18 -17
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -85
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +155 -150
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +245 -243
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +18 -17
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -19
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.js +2 -2
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +236 -229
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +390 -389
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +14 -11
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts +27 -2
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +244 -119
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +293 -291
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +62 -61
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts +65 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js +176 -0
- package/dist/KnowledgeHub/components/visualize/record-drilldown/record-drilldown.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts +81 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js +308 -0
- package/dist/KnowledgeHub/components/visualize/tag-cloud/tag-cloud.component.js.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts +85 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.d.ts.map +1 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js +362 -0
- package/dist/KnowledgeHub/components/visualize/visualize-resource.component.js.map +1 -0
- package/dist/KnowledgeHub/index.d.ts +3 -0
- package/dist/KnowledgeHub/index.d.ts.map +1 -1
- package/dist/KnowledgeHub/index.js +3 -0
- package/dist/KnowledgeHub/index.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +6 -2
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +525 -566
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +135 -134
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +199 -198
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +2 -2
- package/dist/MCP/mcp-dashboard.component.js +443 -438
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +146 -147
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +76 -75
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +97 -96
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +24 -22
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +2 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +1 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +14 -4
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +436 -427
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +1 -1
- package/dist/Testing/components/testing-runs.component.js +116 -115
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +6 -7
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +173 -172
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.d.ts +6 -0
- package/dist/VersionHistory/components/restore-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +116 -92
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +57 -35
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +80 -1
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +1 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +7 -1
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/data-explorer-dashboards.module.d.ts +12 -14
- package/dist/data-explorer-dashboards.module.d.ts.map +1 -1
- package/dist/data-explorer-dashboards.module.js +5 -14
- package/dist/data-explorer-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +4 -5
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +7 -5
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +57 -54
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts +0 -79
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js +0 -195
- package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +0 -226
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +0 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +0 -861
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +0 -1
|
@@ -27,19 +27,19 @@ import * as i10 from "./new-action-panel.component";
|
|
|
27
27
|
const _forTrack0 = ($index, $item) => $item.value;
|
|
28
28
|
const _forTrack1 = ($index, $item) => $item.field;
|
|
29
29
|
const _forTrack2 = ($index, $item) => $item.ID;
|
|
30
|
-
function
|
|
30
|
+
function ActionExplorerComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
31
31
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
32
|
-
i0.ɵɵelementStart(0, "button",
|
|
33
|
-
i0.ɵɵlistener("click", function
|
|
32
|
+
i0.ɵɵelementStart(0, "button", 29);
|
|
33
|
+
i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.StateService.setStatusFilter([])); });
|
|
34
34
|
i0.ɵɵtext(1, "Clear");
|
|
35
35
|
i0.ɵɵelementEnd();
|
|
36
36
|
} }
|
|
37
|
-
function
|
|
37
|
+
function ActionExplorerComponent_For_20_Template(rf, ctx) { if (rf & 1) {
|
|
38
38
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
39
|
-
i0.ɵɵelementStart(0, "label",
|
|
40
|
-
i0.ɵɵlistener("change", function
|
|
39
|
+
i0.ɵɵelementStart(0, "label", 30)(1, "input", 31);
|
|
40
|
+
i0.ɵɵlistener("change", function ActionExplorerComponent_For_20_Template_input_change_1_listener() { const status_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleStatus(status_r4.value)); });
|
|
41
41
|
i0.ɵɵelementEnd();
|
|
42
|
-
i0.ɵɵelement(2, "span",
|
|
42
|
+
i0.ɵɵelement(2, "span", 32);
|
|
43
43
|
i0.ɵɵtext(3);
|
|
44
44
|
i0.ɵɵelementEnd();
|
|
45
45
|
} if (rf & 2) {
|
|
@@ -53,17 +53,17 @@ function ActionExplorerComponent_For_13_Template(rf, ctx) { if (rf & 1) {
|
|
|
53
53
|
i0.ɵɵadvance();
|
|
54
54
|
i0.ɵɵtextInterpolate1(" ", status_r4.label, " ");
|
|
55
55
|
} }
|
|
56
|
-
function
|
|
56
|
+
function ActionExplorerComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
57
57
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
58
|
-
i0.ɵɵelementStart(0, "button",
|
|
59
|
-
i0.ɵɵlistener("click", function
|
|
58
|
+
i0.ɵɵelementStart(0, "button", 29);
|
|
59
|
+
i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_25_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.StateService.setTypeFilter([])); });
|
|
60
60
|
i0.ɵɵtext(1, "Clear");
|
|
61
61
|
i0.ɵɵelementEnd();
|
|
62
62
|
} }
|
|
63
|
-
function
|
|
63
|
+
function ActionExplorerComponent_For_28_Template(rf, ctx) { if (rf & 1) {
|
|
64
64
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
65
|
-
i0.ɵɵelementStart(0, "label",
|
|
66
|
-
i0.ɵɵlistener("change", function
|
|
65
|
+
i0.ɵɵelementStart(0, "label", 30)(1, "input", 31);
|
|
66
|
+
i0.ɵɵlistener("change", function ActionExplorerComponent_For_28_Template_input_change_1_listener() { const type_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleType(type_r7.value)); });
|
|
67
67
|
i0.ɵɵelementEnd();
|
|
68
68
|
i0.ɵɵelement(2, "i");
|
|
69
69
|
i0.ɵɵtext(3);
|
|
@@ -79,23 +79,23 @@ function ActionExplorerComponent_For_21_Template(rf, ctx) { if (rf & 1) {
|
|
|
79
79
|
i0.ɵɵadvance();
|
|
80
80
|
i0.ɵɵtextInterpolate1(" ", type_r7.label, " ");
|
|
81
81
|
} }
|
|
82
|
-
function
|
|
83
|
-
i0.ɵɵelement(0, "i",
|
|
82
|
+
function ActionExplorerComponent_For_35_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
83
|
+
i0.ɵɵelement(0, "i", 35);
|
|
84
84
|
} if (rf & 2) {
|
|
85
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
85
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
86
86
|
i0.ɵɵclassMap(ctx_r1.SortDirection === "asc" ? "fa-solid fa-arrow-up" : "fa-solid fa-arrow-down");
|
|
87
87
|
} }
|
|
88
|
-
function
|
|
88
|
+
function ActionExplorerComponent_For_35_Template(rf, ctx) { if (rf & 1) {
|
|
89
89
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
90
|
-
i0.ɵɵelementStart(0, "button",
|
|
91
|
-
i0.ɵɵlistener("click", function
|
|
90
|
+
i0.ɵɵelementStart(0, "button", 33);
|
|
91
|
+
i0.ɵɵlistener("click", function ActionExplorerComponent_For_35_Template_button_click_0_listener() { const option_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setSortField(option_r9.field)); });
|
|
92
92
|
i0.ɵɵelement(1, "i");
|
|
93
93
|
i0.ɵɵtext(2);
|
|
94
|
-
i0.ɵɵconditionalCreate(3,
|
|
94
|
+
i0.ɵɵconditionalCreate(3, ActionExplorerComponent_For_35_Conditional_3_Template, 1, 2, "i", 34);
|
|
95
95
|
i0.ɵɵelementEnd();
|
|
96
96
|
} if (rf & 2) {
|
|
97
97
|
const option_r9 = ctx.$implicit;
|
|
98
|
-
const ctx_r1 = i0.ɵɵnextContext(
|
|
98
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
99
99
|
i0.ɵɵclassProp("selected", ctx_r1.SortField === option_r9.field);
|
|
100
100
|
i0.ɵɵadvance();
|
|
101
101
|
i0.ɵɵclassMap(option_r9.icon);
|
|
@@ -104,177 +104,132 @@ function ActionExplorerComponent_Conditional_27_For_2_Template(rf, ctx) { if (rf
|
|
|
104
104
|
i0.ɵɵadvance();
|
|
105
105
|
i0.ɵɵconditional(ctx_r1.SortField === option_r9.field ? 3 : -1);
|
|
106
106
|
} }
|
|
107
|
-
function
|
|
108
|
-
i0.ɵɵelementStart(0, "div",
|
|
109
|
-
i0.ɵɵ
|
|
107
|
+
function ActionExplorerComponent_Conditional_39_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
109
|
+
i0.ɵɵelement(1, "mj-loading", 36);
|
|
110
110
|
i0.ɵɵelementEnd();
|
|
111
|
-
} if (rf & 2) {
|
|
112
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
113
|
-
i0.ɵɵadvance();
|
|
114
|
-
i0.ɵɵrepeater(ctx_r1.SortOptions);
|
|
115
111
|
} }
|
|
116
|
-
function
|
|
112
|
+
function ActionExplorerComponent_Conditional_44_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
117
113
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
118
|
-
i0.ɵɵ
|
|
119
|
-
i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_35_For_2_Template_span_click_0_listener() { const status_r11 = i0.ɵɵrestoreView(_r10).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleStatus(status_r11)); });
|
|
120
|
-
i0.ɵɵtext(1);
|
|
121
|
-
i0.ɵɵelement(2, "i", 41);
|
|
122
|
-
i0.ɵɵelementEnd();
|
|
123
|
-
} if (rf & 2) {
|
|
124
|
-
const status_r11 = ctx.$implicit;
|
|
125
|
-
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵtextInterpolate1(" Status: ", status_r11, " ");
|
|
127
|
-
} }
|
|
128
|
-
function ActionExplorerComponent_Conditional_35_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
129
|
-
const _r12 = i0.ɵɵgetCurrentView();
|
|
130
|
-
i0.ɵɵelementStart(0, "span", 40);
|
|
131
|
-
i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_35_For_4_Template_span_click_0_listener() { const type_r13 = i0.ɵɵrestoreView(_r12).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleType(type_r13)); });
|
|
132
|
-
i0.ɵɵtext(1);
|
|
133
|
-
i0.ɵɵelement(2, "i", 41);
|
|
134
|
-
i0.ɵɵelementEnd();
|
|
135
|
-
} if (rf & 2) {
|
|
136
|
-
const type_r13 = ctx.$implicit;
|
|
137
|
-
i0.ɵɵadvance();
|
|
138
|
-
i0.ɵɵtextInterpolate1(" Type: ", type_r13 === "Generated" ? "AI Generated" : type_r13, " ");
|
|
139
|
-
} }
|
|
140
|
-
function ActionExplorerComponent_Conditional_35_Template(rf, ctx) { if (rf & 1) {
|
|
141
|
-
i0.ɵɵelementStart(0, "div", 19);
|
|
142
|
-
i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_35_For_2_Template, 3, 1, "span", 39, i0.ɵɵrepeaterTrackByIdentity);
|
|
143
|
-
i0.ɵɵrepeaterCreate(3, ActionExplorerComponent_Conditional_35_For_4_Template, 3, 1, "span", 39, i0.ɵɵrepeaterTrackByIdentity);
|
|
144
|
-
i0.ɵɵelementEnd();
|
|
145
|
-
} if (rf & 2) {
|
|
146
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
147
|
-
i0.ɵɵadvance();
|
|
148
|
-
i0.ɵɵrepeater(ctx_r1.Filters.statuses);
|
|
149
|
-
i0.ɵɵadvance(2);
|
|
150
|
-
i0.ɵɵrepeater(ctx_r1.Filters.types);
|
|
151
|
-
} }
|
|
152
|
-
function ActionExplorerComponent_Conditional_38_Template(rf, ctx) { if (rf & 1) {
|
|
153
|
-
i0.ɵɵelementStart(0, "div", 22);
|
|
154
|
-
i0.ɵɵelement(1, "mj-loading", 42);
|
|
155
|
-
i0.ɵɵelementEnd();
|
|
156
|
-
} }
|
|
157
|
-
function ActionExplorerComponent_Conditional_43_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
158
|
-
const _r14 = i0.ɵɵgetCurrentView();
|
|
159
|
-
i0.ɵɵelement(0, "i", 43);
|
|
114
|
+
i0.ɵɵelement(0, "i", 37);
|
|
160
115
|
i0.ɵɵelementStart(1, "h3");
|
|
161
116
|
i0.ɵɵtext(2, "No actions match your filters");
|
|
162
117
|
i0.ɵɵelementEnd();
|
|
163
118
|
i0.ɵɵelementStart(3, "p");
|
|
164
119
|
i0.ɵɵtext(4, "Try adjusting your search or filter criteria");
|
|
165
120
|
i0.ɵɵelementEnd();
|
|
166
|
-
i0.ɵɵelementStart(5, "button",
|
|
167
|
-
i0.ɵɵlistener("click", function
|
|
168
|
-
i0.ɵɵelement(6, "i",
|
|
121
|
+
i0.ɵɵelementStart(5, "button", 38);
|
|
122
|
+
i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_44_Conditional_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.StateService.clearFilters(); return i0.ɵɵresetView(ctx_r1.StateService.setSelectedCategoryId("all")); });
|
|
123
|
+
i0.ɵɵelement(6, "i", 39);
|
|
169
124
|
i0.ɵɵtext(7, " Clear All Filters ");
|
|
170
125
|
i0.ɵɵelementEnd();
|
|
171
126
|
} }
|
|
172
|
-
function
|
|
173
|
-
const
|
|
174
|
-
i0.ɵɵelement(0, "i",
|
|
127
|
+
function ActionExplorerComponent_Conditional_44_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
129
|
+
i0.ɵɵelement(0, "i", 40);
|
|
175
130
|
i0.ɵɵelementStart(1, "h3");
|
|
176
131
|
i0.ɵɵtext(2, "No actions yet");
|
|
177
132
|
i0.ɵɵelementEnd();
|
|
178
133
|
i0.ɵɵelementStart(3, "p");
|
|
179
134
|
i0.ɵɵtext(4, "Create your first action to get started");
|
|
180
135
|
i0.ɵɵelementEnd();
|
|
181
|
-
i0.ɵɵelementStart(5, "button",
|
|
182
|
-
i0.ɵɵlistener("click", function
|
|
183
|
-
i0.ɵɵelement(6, "i",
|
|
136
|
+
i0.ɵɵelementStart(5, "button", 41);
|
|
137
|
+
i0.ɵɵlistener("click", function ActionExplorerComponent_Conditional_44_Conditional_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onNewAction()); });
|
|
138
|
+
i0.ɵɵelement(6, "i", 6);
|
|
184
139
|
i0.ɵɵtext(7, " Create Action ");
|
|
185
140
|
i0.ɵɵelementEnd();
|
|
186
141
|
} }
|
|
187
|
-
function
|
|
188
|
-
i0.ɵɵelementStart(0, "div",
|
|
189
|
-
i0.ɵɵconditionalCreate(1,
|
|
142
|
+
function ActionExplorerComponent_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
143
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
144
|
+
i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_44_Conditional_1_Template, 8, 0)(2, ActionExplorerComponent_Conditional_44_Conditional_2_Template, 8, 0);
|
|
190
145
|
i0.ɵɵelementEnd();
|
|
191
146
|
} if (rf & 2) {
|
|
192
147
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
193
148
|
i0.ɵɵadvance();
|
|
194
149
|
i0.ɵɵconditional(ctx_r1.StateService.hasActiveFilters() || ctx_r1.SelectedCategoryId !== "all" ? 1 : 2);
|
|
195
150
|
} }
|
|
196
|
-
function
|
|
197
|
-
const
|
|
198
|
-
i0.ɵɵelementStart(0, "mj-action-card",
|
|
199
|
-
i0.ɵɵlistener("ActionClick", function
|
|
151
|
+
function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
152
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
153
|
+
i0.ɵɵelementStart(0, "mj-action-card", 46);
|
|
154
|
+
i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template_mj_action_card_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
|
|
200
155
|
i0.ɵɵelementEnd();
|
|
201
156
|
} if (rf & 2) {
|
|
202
|
-
const
|
|
157
|
+
const action_r13 = ctx.$implicit;
|
|
203
158
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
204
|
-
i0.ɵɵproperty("Action",
|
|
159
|
+
i0.ɵɵproperty("Action", action_r13)("Categories", ctx_r1.CategoriesMap);
|
|
205
160
|
} }
|
|
206
|
-
function
|
|
207
|
-
i0.ɵɵelementStart(0, "div",
|
|
208
|
-
i0.ɵɵrepeaterCreate(1,
|
|
161
|
+
function ActionExplorerComponent_Conditional_45_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
+
i0.ɵɵelementStart(0, "div", 42);
|
|
163
|
+
i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_45_Conditional_0_For_2_Template, 1, 2, "mj-action-card", 45, _forTrack2);
|
|
209
164
|
i0.ɵɵelementEnd();
|
|
210
165
|
} if (rf & 2) {
|
|
211
166
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
212
167
|
i0.ɵɵadvance();
|
|
213
168
|
i0.ɵɵrepeater(ctx_r1.FilteredActions);
|
|
214
169
|
} }
|
|
215
|
-
function
|
|
216
|
-
const
|
|
217
|
-
i0.ɵɵelementStart(0, "mj-action-list-item",
|
|
218
|
-
i0.ɵɵlistener("ActionClick", function
|
|
170
|
+
function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template(rf, ctx) { if (rf & 1) {
|
|
171
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
172
|
+
i0.ɵɵelementStart(0, "mj-action-list-item", 57);
|
|
173
|
+
i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
|
|
219
174
|
i0.ɵɵelementEnd();
|
|
220
175
|
} if (rf & 2) {
|
|
221
|
-
const
|
|
176
|
+
const action_r15 = ctx.$implicit;
|
|
222
177
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
223
|
-
i0.ɵɵproperty("Action",
|
|
178
|
+
i0.ɵɵproperty("Action", action_r15)("Categories", ctx_r1.CategoriesMap)("IsCompact", false);
|
|
224
179
|
} }
|
|
225
|
-
function
|
|
226
|
-
i0.ɵɵelementStart(0, "div",
|
|
227
|
-
i0.ɵɵelement(2, "div",
|
|
228
|
-
i0.ɵɵelementStart(3, "div",
|
|
180
|
+
function ActionExplorerComponent_Conditional_45_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
181
|
+
i0.ɵɵelementStart(0, "div", 43)(1, "div", 47);
|
|
182
|
+
i0.ɵɵelement(2, "div", 48);
|
|
183
|
+
i0.ɵɵelementStart(3, "div", 49);
|
|
229
184
|
i0.ɵɵtext(4, "Name");
|
|
230
185
|
i0.ɵɵelementEnd();
|
|
231
|
-
i0.ɵɵelementStart(5, "div",
|
|
186
|
+
i0.ɵɵelementStart(5, "div", 50);
|
|
232
187
|
i0.ɵɵtext(6, "Category");
|
|
233
188
|
i0.ɵɵelementEnd();
|
|
234
|
-
i0.ɵɵelementStart(7, "div",
|
|
189
|
+
i0.ɵɵelementStart(7, "div", 51);
|
|
235
190
|
i0.ɵɵtext(8, "Status");
|
|
236
191
|
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵelementStart(9, "div",
|
|
192
|
+
i0.ɵɵelementStart(9, "div", 52);
|
|
238
193
|
i0.ɵɵtext(10, "Type");
|
|
239
194
|
i0.ɵɵelementEnd();
|
|
240
|
-
i0.ɵɵelementStart(11, "div",
|
|
195
|
+
i0.ɵɵelementStart(11, "div", 53);
|
|
241
196
|
i0.ɵɵtext(12, "Params");
|
|
242
197
|
i0.ɵɵelementEnd();
|
|
243
|
-
i0.ɵɵelementStart(13, "div",
|
|
198
|
+
i0.ɵɵelementStart(13, "div", 54);
|
|
244
199
|
i0.ɵɵtext(14, "Updated");
|
|
245
200
|
i0.ɵɵelementEnd();
|
|
246
|
-
i0.ɵɵelement(15, "div",
|
|
201
|
+
i0.ɵɵelement(15, "div", 55);
|
|
247
202
|
i0.ɵɵelementEnd();
|
|
248
|
-
i0.ɵɵrepeaterCreate(16,
|
|
203
|
+
i0.ɵɵrepeaterCreate(16, ActionExplorerComponent_Conditional_45_Conditional_1_For_17_Template, 1, 3, "mj-action-list-item", 56, _forTrack2);
|
|
249
204
|
i0.ɵɵelementEnd();
|
|
250
205
|
} if (rf & 2) {
|
|
251
206
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
252
207
|
i0.ɵɵadvance(16);
|
|
253
208
|
i0.ɵɵrepeater(ctx_r1.FilteredActions);
|
|
254
209
|
} }
|
|
255
|
-
function
|
|
256
|
-
const
|
|
257
|
-
i0.ɵɵelementStart(0, "mj-action-list-item",
|
|
258
|
-
i0.ɵɵlistener("ActionClick", function
|
|
210
|
+
function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
211
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
212
|
+
i0.ɵɵelementStart(0, "mj-action-list-item", 57);
|
|
213
|
+
i0.ɵɵlistener("ActionClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_ActionClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionClick($event)); })("EditClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_EditClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionEdit($event)); })("RunClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_RunClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActionRun($event)); })("CategoryClick", function ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template_mj_action_list_item_CategoryClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onCategoryClick($event)); });
|
|
259
214
|
i0.ɵɵelementEnd();
|
|
260
215
|
} if (rf & 2) {
|
|
261
|
-
const
|
|
216
|
+
const action_r17 = ctx.$implicit;
|
|
262
217
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
263
|
-
i0.ɵɵproperty("Action",
|
|
218
|
+
i0.ɵɵproperty("Action", action_r17)("Categories", ctx_r1.CategoriesMap)("IsCompact", true);
|
|
264
219
|
} }
|
|
265
|
-
function
|
|
266
|
-
i0.ɵɵelementStart(0, "div",
|
|
267
|
-
i0.ɵɵrepeaterCreate(1,
|
|
220
|
+
function ActionExplorerComponent_Conditional_45_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
221
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
222
|
+
i0.ɵɵrepeaterCreate(1, ActionExplorerComponent_Conditional_45_Conditional_2_For_2_Template, 1, 3, "mj-action-list-item", 56, _forTrack2);
|
|
268
223
|
i0.ɵɵelementEnd();
|
|
269
224
|
} if (rf & 2) {
|
|
270
225
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
271
226
|
i0.ɵɵadvance();
|
|
272
227
|
i0.ɵɵrepeater(ctx_r1.FilteredActions);
|
|
273
228
|
} }
|
|
274
|
-
function
|
|
275
|
-
i0.ɵɵconditionalCreate(0,
|
|
276
|
-
i0.ɵɵconditionalCreate(1,
|
|
277
|
-
i0.ɵɵconditionalCreate(2,
|
|
229
|
+
function ActionExplorerComponent_Conditional_45_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
+
i0.ɵɵconditionalCreate(0, ActionExplorerComponent_Conditional_45_Conditional_0_Template, 3, 0, "div", 42);
|
|
231
|
+
i0.ɵɵconditionalCreate(1, ActionExplorerComponent_Conditional_45_Conditional_1_Template, 18, 0, "div", 43);
|
|
232
|
+
i0.ɵɵconditionalCreate(2, ActionExplorerComponent_Conditional_45_Conditional_2_Template, 3, 0, "div", 44);
|
|
278
233
|
} if (rf & 2) {
|
|
279
234
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
280
235
|
i0.ɵɵconditional(ctx_r1.ViewMode === "card" ? 0 : -1);
|
|
@@ -283,10 +238,10 @@ function ActionExplorerComponent_Conditional_44_Template(rf, ctx) { if (rf & 1)
|
|
|
283
238
|
i0.ɵɵadvance();
|
|
284
239
|
i0.ɵɵconditional(ctx_r1.ViewMode === "compact" ? 2 : -1);
|
|
285
240
|
} }
|
|
286
|
-
function
|
|
287
|
-
const
|
|
288
|
-
i0.ɵɵelementStart(0, "mj-action-test-harness-dialog",
|
|
289
|
-
i0.ɵɵlistener("Close", function
|
|
241
|
+
function ActionExplorerComponent_Conditional_48_Template(rf, ctx) { if (rf & 1) {
|
|
242
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
243
|
+
i0.ɵɵelementStart(0, "mj-action-test-harness-dialog", 58);
|
|
244
|
+
i0.ɵɵlistener("Close", function ActionExplorerComponent_Conditional_48_Template_mj_action_test_harness_dialog_Close_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnRunDialogClose()); });
|
|
290
245
|
i0.ɵɵelementEnd();
|
|
291
246
|
} if (rf & 2) {
|
|
292
247
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -311,7 +266,6 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
|
|
|
311
266
|
approvalStatuses: [],
|
|
312
267
|
hasExecutions: null
|
|
313
268
|
};
|
|
314
|
-
ShowSortDropdown = false;
|
|
315
269
|
SelectedCategoryId = 'all';
|
|
316
270
|
NewCategoryParentId = null;
|
|
317
271
|
// Run dialog state
|
|
@@ -598,7 +552,6 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
|
|
|
598
552
|
}
|
|
599
553
|
setSortField(field) {
|
|
600
554
|
this.StateService.setSortField(field);
|
|
601
|
-
this.ShowSortDropdown = false;
|
|
602
555
|
}
|
|
603
556
|
toggleStatus(status) {
|
|
604
557
|
const current = [...this.Filters.statuses];
|
|
@@ -627,24 +580,11 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
|
|
|
627
580
|
clearFilters() {
|
|
628
581
|
this.StateService.clearFilters();
|
|
629
582
|
}
|
|
630
|
-
hasActiveFilters() {
|
|
631
|
-
return this.StateService.hasActiveFilters();
|
|
632
|
-
}
|
|
633
583
|
/** Active filter count for the popover badge — counts only Status + Type
|
|
634
584
|
* (searchTerm has its own search input, not part of the popover). */
|
|
635
585
|
get StatusTypeFilterCount() {
|
|
636
586
|
return this.Filters.statuses.length + this.Filters.types.length;
|
|
637
587
|
}
|
|
638
|
-
toggleSortDropdown() {
|
|
639
|
-
this.ShowSortDropdown = !this.ShowSortDropdown;
|
|
640
|
-
}
|
|
641
|
-
getSortLabel() {
|
|
642
|
-
const option = this.SortOptions.find(o => o.field === this.SortField);
|
|
643
|
-
return option?.label || 'Sort';
|
|
644
|
-
}
|
|
645
|
-
getSortIcon() {
|
|
646
|
-
return this.SortDirection === 'asc' ? 'fa-solid fa-arrow-up-short-wide' : 'fa-solid fa-arrow-down-wide-short';
|
|
647
|
-
}
|
|
648
588
|
async GetResourceDisplayName(data) {
|
|
649
589
|
return 'Action Explorer';
|
|
650
590
|
}
|
|
@@ -657,117 +597,104 @@ let ActionExplorerComponent = class ActionExplorerComponent extends BaseResource
|
|
|
657
597
|
} if (rf & 2) {
|
|
658
598
|
let _t;
|
|
659
599
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.TreePanel = _t.first);
|
|
660
|
-
} }, standalone: false, features: [i0.ɵɵProvidersFeature([ActionExplorerStateService]), i0.ɵɵInheritDefinitionFeature], decls:
|
|
600
|
+
} }, standalone: false, features: [i0.ɵɵProvidersFeature([ActionExplorerStateService]), i0.ɵɵInheritDefinitionFeature], decls: 49, vars: 21, consts: [["Title", "Action Explorer", "Icon", "fa-solid fa-folder-tree", "Subtitle", "Browse, organize, and run all configured actions"], ["meta", ""], ["Label", "actions", 3, "Count", "Total"], ["actions", ""], [3, "Clicked"], ["mjButton", "", "variant", "primary", "size", "sm", "title", "New Action", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "action-btn-label"], ["toolbar", ""], ["Placeholder", "Search actions...", 3, "ValueChange", "Value"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [1, "dropdown-section"], [1, "section-header"], ["mjButton", "", "variant", "flat", "size", "sm"], [1, "filter-options"], [1, "filter-option", 3, "selected"], [1, "sort-option", 3, "selected"], [3, "KeyChange", "Options", "ActiveKey"], [3, "Flex", "Padding"], [1, "action-explorer"], [1, "loading-overlay"], [3, "CategorySelected", "NewCategoryClick", "EditCategoryClick", "Categories", "Actions"], [1, "explorer-main"], [3, "CategorySelect", "SelectedCategoryId", "Categories"], [1, "explorer-content"], [1, "empty-state"], [3, "CategoryCreated", "Close", "Categories", "PreselectedParentId"], [3, "ActionCreated", "Categories"], [3, "Action", "ActionParams", "IsOpen"], ["mjButton", "", "variant", "flat", "size", "sm", 3, "click"], [1, "filter-option"], ["type", "checkbox", 3, "change", "checked"], [1, "status-dot"], [1, "sort-option", 3, "click"], [1, "direction-icon", 3, "class"], [1, "direction-icon"], ["text", "Loading actions...", "size", "medium"], [1, "fa-solid", "fa-filter-circle-xmark"], ["mjButton", "", "variant", "outline", 3, "click"], [1, "fa-solid", "fa-times"], [1, "fa-solid", "fa-bolt"], ["mjButton", "", "variant", "primary", 3, "click"], [1, "card-grid"], [1, "list-view"], [1, "compact-view"], [3, "Action", "Categories"], [3, "ActionClick", "EditClick", "RunClick", "CategoryClick", "Action", "Categories"], [1, "list-header"], [1, "header-icon"], [1, "header-name"], [1, "header-category"], [1, "header-status"], [1, "header-type"], [1, "header-params"], [1, "header-updated"], [1, "header-actions"], [3, "Action", "Categories", "IsCompact"], [3, "ActionClick", "EditClick", "RunClick", "CategoryClick", "Action", "Categories", "IsCompact"], [3, "Close", "Action", "ActionParams", "IsOpen"]], template: function ActionExplorerComponent_Template(rf, ctx) { if (rf & 1) {
|
|
661
601
|
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1);
|
|
662
602
|
i0.ɵɵelement(3, "mj-stat-badge", 2);
|
|
663
603
|
i0.ɵɵelementEnd();
|
|
664
|
-
i0.ɵɵelementStart(4, "div", 3)(5, "mj-
|
|
665
|
-
i0.ɵɵlistener("
|
|
666
|
-
i0.ɵɵelementStart(6, "div", 5)(7, "div", 6)(8, "span");
|
|
667
|
-
i0.ɵɵtext(9, "Status");
|
|
668
|
-
i0.ɵɵelementEnd();
|
|
669
|
-
i0.ɵɵconditionalCreate(10, ActionExplorerComponent_Conditional_10_Template, 2, 0, "button", 7);
|
|
604
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "mj-refresh-button", 4);
|
|
605
|
+
i0.ɵɵlistener("Clicked", function ActionExplorerComponent_Template_mj_refresh_button_Clicked_5_listener() { return ctx.onRefresh(); });
|
|
670
606
|
i0.ɵɵelementEnd();
|
|
671
|
-
i0.ɵɵelementStart(
|
|
672
|
-
i0.ɵɵ
|
|
673
|
-
i0.ɵɵ
|
|
674
|
-
i0.ɵɵelementStart(
|
|
675
|
-
i0.ɵɵtext(
|
|
676
|
-
i0.ɵɵelementEnd();
|
|
677
|
-
i0.ɵɵconditionalCreate(18, ActionExplorerComponent_Conditional_18_Template, 2, 0, "button", 7);
|
|
678
|
-
i0.ɵɵelementEnd();
|
|
679
|
-
i0.ɵɵelementStart(19, "div", 8);
|
|
680
|
-
i0.ɵɵrepeaterCreate(20, ActionExplorerComponent_For_21_Template, 4, 6, "label", 9, _forTrack0);
|
|
607
|
+
i0.ɵɵelementStart(6, "button", 5);
|
|
608
|
+
i0.ɵɵlistener("click", function ActionExplorerComponent_Template_button_click_6_listener() { return ctx.onNewAction(); });
|
|
609
|
+
i0.ɵɵelement(7, "i", 6);
|
|
610
|
+
i0.ɵɵelementStart(8, "span", 7);
|
|
611
|
+
i0.ɵɵtext(9, "New Action");
|
|
681
612
|
i0.ɵɵelementEnd()()();
|
|
682
|
-
i0.ɵɵelementStart(
|
|
683
|
-
i0.ɵɵlistener("
|
|
684
|
-
i0.ɵɵelementStart(23, "button", 11);
|
|
685
|
-
i0.ɵɵlistener("click", function ActionExplorerComponent_Template_button_click_23_listener() { return ctx.toggleSortDropdown(); });
|
|
686
|
-
i0.ɵɵelement(24, "i");
|
|
687
|
-
i0.ɵɵtext(25);
|
|
688
|
-
i0.ɵɵelement(26, "i");
|
|
689
|
-
i0.ɵɵelementEnd();
|
|
690
|
-
i0.ɵɵconditionalCreate(27, ActionExplorerComponent_Conditional_27_Template, 3, 0, "div", 12);
|
|
613
|
+
i0.ɵɵelementStart(10, "div", 8)(11, "mj-page-search", 9);
|
|
614
|
+
i0.ɵɵlistener("ValueChange", function ActionExplorerComponent_Template_mj_page_search_ValueChange_11_listener($event) { return ctx.onSearchInput($event); });
|
|
691
615
|
i0.ɵɵelementEnd();
|
|
692
|
-
i0.ɵɵelementStart(
|
|
693
|
-
i0.ɵɵlistener("
|
|
616
|
+
i0.ɵɵelementStart(12, "mj-filter-popover", 10);
|
|
617
|
+
i0.ɵɵlistener("ClearAllRequested", function ActionExplorerComponent_Template_mj_filter_popover_ClearAllRequested_12_listener() { return ctx.clearFilters(); });
|
|
618
|
+
i0.ɵɵelementStart(13, "div", 11)(14, "div", 12)(15, "span");
|
|
619
|
+
i0.ɵɵtext(16, "Status");
|
|
694
620
|
i0.ɵɵelementEnd();
|
|
695
|
-
i0.ɵɵ
|
|
696
|
-
i0.ɵɵlistener("Clicked", function ActionExplorerComponent_Template_mj_refresh_button_Clicked_29_listener() { return ctx.onRefresh(); });
|
|
621
|
+
i0.ɵɵconditionalCreate(17, ActionExplorerComponent_Conditional_17_Template, 2, 0, "button", 13);
|
|
697
622
|
i0.ɵɵelementEnd();
|
|
698
|
-
i0.ɵɵelementStart(
|
|
699
|
-
i0.ɵɵ
|
|
700
|
-
i0.ɵɵelement(31, "i", 16);
|
|
701
|
-
i0.ɵɵtext(32, " New Action ");
|
|
623
|
+
i0.ɵɵelementStart(18, "div", 14);
|
|
624
|
+
i0.ɵɵrepeaterCreate(19, ActionExplorerComponent_For_20_Template, 4, 5, "label", 15, _forTrack0);
|
|
702
625
|
i0.ɵɵelementEnd()();
|
|
703
|
-
i0.ɵɵelementStart(
|
|
704
|
-
i0.ɵɵ
|
|
626
|
+
i0.ɵɵelementStart(21, "div", 11)(22, "div", 12)(23, "span");
|
|
627
|
+
i0.ɵɵtext(24, "Type");
|
|
705
628
|
i0.ɵɵelementEnd();
|
|
706
|
-
i0.ɵɵconditionalCreate(
|
|
629
|
+
i0.ɵɵconditionalCreate(25, ActionExplorerComponent_Conditional_25_Template, 2, 0, "button", 13);
|
|
630
|
+
i0.ɵɵelementEnd();
|
|
631
|
+
i0.ɵɵelementStart(26, "div", 14);
|
|
632
|
+
i0.ɵɵrepeaterCreate(27, ActionExplorerComponent_For_28_Template, 4, 6, "label", 15, _forTrack0);
|
|
633
|
+
i0.ɵɵelementEnd()();
|
|
634
|
+
i0.ɵɵelementStart(29, "div", 11)(30, "div", 12)(31, "span");
|
|
635
|
+
i0.ɵɵtext(32, "Sort");
|
|
707
636
|
i0.ɵɵelementEnd()();
|
|
708
|
-
i0.ɵɵelementStart(
|
|
709
|
-
i0.ɵɵ
|
|
710
|
-
i0.ɵɵ
|
|
711
|
-
i0.ɵɵ
|
|
637
|
+
i0.ɵɵelementStart(33, "div", 14);
|
|
638
|
+
i0.ɵɵrepeaterCreate(34, ActionExplorerComponent_For_35_Template, 4, 6, "button", 16, _forTrack1);
|
|
639
|
+
i0.ɵɵelementEnd()()();
|
|
640
|
+
i0.ɵɵelementStart(36, "mj-view-toggle", 17);
|
|
641
|
+
i0.ɵɵlistener("KeyChange", function ActionExplorerComponent_Template_mj_view_toggle_KeyChange_36_listener($event) { return ctx.setViewMode($event); });
|
|
642
|
+
i0.ɵɵelementEnd()()();
|
|
643
|
+
i0.ɵɵelementStart(37, "mj-page-body", 18)(38, "div", 19);
|
|
644
|
+
i0.ɵɵconditionalCreate(39, ActionExplorerComponent_Conditional_39_Template, 2, 0, "div", 20);
|
|
645
|
+
i0.ɵɵelementStart(40, "mj-action-tree-panel", 21);
|
|
646
|
+
i0.ɵɵlistener("CategorySelected", function ActionExplorerComponent_Template_mj_action_tree_panel_CategorySelected_40_listener($event) { return ctx.onCategorySelect($event); })("NewCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_NewCategoryClick_40_listener($event) { return ctx.onNewCategory($event); })("EditCategoryClick", function ActionExplorerComponent_Template_mj_action_tree_panel_EditCategoryClick_40_listener($event) { return ctx.onEditCategory($event); });
|
|
712
647
|
i0.ɵɵelementEnd();
|
|
713
|
-
i0.ɵɵelementStart(
|
|
714
|
-
i0.ɵɵlistener("CategorySelect", function
|
|
648
|
+
i0.ɵɵelementStart(41, "div", 22)(42, "mj-action-breadcrumb", 23);
|
|
649
|
+
i0.ɵɵlistener("CategorySelect", function ActionExplorerComponent_Template_mj_action_breadcrumb_CategorySelect_42_listener($event) { return ctx.onCategorySelect($event); });
|
|
715
650
|
i0.ɵɵelementEnd();
|
|
716
|
-
i0.ɵɵelementStart(
|
|
717
|
-
i0.ɵɵconditionalCreate(
|
|
651
|
+
i0.ɵɵelementStart(43, "div", 24);
|
|
652
|
+
i0.ɵɵconditionalCreate(44, ActionExplorerComponent_Conditional_44_Template, 3, 1, "div", 25)(45, ActionExplorerComponent_Conditional_45_Template, 3, 3);
|
|
718
653
|
i0.ɵɵelementEnd()();
|
|
719
|
-
i0.ɵɵelementStart(
|
|
720
|
-
i0.ɵɵlistener("CategoryCreated", function
|
|
654
|
+
i0.ɵɵelementStart(46, "mj-new-category-panel", 26);
|
|
655
|
+
i0.ɵɵlistener("CategoryCreated", function ActionExplorerComponent_Template_mj_new_category_panel_CategoryCreated_46_listener($event) { return ctx.onCategoryCreated($event); })("Close", function ActionExplorerComponent_Template_mj_new_category_panel_Close_46_listener() { return ctx.NewCategoryParentId = null; });
|
|
721
656
|
i0.ɵɵelementEnd();
|
|
722
|
-
i0.ɵɵelementStart(
|
|
723
|
-
i0.ɵɵlistener("ActionCreated", function
|
|
657
|
+
i0.ɵɵelementStart(47, "mj-new-action-panel", 27);
|
|
658
|
+
i0.ɵɵlistener("ActionCreated", function ActionExplorerComponent_Template_mj_new_action_panel_ActionCreated_47_listener() { return ctx.onActionCreated(); });
|
|
724
659
|
i0.ɵɵelementEnd();
|
|
725
|
-
i0.ɵɵconditionalCreate(
|
|
660
|
+
i0.ɵɵconditionalCreate(48, ActionExplorerComponent_Conditional_48_Template, 1, 3, "mj-action-test-harness-dialog", 28);
|
|
726
661
|
i0.ɵɵelementEnd()()();
|
|
727
662
|
} if (rf & 2) {
|
|
728
663
|
i0.ɵɵadvance(3);
|
|
729
664
|
i0.ɵɵproperty("Count", ctx.FilteredActions.length)("Total", ctx.Actions.length);
|
|
730
|
-
i0.ɵɵadvance(
|
|
665
|
+
i0.ɵɵadvance(8);
|
|
666
|
+
i0.ɵɵproperty("Value", ctx.Filters.searchTerm);
|
|
667
|
+
i0.ɵɵadvance();
|
|
731
668
|
i0.ɵɵproperty("ActiveCount", ctx.StatusTypeFilterCount)("ShowClearAll", ctx.StatusTypeFilterCount > 0);
|
|
732
669
|
i0.ɵɵadvance(5);
|
|
733
|
-
i0.ɵɵconditional(ctx.Filters.statuses.length > 0 ?
|
|
670
|
+
i0.ɵɵconditional(ctx.Filters.statuses.length > 0 ? 17 : -1);
|
|
734
671
|
i0.ɵɵadvance(2);
|
|
735
672
|
i0.ɵɵrepeater(ctx.StatusOptions);
|
|
736
673
|
i0.ɵɵadvance(6);
|
|
737
|
-
i0.ɵɵconditional(ctx.Filters.types.length > 0 ?
|
|
674
|
+
i0.ɵɵconditional(ctx.Filters.types.length > 0 ? 25 : -1);
|
|
738
675
|
i0.ɵɵadvance(2);
|
|
739
676
|
i0.ɵɵrepeater(ctx.TypeOptions);
|
|
740
|
-
i0.ɵɵadvance(
|
|
741
|
-
i0.ɵɵ
|
|
742
|
-
i0.ɵɵadvance();
|
|
743
|
-
i0.ɵɵtextInterpolate1(" ", ctx.getSortLabel(), " ");
|
|
744
|
-
i0.ɵɵadvance();
|
|
745
|
-
i0.ɵɵclassMap(ctx.ShowSortDropdown ? "fa-solid fa-chevron-up" : "fa-solid fa-chevron-down");
|
|
746
|
-
i0.ɵɵadvance();
|
|
747
|
-
i0.ɵɵconditional(ctx.ShowSortDropdown ? 27 : -1);
|
|
748
|
-
i0.ɵɵadvance();
|
|
677
|
+
i0.ɵɵadvance(7);
|
|
678
|
+
i0.ɵɵrepeater(ctx.SortOptions);
|
|
679
|
+
i0.ɵɵadvance(2);
|
|
749
680
|
i0.ɵɵproperty("Options", ctx.ViewToggleOptions)("ActiveKey", ctx.ViewMode);
|
|
750
|
-
i0.ɵɵadvance(6);
|
|
751
|
-
i0.ɵɵproperty("Value", ctx.Filters.searchTerm);
|
|
752
|
-
i0.ɵɵadvance();
|
|
753
|
-
i0.ɵɵconditional(ctx.hasActiveFilters() ? 35 : -1);
|
|
754
681
|
i0.ɵɵadvance();
|
|
755
682
|
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
756
683
|
i0.ɵɵadvance(2);
|
|
757
|
-
i0.ɵɵconditional(ctx.IsLoading ?
|
|
684
|
+
i0.ɵɵconditional(ctx.IsLoading ? 39 : -1);
|
|
758
685
|
i0.ɵɵadvance();
|
|
759
686
|
i0.ɵɵproperty("Categories", ctx.Categories)("Actions", ctx.Actions);
|
|
760
687
|
i0.ɵɵadvance(2);
|
|
761
688
|
i0.ɵɵproperty("SelectedCategoryId", ctx.SelectedCategoryId)("Categories", ctx.Categories);
|
|
762
689
|
i0.ɵɵadvance(2);
|
|
763
|
-
i0.ɵɵconditional(ctx.FilteredActions.length === 0 && !ctx.IsLoading ?
|
|
690
|
+
i0.ɵɵconditional(ctx.FilteredActions.length === 0 && !ctx.IsLoading ? 44 : 45);
|
|
764
691
|
i0.ɵɵadvance(2);
|
|
765
692
|
i0.ɵɵproperty("Categories", ctx.Categories)("PreselectedParentId", ctx.NewCategoryParentId);
|
|
766
693
|
i0.ɵɵadvance();
|
|
767
694
|
i0.ɵɵproperty("Categories", ctx.Categories);
|
|
768
695
|
i0.ɵɵadvance();
|
|
769
|
-
i0.ɵɵconditional(ctx.SelectedActionForRun ?
|
|
770
|
-
} }, dependencies: [i2.MJButtonDirective, i2.MJPageBodyComponent, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageSearchComponent, i2.MJFilterPopoverComponent, i2.MJViewToggleComponent, i2.MJStatBadgeComponent, i2.MJRefreshButtonComponent, i3.ActionTestHarnessDialogComponent, i4.LoadingComponent, i5.ActionTreePanelComponent, i6.ActionBreadcrumbComponent, i7.ActionCardComponent, i8.ActionListItemComponent, i9.NewCategoryPanelComponent, i10.NewActionPanelComponent], styles: ["\n\n.dropdown-section[_ngcontent-%COMP%] {\n padding: 8px 12px;\n}\n.dropdown-section[_ngcontent-%COMP%]:not(:last-child) {\n border-bottom: 1px solid var(--mj-border-default);\n}\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n letter-spacing: 0.5px;\n}\n.section-header[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 6px;\n}\n.filter-options[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.filter-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n}\n.filter-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n.filter-option.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.filter-option[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n display: none;\n}\n.filter-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n width: 18px;\n color: var(--mj-text-muted);\n}\n.filter-option.selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.status-dot[data-status=\"Active\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n.status-dot[data-status=\"Pending\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n.status-dot[data-status=\"Disabled\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.
|
|
696
|
+
i0.ɵɵconditional(ctx.SelectedActionForRun ? 48 : -1);
|
|
697
|
+
} }, dependencies: [i2.MJButtonDirective, i2.MJPageBodyComponent, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageSearchComponent, i2.MJFilterPopoverComponent, i2.MJViewToggleComponent, i2.MJStatBadgeComponent, i2.MJRefreshButtonComponent, i3.ActionTestHarnessDialogComponent, i4.LoadingComponent, i5.ActionTreePanelComponent, i6.ActionBreadcrumbComponent, i7.ActionCardComponent, i8.ActionListItemComponent, i9.NewCategoryPanelComponent, i10.NewActionPanelComponent], styles: ["\n\n.dropdown-section[_ngcontent-%COMP%] {\n padding: 8px 12px;\n}\n.dropdown-section[_ngcontent-%COMP%]:not(:last-child) {\n border-bottom: 1px solid var(--mj-border-default);\n}\n.section-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n letter-spacing: 0.5px;\n}\n.section-header[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n font-size: 11px;\n padding: 2px 6px;\n}\n.filter-options[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.filter-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n}\n.filter-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n.filter-option.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.filter-option[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n display: none;\n}\n.filter-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 13px;\n width: 18px;\n color: var(--mj-text-muted);\n}\n.filter-option.selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n.status-dot[_ngcontent-%COMP%] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.status-dot[data-status=\"Active\"][_ngcontent-%COMP%] { background: var(--mj-status-success); }\n.status-dot[data-status=\"Pending\"][_ngcontent-%COMP%] { background: var(--mj-status-warning); }\n.status-dot[data-status=\"Disabled\"][_ngcontent-%COMP%] { background: var(--mj-status-error); }\n\n\n\n.sort-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n transition: background 0.15s ease;\n}\n.sort-option[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n.sort-option.selected[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n width: 18px;\n color: var(--mj-text-muted);\n}\n.sort-option.selected[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:first-child {\n color: var(--mj-brand-primary);\n}\n.sort-option[_ngcontent-%COMP%] .direction-icon[_ngcontent-%COMP%] {\n margin-left: auto;\n font-size: 11px;\n}\n\n.action-explorer[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n\n\n.explorer-main[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n\n\n.loading-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n\n\n.loading-container[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n\n\n.empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n\n\n.card-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n\n\n.list-view[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon[_ngcontent-%COMP%] {\n \n\n}\n\n\n\n.compact-view[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n\n\n@media (max-width: 1200px) {\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header[_ngcontent-%COMP%] {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header[_ngcontent-%COMP%] .header-category[_ngcontent-%COMP%], \n .list-header[_ngcontent-%COMP%] .header-params[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n \n\n\n .explorer-content[_ngcontent-%COMP%] {\n padding: 12px;\n }\n\n .card-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header[_ngcontent-%COMP%] {\n display: none;\n }\n}\n\n\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}"], changeDetection: 0 });
|
|
771
698
|
};
|
|
772
699
|
ActionExplorerComponent = __decorate([
|
|
773
700
|
RegisterClass(BaseResourceComponent, 'ActionExplorerResource')
|
|
@@ -775,7 +702,7 @@ ActionExplorerComponent = __decorate([
|
|
|
775
702
|
export { ActionExplorerComponent };
|
|
776
703
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionExplorerComponent, [{
|
|
777
704
|
type: Component,
|
|
778
|
-
args: [{ standalone: false, selector: 'mj-action-explorer', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ActionExplorerStateService], template: "<mj-page-layout>\n <mj-page-header\n Title=\"Action Explorer\"\n Icon=\"fa-solid fa-folder-tree\"\n Subtitle=\"Browse, organize, and run all configured actions\">\n <div meta>\n <mj-stat-badge\n [Count]=\"FilteredActions.length\"\n [Total]=\"Actions.length\"\n Label=\"actions\">\n </mj-stat-badge>\n </div>\n <div actions>\n <!-- Filters popover (shared trigger + popover chrome; multi-select checkbox content stays bespoke) -->\n <mj-filter-popover\n [ActiveCount]=\"StatusTypeFilterCount\"\n [ShowClearAll]=\"StatusTypeFilterCount > 0\"\n (ClearAllRequested)=\"clearFilters()\">\n <div class=\"dropdown-section\">\n <div class=\"section-header\">\n <span>Status</span>\n @if (Filters.statuses.length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"StateService.setStatusFilter([])\">Clear</button>\n }\n </div>\n <div class=\"filter-options\">\n @for (status of StatusOptions; track status.value) {\n <label class=\"filter-option\" [class.selected]=\"isStatusSelected(status.value)\">\n <input type=\"checkbox\"\n [checked]=\"isStatusSelected(status.value)\"\n (change)=\"toggleStatus(status.value)\">\n <span class=\"status-dot\" [attr.data-status]=\"status.value\"></span>\n {{ status.label }}\n </label>\n }\n </div>\n </div>\n <div class=\"dropdown-section\">\n <div class=\"section-header\">\n <span>Type</span>\n @if (Filters.types.length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"StateService.setTypeFilter([])\">Clear</button>\n }\n </div>\n <div class=\"filter-options\">\n @for (type of TypeOptions; track type.value) {\n <label class=\"filter-option\" [class.selected]=\"isTypeSelected(type.value)\">\n <input type=\"checkbox\"\n [checked]=\"isTypeSelected(type.value)\"\n (change)=\"toggleType(type.value)\">\n <i [class]=\"type.icon\"></i>\n {{ type.label }}\n </label>\n }\n </div>\n </div>\n </mj-filter-popover>\n\n <!-- Sort Dropdown (bespoke \u2014 no shared sort component yet) -->\n <div class=\"dropdown-container\" (clickOutside)=\"ShowSortDropdown = false\">\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"toggleSortDropdown()\">\n <i [class]=\"getSortIcon()\"></i> {{ getSortLabel() }}\n <i [class]=\"ShowSortDropdown ? 'fa-solid fa-chevron-up' : 'fa-solid fa-chevron-down'\"></i>\n </button>\n @if (ShowSortDropdown) {\n <div class=\"dropdown-menu sort-menu\">\n @for (option of SortOptions; track option.field) {\n <button class=\"sort-option\"\n [class.selected]=\"SortField === option.field\"\n (click)=\"setSortField(option.field)\">\n <i [class]=\"option.icon\"></i>\n {{ option.label }}\n @if (SortField === option.field) {\n <i [class]=\"SortDirection === 'asc' ? 'fa-solid fa-arrow-up' : 'fa-solid fa-arrow-down'\" class=\"direction-icon\"></i>\n }\n </button>\n }\n </div>\n }\n </div>\n\n <mj-view-toggle\n [Options]=\"ViewToggleOptions\"\n [ActiveKey]=\"ViewMode\"\n (KeyChange)=\"setViewMode($any($event))\">\n </mj-view-toggle>\n\n <mj-refresh-button (Clicked)=\"onRefresh()\"></mj-refresh-button>\n\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onNewAction()\">\n <i class=\"fa-solid fa-plus\"></i> New Action\n </button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search actions...\"\n [Value]=\"Filters.searchTerm\"\n (ValueChange)=\"onSearchInput($event)\">\n </mj-page-search>\n @if (hasActiveFilters()) {\n <div class=\"active-filters\">\n @for (status of Filters.statuses; track status) {\n <span class=\"status-chip removable\" (click)=\"toggleStatus(status)\">\n Status: {{ status }} <i class=\"fa-solid fa-times\"></i>\n </span>\n }\n @for (type of Filters.types; track type) {\n <span class=\"status-chip removable\" (click)=\"toggleType(type)\">\n Type: {{ type === 'Generated' ? 'AI Generated' : type }} <i class=\"fa-solid fa-times\"></i>\n </span>\n }\n </div>\n }\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n<div class=\"action-explorer\">\n <!-- Full-page Loading Overlay -->\n @if (IsLoading) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Loading actions...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Tree Panel (Left Sidebar) -->\n <mj-action-tree-panel\n [Categories]=\"Categories\"\n [Actions]=\"Actions\"\n (CategorySelected)=\"onCategorySelect($event)\"\n (NewCategoryClick)=\"onNewCategory($event)\"\n (EditCategoryClick)=\"onEditCategory($event)\">\n </mj-action-tree-panel>\n\n <!-- Main Content Area -->\n <div class=\"explorer-main\">\n <!-- Breadcrumb -->\n <mj-action-breadcrumb\n [SelectedCategoryId]=\"SelectedCategoryId\"\n [Categories]=\"Categories\"\n (CategorySelect)=\"onCategorySelect($event)\">\n </mj-action-breadcrumb>\n\n <!-- Content Area -->\n <div class=\"explorer-content\">\n @if (FilteredActions.length === 0 && !IsLoading) {\n <div class=\"empty-state\">\n @if (StateService.hasActiveFilters() || SelectedCategoryId !== 'all') {\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n <h3>No actions match your filters</h3>\n <p>Try adjusting your search or filter criteria</p>\n <button mjButton\n variant=\"outline\"\n (click)=\"StateService.clearFilters(); StateService.setSelectedCategoryId('all')\">\n <i class=\"fa-solid fa-times\"></i>\n Clear All Filters\n </button>\n } @else {\n <i class=\"fa-solid fa-bolt\"></i>\n <h3>No actions yet</h3>\n <p>Create your first action to get started</p>\n <button mjButton\n variant=\"primary\"\n (click)=\"onNewAction()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Action\n </button>\n }\n </div>\n } @else {\n <!-- Card View -->\n @if (ViewMode === 'card') {\n <div class=\"card-grid\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-card\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-card>\n }\n </div>\n }\n\n <!-- List View -->\n @if (ViewMode === 'list') {\n <div class=\"list-view\">\n <div class=\"list-header\">\n <div class=\"header-icon\"></div>\n <div class=\"header-name\">Name</div>\n <div class=\"header-category\">Category</div>\n <div class=\"header-status\">Status</div>\n <div class=\"header-type\">Type</div>\n <div class=\"header-params\">Params</div>\n <div class=\"header-updated\">Updated</div>\n <div class=\"header-actions\"></div>\n </div>\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"false\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n\n <!-- Compact View -->\n @if (ViewMode === 'compact') {\n <div class=\"compact-view\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"true\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Slide-in Panels -->\n <mj-new-category-panel\n [Categories]=\"Categories\"\n [PreselectedParentId]=\"NewCategoryParentId\"\n (CategoryCreated)=\"onCategoryCreated($event)\"\n (Close)=\"NewCategoryParentId = null\">\n </mj-new-category-panel>\n\n <mj-new-action-panel\n [Categories]=\"Categories\"\n (ActionCreated)=\"onActionCreated()\">\n </mj-new-action-panel>\n\n <!-- Action Run Dialog -->\n @if (SelectedActionForRun) {\n <mj-action-test-harness-dialog\n [Action]=\"SelectedActionForRun\"\n [ActionParams]=\"SelectedActionParams\"\n [IsOpen]=\"IsRunDialogOpen\"\n (Close)=\"OnRunDialogClose()\">\n </mj-action-test-harness-dialog>\n }\n</div>\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* \u2500\u2500\u2500\u2500 Filter popover internals (multi-select Status/Type) \u2500\u2500\u2500\u2500 */\n.dropdown-section {\n padding: 8px 12px;\n}\n.dropdown-section:not(:last-child) {\n border-bottom: 1px solid var(--mj-border-default);\n}\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n letter-spacing: 0.5px;\n}\n.section-header button {\n font-size: 11px;\n padding: 2px 6px;\n}\n.filter-options {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.filter-option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n}\n.filter-option:hover {\n background: var(--mj-bg-surface-hover);\n}\n.filter-option.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.filter-option input[type=\"checkbox\"] {\n display: none;\n}\n.filter-option i {\n font-size: 13px;\n width: 18px;\n color: var(--mj-text-muted);\n}\n.filter-option.selected i {\n color: var(--mj-brand-primary);\n}\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.status-dot[data-status=\"Active\"] { background: var(--mj-status-success); }\n.status-dot[data-status=\"Pending\"] { background: var(--mj-status-warning); }\n.status-dot[data-status=\"Disabled\"] { background: var(--mj-status-error); }\n\n/* \u2500\u2500\u2500\u2500 Sort dropdown \u2500\u2500\u2500\u2500 */\n.dropdown-container {\n position: relative;\n}\n.dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n right: 0;\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n z-index: 100;\n min-width: 220px;\n padding: 8px 0;\n}\n.sort-option {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n transition: background 0.15s ease;\n}\n.sort-option:hover {\n background: var(--mj-bg-surface-hover);\n}\n.sort-option.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-option i:first-child {\n width: 18px;\n color: var(--mj-text-muted);\n}\n.sort-option.selected i:first-child {\n color: var(--mj-brand-primary);\n}\n.sort-option .direction-icon {\n margin-left: auto;\n font-size: 11px;\n}\n\n/* \u2500\u2500\u2500\u2500 Active filter chips (in [toolbar] next to search) \u2500\u2500\u2500\u2500 */\n.active-filters {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex-wrap: wrap;\n}\n.status-chip {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 3px 10px;\n font-size: 12px;\n font-weight: 500;\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 30%, transparent);\n color: var(--mj-text-primary);\n border-radius: 14px;\n}\n.status-chip.removable {\n cursor: pointer;\n transition: background 0.15s ease;\n}\n.status-chip.removable:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 18%, var(--mj-bg-surface));\n}\n.status-chip i {\n font-size: 10px;\n color: var(--mj-text-muted);\n}\n\n.action-explorer {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n/* Main Content Area */\n.explorer-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Full-page Loading Overlay */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n/* Legacy loading container (kept for backwards compatibility) */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state p {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state button {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Card Grid */\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n/* List View */\n.list-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon {\n /* Empty column for icon */\n}\n\n/* Compact View */\n.compact-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Responsive */\n@media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header .header-category,\n .list-header .header-params {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n .explorer-content {\n padding: 12px;\n }\n\n .card-grid {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header {\n display: none;\n }\n}\n\n/* Scrollbar Styling */\n.explorer-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}\n"] }]
|
|
705
|
+
args: [{ standalone: false, selector: 'mj-action-explorer', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ActionExplorerStateService], template: "<mj-page-layout>\n <mj-page-header\n Title=\"Action Explorer\"\n Icon=\"fa-solid fa-folder-tree\"\n Subtitle=\"Browse, organize, and run all configured actions\">\n <div meta>\n <mj-stat-badge\n [Count]=\"FilteredActions.length\"\n [Total]=\"Actions.length\"\n Label=\"actions\">\n </mj-stat-badge>\n </div>\n <div actions>\n <!-- Verbs only per \u00A73: secondary Refresh + the one primary CTA (rightmost). -->\n <mj-refresh-button (Clicked)=\"onRefresh()\"></mj-refresh-button>\n\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"onNewAction()\" title=\"New Action\">\n <i class=\"fa-solid fa-plus\"></i> <span class=\"action-btn-label\">New Action</span>\n </button>\n </div>\n <div toolbar>\n <!-- Control bar per \u00A73: search \u00B7 Filter (Status/Type/Sort) \u00B7 view. -->\n <mj-page-search\n Placeholder=\"Search actions...\"\n [Value]=\"Filters.searchTerm\"\n (ValueChange)=\"onSearchInput($event)\">\n </mj-page-search>\n\n <!-- Filters popover (shared trigger + popover chrome; multi-select checkbox content stays bespoke) -->\n <mj-filter-popover\n [ActiveCount]=\"StatusTypeFilterCount\"\n [ShowClearAll]=\"StatusTypeFilterCount > 0\"\n (ClearAllRequested)=\"clearFilters()\">\n <div class=\"dropdown-section\">\n <div class=\"section-header\">\n <span>Status</span>\n @if (Filters.statuses.length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"StateService.setStatusFilter([])\">Clear</button>\n }\n </div>\n <div class=\"filter-options\">\n @for (status of StatusOptions; track status.value) {\n <label class=\"filter-option\" [class.selected]=\"isStatusSelected(status.value)\">\n <input type=\"checkbox\"\n [checked]=\"isStatusSelected(status.value)\"\n (change)=\"toggleStatus(status.value)\">\n <span class=\"status-dot\" [attr.data-status]=\"status.value\"></span>\n {{ status.label }}\n </label>\n }\n </div>\n </div>\n <div class=\"dropdown-section\">\n <div class=\"section-header\">\n <span>Type</span>\n @if (Filters.types.length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"StateService.setTypeFilter([])\">Clear</button>\n }\n </div>\n <div class=\"filter-options\">\n @for (type of TypeOptions; track type.value) {\n <label class=\"filter-option\" [class.selected]=\"isTypeSelected(type.value)\">\n <input type=\"checkbox\"\n [checked]=\"isTypeSelected(type.value)\"\n (change)=\"toggleType(type.value)\">\n <i [class]=\"type.icon\"></i>\n {{ type.label }}\n </label>\n }\n </div>\n </div>\n <!-- Sort lives inside the Filters popover (was a standalone dropdown). -->\n <div class=\"dropdown-section\">\n <div class=\"section-header\"><span>Sort</span></div>\n <div class=\"filter-options\">\n @for (option of SortOptions; track option.field) {\n <button class=\"sort-option\"\n [class.selected]=\"SortField === option.field\"\n (click)=\"setSortField(option.field)\">\n <i [class]=\"option.icon\"></i>\n {{ option.label }}\n @if (SortField === option.field) {\n <i [class]=\"SortDirection === 'asc' ? 'fa-solid fa-arrow-up' : 'fa-solid fa-arrow-down'\" class=\"direction-icon\"></i>\n }\n </button>\n }\n </div>\n </div>\n </mj-filter-popover>\n\n <mj-view-toggle\n [Options]=\"ViewToggleOptions\"\n [ActiveKey]=\"ViewMode\"\n (KeyChange)=\"setViewMode($any($event))\">\n </mj-view-toggle>\n </div>\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n<div class=\"action-explorer\">\n <!-- Full-page Loading Overlay -->\n @if (IsLoading) {\n <div class=\"loading-overlay\">\n <mj-loading text=\"Loading actions...\" size=\"medium\"></mj-loading>\n </div>\n }\n\n <!-- Tree Panel (Left Sidebar) -->\n <mj-action-tree-panel\n [Categories]=\"Categories\"\n [Actions]=\"Actions\"\n (CategorySelected)=\"onCategorySelect($event)\"\n (NewCategoryClick)=\"onNewCategory($event)\"\n (EditCategoryClick)=\"onEditCategory($event)\">\n </mj-action-tree-panel>\n\n <!-- Main Content Area -->\n <div class=\"explorer-main\">\n <!-- Breadcrumb -->\n <mj-action-breadcrumb\n [SelectedCategoryId]=\"SelectedCategoryId\"\n [Categories]=\"Categories\"\n (CategorySelect)=\"onCategorySelect($event)\">\n </mj-action-breadcrumb>\n\n <!-- Content Area -->\n <div class=\"explorer-content\">\n @if (FilteredActions.length === 0 && !IsLoading) {\n <div class=\"empty-state\">\n @if (StateService.hasActiveFilters() || SelectedCategoryId !== 'all') {\n <i class=\"fa-solid fa-filter-circle-xmark\"></i>\n <h3>No actions match your filters</h3>\n <p>Try adjusting your search or filter criteria</p>\n <button mjButton\n variant=\"outline\"\n (click)=\"StateService.clearFilters(); StateService.setSelectedCategoryId('all')\">\n <i class=\"fa-solid fa-times\"></i>\n Clear All Filters\n </button>\n } @else {\n <i class=\"fa-solid fa-bolt\"></i>\n <h3>No actions yet</h3>\n <p>Create your first action to get started</p>\n <button mjButton\n variant=\"primary\"\n (click)=\"onNewAction()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Action\n </button>\n }\n </div>\n } @else {\n <!-- Card View -->\n @if (ViewMode === 'card') {\n <div class=\"card-grid\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-card\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-card>\n }\n </div>\n }\n\n <!-- List View -->\n @if (ViewMode === 'list') {\n <div class=\"list-view\">\n <div class=\"list-header\">\n <div class=\"header-icon\"></div>\n <div class=\"header-name\">Name</div>\n <div class=\"header-category\">Category</div>\n <div class=\"header-status\">Status</div>\n <div class=\"header-type\">Type</div>\n <div class=\"header-params\">Params</div>\n <div class=\"header-updated\">Updated</div>\n <div class=\"header-actions\"></div>\n </div>\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"false\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n\n <!-- Compact View -->\n @if (ViewMode === 'compact') {\n <div class=\"compact-view\">\n @for (action of FilteredActions; track action.ID) {\n <mj-action-list-item\n [Action]=\"action\"\n [Categories]=\"CategoriesMap\"\n [IsCompact]=\"true\"\n (ActionClick)=\"onActionClick($event)\"\n (EditClick)=\"onActionEdit($event)\"\n (RunClick)=\"onActionRun($event)\"\n (CategoryClick)=\"onCategoryClick($event)\">\n </mj-action-list-item>\n }\n </div>\n }\n }\n </div>\n </div>\n\n <!-- Slide-in Panels -->\n <mj-new-category-panel\n [Categories]=\"Categories\"\n [PreselectedParentId]=\"NewCategoryParentId\"\n (CategoryCreated)=\"onCategoryCreated($event)\"\n (Close)=\"NewCategoryParentId = null\">\n </mj-new-category-panel>\n\n <mj-new-action-panel\n [Categories]=\"Categories\"\n (ActionCreated)=\"onActionCreated()\">\n </mj-new-action-panel>\n\n <!-- Action Run Dialog -->\n @if (SelectedActionForRun) {\n <mj-action-test-harness-dialog\n [Action]=\"SelectedActionForRun\"\n [ActionParams]=\"SelectedActionParams\"\n [IsOpen]=\"IsRunDialogOpen\"\n (Close)=\"OnRunDialogClose()\">\n </mj-action-test-harness-dialog>\n }\n</div>\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* \u2500\u2500\u2500\u2500 Filter popover internals (multi-select Status/Type) \u2500\u2500\u2500\u2500 */\n.dropdown-section {\n padding: 8px 12px;\n}\n.dropdown-section:not(:last-child) {\n border-bottom: 1px solid var(--mj-border-default);\n}\n.section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 8px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--mj-text-muted);\n letter-spacing: 0.5px;\n}\n.section-header button {\n font-size: 11px;\n padding: 2px 6px;\n}\n.filter-options {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n.filter-option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n font-size: 13px;\n}\n.filter-option:hover {\n background: var(--mj-bg-surface-hover);\n}\n.filter-option.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n.filter-option input[type=\"checkbox\"] {\n display: none;\n}\n.filter-option i {\n font-size: 13px;\n width: 18px;\n color: var(--mj-text-muted);\n}\n.filter-option.selected i {\n color: var(--mj-brand-primary);\n}\n.status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n}\n.status-dot[data-status=\"Active\"] { background: var(--mj-status-success); }\n.status-dot[data-status=\"Pending\"] { background: var(--mj-status-warning); }\n.status-dot[data-status=\"Disabled\"] { background: var(--mj-status-error); }\n\n/* \u2500\u2500\u2500\u2500 Sort options (inside the Filters popover) \u2500\u2500\u2500\u2500 */\n.sort-option {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n transition: background 0.15s ease;\n}\n.sort-option:hover {\n background: var(--mj-bg-surface-hover);\n}\n.sort-option.selected {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n.sort-option i:first-child {\n width: 18px;\n color: var(--mj-text-muted);\n}\n.sort-option.selected i:first-child {\n color: var(--mj-brand-primary);\n}\n.sort-option .direction-icon {\n margin-left: auto;\n font-size: 11px;\n}\n\n.action-explorer {\n display: flex;\n flex: 1;\n min-height: 0;\n background: var(--mj-bg-page);\n overflow: hidden;\n position: relative;\n}\n\n/* Main Content Area */\n.explorer-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n min-width: 0;\n overflow: hidden;\n}\n\n.explorer-content {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\n/* Full-page Loading Overlay */\n.loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: color-mix(in srgb, var(--mj-bg-surface) 85%, transparent);\n z-index: 100;\n backdrop-filter: blur(2px);\n}\n\n/* Legacy loading container (kept for backwards compatibility) */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n min-height: 300px;\n}\n\n/* Empty State */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 60px 20px;\n color: var(--mj-text-muted);\n}\n\n.empty-state i {\n font-size: 48px;\n margin-bottom: 20px;\n opacity: 0.5;\n}\n\n.empty-state h3 {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.empty-state p {\n margin: 0 0 20px 0;\n font-size: 14px;\n}\n\n.empty-state button {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Card Grid */\n.card-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));\n gap: 20px;\n}\n\n/* List View */\n.list-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n.list-header {\n display: grid;\n grid-template-columns: 40px 1fr 140px 90px 70px 50px 90px 70px;\n gap: 12px;\n padding: 12px 16px;\n background: var(--mj-bg-page);\n border-bottom: 1px solid var(--mj-border-default);\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--mj-text-muted);\n}\n\n.header-icon {\n /* Empty column for icon */\n}\n\n/* Compact View */\n.compact-view {\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n\n/* Responsive */\n@media (max-width: 1200px) {\n .card-grid {\n grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\n }\n}\n\n@media (max-width: 1024px) {\n .list-header {\n grid-template-columns: 36px 1fr 90px 50px 80px 60px;\n }\n\n .list-header .header-category,\n .list-header .header-params {\n display: none;\n }\n}\n\n@media (max-width: 768px) {\n /* Search-grow + .action-btn-label collapse are owned by the shared chrome\n (page-header.scss) since search lives in the [toolbar] slot. None here. */\n .explorer-content {\n padding: 12px;\n }\n\n .card-grid {\n grid-template-columns: 1fr;\n gap: 12px;\n }\n\n .list-header {\n display: none;\n }\n}\n\n/* Scrollbar Styling */\n.explorer-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.explorer-content::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.explorer-content::-webkit-scrollbar-thumb {\n background: var(--mj-border-default);\n border-radius: 4px;\n}\n\n.explorer-content::-webkit-scrollbar-thumb:hover {\n background: var(--mj-text-muted);\n}\n"] }]
|
|
779
706
|
}], () => [{ type: i1.ActionExplorerStateService }, { type: i0.ChangeDetectorRef }], { TreePanel: [{
|
|
780
707
|
type: ViewChild,
|
|
781
708
|
args: [ActionTreePanelComponent]
|