@memberjunction/ng-dashboards 5.30.0 → 5.31.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,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module step-basics.component
|
|
3
|
+
* @description Step 1 of the create wizard — entity name, table name, schema, description.
|
|
4
|
+
*
|
|
5
|
+
* Auto-derives the table name from entity name (PascalCase, no spaces) but
|
|
6
|
+
* lets the user override it freely. Once the user manually edits the table
|
|
7
|
+
* name it stops tracking entity name changes.
|
|
8
|
+
*/
|
|
9
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, inject, } from '@angular/core';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
const _forTrack0 = ($index, $item) => $item.value;
|
|
13
|
+
function StepBasicsComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
14
|
+
i0.ɵɵtext(0, " Auto-derived from entity name \u2014 edit to override. ");
|
|
15
|
+
} }
|
|
16
|
+
function StepBasicsComponent_Conditional_26_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelementStart(0, "option", 16);
|
|
18
|
+
i0.ɵɵtext(1);
|
|
19
|
+
i0.ɵɵelementEnd();
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
const schema_r3 = ctx.$implicit;
|
|
22
|
+
i0.ɵɵproperty("value", schema_r3.value);
|
|
23
|
+
i0.ɵɵadvance();
|
|
24
|
+
i0.ɵɵtextInterpolate(schema_r3.label);
|
|
25
|
+
} }
|
|
26
|
+
function StepBasicsComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
28
|
+
i0.ɵɵelementStart(0, "select", 15);
|
|
29
|
+
i0.ɵɵlistener("change", function StepBasicsComponent_Conditional_26_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnSchemaChange($event.target.value)); });
|
|
30
|
+
i0.ɵɵrepeaterCreate(1, StepBasicsComponent_Conditional_26_For_2_Template, 2, 2, "option", 16, _forTrack0);
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
34
|
+
i0.ɵɵproperty("value", ctx_r1.SchemaName);
|
|
35
|
+
i0.ɵɵadvance();
|
|
36
|
+
i0.ɵɵrepeater(ctx_r1.AvailableSchemas);
|
|
37
|
+
} }
|
|
38
|
+
function StepBasicsComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
40
|
+
i0.ɵɵelement(1, "i", 17);
|
|
41
|
+
i0.ɵɵtext(2, " You do not have authorization to create entities in any schema. Contact your administrator. ");
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
} }
|
|
44
|
+
function StepBasicsComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
46
|
+
i0.ɵɵelementStart(0, "input", 18);
|
|
47
|
+
i0.ɵɵlistener("input", function StepBasicsComponent_Conditional_28_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnCustomSchemaChange($event.target.value)); });
|
|
48
|
+
i0.ɵɵelementEnd();
|
|
49
|
+
i0.ɵɵelementStart(1, "span", 5);
|
|
50
|
+
i0.ɵɵelement(2, "i", 19);
|
|
51
|
+
i0.ɵɵtext(3, " Custom schema requires elevated access. Confirm with your DBA. ");
|
|
52
|
+
i0.ɵɵelementEnd();
|
|
53
|
+
} if (rf & 2) {
|
|
54
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
55
|
+
i0.ɵɵproperty("value", ctx_r1.CustomSchemaName);
|
|
56
|
+
} }
|
|
57
|
+
export class StepBasicsComponent {
|
|
58
|
+
cdr = inject(ChangeDetectorRef);
|
|
59
|
+
InitialValue = {};
|
|
60
|
+
_availableSchemas = [];
|
|
61
|
+
set AvailableSchemas(schemas) {
|
|
62
|
+
this._availableSchemas = schemas;
|
|
63
|
+
// Schemas arrive async — if SchemaName wasn't set by InitialValue, auto-select the default now.
|
|
64
|
+
if (!this.SchemaName && schemas.length > 0) {
|
|
65
|
+
this.SchemaName = this.defaultSchema();
|
|
66
|
+
this.updateCustomSchemaVisibility();
|
|
67
|
+
this.emit();
|
|
68
|
+
this.cdr.markForCheck();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
get AvailableSchemas() { return this._availableSchemas; }
|
|
72
|
+
ValueChanged = new EventEmitter();
|
|
73
|
+
// ─── Form fields ───────────────────────────────────────────────────────
|
|
74
|
+
EntityName = '';
|
|
75
|
+
TableName = '';
|
|
76
|
+
SchemaName = '';
|
|
77
|
+
Description = '';
|
|
78
|
+
/** When true, TableName auto-tracks EntityName changes. */
|
|
79
|
+
tableNameIsAuto = true;
|
|
80
|
+
// ─── Custom schema input ───────────────────────────────────────────────
|
|
81
|
+
ShowCustomSchemaInput = false;
|
|
82
|
+
CustomSchemaName = '';
|
|
83
|
+
// ─── Lifecycle ─────────────────────────────────────────────────────────
|
|
84
|
+
ngOnInit() {
|
|
85
|
+
this.EntityName = this.InitialValue.entityName ?? '';
|
|
86
|
+
this.TableName = this.InitialValue.tableName ?? '';
|
|
87
|
+
this.SchemaName = this.InitialValue.schemaName ?? this.defaultSchema();
|
|
88
|
+
this.Description = this.InitialValue.description ?? '';
|
|
89
|
+
this.tableNameIsAuto = this.InitialValue.tableNameIsAuto ?? true;
|
|
90
|
+
// If SchemaName was a previously typed value (no matching dropdown option),
|
|
91
|
+
// restore it to CustomSchemaName so the text field is pre-populated on back-nav.
|
|
92
|
+
const knownOpt = this.AvailableSchemas.find(s => s.value === this.SchemaName);
|
|
93
|
+
if (knownOpt == null && this.SchemaName) {
|
|
94
|
+
this.CustomSchemaName = this.SchemaName;
|
|
95
|
+
}
|
|
96
|
+
this.updateCustomSchemaVisibility();
|
|
97
|
+
}
|
|
98
|
+
// ─── Event handlers ────────────────────────────────────────────────────
|
|
99
|
+
OnEntityNameChange(value) {
|
|
100
|
+
this.EntityName = value;
|
|
101
|
+
if (this.tableNameIsAuto) {
|
|
102
|
+
this.TableName = this.deriveTableName(value);
|
|
103
|
+
}
|
|
104
|
+
this.emit();
|
|
105
|
+
}
|
|
106
|
+
OnTableNameChange(value) {
|
|
107
|
+
this.TableName = value;
|
|
108
|
+
// User has taken manual control
|
|
109
|
+
this.tableNameIsAuto = value === this.deriveTableName(this.EntityName);
|
|
110
|
+
this.emit();
|
|
111
|
+
}
|
|
112
|
+
OnSchemaChange(value) {
|
|
113
|
+
this.SchemaName = value;
|
|
114
|
+
this.updateCustomSchemaVisibility();
|
|
115
|
+
if (!this.ShowCustomSchemaInput)
|
|
116
|
+
this.CustomSchemaName = '';
|
|
117
|
+
this.emit();
|
|
118
|
+
}
|
|
119
|
+
OnCustomSchemaChange(value) {
|
|
120
|
+
this.CustomSchemaName = value;
|
|
121
|
+
this.SchemaName = value;
|
|
122
|
+
this.emit();
|
|
123
|
+
}
|
|
124
|
+
OnDescriptionChange(value) {
|
|
125
|
+
this.Description = value;
|
|
126
|
+
this.emit();
|
|
127
|
+
}
|
|
128
|
+
// ─── Helpers ───────────────────────────────────────────────────────────
|
|
129
|
+
/** Pick the first schema in the list as default (usually '__mj_UDT'). */
|
|
130
|
+
defaultSchema() {
|
|
131
|
+
const def = this.AvailableSchemas.find(s => s.isDefault);
|
|
132
|
+
return def?.value ?? this.AvailableSchemas[0]?.value ?? '';
|
|
133
|
+
}
|
|
134
|
+
updateCustomSchemaVisibility() {
|
|
135
|
+
const opt = this.AvailableSchemas.find(s => s.value === this.SchemaName);
|
|
136
|
+
// Show the free-text input only for the "Other" sentinel option (value === '').
|
|
137
|
+
// Named schemas like 'testing_ethan' already have their name from the dropdown.
|
|
138
|
+
// If SchemaName doesn't match any option (back-navigation from a typed entry),
|
|
139
|
+
// show the input so the user can still edit their previously typed value.
|
|
140
|
+
this.ShowCustomSchemaInput = opt != null ? opt.value === '' : this.SchemaName !== '';
|
|
141
|
+
}
|
|
142
|
+
/** Convert "Support Tickets" → "SupportTickets". */
|
|
143
|
+
deriveTableName(entityName) {
|
|
144
|
+
return entityName
|
|
145
|
+
.replace(/[^a-zA-Z0-9 ]/g, '')
|
|
146
|
+
.split(' ')
|
|
147
|
+
.filter(Boolean)
|
|
148
|
+
.map(w => w.charAt(0).toUpperCase() + w.slice(1))
|
|
149
|
+
.join('');
|
|
150
|
+
}
|
|
151
|
+
emit() {
|
|
152
|
+
this.ValueChanged.emit({
|
|
153
|
+
entityName: this.EntityName,
|
|
154
|
+
tableName: this.TableName,
|
|
155
|
+
schemaName: this.SchemaName,
|
|
156
|
+
description: this.Description,
|
|
157
|
+
tableNameIsAuto: this.tableNameIsAuto,
|
|
158
|
+
});
|
|
159
|
+
this.cdr.markForCheck();
|
|
160
|
+
}
|
|
161
|
+
static ɵfac = function StepBasicsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StepBasicsComponent)(); };
|
|
162
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StepBasicsComponent, selectors: [["mj-entity-step-basics"]], inputs: { InitialValue: "InitialValue", AvailableSchemas: "AvailableSchemas" }, outputs: { ValueChanged: "ValueChanged" }, standalone: false, decls: 34, vars: 8, consts: [[1, "step-basics"], [1, "field-group"], ["for", "entityName", 1, "field-label"], [1, "req"], ["id", "entityName", "type", "text", "placeholder", "e.g. Project Milestones", "autocomplete", "off", 1, "mj-input", 3, "input", "value"], [1, "field-hint"], ["for", "tableName", 1, "field-label"], [1, "table-name-wrap"], ["id", "tableName", "type", "text", "placeholder", "e.g. ProjectMilestones", "autocomplete", "off", 1, "mj-input", 3, "input", "value"], [1, "auto-badge"], ["for", "schemaName", 1, "field-label"], ["id", "schemaName", 1, "mj-input", 3, "value"], [1, "no-schemas-warning"], ["for", "description", 1, "field-label"], ["id", "description", "rows", "3", "placeholder", "Optional \u2014 briefly describe the purpose of this entity", 1, "mj-textarea", 3, "input", "value"], ["id", "schemaName", 1, "mj-input", 3, "change", "value"], [3, "value"], [1, "fa-solid", "fa-lock"], ["type", "text", "placeholder", "Enter schema name (e.g. sales, finance)", "autocomplete", "off", 1, "mj-input", "mt-sm", 3, "input", "value"], [1, "fa-solid", "fa-triangle-exclamation", "warning-icon"]], template: function StepBasicsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
163
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "label", 2);
|
|
164
|
+
i0.ɵɵtext(3, " Entity Name ");
|
|
165
|
+
i0.ɵɵelementStart(4, "span", 3);
|
|
166
|
+
i0.ɵɵtext(5, "*");
|
|
167
|
+
i0.ɵɵelementEnd()();
|
|
168
|
+
i0.ɵɵelementStart(6, "input", 4);
|
|
169
|
+
i0.ɵɵlistener("input", function StepBasicsComponent_Template_input_input_6_listener($event) { return ctx.OnEntityNameChange($event.target.value); });
|
|
170
|
+
i0.ɵɵelementEnd();
|
|
171
|
+
i0.ɵɵelementStart(7, "span", 5);
|
|
172
|
+
i0.ɵɵtext(8, " The display name used throughout MemberJunction (e.g., \"Expense Reports\") ");
|
|
173
|
+
i0.ɵɵelementEnd()();
|
|
174
|
+
i0.ɵɵelementStart(9, "div", 1)(10, "label", 6);
|
|
175
|
+
i0.ɵɵtext(11, " Table Name ");
|
|
176
|
+
i0.ɵɵelementStart(12, "span", 3);
|
|
177
|
+
i0.ɵɵtext(13, "*");
|
|
178
|
+
i0.ɵɵelementEnd()();
|
|
179
|
+
i0.ɵɵelementStart(14, "div", 7)(15, "input", 8);
|
|
180
|
+
i0.ɵɵlistener("input", function StepBasicsComponent_Template_input_input_15_listener($event) { return ctx.OnTableNameChange($event.target.value); });
|
|
181
|
+
i0.ɵɵelementEnd();
|
|
182
|
+
i0.ɵɵelementStart(16, "span", 9);
|
|
183
|
+
i0.ɵɵtext(17, "auto");
|
|
184
|
+
i0.ɵɵelementEnd()();
|
|
185
|
+
i0.ɵɵelementStart(18, "span", 5);
|
|
186
|
+
i0.ɵɵtext(19, " SQL table identifier. PascalCase, no spaces. ");
|
|
187
|
+
i0.ɵɵconditionalCreate(20, StepBasicsComponent_Conditional_20_Template, 1, 0);
|
|
188
|
+
i0.ɵɵelementEnd()();
|
|
189
|
+
i0.ɵɵelementStart(21, "div", 1)(22, "label", 10);
|
|
190
|
+
i0.ɵɵtext(23, " Schema ");
|
|
191
|
+
i0.ɵɵelementStart(24, "span", 3);
|
|
192
|
+
i0.ɵɵtext(25, "*");
|
|
193
|
+
i0.ɵɵelementEnd()();
|
|
194
|
+
i0.ɵɵconditionalCreate(26, StepBasicsComponent_Conditional_26_Template, 3, 1, "select", 11)(27, StepBasicsComponent_Conditional_27_Template, 3, 0, "div", 12);
|
|
195
|
+
i0.ɵɵconditionalCreate(28, StepBasicsComponent_Conditional_28_Template, 4, 1);
|
|
196
|
+
i0.ɵɵelementEnd();
|
|
197
|
+
i0.ɵɵelementStart(29, "div", 1)(30, "label", 13);
|
|
198
|
+
i0.ɵɵtext(31, "Description");
|
|
199
|
+
i0.ɵɵelementEnd();
|
|
200
|
+
i0.ɵɵelementStart(32, "textarea", 14);
|
|
201
|
+
i0.ɵɵlistener("input", function StepBasicsComponent_Template_textarea_input_32_listener($event) { return ctx.OnDescriptionChange($event.target.value); });
|
|
202
|
+
i0.ɵɵtext(33, " ");
|
|
203
|
+
i0.ɵɵelementEnd()()();
|
|
204
|
+
} if (rf & 2) {
|
|
205
|
+
i0.ɵɵadvance(6);
|
|
206
|
+
i0.ɵɵproperty("value", ctx.EntityName);
|
|
207
|
+
i0.ɵɵadvance(9);
|
|
208
|
+
i0.ɵɵproperty("value", ctx.TableName);
|
|
209
|
+
i0.ɵɵadvance();
|
|
210
|
+
i0.ɵɵclassProp("active", ctx.tableNameIsAuto);
|
|
211
|
+
i0.ɵɵadvance(4);
|
|
212
|
+
i0.ɵɵconditional(ctx.tableNameIsAuto ? 20 : -1);
|
|
213
|
+
i0.ɵɵadvance(6);
|
|
214
|
+
i0.ɵɵconditional(ctx.AvailableSchemas.length > 0 ? 26 : 27);
|
|
215
|
+
i0.ɵɵadvance(2);
|
|
216
|
+
i0.ɵɵconditional(ctx.ShowCustomSchemaInput ? 28 : -1);
|
|
217
|
+
i0.ɵɵadvance(4);
|
|
218
|
+
i0.ɵɵproperty("value", ctx.Description);
|
|
219
|
+
} }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption], styles: [".step-basics[_ngcontent-%COMP%] {\n padding: 24px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.field-group[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.field-label[_ngcontent-%COMP%] {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.req[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.field-hint[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.5;\n}\n\n.table-name-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.table-name-wrap[_ngcontent-%COMP%] .mj-input[_ngcontent-%COMP%] {\n flex: 1;\n padding-right: 52px;\n}\n\n.auto-badge[_ngcontent-%COMP%] {\n position: absolute;\n right: 8px;\n font-size: 0.7rem;\n font-weight: 700;\n text-transform: uppercase;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n pointer-events: none;\n transition: background 0.15s, color 0.15s;\n}\n\n.auto-badge.active[_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.no-schemas-warning[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n border-radius: 6px;\n font-size: 0.875rem;\n}\n\n.warning-icon[_ngcontent-%COMP%] {\n color: var(--mj-status-warning);\n margin-right: 3px;\n}\n\n.mt-sm[_ngcontent-%COMP%] {\n margin-top: 8px;\n}"], changeDetection: 0 });
|
|
220
|
+
}
|
|
221
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StepBasicsComponent, [{
|
|
222
|
+
type: Component,
|
|
223
|
+
args: [{ standalone: false, selector: 'mj-entity-step-basics', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"step-basics\">\n\n <!-- \u2500\u2500 Entity Name \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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=\"field-group\">\n <label class=\"field-label\" for=\"entityName\">\n Entity Name <span class=\"req\">*</span>\n </label>\n <input\n id=\"entityName\"\n type=\"text\"\n class=\"mj-input\"\n placeholder=\"e.g. Project Milestones\"\n [value]=\"EntityName\"\n (input)=\"OnEntityNameChange($any($event.target).value)\"\n autocomplete=\"off\" />\n <span class=\"field-hint\">\n The display name used throughout MemberJunction (e.g., \"Expense Reports\")\n </span>\n </div>\n\n <!-- \u2500\u2500 Table Name \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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=\"field-group\">\n <label class=\"field-label\" for=\"tableName\">\n Table Name <span class=\"req\">*</span>\n </label>\n <div class=\"table-name-wrap\">\n <input\n id=\"tableName\"\n type=\"text\"\n class=\"mj-input\"\n placeholder=\"e.g. ProjectMilestones\"\n [value]=\"TableName\"\n (input)=\"OnTableNameChange($any($event.target).value)\"\n autocomplete=\"off\" />\n <span class=\"auto-badge\" [class.active]=\"tableNameIsAuto\">auto</span>\n </div>\n <span class=\"field-hint\">\n SQL table identifier. PascalCase, no spaces.\n @if (tableNameIsAuto) {\n Auto-derived from entity name \u2014 edit to override.\n }\n </span>\n </div>\n\n <!-- \u2500\u2500 Schema \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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=\"field-group\">\n <label class=\"field-label\" for=\"schemaName\">\n Schema <span class=\"req\">*</span>\n </label>\n @if (AvailableSchemas.length > 0) {\n <select\n id=\"schemaName\"\n class=\"mj-input\"\n [value]=\"SchemaName\"\n (change)=\"OnSchemaChange($any($event.target).value)\">\n @for (schema of AvailableSchemas; track schema.value) {\n <option [value]=\"schema.value\">{{ schema.label }}</option>\n }\n </select>\n } @else {\n <div class=\"no-schemas-warning\">\n <i class=\"fa-solid fa-lock\"></i>\n You do not have authorization to create entities in any schema.\n Contact your administrator.\n </div>\n }\n\n @if (ShowCustomSchemaInput) {\n <input\n type=\"text\"\n class=\"mj-input mt-sm\"\n placeholder=\"Enter schema name (e.g. sales, finance)\"\n [value]=\"CustomSchemaName\"\n (input)=\"OnCustomSchemaChange($any($event.target).value)\"\n autocomplete=\"off\" />\n <span class=\"field-hint\">\n <i class=\"fa-solid fa-triangle-exclamation warning-icon\"></i>\n Custom schema requires elevated access. Confirm with your DBA.\n </span>\n }\n </div>\n\n <!-- \u2500\u2500 Description \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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=\"field-group\">\n <label class=\"field-label\" for=\"description\">Description</label>\n <textarea\n id=\"description\"\n class=\"mj-textarea\"\n rows=\"3\"\n placeholder=\"Optional \u2014 briefly describe the purpose of this entity\"\n [value]=\"Description\"\n (input)=\"OnDescriptionChange($any($event.target).value)\">\n </textarea>\n </div>\n\n</div>\n", styles: [".step-basics {\n padding: 24px;\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.field-group {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.field-label {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.req {\n color: var(--mj-status-error);\n}\n\n.field-hint {\n font-size: 0.8rem;\n color: var(--mj-text-muted);\n line-height: 1.5;\n}\n\n.table-name-wrap {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.table-name-wrap .mj-input {\n flex: 1;\n padding-right: 52px;\n}\n\n.auto-badge {\n position: absolute;\n right: 8px;\n font-size: 0.7rem;\n font-weight: 700;\n text-transform: uppercase;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-muted);\n pointer-events: none;\n transition: background 0.15s, color 0.15s;\n}\n\n.auto-badge.active {\n background: color-mix(in srgb, var(--mj-brand-primary) 12%, var(--mj-bg-surface));\n color: var(--mj-brand-primary);\n}\n\n.no-schemas-warning {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 14px;\n background: var(--mj-status-warning-bg);\n color: var(--mj-status-warning-text);\n border: 1px solid var(--mj-status-warning-border);\n border-radius: 6px;\n font-size: 0.875rem;\n}\n\n.warning-icon {\n color: var(--mj-status-warning);\n margin-right: 3px;\n}\n\n.mt-sm {\n margin-top: 8px;\n}\n"] }]
|
|
224
|
+
}], null, { InitialValue: [{
|
|
225
|
+
type: Input
|
|
226
|
+
}], AvailableSchemas: [{
|
|
227
|
+
type: Input
|
|
228
|
+
}], ValueChanged: [{
|
|
229
|
+
type: Output
|
|
230
|
+
}] }); })();
|
|
231
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StepBasicsComponent, { className: "StepBasicsComponent", filePath: "src/DatabaseDesigner/components/create-wizard/steps/step-basics.component.ts", lineNumber: 23 }); })();
|
|
232
|
+
//# sourceMappingURL=step-basics.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-basics.component.js","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-basics.component.ts","../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-basics.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @module step-basics.component\n * @description Step 1 of the create wizard — entity name, table name, schema, description.\n *\n * Auto-derives the table name from entity name (PascalCase, no spaces) but\n * lets the user override it freely. Once the user manually edits the table\n * name it stops tracking entity name changes.\n */\n\nimport {\n Component, Input, Output, EventEmitter, OnInit,\n ChangeDetectionStrategy, ChangeDetectorRef, inject,\n} from '@angular/core';\nimport type { BasicsStepValue, SchemaOption } from '../../../database-designer.types.js';\n\n@Component({\n standalone: false,\n selector: 'mj-entity-step-basics',\n templateUrl: './step-basics.component.html',\n styleUrls: ['./step-basics.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepBasicsComponent implements OnInit {\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Input() public InitialValue: Partial<BasicsStepValue> = {};\n\n private _availableSchemas: SchemaOption[] = [];\n @Input()\n set AvailableSchemas(schemas: SchemaOption[]) {\n this._availableSchemas = schemas;\n // Schemas arrive async — if SchemaName wasn't set by InitialValue, auto-select the default now.\n if (!this.SchemaName && schemas.length > 0) {\n this.SchemaName = this.defaultSchema();\n this.updateCustomSchemaVisibility();\n this.emit();\n this.cdr.markForCheck();\n }\n }\n get AvailableSchemas(): SchemaOption[] { return this._availableSchemas; }\n\n @Output() public readonly ValueChanged = new EventEmitter<BasicsStepValue>();\n\n // ─── Form fields ───────────────────────────────────────────────────────\n\n public EntityName = '';\n public TableName = '';\n public SchemaName = '';\n public Description = '';\n\n /** When true, TableName auto-tracks EntityName changes. */\n public tableNameIsAuto = true;\n\n // ─── Custom schema input ───────────────────────────────────────────────\n\n public ShowCustomSchemaInput = false;\n public CustomSchemaName = '';\n\n // ─── Lifecycle ─────────────────────────────────────────────────────────\n\n ngOnInit(): void {\n this.EntityName = this.InitialValue.entityName ?? '';\n this.TableName = this.InitialValue.tableName ?? '';\n this.SchemaName = this.InitialValue.schemaName ?? this.defaultSchema();\n this.Description = this.InitialValue.description ?? '';\n this.tableNameIsAuto = this.InitialValue.tableNameIsAuto ?? true;\n // If SchemaName was a previously typed value (no matching dropdown option),\n // restore it to CustomSchemaName so the text field is pre-populated on back-nav.\n const knownOpt = this.AvailableSchemas.find(s => s.value === this.SchemaName);\n if (knownOpt == null && this.SchemaName) {\n this.CustomSchemaName = this.SchemaName;\n }\n this.updateCustomSchemaVisibility();\n }\n\n // ─── Event handlers ────────────────────────────────────────────────────\n\n public OnEntityNameChange(value: string): void {\n this.EntityName = value;\n if (this.tableNameIsAuto) {\n this.TableName = this.deriveTableName(value);\n }\n this.emit();\n }\n\n public OnTableNameChange(value: string): void {\n this.TableName = value;\n // User has taken manual control\n this.tableNameIsAuto = value === this.deriveTableName(this.EntityName);\n this.emit();\n }\n\n public OnSchemaChange(value: string): void {\n this.SchemaName = value;\n this.updateCustomSchemaVisibility();\n if (!this.ShowCustomSchemaInput) this.CustomSchemaName = '';\n this.emit();\n }\n\n public OnCustomSchemaChange(value: string): void {\n this.CustomSchemaName = value;\n this.SchemaName = value;\n this.emit();\n }\n\n public OnDescriptionChange(value: string): void {\n this.Description = value;\n this.emit();\n }\n\n // ─── Helpers ───────────────────────────────────────────────────────────\n\n /** Pick the first schema in the list as default (usually '__mj_UDT'). */\n private defaultSchema(): string {\n const def = this.AvailableSchemas.find(s => s.isDefault);\n return def?.value ?? this.AvailableSchemas[0]?.value ?? '';\n }\n\n private updateCustomSchemaVisibility(): void {\n const opt = this.AvailableSchemas.find(s => s.value === this.SchemaName);\n // Show the free-text input only for the \"Other\" sentinel option (value === '').\n // Named schemas like 'testing_ethan' already have their name from the dropdown.\n // If SchemaName doesn't match any option (back-navigation from a typed entry),\n // show the input so the user can still edit their previously typed value.\n this.ShowCustomSchemaInput = opt != null ? opt.value === '' : this.SchemaName !== '';\n }\n\n /** Convert \"Support Tickets\" → \"SupportTickets\". */\n public deriveTableName(entityName: string): string {\n return entityName\n .replace(/[^a-zA-Z0-9 ]/g, '')\n .split(' ')\n .filter(Boolean)\n .map(w => w.charAt(0).toUpperCase() + w.slice(1))\n .join('');\n }\n\n private emit(): void {\n this.ValueChanged.emit({\n entityName: this.EntityName,\n tableName: this.TableName,\n schemaName: this.SchemaName,\n description: this.Description,\n tableNameIsAuto: this.tableNameIsAuto,\n });\n this.cdr.markForCheck();\n }\n}\n","<div class=\"step-basics\">\n\n <!-- ── Entity Name ─────────────────────────────────────────────────────── -->\n <div class=\"field-group\">\n <label class=\"field-label\" for=\"entityName\">\n Entity Name <span class=\"req\">*</span>\n </label>\n <input\n id=\"entityName\"\n type=\"text\"\n class=\"mj-input\"\n placeholder=\"e.g. Project Milestones\"\n [value]=\"EntityName\"\n (input)=\"OnEntityNameChange($any($event.target).value)\"\n autocomplete=\"off\" />\n <span class=\"field-hint\">\n The display name used throughout MemberJunction (e.g., \"Expense Reports\")\n </span>\n </div>\n\n <!-- ── Table Name ──────────────────────────────────────────────────────── -->\n <div class=\"field-group\">\n <label class=\"field-label\" for=\"tableName\">\n Table Name <span class=\"req\">*</span>\n </label>\n <div class=\"table-name-wrap\">\n <input\n id=\"tableName\"\n type=\"text\"\n class=\"mj-input\"\n placeholder=\"e.g. ProjectMilestones\"\n [value]=\"TableName\"\n (input)=\"OnTableNameChange($any($event.target).value)\"\n autocomplete=\"off\" />\n <span class=\"auto-badge\" [class.active]=\"tableNameIsAuto\">auto</span>\n </div>\n <span class=\"field-hint\">\n SQL table identifier. PascalCase, no spaces.\n @if (tableNameIsAuto) {\n Auto-derived from entity name — edit to override.\n }\n </span>\n </div>\n\n <!-- ── Schema ──────────────────────────────────────────────────────────── -->\n <div class=\"field-group\">\n <label class=\"field-label\" for=\"schemaName\">\n Schema <span class=\"req\">*</span>\n </label>\n @if (AvailableSchemas.length > 0) {\n <select\n id=\"schemaName\"\n class=\"mj-input\"\n [value]=\"SchemaName\"\n (change)=\"OnSchemaChange($any($event.target).value)\">\n @for (schema of AvailableSchemas; track schema.value) {\n <option [value]=\"schema.value\">{{ schema.label }}</option>\n }\n </select>\n } @else {\n <div class=\"no-schemas-warning\">\n <i class=\"fa-solid fa-lock\"></i>\n You do not have authorization to create entities in any schema.\n Contact your administrator.\n </div>\n }\n\n @if (ShowCustomSchemaInput) {\n <input\n type=\"text\"\n class=\"mj-input mt-sm\"\n placeholder=\"Enter schema name (e.g. sales, finance)\"\n [value]=\"CustomSchemaName\"\n (input)=\"OnCustomSchemaChange($any($event.target).value)\"\n autocomplete=\"off\" />\n <span class=\"field-hint\">\n <i class=\"fa-solid fa-triangle-exclamation warning-icon\"></i>\n Custom schema requires elevated access. Confirm with your DBA.\n </span>\n }\n </div>\n\n <!-- ── Description ────────────────────────────────────────────────────── -->\n <div class=\"field-group\">\n <label class=\"field-label\" for=\"description\">Description</label>\n <textarea\n id=\"description\"\n class=\"mj-textarea\"\n rows=\"3\"\n placeholder=\"Optional — briefly describe the purpose of this entity\"\n [value]=\"Description\"\n (input)=\"OnDescriptionChange($any($event.target).value)\">\n </textarea>\n </div>\n\n</div>\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module step-fields.component
|
|
3
|
+
* @description Step 2 wrapper — hosts EntityFieldsGridComponent in create mode.
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from '@angular/core';
|
|
6
|
+
import type { ColumnSpec } from '../../../database-designer.types.js';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class StepFieldsComponent {
|
|
9
|
+
InitialColumns: ColumnSpec[];
|
|
10
|
+
readonly ColumnsChanged: EventEmitter<ColumnSpec[]>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StepFieldsComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StepFieldsComponent, "mj-entity-step-fields", never, { "InitialColumns": { "alias": "InitialColumns"; "required": false; }; }, { "ColumnsChanged": "ColumnsChanged"; }, never, never, false, never>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=step-fields.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-fields.component.d.ts","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-fields.component.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;;AAEtE,qBAea,mBAAmB;IACZ,cAAc,EAAE,UAAU,EAAE,CAAM;IAClD,SAA0B,cAAc,6BAAoC;yCAFnE,mBAAmB;2CAAnB,mBAAmB;CAG/B"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module step-fields.component
|
|
3
|
+
* @description Step 2 wrapper — hosts EntityFieldsGridComponent in create mode.
|
|
4
|
+
*/
|
|
5
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../shared/entity-fields-grid.component";
|
|
8
|
+
export class StepFieldsComponent {
|
|
9
|
+
InitialColumns = [];
|
|
10
|
+
ColumnsChanged = new EventEmitter();
|
|
11
|
+
static ɵfac = function StepFieldsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StepFieldsComponent)(); };
|
|
12
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StepFieldsComponent, selectors: [["mj-entity-step-fields"]], inputs: { InitialColumns: "InitialColumns" }, outputs: { ColumnsChanged: "ColumnsChanged" }, standalone: false, decls: 2, vars: 1, consts: [[1, "step-fields-wrap"], ["Mode", "create", 3, "ColumnsChanged", "Columns"]], template: function StepFieldsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "mj-database-fields-grid", 1);
|
|
14
|
+
i0.ɵɵlistener("ColumnsChanged", function StepFieldsComponent_Template_mj_database_fields_grid_ColumnsChanged_1_listener($event) { return ctx.ColumnsChanged.emit($event); });
|
|
15
|
+
i0.ɵɵelementEnd()();
|
|
16
|
+
} if (rf & 2) {
|
|
17
|
+
i0.ɵɵadvance();
|
|
18
|
+
i0.ɵɵproperty("Columns", ctx.InitialColumns);
|
|
19
|
+
} }, dependencies: [i1.EntityFieldsGridComponent], styles: [".step-fields-wrap[_ngcontent-%COMP%] { height: 100%; display: flex; flex-direction: column; }"], changeDetection: 0 });
|
|
20
|
+
}
|
|
21
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StepFieldsComponent, [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ standalone: false, selector: 'mj-entity-step-fields', template: `
|
|
24
|
+
<div class="step-fields-wrap">
|
|
25
|
+
<mj-database-fields-grid
|
|
26
|
+
[Columns]="InitialColumns"
|
|
27
|
+
Mode="create"
|
|
28
|
+
(ColumnsChanged)="ColumnsChanged.emit($event)">
|
|
29
|
+
</mj-database-fields-grid>
|
|
30
|
+
</div>
|
|
31
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".step-fields-wrap { height: 100%; display: flex; flex-direction: column; }"] }]
|
|
32
|
+
}], null, { InitialColumns: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], ColumnsChanged: [{
|
|
35
|
+
type: Output
|
|
36
|
+
}] }); })();
|
|
37
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StepFieldsComponent, { className: "StepFieldsComponent", filePath: "src/DatabaseDesigner/components/create-wizard/steps/step-fields.component.ts", lineNumber: 24 }); })();
|
|
38
|
+
//# sourceMappingURL=step-fields.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-fields.component.js","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-fields.component.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;;;AAkBhG,MAAM,OAAO,mBAAmB;IACZ,cAAc,GAAiB,EAAE,CAAC;IACxB,cAAc,GAAG,IAAI,YAAY,EAAgB,CAAC;6GAFnE,mBAAmB;6DAAnB,mBAAmB;YAVpB,AADJ,8BAA8B,iCAIyB;YAA/C,yIAAkB,+BAA2B,IAAC;YAEtD,AADI,iBAA0B,EACxB;;YAJE,cAA0B;YAA1B,4CAA0B;;;iFAS7B,mBAAmB;cAf/B,SAAS;6BACM,KAAK,YACP,uBAAuB,YACvB;;;;;;;;KAQT,mBAEgB,uBAAuB,CAAC,MAAM;;kBAG9C,KAAK;;kBACL,MAAM;;kFAFE,mBAAmB","sourcesContent":["/**\n * @module step-fields.component\n * @description Step 2 wrapper — hosts EntityFieldsGridComponent in create mode.\n */\n\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport type { ColumnSpec } from '../../../database-designer.types.js';\n\n@Component({\n standalone: false,\n selector: 'mj-entity-step-fields',\n template: `\n <div class=\"step-fields-wrap\">\n <mj-database-fields-grid\n [Columns]=\"InitialColumns\"\n Mode=\"create\"\n (ColumnsChanged)=\"ColumnsChanged.emit($event)\">\n </mj-database-fields-grid>\n </div>\n `,\n styles: [`.step-fields-wrap { height: 100%; display: flex; flex-direction: column; }`],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepFieldsComponent {\n @Input() public InitialColumns: ColumnSpec[] = [];\n @Output() public readonly ColumnsChanged = new EventEmitter<ColumnSpec[]>();\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module step-pipeline.component
|
|
3
|
+
* @description Step 5 wrapper — hosts EntityPipelinePanelComponent.
|
|
4
|
+
* Starts pipeline execution on init and surfaces success/retry CTAs.
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter, AfterViewInit } from '@angular/core';
|
|
7
|
+
import type { EntityTableSpec, EntityPipelineResult } from '../../../database-designer.types.js';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class StepPipelineComponent implements AfterViewInit {
|
|
10
|
+
private readonly cdr;
|
|
11
|
+
TableDefinition: Partial<EntityTableSpec>;
|
|
12
|
+
readonly PipelineCompleted: EventEmitter<EntityPipelineResult>;
|
|
13
|
+
readonly CreateAnother: EventEmitter<void>;
|
|
14
|
+
private pipelinePanel;
|
|
15
|
+
PipelineResult: EntityPipelineResult | null;
|
|
16
|
+
ngAfterViewInit(): void;
|
|
17
|
+
/** Backup trigger called by the wizard after the @if block renders the step. */
|
|
18
|
+
StartPipeline(): void;
|
|
19
|
+
OnCompleted(result: EntityPipelineResult): void;
|
|
20
|
+
get AsEntityTableSpec(): EntityTableSpec | null;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StepPipelineComponent, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StepPipelineComponent, "mj-entity-step-pipeline", never, { "TableDefinition": { "alias": "TableDefinition"; "required": false; }; }, { "PipelineCompleted": "PipelineCompleted"; "CreateAnother": "CreateAnother"; }, never, never, false, never>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=step-pipeline.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-pipeline.component.d.ts","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACuB,YAAY,EAAE,aAAa,EAExD,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;;AAEjG,qBAMa,qBAAsB,YAAW,aAAa;IAEvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAEjC,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IAC/D,SAA0B,iBAAiB,qCAA4C;IACvF,SAA0B,aAAa,qBAA4B;IAGnE,OAAO,CAAC,aAAa,CAAgC;IAE9C,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IAE1D,eAAe,IAAI,IAAI;IAKvB,gFAAgF;IACzE,aAAa,IAAI,IAAI;IAIrB,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAKtD,IAAW,iBAAiB,IAAI,eAAe,GAAG,IAAI,CAIrD;yCAhCQ,qBAAqB;2CAArB,qBAAqB;CAiCjC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module step-pipeline.component
|
|
3
|
+
* @description Step 5 wrapper — hosts EntityPipelinePanelComponent.
|
|
4
|
+
* Starts pipeline execution on init and surfaces success/retry CTAs.
|
|
5
|
+
*/
|
|
6
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, inject, } from '@angular/core';
|
|
7
|
+
import { EntityPipelinePanelComponent } from '../../shared/entity-pipeline-panel.component.js';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@memberjunction/ng-ui-components";
|
|
10
|
+
import * as i2 from "../../shared/entity-pipeline-panel.component";
|
|
11
|
+
function StepPipelineComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
13
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "button", 3);
|
|
14
|
+
i0.ɵɵlistener("click", function StepPipelineComponent_Conditional_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.CreateAnother.emit()); });
|
|
15
|
+
i0.ɵɵelement(2, "i", 4);
|
|
16
|
+
i0.ɵɵtext(3, " Create Another Entity ");
|
|
17
|
+
i0.ɵɵelementEnd()();
|
|
18
|
+
} }
|
|
19
|
+
export class StepPipelineComponent {
|
|
20
|
+
cdr = inject(ChangeDetectorRef);
|
|
21
|
+
TableDefinition = {};
|
|
22
|
+
PipelineCompleted = new EventEmitter();
|
|
23
|
+
CreateAnother = new EventEmitter();
|
|
24
|
+
pipelinePanel;
|
|
25
|
+
PipelineResult = null;
|
|
26
|
+
ngAfterViewInit() {
|
|
27
|
+
// Kick off the pipeline immediately once the view is ready
|
|
28
|
+
this.pipelinePanel?.StartExecution();
|
|
29
|
+
}
|
|
30
|
+
/** Backup trigger called by the wizard after the @if block renders the step. */
|
|
31
|
+
StartPipeline() {
|
|
32
|
+
this.pipelinePanel?.StartExecution();
|
|
33
|
+
}
|
|
34
|
+
OnCompleted(result) {
|
|
35
|
+
this.PipelineResult = result;
|
|
36
|
+
this.PipelineCompleted.emit(result);
|
|
37
|
+
}
|
|
38
|
+
get AsEntityTableSpec() {
|
|
39
|
+
const td = this.TableDefinition;
|
|
40
|
+
if (!td.EntityName || !td.TableName || !td.SchemaName)
|
|
41
|
+
return null;
|
|
42
|
+
return td;
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = function StepPipelineComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || StepPipelineComponent)(); };
|
|
45
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StepPipelineComponent, selectors: [["mj-entity-step-pipeline"]], viewQuery: function StepPipelineComponent_Query(rf, ctx) { if (rf & 1) {
|
|
46
|
+
i0.ɵɵviewQuery(EntityPipelinePanelComponent, 5);
|
|
47
|
+
} if (rf & 2) {
|
|
48
|
+
let _t;
|
|
49
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pipelinePanel = _t.first);
|
|
50
|
+
} }, inputs: { TableDefinition: "TableDefinition" }, outputs: { PipelineCompleted: "PipelineCompleted", CreateAnother: "CreateAnother" }, standalone: false, decls: 3, vars: 3, consts: [[1, "step-pipeline"], ["ModificationType", "create", 3, "Completed", "Errored", "TableDefinition", "AutoStart"], [1, "pipeline-ctas"], ["mjButton", "", "buttonStyle", "secondary", 3, "click"], [1, "fa-solid", "fa-plus"]], template: function StepPipelineComponent_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "mj-database-pipeline-panel", 1);
|
|
52
|
+
i0.ɵɵlistener("Completed", function StepPipelineComponent_Template_mj_database_pipeline_panel_Completed_1_listener($event) { return ctx.OnCompleted($event); })("Errored", function StepPipelineComponent_Template_mj_database_pipeline_panel_Errored_1_listener($event) { return ctx.PipelineCompleted.emit({ Success: false, ErrorMessage: $event }); });
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
i0.ɵɵconditionalCreate(2, StepPipelineComponent_Conditional_2_Template, 4, 0, "div", 2);
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
} if (rf & 2) {
|
|
57
|
+
i0.ɵɵadvance();
|
|
58
|
+
i0.ɵɵproperty("TableDefinition", ctx.AsEntityTableSpec)("AutoStart", true);
|
|
59
|
+
i0.ɵɵadvance();
|
|
60
|
+
i0.ɵɵconditional((ctx.PipelineResult == null ? null : ctx.PipelineResult.Success) ? 2 : -1);
|
|
61
|
+
} }, dependencies: [i1.MJButtonDirective, i2.EntityPipelinePanelComponent], encapsulation: 2, changeDetection: 0 });
|
|
62
|
+
}
|
|
63
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StepPipelineComponent, [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ standalone: false, selector: 'mj-entity-step-pipeline', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"step-pipeline\">\n\n <mj-database-pipeline-panel\n [TableDefinition]=\"AsEntityTableSpec\"\n ModificationType=\"create\"\n [AutoStart]=\"true\"\n (Completed)=\"OnCompleted($event)\"\n (Errored)=\"PipelineCompleted.emit({ Success: false, ErrorMessage: $event })\">\n </mj-database-pipeline-panel>\n\n <!-- CTA buttons shown after success -->\n @if (PipelineResult?.Success) {\n <div class=\"pipeline-ctas\">\n <button mjButton buttonStyle=\"secondary\" (click)=\"CreateAnother.emit()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Another Entity\n </button>\n </div>\n }\n\n</div>\n" }]
|
|
66
|
+
}], null, { TableDefinition: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], PipelineCompleted: [{
|
|
69
|
+
type: Output
|
|
70
|
+
}], CreateAnother: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}], pipelinePanel: [{
|
|
73
|
+
type: ViewChild,
|
|
74
|
+
args: [EntityPipelinePanelComponent]
|
|
75
|
+
}] }); })();
|
|
76
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StepPipelineComponent, { className: "StepPipelineComponent", filePath: "src/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.ts", lineNumber: 20 }); })();
|
|
77
|
+
//# sourceMappingURL=step-pipeline.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-pipeline.component.js","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.ts","../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-pipeline.component.html"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EACtC,uBAAuB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAChE,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;;;;;;ICGzF,AADF,8BAA2B,gBAC+C;IAA/B,yLAAS,2BAAoB,KAAC;IACrE,uBAAgC;IAChC,uCACF;IACF,AADE,iBAAS,EACL;;ADEV,MAAM,OAAO,qBAAqB;IAEb,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEjC,eAAe,GAA6B,EAAE,CAAC;IACrC,iBAAiB,GAAG,IAAI,YAAY,EAAwB,CAAC;IAC7D,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;IAG3D,aAAa,CAAgC;IAE9C,cAAc,GAAgC,IAAI,CAAC;IAE1D,eAAe;QACX,2DAA2D;QAC3D,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC;IACzC,CAAC;IAED,gFAAgF;IACzE,aAAa;QAChB,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,CAAC;IACzC,CAAC;IAEM,WAAW,CAAC,MAA4B;QAC3C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,IAAW,iBAAiB;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACnE,OAAO,EAAqB,CAAC;IACjC,CAAC;+GAhCQ,qBAAqB;6DAArB,qBAAqB;2BAQnB,4BAA4B;;;;;YCzBzC,AAFF,8BAA2B,oCAOsD;YAA7E,AADA,oIAAa,uBAAmB,IAAC,mHACtB,2BAAuB,WAAW,KAAK,wBAAwB,CAAC,IAAC;YAC9E,iBAA6B;YAG7B,uFAA+B;YASjC,iBAAM;;YAjBF,cAAqC;YAErC,AAFA,uDAAqC,mBAEnB;YAMpB,cAOC;YAPD,2FAOC;;;iFDCU,qBAAqB;cANjC,SAAS;6BACM,KAAK,YACP,yBAAyB,mBAElB,uBAAuB,CAAC,MAAM;;kBAM9C,KAAK;;kBACL,MAAM;;kBACN,MAAM;;kBAEN,SAAS;mBAAC,4BAA4B;;kFAR9B,qBAAqB","sourcesContent":["/**\n * @module step-pipeline.component\n * @description Step 5 wrapper — hosts EntityPipelinePanelComponent.\n * Starts pipeline execution on init and surfaces success/retry CTAs.\n */\n\nimport {\n Component, Input, Output, EventEmitter, AfterViewInit,\n ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, inject,\n} from '@angular/core';\nimport { EntityPipelinePanelComponent } from '../../shared/entity-pipeline-panel.component.js';\nimport type { EntityTableSpec, EntityPipelineResult } from '../../../database-designer.types.js';\n\n@Component({\n standalone: false,\n selector: 'mj-entity-step-pipeline',\n templateUrl: './step-pipeline.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepPipelineComponent implements AfterViewInit {\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Input() public TableDefinition: Partial<EntityTableSpec> = {};\n @Output() public readonly PipelineCompleted = new EventEmitter<EntityPipelineResult>();\n @Output() public readonly CreateAnother = new EventEmitter<void>();\n\n @ViewChild(EntityPipelinePanelComponent)\n private pipelinePanel!: EntityPipelinePanelComponent;\n\n public PipelineResult: EntityPipelineResult | null = null;\n\n ngAfterViewInit(): void {\n // Kick off the pipeline immediately once the view is ready\n this.pipelinePanel?.StartExecution();\n }\n\n /** Backup trigger called by the wizard after the @if block renders the step. */\n public StartPipeline(): void {\n this.pipelinePanel?.StartExecution();\n }\n\n public OnCompleted(result: EntityPipelineResult): void {\n this.PipelineResult = result;\n this.PipelineCompleted.emit(result);\n }\n\n public get AsEntityTableSpec(): EntityTableSpec | null {\n const td = this.TableDefinition;\n if (!td.EntityName || !td.TableName || !td.SchemaName) return null;\n return td as EntityTableSpec;\n }\n}\n","<div class=\"step-pipeline\">\n\n <mj-database-pipeline-panel\n [TableDefinition]=\"AsEntityTableSpec\"\n ModificationType=\"create\"\n [AutoStart]=\"true\"\n (Completed)=\"OnCompleted($event)\"\n (Errored)=\"PipelineCompleted.emit({ Success: false, ErrorMessage: $event })\">\n </mj-database-pipeline-panel>\n\n <!-- CTA buttons shown after success -->\n @if (PipelineResult?.Success) {\n <div class=\"pipeline-ctas\">\n <button mjButton buttonStyle=\"secondary\" (click)=\"CreateAnother.emit()\">\n <i class=\"fa-solid fa-plus\"></i>\n Create Another Entity\n </button>\n </div>\n }\n\n</div>\n"]}
|
package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module step-relationships.component
|
|
3
|
+
* @description Step 3 — optional foreign key relationship definitions.
|
|
4
|
+
*
|
|
5
|
+
* Presents one card per FK row. Each card has cascading dropdowns:
|
|
6
|
+
* Source Column → Target Schema → Target Table → Target Column → FK Type
|
|
7
|
+
*
|
|
8
|
+
* All FK target data comes from `Metadata.Entities` (already in-memory at login),
|
|
9
|
+
* so every dropdown is synchronous — no async loading needed.
|
|
10
|
+
*
|
|
11
|
+
* Phase C: FK source columns are no longer restricted to UUID type — any column
|
|
12
|
+
* may be used as a FK source. When the user selects a target column, the
|
|
13
|
+
* component reads its SQL type and auto-selects the first source column whose
|
|
14
|
+
* type matches, improving UX and preventing silent type mismatches.
|
|
15
|
+
*/
|
|
16
|
+
import { EventEmitter } from '@angular/core';
|
|
17
|
+
import { EntityInfo } from '@memberjunction/core';
|
|
18
|
+
import type { ColumnSpec, ForeignKeySpec } from '../../../database-designer.types.js';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
/** Target entity column with its SQL type — used for source-column auto-matching. */
|
|
21
|
+
export interface EntityColumnInfo {
|
|
22
|
+
Name: string;
|
|
23
|
+
/** SQL type string from EntityInfo.Fields (e.g. 'uniqueidentifier', 'int', 'nvarchar'). */
|
|
24
|
+
SqlType: string;
|
|
25
|
+
}
|
|
26
|
+
/** Internal per-row state — carries the resolved entityId alongside the FK spec. */
|
|
27
|
+
interface FkRowState extends ForeignKeySpec {
|
|
28
|
+
rowIndex: number;
|
|
29
|
+
/** EntityInfo.ID of the selected target entity — used to look up columns. */
|
|
30
|
+
selectedEntityId: string;
|
|
31
|
+
/** SQL type of the selected target column — used for source-column auto-matching. */
|
|
32
|
+
referencedColumnType?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare class StepRelationshipsComponent {
|
|
35
|
+
private readonly cdr;
|
|
36
|
+
InitialForeignKeys: ForeignKeySpec[];
|
|
37
|
+
AvailableColumns: ColumnSpec[];
|
|
38
|
+
readonly ForeignKeysChanged: EventEmitter<ForeignKeySpec[]>;
|
|
39
|
+
/** All Step 2 columns are valid FK source candidates (not just UUID). */
|
|
40
|
+
get AllColumns(): ColumnSpec[];
|
|
41
|
+
/**
|
|
42
|
+
* Sorted schema names present in Metadata.Entities, excluding blocked schemas.
|
|
43
|
+
* `MJ: Schema Info` only surfaces MJ-registered schemas, so __mj is the only
|
|
44
|
+
* schema that needs filtering here.
|
|
45
|
+
*/
|
|
46
|
+
get AvailableSchemas(): string[];
|
|
47
|
+
/** Entities that belong to the given schema, sorted by BaseTable. */
|
|
48
|
+
EntitiesForSchema(schemaName: string): EntityInfo[];
|
|
49
|
+
/**
|
|
50
|
+
* Physical columns for the entity identified by `entityId`, including SQL type info.
|
|
51
|
+
* Returns `EntityColumnInfo[]` so the template can display `Name (SqlType)` and
|
|
52
|
+
* the component can auto-match source columns by type.
|
|
53
|
+
*/
|
|
54
|
+
ColumnsForEntity(entityId: string): EntityColumnInfo[];
|
|
55
|
+
TablePlaceholder(row: FkRowState): string;
|
|
56
|
+
ColumnPlaceholder(row: FkRowState): string;
|
|
57
|
+
rows: FkRowState[];
|
|
58
|
+
OnSchemaChange(rowIndex: number, schema: string): void;
|
|
59
|
+
OnTableChange(rowIndex: number, entityId: string): void;
|
|
60
|
+
/** "CustomerOrders" → "CustomerOrderID"; "People" → "PersonID". Best-effort singularizer. */
|
|
61
|
+
private defaultFkColumnName;
|
|
62
|
+
/**
|
|
63
|
+
* Handle target-column selection. Reads the column's SQL type, stores it in row
|
|
64
|
+
* state, then auto-selects the first source column whose (normalised) type matches.
|
|
65
|
+
*/
|
|
66
|
+
OnColumnChange(rowIndex: number, column: string, entityId: string): void;
|
|
67
|
+
OnSourceColumnChange(rowIndex: number, column: string): void;
|
|
68
|
+
OnFkTypeChange(rowIndex: number, isSoft: boolean): void;
|
|
69
|
+
AddRelationship(): void;
|
|
70
|
+
DeleteRow(index: number): void;
|
|
71
|
+
InitFromForeignKeys(fks: ForeignKeySpec[]): void;
|
|
72
|
+
private buildRowState;
|
|
73
|
+
TrackByIndex(_: number, row: FkRowState): number;
|
|
74
|
+
/**
|
|
75
|
+
* Find the first Step 2 source column whose SQL type matches `targetSqlType`.
|
|
76
|
+
* Type comparison is case-insensitive and ignores length/precision qualifiers
|
|
77
|
+
* (e.g. `NVARCHAR(255)` normalises to `NVARCHAR`).
|
|
78
|
+
*
|
|
79
|
+
* Returns `undefined` when no match is found so the caller can decide whether
|
|
80
|
+
* to leave the existing selection untouched.
|
|
81
|
+
*/
|
|
82
|
+
private findMatchingSourceColumn;
|
|
83
|
+
private emit;
|
|
84
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StepRelationshipsComponent, never>;
|
|
85
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StepRelationshipsComponent, "mj-entity-step-relationships", never, { "InitialForeignKeys": { "alias": "InitialForeignKeys"; "required": false; }; "AvailableColumns": { "alias": "AvailableColumns"; "required": false; }; }, { "ForeignKeysChanged": "ForeignKeysChanged"; }, never, never, false, never>;
|
|
86
|
+
}
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=step-relationships.component.d.ts.map
|
package/dist/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-relationships.component.d.ts","sourceRoot":"","sources":["../../../../../src/DatabaseDesigner/components/create-wizard/steps/step-relationships.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACuB,YAAY,EAEzC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAY,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;;AAStF,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,oFAAoF;AACpF,UAAU,UAAW,SAAQ,cAAc;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAOa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IAEjC,kBAAkB,EAAE,cAAc,EAAE,CAAM;IAC1C,gBAAgB,EAAE,UAAU,EAAE,CAAM;IACpD,SAA0B,kBAAkB,iCAAwC;IAEpF,yEAAyE;IACzE,IAAW,UAAU,IAAI,UAAU,EAAE,CAEpC;IAID;;;;OAIG;IACH,IAAW,gBAAgB,IAAI,MAAM,EAAE,CAItC;IAED,qEAAqE;IAC9D,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE;IAO1D;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAWtD,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAMzC,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAO1C,IAAI,EAAE,UAAU,EAAE,CAAM;IAIxB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAStD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA8B9D,6FAA6F;IAC7F,OAAO,CAAC,mBAAmB;IAS3B;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqBxE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO5D,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IASvD,eAAe,IAAI,IAAI;IA6BvB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9B,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI;IAKvD,OAAO,CAAC,aAAa;IAOd,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAIvD;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,IAAI;yCAvOH,0BAA0B;2CAA1B,0BAA0B;CAkPtC"}
|