@memberjunction/ng-dashboards 5.34.1 → 5.35.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 +75 -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 +400 -89
- 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.js +990 -992
- 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.js +781 -783
- 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/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 +79 -30
- 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 +196 -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 +32 -40
- package/dist/Admin/admin-data-schema.component.js.map +1 -1
- package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
- package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
- package/dist/Admin/admin-identity-access.component.js +32 -40
- package/dist/Admin/admin-identity-access.component.js.map +1 -1
- package/dist/Admin/admin-monitoring.component.js +32 -40
- package/dist/Admin/admin-monitoring.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
- 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-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 +245 -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 +294 -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 +21 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
- package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
- 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 +19 -1
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -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 +309 -318
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +866 -847
- 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 +610 -606
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +241 -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.js +673 -674
- 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.js +745 -703
- 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 +18 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +486 -532
- 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.map +1 -1
- package/dist/Lists/components/lists-operations-resource.component.js +234 -246
- package/dist/Lists/components/lists-operations-resource.component.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 +262 -104
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +773 -783
- 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 +8 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +587 -608
- 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 +107 -93
- 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 +36 -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 +2 -1
- package/dist/communication-dashboards.module.d.ts.map +1 -1
- package/dist/communication-dashboards.module.js +24 -3
- 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 +31 -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 +1 -1
- package/dist/lists-dashboards.module.d.ts.map +1 -1
- package/dist/lists-dashboards.module.js +28 -1
- package/dist/lists-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +2 -2
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -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 +30 -0
- package/dist/testing-dashboards.module.js.map +1 -1
- package/package.json +52 -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
|
@@ -14,31 +14,24 @@ import * as i0 from "@angular/core";
|
|
|
14
14
|
import * as i1 from "@angular/forms";
|
|
15
15
|
import * as i2 from "@memberjunction/ng-ui-components";
|
|
16
16
|
const _c0 = () => [1, 2, 3, 4];
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
i0.ɵɵelementStart(0, "button", 16);
|
|
20
|
-
i0.ɵɵlistener("click", function EntityListComponent_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SearchTerm = ""); });
|
|
21
|
-
i0.ɵɵelement(1, "i", 17);
|
|
22
|
-
i0.ɵɵelementEnd();
|
|
23
|
-
} }
|
|
24
|
-
function EntityListComponent_Conditional_13_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
-
i0.ɵɵelementStart(0, "option", 20);
|
|
17
|
+
function EntityListComponent_Conditional_11_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "option", 14);
|
|
26
19
|
i0.ɵɵtext(1);
|
|
27
20
|
i0.ɵɵelementEnd();
|
|
28
21
|
} if (rf & 2) {
|
|
29
|
-
const
|
|
30
|
-
i0.ɵɵproperty("value",
|
|
22
|
+
const schema_r3 = ctx.$implicit;
|
|
23
|
+
i0.ɵɵproperty("value", schema_r3);
|
|
31
24
|
i0.ɵɵadvance();
|
|
32
|
-
i0.ɵɵtextInterpolate(
|
|
25
|
+
i0.ɵɵtextInterpolate(schema_r3);
|
|
33
26
|
} }
|
|
34
|
-
function
|
|
35
|
-
const
|
|
36
|
-
i0.ɵɵelementStart(0, "select",
|
|
37
|
-
i0.ɵɵlistener("change", function
|
|
38
|
-
i0.ɵɵelementStart(1, "option",
|
|
27
|
+
function EntityListComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
29
|
+
i0.ɵɵelementStart(0, "select", 12);
|
|
30
|
+
i0.ɵɵlistener("change", function EntityListComponent_Conditional_11_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.SelectedSchema = $event.target.value); });
|
|
31
|
+
i0.ɵɵelementStart(1, "option", 13);
|
|
39
32
|
i0.ɵɵtext(2, "All Schemas");
|
|
40
33
|
i0.ɵɵelementEnd();
|
|
41
|
-
i0.ɵɵrepeaterCreate(3,
|
|
34
|
+
i0.ɵɵrepeaterCreate(3, EntityListComponent_Conditional_11_For_4_Template, 2, 2, "option", 14, i0.ɵɵrepeaterTrackByIdentity);
|
|
42
35
|
i0.ɵɵelementEnd();
|
|
43
36
|
} if (rf & 2) {
|
|
44
37
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
@@ -46,9 +39,9 @@ function EntityListComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
|
46
39
|
i0.ɵɵadvance(3);
|
|
47
40
|
i0.ɵɵrepeater(ctx_r1.AvailableFilterSchemas);
|
|
48
41
|
} }
|
|
49
|
-
function
|
|
50
|
-
i0.ɵɵelementStart(0, "div",
|
|
51
|
-
i0.ɵɵelement(1, "i",
|
|
42
|
+
function EntityListComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
43
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
44
|
+
i0.ɵɵelement(1, "i", 15);
|
|
52
45
|
i0.ɵɵtext(2);
|
|
53
46
|
i0.ɵɵelementEnd();
|
|
54
47
|
} if (rf & 2) {
|
|
@@ -56,176 +49,176 @@ function EntityListComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
56
49
|
i0.ɵɵadvance(2);
|
|
57
50
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.ErrorMessage, " ");
|
|
58
51
|
} }
|
|
59
|
-
function
|
|
60
|
-
i0.ɵɵelementStart(0, "div",
|
|
61
|
-
i0.ɵɵelement(1, "div",
|
|
52
|
+
function EntityListComponent_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
54
|
+
i0.ɵɵelement(1, "div", 17)(2, "div", 18)(3, "div", 19)(4, "div", 19)(5, "div", 18)(6, "div", 19);
|
|
62
55
|
i0.ɵɵelementEnd();
|
|
63
56
|
} }
|
|
64
|
-
function
|
|
65
|
-
i0.ɵɵelementStart(0, "div",
|
|
66
|
-
i0.ɵɵrepeaterCreate(1,
|
|
57
|
+
function EntityListComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
59
|
+
i0.ɵɵrepeaterCreate(1, EntityListComponent_Conditional_14_For_2_Template, 7, 0, "div", 16, i0.ɵɵrepeaterTrackByIndex);
|
|
67
60
|
i0.ɵɵelementEnd();
|
|
68
61
|
} if (rf & 2) {
|
|
69
62
|
i0.ɵɵadvance();
|
|
70
63
|
i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c0));
|
|
71
64
|
} }
|
|
72
|
-
function
|
|
73
|
-
i0.ɵɵelement(0, "i",
|
|
65
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
+
i0.ɵɵelement(0, "i", 34);
|
|
74
67
|
} if (rf & 2) {
|
|
75
68
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
76
69
|
i0.ɵɵclassProp("fa-chevron-up", ctx_r1.SortDirection === "asc")("fa-chevron-down", ctx_r1.SortDirection === "desc");
|
|
77
70
|
} }
|
|
78
|
-
function
|
|
79
|
-
i0.ɵɵelement(0, "i",
|
|
71
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵelement(0, "i", 26);
|
|
80
73
|
} }
|
|
81
|
-
function
|
|
82
|
-
i0.ɵɵelement(0, "i",
|
|
74
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
75
|
+
i0.ɵɵelement(0, "i", 34);
|
|
83
76
|
} if (rf & 2) {
|
|
84
77
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
85
78
|
i0.ɵɵclassProp("fa-chevron-up", ctx_r1.SortDirection === "asc")("fa-chevron-down", ctx_r1.SortDirection === "desc");
|
|
86
79
|
} }
|
|
87
|
-
function
|
|
88
|
-
i0.ɵɵelement(0, "i",
|
|
80
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
i0.ɵɵelement(0, "i", 26);
|
|
89
82
|
} }
|
|
90
|
-
function
|
|
91
|
-
i0.ɵɵelement(0, "i",
|
|
83
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
84
|
+
i0.ɵɵelement(0, "i", 34);
|
|
92
85
|
} if (rf & 2) {
|
|
93
86
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
94
87
|
i0.ɵɵclassProp("fa-chevron-up", ctx_r1.SortDirection === "asc")("fa-chevron-down", ctx_r1.SortDirection === "desc");
|
|
95
88
|
} }
|
|
96
|
-
function
|
|
97
|
-
i0.ɵɵelement(0, "i",
|
|
89
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
i0.ɵɵelement(0, "i", 26);
|
|
98
91
|
} }
|
|
99
|
-
function
|
|
100
|
-
i0.ɵɵelement(0, "i",
|
|
92
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
+
i0.ɵɵelement(0, "i", 34);
|
|
101
94
|
} if (rf & 2) {
|
|
102
95
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
103
96
|
i0.ɵɵclassProp("fa-chevron-up", ctx_r1.SortDirection === "asc")("fa-chevron-down", ctx_r1.SortDirection === "desc");
|
|
104
97
|
} }
|
|
105
|
-
function
|
|
106
|
-
i0.ɵɵelement(0, "i",
|
|
98
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
99
|
+
i0.ɵɵelement(0, "i", 26);
|
|
107
100
|
} }
|
|
108
|
-
function
|
|
109
|
-
i0.ɵɵelement(0, "i",
|
|
101
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
+
i0.ɵɵelement(0, "i", 34);
|
|
110
103
|
} if (rf & 2) {
|
|
111
104
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
112
105
|
i0.ɵɵclassProp("fa-chevron-up", ctx_r1.SortDirection === "asc")("fa-chevron-down", ctx_r1.SortDirection === "desc");
|
|
113
106
|
} }
|
|
114
|
-
function
|
|
115
|
-
i0.ɵɵelement(0, "i",
|
|
107
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
i0.ɵɵelement(0, "i", 26);
|
|
116
109
|
} }
|
|
117
|
-
function
|
|
118
|
-
i0.ɵɵelementStart(0, "span",
|
|
110
|
+
function EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementStart(0, "span", 38);
|
|
119
112
|
i0.ɵɵtext(1, "You");
|
|
120
113
|
i0.ɵɵelementEnd();
|
|
121
114
|
} }
|
|
122
|
-
function
|
|
123
|
-
i0.ɵɵelementStart(0, "span",
|
|
124
|
-
i0.ɵɵelement(1, "i",
|
|
115
|
+
function EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
116
|
+
i0.ɵɵelementStart(0, "span", 44);
|
|
117
|
+
i0.ɵɵelement(1, "i", 52);
|
|
125
118
|
i0.ɵɵtext(2, " You ");
|
|
126
119
|
i0.ɵɵelementEnd();
|
|
127
120
|
} }
|
|
128
|
-
function
|
|
129
|
-
i0.ɵɵelementStart(0, "span",
|
|
121
|
+
function EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
+
i0.ɵɵelementStart(0, "span", 45);
|
|
130
123
|
i0.ɵɵtext(1);
|
|
131
124
|
i0.ɵɵelementEnd();
|
|
132
125
|
} if (rf & 2) {
|
|
133
|
-
const
|
|
126
|
+
const entity_r6 = i0.ɵɵnextContext().$implicit;
|
|
134
127
|
i0.ɵɵadvance();
|
|
135
|
-
i0.ɵɵtextInterpolate(
|
|
128
|
+
i0.ɵɵtextInterpolate(entity_r6.ownerDisplayName);
|
|
136
129
|
} }
|
|
137
|
-
function
|
|
138
|
-
i0.ɵɵelementStart(0, "span",
|
|
130
|
+
function EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
i0.ɵɵelementStart(0, "span", 46);
|
|
139
132
|
i0.ɵɵtext(1, "\u2014");
|
|
140
133
|
i0.ɵɵelementEnd();
|
|
141
134
|
} }
|
|
142
|
-
function
|
|
143
|
-
const
|
|
144
|
-
i0.ɵɵelementStart(0, "tr",
|
|
135
|
+
function EntityListComponent_Conditional_15_Conditional_0_For_33_Template(rf, ctx) { if (rf & 1) {
|
|
136
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
137
|
+
i0.ɵɵelementStart(0, "tr", 32)(1, "td", 35)(2, "div", 36)(3, "span", 37);
|
|
145
138
|
i0.ɵɵtext(4);
|
|
146
139
|
i0.ɵɵelementEnd();
|
|
147
|
-
i0.ɵɵconditionalCreate(5,
|
|
140
|
+
i0.ɵɵconditionalCreate(5, EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_5_Template, 2, 0, "span", 38);
|
|
148
141
|
i0.ɵɵelementEnd()();
|
|
149
|
-
i0.ɵɵelementStart(6, "td",
|
|
142
|
+
i0.ɵɵelementStart(6, "td", 39)(7, "span", 40);
|
|
150
143
|
i0.ɵɵtext(8);
|
|
151
144
|
i0.ɵɵelementEnd()();
|
|
152
|
-
i0.ɵɵelementStart(9, "td",
|
|
145
|
+
i0.ɵɵelementStart(9, "td", 41)(10, "code", 42);
|
|
153
146
|
i0.ɵɵtext(11);
|
|
154
147
|
i0.ɵɵelementEnd()();
|
|
155
|
-
i0.ɵɵelementStart(12, "td",
|
|
156
|
-
i0.ɵɵconditionalCreate(13,
|
|
148
|
+
i0.ɵɵelementStart(12, "td", 43);
|
|
149
|
+
i0.ɵɵconditionalCreate(13, EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_13_Template, 3, 0, "span", 44)(14, EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_14_Template, 2, 1, "span", 45)(15, EntityListComponent_Conditional_15_Conditional_0_For_33_Conditional_15_Template, 2, 0, "span", 46);
|
|
157
150
|
i0.ɵɵelementEnd();
|
|
158
|
-
i0.ɵɵelementStart(16, "td",
|
|
151
|
+
i0.ɵɵelementStart(16, "td", 47);
|
|
159
152
|
i0.ɵɵtext(17);
|
|
160
153
|
i0.ɵɵelementEnd();
|
|
161
|
-
i0.ɵɵelementStart(18, "td",
|
|
162
|
-
i0.ɵɵlistener("click", function
|
|
163
|
-
i0.ɵɵelement(21, "i",
|
|
154
|
+
i0.ɵɵelementStart(18, "td", 48)(19, "div", 49)(20, "button", 50);
|
|
155
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_0_For_33_Template_button_click_20_listener() { const entity_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnEditEntity(entity_r6)); });
|
|
156
|
+
i0.ɵɵelement(21, "i", 51);
|
|
164
157
|
i0.ɵɵtext(22, " Edit ");
|
|
165
158
|
i0.ɵɵelementEnd()()()();
|
|
166
159
|
} if (rf & 2) {
|
|
167
|
-
const
|
|
160
|
+
const entity_r6 = ctx.$implicit;
|
|
168
161
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
169
162
|
i0.ɵɵadvance(4);
|
|
170
|
-
i0.ɵɵtextInterpolate(
|
|
163
|
+
i0.ɵɵtextInterpolate(entity_r6.entityName);
|
|
171
164
|
i0.ɵɵadvance();
|
|
172
|
-
i0.ɵɵconditional(
|
|
165
|
+
i0.ɵɵconditional(entity_r6.isOwner ? 5 : -1);
|
|
173
166
|
i0.ɵɵadvance(3);
|
|
174
|
-
i0.ɵɵtextInterpolate(
|
|
167
|
+
i0.ɵɵtextInterpolate(entity_r6.schemaName);
|
|
175
168
|
i0.ɵɵadvance(3);
|
|
176
|
-
i0.ɵɵtextInterpolate(
|
|
169
|
+
i0.ɵɵtextInterpolate(entity_r6.tableName);
|
|
177
170
|
i0.ɵɵadvance(2);
|
|
178
|
-
i0.ɵɵconditional(
|
|
171
|
+
i0.ɵɵconditional(entity_r6.isOwner ? 13 : entity_r6.ownerDisplayName ? 14 : 15);
|
|
179
172
|
i0.ɵɵadvance(4);
|
|
180
|
-
i0.ɵɵtextInterpolate(ctx_r1.FormatDate(
|
|
173
|
+
i0.ɵɵtextInterpolate(ctx_r1.FormatDate(entity_r6.createdAt));
|
|
181
174
|
} }
|
|
182
|
-
function
|
|
175
|
+
function EntityListComponent_Conditional_15_Conditional_0_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
183
176
|
i0.ɵɵtext(0);
|
|
184
177
|
} if (rf & 2) {
|
|
185
178
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
186
179
|
i0.ɵɵtextInterpolate1(" matching \"", ctx_r1.SearchTerm, "\" ");
|
|
187
180
|
} }
|
|
188
|
-
function
|
|
189
|
-
const
|
|
190
|
-
i0.ɵɵelementStart(0, "div",
|
|
191
|
-
i0.ɵɵlistener("click", function
|
|
181
|
+
function EntityListComponent_Conditional_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
182
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
183
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "table", 22)(2, "thead")(3, "tr")(4, "th", 23);
|
|
184
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_0_Template_th_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("entityName")); });
|
|
192
185
|
i0.ɵɵtext(5, " Entity Name ");
|
|
193
|
-
i0.ɵɵelementStart(6, "span",
|
|
194
|
-
i0.ɵɵconditionalCreate(7,
|
|
186
|
+
i0.ɵɵelementStart(6, "span", 24);
|
|
187
|
+
i0.ɵɵconditionalCreate(7, EntityListComponent_Conditional_15_Conditional_0_Conditional_7_Template, 1, 4, "i", 25)(8, EntityListComponent_Conditional_15_Conditional_0_Conditional_8_Template, 1, 0, "i", 26);
|
|
195
188
|
i0.ɵɵelementEnd()();
|
|
196
|
-
i0.ɵɵelementStart(9, "th",
|
|
197
|
-
i0.ɵɵlistener("click", function
|
|
189
|
+
i0.ɵɵelementStart(9, "th", 27);
|
|
190
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_0_Template_th_click_9_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("schemaName")); });
|
|
198
191
|
i0.ɵɵtext(10, " Schema ");
|
|
199
|
-
i0.ɵɵelementStart(11, "span",
|
|
200
|
-
i0.ɵɵconditionalCreate(12,
|
|
192
|
+
i0.ɵɵelementStart(11, "span", 24);
|
|
193
|
+
i0.ɵɵconditionalCreate(12, EntityListComponent_Conditional_15_Conditional_0_Conditional_12_Template, 1, 4, "i", 25)(13, EntityListComponent_Conditional_15_Conditional_0_Conditional_13_Template, 1, 0, "i", 26);
|
|
201
194
|
i0.ɵɵelementEnd()();
|
|
202
|
-
i0.ɵɵelementStart(14, "th",
|
|
203
|
-
i0.ɵɵlistener("click", function
|
|
195
|
+
i0.ɵɵelementStart(14, "th", 28);
|
|
196
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_0_Template_th_click_14_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("tableName")); });
|
|
204
197
|
i0.ɵɵtext(15, " Table ");
|
|
205
|
-
i0.ɵɵelementStart(16, "span",
|
|
206
|
-
i0.ɵɵconditionalCreate(17,
|
|
198
|
+
i0.ɵɵelementStart(16, "span", 24);
|
|
199
|
+
i0.ɵɵconditionalCreate(17, EntityListComponent_Conditional_15_Conditional_0_Conditional_17_Template, 1, 4, "i", 25)(18, EntityListComponent_Conditional_15_Conditional_0_Conditional_18_Template, 1, 0, "i", 26);
|
|
207
200
|
i0.ɵɵelementEnd()();
|
|
208
|
-
i0.ɵɵelementStart(19, "th",
|
|
209
|
-
i0.ɵɵlistener("click", function
|
|
201
|
+
i0.ɵɵelementStart(19, "th", 29);
|
|
202
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_0_Template_th_click_19_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("owner")); });
|
|
210
203
|
i0.ɵɵtext(20, " Owner ");
|
|
211
|
-
i0.ɵɵelementStart(21, "span",
|
|
212
|
-
i0.ɵɵconditionalCreate(22,
|
|
204
|
+
i0.ɵɵelementStart(21, "span", 24);
|
|
205
|
+
i0.ɵɵconditionalCreate(22, EntityListComponent_Conditional_15_Conditional_0_Conditional_22_Template, 1, 4, "i", 25)(23, EntityListComponent_Conditional_15_Conditional_0_Conditional_23_Template, 1, 0, "i", 26);
|
|
213
206
|
i0.ɵɵelementEnd()();
|
|
214
|
-
i0.ɵɵelementStart(24, "th",
|
|
215
|
-
i0.ɵɵlistener("click", function
|
|
207
|
+
i0.ɵɵelementStart(24, "th", 30);
|
|
208
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_0_Template_th_click_24_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnSortChange("createdAt")); });
|
|
216
209
|
i0.ɵɵtext(25, " Created ");
|
|
217
|
-
i0.ɵɵelementStart(26, "span",
|
|
218
|
-
i0.ɵɵconditionalCreate(27,
|
|
210
|
+
i0.ɵɵelementStart(26, "span", 24);
|
|
211
|
+
i0.ɵɵconditionalCreate(27, EntityListComponent_Conditional_15_Conditional_0_Conditional_27_Template, 1, 4, "i", 25)(28, EntityListComponent_Conditional_15_Conditional_0_Conditional_28_Template, 1, 0, "i", 26);
|
|
219
212
|
i0.ɵɵelementEnd()();
|
|
220
|
-
i0.ɵɵelementStart(29, "th",
|
|
213
|
+
i0.ɵɵelementStart(29, "th", 31);
|
|
221
214
|
i0.ɵɵtext(30, "Actions");
|
|
222
215
|
i0.ɵɵelementEnd()()();
|
|
223
216
|
i0.ɵɵelementStart(31, "tbody");
|
|
224
|
-
i0.ɵɵrepeaterCreate(32,
|
|
217
|
+
i0.ɵɵrepeaterCreate(32, EntityListComponent_Conditional_15_Conditional_0_For_33_Template, 23, 6, "tr", 32, i0.ɵɵcomponentInstance().TrackByEntityId, true);
|
|
225
218
|
i0.ɵɵelementEnd()()();
|
|
226
|
-
i0.ɵɵelementStart(34, "div",
|
|
219
|
+
i0.ɵɵelementStart(34, "div", 33);
|
|
227
220
|
i0.ɵɵtext(35);
|
|
228
|
-
i0.ɵɵconditionalCreate(36,
|
|
221
|
+
i0.ɵɵconditionalCreate(36, EntityListComponent_Conditional_15_Conditional_0_Conditional_36_Template, 1, 1);
|
|
229
222
|
i0.ɵɵelementEnd();
|
|
230
223
|
} if (rf & 2) {
|
|
231
224
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -246,16 +239,16 @@ function EntityListComponent_Conditional_18_Conditional_0_Template(rf, ctx) { if
|
|
|
246
239
|
i0.ɵɵadvance();
|
|
247
240
|
i0.ɵɵconditional(ctx_r1.SearchTerm ? 36 : -1);
|
|
248
241
|
} }
|
|
249
|
-
function
|
|
250
|
-
const
|
|
251
|
-
i0.ɵɵelementStart(0, "h3",
|
|
242
|
+
function EntityListComponent_Conditional_15_Conditional_1_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
243
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
244
|
+
i0.ɵɵelementStart(0, "h3", 55);
|
|
252
245
|
i0.ɵɵtext(1);
|
|
253
246
|
i0.ɵɵelementEnd();
|
|
254
|
-
i0.ɵɵelementStart(2, "p",
|
|
247
|
+
i0.ɵɵelementStart(2, "p", 56);
|
|
255
248
|
i0.ɵɵtext(3, "Try a different search term or clear the filter.");
|
|
256
249
|
i0.ɵɵelementEnd();
|
|
257
|
-
i0.ɵɵelementStart(4, "button",
|
|
258
|
-
i0.ɵɵlistener("click", function
|
|
250
|
+
i0.ɵɵelementStart(4, "button", 57);
|
|
251
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_1_Conditional_3_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SearchTerm = ""); });
|
|
259
252
|
i0.ɵɵtext(5, " Clear search ");
|
|
260
253
|
i0.ɵɵelementEnd();
|
|
261
254
|
} if (rf & 2) {
|
|
@@ -263,33 +256,33 @@ function EntityListComponent_Conditional_18_Conditional_1_Conditional_3_Template
|
|
|
263
256
|
i0.ɵɵadvance();
|
|
264
257
|
i0.ɵɵtextInterpolate1("No entities match \"", ctx_r1.SearchTerm, "\"");
|
|
265
258
|
} }
|
|
266
|
-
function
|
|
267
|
-
const
|
|
268
|
-
i0.ɵɵelementStart(0, "h3",
|
|
259
|
+
function EntityListComponent_Conditional_15_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
260
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
261
|
+
i0.ɵɵelementStart(0, "h3", 55);
|
|
269
262
|
i0.ɵɵtext(1, "No entities yet");
|
|
270
263
|
i0.ɵɵelementEnd();
|
|
271
|
-
i0.ɵɵelementStart(2, "p",
|
|
264
|
+
i0.ɵɵelementStart(2, "p", 56);
|
|
272
265
|
i0.ɵɵtext(3, " Create your first user-defined entity. You can also use the Database Designer agent in a conversation for guided design. ");
|
|
273
266
|
i0.ɵɵelementEnd();
|
|
274
|
-
i0.ɵɵelementStart(4, "button",
|
|
275
|
-
i0.ɵɵlistener("click", function
|
|
276
|
-
i0.ɵɵelement(5, "i",
|
|
267
|
+
i0.ɵɵelementStart(4, "button", 58);
|
|
268
|
+
i0.ɵɵlistener("click", function EntityListComponent_Conditional_15_Conditional_1_Conditional_4_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnNewEntity()); });
|
|
269
|
+
i0.ɵɵelement(5, "i", 6);
|
|
277
270
|
i0.ɵɵtext(6, " Create Entity ");
|
|
278
271
|
i0.ɵɵelementEnd();
|
|
279
272
|
} }
|
|
280
|
-
function
|
|
281
|
-
i0.ɵɵelementStart(0, "div",
|
|
282
|
-
i0.ɵɵelement(2, "i",
|
|
273
|
+
function EntityListComponent_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
274
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 53);
|
|
275
|
+
i0.ɵɵelement(2, "i", 54);
|
|
283
276
|
i0.ɵɵelementEnd();
|
|
284
|
-
i0.ɵɵconditionalCreate(3,
|
|
277
|
+
i0.ɵɵconditionalCreate(3, EntityListComponent_Conditional_15_Conditional_1_Conditional_3_Template, 6, 1)(4, EntityListComponent_Conditional_15_Conditional_1_Conditional_4_Template, 7, 0);
|
|
285
278
|
i0.ɵɵelementEnd();
|
|
286
279
|
} if (rf & 2) {
|
|
287
280
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
288
281
|
i0.ɵɵadvance(3);
|
|
289
282
|
i0.ɵɵconditional(ctx_r1.SearchTerm ? 3 : 4);
|
|
290
283
|
} }
|
|
291
|
-
function
|
|
292
|
-
i0.ɵɵconditionalCreate(0,
|
|
284
|
+
function EntityListComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
285
|
+
i0.ɵɵconditionalCreate(0, EntityListComponent_Conditional_15_Conditional_0_Template, 37, 8)(1, EntityListComponent_Conditional_15_Conditional_1_Template, 5, 1, "div", 20);
|
|
293
286
|
} if (rf & 2) {
|
|
294
287
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
295
288
|
i0.ɵɵconditional(ctx_r1.FilteredEntities.length > 0 ? 0 : !ctx_r1.IsLoading ? 1 : -1);
|
|
@@ -426,54 +419,48 @@ export class EntityListComponent {
|
|
|
426
419
|
}
|
|
427
420
|
}
|
|
428
421
|
static ɵfac = function EntityListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || EntityListComponent)(); };
|
|
429
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityListComponent, selectors: [["mj-database-entity-list"]], outputs: { EditEntity: "EditEntity", ViewEntity: "ViewEntity", NewEntity: "NewEntity" }, standalone: false, decls:
|
|
430
|
-
i0.ɵɵelementStart(0, "
|
|
431
|
-
i0.ɵɵelement(3, "
|
|
432
|
-
i0.ɵɵtext(4, " Database Designer ");
|
|
422
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EntityListComponent, selectors: [["mj-database-entity-list"]], outputs: { EditEntity: "EditEntity", ViewEntity: "ViewEntity", NewEntity: "NewEntity" }, standalone: false, decls: 16, vars: 7, consts: [["Title", "Database Designer", "Icon", "fa-solid fa-table-cells-large", "Subtitle", "Browse and create user-defined entities"], ["meta", ""], ["Label", "entities", 3, "Count"], ["actions", ""], [3, "Clicked", "Loading"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search by name, table, or schema...", 3, "ValueChange", "Value"], ["aria-label", "Filter by schema", 1, "mj-input", "schema-filter", 3, "value"], ["role", "alert", 1, "entity-list-error"], ["aria-busy", "true", "aria-label", "Loading entities\u2026", 1, "skeleton-table"], ["aria-label", "Filter by schema", 1, "mj-input", "schema-filter", 3, "change", "value"], ["value", ""], [3, "value"], [1, "fa-solid", "fa-circle-exclamation"], [1, "skeleton-row"], [1, "skeleton-cell", "wide"], [1, "skeleton-cell", "medium"], [1, "skeleton-cell", "narrow"], [1, "zero-state"], [1, "table-wrap"], ["role", "grid", "aria-label", "User-defined entities", 1, "entity-table"], ["scope", "col", 1, "col-name", "sortable", 3, "click"], [1, "sort-icon"], [1, "fa-solid", 3, "fa-chevron-up", "fa-chevron-down"], [1, "fa-solid", "fa-chevron-up", "muted"], ["scope", "col", 1, "col-schema", "sortable", 3, "click"], ["scope", "col", 1, "col-table", "sortable", 3, "click"], ["scope", "col", 1, "col-owner", "sortable", 3, "click"], ["scope", "col", 1, "col-created", "sortable", 3, "click"], ["scope", "col", 1, "col-actions"], [1, "entity-row"], [1, "entity-count"], [1, "fa-solid"], [1, "col-name"], [1, "entity-name-cell"], [1, "entity-name"], ["title", "You own this entity", 1, "owner-badge", "owner-you"], [1, "col-schema"], [1, "schema-badge"], [1, "col-table"], [1, "table-name"], [1, "col-owner"], [1, "owner-self"], [1, "owner-other"], [1, "owner-other", "muted"], [1, "col-created"], [1, "col-actions"], [1, "row-actions"], ["mjButton", "", "buttonStyle", "secondary", "title", "Edit this entity", 1, "action-btn", 3, "click"], [1, "fa-solid", "fa-pen-to-square"], [1, "fa-solid", "fa-user-check"], [1, "zero-state-icon"], [1, "fa-regular", "fa-rectangle-list"], [1, "zero-state-title"], [1, "zero-state-body"], ["mjButton", "", "buttonStyle", "secondary", 3, "click"], ["mjButton", "", "buttonStyle", "primary", 3, "click"]], template: function EntityListComponent_Template(rf, ctx) { if (rf & 1) {
|
|
423
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1);
|
|
424
|
+
i0.ɵɵelement(3, "mj-stat-badge", 2);
|
|
433
425
|
i0.ɵɵelementEnd();
|
|
434
|
-
i0.ɵɵelementStart(5, "button", 4);
|
|
435
|
-
i0.ɵɵlistener("
|
|
436
|
-
i0.ɵɵelement(6, "i", 5);
|
|
437
|
-
i0.ɵɵtext(7, " New Entity ");
|
|
438
|
-
i0.ɵɵelementEnd()();
|
|
439
|
-
i0.ɵɵelementStart(8, "div", 6)(9, "div", 7);
|
|
440
|
-
i0.ɵɵelement(10, "i", 8);
|
|
441
|
-
i0.ɵɵelementStart(11, "input", 9);
|
|
442
|
-
i0.ɵɵtwoWayListener("ngModelChange", function EntityListComponent_Template_input_ngModelChange_11_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.SearchTerm, $event) || (ctx.SearchTerm = $event); return $event; });
|
|
426
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "mj-refresh-button", 4);
|
|
427
|
+
i0.ɵɵlistener("Clicked", function EntityListComponent_Template_mj_refresh_button_Clicked_5_listener() { return ctx.OnRefresh(); });
|
|
443
428
|
i0.ɵɵelementEnd();
|
|
444
|
-
i0.ɵɵ
|
|
445
|
-
i0.ɵɵ
|
|
446
|
-
i0.ɵɵ
|
|
447
|
-
i0.ɵɵ
|
|
448
|
-
i0.ɵɵlistener("click", function EntityListComponent_Template_button_click_14_listener() { return ctx.OnRefresh(); });
|
|
449
|
-
i0.ɵɵelement(15, "i", 13);
|
|
429
|
+
i0.ɵɵelementStart(6, "button", 5);
|
|
430
|
+
i0.ɵɵlistener("click", function EntityListComponent_Template_button_click_6_listener() { return ctx.OnNewEntity(); });
|
|
431
|
+
i0.ɵɵelement(7, "i", 6);
|
|
432
|
+
i0.ɵɵtext(8, " New Entity ");
|
|
450
433
|
i0.ɵɵelementEnd()();
|
|
451
|
-
i0.ɵɵ
|
|
452
|
-
i0.ɵɵ
|
|
453
|
-
i0.ɵɵconditionalCreate(18, EntityListComponent_Conditional_18_Template, 2, 1);
|
|
434
|
+
i0.ɵɵelementStart(9, "div", 7)(10, "mj-page-search", 8);
|
|
435
|
+
i0.ɵɵlistener("ValueChange", function EntityListComponent_Template_mj_page_search_ValueChange_10_listener($event) { return ctx.SearchTerm = $event; });
|
|
454
436
|
i0.ɵɵelementEnd();
|
|
437
|
+
i0.ɵɵconditionalCreate(11, EntityListComponent_Conditional_11_Template, 5, 1, "select", 9);
|
|
438
|
+
i0.ɵɵelementEnd()();
|
|
439
|
+
i0.ɵɵelementStart(12, "mj-page-body");
|
|
440
|
+
i0.ɵɵconditionalCreate(13, EntityListComponent_Conditional_13_Template, 3, 1, "div", 10);
|
|
441
|
+
i0.ɵɵconditionalCreate(14, EntityListComponent_Conditional_14_Template, 3, 1, "div", 11);
|
|
442
|
+
i0.ɵɵconditionalCreate(15, EntityListComponent_Conditional_15_Template, 2, 1);
|
|
443
|
+
i0.ɵɵelementEnd()();
|
|
455
444
|
} if (rf & 2) {
|
|
456
|
-
i0.ɵɵadvance(
|
|
457
|
-
i0.ɵɵ
|
|
458
|
-
i0.ɵɵadvance();
|
|
459
|
-
i0.ɵɵ
|
|
460
|
-
i0.ɵɵadvance();
|
|
461
|
-
i0.ɵɵ
|
|
462
|
-
i0.ɵɵadvance();
|
|
463
|
-
i0.ɵɵproperty("disabled", ctx.IsLoading);
|
|
464
|
-
i0.ɵɵadvance();
|
|
465
|
-
i0.ɵɵclassProp("fa-spin", ctx.IsLoading);
|
|
445
|
+
i0.ɵɵadvance(3);
|
|
446
|
+
i0.ɵɵproperty("Count", ctx.FilteredEntities.length);
|
|
447
|
+
i0.ɵɵadvance(2);
|
|
448
|
+
i0.ɵɵproperty("Loading", ctx.IsLoading);
|
|
449
|
+
i0.ɵɵadvance(5);
|
|
450
|
+
i0.ɵɵproperty("Value", ctx.SearchTerm);
|
|
466
451
|
i0.ɵɵadvance();
|
|
467
|
-
i0.ɵɵconditional(ctx.
|
|
452
|
+
i0.ɵɵconditional(ctx.AvailableFilterSchemas.length > 1 ? 11 : -1);
|
|
453
|
+
i0.ɵɵadvance(2);
|
|
454
|
+
i0.ɵɵconditional(ctx.ErrorMessage ? 13 : -1);
|
|
468
455
|
i0.ɵɵadvance();
|
|
469
|
-
i0.ɵɵconditional(ctx.IsLoading && ctx.FilteredEntities.length === 0 ?
|
|
456
|
+
i0.ɵɵconditional(ctx.IsLoading && ctx.FilteredEntities.length === 0 ? 14 : -1);
|
|
470
457
|
i0.ɵɵadvance();
|
|
471
|
-
i0.ɵɵconditional(!ctx.IsLoading || ctx.FilteredEntities.length > 0 ?
|
|
472
|
-
} }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption,
|
|
458
|
+
i0.ɵɵconditional(!ctx.IsLoading || ctx.FilteredEntities.length > 0 ? 15 : -1);
|
|
459
|
+
} }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i2.MJButtonDirective, i2.MJPageLayoutComponent, i2.MJPageHeaderComponent, i2.MJPageBodyComponent, i2.MJPageSearchComponent, i2.MJRefreshButtonComponent, i2.MJStatBadgeComponent], styles: ["\n\n.schema-filter[_ngcontent-%COMP%] {\n width: auto;\n min-width: 160px;\n max-width: 220px;\n flex-shrink: 0;\n}\n\n\n\n\n.entity-list-error[_ngcontent-%COMP%] {\n margin: 12px 24px;\n padding: 10px 14px;\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n border-radius: 6px;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.875rem;\n}\n\n\n\n\n.skeleton-table[_ngcontent-%COMP%] {\n padding: 0 24px;\n margin-top: 8px;\n}\n\n.skeleton-row[_ngcontent-%COMP%] {\n display: flex;\n gap: 16px;\n padding: 12px 0;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.skeleton-cell[_ngcontent-%COMP%] {\n height: 18px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n animation: _ngcontent-%COMP%_skeleton-pulse 1.4s ease-in-out infinite;\n}\n\n.skeleton-cell.wide[_ngcontent-%COMP%] { flex: 3; }\n.skeleton-cell.medium[_ngcontent-%COMP%] { flex: 2; }\n.skeleton-cell.narrow[_ngcontent-%COMP%] { flex: 1; }\n\n@keyframes _ngcontent-%COMP%_skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n\n\n\n\n.table-wrap[_ngcontent-%COMP%] {\n flex: 1;\n overflow: auto;\n padding: 0 24px;\n}\n\n\n\n\n.entity-table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.9rem;\n}\n\n.entity-table[_ngcontent-%COMP%] thead[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.entity-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n padding: 10px 12px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n white-space: nowrap;\n user-select: none;\n}\n\n.entity-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.entity-table[_ngcontent-%COMP%] th.sortable[_ngcontent-%COMP%]:hover {\n color: var(--mj-text-primary);\n}\n\n.sort-icon[_ngcontent-%COMP%] {\n display: inline-block;\n margin-left: 5px;\n font-size: 0.75rem;\n vertical-align: middle;\n min-width: 14px;\n}\n\n.sort-icon[_ngcontent-%COMP%] .muted[_ngcontent-%COMP%] {\n opacity: 0.3;\n}\n\n.entity-row[_ngcontent-%COMP%] {\n border-bottom: 1px solid var(--mj-border-subtle);\n transition: background 0.1s;\n}\n\n.entity-row[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.entity-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 12px 12px;\n color: var(--mj-text-primary);\n vertical-align: middle;\n}\n\n\n\n\n\n\n.entity-table[_ngcontent-%COMP%] {\n table-layout: fixed;\n}\n\n.col-name[_ngcontent-%COMP%] { width: 28%; }\n.col-schema[_ngcontent-%COMP%] { width: 14%; }\n.col-table[_ngcontent-%COMP%] { width: 18%; }\n.col-owner[_ngcontent-%COMP%] { width: 15%; }\n.col-created[_ngcontent-%COMP%] { width: 13%; white-space: nowrap; }\n.col-actions[_ngcontent-%COMP%] { width: 12%; }\n\n\n\n\n.entity-name-cell[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.owner-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.owner-badge.owner-you[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.schema-badge[_ngcontent-%COMP%] {\n display: inline-block;\n font-size: 0.8rem;\n font-family: monospace;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-subtle);\n}\n\ncode.table-name[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.owner-self[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n color: var(--mj-brand-primary);\n font-size: 0.875rem;\n}\n\n.owner-self[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n}\n\n.owner-other[_ngcontent-%COMP%] {\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n}\n\n.owner-other.muted[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n}\n\n\n\n\n.row-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-btn[_ngcontent-%COMP%] {\n font-size: 0.8125rem;\n padding: 6px 12px;\n}\n\n\n\n\n.entity-count[_ngcontent-%COMP%] {\n padding: 10px 24px;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n border-top: 1px solid var(--mj-border-subtle);\n flex-shrink: 0;\n}\n\n\n\n\n.zero-state[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n gap: 16px;\n}\n\n.zero-state-icon[_ngcontent-%COMP%] {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background: var(--mj-bg-surface-sunken);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.zero-state-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n color: var(--mj-text-muted);\n}\n\n.zero-state-title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.zero-state-body[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 0.9rem;\n color: var(--mj-text-secondary);\n max-width: 420px;\n line-height: 1.6;\n word-break: break-word;\n overflow-wrap: break-word;\n}"], changeDetection: 0 });
|
|
473
460
|
}
|
|
474
461
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EntityListComponent, [{
|
|
475
462
|
type: Component,
|
|
476
|
-
args: [{ standalone: false, selector: 'mj-database-entity-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"entity-list-root\">\n\n <!-- \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"entity-list-header\">\n <h2 class=\"entity-list-title\">\n <i class=\"fa-solid fa-table-cells-large\"></i>\n Database Designer\n </h2>\n <button\n mjButton\n buttonStyle=\"primary\"\n class=\"new-entity-btn\"\n (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i>\n New Entity\n </button>\n </div>\n\n <!-- \u2500\u2500 Toolbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"entity-list-toolbar\">\n <div class=\"search-wrap\">\n <i class=\"fa-solid fa-magnifying-glass search-icon\"></i>\n <input\n type=\"text\"\n class=\"mj-input search-input\"\n placeholder=\"Search by name, table, or schema\u2026\"\n [(ngModel)]=\"SearchTerm\"\n aria-label=\"Search entities\" />\n @if (SearchTerm) {\n <button\n class=\"search-clear\"\n (click)=\"SearchTerm = ''\"\n aria-label=\"Clear search\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n }\n </div>\n\n @if (AvailableFilterSchemas.length > 1) {\n <select\n class=\"mj-input schema-filter\"\n [value]=\"SelectedSchema\"\n (change)=\"SelectedSchema = $any($event.target).value\"\n aria-label=\"Filter by schema\">\n <option value=\"\">All Schemas</option>\n @for (schema of AvailableFilterSchemas; track schema) {\n <option [value]=\"schema\">{{ schema }}</option>\n }\n </select>\n }\n\n <button\n mjButton\n buttonStyle=\"secondary\"\n class=\"refresh-btn\"\n title=\"Refresh list\"\n [disabled]=\"IsLoading\"\n (click)=\"OnRefresh()\">\n <i class=\"fa-solid fa-rotate\" [class.fa-spin]=\"IsLoading\"></i>\n </button>\n </div>\n\n <!-- \u2500\u2500 Error \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (ErrorMessage) {\n <div class=\"entity-list-error\" role=\"alert\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ ErrorMessage }}\n </div>\n }\n\n <!-- \u2500\u2500 Loading skeleton \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (IsLoading && FilteredEntities.length === 0) {\n <div class=\"skeleton-table\" aria-busy=\"true\" aria-label=\"Loading entities\u2026\">\n @for (_ of [1, 2, 3, 4]; track $index) {\n <div class=\"skeleton-row\">\n <div class=\"skeleton-cell wide\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n </div>\n }\n </div>\n }\n\n <!-- \u2500\u2500 Entity table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!IsLoading || FilteredEntities.length > 0) {\n @if (FilteredEntities.length > 0) {\n <div class=\"table-wrap\">\n <table class=\"entity-table\" role=\"grid\" aria-label=\"User-defined entities\">\n <thead>\n <tr>\n <th class=\"col-name sortable\" (click)=\"OnSortChange('entityName')\" scope=\"col\">\n Entity Name\n <span class=\"sort-icon\">\n @if (SortField === 'entityName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-schema sortable\" (click)=\"OnSortChange('schemaName')\" scope=\"col\">\n Schema\n <span class=\"sort-icon\">\n @if (SortField === 'schemaName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-table sortable\" (click)=\"OnSortChange('tableName')\" scope=\"col\">\n Table\n <span class=\"sort-icon\">\n @if (SortField === 'tableName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-owner sortable\" (click)=\"OnSortChange('owner')\" scope=\"col\">\n Owner\n <span class=\"sort-icon\">\n @if (SortField === 'owner') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-created sortable\" (click)=\"OnSortChange('createdAt')\" scope=\"col\">\n Created\n <span class=\"sort-icon\">\n @if (SortField === 'createdAt') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (entity of FilteredEntities; track TrackByEntityId($index, entity)) {\n <tr class=\"entity-row\">\n <td class=\"col-name\">\n <div class=\"entity-name-cell\">\n <span class=\"entity-name\">{{ entity.entityName }}</span>\n @if (entity.isOwner) {\n <span class=\"owner-badge owner-you\" title=\"You own this entity\">You</span>\n }\n </div>\n </td>\n <td class=\"col-schema\">\n <span class=\"schema-badge\">{{ entity.schemaName }}</span>\n </td>\n <td class=\"col-table\">\n <code class=\"table-name\">{{ entity.tableName }}</code>\n </td>\n <td class=\"col-owner\">\n @if (entity.isOwner) {\n <span class=\"owner-self\">\n <i class=\"fa-solid fa-user-check\"></i>\n You\n </span>\n } @else if (entity.ownerDisplayName) {\n <span class=\"owner-other\">{{ entity.ownerDisplayName }}</span>\n } @else {\n <span class=\"owner-other muted\">\u2014</span>\n }\n </td>\n <td class=\"col-created\">{{ FormatDate(entity.createdAt) }}</td>\n <td class=\"col-actions\">\n <div class=\"row-actions\">\n <button\n mjButton\n buttonStyle=\"secondary\"\n class=\"action-btn\"\n title=\"Edit this entity\"\n (click)=\"OnEditEntity(entity)\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n Edit\n </button>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"entity-count\">\n {{ FilteredEntities.length }} {{ FilteredEntities.length === 1 ? 'entity' : 'entities' }}\n @if (SearchTerm) { matching \"{{ SearchTerm }}\" }\n </div>\n } @else if (!IsLoading) {\n <!-- \u2500\u2500 Zero state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"zero-state\">\n <div class=\"zero-state-icon\">\n <i class=\"fa-regular fa-rectangle-list\"></i>\n </div>\n @if (SearchTerm) {\n <h3 class=\"zero-state-title\">No entities match \"{{ SearchTerm }}\"</h3>\n <p class=\"zero-state-body\">Try a different search term or clear the filter.</p>\n <button mjButton buttonStyle=\"secondary\" (click)=\"SearchTerm = ''\">\n Clear search\n </button>\n } @else {\n <h3 class=\"zero-state-title\">No entities yet</h3>\n <p class=\"zero-state-body\">\n Create your first user-defined entity. You can also use the\n Database Designer agent in a conversation for guided design.\n </p>\n <button mjButton buttonStyle=\"primary\" (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Entity\n </button>\n }\n </div>\n }\n }\n</div>\n", styles: ["/* \u2500\u2500 Root \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-list-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 0;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-list-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px 16px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-shrink: 0;\n}\n\n.entity-list-title {\n margin: 0;\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.entity-list-title i {\n color: var(--mj-brand-primary);\n font-size: 1.1rem;\n}\n\n/* \u2500\u2500 Toolbar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-list-toolbar {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 14px 24px;\n border-bottom: 1px solid var(--mj-border-subtle);\n flex-shrink: 0;\n}\n\n.search-wrap {\n position: relative;\n flex: 1;\n max-width: 400px;\n}\n\n.search-icon {\n position: absolute;\n left: 10px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--mj-text-muted);\n pointer-events: none;\n font-size: 0.875rem;\n}\n\n.search-input {\n width: 100%;\n padding-left: 32px;\n padding-right: 32px;\n box-sizing: border-box;\n}\n\n.schema-filter {\n width: auto;\n min-width: 160px;\n max-width: 220px;\n flex-shrink: 0;\n}\n\n.search-clear {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n background: none;\n border: none;\n padding: 4px 6px;\n color: var(--mj-text-muted);\n cursor: pointer;\n border-radius: 4px;\n line-height: 1;\n transition: color 0.15s, background 0.15s;\n}\n\n.search-clear:hover {\n color: var(--mj-text-primary);\n background: var(--mj-bg-surface-hover);\n}\n\n/* \u2500\u2500 Error banner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-list-error {\n margin: 12px 24px;\n padding: 10px 14px;\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n border-radius: 6px;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.875rem;\n}\n\n/* \u2500\u2500 Skeleton loader \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.skeleton-table {\n padding: 0 24px;\n margin-top: 8px;\n}\n\n.skeleton-row {\n display: flex;\n gap: 16px;\n padding: 12px 0;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.skeleton-cell {\n height: 18px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n animation: skeleton-pulse 1.4s ease-in-out infinite;\n}\n\n.skeleton-cell.wide { flex: 3; }\n.skeleton-cell.medium { flex: 2; }\n.skeleton-cell.narrow { flex: 1; }\n\n@keyframes skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n\n/* \u2500\u2500 Table wrap \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.table-wrap {\n flex: 1;\n overflow: auto;\n padding: 0 24px;\n}\n\n/* \u2500\u2500 Entity table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.9rem;\n}\n\n.entity-table thead tr {\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.entity-table th {\n padding: 10px 12px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n white-space: nowrap;\n user-select: none;\n}\n\n.entity-table th.sortable {\n cursor: pointer;\n}\n\n.entity-table th.sortable:hover {\n color: var(--mj-text-primary);\n}\n\n.sort-icon {\n display: inline-block;\n margin-left: 5px;\n font-size: 0.75rem;\n vertical-align: middle;\n min-width: 14px;\n}\n\n.sort-icon .muted {\n opacity: 0.3;\n}\n\n.entity-row {\n border-bottom: 1px solid var(--mj-border-subtle);\n transition: background 0.1s;\n}\n\n.entity-row:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.entity-table td {\n padding: 12px 12px;\n color: var(--mj-text-primary);\n vertical-align: middle;\n}\n\n/* \u2500\u2500 Column sizing \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* Fixed layout \u2014 percentages for content columns, px only for utility columns */\n\n.entity-table {\n table-layout: fixed;\n}\n\n.col-name { width: 28%; }\n.col-schema { width: 14%; }\n.col-table { width: 18%; }\n.col-owner { width: 15%; }\n.col-created { width: 13%; white-space: nowrap; }\n.col-actions { width: 12%; }\n\n/* \u2500\u2500 Cell content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-name-cell {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.owner-badge {\n display: inline-flex;\n align-items: center;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.owner-badge.owner-you {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.schema-badge {\n display: inline-block;\n font-size: 0.8rem;\n font-family: monospace;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-subtle);\n}\n\ncode.table-name {\n font-size: 0.8rem;\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.owner-self {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n color: var(--mj-brand-primary);\n font-size: 0.875rem;\n}\n\n.owner-self i {\n font-size: 0.8rem;\n}\n\n.owner-other {\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n}\n\n.owner-other.muted {\n color: var(--mj-text-muted);\n}\n\n/* \u2500\u2500 Row actions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.row-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-btn {\n font-size: 0.8125rem;\n padding: 6px 12px;\n}\n\n/* \u2500\u2500 Row count footer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-count {\n padding: 10px 24px;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n border-top: 1px solid var(--mj-border-subtle);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Zero state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.zero-state {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n gap: 16px;\n}\n\n.zero-state-icon {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background: var(--mj-bg-surface-sunken);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.zero-state-icon i {\n font-size: 2rem;\n color: var(--mj-text-muted);\n}\n\n.zero-state-title {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.zero-state-body {\n margin: 0;\n font-size: 0.9rem;\n color: var(--mj-text-secondary);\n max-width: 420px;\n line-height: 1.6;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n"] }]
|
|
463
|
+
args: [{ standalone: false, selector: 'mj-database-entity-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header\n Title=\"Database Designer\"\n Icon=\"fa-solid fa-table-cells-large\"\n Subtitle=\"Browse and create user-defined entities\">\n <div meta>\n <mj-stat-badge [Count]=\"FilteredEntities.length\" Label=\"entities\"></mj-stat-badge>\n </div>\n <div actions>\n <mj-refresh-button [Loading]=\"IsLoading\" (Clicked)=\"OnRefresh()\"></mj-refresh-button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i> New Entity\n </button>\n </div>\n <div toolbar>\n <mj-page-search\n Placeholder=\"Search by name, table, or schema...\"\n [Value]=\"SearchTerm\"\n (ValueChange)=\"SearchTerm = $event\">\n </mj-page-search>\n @if (AvailableFilterSchemas.length > 1) {\n <select\n class=\"mj-input schema-filter\"\n [value]=\"SelectedSchema\"\n (change)=\"SelectedSchema = $any($event.target).value\"\n aria-label=\"Filter by schema\">\n <option value=\"\">All Schemas</option>\n @for (schema of AvailableFilterSchemas; track schema) {\n <option [value]=\"schema\">{{ schema }}</option>\n }\n </select>\n }\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <!-- \u2500\u2500 Error \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (ErrorMessage) {\n <div class=\"entity-list-error\" role=\"alert\">\n <i class=\"fa-solid fa-circle-exclamation\"></i>\n {{ ErrorMessage }}\n </div>\n }\n\n <!-- \u2500\u2500 Loading skeleton \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (IsLoading && FilteredEntities.length === 0) {\n <div class=\"skeleton-table\" aria-busy=\"true\" aria-label=\"Loading entities\u2026\">\n @for (_ of [1, 2, 3, 4]; track $index) {\n <div class=\"skeleton-row\">\n <div class=\"skeleton-cell wide\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n <div class=\"skeleton-cell medium\"></div>\n <div class=\"skeleton-cell narrow\"></div>\n </div>\n }\n </div>\n }\n\n <!-- \u2500\u2500 Entity table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n @if (!IsLoading || FilteredEntities.length > 0) {\n @if (FilteredEntities.length > 0) {\n <div class=\"table-wrap\">\n <table class=\"entity-table\" role=\"grid\" aria-label=\"User-defined entities\">\n <thead>\n <tr>\n <th class=\"col-name sortable\" (click)=\"OnSortChange('entityName')\" scope=\"col\">\n Entity Name\n <span class=\"sort-icon\">\n @if (SortField === 'entityName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-schema sortable\" (click)=\"OnSortChange('schemaName')\" scope=\"col\">\n Schema\n <span class=\"sort-icon\">\n @if (SortField === 'schemaName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-table sortable\" (click)=\"OnSortChange('tableName')\" scope=\"col\">\n Table\n <span class=\"sort-icon\">\n @if (SortField === 'tableName') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-owner sortable\" (click)=\"OnSortChange('owner')\" scope=\"col\">\n Owner\n <span class=\"sort-icon\">\n @if (SortField === 'owner') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-created sortable\" (click)=\"OnSortChange('createdAt')\" scope=\"col\">\n Created\n <span class=\"sort-icon\">\n @if (SortField === 'createdAt') {\n <i class=\"fa-solid\" [class.fa-chevron-up]=\"SortDirection === 'asc'\" [class.fa-chevron-down]=\"SortDirection === 'desc'\"></i>\n } @else {\n <i class=\"fa-solid fa-chevron-up muted\"></i>\n }\n </span>\n </th>\n <th class=\"col-actions\" scope=\"col\">Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (entity of FilteredEntities; track TrackByEntityId($index, entity)) {\n <tr class=\"entity-row\">\n <td class=\"col-name\">\n <div class=\"entity-name-cell\">\n <span class=\"entity-name\">{{ entity.entityName }}</span>\n @if (entity.isOwner) {\n <span class=\"owner-badge owner-you\" title=\"You own this entity\">You</span>\n }\n </div>\n </td>\n <td class=\"col-schema\">\n <span class=\"schema-badge\">{{ entity.schemaName }}</span>\n </td>\n <td class=\"col-table\">\n <code class=\"table-name\">{{ entity.tableName }}</code>\n </td>\n <td class=\"col-owner\">\n @if (entity.isOwner) {\n <span class=\"owner-self\">\n <i class=\"fa-solid fa-user-check\"></i>\n You\n </span>\n } @else if (entity.ownerDisplayName) {\n <span class=\"owner-other\">{{ entity.ownerDisplayName }}</span>\n } @else {\n <span class=\"owner-other muted\">\u2014</span>\n }\n </td>\n <td class=\"col-created\">{{ FormatDate(entity.createdAt) }}</td>\n <td class=\"col-actions\">\n <div class=\"row-actions\">\n <button\n mjButton\n buttonStyle=\"secondary\"\n class=\"action-btn\"\n title=\"Edit this entity\"\n (click)=\"OnEditEntity(entity)\">\n <i class=\"fa-solid fa-pen-to-square\"></i>\n Edit\n </button>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"entity-count\">\n {{ FilteredEntities.length }} {{ FilteredEntities.length === 1 ? 'entity' : 'entities' }}\n @if (SearchTerm) { matching \"{{ SearchTerm }}\" }\n </div>\n } @else if (!IsLoading) {\n <!-- \u2500\u2500 Zero state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n <div class=\"zero-state\">\n <div class=\"zero-state-icon\">\n <i class=\"fa-regular fa-rectangle-list\"></i>\n </div>\n @if (SearchTerm) {\n <h3 class=\"zero-state-title\">No entities match \"{{ SearchTerm }}\"</h3>\n <p class=\"zero-state-body\">Try a different search term or clear the filter.</p>\n <button mjButton buttonStyle=\"secondary\" (click)=\"SearchTerm = ''\">\n Clear search\n </button>\n } @else {\n <h3 class=\"zero-state-title\">No entities yet</h3>\n <p class=\"zero-state-body\">\n Create your first user-defined entity. You can also use the\n Database Designer agent in a conversation for guided design.\n </p>\n <button mjButton buttonStyle=\"primary\" (click)=\"OnNewEntity()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Entity\n </button>\n }\n </div>\n }\n }\n </mj-page-body>\n</mj-page-layout>\n", styles: ["/* Schema filter used in the [toolbar] slot. */\n.schema-filter {\n width: auto;\n min-width: 160px;\n max-width: 220px;\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Error banner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-list-error {\n margin: 12px 24px;\n padding: 10px 14px;\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n border-radius: 6px;\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 0.875rem;\n}\n\n/* \u2500\u2500 Skeleton loader \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.skeleton-table {\n padding: 0 24px;\n margin-top: 8px;\n}\n\n.skeleton-row {\n display: flex;\n gap: 16px;\n padding: 12px 0;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n\n.skeleton-cell {\n height: 18px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n animation: skeleton-pulse 1.4s ease-in-out infinite;\n}\n\n.skeleton-cell.wide { flex: 3; }\n.skeleton-cell.medium { flex: 2; }\n.skeleton-cell.narrow { flex: 1; }\n\n@keyframes skeleton-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n\n/* \u2500\u2500 Table wrap \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.table-wrap {\n flex: 1;\n overflow: auto;\n padding: 0 24px;\n}\n\n/* \u2500\u2500 Entity table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-table {\n width: 100%;\n border-collapse: collapse;\n font-size: 0.9rem;\n}\n\n.entity-table thead tr {\n border-bottom: 2px solid var(--mj-border-default);\n}\n\n.entity-table th {\n padding: 10px 12px;\n text-align: left;\n font-weight: 600;\n color: var(--mj-text-secondary);\n font-size: 0.8125rem;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n white-space: nowrap;\n user-select: none;\n}\n\n.entity-table th.sortable {\n cursor: pointer;\n}\n\n.entity-table th.sortable:hover {\n color: var(--mj-text-primary);\n}\n\n.sort-icon {\n display: inline-block;\n margin-left: 5px;\n font-size: 0.75rem;\n vertical-align: middle;\n min-width: 14px;\n}\n\n.sort-icon .muted {\n opacity: 0.3;\n}\n\n.entity-row {\n border-bottom: 1px solid var(--mj-border-subtle);\n transition: background 0.1s;\n}\n\n.entity-row:hover {\n background: var(--mj-bg-surface-hover);\n}\n\n.entity-table td {\n padding: 12px 12px;\n color: var(--mj-text-primary);\n vertical-align: middle;\n}\n\n/* \u2500\u2500 Column sizing \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* Fixed layout \u2014 percentages for content columns, px only for utility columns */\n\n.entity-table {\n table-layout: fixed;\n}\n\n.col-name { width: 28%; }\n.col-schema { width: 14%; }\n.col-table { width: 18%; }\n.col-owner { width: 15%; }\n.col-created { width: 13%; white-space: nowrap; }\n.col-actions { width: 12%; }\n\n/* \u2500\u2500 Cell content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-name-cell {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.entity-name {\n font-weight: 500;\n color: var(--mj-text-primary);\n}\n\n.owner-badge {\n display: inline-flex;\n align-items: center;\n font-size: 0.7rem;\n font-weight: 600;\n padding: 2px 6px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.owner-badge.owner-you {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.schema-badge {\n display: inline-block;\n font-size: 0.8rem;\n font-family: monospace;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n border: 1px solid var(--mj-border-subtle);\n}\n\ncode.table-name {\n font-size: 0.8rem;\n font-family: monospace;\n color: var(--mj-text-secondary);\n}\n\n.owner-self {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n color: var(--mj-brand-primary);\n font-size: 0.875rem;\n}\n\n.owner-self i {\n font-size: 0.8rem;\n}\n\n.owner-other {\n color: var(--mj-text-secondary);\n font-size: 0.875rem;\n}\n\n.owner-other.muted {\n color: var(--mj-text-muted);\n}\n\n/* \u2500\u2500 Row actions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.row-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.action-btn {\n font-size: 0.8125rem;\n padding: 6px 12px;\n}\n\n/* \u2500\u2500 Row count footer \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.entity-count {\n padding: 10px 24px;\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n border-top: 1px solid var(--mj-border-subtle);\n flex-shrink: 0;\n}\n\n/* \u2500\u2500 Zero state \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n.zero-state {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 60px 24px;\n text-align: center;\n gap: 16px;\n}\n\n.zero-state-icon {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background: var(--mj-bg-surface-sunken);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.zero-state-icon i {\n font-size: 2rem;\n color: var(--mj-text-muted);\n}\n\n.zero-state-title {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.zero-state-body {\n margin: 0;\n font-size: 0.9rem;\n color: var(--mj-text-secondary);\n max-width: 420px;\n line-height: 1.6;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n"] }]
|
|
477
464
|
}], null, { EditEntity: [{
|
|
478
465
|
type: Output
|
|
479
466
|
}], ViewEntity: [{
|