@memberjunction/ng-dashboards 5.30.1 → 5.32.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.map +1 -1
- package/dist/AI/components/agents/agent-configuration.component.js +4 -4
- package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts +2 -1
- package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
- package/dist/AI/components/agents/agent-editor.component.js +8 -6
- package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +2 -1
- 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 +6 -5
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +2 -1
- 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 +6 -5
- 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 +2 -1
- 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 +6 -5
- 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 +2 -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 +7 -4
- 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 +3 -2
- 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 +10 -6
- 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 +2 -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 +6 -5
- 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 +2 -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 +6 -5
- package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +55 -52
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +4 -3
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/models/model-management.component.js +2 -2
- package/dist/AI/components/models/model-management.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +2 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +10 -8
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-management.component.js +2 -2
- package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts +2 -1
- package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/prompt-version-control.component.js +13 -10
- package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js +1 -1
- package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1181 -0
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -0
- package/dist/AI/components/tags/tags-resource.component.js +7487 -0
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +25 -21
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/index.d.ts +1 -0
- package/dist/AI/index.d.ts.map +1 -1
- package/dist/AI/index.js +5 -0
- package/dist/AI/index.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts +5 -0
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +12 -4
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-applications-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-applications-panel.component.js +5 -4
- package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts +2 -1
- package/dist/APIKeys/api-key-create-dialog.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-create-dialog.component.js +5 -5
- package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-key-edit-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-edit-panel.component.js +11 -10
- package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
- package/dist/APIKeys/api-key-list.component.d.ts +2 -1
- package/dist/APIKeys/api-key-list.component.d.ts.map +1 -1
- package/dist/APIKeys/api-key-list.component.js +6 -5
- package/dist/APIKeys/api-key-list.component.js.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.d.ts.map +1 -1
- package/dist/APIKeys/api-keys-resource.component.js +4 -4
- package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-scopes-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-scopes-panel.component.js +8 -6
- package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.d.ts +3 -2
- package/dist/APIKeys/api-usage-panel.component.d.ts.map +1 -1
- package/dist/APIKeys/api-usage-panel.component.js +10 -8
- package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
- package/dist/Actions/components/actions-list-view.component.d.ts +2 -1
- package/dist/Actions/components/actions-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-list-view.component.js +6 -5
- package/dist/Actions/components/actions-list-view.component.js.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +2 -2
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/categories-list-view.component.d.ts +2 -1
- package/dist/Actions/components/categories-list-view.component.d.ts.map +1 -1
- package/dist/Actions/components/categories-list-view.component.js +6 -5
- package/dist/Actions/components/categories-list-view.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +1 -1
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts +2 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +6 -4
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js +1 -1
- package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts +2 -1
- package/dist/Actions/components/explorer/new-action-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-action-panel.component.js +7 -5
- package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts +2 -1
- package/dist/Actions/components/explorer/new-category-panel.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/new-category-panel.component.js +7 -5
- package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
- package/dist/ApplicationRoles/application-roles-resource.component.js +4 -4
- package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +1 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +1 -1
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +3 -3
- package/dist/Communication/communication-providers-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +1 -1
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/Communication/communication-templates-resource.component.js +3 -3
- package/dist/Communication/communication-templates-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +5 -4
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts +2 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js +6 -4
- package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts +11 -2
- package/dist/ComponentStudio/components/artifact-load-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js +61 -27
- package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts +4 -2
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +19 -11
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts +4 -2
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js +11 -3
- package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts +10 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/workspace/component-preview.component.js +18 -9
- package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
- package/dist/ComponentStudio/services/component-studio-state.service.d.ts +11 -1
- package/dist/ComponentStudio/services/component-studio-state.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-studio-state.service.js +23 -3
- package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts +6 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.js +16 -6
- package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js +1 -1
- package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-categories-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-list-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-overview-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
- package/dist/Credentials/components/credentials-types-resource.component.js +3 -3
- package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
- package/dist/Credentials/credentials-dashboard.component.js +1 -1
- package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js +13 -13
- package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-adapter.d.ts +4 -0
- package/dist/DashboardBrowser/dashboard-share-adapter.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-adapter.js +5 -2
- package/dist/DashboardBrowser/dashboard-share-adapter.js.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts +3 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.d.ts.map +1 -1
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js +9 -4
- package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +3 -2
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +7 -6
- package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +3 -2
- package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
- package/dist/DataExplorer/components/view-selector/view-selector.component.js +6 -5
- package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +10 -9
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/services/explorer-state.service.d.ts +6 -1
- package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
- package/dist/DataExplorer/services/explorer-state.service.js +15 -5
- package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts +64 -0
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js +400 -0
- package/dist/DatabaseDesigner/components/create-wizard/database-create-wizard.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts +42 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js +232 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-basics.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts +14 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js +38 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-fields.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts +24 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js +77 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts +88 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js +404 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts +12 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js +116 -0
- package/dist/DatabaseDesigner/components/create-wizard/steps/step-review.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +55 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +204 -0
- package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts +61 -0
- package/dist/DatabaseDesigner/components/entity-list.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/entity-list.component.js +485 -0
- package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts +52 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.js +320 -0
- package/dist/DatabaseDesigner/components/modify/database-modify.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts +79 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js +378 -0
- package/dist/DatabaseDesigner/components/shared/database-preview-pane.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts +85 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js +429 -0
- package/dist/DatabaseDesigner/components/shared/entity-fields-grid.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts +58 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js +333 -0
- package/dist/DatabaseDesigner/components/shared/entity-pipeline-panel.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts +36 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js +345 -0
- package/dist/DatabaseDesigner/components/shared/entity-review-panel.component.js.map +1 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts +13 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.d.ts.map +1 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js +81 -0
- package/dist/DatabaseDesigner/components/shared/wizard-step-indicator.component.js.map +1 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +30 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js +131 -0
- package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -0
- package/dist/DatabaseDesigner/database-designer-erd.d.ts +19 -0
- package/dist/DatabaseDesigner/database-designer-erd.d.ts.map +1 -0
- package/dist/DatabaseDesigner/database-designer-erd.js +84 -0
- package/dist/DatabaseDesigner/database-designer-erd.js.map +1 -0
- package/dist/DatabaseDesigner/database-designer.types.d.ts +167 -0
- package/dist/DatabaseDesigner/database-designer.types.d.ts.map +1 -0
- package/dist/DatabaseDesigner/database-designer.types.js +26 -0
- package/dist/DatabaseDesigner/database-designer.types.js.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.d.ts +94 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.d.ts.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.js +392 -0
- package/dist/DatabaseDesigner/services/database-designer.engine.js.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.service.d.ts +78 -0
- package/dist/DatabaseDesigner/services/database-designer.service.d.ts.map +1 -0
- package/dist/DatabaseDesigner/services/database-designer.service.js +273 -0
- package/dist/DatabaseDesigner/services/database-designer.service.js.map +1 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts +79 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.d.ts.map +1 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.js +204 -0
- package/dist/DatabaseDesigner/services/entity-wizard-state.service.js.map +1 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +2 -2
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Home/action-pin-config-dialog.component.d.ts +2 -1
- package/dist/Home/action-pin-config-dialog.component.d.ts.map +1 -1
- package/dist/Home/action-pin-config-dialog.component.js +6 -4
- package/dist/Home/action-pin-config-dialog.component.js.map +1 -1
- package/dist/Home/action-pin-runner-dialog.component.d.ts +2 -1
- package/dist/Home/action-pin-runner-dialog.component.d.ts.map +1 -1
- package/dist/Home/action-pin-runner-dialog.component.js +5 -4
- package/dist/Home/action-pin-runner-dialog.component.js.map +1 -1
- package/dist/Home/home-application.d.ts.map +1 -1
- package/dist/Home/home-application.js +10 -12
- package/dist/Home/home-application.js.map +1 -1
- package/dist/Home/home-dashboard.component.d.ts.map +1 -1
- package/dist/Home/home-dashboard.component.js +3 -3
- package/dist/Home/home-dashboard.component.js.map +1 -1
- package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
- package/dist/Integration/components/activity/activity.component.js +1 -0
- package/dist/Integration/components/activity/activity.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +11 -10
- package/dist/Integration/components/connections/connections.component.js.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.d.ts.map +1 -1
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +2 -2
- package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.d.ts.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +1 -0
- package/dist/Integration/components/overview/overview.component.js.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
- package/dist/Integration/components/pipelines/pipelines.component.js +1 -0
- package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.d.ts.map +1 -1
- package/dist/Integration/components/schedules/schedules.component.js +5 -4
- package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
- package/dist/Integration/services/integration-data.service.d.ts +5 -1
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +27 -19
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +6 -6
- package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +8 -6
- package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +6 -6
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +3 -3
- package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +6 -6
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-categories-resource.component.js +4 -4
- package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +6 -6
- 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 +11 -10
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +5 -0
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +11 -3
- package/dist/Lists/services/list-set-operations.service.js.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts +2 -1
- package/dist/MCP/components/mcp-connection-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-connection-dialog.component.js +8 -6
- package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts +2 -1
- package/dist/MCP/components/mcp-server-dialog.component.d.ts.map +1 -1
- package/dist/MCP/components/mcp-server-dialog.component.js +7 -5
- package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +12 -12
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/Permissions/permissions-shared.d.ts +3 -3
- package/dist/Permissions/permissions-shared.d.ts.map +1 -1
- package/dist/Permissions/permissions-shared.js +5 -5
- package/dist/Permissions/permissions-shared.js.map +1 -1
- package/dist/Permissions/resource-access-resource.component.js +1 -1
- package/dist/Permissions/resource-access-resource.component.js.map +1 -1
- package/dist/Permissions/user-access-resource.component.js +1 -2
- package/dist/Permissions/user-access-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.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/scheduling-dashboard.component.d.ts.map +1 -1
- package/dist/Scheduling/scheduling-dashboard.component.js +1 -0
- package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts +5 -0
- package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
- package/dist/Scheduling/services/scheduling-instrumentation.service.js +21 -13
- package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
- package/dist/SystemDiagnostics/system-diagnostics.component.js +2 -2
- package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
- package/dist/Testing/components/testing-explorer.component.d.ts +2 -1
- package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
- package/dist/Testing/components/testing-explorer.component.js +9 -7
- package/dist/Testing/components/testing-explorer.component.js.map +1 -1
- package/dist/Testing/services/testing-instrumentation.service.d.ts +6 -1
- package/dist/Testing/services/testing-instrumentation.service.d.ts.map +1 -1
- package/dist/Testing/services/testing-instrumentation.service.js +21 -11
- package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
- package/dist/Testing/testing-dashboard.component.d.ts +3 -1
- package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
- package/dist/Testing/testing-dashboard.component.js +15 -11
- package/dist/Testing/testing-dashboard.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +5 -5
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/graph-resource.component.js +1 -2
- package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/labels-resource.component.js +3 -3
- package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js +1 -1
- package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +35 -34
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +6 -0
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +3 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -1
- package/dist/public-api.js.map +1 -1
- package/dist/shared/entity-field-display.d.ts +4 -3
- package/dist/shared/entity-field-display.d.ts.map +1 -1
- package/dist/shared/entity-field-display.js +9 -9
- package/dist/shared/entity-field-display.js.map +1 -1
- package/package.json +52 -51
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DatabaseDesignerDashboardsModule
|
|
3
|
+
*
|
|
4
|
+
* Feature module for the Database Designer dashboard area. Declares the main
|
|
5
|
+
* dashboard component and its entity-list sub-component. The wizard steps and
|
|
6
|
+
* modify view are added in later phases (5c–5e) and will be declared here too.
|
|
7
|
+
*
|
|
8
|
+
* Lazy-loading entry point: DashboardsModule (module.ts) imports this module
|
|
9
|
+
* so MJExplorer can code-split it in the future without touching any other file.
|
|
10
|
+
*
|
|
11
|
+
* Slide-over panels use MjSlidePanelComponent from VersionsModule.
|
|
12
|
+
*/
|
|
13
|
+
import { NgModule } from '@angular/core';
|
|
14
|
+
import { CommonModule } from '@angular/common';
|
|
15
|
+
import { FormsModule } from '@angular/forms';
|
|
16
|
+
import { MJButtonDirective } from '@memberjunction/ng-ui-components';
|
|
17
|
+
import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
|
|
18
|
+
import { VersionsModule } from '@memberjunction/ng-versions';
|
|
19
|
+
import { MarkdownModule } from '@memberjunction/ng-markdown';
|
|
20
|
+
import { CodeEditorModule } from '@memberjunction/ng-code-editor';
|
|
21
|
+
import { EntityRelationshipDiagramModule } from '@memberjunction/ng-entity-relationship-diagram';
|
|
22
|
+
import { AngularSplitModule } from 'angular-split';
|
|
23
|
+
import { DatabaseDesignerDashboardComponent } from './components/database-designer-dashboard.component';
|
|
24
|
+
import { EntityListComponent } from './components/entity-list.component';
|
|
25
|
+
import { WizardStepIndicatorComponent } from './components/shared/wizard-step-indicator.component';
|
|
26
|
+
import { EntityFieldsGridComponent } from './components/shared/entity-fields-grid.component';
|
|
27
|
+
import { EntityReviewPanelComponent } from './components/shared/entity-review-panel.component';
|
|
28
|
+
import { EntityPipelinePanelComponent } from './components/shared/entity-pipeline-panel.component';
|
|
29
|
+
import { DatabaseCreateWizardComponent } from './components/create-wizard/database-create-wizard.component';
|
|
30
|
+
import { StepBasicsComponent } from './components/create-wizard/steps/step-basics.component';
|
|
31
|
+
import { StepFieldsComponent } from './components/create-wizard/steps/step-fields.component';
|
|
32
|
+
import { StepRelationshipsComponent } from './components/create-wizard/steps/step-relationships.component';
|
|
33
|
+
import { StepReviewComponent } from './components/create-wizard/steps/step-review.component';
|
|
34
|
+
import { StepPipelineComponent } from './components/create-wizard/steps/step-pipeline.component';
|
|
35
|
+
import { DatabaseModifyComponent } from './components/modify/database-modify.component';
|
|
36
|
+
import { DatabasePreviewPaneComponent } from './components/shared/database-preview-pane.component';
|
|
37
|
+
import { DatabaseDesignerService } from './services/database-designer.service';
|
|
38
|
+
import * as i0 from "@angular/core";
|
|
39
|
+
export class DatabaseDesignerDashboardsModule {
|
|
40
|
+
static ɵfac = function DatabaseDesignerDashboardsModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DatabaseDesignerDashboardsModule)(); };
|
|
41
|
+
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: DatabaseDesignerDashboardsModule });
|
|
42
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
|
|
43
|
+
DatabaseDesignerService,
|
|
44
|
+
], imports: [CommonModule,
|
|
45
|
+
FormsModule,
|
|
46
|
+
SharedGenericModule,
|
|
47
|
+
VersionsModule,
|
|
48
|
+
MarkdownModule,
|
|
49
|
+
CodeEditorModule,
|
|
50
|
+
EntityRelationshipDiagramModule,
|
|
51
|
+
AngularSplitModule] });
|
|
52
|
+
}
|
|
53
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DatabaseDesignerDashboardsModule, [{
|
|
54
|
+
type: NgModule,
|
|
55
|
+
args: [{
|
|
56
|
+
declarations: [
|
|
57
|
+
DatabaseDesignerDashboardComponent,
|
|
58
|
+
EntityListComponent,
|
|
59
|
+
// Phase 5c: shared UI
|
|
60
|
+
WizardStepIndicatorComponent,
|
|
61
|
+
EntityFieldsGridComponent,
|
|
62
|
+
EntityReviewPanelComponent,
|
|
63
|
+
EntityPipelinePanelComponent,
|
|
64
|
+
DatabasePreviewPaneComponent,
|
|
65
|
+
// Phase 5d: wizard + steps
|
|
66
|
+
DatabaseCreateWizardComponent,
|
|
67
|
+
StepBasicsComponent,
|
|
68
|
+
StepFieldsComponent,
|
|
69
|
+
StepRelationshipsComponent,
|
|
70
|
+
StepReviewComponent,
|
|
71
|
+
StepPipelineComponent,
|
|
72
|
+
// Phase 5e
|
|
73
|
+
DatabaseModifyComponent,
|
|
74
|
+
],
|
|
75
|
+
imports: [
|
|
76
|
+
CommonModule,
|
|
77
|
+
FormsModule,
|
|
78
|
+
MJButtonDirective,
|
|
79
|
+
SharedGenericModule,
|
|
80
|
+
VersionsModule,
|
|
81
|
+
MarkdownModule,
|
|
82
|
+
CodeEditorModule,
|
|
83
|
+
EntityRelationshipDiagramModule,
|
|
84
|
+
AngularSplitModule,
|
|
85
|
+
],
|
|
86
|
+
providers: [
|
|
87
|
+
DatabaseDesignerService,
|
|
88
|
+
],
|
|
89
|
+
exports: [
|
|
90
|
+
DatabaseDesignerDashboardComponent,
|
|
91
|
+
EntityListComponent,
|
|
92
|
+
WizardStepIndicatorComponent,
|
|
93
|
+
EntityFieldsGridComponent,
|
|
94
|
+
EntityReviewPanelComponent,
|
|
95
|
+
EntityPipelinePanelComponent,
|
|
96
|
+
DatabaseCreateWizardComponent,
|
|
97
|
+
],
|
|
98
|
+
}]
|
|
99
|
+
}], null, null); })();
|
|
100
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DatabaseDesignerDashboardsModule, { declarations: [DatabaseDesignerDashboardComponent,
|
|
101
|
+
EntityListComponent,
|
|
102
|
+
// Phase 5c: shared UI
|
|
103
|
+
WizardStepIndicatorComponent,
|
|
104
|
+
EntityFieldsGridComponent,
|
|
105
|
+
EntityReviewPanelComponent,
|
|
106
|
+
EntityPipelinePanelComponent,
|
|
107
|
+
DatabasePreviewPaneComponent,
|
|
108
|
+
// Phase 5d: wizard + steps
|
|
109
|
+
DatabaseCreateWizardComponent,
|
|
110
|
+
StepBasicsComponent,
|
|
111
|
+
StepFieldsComponent,
|
|
112
|
+
StepRelationshipsComponent,
|
|
113
|
+
StepReviewComponent,
|
|
114
|
+
StepPipelineComponent,
|
|
115
|
+
// Phase 5e
|
|
116
|
+
DatabaseModifyComponent], imports: [CommonModule,
|
|
117
|
+
FormsModule,
|
|
118
|
+
MJButtonDirective,
|
|
119
|
+
SharedGenericModule,
|
|
120
|
+
VersionsModule,
|
|
121
|
+
MarkdownModule,
|
|
122
|
+
CodeEditorModule,
|
|
123
|
+
EntityRelationshipDiagramModule,
|
|
124
|
+
AngularSplitModule], exports: [DatabaseDesignerDashboardComponent,
|
|
125
|
+
EntityListComponent,
|
|
126
|
+
WizardStepIndicatorComponent,
|
|
127
|
+
EntityFieldsGridComponent,
|
|
128
|
+
EntityReviewPanelComponent,
|
|
129
|
+
EntityPipelinePanelComponent,
|
|
130
|
+
DatabaseCreateWizardComponent] }); })();
|
|
131
|
+
//# sourceMappingURL=database-designer-dashboards.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-designer-dashboards.module.js","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-dashboards.module.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * DatabaseDesignerDashboardsModule\n *\n * Feature module for the Database Designer dashboard area. Declares the main\n * dashboard component and its entity-list sub-component. The wizard steps and\n * modify view are added in later phases (5c–5e) and will be declared here too.\n *\n * Lazy-loading entry point: DashboardsModule (module.ts) imports this module\n * so MJExplorer can code-split it in the future without touching any other file.\n *\n * Slide-over panels use MjSlidePanelComponent from VersionsModule.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { SharedGenericModule } from '@memberjunction/ng-shared-generic';\nimport { VersionsModule } from '@memberjunction/ng-versions';\nimport { MarkdownModule } from '@memberjunction/ng-markdown';\nimport { CodeEditorModule } from '@memberjunction/ng-code-editor';\nimport { EntityRelationshipDiagramModule } from '@memberjunction/ng-entity-relationship-diagram';\nimport { AngularSplitModule } from 'angular-split';\n\nimport { DatabaseDesignerDashboardComponent } from './components/database-designer-dashboard.component';\nimport { EntityListComponent } from './components/entity-list.component';\nimport { WizardStepIndicatorComponent } from './components/shared/wizard-step-indicator.component';\nimport { EntityFieldsGridComponent } from './components/shared/entity-fields-grid.component';\nimport { EntityReviewPanelComponent } from './components/shared/entity-review-panel.component';\nimport { EntityPipelinePanelComponent } from './components/shared/entity-pipeline-panel.component';\nimport { DatabaseCreateWizardComponent } from './components/create-wizard/database-create-wizard.component';\nimport { StepBasicsComponent } from './components/create-wizard/steps/step-basics.component';\nimport { StepFieldsComponent } from './components/create-wizard/steps/step-fields.component';\nimport { StepRelationshipsComponent } from './components/create-wizard/steps/step-relationships.component';\nimport { StepReviewComponent } from './components/create-wizard/steps/step-review.component';\nimport { StepPipelineComponent } from './components/create-wizard/steps/step-pipeline.component';\nimport { DatabaseModifyComponent } from './components/modify/database-modify.component';\nimport { DatabasePreviewPaneComponent } from './components/shared/database-preview-pane.component';\nimport { DatabaseDesignerService } from './services/database-designer.service';\n\n@NgModule({\n declarations: [\n DatabaseDesignerDashboardComponent,\n EntityListComponent,\n // Phase 5c: shared UI\n WizardStepIndicatorComponent,\n EntityFieldsGridComponent,\n EntityReviewPanelComponent,\n EntityPipelinePanelComponent,\n DatabasePreviewPaneComponent,\n // Phase 5d: wizard + steps\n DatabaseCreateWizardComponent,\n StepBasicsComponent,\n StepFieldsComponent,\n StepRelationshipsComponent,\n StepReviewComponent,\n StepPipelineComponent,\n // Phase 5e\n DatabaseModifyComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n MJButtonDirective,\n SharedGenericModule,\n VersionsModule,\n MarkdownModule,\n CodeEditorModule,\n EntityRelationshipDiagramModule,\n AngularSplitModule,\n ],\n providers: [\n DatabaseDesignerService,\n ],\n exports: [\n DatabaseDesignerDashboardComponent,\n EntityListComponent,\n WizardStepIndicatorComponent,\n EntityFieldsGridComponent,\n EntityReviewPanelComponent,\n EntityPipelinePanelComponent,\n DatabaseCreateWizardComponent,\n ],\n})\nexport class DatabaseDesignerDashboardsModule {}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module database-designer-erd
|
|
3
|
+
* @description Client-side ERD generator for the Database Designer Angular wizard.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the server-side `erd-generator.ts` in `@memberjunction/database-designer-core`
|
|
6
|
+
* but works with Angular-side types (`EntityTableSpec`, `ColumnSpec`, `ForeignKeySpec`)
|
|
7
|
+
* to avoid importing server-only packages into the browser bundle.
|
|
8
|
+
*
|
|
9
|
+
* Called by `StepReviewComponent` to render an `erDiagram` in the wizard review step.
|
|
10
|
+
*/
|
|
11
|
+
import type { EntityTableSpec } from './database-designer.types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Generates a mermaid `erDiagram` block from one or more `EntityTableSpec` objects.
|
|
14
|
+
*
|
|
15
|
+
* Returns `null` for a single table with no FK relationships — a lone box with
|
|
16
|
+
* no connections adds no visual value over the prototype column table.
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateERDFromTableSpec(tables: EntityTableSpec[]): string | null;
|
|
19
|
+
//# sourceMappingURL=database-designer-erd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-designer-erd.d.ts","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-erd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,8BAA8B,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,GAAG,IAAI,CAoBjF"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module database-designer-erd
|
|
3
|
+
* @description Client-side ERD generator for the Database Designer Angular wizard.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the server-side `erd-generator.ts` in `@memberjunction/database-designer-core`
|
|
6
|
+
* but works with Angular-side types (`EntityTableSpec`, `ColumnSpec`, `ForeignKeySpec`)
|
|
7
|
+
* to avoid importing server-only packages into the browser bundle.
|
|
8
|
+
*
|
|
9
|
+
* Called by `StepReviewComponent` to render an `erDiagram` in the wizard review step.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Generates a mermaid `erDiagram` block from one or more `EntityTableSpec` objects.
|
|
13
|
+
*
|
|
14
|
+
* Returns `null` for a single table with no FK relationships — a lone box with
|
|
15
|
+
* no connections adds no visual value over the prototype column table.
|
|
16
|
+
*/
|
|
17
|
+
export function generateERDFromTableSpec(tables) {
|
|
18
|
+
if (!tables.length)
|
|
19
|
+
return null;
|
|
20
|
+
const hasAnyFKs = tables.some(t => (t.ForeignKeys?.length ?? 0) > 0);
|
|
21
|
+
if (tables.length === 1 && !hasAnyFKs)
|
|
22
|
+
return null;
|
|
23
|
+
const lines = ['erDiagram'];
|
|
24
|
+
for (const table of tables) {
|
|
25
|
+
lines.push(...buildEntityBlock(table));
|
|
26
|
+
}
|
|
27
|
+
lines.push('');
|
|
28
|
+
const relationshipLines = buildRelationshipLines(tables);
|
|
29
|
+
if (relationshipLines.length) {
|
|
30
|
+
lines.push(...relationshipLines);
|
|
31
|
+
}
|
|
32
|
+
return lines.join('\n');
|
|
33
|
+
}
|
|
34
|
+
// ─── Private helpers ──────────────────────────────────────────────────────────
|
|
35
|
+
function buildEntityBlock(table) {
|
|
36
|
+
const fkColNames = new Set((table.ForeignKeys ?? []).map(fk => fk.ColumnName));
|
|
37
|
+
const lines = [` ${table.TableName} {`];
|
|
38
|
+
for (const col of table.Columns ?? []) {
|
|
39
|
+
const type = toMermaidType(col);
|
|
40
|
+
const tag = fkColNames.has(col.Name) ? ' FK' : '';
|
|
41
|
+
lines.push(` ${type} ${col.Name}${tag}`);
|
|
42
|
+
}
|
|
43
|
+
lines.push(' }');
|
|
44
|
+
return lines;
|
|
45
|
+
}
|
|
46
|
+
function buildRelationshipLines(tables) {
|
|
47
|
+
const lines = [];
|
|
48
|
+
const seen = new Set();
|
|
49
|
+
for (const table of tables) {
|
|
50
|
+
for (const fk of table.ForeignKeys ?? []) {
|
|
51
|
+
const key = `${fk.ReferencedTable}||--o{${table.TableName}`;
|
|
52
|
+
if (seen.has(key))
|
|
53
|
+
continue;
|
|
54
|
+
seen.add(key);
|
|
55
|
+
lines.push(` ${fk.ReferencedTable} ||--o{ ${table.TableName} : ""`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return lines;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Maps a `ColumnSpec` to a compact, mermaid-safe type token.
|
|
62
|
+
* Strips parentheses: `DECIMAL(18,4)` → `DECIMAL`, `NVARCHAR(200)` → `NVARCHAR`.
|
|
63
|
+
*/
|
|
64
|
+
function toMermaidType(col) {
|
|
65
|
+
if (col.RawSqlType) {
|
|
66
|
+
return col.RawSqlType.replace(/\s*\(.*\)/, '').toUpperCase();
|
|
67
|
+
}
|
|
68
|
+
const typeMap = {
|
|
69
|
+
string: 'NVARCHAR',
|
|
70
|
+
text: 'NVARCHAR',
|
|
71
|
+
json: 'NVARCHAR',
|
|
72
|
+
integer: 'INT',
|
|
73
|
+
bigint: 'BIGINT',
|
|
74
|
+
decimal: 'DECIMAL',
|
|
75
|
+
boolean: 'BIT',
|
|
76
|
+
datetime: 'DATETIMEOFFSET',
|
|
77
|
+
date: 'DATE',
|
|
78
|
+
time: 'TIME',
|
|
79
|
+
uuid: 'UNIQUEIDENTIFIER',
|
|
80
|
+
float: 'FLOAT',
|
|
81
|
+
};
|
|
82
|
+
return typeMap[col.Type ?? ''] ?? 'NVARCHAR';
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=database-designer-erd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-designer-erd.js","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer-erd.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module database-designer-erd\n * @description Client-side ERD generator for the Database Designer Angular wizard.\n *\n * Mirrors the server-side `erd-generator.ts` in `@memberjunction/database-designer-core`\n * but works with Angular-side types (`EntityTableSpec`, `ColumnSpec`, `ForeignKeySpec`)\n * to avoid importing server-only packages into the browser bundle.\n *\n * Called by `StepReviewComponent` to render an `erDiagram` in the wizard review step.\n */\n\nimport type { EntityTableSpec, ColumnSpec } from './database-designer.types.js';\n\n/**\n * Generates a mermaid `erDiagram` block from one or more `EntityTableSpec` objects.\n *\n * Returns `null` for a single table with no FK relationships — a lone box with\n * no connections adds no visual value over the prototype column table.\n */\nexport function generateERDFromTableSpec(tables: EntityTableSpec[]): string | null {\n if (!tables.length) return null;\n\n const hasAnyFKs = tables.some(t => (t.ForeignKeys?.length ?? 0) > 0);\n if (tables.length === 1 && !hasAnyFKs) return null;\n\n const lines: string[] = ['erDiagram'];\n\n for (const table of tables) {\n lines.push(...buildEntityBlock(table));\n }\n\n lines.push('');\n\n const relationshipLines = buildRelationshipLines(tables);\n if (relationshipLines.length) {\n lines.push(...relationshipLines);\n }\n\n return lines.join('\\n');\n}\n\n// ─── Private helpers ──────────────────────────────────────────────────────────\n\nfunction buildEntityBlock(table: EntityTableSpec): string[] {\n const fkColNames = new Set(\n (table.ForeignKeys ?? []).map(fk => fk.ColumnName)\n );\n\n const lines: string[] = [` ${table.TableName} {`];\n\n for (const col of table.Columns ?? []) {\n const type = toMermaidType(col);\n const tag = fkColNames.has(col.Name) ? ' FK' : '';\n lines.push(` ${type} ${col.Name}${tag}`);\n }\n\n lines.push(' }');\n return lines;\n}\n\nfunction buildRelationshipLines(tables: EntityTableSpec[]): string[] {\n const lines: string[] = [];\n const seen = new Set<string>();\n\n for (const table of tables) {\n for (const fk of table.ForeignKeys ?? []) {\n const key = `${fk.ReferencedTable}||--o{${table.TableName}`;\n if (seen.has(key)) continue;\n seen.add(key);\n lines.push(` ${fk.ReferencedTable} ||--o{ ${table.TableName} : \"\"`);\n }\n }\n\n return lines;\n}\n\n/**\n * Maps a `ColumnSpec` to a compact, mermaid-safe type token.\n * Strips parentheses: `DECIMAL(18,4)` → `DECIMAL`, `NVARCHAR(200)` → `NVARCHAR`.\n */\nfunction toMermaidType(col: ColumnSpec): string {\n if (col.RawSqlType) {\n return col.RawSqlType.replace(/\\s*\\(.*\\)/, '').toUpperCase();\n }\n\n const typeMap: Record<string, string> = {\n string: 'NVARCHAR',\n text: 'NVARCHAR',\n json: 'NVARCHAR',\n integer: 'INT',\n bigint: 'BIGINT',\n decimal: 'DECIMAL',\n boolean: 'BIT',\n datetime: 'DATETIMEOFFSET',\n date: 'DATE',\n time: 'TIME',\n uuid: 'UNIQUEIDENTIFIER',\n float: 'FLOAT',\n };\n\n return typeMap[col.Type ?? ''] ?? 'NVARCHAR';\n}\n"]}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module database-designer.types
|
|
3
|
+
* @description Shared client-side type contracts for the Database Designer Angular UI.
|
|
4
|
+
*
|
|
5
|
+
* These types mirror server-side interfaces from `@memberjunction/database-designer-core`
|
|
6
|
+
* and `@memberjunction/schema-engine` but live in the Angular package to avoid pulling
|
|
7
|
+
* in server-only dependencies (AI agents, SchemaEngine DDL, etc.) into the browser bundle.
|
|
8
|
+
*
|
|
9
|
+
* When server-side interfaces change, update these in parallel.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Client-side column specification for the Database Designer wizard.
|
|
13
|
+
* Mirrors `ColumnDefinition` from `@memberjunction/schema-engine`.
|
|
14
|
+
*/
|
|
15
|
+
export interface ColumnSpec {
|
|
16
|
+
/** Physical column name. Must be a valid SQL identifier. */
|
|
17
|
+
Name: string;
|
|
18
|
+
/**
|
|
19
|
+
* Semantic type — used when `RawSqlType` is omitted.
|
|
20
|
+
* Wizard maps this to the appropriate SQL Server type.
|
|
21
|
+
*/
|
|
22
|
+
Type?: 'string' | 'integer' | 'bigint' | 'float' | 'decimal' | 'date' | 'datetime' | 'boolean' | 'uuid' | 'text' | 'json' | 'time';
|
|
23
|
+
/** Explicit SQL type string, overrides `Type` (e.g. 'NVARCHAR(200)', 'DECIMAL(18,2)'). */
|
|
24
|
+
RawSqlType?: string;
|
|
25
|
+
/** Max length — used only when Type is 'string'. */
|
|
26
|
+
MaxLength?: number;
|
|
27
|
+
/** Precision — used only when Type is 'decimal'. */
|
|
28
|
+
Precision?: number;
|
|
29
|
+
/** Scale — used only when Type is 'decimal'. */
|
|
30
|
+
Scale?: number;
|
|
31
|
+
IsNullable: boolean;
|
|
32
|
+
/** SQL default expression (e.g. `'Active'`, `GETUTCDATE()`). */
|
|
33
|
+
DefaultValue?: string;
|
|
34
|
+
Description?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Client-side foreign key specification. Mirrors `ForeignKeyDefinition` from schema-engine. */
|
|
37
|
+
export interface ForeignKeySpec {
|
|
38
|
+
ColumnName: string;
|
|
39
|
+
ReferencedSchema: string;
|
|
40
|
+
ReferencedTable: string;
|
|
41
|
+
ReferencedColumn: string;
|
|
42
|
+
/** When true, MJ treats this as a soft FK (no DB-level constraint — metadata only). */
|
|
43
|
+
IsSoft: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Client-side table specification sent to Database Designer actions.
|
|
47
|
+
* Serialized as the `TableDefinition` action parameter.
|
|
48
|
+
* Mirrors `TableDefinition` from `@memberjunction/schema-engine`.
|
|
49
|
+
*/
|
|
50
|
+
export interface EntityTableSpec {
|
|
51
|
+
SchemaName: string;
|
|
52
|
+
TableName: string;
|
|
53
|
+
EntityName: string;
|
|
54
|
+
Description?: string;
|
|
55
|
+
Columns: ColumnSpec[];
|
|
56
|
+
ForeignKeys?: ForeignKeySpec[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Form value produced by Step 1 (Basics) of the entity create wizard.
|
|
60
|
+
* Kept in a dedicated type so downstream steps can type-check their inputs.
|
|
61
|
+
*/
|
|
62
|
+
export interface BasicsStepValue {
|
|
63
|
+
entityName: string;
|
|
64
|
+
tableName: string;
|
|
65
|
+
schemaName: string;
|
|
66
|
+
description: string;
|
|
67
|
+
/** When true, tableName was auto-derived from entityName and will update automatically. */
|
|
68
|
+
tableNameIsAuto: boolean;
|
|
69
|
+
}
|
|
70
|
+
/** Schema option shown in the "Schema" dropdown on Step 1 of the wizard. */
|
|
71
|
+
export interface SchemaOption {
|
|
72
|
+
/** SQL schema name (e.g. '__mj_UDT'). */
|
|
73
|
+
value: string;
|
|
74
|
+
/** Human-readable display name (e.g. 'UDT — User-Defined Tables (default)'). */
|
|
75
|
+
label: string;
|
|
76
|
+
/** True for the `__mj_UDT` schema — pre-selected in the wizard. */
|
|
77
|
+
isDefault: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* When true, user must hold `Create in Custom Schema` authorization.
|
|
80
|
+
* The engine gates this option based on the user's authorizations.
|
|
81
|
+
*/
|
|
82
|
+
requiresElevatedAuth: boolean;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Lightweight entity row shown in the Database Designer entity list.
|
|
86
|
+
* Loaded by `DatabaseDesignerEngine.loadAccessibleEntities()`.
|
|
87
|
+
*/
|
|
88
|
+
export interface AccessibleEntity {
|
|
89
|
+
entityId: string;
|
|
90
|
+
entityName: string;
|
|
91
|
+
tableName: string;
|
|
92
|
+
schemaName: string;
|
|
93
|
+
/** Number of user-defined columns (excludes auto-managed ID / __mj_CreatedAt / __mj_UpdatedAt). */
|
|
94
|
+
fieldCount: number;
|
|
95
|
+
createdAt: Date;
|
|
96
|
+
/** True when the current user is the recorded MJ:UDT:Owner for this entity. */
|
|
97
|
+
isOwner: boolean;
|
|
98
|
+
/** Display name of the owner (loaded lazily — may be absent initially). */
|
|
99
|
+
ownerDisplayName?: string;
|
|
100
|
+
}
|
|
101
|
+
/** Full entity detail loaded when the user opens a slide panel or enters the modify wizard. */
|
|
102
|
+
export interface AccessibleEntityDetail extends AccessibleEntity {
|
|
103
|
+
description: string;
|
|
104
|
+
columns: ColumnSpec[];
|
|
105
|
+
foreignKeys: ForeignKeySpec[];
|
|
106
|
+
}
|
|
107
|
+
/** Validation outcome returned by `DatabaseDesignerService.validateEntitySchema()`. */
|
|
108
|
+
export interface ClientValidationResult {
|
|
109
|
+
Valid: boolean;
|
|
110
|
+
Errors: string[];
|
|
111
|
+
Warnings: string[];
|
|
112
|
+
}
|
|
113
|
+
/** Result returned by `DatabaseDesignerService.createEntity()` and `modifyEntity()`. */
|
|
114
|
+
export interface EntityPipelineResult {
|
|
115
|
+
Success: boolean;
|
|
116
|
+
EntityID?: string;
|
|
117
|
+
EntityName?: string;
|
|
118
|
+
SchemaName?: string;
|
|
119
|
+
TableName?: string;
|
|
120
|
+
/** Step-by-step pipeline trace from the server-side RuntimeSchemaManager. */
|
|
121
|
+
PipelineSteps?: PipelineStepSummary[];
|
|
122
|
+
ErrorMessage?: string;
|
|
123
|
+
Warnings?: string[];
|
|
124
|
+
}
|
|
125
|
+
/** Lightweight pipeline step summary forwarded from the server. */
|
|
126
|
+
export interface PipelineStepSummary {
|
|
127
|
+
Name: string;
|
|
128
|
+
Status: 'success' | 'failed' | 'skipped';
|
|
129
|
+
DurationMs: number;
|
|
130
|
+
Message?: string;
|
|
131
|
+
}
|
|
132
|
+
/** Result returned by `DatabaseDesignerService.describeEntity()`. */
|
|
133
|
+
export interface EntityDescribeResult {
|
|
134
|
+
Success: boolean;
|
|
135
|
+
EntityName?: string;
|
|
136
|
+
SchemaName?: string;
|
|
137
|
+
TableName?: string;
|
|
138
|
+
Description?: string;
|
|
139
|
+
Fields?: Array<{
|
|
140
|
+
Name: string;
|
|
141
|
+
Type: string;
|
|
142
|
+
IsNullable: boolean;
|
|
143
|
+
Description?: string;
|
|
144
|
+
}>;
|
|
145
|
+
ErrorMessage?: string;
|
|
146
|
+
}
|
|
147
|
+
/** Named step identifiers for the create wizard. */
|
|
148
|
+
export type WizardStep = 'basics' | 'fields' | 'relationships' | 'review';
|
|
149
|
+
/** Step definition passed to `WizardStepIndicatorComponent`. */
|
|
150
|
+
export interface WizardStepDef {
|
|
151
|
+
id: WizardStep;
|
|
152
|
+
label: string;
|
|
153
|
+
isComplete: boolean;
|
|
154
|
+
isActive: boolean;
|
|
155
|
+
}
|
|
156
|
+
/** One entry in the field-type dropdown. */
|
|
157
|
+
export interface FieldTypeOption {
|
|
158
|
+
value: NonNullable<ColumnSpec['Type']>;
|
|
159
|
+
label: string;
|
|
160
|
+
/** Short SQL preview shown in the review table. */
|
|
161
|
+
sqlPreview: string;
|
|
162
|
+
hasMaxLength: boolean;
|
|
163
|
+
hasPrecisionScale: boolean;
|
|
164
|
+
}
|
|
165
|
+
/** Pre-defined field type options — one for each semantic type. */
|
|
166
|
+
export declare const FIELD_TYPE_OPTIONS: readonly FieldTypeOption[];
|
|
167
|
+
//# sourceMappingURL=database-designer.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-designer.types.d.ts","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module database-designer.types
|
|
3
|
+
* @description Shared client-side type contracts for the Database Designer Angular UI.
|
|
4
|
+
*
|
|
5
|
+
* These types mirror server-side interfaces from `@memberjunction/database-designer-core`
|
|
6
|
+
* and `@memberjunction/schema-engine` but live in the Angular package to avoid pulling
|
|
7
|
+
* in server-only dependencies (AI agents, SchemaEngine DDL, etc.) into the browser bundle.
|
|
8
|
+
*
|
|
9
|
+
* When server-side interfaces change, update these in parallel.
|
|
10
|
+
*/
|
|
11
|
+
/** Pre-defined field type options — one for each semantic type. */
|
|
12
|
+
export const FIELD_TYPE_OPTIONS = [
|
|
13
|
+
{ value: 'string', label: 'String (NVARCHAR)', sqlPreview: 'NVARCHAR(n)', hasMaxLength: true, hasPrecisionScale: false },
|
|
14
|
+
{ value: 'text', label: 'Long Text (NVARCHAR MAX)', sqlPreview: 'NVARCHAR(MAX)', hasMaxLength: false, hasPrecisionScale: false },
|
|
15
|
+
{ value: 'integer', label: 'Integer (INT)', sqlPreview: 'INT', hasMaxLength: false, hasPrecisionScale: false },
|
|
16
|
+
{ value: 'bigint', label: 'Big Integer (BIGINT)', sqlPreview: 'BIGINT', hasMaxLength: false, hasPrecisionScale: false },
|
|
17
|
+
{ value: 'decimal', label: 'Decimal', sqlPreview: 'DECIMAL(p,s)', hasMaxLength: false, hasPrecisionScale: true },
|
|
18
|
+
{ value: 'boolean', label: 'Boolean (BIT)', sqlPreview: 'BIT', hasMaxLength: false, hasPrecisionScale: false },
|
|
19
|
+
{ value: 'datetime', label: 'Date + Time', sqlPreview: 'DATETIMEOFFSET', hasMaxLength: false, hasPrecisionScale: false },
|
|
20
|
+
{ value: 'date', label: 'Date Only', sqlPreview: 'DATE', hasMaxLength: false, hasPrecisionScale: false },
|
|
21
|
+
{ value: 'uuid', label: 'Unique ID (GUID)', sqlPreview: 'UNIQUEIDENTIFIER', hasMaxLength: false, hasPrecisionScale: false },
|
|
22
|
+
{ value: 'json', label: 'JSON', sqlPreview: 'NVARCHAR(MAX) / JSON', hasMaxLength: false, hasPrecisionScale: false },
|
|
23
|
+
{ value: 'float', label: 'Float', sqlPreview: 'FLOAT', hasMaxLength: false, hasPrecisionScale: false },
|
|
24
|
+
{ value: 'time', label: 'Time Only', sqlPreview: 'TIME', hasMaxLength: false, hasPrecisionScale: false },
|
|
25
|
+
];
|
|
26
|
+
//# sourceMappingURL=database-designer.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-designer.types.js","sourceRoot":"","sources":["../../src/DatabaseDesigner/database-designer.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmLH,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC1D,EAAE,KAAK,EAAE,QAAQ,EAAI,KAAK,EAAE,mBAAmB,EAAQ,UAAU,EAAE,aAAa,EAAW,YAAY,EAAE,IAAI,EAAG,iBAAiB,EAAE,KAAK,EAAE;IAC1I,EAAE,KAAK,EAAE,MAAM,EAAM,KAAK,EAAE,0BAA0B,EAAE,UAAU,EAAE,eAAe,EAAS,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,eAAe,EAAa,UAAU,EAAE,KAAK,EAAmB,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,QAAQ,EAAI,KAAK,EAAE,sBAAsB,EAAM,UAAU,EAAE,QAAQ,EAAgB,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,SAAS,EAAmB,UAAU,EAAE,cAAc,EAAU,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAG;IAC3I,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,eAAe,EAAa,UAAU,EAAE,KAAK,EAAmB,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAe,UAAU,EAAE,gBAAgB,EAAQ,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,MAAM,EAAM,KAAK,EAAE,WAAW,EAAiB,UAAU,EAAE,MAAM,EAAkB,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,MAAM,EAAM,KAAK,EAAE,kBAAkB,EAAU,UAAU,EAAE,kBAAkB,EAAM,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,MAAM,EAAM,KAAK,EAAE,MAAM,EAAsB,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,OAAO,EAAK,KAAK,EAAE,OAAO,EAAqB,UAAU,EAAE,OAAO,EAAiB,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;IAC3I,EAAE,KAAK,EAAE,MAAM,EAAM,KAAK,EAAE,WAAW,EAAiB,UAAU,EAAE,MAAM,EAAkB,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE;CACrI,CAAC","sourcesContent":["/**\n * @module database-designer.types\n * @description Shared client-side type contracts for the Database Designer Angular UI.\n *\n * These types mirror server-side interfaces from `@memberjunction/database-designer-core`\n * and `@memberjunction/schema-engine` but live in the Angular package to avoid pulling\n * in server-only dependencies (AI agents, SchemaEngine DDL, etc.) into the browser bundle.\n *\n * When server-side interfaces change, update these in parallel.\n */\n\n// ─── Column & Table Definition ────────────────────────────────────────────────\n\n/**\n * Client-side column specification for the Database Designer wizard.\n * Mirrors `ColumnDefinition` from `@memberjunction/schema-engine`.\n */\nexport interface ColumnSpec {\n /** Physical column name. Must be a valid SQL identifier. */\n Name: string;\n /**\n * Semantic type — used when `RawSqlType` is omitted.\n * Wizard maps this to the appropriate SQL Server type.\n */\n Type?: 'string' | 'integer' | 'bigint' | 'float' | 'decimal' | 'date' | 'datetime' | 'boolean' | 'uuid' | 'text' | 'json' | 'time';\n /** Explicit SQL type string, overrides `Type` (e.g. 'NVARCHAR(200)', 'DECIMAL(18,2)'). */\n RawSqlType?: string;\n /** Max length — used only when Type is 'string'. */\n MaxLength?: number;\n /** Precision — used only when Type is 'decimal'. */\n Precision?: number;\n /** Scale — used only when Type is 'decimal'. */\n Scale?: number;\n IsNullable: boolean;\n /** SQL default expression (e.g. `'Active'`, `GETUTCDATE()`). */\n DefaultValue?: string;\n Description?: string;\n}\n\n/** Client-side foreign key specification. Mirrors `ForeignKeyDefinition` from schema-engine. */\nexport interface ForeignKeySpec {\n ColumnName: string;\n ReferencedSchema: string;\n ReferencedTable: string;\n ReferencedColumn: string;\n /** When true, MJ treats this as a soft FK (no DB-level constraint — metadata only). */\n IsSoft: boolean;\n}\n\n/**\n * Client-side table specification sent to Database Designer actions.\n * Serialized as the `TableDefinition` action parameter.\n * Mirrors `TableDefinition` from `@memberjunction/schema-engine`.\n */\nexport interface EntityTableSpec {\n SchemaName: string;\n TableName: string;\n EntityName: string;\n Description?: string;\n Columns: ColumnSpec[];\n ForeignKeys?: ForeignKeySpec[];\n}\n\n// ─── Wizard step models ───────────────────────────────────────────────────────\n\n/**\n * Form value produced by Step 1 (Basics) of the entity create wizard.\n * Kept in a dedicated type so downstream steps can type-check their inputs.\n */\nexport interface BasicsStepValue {\n entityName: string;\n tableName: string;\n schemaName: string;\n description: string;\n /** When true, tableName was auto-derived from entityName and will update automatically. */\n tableNameIsAuto: boolean;\n}\n\n// ─── Schema options ───────────────────────────────────────────────────────────\n\n/** Schema option shown in the \"Schema\" dropdown on Step 1 of the wizard. */\nexport interface SchemaOption {\n /** SQL schema name (e.g. '__mj_UDT'). */\n value: string;\n /** Human-readable display name (e.g. 'UDT — User-Defined Tables (default)'). */\n label: string;\n /** True for the `__mj_UDT` schema — pre-selected in the wizard. */\n isDefault: boolean;\n /**\n * When true, user must hold `Create in Custom Schema` authorization.\n * The engine gates this option based on the user's authorizations.\n */\n requiresElevatedAuth: boolean;\n}\n\n// ─── Entity list models ───────────────────────────────────────────────────────\n\n/**\n * Lightweight entity row shown in the Database Designer entity list.\n * Loaded by `DatabaseDesignerEngine.loadAccessibleEntities()`.\n */\nexport interface AccessibleEntity {\n entityId: string;\n entityName: string;\n tableName: string;\n schemaName: string;\n /** Number of user-defined columns (excludes auto-managed ID / __mj_CreatedAt / __mj_UpdatedAt). */\n fieldCount: number;\n createdAt: Date;\n /** True when the current user is the recorded MJ:UDT:Owner for this entity. */\n isOwner: boolean;\n /** Display name of the owner (loaded lazily — may be absent initially). */\n ownerDisplayName?: string;\n}\n\n/** Full entity detail loaded when the user opens a slide panel or enters the modify wizard. */\nexport interface AccessibleEntityDetail extends AccessibleEntity {\n description: string;\n columns: ColumnSpec[];\n foreignKeys: ForeignKeySpec[];\n}\n\n// ─── Action results ───────────────────────────────────────────────────────────\n\n/** Validation outcome returned by `DatabaseDesignerService.validateEntitySchema()`. */\nexport interface ClientValidationResult {\n Valid: boolean;\n Errors: string[];\n Warnings: string[];\n}\n\n/** Result returned by `DatabaseDesignerService.createEntity()` and `modifyEntity()`. */\nexport interface EntityPipelineResult {\n Success: boolean;\n EntityID?: string;\n EntityName?: string;\n SchemaName?: string;\n TableName?: string;\n /** Step-by-step pipeline trace from the server-side RuntimeSchemaManager. */\n PipelineSteps?: PipelineStepSummary[];\n ErrorMessage?: string;\n Warnings?: string[];\n}\n\n/** Lightweight pipeline step summary forwarded from the server. */\nexport interface PipelineStepSummary {\n Name: string;\n Status: 'success' | 'failed' | 'skipped';\n DurationMs: number;\n Message?: string;\n}\n\n/** Result returned by `DatabaseDesignerService.describeEntity()`. */\nexport interface EntityDescribeResult {\n Success: boolean;\n EntityName?: string;\n SchemaName?: string;\n TableName?: string;\n Description?: string;\n Fields?: Array<{ Name: string; Type: string; IsNullable: boolean; Description?: string }>;\n ErrorMessage?: string;\n}\n\n// ─── Wizard step models ───────────────────────────────────────────────────────\n\n/** Named step identifiers for the create wizard. */\nexport type WizardStep = 'basics' | 'fields' | 'relationships' | 'review';\n\n/** Step definition passed to `WizardStepIndicatorComponent`. */\nexport interface WizardStepDef {\n id: WizardStep;\n label: string;\n isComplete: boolean;\n isActive: boolean;\n}\n\n// ─── Field type options ───────────────────────────────────────────────────────\n\n/** One entry in the field-type dropdown. */\nexport interface FieldTypeOption {\n value: NonNullable<ColumnSpec['Type']>;\n label: string;\n /** Short SQL preview shown in the review table. */\n sqlPreview: string;\n hasMaxLength: boolean;\n hasPrecisionScale: boolean;\n}\n\n/** Pre-defined field type options — one for each semantic type. */\nexport const FIELD_TYPE_OPTIONS: readonly FieldTypeOption[] = [\n { value: 'string', label: 'String (NVARCHAR)', sqlPreview: 'NVARCHAR(n)', hasMaxLength: true, hasPrecisionScale: false },\n { value: 'text', label: 'Long Text (NVARCHAR MAX)', sqlPreview: 'NVARCHAR(MAX)', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'integer', label: 'Integer (INT)', sqlPreview: 'INT', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'bigint', label: 'Big Integer (BIGINT)', sqlPreview: 'BIGINT', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'decimal', label: 'Decimal', sqlPreview: 'DECIMAL(p,s)', hasMaxLength: false, hasPrecisionScale: true },\n { value: 'boolean', label: 'Boolean (BIT)', sqlPreview: 'BIT', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'datetime', label: 'Date + Time', sqlPreview: 'DATETIMEOFFSET', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'date', label: 'Date Only', sqlPreview: 'DATE', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'uuid', label: 'Unique ID (GUID)', sqlPreview: 'UNIQUEIDENTIFIER', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'json', label: 'JSON', sqlPreview: 'NVARCHAR(MAX) / JSON', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'float', label: 'Float', sqlPreview: 'FLOAT', hasMaxLength: false, hasPrecisionScale: false },\n { value: 'time', label: 'Time Only', sqlPreview: 'TIME', hasMaxLength: false, hasPrecisionScale: false },\n] as const;\n"]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module database-designer.engine
|
|
3
|
+
* @description Read-only data access engine for the Database Designer Angular UI.
|
|
4
|
+
*
|
|
5
|
+
* `DatabaseDesignerEngine` is a `BaseSingleton` (NOT an Angular service) that:
|
|
6
|
+
* - Loads the list of entities accessible to the current user
|
|
7
|
+
* - Loads full entity detail for the modify wizard
|
|
8
|
+
* - Loads available schemas from `MJ: Schema Info` (async, cached per-user)
|
|
9
|
+
* - Checks whether a proposed entity name / table name is available
|
|
10
|
+
*
|
|
11
|
+
* ### Why BaseSingleton, not @Injectable?
|
|
12
|
+
* Engine classes hold a cross-request cache that must survive Angular's DI
|
|
13
|
+
* lifecycle boundaries (the same instance is reused across multiple wizard
|
|
14
|
+
* openings in the same session). `BaseSingleton` uses the MJ Global Object
|
|
15
|
+
* Store which guarantees exactly one instance per process, even across ESBuild
|
|
16
|
+
* code-split chunks.
|
|
17
|
+
*
|
|
18
|
+
* ### Usage
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const engine = DatabaseDesignerEngine.Instance;
|
|
21
|
+
* const entities = await engine.loadAccessibleEntities();
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* @see DatabaseDesignerService — for action invocation (create, modify, validate)
|
|
25
|
+
*/
|
|
26
|
+
import { BaseSingleton } from '@memberjunction/global';
|
|
27
|
+
import type { AccessibleEntity, AccessibleEntityDetail, SchemaOption } from '../database-designer.types.js';
|
|
28
|
+
/**
|
|
29
|
+
* Singleton data access engine for Database Designer.
|
|
30
|
+
* All methods read data; none modifies state (mutations go through `DatabaseDesignerService`).
|
|
31
|
+
*/
|
|
32
|
+
export declare class DatabaseDesignerEngine extends BaseSingleton<DatabaseDesignerEngine> {
|
|
33
|
+
static get Instance(): DatabaseDesignerEngine;
|
|
34
|
+
protected constructor();
|
|
35
|
+
/** Per-user entity list cache. Key = userID. */
|
|
36
|
+
private readonly _cache;
|
|
37
|
+
/** Per-user schema list cache. Key = userID. Invalidated alongside entity cache. */
|
|
38
|
+
private readonly _schemaCache;
|
|
39
|
+
/** Invalidate all per-user caches for the current user (call after create/modify). */
|
|
40
|
+
invalidateCache(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Load all entities accessible to the current user.
|
|
43
|
+
*
|
|
44
|
+
* - **Admin** (holds `Modify Any UDT Entities`): sees all entities created by
|
|
45
|
+
* Database Designer or Agent Manager, with ownership annotations.
|
|
46
|
+
* - **Regular user**: sees only entities they own (`MJ:UDT:Owner = userId`).
|
|
47
|
+
*
|
|
48
|
+
* Results are cached per-user with a 5-minute TTL.
|
|
49
|
+
*/
|
|
50
|
+
loadAccessibleEntities(): Promise<AccessibleEntity[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Load full entity detail (columns, foreign keys, description) for the modify wizard.
|
|
53
|
+
* Not cached — always fetches fresh data so the wizard reflects current DB state.
|
|
54
|
+
*/
|
|
55
|
+
loadEntityDetail(entityId: string): Promise<AccessibleEntityDetail | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Return the list of schemas the current user is authorized to create tables in.
|
|
58
|
+
*
|
|
59
|
+
* Async — queries `MJ: Schema Info` to surface real DB schemas for users
|
|
60
|
+
* with `Create in Custom Schema` authorization. Results are cached per-user
|
|
61
|
+
* with the same 5-minute TTL as the entity list.
|
|
62
|
+
*
|
|
63
|
+
* Order:
|
|
64
|
+
* 1. `__mj_UDT` (if user holds `Create in UDT Schema`)
|
|
65
|
+
* 2. Real DB schemas from `MJ: Schema Info`, excluding blocked schemas
|
|
66
|
+
* and `__mj_UDT` (already listed first)
|
|
67
|
+
* 3. "Other (enter schema name)" free-text option, at the end
|
|
68
|
+
*
|
|
69
|
+
* All items beyond #1 require `Create in Custom Schema` authorization.
|
|
70
|
+
*/
|
|
71
|
+
loadAvailableSchemas(): Promise<SchemaOption[]>;
|
|
72
|
+
/** Build the schema option list: UDT first, then real DB schemas, then Other. */
|
|
73
|
+
private fetchAvailableSchemas;
|
|
74
|
+
/** Query `MJ: Schema Info` for distinct schema names registered with this MJ instance. */
|
|
75
|
+
private loadDbSchemaNames;
|
|
76
|
+
/**
|
|
77
|
+
* Check whether the proposed entity name and table name are available
|
|
78
|
+
* (no existing MJ entity in the same schema shares either).
|
|
79
|
+
*
|
|
80
|
+
* Returns true when the proposed names are safe to use.
|
|
81
|
+
*/
|
|
82
|
+
isNameAvailable(entityName: string, tableName: string, schemaName: string): Promise<boolean>;
|
|
83
|
+
/** Admin path: load all database-Designer-managed entities + ownership annotations. */
|
|
84
|
+
private loadAllEntities;
|
|
85
|
+
/** Non-admin path: load only entities owned by the current user. */
|
|
86
|
+
private loadOwnedEntities;
|
|
87
|
+
/** Check if the current user owns the given entity (via MJ:UDT:Owner setting). */
|
|
88
|
+
private isCurrentUserOwner;
|
|
89
|
+
/** True when the current user holds the `Modify Any UDT Entities` authorization. */
|
|
90
|
+
private currentUserCanModifyAny;
|
|
91
|
+
/** Map a `MJ: Entity Fields` row to a `ColumnSpec` for the detail view. */
|
|
92
|
+
private mapFieldToColumnSpec;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=database-designer.engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-designer.engine.d.ts","sourceRoot":"","sources":["../../../src/DatabaseDesigner/services/database-designer.engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EACR,gBAAgB,EAChB,sBAAsB,EAGtB,YAAY,EACf,MAAM,+BAA+B,CAAC;AAwEvC;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;IAE7E,WAAkB,QAAQ,IAAI,sBAAsB,CAEnD;IAED,SAAS;IAIT,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAElE,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAEpE,sFAAsF;IAC/E,eAAe,IAAI,IAAI;IAU9B;;;;;;;;OAQG;IACU,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAmBlE;;;OAGG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAqDvF;;;;;;;;;;;;;;OAcG;IACU,oBAAoB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAc5D,iFAAiF;YACnE,qBAAqB;IA+CnC,0FAA0F;YAC5E,iBAAiB;IAe/B;;;;;OAKG;IACU,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzG,uFAAuF;YACzE,eAAe;IAsD7B,oEAAoE;YACtD,iBAAiB;IAkC/B,kFAAkF;YACpE,kBAAkB;IAmBhC,oFAAoF;IACpF,OAAO,CAAC,uBAAuB;IAQ/B,2EAA2E;IAC3E,OAAO,CAAC,oBAAoB;CAe/B"}
|