@memberjunction/ng-dashboards 5.34.1 → 5.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
- package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +399 -292
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +96 -0
- package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/ai-analytics-resource.component.js +453 -122
- package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
- package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
- package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
- package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
- package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
- package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
- package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
- package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +2084 -2079
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.d.ts +17 -0
- package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
- package/dist/AI/components/models/model-management.component.js +370 -425
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +317 -357
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
- package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
- package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
- package/dist/AI/components/system/system-configuration.component.js +403 -362
- package/dist/AI/components/system/system-configuration.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +15 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +1423 -1438
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts +12 -8
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +329 -371
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.d.ts +6 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +202 -158
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +191 -142
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
- package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/index.d.ts +0 -1
- package/dist/Actions/components/explorer/index.d.ts.map +1 -1
- package/dist/Actions/components/explorer/index.js +0 -1
- package/dist/Actions/components/explorer/index.js.map +1 -1
- package/dist/Admin/admin-data-schema.component.js +19 -79
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +19 -79
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +19 -79
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +19 -79
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/Admin/base-admin-container.component.d.ts +9 -7
- package/dist/Admin/base-admin-container.component.d.ts.map +1 -1
- package/dist/Admin/base-admin-container.component.js +26 -17
- package/dist/Admin/base-admin-container.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +92 -91
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-config-resource.component.js +24 -5
- package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
- package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
- package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +80 -99
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +127 -106
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-new-message-resource.component.d.ts +93 -0
- package/dist/Communication/communication-new-message-resource.component.d.ts.map +1 -0
- package/dist/Communication/communication-new-message-resource.component.js +661 -0
- package/dist/Communication/communication-new-message-resource.component.js.map +1 -0
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +44 -45
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +60 -58
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
- package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +139 -162
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +238 -266
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +290 -305
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +41 -21
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts +2 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +148 -155
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +25 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/DevTools/app-state-inspector.component.d.ts +5 -0
- package/dist/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +46 -72
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.js +88 -100
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.js +158 -168
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +257 -264
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts +5 -0
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +46 -64
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +75 -84
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +76 -85
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +2 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +24 -16
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts +6 -0
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +521 -485
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts +8 -0
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +307 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +654 -648
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +182 -163
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +595 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +230 -241
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/integration.module.d.ts +1 -1
- package/dist/Integration/integration.module.d.ts.map +1 -1
- package/dist/Integration/integration.module.js +28 -1
- package/dist/Integration/integration.module.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts +5 -0
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +1138 -1147
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts +11 -0
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +684 -697
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +120 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1239 -610
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +152 -160
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.d.ts +133 -3
- package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +1460 -272
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts +29 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.d.ts.map +1 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js +77 -0
- package/dist/Lists/components/lists-shared-with-me-resource.component.js.map +1 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts +6 -0
- package/dist/Lists/components/venn-diagram/venn-diagram.component.d.ts.map +1 -1
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js +35 -7
- package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
- package/dist/Lists/index.d.ts +1 -0
- package/dist/Lists/index.d.ts.map +1 -1
- package/dist/Lists/index.js +1 -0
- package/dist/Lists/index.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +93 -2
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +236 -10
- package/dist/Lists/services/list-set-operations.service.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +1248 -1338
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/MCP/mcp.module.d.ts +1 -1
- package/dist/MCP/mcp.module.d.ts.map +1 -1
- package/dist/MCP/mcp.module.js +34 -1
- package/dist/MCP/mcp.module.js.map +1 -1
- package/dist/Permissions/audit-log-resource.component.js +76 -85
- package/dist/Permissions/audit-log-resource.component.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +64 -69
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +63 -74
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
- package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
- package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
- package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
- package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
- package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
- package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
- package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
- package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +259 -103
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +13 -3
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +1009 -1264
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
- package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
- package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-analytics.component.js +420 -393
- package/dist/Testing/components/testing-analytics.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
- package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
- package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
- package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
- package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +38 -6
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +679 -786
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
- package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review-resource.component.js +9 -12
- package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-review.component.d.ts +3 -1
- package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-review.component.js +310 -274
- package/dist/Testing/components/testing-review.component.js.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
- package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs-resource.component.js +16 -19
- package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
- package/dist/Testing/components/testing-runs.component.d.ts +3 -1
- package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-runs.component.js +307 -273
- package/dist/Testing/components/testing-runs.component.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +2 -0
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +114 -99
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +185 -188
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +154 -184
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +350 -354
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +163 -169
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/actions-dashboards.module.d.ts +15 -16
- package/dist/actions-dashboards.module.d.ts.map +1 -1
- package/dist/actions-dashboards.module.js +34 -11
- package/dist/actions-dashboards.module.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +45 -48
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +51 -10
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/archiving-dashboards.module.d.ts +2 -1
- package/dist/archiving-dashboards.module.d.ts.map +1 -1
- package/dist/archiving-dashboards.module.js +12 -2
- package/dist/archiving-dashboards.module.js.map +1 -1
- package/dist/communication-dashboards.module.d.ts +9 -6
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +37 -7
- package/dist/communication-dashboards.module.js.map +1 -1
- package/dist/core-dashboards.module.d.ts +1 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +46 -1
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/credentials-dashboards.module.d.ts +1 -1
- package/dist/credentials-dashboards.module.d.ts.map +1 -1
- package/dist/credentials-dashboards.module.js +28 -1
- package/dist/credentials-dashboards.module.js.map +1 -1
- package/dist/lists-dashboards.module.d.ts +10 -9
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +40 -2
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -3
- package/dist/public-api.js.map +1 -1
- package/dist/scheduling-dashboards.module.d.ts +1 -1
- package/dist/scheduling-dashboards.module.d.ts.map +1 -1
- package/dist/scheduling-dashboards.module.js +31 -1
- package/dist/scheduling-dashboards.module.js.map +1 -1
- package/dist/testing-dashboards.module.d.ts +8 -7
- package/dist/testing-dashboards.module.d.ts.map +1 -1
- package/dist/testing-dashboards.module.js +42 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +53 -52
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
- package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
- package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
- package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
- package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
- package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
- package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
- package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
- package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
- package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
- package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-explorer.component.js","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/action-explorer.component.ts","../../../../src/Actions/components/explorer/action-explorer.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, combineLatestWith } from 'rxjs/operators';\nimport { CompositeKey, LogError, RunView } from '@memberjunction/core';\nimport { MJActionCategoryEntity, MJActionEntity, MJActionParamEntity, ResourceData } from '@memberjunction/core-entities';\nimport { ActionEngineBase, MJActionEntityExtended } from '@memberjunction/actions-base';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport {\n ActionExplorerStateService,\n ActionViewMode,\n SortConfig,\n ActionFilters\n} from '../../services/action-explorer-state.service';\nimport { ActionTreePanelComponent } from './action-tree-panel.component';\n@RegisterClass(BaseResourceComponent, 'ActionExplorerResource')\n@Component({\n standalone: false,\n selector: 'mj-action-explorer',\n templateUrl: './action-explorer.component.html',\n styleUrls: ['./action-explorer.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ActionExplorerStateService]\n})\nexport class ActionExplorerComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n @ViewChild(ActionTreePanelComponent) TreePanel!: ActionTreePanelComponent;\n\n public IsLoading = true;\n public Actions: MJActionEntityExtended[] = [];\n public FilteredActions: MJActionEntityExtended[] = [];\n public Categories: MJActionCategoryEntity[] = [];\n public CategoriesMap = new Map<string, MJActionCategoryEntity>();\n\n public ViewMode: ActionViewMode = 'card';\n public SelectedCategoryId = 'all';\n public NewCategoryParentId: string | null = null;\n\n // Run dialog state\n public IsRunDialogOpen = false;\n public SelectedActionForRun: MJActionEntity | null = null;\n public SelectedActionParams: MJActionParamEntity[] = [];\n\n protected override destroy$ = new Subject<void>();\n\n constructor(\n public StateService: ActionExplorerStateService,\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.subscribeToState();\n this.applyQueryParams(this.GetQueryParams());\n this.StateService.loadSavedState();\n this.loadData();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private subscribeToState(): void {\n // Subscribe to view mode changes\n this.StateService.ViewMode$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(mode => {\n this.ViewMode = mode;\n this.cdr.markForCheck();\n });\n\n // Subscribe to selected category changes\n this.StateService.SelectedCategoryId$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(id => {\n this.SelectedCategoryId = id;\n this.applyFilters();\n this.UpdateQueryParams(this.StateService.buildQueryParams());\n this.cdr.markForCheck();\n });\n\n // Subscribe to filter and sort changes\n this.StateService.Filters$.pipe(\n combineLatestWith(this.StateService.SortConfig$),\n debounceTime(50),\n takeUntil(this.destroy$)\n ).subscribe(() => {\n this.applyFilters();\n this.UpdateQueryParams(this.StateService.buildQueryParams());\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Convert the framework's plain-object params into the StateService's URLSearchParams-based parser.\n */\n private applyQueryParams(params: Record<string, string>): void {\n const urlParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value != null) {\n urlParams.set(key, value);\n }\n }\n this.StateService.parseQueryParams(urlParams);\n }\n\n private async loadData(): Promise<void> {\n try {\n this.IsLoading = true;\n this.cdr.markForCheck();\n\n // Initialize ActionEngineBase\n await ActionEngineBase.Instance.Config(false);\n\n // Get actions and categories from engine\n this.Actions = ActionEngineBase.Instance.Actions;\n this.Categories = ActionEngineBase.Instance.ActionCategories;\n\n // Build categories map\n this.CategoriesMap.clear();\n this.Categories.forEach(c => this.CategoriesMap.set(c.ID, c));\n\n // Build tree panel if available\n if (this.TreePanel) {\n this.TreePanel.Categories = this.Categories;\n this.TreePanel.Actions = this.Actions;\n this.TreePanel.buildCategoryTree();\n }\n\n // Apply filters\n this.applyFilters();\n\n // Expand path to selected category if needed\n if (this.SelectedCategoryId !== 'all' && this.SelectedCategoryId !== 'uncategorized') {\n const categoryParentMap = new Map<string, string | null>();\n this.Categories.forEach(c => categoryParentMap.set(c.ID, c.ParentID || null));\n this.StateService.expandPathToCategory(this.SelectedCategoryId, categoryParentMap);\n }\n\n } catch (error) {\n LogError('Failed to load action explorer data', undefined, error);\n } finally {\n this.IsLoading = false;\n this.cdr.markForCheck();\n this.NotifyLoadComplete();\n }\n }\n\n private applyFilters(): void {\n let filtered = [...this.Actions];\n const filters = this.StateService.Filters;\n const sortConfig = this.StateService.SortConfig;\n\n // Apply category filter\n if (this.SelectedCategoryId === 'uncategorized') {\n filtered = filtered.filter(a => !a.CategoryID);\n } else if (this.SelectedCategoryId !== 'all') {\n // Include descendants\n const descendants = this.getDescendantCategoryIds(this.SelectedCategoryId);\n filtered = filtered.filter(a => a.CategoryID && descendants.has(a.CategoryID));\n }\n\n // Apply search filter\n if (filters.searchTerm) {\n const term = filters.searchTerm.toLowerCase();\n filtered = filtered.filter(a =>\n a.Name.toLowerCase().includes(term) ||\n (a.Description || '').toLowerCase().includes(term)\n );\n }\n\n // Apply status filter\n if (filters.statuses.length > 0) {\n filtered = filtered.filter(a => filters.statuses.includes(a.Status));\n }\n\n // Apply type filter\n if (filters.types.length > 0) {\n filtered = filtered.filter(a => filters.types.includes(a.Type));\n }\n\n // Apply sorting\n filtered = this.sortActions(filtered, sortConfig);\n\n this.FilteredActions = filtered;\n }\n\n private getDescendantCategoryIds(categoryId: string): Set<string> {\n const descendants = new Set<string>([categoryId]);\n\n const addDescendants = (parentId: string) => {\n this.Categories.forEach(c => {\n if (UUIDsEqual(c.ParentID, parentId) && !descendants.has(c.ID)) {\n descendants.add(c.ID);\n addDescendants(c.ID);\n }\n });\n };\n\n addDescendants(categoryId);\n return descendants;\n }\n\n private sortActions(actions: MJActionEntityExtended[], config: SortConfig): MJActionEntityExtended[] {\n const sorted = [...actions];\n const direction = config.direction === 'asc' ? 1 : -1;\n\n sorted.sort((a, b) => {\n let comparison = 0;\n\n switch (config.field) {\n case 'name':\n comparison = a.Name.localeCompare(b.Name);\n break;\n case 'updated':\n const dateA = a.__mj_UpdatedAt ? new Date(a.__mj_UpdatedAt).getTime() : 0;\n const dateB = b.__mj_UpdatedAt ? new Date(b.__mj_UpdatedAt).getTime() : 0;\n comparison = dateA - dateB;\n break;\n case 'status':\n comparison = (a.Status || '').localeCompare(b.Status || '');\n break;\n case 'type':\n comparison = (a.Type || '').localeCompare(b.Type || '');\n break;\n case 'category':\n const catA = this.CategoriesMap.get(a.CategoryID || '')?.Name || '';\n const catB = this.CategoriesMap.get(b.CategoryID || '')?.Name || '';\n comparison = catA.localeCompare(catB);\n break;\n }\n\n return comparison * direction;\n });\n\n return sorted;\n }\n\n /**\n * React to back/forward navigation or deep-link activation.\n * Called by the base class when the URL query params change externally.\n */\n protected override OnQueryParamsChanged(params: Record<string, string>, source: 'popstate' | 'deeplink'): void {\n this.applyQueryParams(params);\n this.applyFilters();\n this.cdr.markForCheck();\n }\n\n public async onRefresh(): Promise<void> {\n await ActionEngineBase.Instance.Config(true); // Force refresh\n await this.loadData();\n }\n\n public onCategorySelect(categoryId: string): void {\n this.StateService.setSelectedCategoryId(categoryId);\n }\n\n public onNewCategory(parentId: string | null): void {\n this.NewCategoryParentId = parentId;\n this.StateService.openNewCategoryPanel();\n }\n\n public onEditCategory(category: MJActionCategoryEntity): void {\n const key = new CompositeKey([{ FieldName: 'ID', Value: category.ID }]);\n this.navigationService.OpenEntityRecord('MJ: Action Categories', key);\n }\n\n public onNewAction(): void {\n this.StateService.openNewActionPanel();\n }\n\n public onActionClick(action: MJActionEntityExtended): void {\n const key = new CompositeKey([{ FieldName: 'ID', Value: action.ID }]);\n this.navigationService.OpenEntityRecord('MJ: Actions', key);\n }\n\n public onActionEdit(action: MJActionEntityExtended): void {\n this.onActionClick(action);\n }\n\n public async onActionRun(action: MJActionEntityExtended): Promise<void> {\n if (action.Status !== 'Active') {\n return; // Can't run inactive actions\n }\n\n try {\n // Load action params\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJActionParamEntity>({\n EntityName: 'MJ: Action Params',\n ExtraFilter: `ActionID='${action.ID}'`,\n OrderBy: 'Name',\n ResultType: 'entity_object'\n });\n\n this.SelectedActionParams = result.Success ? result.Results || [] : [];\n // MJActionEntityExtended extends MJActionEntity, so this cast is safe\n this.SelectedActionForRun = action as unknown as MJActionEntity;\n this.IsRunDialogOpen = true;\n this.cdr.markForCheck();\n\n } catch (error) {\n LogError('Failed to open action run dialog', undefined, error);\n }\n }\n\n public OnRunDialogClose(): void {\n this.IsRunDialogOpen = false;\n this.SelectedActionForRun = null;\n this.SelectedActionParams = [];\n this.cdr.markForCheck();\n }\n\n public onCategoryClick(categoryId: string): void {\n this.StateService.setSelectedCategoryId(categoryId);\n }\n\n public async onCategoryCreated(category: MJActionCategoryEntity): Promise<void> {\n // Refresh data to include new category\n await this.loadData();\n // Select the new category\n this.StateService.setSelectedCategoryId(category.ID);\n }\n\n public async onActionCreated(): Promise<void> {\n // Refresh data to include new action\n await this.loadData();\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Action Explorer';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-folder-tree';\n }\n}\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 <!-- Toolbar -->\n <mj-action-toolbar\n [TotalCount]=\"Actions.length\"\n [FilteredCount]=\"FilteredActions.length\"\n (NewActionClick)=\"onNewAction()\"\n (RefreshClick)=\"onRefresh()\">\n </mj-action-toolbar>\n\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"]}
|
|
1
|
+
{"version":3,"file":"action-explorer.component.js","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/action-explorer.component.ts","../../../../src/Actions/components/explorer/action-explorer.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged, combineLatestWith } from 'rxjs/operators';\nimport { CompositeKey, LogError, RunView } from '@memberjunction/core';\nimport { MJActionCategoryEntity, MJActionEntity, MJActionParamEntity, ResourceData } from '@memberjunction/core-entities';\nimport { ActionEngineBase, MJActionEntityExtended } from '@memberjunction/actions-base';\nimport { RegisterClass , UUIDsEqual } from '@memberjunction/global';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ViewToggleOption } from '@memberjunction/ng-ui-components';\nimport {\n ActionExplorerStateService,\n ActionViewMode,\n SortConfig,\n SortField,\n SortDirection,\n ActionFilters\n} from '../../services/action-explorer-state.service';\nimport { ActionTreePanelComponent } from './action-tree-panel.component';\n\ninterface SortOption {\n field: SortField;\n label: string;\n icon: string;\n}\n@RegisterClass(BaseResourceComponent, 'ActionExplorerResource')\n@Component({\n standalone: false,\n selector: 'mj-action-explorer',\n templateUrl: './action-explorer.component.html',\n styleUrls: ['./action-explorer.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ActionExplorerStateService]\n})\nexport class ActionExplorerComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n @ViewChild(ActionTreePanelComponent) TreePanel!: ActionTreePanelComponent;\n\n public IsLoading = true;\n public Actions: MJActionEntityExtended[] = [];\n public FilteredActions: MJActionEntityExtended[] = [];\n public Categories: MJActionCategoryEntity[] = [];\n public CategoriesMap = new Map<string, MJActionCategoryEntity>();\n\n public ViewMode: ActionViewMode = 'card';\n public SortField: SortField = 'name';\n public SortDirection: SortDirection = 'asc';\n public Filters: ActionFilters = {\n searchTerm: '',\n statuses: [],\n types: [],\n approvalStatuses: [],\n hasExecutions: null\n };\n public ShowSortDropdown = false;\n\n public SelectedCategoryId = 'all';\n public NewCategoryParentId: string | null = null;\n\n // Run dialog state\n public IsRunDialogOpen = false;\n public SelectedActionForRun: MJActionEntity | null = null;\n public SelectedActionParams: MJActionParamEntity[] = [];\n\n // ───── Toolbar option arrays + helpers (consolidated from former mj-action-toolbar) ─────\n\n public readonly ViewToggleOptions: ViewToggleOption[] = [\n { key: 'card', icon: 'fa-solid fa-grip', title: 'Card view' },\n { key: 'list', icon: 'fa-solid fa-list', title: 'List view' },\n { key: 'compact', icon: 'fa-solid fa-bars', title: 'Compact view' }\n ];\n\n public readonly SortOptions: SortOption[] = [\n { field: 'name', label: 'Name', icon: 'fa-solid fa-font' },\n { field: 'updated', label: 'Last Updated', icon: 'fa-solid fa-clock' },\n { field: 'status', label: 'Status', icon: 'fa-solid fa-circle-check' },\n { field: 'type', label: 'Type', icon: 'fa-solid fa-tag' },\n { field: 'category', label: 'Category', icon: 'fa-solid fa-folder' }\n ];\n\n public readonly StatusOptions = [\n { value: 'Active', label: 'Active' },\n { value: 'Pending', label: 'Pending' },\n { value: 'Disabled', label: 'Disabled' }\n ];\n\n public readonly TypeOptions = [\n { value: 'Generated', label: 'AI Generated', icon: 'fa-solid fa-robot' },\n { value: 'Custom', label: 'Custom', icon: 'fa-solid fa-code' }\n ];\n\n protected override destroy$ = new Subject<void>();\n private searchInput$ = new Subject<string>();\n\n constructor(\n public StateService: ActionExplorerStateService,\n private cdr: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.subscribeToState();\n this.setupSearchDebounce();\n this.applyQueryParams(this.GetQueryParams());\n this.StateService.loadSavedState();\n this.loadData();\n }\n\n private setupSearchDebounce(): void {\n this.searchInput$.pipe(\n debounceTime(300),\n distinctUntilChanged(),\n takeUntil(this.destroy$)\n ).subscribe(term => {\n this.StateService.setSearchTerm(term);\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private subscribeToState(): void {\n // Subscribe to view mode changes\n this.StateService.ViewMode$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(mode => {\n this.ViewMode = mode;\n this.cdr.markForCheck();\n });\n\n // Subscribe to selected category changes\n this.StateService.SelectedCategoryId$.pipe(\n takeUntil(this.destroy$)\n ).subscribe(id => {\n this.SelectedCategoryId = id;\n this.applyFilters();\n this.UpdateQueryParams(this.StateService.buildQueryParams());\n this.cdr.markForCheck();\n });\n\n // Subscribe to filter and sort changes\n this.StateService.Filters$.pipe(\n combineLatestWith(this.StateService.SortConfig$),\n debounceTime(50),\n takeUntil(this.destroy$)\n ).subscribe(([filters, sort]) => {\n this.Filters = filters;\n this.SortField = sort.field;\n this.SortDirection = sort.direction;\n this.applyFilters();\n this.UpdateQueryParams(this.StateService.buildQueryParams());\n this.cdr.markForCheck();\n });\n }\n\n /**\n * Convert the framework's plain-object params into the StateService's URLSearchParams-based parser.\n */\n private applyQueryParams(params: Record<string, string>): void {\n const urlParams = new URLSearchParams();\n for (const [key, value] of Object.entries(params)) {\n if (value != null) {\n urlParams.set(key, value);\n }\n }\n this.StateService.parseQueryParams(urlParams);\n }\n\n private async loadData(): Promise<void> {\n try {\n this.IsLoading = true;\n this.cdr.markForCheck();\n\n // Initialize ActionEngineBase\n await ActionEngineBase.Instance.Config(false);\n\n // Get actions and categories from engine\n this.Actions = ActionEngineBase.Instance.Actions;\n this.Categories = ActionEngineBase.Instance.ActionCategories;\n\n // Build categories map\n this.CategoriesMap.clear();\n this.Categories.forEach(c => this.CategoriesMap.set(c.ID, c));\n\n // Build tree panel if available\n if (this.TreePanel) {\n this.TreePanel.Categories = this.Categories;\n this.TreePanel.Actions = this.Actions;\n this.TreePanel.buildCategoryTree();\n }\n\n // Apply filters\n this.applyFilters();\n\n // Expand path to selected category if needed\n if (this.SelectedCategoryId !== 'all' && this.SelectedCategoryId !== 'uncategorized') {\n const categoryParentMap = new Map<string, string | null>();\n this.Categories.forEach(c => categoryParentMap.set(c.ID, c.ParentID || null));\n this.StateService.expandPathToCategory(this.SelectedCategoryId, categoryParentMap);\n }\n\n } catch (error) {\n LogError('Failed to load action explorer data', undefined, error);\n } finally {\n this.IsLoading = false;\n this.cdr.markForCheck();\n this.NotifyLoadComplete();\n }\n }\n\n private applyFilters(): void {\n let filtered = [...this.Actions];\n const filters = this.StateService.Filters;\n const sortConfig = this.StateService.SortConfig;\n\n // Apply category filter\n if (this.SelectedCategoryId === 'uncategorized') {\n filtered = filtered.filter(a => !a.CategoryID);\n } else if (this.SelectedCategoryId !== 'all') {\n // Include descendants\n const descendants = this.getDescendantCategoryIds(this.SelectedCategoryId);\n filtered = filtered.filter(a => a.CategoryID && descendants.has(a.CategoryID));\n }\n\n // Apply search filter\n if (filters.searchTerm) {\n const term = filters.searchTerm.toLowerCase();\n filtered = filtered.filter(a =>\n a.Name.toLowerCase().includes(term) ||\n (a.Description || '').toLowerCase().includes(term)\n );\n }\n\n // Apply status filter\n if (filters.statuses.length > 0) {\n filtered = filtered.filter(a => filters.statuses.includes(a.Status));\n }\n\n // Apply type filter\n if (filters.types.length > 0) {\n filtered = filtered.filter(a => filters.types.includes(a.Type));\n }\n\n // Apply sorting\n filtered = this.sortActions(filtered, sortConfig);\n\n this.FilteredActions = filtered;\n }\n\n private getDescendantCategoryIds(categoryId: string): Set<string> {\n const descendants = new Set<string>([categoryId]);\n\n const addDescendants = (parentId: string) => {\n this.Categories.forEach(c => {\n if (UUIDsEqual(c.ParentID, parentId) && !descendants.has(c.ID)) {\n descendants.add(c.ID);\n addDescendants(c.ID);\n }\n });\n };\n\n addDescendants(categoryId);\n return descendants;\n }\n\n private sortActions(actions: MJActionEntityExtended[], config: SortConfig): MJActionEntityExtended[] {\n const sorted = [...actions];\n const direction = config.direction === 'asc' ? 1 : -1;\n\n sorted.sort((a, b) => {\n let comparison = 0;\n\n switch (config.field) {\n case 'name':\n comparison = a.Name.localeCompare(b.Name);\n break;\n case 'updated':\n const dateA = a.__mj_UpdatedAt ? new Date(a.__mj_UpdatedAt).getTime() : 0;\n const dateB = b.__mj_UpdatedAt ? new Date(b.__mj_UpdatedAt).getTime() : 0;\n comparison = dateA - dateB;\n break;\n case 'status':\n comparison = (a.Status || '').localeCompare(b.Status || '');\n break;\n case 'type':\n comparison = (a.Type || '').localeCompare(b.Type || '');\n break;\n case 'category':\n const catA = this.CategoriesMap.get(a.CategoryID || '')?.Name || '';\n const catB = this.CategoriesMap.get(b.CategoryID || '')?.Name || '';\n comparison = catA.localeCompare(catB);\n break;\n }\n\n return comparison * direction;\n });\n\n return sorted;\n }\n\n /**\n * React to back/forward navigation or deep-link activation.\n * Called by the base class when the URL query params change externally.\n */\n protected override OnQueryParamsChanged(params: Record<string, string>, source: 'popstate' | 'deeplink'): void {\n this.applyQueryParams(params);\n this.applyFilters();\n this.cdr.markForCheck();\n }\n\n public async onRefresh(): Promise<void> {\n await ActionEngineBase.Instance.Config(true); // Force refresh\n await this.loadData();\n }\n\n public onCategorySelect(categoryId: string): void {\n this.StateService.setSelectedCategoryId(categoryId);\n }\n\n public onNewCategory(parentId: string | null): void {\n this.NewCategoryParentId = parentId;\n this.StateService.openNewCategoryPanel();\n }\n\n public onEditCategory(category: MJActionCategoryEntity): void {\n const key = new CompositeKey([{ FieldName: 'ID', Value: category.ID }]);\n this.navigationService.OpenEntityRecord('MJ: Action Categories', key);\n }\n\n public onNewAction(): void {\n this.StateService.openNewActionPanel();\n }\n\n public onActionClick(action: MJActionEntityExtended): void {\n const key = new CompositeKey([{ FieldName: 'ID', Value: action.ID }]);\n this.navigationService.OpenEntityRecord('MJ: Actions', key);\n }\n\n public onActionEdit(action: MJActionEntityExtended): void {\n this.onActionClick(action);\n }\n\n public async onActionRun(action: MJActionEntityExtended): Promise<void> {\n if (action.Status !== 'Active') {\n return; // Can't run inactive actions\n }\n\n try {\n // Load action params\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJActionParamEntity>({\n EntityName: 'MJ: Action Params',\n ExtraFilter: `ActionID='${action.ID}'`,\n OrderBy: 'Name',\n ResultType: 'entity_object'\n });\n\n this.SelectedActionParams = result.Success ? result.Results || [] : [];\n // MJActionEntityExtended extends MJActionEntity, so this cast is safe\n this.SelectedActionForRun = action as unknown as MJActionEntity;\n this.IsRunDialogOpen = true;\n this.cdr.markForCheck();\n\n } catch (error) {\n LogError('Failed to open action run dialog', undefined, error);\n }\n }\n\n public OnRunDialogClose(): void {\n this.IsRunDialogOpen = false;\n this.SelectedActionForRun = null;\n this.SelectedActionParams = [];\n this.cdr.markForCheck();\n }\n\n public onCategoryClick(categoryId: string): void {\n this.StateService.setSelectedCategoryId(categoryId);\n }\n\n public async onCategoryCreated(category: MJActionCategoryEntity): Promise<void> {\n // Refresh data to include new category\n await this.loadData();\n // Select the new category\n this.StateService.setSelectedCategoryId(category.ID);\n }\n\n public async onActionCreated(): Promise<void> {\n // Refresh data to include new action\n await this.loadData();\n }\n\n // ───── Toolbar handlers (consolidated from former mj-action-toolbar) ─────\n\n public onSearchInput(term: string): void {\n this.searchInput$.next(term);\n }\n\n public clearSearch(): void {\n this.StateService.setSearchTerm('');\n }\n\n public setViewMode(mode: ActionViewMode): void {\n this.StateService.setViewMode(mode);\n }\n\n public setSortField(field: SortField): void {\n this.StateService.setSortField(field);\n this.ShowSortDropdown = false;\n }\n\n public toggleStatus(status: string): void {\n const current = [...this.Filters.statuses];\n const i = current.indexOf(status);\n if (i >= 0) current.splice(i, 1);\n else current.push(status);\n this.StateService.setStatusFilter(current);\n }\n\n public toggleType(type: string): void {\n const current = [...this.Filters.types];\n const i = current.indexOf(type);\n if (i >= 0) current.splice(i, 1);\n else current.push(type);\n this.StateService.setTypeFilter(current);\n }\n\n public isStatusSelected(status: string): boolean {\n return this.Filters.statuses.includes(status);\n }\n\n public isTypeSelected(type: string): boolean {\n return this.Filters.types.includes(type);\n }\n\n public clearFilters(): void {\n this.StateService.clearFilters();\n }\n\n public hasActiveFilters(): boolean {\n return this.StateService.hasActiveFilters();\n }\n\n /** Active filter count for the popover badge — counts only Status + Type\n * (searchTerm has its own search input, not part of the popover). */\n public get StatusTypeFilterCount(): number {\n return this.Filters.statuses.length + this.Filters.types.length;\n }\n\n public toggleSortDropdown(): void {\n this.ShowSortDropdown = !this.ShowSortDropdown;\n }\n\n public getSortLabel(): string {\n const option = this.SortOptions.find(o => o.field === this.SortField);\n return option?.label || 'Sort';\n }\n\n public getSortIcon(): string {\n return this.SortDirection === 'asc' ? 'fa-solid fa-arrow-up-short-wide' : 'fa-solid fa-arrow-down-wide-short';\n }\n\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'Action Explorer';\n }\n\n async GetResourceIconClass(data: ResourceData): Promise<string> {\n return 'fa-solid fa-folder-tree';\n }\n}\n","<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 — 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"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from './action-explorer.component';
|
|
2
2
|
export * from './action-tree-panel.component';
|
|
3
|
-
export * from './action-toolbar.component';
|
|
4
3
|
export * from './action-breadcrumb.component';
|
|
5
4
|
export * from './action-card.component';
|
|
6
5
|
export * from './action-list-item.component';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/index.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Action Explorer Components
|
|
2
2
|
export * from './action-explorer.component';
|
|
3
3
|
export * from './action-tree-panel.component';
|
|
4
|
-
export * from './action-toolbar.component';
|
|
5
4
|
export * from './action-breadcrumb.component';
|
|
6
5
|
export * from './action-card.component';
|
|
7
6
|
export * from './action-list-item.component';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Actions/components/explorer/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC","sourcesContent":["// Action Explorer Components\nexport * from './action-explorer.component';\nexport * from './action-tree-panel.component';\nexport * from './action-breadcrumb.component';\nexport * from './action-card.component';\nexport * from './action-list-item.component';\nexport * from './new-category-panel.component';\nexport * from './new-action-panel.component';\n"]}
|
|
@@ -9,55 +9,7 @@ import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
|
9
9
|
import { RegisterClass } from '@memberjunction/global';
|
|
10
10
|
import { BaseAdminContainerComponent } from './base-admin-container.component';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
|
-
|
|
13
|
-
function AdminDataSchemaComponent_For_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
-
i0.ɵɵelementStart(0, "div", 17);
|
|
15
|
-
i0.ɵɵtext(1);
|
|
16
|
-
i0.ɵɵelementEnd();
|
|
17
|
-
} if (rf & 2) {
|
|
18
|
-
const section_r2 = i0.ɵɵnextContext().$implicit;
|
|
19
|
-
i0.ɵɵadvance();
|
|
20
|
-
i0.ɵɵtextInterpolate(section_r2.description);
|
|
21
|
-
} }
|
|
22
|
-
function AdminDataSchemaComponent_For_12_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
24
|
-
i0.ɵɵelementStart(0, "button", 13);
|
|
25
|
-
i0.ɵɵlistener("click", function AdminDataSchemaComponent_For_12_Template_button_click_0_listener() { const section_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSectionClick(section_r2)); });
|
|
26
|
-
i0.ɵɵelement(1, "i", 14);
|
|
27
|
-
i0.ɵɵelementStart(2, "div", 15)(3, "div", 16);
|
|
28
|
-
i0.ɵɵtext(4);
|
|
29
|
-
i0.ɵɵelementEnd();
|
|
30
|
-
i0.ɵɵconditionalCreate(5, AdminDataSchemaComponent_For_12_Conditional_5_Template, 2, 1, "div", 17);
|
|
31
|
-
i0.ɵɵelementEnd()();
|
|
32
|
-
} if (rf & 2) {
|
|
33
|
-
const section_r2 = ctx.$implicit;
|
|
34
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
35
|
-
i0.ɵɵclassProp("admin-container__nav-item--active", ctx_r2.ActiveSection === section_r2.id);
|
|
36
|
-
i0.ɵɵadvance();
|
|
37
|
-
i0.ɵɵclassMap(section_r2.icon);
|
|
38
|
-
i0.ɵɵadvance(3);
|
|
39
|
-
i0.ɵɵtextInterpolate(section_r2.label);
|
|
40
|
-
i0.ɵɵadvance();
|
|
41
|
-
i0.ɵɵconditional(section_r2.description ? 5 : -1);
|
|
42
|
-
} }
|
|
43
|
-
function AdminDataSchemaComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
-
i0.ɵɵelementStart(0, "div", 10);
|
|
45
|
-
i0.ɵɵelement(1, "i", 18);
|
|
46
|
-
i0.ɵɵelementStart(2, "span");
|
|
47
|
-
i0.ɵɵtext(3);
|
|
48
|
-
i0.ɵɵelementEnd()();
|
|
49
|
-
} if (rf & 2) {
|
|
50
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
51
|
-
i0.ɵɵadvance(3);
|
|
52
|
-
i0.ɵɵtextInterpolate(ctx_r2.LoadError);
|
|
53
|
-
} }
|
|
54
|
-
function AdminDataSchemaComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
-
i0.ɵɵelementStart(0, "div", 11);
|
|
56
|
-
i0.ɵɵelement(1, "i", 19);
|
|
57
|
-
i0.ɵɵelementStart(2, "span");
|
|
58
|
-
i0.ɵɵtext(3, "Loading\u2026");
|
|
59
|
-
i0.ɵɵelementEnd()();
|
|
60
|
-
} }
|
|
12
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
61
13
|
/**
|
|
62
14
|
* Admin → Data & Schema. ERD viewer, query browser, and the database
|
|
63
15
|
* designer wizard. Order matters here: ERD first (overview), then Query
|
|
@@ -91,38 +43,26 @@ let AdminDataSchemaComponent = class AdminDataSchemaComponent extends BaseAdminC
|
|
|
91
43
|
}
|
|
92
44
|
];
|
|
93
45
|
static ɵfac = /*@__PURE__*/ (() => { let ɵAdminDataSchemaComponent_BaseFactory; return function AdminDataSchemaComponent_Factory(__ngFactoryType__) { return (ɵAdminDataSchemaComponent_BaseFactory || (ɵAdminDataSchemaComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AdminDataSchemaComponent)))(__ngFactoryType__ || AdminDataSchemaComponent); }; })();
|
|
94
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminDataSchemaComponent, selectors: [["mj-admin-data-schema"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
95
|
-
|
|
96
|
-
i0.ɵɵ
|
|
46
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminDataSchemaComponent, selectors: [["mj-admin-data-schema"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 9, consts: [["contentHost", ""], [3, "Title", "Icon", "Subtitle"], ["Direction", "row", 3, "Flex", "Padding"], [3, "ItemClicked", "Sections", "ActiveId"], [3, "Loading", "Error"]], template: function AdminDataSchemaComponent_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
48
|
+
i0.ɵɵelementStart(0, "mj-page-layout");
|
|
49
|
+
i0.ɵɵelement(1, "mj-page-header", 1);
|
|
50
|
+
i0.ɵɵelementStart(2, "mj-page-body", 2)(3, "mj-left-nav", 3);
|
|
51
|
+
i0.ɵɵlistener("ItemClicked", function AdminDataSchemaComponent_Template_mj_left_nav_ItemClicked_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnNavItemClicked($event)); });
|
|
97
52
|
i0.ɵɵelementEnd();
|
|
98
|
-
i0.ɵɵelementStart(4, "
|
|
99
|
-
i0.ɵɵ
|
|
100
|
-
i0.ɵɵelementEnd();
|
|
101
|
-
i0.ɵɵelementStart(7, "div", 5);
|
|
102
|
-
i0.ɵɵtext(8);
|
|
53
|
+
i0.ɵɵelementStart(4, "mj-left-nav-content", 4);
|
|
54
|
+
i0.ɵɵelementContainer(5, null, 0);
|
|
103
55
|
i0.ɵɵelementEnd()()();
|
|
104
|
-
i0.ɵɵelementStart(9, "div", 6)(10, "aside", 7);
|
|
105
|
-
i0.ɵɵrepeaterCreate(11, AdminDataSchemaComponent_For_12_Template, 6, 6, "button", 8, _forTrack0);
|
|
106
|
-
i0.ɵɵelementEnd();
|
|
107
|
-
i0.ɵɵelementStart(13, "main", 9);
|
|
108
|
-
i0.ɵɵconditionalCreate(14, AdminDataSchemaComponent_Conditional_14_Template, 4, 1, "div", 10)(15, AdminDataSchemaComponent_Conditional_15_Template, 4, 0, "div", 11);
|
|
109
|
-
i0.ɵɵelementStart(16, "div", 12);
|
|
110
|
-
i0.ɵɵelementContainer(17, null, 0);
|
|
111
|
-
i0.ɵɵelementEnd()()()();
|
|
112
56
|
} if (rf & 2) {
|
|
113
|
-
i0.ɵɵadvance(
|
|
114
|
-
i0.ɵɵ
|
|
115
|
-
i0.ɵɵadvance(
|
|
116
|
-
i0.ɵɵ
|
|
117
|
-
i0.ɵɵadvance(
|
|
118
|
-
i0.ɵɵ
|
|
119
|
-
i0.ɵɵadvance(
|
|
120
|
-
i0.ɵɵ
|
|
121
|
-
|
|
122
|
-
i0.ɵɵconditional(ctx.LoadError ? 14 : ctx.IsLoading ? 15 : -1);
|
|
123
|
-
i0.ɵɵadvance(2);
|
|
124
|
-
i0.ɵɵclassProp("admin-container__host--hidden", ctx.LoadError || ctx.IsLoading);
|
|
125
|
-
} }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n.admin-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n\n\n.admin-container__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n flex-shrink: 0;\n}\n.admin-container__header-icon[_ngcontent-%COMP%] {\n width: 36px; height: 36px;\n border-radius: 9px;\n background: linear-gradient(135deg, #264FAF 0%, #0076b6 100%);\n color: white;\n display: flex; align-items: center; justify-content: center;\n font-size: 15px;\n flex-shrink: 0;\n}\n.admin-container__header-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n letter-spacing: -0.2px;\n}\n.admin-container__header-sub[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n}\n\n\n\n.admin-container__body[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n.admin-container__nav[_ngcontent-%COMP%] {\n width: 240px;\n border-right: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n overflow-y: auto;\n flex-shrink: 0;\n padding: 8px;\n}\n.admin-container__nav-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.12s;\n margin-bottom: 2px;\n font-family: inherit;\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n text-align: left;\n width: 100%;\n}\n.admin-container__nav-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n.admin-container__nav-item--active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n.admin-container__nav-item--active[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, transparent);\n}\n.admin-container__nav-icon[_ngcontent-%COMP%] {\n width: 18px;\n text-align: center;\n font-size: 13px;\n margin-top: 1px;\n flex-shrink: 0;\n color: inherit;\n}\n.admin-container__nav-text[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n.admin-container__nav-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n line-height: 1.2;\n}\n.admin-container__nav-desc[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 3px;\n line-height: 1.3;\n}\n.admin-container__nav-item--active[_ngcontent-%COMP%] .admin-container__nav-desc[_ngcontent-%COMP%] {\n color: color-mix(in srgb, var(--mj-brand-primary) 70%, var(--mj-text-muted));\n}\n\n\n\n.admin-container__content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n overflow: hidden;\n}\n\n\n\n.admin-container__host[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.admin-container__host--hidden[_ngcontent-%COMP%] { display: none; }\n.admin-container__host[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: block;\n}\n\n\n\n.admin-container__empty[_ngcontent-%COMP%], \n.admin-container__error[_ngcontent-%COMP%], \n.admin-container__loading[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n color: var(--mj-text-muted);\n font-size: 13px;\n padding: 32px;\n text-align: center;\n}\n.admin-container__error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.admin-container__error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 20px; }\n.admin-container__loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 16px; color: var(--mj-brand-primary); }\n\n@media (max-width: 700px) {\n .admin-container__body[_ngcontent-%COMP%] { flex-direction: column; }\n .admin-container__nav[_ngcontent-%COMP%] {\n width: 100%;\n height: auto;\n max-height: 220px;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n }\n .admin-container__nav-item[_ngcontent-%COMP%] { flex: 1 1 calc(50% - 8px); margin-bottom: 0; }\n .admin-container__nav-desc[_ngcontent-%COMP%] { display: none; }\n .admin-container__header[_ngcontent-%COMP%] { padding: 12px 14px; gap: 10px; }\n}"] });
|
|
57
|
+
i0.ɵɵadvance();
|
|
58
|
+
i0.ɵɵproperty("Title", ctx.ContainerTitle)("Icon", ctx.ContainerIcon)("Subtitle", ctx.ContainerSubtitle);
|
|
59
|
+
i0.ɵɵadvance();
|
|
60
|
+
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
61
|
+
i0.ɵɵadvance();
|
|
62
|
+
i0.ɵɵproperty("Sections", ctx.NavSections)("ActiveId", ctx.ActiveSection);
|
|
63
|
+
i0.ɵɵadvance();
|
|
64
|
+
i0.ɵɵproperty("Loading", ctx.IsLoading)("Error", ctx.LoadError);
|
|
65
|
+
} }, dependencies: [i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJLeftNavComponent, i1.MJLeftNavContentComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n\n\n\n\n\n@media (max-width: 700px) {\n [_nghost-%COMP%] mj-page-body.mj-page-body--row {\n flex-direction: column;\n }\n}"] });
|
|
126
66
|
};
|
|
127
67
|
AdminDataSchemaComponent = __decorate([
|
|
128
68
|
RegisterClass(BaseResourceComponent, 'AdminDataSchema')
|
|
@@ -130,7 +70,7 @@ AdminDataSchemaComponent = __decorate([
|
|
|
130
70
|
export { AdminDataSchemaComponent };
|
|
131
71
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdminDataSchemaComponent, [{
|
|
132
72
|
type: Component,
|
|
133
|
-
args: [{ standalone: false, selector: 'mj-admin-data-schema', template: "<
|
|
73
|
+
args: [{ standalone: false, selector: 'mj-admin-data-schema', template: "<mj-page-layout>\n <mj-page-header\n [Title]=\"ContainerTitle\"\n [Icon]=\"ContainerIcon\"\n [Subtitle]=\"ContainerSubtitle\">\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\" Direction=\"row\">\n <mj-left-nav\n [Sections]=\"NavSections\"\n [ActiveId]=\"ActiveSection\"\n (ItemClicked)=\"OnNavItemClicked($event)\">\n </mj-left-nav>\n <mj-left-nav-content [Loading]=\"IsLoading\" [Error]=\"LoadError\">\n <ng-container #contentHost></ng-container>\n </mj-left-nav-content>\n </mj-page-body>\n</mj-page-layout>\n", styles: [":host { display: block; height: 100%; }\n\n/* Layout, rail styling, and content-area chrome all live in the shared\n <mj-page-body> / <mj-left-nav> / <mj-left-nav-content> components. The\n only thing this file owns is the responsive collapse of the parent flex\n direction at narrow viewports. See Section 10 of explorer-chrome-conventions. */\n@media (max-width: 700px) {\n :host ::ng-deep mj-page-body.mj-page-body--row {\n flex-direction: column;\n }\n}\n"] }]
|
|
134
74
|
}], null, null); })();
|
|
135
75
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AdminDataSchemaComponent, { className: "AdminDataSchemaComponent", filePath: "src/Admin/admin-data-schema.component.ts", lineNumber: 18 }); })();
|
|
136
76
|
//# sourceMappingURL=admin-data-schema.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-data-schema.component.js","sourceRoot":"","sources":["../../src/Admin/admin-data-schema.component.ts","../../src/Admin/admin-container.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAgB,2BAA2B,EAAE,MAAM,kCAAkC,CAAC
|
|
1
|
+
{"version":3,"file":"admin-data-schema.component.js","sourceRoot":"","sources":["../../src/Admin/admin-data-schema.component.ts","../../src/Admin/admin-container.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAgB,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;;;AAE7F;;;;GAIG;AAQI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAA2B;IACrD,cAAc,GAAG,eAAe,CAAC;IACjC,aAAa,GAAG,sBAAsB,CAAC;IACvC,iBAAiB,GAAG,oDAAoD,CAAC;IAEzE,QAAQ,GAAmB;QACvC;YACI,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,6BAA6B;YAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE;SACtD;QACD;YACI,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,8BAA8B;YACpC,WAAW,EAAE,+BAA+B;YAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACpE;QACD;YACI,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,iCAAiC;YACvC,WAAW,EAAE,4BAA4B;YACzC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE;SACzE;KACJ,CAAC;6QA3BO,wBAAwB,yBAAxB,wBAAwB;6DAAxB,wBAAwB;;YCjBrC,sCAAgB;YACZ,oCAIiB;YAGb,AADJ,uCAA8D,qBAIb;YAAzC,kKAAe,4BAAwB,KAAC;YAC5C,iBAAc;YACd,8CAA+D;YAC3D,iCAA0C;YAGtD,AADI,AADI,iBAAsB,EACX,EACF;;YAfT,cAAwB;YAExB,AADA,AADA,0CAAwB,2BACF,mCACQ;YAGpB,cAAa;YAAC,AAAd,2BAAa,kBAAkB;YAErC,cAAwB;YACxB,AADA,0CAAwB,+BACE;YAGT,cAAqB;YAAC,AAAtB,uCAAqB,wBAAoB;;;ADIzD,wBAAwB;IAPpC,aAAa,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;GAO3C,wBAAwB,CA4BpC;;iFA5BY,wBAAwB;cANpC,SAAS;6BACM,KAAK,YACP,sBAAsB;;kFAIvB,wBAAwB","sourcesContent":["import { Component } from '@angular/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { RegisterClass } from '@memberjunction/global';\nimport { AdminSection, BaseAdminContainerComponent } from './base-admin-container.component';\n\n/**\n * Admin → Data & Schema. ERD viewer, query browser, and the database\n * designer wizard. Order matters here: ERD first (overview), then Query\n * Browser (read), then Database Designer (write).\n */\n@RegisterClass(BaseResourceComponent, 'AdminDataSchema')\n@Component({\n standalone: false,\n selector: 'mj-admin-data-schema',\n templateUrl: './admin-container.component.html',\n styleUrls: ['./admin-container.component.css']\n})\nexport class AdminDataSchemaComponent extends BaseAdminContainerComponent {\n public readonly ContainerTitle = 'Data & Schema';\n public readonly ContainerIcon = 'fa-solid fa-database';\n public readonly ContainerSubtitle = 'Schema visualization, queries, and database design';\n\n public readonly Sections: AdminSection[] = [\n {\n id: 'erd',\n label: 'ERD',\n icon: 'fa-solid fa-diagram-project',\n description: 'Entity-relationship diagram',\n source: { kind: 'dashboard', dashboardName: 'ERD' }\n },\n {\n id: 'query-browser',\n label: 'Query Browser',\n icon: 'fa-solid fa-magnifying-glass',\n description: 'Browse and run stored queries',\n source: { kind: 'resource', driverClass: 'QueryBrowserResource' }\n },\n {\n id: 'database-designer',\n label: 'Database Designer',\n icon: 'fa-solid fa-wand-magic-sparkles',\n description: 'Create entities and fields',\n source: { kind: 'resource', driverClass: 'DatabaseDesignerDashboard' }\n }\n ];\n}\n","<mj-page-layout>\n <mj-page-header\n [Title]=\"ContainerTitle\"\n [Icon]=\"ContainerIcon\"\n [Subtitle]=\"ContainerSubtitle\">\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\" Direction=\"row\">\n <mj-left-nav\n [Sections]=\"NavSections\"\n [ActiveId]=\"ActiveSection\"\n (ItemClicked)=\"OnNavItemClicked($event)\">\n </mj-left-nav>\n <mj-left-nav-content [Loading]=\"IsLoading\" [Error]=\"LoadError\">\n <ng-container #contentHost></ng-container>\n </mj-left-nav-content>\n </mj-page-body>\n</mj-page-layout>\n"]}
|
|
@@ -9,55 +9,7 @@ import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
|
9
9
|
import { RegisterClass } from '@memberjunction/global';
|
|
10
10
|
import { BaseAdminContainerComponent } from './base-admin-container.component';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
|
-
|
|
13
|
-
function AdminDevToolsResourceComponent_For_12_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
-
i0.ɵɵelementStart(0, "div", 17);
|
|
15
|
-
i0.ɵɵtext(1);
|
|
16
|
-
i0.ɵɵelementEnd();
|
|
17
|
-
} if (rf & 2) {
|
|
18
|
-
const section_r2 = i0.ɵɵnextContext().$implicit;
|
|
19
|
-
i0.ɵɵadvance();
|
|
20
|
-
i0.ɵɵtextInterpolate(section_r2.description);
|
|
21
|
-
} }
|
|
22
|
-
function AdminDevToolsResourceComponent_For_12_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
24
|
-
i0.ɵɵelementStart(0, "button", 13);
|
|
25
|
-
i0.ɵɵlistener("click", function AdminDevToolsResourceComponent_For_12_Template_button_click_0_listener() { const section_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.OnSectionClick(section_r2)); });
|
|
26
|
-
i0.ɵɵelement(1, "i", 14);
|
|
27
|
-
i0.ɵɵelementStart(2, "div", 15)(3, "div", 16);
|
|
28
|
-
i0.ɵɵtext(4);
|
|
29
|
-
i0.ɵɵelementEnd();
|
|
30
|
-
i0.ɵɵconditionalCreate(5, AdminDevToolsResourceComponent_For_12_Conditional_5_Template, 2, 1, "div", 17);
|
|
31
|
-
i0.ɵɵelementEnd()();
|
|
32
|
-
} if (rf & 2) {
|
|
33
|
-
const section_r2 = ctx.$implicit;
|
|
34
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
35
|
-
i0.ɵɵclassProp("admin-container__nav-item--active", ctx_r2.ActiveSection === section_r2.id);
|
|
36
|
-
i0.ɵɵadvance();
|
|
37
|
-
i0.ɵɵclassMap(section_r2.icon);
|
|
38
|
-
i0.ɵɵadvance(3);
|
|
39
|
-
i0.ɵɵtextInterpolate(section_r2.label);
|
|
40
|
-
i0.ɵɵadvance();
|
|
41
|
-
i0.ɵɵconditional(section_r2.description ? 5 : -1);
|
|
42
|
-
} }
|
|
43
|
-
function AdminDevToolsResourceComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
44
|
-
i0.ɵɵelementStart(0, "div", 10);
|
|
45
|
-
i0.ɵɵelement(1, "i", 18);
|
|
46
|
-
i0.ɵɵelementStart(2, "span");
|
|
47
|
-
i0.ɵɵtext(3);
|
|
48
|
-
i0.ɵɵelementEnd()();
|
|
49
|
-
} if (rf & 2) {
|
|
50
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
51
|
-
i0.ɵɵadvance(3);
|
|
52
|
-
i0.ɵɵtextInterpolate(ctx_r2.LoadError);
|
|
53
|
-
} }
|
|
54
|
-
function AdminDevToolsResourceComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
-
i0.ɵɵelementStart(0, "div", 11);
|
|
56
|
-
i0.ɵɵelement(1, "i", 19);
|
|
57
|
-
i0.ɵɵelementStart(2, "span");
|
|
58
|
-
i0.ɵɵtext(3, "Loading\u2026");
|
|
59
|
-
i0.ɵɵelementEnd()();
|
|
60
|
-
} }
|
|
12
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
61
13
|
/**
|
|
62
14
|
* Admin → Developer Tools. Diagnostic and inspection sub-tools for developers.
|
|
63
15
|
*/
|
|
@@ -117,38 +69,26 @@ let AdminDevToolsResourceComponent = class AdminDevToolsResourceComponent extend
|
|
|
117
69
|
}
|
|
118
70
|
];
|
|
119
71
|
static ɵfac = /*@__PURE__*/ (() => { let ɵAdminDevToolsResourceComponent_BaseFactory; return function AdminDevToolsResourceComponent_Factory(__ngFactoryType__) { return (ɵAdminDevToolsResourceComponent_BaseFactory || (ɵAdminDevToolsResourceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AdminDevToolsResourceComponent)))(__ngFactoryType__ || AdminDevToolsResourceComponent); }; })();
|
|
120
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminDevToolsResourceComponent, selectors: [["mj-admin-dev-tools-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls:
|
|
121
|
-
|
|
122
|
-
i0.ɵɵ
|
|
72
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminDevToolsResourceComponent, selectors: [["mj-admin-dev-tools-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 9, consts: [["contentHost", ""], [3, "Title", "Icon", "Subtitle"], ["Direction", "row", 3, "Flex", "Padding"], [3, "ItemClicked", "Sections", "ActiveId"], [3, "Loading", "Error"]], template: function AdminDevToolsResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
74
|
+
i0.ɵɵelementStart(0, "mj-page-layout");
|
|
75
|
+
i0.ɵɵelement(1, "mj-page-header", 1);
|
|
76
|
+
i0.ɵɵelementStart(2, "mj-page-body", 2)(3, "mj-left-nav", 3);
|
|
77
|
+
i0.ɵɵlistener("ItemClicked", function AdminDevToolsResourceComponent_Template_mj_left_nav_ItemClicked_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnNavItemClicked($event)); });
|
|
123
78
|
i0.ɵɵelementEnd();
|
|
124
|
-
i0.ɵɵelementStart(4, "
|
|
125
|
-
i0.ɵɵ
|
|
126
|
-
i0.ɵɵelementEnd();
|
|
127
|
-
i0.ɵɵelementStart(7, "div", 5);
|
|
128
|
-
i0.ɵɵtext(8);
|
|
79
|
+
i0.ɵɵelementStart(4, "mj-left-nav-content", 4);
|
|
80
|
+
i0.ɵɵelementContainer(5, null, 0);
|
|
129
81
|
i0.ɵɵelementEnd()()();
|
|
130
|
-
i0.ɵɵelementStart(9, "div", 6)(10, "aside", 7);
|
|
131
|
-
i0.ɵɵrepeaterCreate(11, AdminDevToolsResourceComponent_For_12_Template, 6, 6, "button", 8, _forTrack0);
|
|
132
|
-
i0.ɵɵelementEnd();
|
|
133
|
-
i0.ɵɵelementStart(13, "main", 9);
|
|
134
|
-
i0.ɵɵconditionalCreate(14, AdminDevToolsResourceComponent_Conditional_14_Template, 4, 1, "div", 10)(15, AdminDevToolsResourceComponent_Conditional_15_Template, 4, 0, "div", 11);
|
|
135
|
-
i0.ɵɵelementStart(16, "div", 12);
|
|
136
|
-
i0.ɵɵelementContainer(17, null, 0);
|
|
137
|
-
i0.ɵɵelementEnd()()()();
|
|
138
82
|
} if (rf & 2) {
|
|
139
|
-
i0.ɵɵadvance(
|
|
140
|
-
i0.ɵɵ
|
|
141
|
-
i0.ɵɵadvance(
|
|
142
|
-
i0.ɵɵ
|
|
143
|
-
i0.ɵɵadvance(
|
|
144
|
-
i0.ɵɵ
|
|
145
|
-
i0.ɵɵadvance(
|
|
146
|
-
i0.ɵɵ
|
|
147
|
-
|
|
148
|
-
i0.ɵɵconditional(ctx.LoadError ? 14 : ctx.IsLoading ? 15 : -1);
|
|
149
|
-
i0.ɵɵadvance(2);
|
|
150
|
-
i0.ɵɵclassProp("admin-container__host--hidden", ctx.LoadError || ctx.IsLoading);
|
|
151
|
-
} }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n.admin-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: var(--mj-bg-page);\n color: var(--mj-text-primary);\n font-family: inherit;\n}\n\n\n\n.admin-container__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 14px 20px;\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n flex-shrink: 0;\n}\n.admin-container__header-icon[_ngcontent-%COMP%] {\n width: 36px; height: 36px;\n border-radius: 9px;\n background: linear-gradient(135deg, #264FAF 0%, #0076b6 100%);\n color: white;\n display: flex; align-items: center; justify-content: center;\n font-size: 15px;\n flex-shrink: 0;\n}\n.admin-container__header-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n letter-spacing: -0.2px;\n}\n.admin-container__header-sub[_ngcontent-%COMP%] {\n font-size: 11.5px;\n color: var(--mj-text-muted);\n margin-top: 2px;\n}\n\n\n\n.admin-container__body[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n min-height: 0;\n}\n.admin-container__nav[_ngcontent-%COMP%] {\n width: 240px;\n border-right: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n overflow-y: auto;\n flex-shrink: 0;\n padding: 8px;\n}\n.admin-container__nav-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.12s;\n margin-bottom: 2px;\n font-family: inherit;\n border: none;\n background: transparent;\n color: var(--mj-text-secondary);\n text-align: left;\n width: 100%;\n}\n.admin-container__nav-item[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n color: var(--mj-text-primary);\n}\n.admin-container__nav-item--active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, transparent);\n color: var(--mj-brand-primary);\n}\n.admin-container__nav-item--active[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--mj-brand-primary) 14%, transparent);\n}\n.admin-container__nav-icon[_ngcontent-%COMP%] {\n width: 18px;\n text-align: center;\n font-size: 13px;\n margin-top: 1px;\n flex-shrink: 0;\n color: inherit;\n}\n.admin-container__nav-text[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n.admin-container__nav-label[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 500;\n line-height: 1.2;\n}\n.admin-container__nav-desc[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n margin-top: 3px;\n line-height: 1.3;\n}\n.admin-container__nav-item--active[_ngcontent-%COMP%] .admin-container__nav-desc[_ngcontent-%COMP%] {\n color: color-mix(in srgb, var(--mj-brand-primary) 70%, var(--mj-text-muted));\n}\n\n\n\n.admin-container__content[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n background: var(--mj-bg-page);\n overflow: hidden;\n}\n\n\n\n.admin-container__host[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.admin-container__host--hidden[_ngcontent-%COMP%] { display: none; }\n.admin-container__host[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: block;\n}\n\n\n\n.admin-container__empty[_ngcontent-%COMP%], \n.admin-container__error[_ngcontent-%COMP%], \n.admin-container__loading[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n color: var(--mj-text-muted);\n font-size: 13px;\n padding: 32px;\n text-align: center;\n}\n.admin-container__error[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n.admin-container__error[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 20px; }\n.admin-container__loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 16px; color: var(--mj-brand-primary); }\n\n@media (max-width: 700px) {\n .admin-container__body[_ngcontent-%COMP%] { flex-direction: column; }\n .admin-container__nav[_ngcontent-%COMP%] {\n width: 100%;\n height: auto;\n max-height: 220px;\n border-right: none;\n border-bottom: 1px solid var(--mj-border-default);\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n }\n .admin-container__nav-item[_ngcontent-%COMP%] { flex: 1 1 calc(50% - 8px); margin-bottom: 0; }\n .admin-container__nav-desc[_ngcontent-%COMP%] { display: none; }\n .admin-container__header[_ngcontent-%COMP%] { padding: 12px 14px; gap: 10px; }\n}"] });
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵproperty("Title", ctx.ContainerTitle)("Icon", ctx.ContainerIcon)("Subtitle", ctx.ContainerSubtitle);
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵproperty("Flex", true)("Padding", false);
|
|
87
|
+
i0.ɵɵadvance();
|
|
88
|
+
i0.ɵɵproperty("Sections", ctx.NavSections)("ActiveId", ctx.ActiveSection);
|
|
89
|
+
i0.ɵɵadvance();
|
|
90
|
+
i0.ɵɵproperty("Loading", ctx.IsLoading)("Error", ctx.LoadError);
|
|
91
|
+
} }, dependencies: [i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJLeftNavComponent, i1.MJLeftNavContentComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n\n\n\n\n\n@media (max-width: 700px) {\n [_nghost-%COMP%] mj-page-body.mj-page-body--row {\n flex-direction: column;\n }\n}"] });
|
|
152
92
|
};
|
|
153
93
|
AdminDevToolsResourceComponent = __decorate([
|
|
154
94
|
RegisterClass(BaseResourceComponent, 'AdminDeveloperTools')
|
|
@@ -156,7 +96,7 @@ AdminDevToolsResourceComponent = __decorate([
|
|
|
156
96
|
export { AdminDevToolsResourceComponent };
|
|
157
97
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdminDevToolsResourceComponent, [{
|
|
158
98
|
type: Component,
|
|
159
|
-
args: [{ standalone: false, selector: 'mj-admin-dev-tools-resource', template: "<
|
|
99
|
+
args: [{ standalone: false, selector: 'mj-admin-dev-tools-resource', template: "<mj-page-layout>\n <mj-page-header\n [Title]=\"ContainerTitle\"\n [Icon]=\"ContainerIcon\"\n [Subtitle]=\"ContainerSubtitle\">\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\" Direction=\"row\">\n <mj-left-nav\n [Sections]=\"NavSections\"\n [ActiveId]=\"ActiveSection\"\n (ItemClicked)=\"OnNavItemClicked($event)\">\n </mj-left-nav>\n <mj-left-nav-content [Loading]=\"IsLoading\" [Error]=\"LoadError\">\n <ng-container #contentHost></ng-container>\n </mj-left-nav-content>\n </mj-page-body>\n</mj-page-layout>\n", styles: [":host { display: block; height: 100%; }\n\n/* Layout, rail styling, and content-area chrome all live in the shared\n <mj-page-body> / <mj-left-nav> / <mj-left-nav-content> components. The\n only thing this file owns is the responsive collapse of the parent flex\n direction at narrow viewports. See Section 10 of explorer-chrome-conventions. */\n@media (max-width: 700px) {\n :host ::ng-deep mj-page-body.mj-page-body--row {\n flex-direction: column;\n }\n}\n"] }]
|
|
160
100
|
}], null, null); })();
|
|
161
101
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AdminDevToolsResourceComponent, { className: "AdminDevToolsResourceComponent", filePath: "src/Admin/admin-dev-tools-resource.component.ts", lineNumber: 16 }); })();
|
|
162
102
|
//# sourceMappingURL=admin-dev-tools-resource.component.js.map
|