@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAAU,MAAM,eAAe,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAoD,MAAM,+BAA+B,CAAC;;AAO/G,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,qBAOa,kBAAmB,SAAQ,qBAAsB,YAAW,MAAM,EAAE,SAAS;IAMxF,SAAS,EAAE,WAAW,EAAE,CAAM;IAC9B,SAAS,UAAQ;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC,6CAA6C;IAC7C,cAAc,oCAA2C;IAEzD,yCAAyC;IACzC,eAAe,EAAE,WAAW,EAAE,CAAM;IACpC,aAAa,EAAE,MAAM,EAAE,CAAM;IAE7B,8BAA8B;IAC9B,eAAe,EAAE,cAAc,EAAE,CAQ/B;IAEF,8BAA8B;IAC9B,WAAW,EAAE,UAAU,EAAE,CAKvB;IAMF,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,YAAY,CAA+C;IAEnE,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA0C;IAMjF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"schedules.component.d.ts","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { ChangeDetectorRef, Component, inject } from '@angular/core';
|
|
8
8
|
import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
9
|
-
import {
|
|
9
|
+
import { RunView } from '@memberjunction/core';
|
|
10
10
|
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
11
11
|
import { IntegrationDataService, ResolveIntegrationIcon } from '../../services/integration-data.service';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
@@ -447,6 +447,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
|
|
|
447
447
|
// ---------------------------------------------------------------------------
|
|
448
448
|
async ngOnInit() {
|
|
449
449
|
super.ngOnInit();
|
|
450
|
+
this.dataService.Provider = this.ProviderToUse;
|
|
450
451
|
this.buildTimelineHours();
|
|
451
452
|
await this.LoadData();
|
|
452
453
|
this.NotifyLoadComplete();
|
|
@@ -566,7 +567,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
|
|
|
566
567
|
this.SavingID = integrationID;
|
|
567
568
|
this.cdr.detectChanges();
|
|
568
569
|
try {
|
|
569
|
-
const md =
|
|
570
|
+
const md = this.ProviderToUse;
|
|
570
571
|
const entity = await md.GetEntityObject('MJ: Company Integrations');
|
|
571
572
|
await entity.Load(integrationID);
|
|
572
573
|
// Resolve effective values (pending change wins over stored value)
|
|
@@ -646,7 +647,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
|
|
|
646
647
|
* Returns the ID of the job (new or existing).
|
|
647
648
|
*/
|
|
648
649
|
async UpsertScheduledJob(existingJobID, entity, cronExpression, integrationID) {
|
|
649
|
-
const md =
|
|
650
|
+
const md = this.ProviderToUse;
|
|
650
651
|
if (existingJobID) {
|
|
651
652
|
const job = await md.GetEntityObject('MJ: Scheduled Jobs');
|
|
652
653
|
const loaded = await job.Load(existingJobID);
|
|
@@ -677,7 +678,7 @@ let SchedulesComponent = class SchedulesComponent extends BaseResourceComponent
|
|
|
677
678
|
}
|
|
678
679
|
/** Sets an existing ScheduledJob to Disabled so it stops firing. */
|
|
679
680
|
async DisableScheduledJob(jobID) {
|
|
680
|
-
const md =
|
|
681
|
+
const md = this.ProviderToUse;
|
|
681
682
|
const job = await md.GetEntityObject('MJ: Scheduled Jobs');
|
|
682
683
|
const loaded = await job.Load(jobID);
|
|
683
684
|
if (loaded) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts","../../../../src/Integration/components/schedules/schedules.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData, MJCompanyIntegrationEntity, MJScheduledJobEntity } from '@memberjunction/core-entities';\nimport { IntegrationDataService, ResolveIntegrationIcon } from '../../services/integration-data.service';\n\n// ---------------------------------------------------------------------------\n// Data interfaces\n// ---------------------------------------------------------------------------\n\ninterface ScheduleRow {\n ID: string;\n Name: string;\n Integration: string;\n Company: string;\n IsActive: boolean | null;\n ScheduleEnabled: boolean;\n ScheduleType: 'Manual' | 'Interval' | 'Cron';\n ScheduleIntervalMinutes: number | null;\n CronExpression: string | null;\n NextScheduledRunAt: string | null;\n LastScheduledRunAt: string | null;\n IsLocked: boolean;\n LockedAt: string | null;\n ScheduledJobID: string | null;\n}\n\ninterface TimelineMarker {\n Hour: number;\n Minute: number;\n IsNext: boolean;\n}\n\ninterface TimelineRow {\n IntegrationID: string;\n IntegrationName: string;\n Markers: TimelineMarker[];\n IsLocked: boolean;\n}\n\ninterface IntervalPreset {\n Label: string;\n Minutes: number;\n}\n\ninterface CronPreset {\n Label: string;\n Expression: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n@RegisterClass(BaseResourceComponent, 'IntegrationSchedules')\n@Component({\n standalone: false,\n selector: 'app-integration-schedules',\n templateUrl: './schedules.component.html',\n styleUrls: ['./schedules.component.css']\n})\nexport class SchedulesComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n // ---------------------------------------------------------------------------\n // Public state\n // ---------------------------------------------------------------------------\n\n Schedules: ScheduleRow[] = [];\n IsLoading = true;\n SavingID: string | null = null;\n RunningID: string | null = null;\n\n /** Track pending edits per integration ID */\n PendingChanges = new Map<string, Partial<ScheduleRow>>();\n\n /** Timeline data built from schedules */\n TimelineMarkers: TimelineRow[] = [];\n TimelineHours: number[] = [];\n\n /** Preset interval choices */\n IntervalPresets: IntervalPreset[] = [\n { Label: '5m', Minutes: 5 },\n { Label: '15m', Minutes: 15 },\n { Label: '30m', Minutes: 30 },\n { Label: '1h', Minutes: 60 },\n { Label: '6h', Minutes: 360 },\n { Label: '12h', Minutes: 720 },\n { Label: '24h', Minutes: 1440 }\n ];\n\n /** Preset cron expressions */\n CronPresets: CronPreset[] = [\n { Label: 'Every hour', Expression: '0 * * * *' },\n { Label: 'Every 6 hours', Expression: '0 */6 * * *' },\n { Label: 'Daily midnight', Expression: '0 0 * * *' },\n { Label: 'Weekdays 9am', Expression: '0 9 * * 1-5' }\n ];\n\n // ---------------------------------------------------------------------------\n // Private\n // ---------------------------------------------------------------------------\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n private refreshTimer: ReturnType<typeof setInterval> | null = null;\n\n /** JobTypeID for \"Integration Sync\" scheduled job type (from MJ metadata) */\n private readonly INTEGRATION_SYNC_JOB_TYPE_ID = '4CD34733-4751-4572-B946-17DF6CB3EC90';\n\n // ---------------------------------------------------------------------------\n // Lifecycle\n // ---------------------------------------------------------------------------\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.buildTimelineHours();\n await this.LoadData();\n this.NotifyLoadComplete();\n // Refresh relative times every 60 seconds\n this.refreshTimer = setInterval(() => this.cdr.detectChanges(), 60_000);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n }\n }\n\n // ---------------------------------------------------------------------------\n // Resource overrides\n // ---------------------------------------------------------------------------\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Schedules';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-calendar-check';\n }\n\n // ---------------------------------------------------------------------------\n // Data loading\n // ---------------------------------------------------------------------------\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<ScheduleRow>({\n EntityName: 'MJ: Company Integrations',\n ExtraFilter: '',\n OrderBy: 'Name',\n Fields: [\n 'ID', 'Name', 'Integration', 'Company', 'IsActive',\n 'ScheduleEnabled', 'ScheduleType', 'ScheduleIntervalMinutes',\n 'CronExpression', 'NextScheduledRunAt', 'LastScheduledRunAt',\n 'IsLocked', 'LockedAt', 'ScheduledJobID'\n ],\n ResultType: 'simple'\n });\n this.Schedules = result.Results;\n this.BuildTimeline();\n } catch (err) {\n console.error('[SchedulesComponent] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Timeline\n // ---------------------------------------------------------------------------\n\n BuildTimeline(): void {\n const now = new Date();\n const rows: TimelineRow[] = [];\n\n for (const schedule of this.Schedules) {\n if (!schedule.ScheduleEnabled) continue;\n\n const markers = this.computeMarkersForSchedule(schedule, now);\n if (markers.length > 0 || schedule.IsLocked) {\n rows.push({\n IntegrationID: schedule.ID,\n IntegrationName: schedule.Integration ?? schedule.Name,\n Markers: markers,\n IsLocked: schedule.IsLocked\n });\n }\n }\n this.TimelineMarkers = rows;\n }\n\n // ---------------------------------------------------------------------------\n // Schedule editing\n // ---------------------------------------------------------------------------\n\n ToggleScheduleEnabled(integrationID: string): void {\n const schedule = this.findSchedule(integrationID);\n if (!schedule) return;\n\n const current = this.getEffectiveValue(integrationID, 'ScheduleEnabled', schedule.ScheduleEnabled);\n this.setPendingChange(integrationID, 'ScheduleEnabled', !current);\n }\n\n SetScheduleType(integrationID: string, type: 'Manual' | 'Interval' | 'Cron'): void {\n this.setPendingChange(integrationID, 'ScheduleType', type);\n }\n\n SetInterval(integrationID: string, minutes: number): void {\n this.setPendingChange(integrationID, 'ScheduleIntervalMinutes', minutes);\n this.setPendingChange(integrationID, 'ScheduleType', 'Interval');\n }\n\n SetCronExpression(integrationID: string, expression: string): void {\n this.setPendingChange(integrationID, 'CronExpression', expression);\n }\n\n OnCronInputChange(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n this.SetCronExpression(integrationID, input.value);\n }\n\n SetCustomInterval(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = parseInt(input.value, 10);\n if (!isNaN(value) && value > 0) {\n this.SetInterval(integrationID, value);\n }\n }\n\n HasChanges(integrationID: string): boolean {\n return this.PendingChanges.has(integrationID);\n }\n\n // ---------------------------------------------------------------------------\n // Save & Run\n // ---------------------------------------------------------------------------\n\n async SaveSchedule(integrationID: string): Promise<void> {\n const changes = this.PendingChanges.get(integrationID);\n if (!changes) return;\n\n this.SavingID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const md = new Metadata();\n const entity = await md.GetEntityObject<MJCompanyIntegrationEntity>('MJ: Company Integrations');\n await entity.Load(integrationID);\n\n // Resolve effective values (pending change wins over stored value)\n const scheduleEnabled = changes.ScheduleEnabled ?? (entity.Get('ScheduleEnabled') as boolean);\n const scheduleType = (changes.ScheduleType ?? entity.Get('ScheduleType') as string) as 'Manual' | 'Interval' | 'Cron';\n const cronExpression = changes.CronExpression ?? (entity.Get('CronExpression') as string | null);\n const intervalMinutes = changes.ScheduleIntervalMinutes ?? (entity.Get('ScheduleIntervalMinutes') as number | null);\n\n // Apply schedule fields to the entity\n if (changes.ScheduleEnabled !== undefined) entity.Set('ScheduleEnabled', changes.ScheduleEnabled);\n if (changes.ScheduleType !== undefined) entity.Set('ScheduleType', changes.ScheduleType);\n if (changes.ScheduleIntervalMinutes !== undefined) entity.Set('ScheduleIntervalMinutes', changes.ScheduleIntervalMinutes);\n if (changes.CronExpression !== undefined) entity.Set('CronExpression', changes.CronExpression);\n\n // Create/update/disable the linked ScheduledJob so the scheduler actually fires\n await this.SyncScheduledJob(entity, scheduleEnabled, scheduleType, cronExpression, intervalMinutes, integrationID);\n\n const saved = await entity.Save();\n if (saved) {\n this.PendingChanges.delete(integrationID);\n await this.LoadData();\n } else {\n console.error('[SchedulesComponent] Failed to save schedule:', entity.LatestResult?.CompleteMessage);\n }\n } catch (err) {\n console.error('[SchedulesComponent] Error saving schedule:', err);\n } finally {\n this.SavingID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Scheduled job sync helpers\n // ---------------------------------------------------------------------------\n\n /**\n * Creates, updates, or disables the ScheduledJob record linked to this integration.\n * When enabled with a real schedule type, ensures an Active ScheduledJob exists.\n * When disabled or set to Manual, marks the ScheduledJob as Disabled (if one exists).\n */\n private async SyncScheduledJob(\n entity: MJCompanyIntegrationEntity,\n enabled: boolean,\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null,\n integrationID: string\n ): Promise<void> {\n const effectiveCron = this.ResolveCronExpression(scheduleType, cronExpression, intervalMinutes);\n const existingJobID = entity.Get('ScheduledJobID') as string | null;\n const shouldBeActive = enabled && scheduleType !== 'Manual' && !!effectiveCron;\n\n if (shouldBeActive) {\n const jobID = await this.UpsertScheduledJob(existingJobID, entity, effectiveCron!, integrationID);\n if (jobID !== existingJobID) {\n entity.Set('ScheduledJobID', jobID);\n }\n } else if (existingJobID) {\n await this.DisableScheduledJob(existingJobID);\n }\n }\n\n /** Converts schedule type + config into a cron expression. */\n private ResolveCronExpression(\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null\n ): string | null {\n if (scheduleType === 'Cron') return cronExpression;\n if (scheduleType === 'Interval' && intervalMinutes) return this.IntervalToCron(intervalMinutes);\n return null;\n }\n\n /** Converts an interval in minutes to an equivalent cron expression. */\n private IntervalToCron(minutes: number): string {\n if (minutes < 60) return `*/${minutes} * * * *`;\n const hours = minutes / 60;\n if (Number.isInteger(hours)) return hours === 1 ? '0 * * * *' : `0 */${hours} * * *`;\n return `*/${minutes} * * * *`;\n }\n\n /**\n * Creates a new ScheduledJob or updates the existing one.\n * Returns the ID of the job (new or existing).\n */\n private async UpsertScheduledJob(\n existingJobID: string | null,\n entity: MJCompanyIntegrationEntity,\n cronExpression: string,\n integrationID: string\n ): Promise<string> {\n const md = new Metadata();\n\n if (existingJobID) {\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(existingJobID);\n if (loaded) {\n job.Set('CronExpression', cronExpression);\n job.Set('Status', 'Active');\n // Reset NextRunAt so the scheduler picks up the new cron immediately\n job.Set('NextRunAt', new Date());\n await job.Save();\n return existingJobID;\n }\n }\n\n // No existing job (or failed to load) — create a new one\n const integrationName = (entity.Get('Name') as string) ?? (entity.Get('Integration') as string) ?? 'Integration';\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n job.NewRecord();\n job.Set('Name', `${integrationName} Sync`);\n job.Set('JobTypeID', this.INTEGRATION_SYNC_JOB_TYPE_ID);\n job.Set('CronExpression', cronExpression);\n job.Set('Timezone', 'UTC');\n job.Set('Status', 'Active');\n job.Set('ConcurrencyMode', 'Skip');\n job.Set('Configuration', JSON.stringify({ CompanyIntegrationID: integrationID }));\n // Set NextRunAt to now so the scheduler fires it on next poll without needing a restart\n job.Set('NextRunAt', new Date());\n await job.Save();\n return job.Get('ID') as string;\n }\n\n /** Sets an existing ScheduledJob to Disabled so it stops firing. */\n private async DisableScheduledJob(jobID: string): Promise<void> {\n const md = new Metadata();\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(jobID);\n if (loaded) {\n job.Set('Status', 'Disabled');\n await job.Save();\n }\n }\n\n async RunNow(integrationID: string): Promise<void> {\n if (this.RunningID) return;\n this.RunningID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const result = await this.dataService.RunSync(integrationID);\n if (!result.Success) {\n console.error('[SchedulesComponent] RunSync failed:', result.Message);\n }\n await this.LoadData();\n } catch (err) {\n console.error('[SchedulesComponent] RunNow error:', err);\n } finally {\n this.RunningID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Template helpers\n // ---------------------------------------------------------------------------\n\n GetEffectiveScheduleEnabled(schedule: ScheduleRow): boolean {\n return this.getEffectiveValue(schedule.ID, 'ScheduleEnabled', schedule.ScheduleEnabled) as boolean;\n }\n\n GetEffectiveScheduleType(schedule: ScheduleRow): 'Manual' | 'Interval' | 'Cron' {\n return this.getEffectiveValue(schedule.ID, 'ScheduleType', schedule.ScheduleType) as 'Manual' | 'Interval' | 'Cron';\n }\n\n GetEffectiveInterval(schedule: ScheduleRow): number | null {\n return this.getEffectiveValue(schedule.ID, 'ScheduleIntervalMinutes', schedule.ScheduleIntervalMinutes) as number | null;\n }\n\n GetEffectiveCron(schedule: ScheduleRow): string | null {\n return this.getEffectiveValue(schedule.ID, 'CronExpression', schedule.CronExpression) as string | null;\n }\n\n IsIntervalSelected(schedule: ScheduleRow, minutes: number): boolean {\n return this.GetEffectiveInterval(schedule) === minutes;\n }\n\n GetNextRunRelative(schedule: ScheduleRow): string {\n if (!schedule.NextScheduledRunAt) return 'Not scheduled';\n const next = new Date(schedule.NextScheduledRunAt);\n const diffMs = next.getTime() - Date.now();\n if (diffMs < 0) return 'Overdue';\n return 'in ' + this.formatDurationMs(diffMs);\n }\n\n GetLastRunRelative(schedule: ScheduleRow): string {\n if (!schedule.LastScheduledRunAt) return 'Never';\n return this.dataService.ComputeRelativeTime(schedule.LastScheduledRunAt);\n }\n\n GetCronDescription(expression: string | null): string {\n if (!expression) return '';\n const parts = expression.split(' ');\n if (parts.length !== 5) return expression;\n const [min, hour, , , dow] = parts;\n if (min === '0' && hour === '*') return 'Every hour';\n if (min === '0' && hour.startsWith('*/')) return `Every ${hour.slice(2)} hours`;\n if (min === '0' && hour !== '*' && dow === '*') return `Daily at ${hour}:00`;\n if (min === '0' && hour !== '*' && dow === '1-5') return `Weekdays at ${hour}:00`;\n if (dow === '1-5') return `Weekdays at ${hour}:${min.padStart(2, '0')}`;\n return expression;\n }\n\n GetIntegrationIcon(name: string): string {\n return ResolveIntegrationIcon(name);\n }\n\n ComputeTimelinePosition(hour: number, minute: number): number {\n return ((hour * 60 + minute) / (24 * 60)) * 100;\n }\n\n IsSaving(integrationID: string): boolean {\n return UUIDsEqual(this.SavingID, integrationID);\n }\n\n IsRunning(integrationID: string): boolean {\n return UUIDsEqual(this.RunningID, integrationID);\n }\n\n get ScheduledCount(): number {\n return this.Schedules.filter(s => s.ScheduleEnabled).length;\n }\n\n get LockedCount(): number {\n return this.Schedules.filter(s => s.IsLocked).length;\n }\n\n TrackByID(_index: number, item: ScheduleRow): string {\n return item.ID;\n }\n\n TrackTimelineByID(_index: number, item: TimelineRow): string {\n return item.IntegrationID;\n }\n\n TrackPresetByMinutes(_index: number, item: IntervalPreset): number {\n return item.Minutes;\n }\n\n TrackCronPresetByExpr(_index: number, item: CronPreset): string {\n return item.Expression;\n }\n\n TrackHour(_index: number, hour: number): number {\n return hour;\n }\n\n TrackMarker(index: number, _item: TimelineMarker): number {\n return index;\n }\n\n // ---------------------------------------------------------------------------\n // Private helpers\n // ---------------------------------------------------------------------------\n\n private findSchedule(integrationID: string): ScheduleRow | undefined {\n return this.Schedules.find(s => UUIDsEqual(s.ID, integrationID));\n }\n\n private getEffectiveValue<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n originalValue: ScheduleRow[K]\n ): ScheduleRow[K] {\n const changes = this.PendingChanges.get(integrationID);\n if (changes && field in changes) {\n return changes[field] as ScheduleRow[K];\n }\n return originalValue;\n }\n\n private setPendingChange<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n value: ScheduleRow[K]\n ): void {\n const existing = this.PendingChanges.get(integrationID) ?? {};\n existing[field] = value;\n this.PendingChanges.set(integrationID, existing);\n this.cdr.detectChanges();\n }\n\n private buildTimelineHours(): void {\n this.TimelineHours = Array.from({ length: 24 }, (_, i) => i);\n }\n\n private computeMarkersForSchedule(schedule: ScheduleRow, now: Date): TimelineMarker[] {\n const markers: TimelineMarker[] = [];\n const type = schedule.ScheduleType;\n\n if (type === 'Interval' && schedule.ScheduleIntervalMinutes && schedule.ScheduleIntervalMinutes > 0) {\n this.computeIntervalMarkers(schedule, now, markers);\n } else if (type === 'Cron' && schedule.CronExpression) {\n this.computeCronMarkers(schedule, now, markers);\n } else if (schedule.NextScheduledRunAt) {\n this.addNextRunMarker(schedule, now, markers);\n }\n\n return markers;\n }\n\n private computeIntervalMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const intervalMs = schedule.ScheduleIntervalMinutes! * 60_000;\n const endTime = now.getTime() + 24 * 60 * 60_000;\n\n // Start from the next scheduled run or from now\n let cursor = schedule.NextScheduledRunAt\n ? new Date(schedule.NextScheduledRunAt).getTime()\n : now.getTime();\n\n // If cursor is in the past, advance to the next future occurrence\n while (cursor < now.getTime()) {\n cursor += intervalMs;\n }\n\n const nextRun = cursor;\n\n while (cursor < endTime) {\n const d = new Date(cursor);\n markers.push({\n Hour: d.getHours(),\n Minute: d.getMinutes(),\n IsNext: cursor === nextRun\n });\n cursor += intervalMs;\n }\n }\n\n private computeCronMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n // Simple cron approximation for timeline display\n const times = this.approximateCronTimes(schedule.CronExpression!);\n const nextRunTime = schedule.NextScheduledRunAt ? new Date(schedule.NextScheduledRunAt) : null;\n\n for (const time of times) {\n const isNext = nextRunTime != null\n && time.Hour === nextRunTime.getHours()\n && time.Minute === nextRunTime.getMinutes();\n markers.push({ Hour: time.Hour, Minute: time.Minute, IsNext: isNext });\n }\n }\n\n private addNextRunMarker(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const next = new Date(schedule.NextScheduledRunAt!);\n const diffMs = next.getTime() - now.getTime();\n if (diffMs >= 0 && diffMs <= 24 * 60 * 60_000) {\n markers.push({ Hour: next.getHours(), Minute: next.getMinutes(), IsNext: true });\n }\n }\n\n /**\n * Approximate cron schedule times within a 24-hour window.\n * Handles common patterns only -- not a full cron parser.\n */\n private approximateCronTimes(expression: string): Array<{ Hour: number; Minute: number }> {\n const parts = expression.split(' ');\n if (parts.length !== 5) return [];\n const [minPart, hourPart] = parts;\n const minute = minPart === '*' ? 0 : parseInt(minPart, 10);\n const times: Array<{ Hour: number; Minute: number }> = [];\n\n if (hourPart === '*') {\n // Every hour\n for (let h = 0; h < 24; h++) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n } else if (hourPart.startsWith('*/')) {\n const step = parseInt(hourPart.slice(2), 10);\n if (!isNaN(step) && step > 0) {\n for (let h = 0; h < 24; h += step) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n } else {\n // Specific hour(s) — comma-separated\n const hours = hourPart.split(',').map(h => parseInt(h.trim(), 10)).filter(h => !isNaN(h));\n for (const h of hours) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n\n return times;\n }\n\n private formatDurationMs(ms: number): string {\n const totalMinutes = Math.floor(ms / 60_000);\n if (totalMinutes < 1) return 'less than a minute';\n if (totalMinutes < 60) return `${totalMinutes} minute${totalMinutes === 1 ? '' : 's'}`;\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n if (minutes === 0) return `${hours} hour${hours === 1 ? '' : 's'}`;\n return `${hours}h ${minutes}m`;\n }\n}\n\nexport function LoadSchedulesComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<!-- Loading state -->\n@if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading schedules...\"></mj-loading>\n </div>\n} @else {\n <div class=\"schedules-root\">\n\n <!-- ================================================================= -->\n <!-- HEADER -->\n <!-- ================================================================= -->\n <div class=\"section-header\">\n <div class=\"header-left\">\n <h2 class=\"section-title\">\n <i class=\"fa-solid fa-calendar-check\"></i>\n Sync Schedules\n </h2>\n <span class=\"header-meta\">{{ Schedules.length }} integration{{ Schedules.length === 1 ? '' : 's' }}</span>\n <span class=\"header-meta\">{{ ScheduledCount }} scheduled</span>\n @if (LockedCount > 0) {\n <span class=\"header-meta running-badge\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n {{ LockedCount }} running\n </span>\n }\n </div>\n <button class=\"btn btn-outline\" (click)=\"LoadData()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n Refresh\n </button>\n </div>\n\n <!-- ================================================================= -->\n <!-- TIMELINE (24-hour visual) -->\n <!-- ================================================================= -->\n @if (TimelineMarkers.length > 0) {\n <div class=\"timeline-section\">\n <div class=\"timeline-title\">\n <i class=\"fa-regular fa-clock\"></i>\n Next 24 Hours\n </div>\n <div class=\"timeline-container\">\n <!-- Hour grid labels -->\n <div class=\"timeline-grid-labels\">\n <div class=\"timeline-label-spacer\"></div>\n <div class=\"timeline-grid-track\">\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <span class=\"timeline-hour-label\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n {{ hour }}:00\n </span>\n }\n }\n </div>\n </div>\n\n <!-- Integration rows -->\n @for (row of TimelineMarkers; track TrackTimelineByID($index, row)) {\n <div class=\"timeline-row\">\n <div class=\"timeline-row-label\" [title]=\"row.IntegrationName\">\n {{ row.IntegrationName }}\n </div>\n <div class=\"timeline-track-container\">\n <!-- Hour grid lines -->\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <div class=\"timeline-grid-line\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n </div>\n }\n }\n\n <!-- Track bar -->\n <div class=\"timeline-track\"></div>\n\n <!-- Markers -->\n @for (marker of row.Markers; track TrackMarker($index, marker)) {\n <div class=\"timeline-marker\"\n [class.timeline-marker-next]=\"marker.IsNext\"\n [style.left.%]=\"ComputeTimelinePosition(marker.Hour, marker.Minute)\"\n [title]=\"marker.Hour + ':' + ('' + marker.Minute).padStart(2, '0')\">\n </div>\n }\n\n <!-- Locked indicator -->\n @if (row.IsLocked) {\n <div class=\"timeline-locked-indicator\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n }\n\n <!-- Current time line -->\n <div class=\"timeline-now-line\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- ================================================================= -->\n <!-- SCHEDULE CARDS -->\n <!-- ================================================================= -->\n <div class=\"cards-section\">\n @for (schedule of Schedules; track TrackByID($index, schedule)) {\n <div class=\"schedule-card\" [class.schedule-card-disabled]=\"!schedule.IsActive\">\n\n <!-- LEFT: Icon + Info -->\n <div class=\"card-info\">\n <div class=\"card-icon\">\n <i [class]=\"GetIntegrationIcon(schedule.Integration || schedule.Name)\"></i>\n </div>\n <div class=\"card-details\">\n <div class=\"card-name\">{{ schedule.Integration || schedule.Name }}</div>\n <div class=\"card-company\">{{ schedule.Company }}</div>\n <div class=\"card-badges\">\n @if (schedule.IsActive) {\n <span class=\"badge badge-success\">Active</span>\n } @else {\n <span class=\"badge badge-gray\">Inactive</span>\n }\n @if (schedule.IsLocked) {\n <span class=\"badge badge-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n }\n </div>\n </div>\n </div>\n\n <!-- CENTER: Schedule Configuration -->\n <div class=\"card-config\">\n <!-- Schedule toggle -->\n <div class=\"config-row\">\n <label class=\"toggle-label\">\n Auto-sync\n <button class=\"toggle-switch\"\n [class.toggle-on]=\"GetEffectiveScheduleEnabled(schedule)\"\n (click)=\"ToggleScheduleEnabled(schedule.ID)\"\n [attr.aria-checked]=\"GetEffectiveScheduleEnabled(schedule)\"\n role=\"switch\">\n <span class=\"toggle-knob\"></span>\n </button>\n </label>\n </div>\n\n @if (GetEffectiveScheduleEnabled(schedule)) {\n <!-- Schedule type pills -->\n <div class=\"config-row\">\n <div class=\"type-pills\">\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Manual'\"\n (click)=\"SetScheduleType(schedule.ID, 'Manual')\">\n Manual\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Interval'\"\n (click)=\"SetScheduleType(schedule.ID, 'Interval')\">\n Interval\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Cron'\"\n (click)=\"SetScheduleType(schedule.ID, 'Cron')\">\n Cron\n </button>\n </div>\n </div>\n\n <!-- Interval config -->\n @if (GetEffectiveScheduleType(schedule) === 'Interval') {\n <div class=\"config-row\">\n <div class=\"interval-presets\">\n @for (preset of IntervalPresets; track TrackPresetByMinutes($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"IsIntervalSelected(schedule, preset.Minutes)\"\n (click)=\"SetInterval(schedule.ID, preset.Minutes)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"custom-interval\">\n <input type=\"number\"\n class=\"interval-input\"\n placeholder=\"Custom min\"\n min=\"1\"\n [value]=\"GetEffectiveInterval(schedule)\"\n (change)=\"SetCustomInterval(schedule.ID, $event)\" />\n <span class=\"interval-unit\">min</span>\n </div>\n </div>\n }\n\n <!-- Cron config -->\n @if (GetEffectiveScheduleType(schedule) === 'Cron') {\n <div class=\"config-row\">\n <div class=\"cron-presets\">\n @for (preset of CronPresets; track TrackCronPresetByExpr($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"GetEffectiveCron(schedule) === preset.Expression\"\n (click)=\"SetCronExpression(schedule.ID, preset.Expression)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"cron-input-row\">\n <input type=\"text\"\n class=\"cron-input\"\n placeholder=\"* * * * *\"\n [value]=\"GetEffectiveCron(schedule) ?? ''\"\n (change)=\"OnCronInputChange(schedule.ID, $event)\" />\n @if (GetEffectiveCron(schedule)) {\n <span class=\"cron-description\">\n {{ GetCronDescription(GetEffectiveCron(schedule)) }}\n </span>\n }\n </div>\n </div>\n }\n }\n </div>\n\n <!-- RIGHT: Status + Actions -->\n <div class=\"card-status\">\n <div class=\"status-items\">\n <div class=\"status-item\">\n <span class=\"status-label\">Next run</span>\n <span class=\"status-value\">{{ GetNextRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Last run</span>\n <span class=\"status-value\">{{ GetLastRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Status</span>\n @if (schedule.IsLocked) {\n <span class=\"status-value status-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n } @else {\n <span class=\"status-value status-idle\">Idle</span>\n }\n </div>\n </div>\n\n <div class=\"card-actions\">\n @if (HasChanges(schedule.ID)) {\n <button class=\"btn btn-primary btn-save\"\n [disabled]=\"IsSaving(schedule.ID)\"\n (click)=\"SaveSchedule(schedule.ID)\">\n @if (IsSaving(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-check\"></i>\n Save\n }\n </button>\n }\n <button class=\"btn btn-outline btn-run\"\n [disabled]=\"IsRunning(schedule.ID) || schedule.IsLocked\"\n (click)=\"RunNow(schedule.ID)\">\n @if (IsRunning(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i>\n Run Now\n }\n </button>\n </div>\n </div>\n </div>\n }\n\n @if (Schedules.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-calendar-xmark\"></i>\n <p>No integrations found</p>\n </div>\n }\n </div>\n </div>\n}\n"]}
|
|
1
|
+
{"version":3,"file":"schedules.component.js","sourceRoot":"","sources":["../../../../src/Integration/components/schedules/schedules.component.ts","../../../../src/Integration/components/schedules/schedules.component.html"],"names":[],"mappings":"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","sourcesContent":["import { ChangeDetectorRef, Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { RegisterClass, UUIDsEqual } from '@memberjunction/global';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { ResourceData, MJCompanyIntegrationEntity, MJScheduledJobEntity } from '@memberjunction/core-entities';\nimport { IntegrationDataService, ResolveIntegrationIcon } from '../../services/integration-data.service';\n\n// ---------------------------------------------------------------------------\n// Data interfaces\n// ---------------------------------------------------------------------------\n\ninterface ScheduleRow {\n ID: string;\n Name: string;\n Integration: string;\n Company: string;\n IsActive: boolean | null;\n ScheduleEnabled: boolean;\n ScheduleType: 'Manual' | 'Interval' | 'Cron';\n ScheduleIntervalMinutes: number | null;\n CronExpression: string | null;\n NextScheduledRunAt: string | null;\n LastScheduledRunAt: string | null;\n IsLocked: boolean;\n LockedAt: string | null;\n ScheduledJobID: string | null;\n}\n\ninterface TimelineMarker {\n Hour: number;\n Minute: number;\n IsNext: boolean;\n}\n\ninterface TimelineRow {\n IntegrationID: string;\n IntegrationName: string;\n Markers: TimelineMarker[];\n IsLocked: boolean;\n}\n\ninterface IntervalPreset {\n Label: string;\n Minutes: number;\n}\n\ninterface CronPreset {\n Label: string;\n Expression: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\n@RegisterClass(BaseResourceComponent, 'IntegrationSchedules')\n@Component({\n standalone: false,\n selector: 'app-integration-schedules',\n templateUrl: './schedules.component.html',\n styleUrls: ['./schedules.component.css']\n})\nexport class SchedulesComponent extends BaseResourceComponent implements OnInit, OnDestroy {\n\n // ---------------------------------------------------------------------------\n // Public state\n // ---------------------------------------------------------------------------\n\n Schedules: ScheduleRow[] = [];\n IsLoading = true;\n SavingID: string | null = null;\n RunningID: string | null = null;\n\n /** Track pending edits per integration ID */\n PendingChanges = new Map<string, Partial<ScheduleRow>>();\n\n /** Timeline data built from schedules */\n TimelineMarkers: TimelineRow[] = [];\n TimelineHours: number[] = [];\n\n /** Preset interval choices */\n IntervalPresets: IntervalPreset[] = [\n { Label: '5m', Minutes: 5 },\n { Label: '15m', Minutes: 15 },\n { Label: '30m', Minutes: 30 },\n { Label: '1h', Minutes: 60 },\n { Label: '6h', Minutes: 360 },\n { Label: '12h', Minutes: 720 },\n { Label: '24h', Minutes: 1440 }\n ];\n\n /** Preset cron expressions */\n CronPresets: CronPreset[] = [\n { Label: 'Every hour', Expression: '0 * * * *' },\n { Label: 'Every 6 hours', Expression: '0 */6 * * *' },\n { Label: 'Daily midnight', Expression: '0 0 * * *' },\n { Label: 'Weekdays 9am', Expression: '0 9 * * 1-5' }\n ];\n\n // ---------------------------------------------------------------------------\n // Private\n // ---------------------------------------------------------------------------\n\n private dataService = inject(IntegrationDataService);\n private cdr = inject(ChangeDetectorRef);\n private refreshTimer: ReturnType<typeof setInterval> | null = null;\n\n /** JobTypeID for \"Integration Sync\" scheduled job type (from MJ metadata) */\n private readonly INTEGRATION_SYNC_JOB_TYPE_ID = '4CD34733-4751-4572-B946-17DF6CB3EC90';\n\n // ---------------------------------------------------------------------------\n // Lifecycle\n // ---------------------------------------------------------------------------\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n this.dataService.Provider = this.ProviderToUse;\n this.buildTimelineHours();\n await this.LoadData();\n this.NotifyLoadComplete();\n // Refresh relative times every 60 seconds\n this.refreshTimer = setInterval(() => this.cdr.detectChanges(), 60_000);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.refreshTimer) {\n clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n }\n }\n\n // ---------------------------------------------------------------------------\n // Resource overrides\n // ---------------------------------------------------------------------------\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Schedules';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-calendar-check';\n }\n\n // ---------------------------------------------------------------------------\n // Data loading\n // ---------------------------------------------------------------------------\n\n async LoadData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.detectChanges();\n try {\n const provider = this.RunViewToUse;\n const rv = new RunView(provider ?? null);\n const result = await rv.RunView<ScheduleRow>({\n EntityName: 'MJ: Company Integrations',\n ExtraFilter: '',\n OrderBy: 'Name',\n Fields: [\n 'ID', 'Name', 'Integration', 'Company', 'IsActive',\n 'ScheduleEnabled', 'ScheduleType', 'ScheduleIntervalMinutes',\n 'CronExpression', 'NextScheduledRunAt', 'LastScheduledRunAt',\n 'IsLocked', 'LockedAt', 'ScheduledJobID'\n ],\n ResultType: 'simple'\n });\n this.Schedules = result.Results;\n this.BuildTimeline();\n } catch (err) {\n console.error('[SchedulesComponent] Failed to load data:', err);\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Timeline\n // ---------------------------------------------------------------------------\n\n BuildTimeline(): void {\n const now = new Date();\n const rows: TimelineRow[] = [];\n\n for (const schedule of this.Schedules) {\n if (!schedule.ScheduleEnabled) continue;\n\n const markers = this.computeMarkersForSchedule(schedule, now);\n if (markers.length > 0 || schedule.IsLocked) {\n rows.push({\n IntegrationID: schedule.ID,\n IntegrationName: schedule.Integration ?? schedule.Name,\n Markers: markers,\n IsLocked: schedule.IsLocked\n });\n }\n }\n this.TimelineMarkers = rows;\n }\n\n // ---------------------------------------------------------------------------\n // Schedule editing\n // ---------------------------------------------------------------------------\n\n ToggleScheduleEnabled(integrationID: string): void {\n const schedule = this.findSchedule(integrationID);\n if (!schedule) return;\n\n const current = this.getEffectiveValue(integrationID, 'ScheduleEnabled', schedule.ScheduleEnabled);\n this.setPendingChange(integrationID, 'ScheduleEnabled', !current);\n }\n\n SetScheduleType(integrationID: string, type: 'Manual' | 'Interval' | 'Cron'): void {\n this.setPendingChange(integrationID, 'ScheduleType', type);\n }\n\n SetInterval(integrationID: string, minutes: number): void {\n this.setPendingChange(integrationID, 'ScheduleIntervalMinutes', minutes);\n this.setPendingChange(integrationID, 'ScheduleType', 'Interval');\n }\n\n SetCronExpression(integrationID: string, expression: string): void {\n this.setPendingChange(integrationID, 'CronExpression', expression);\n }\n\n OnCronInputChange(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n this.SetCronExpression(integrationID, input.value);\n }\n\n SetCustomInterval(integrationID: string, event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = parseInt(input.value, 10);\n if (!isNaN(value) && value > 0) {\n this.SetInterval(integrationID, value);\n }\n }\n\n HasChanges(integrationID: string): boolean {\n return this.PendingChanges.has(integrationID);\n }\n\n // ---------------------------------------------------------------------------\n // Save & Run\n // ---------------------------------------------------------------------------\n\n async SaveSchedule(integrationID: string): Promise<void> {\n const changes = this.PendingChanges.get(integrationID);\n if (!changes) return;\n\n this.SavingID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const md = this.ProviderToUse;\n const entity = await md.GetEntityObject<MJCompanyIntegrationEntity>('MJ: Company Integrations');\n await entity.Load(integrationID);\n\n // Resolve effective values (pending change wins over stored value)\n const scheduleEnabled = changes.ScheduleEnabled ?? (entity.Get('ScheduleEnabled') as boolean);\n const scheduleType = (changes.ScheduleType ?? entity.Get('ScheduleType') as string) as 'Manual' | 'Interval' | 'Cron';\n const cronExpression = changes.CronExpression ?? (entity.Get('CronExpression') as string | null);\n const intervalMinutes = changes.ScheduleIntervalMinutes ?? (entity.Get('ScheduleIntervalMinutes') as number | null);\n\n // Apply schedule fields to the entity\n if (changes.ScheduleEnabled !== undefined) entity.Set('ScheduleEnabled', changes.ScheduleEnabled);\n if (changes.ScheduleType !== undefined) entity.Set('ScheduleType', changes.ScheduleType);\n if (changes.ScheduleIntervalMinutes !== undefined) entity.Set('ScheduleIntervalMinutes', changes.ScheduleIntervalMinutes);\n if (changes.CronExpression !== undefined) entity.Set('CronExpression', changes.CronExpression);\n\n // Create/update/disable the linked ScheduledJob so the scheduler actually fires\n await this.SyncScheduledJob(entity, scheduleEnabled, scheduleType, cronExpression, intervalMinutes, integrationID);\n\n const saved = await entity.Save();\n if (saved) {\n this.PendingChanges.delete(integrationID);\n await this.LoadData();\n } else {\n console.error('[SchedulesComponent] Failed to save schedule:', entity.LatestResult?.CompleteMessage);\n }\n } catch (err) {\n console.error('[SchedulesComponent] Error saving schedule:', err);\n } finally {\n this.SavingID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Scheduled job sync helpers\n // ---------------------------------------------------------------------------\n\n /**\n * Creates, updates, or disables the ScheduledJob record linked to this integration.\n * When enabled with a real schedule type, ensures an Active ScheduledJob exists.\n * When disabled or set to Manual, marks the ScheduledJob as Disabled (if one exists).\n */\n private async SyncScheduledJob(\n entity: MJCompanyIntegrationEntity,\n enabled: boolean,\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null,\n integrationID: string\n ): Promise<void> {\n const effectiveCron = this.ResolveCronExpression(scheduleType, cronExpression, intervalMinutes);\n const existingJobID = entity.Get('ScheduledJobID') as string | null;\n const shouldBeActive = enabled && scheduleType !== 'Manual' && !!effectiveCron;\n\n if (shouldBeActive) {\n const jobID = await this.UpsertScheduledJob(existingJobID, entity, effectiveCron!, integrationID);\n if (jobID !== existingJobID) {\n entity.Set('ScheduledJobID', jobID);\n }\n } else if (existingJobID) {\n await this.DisableScheduledJob(existingJobID);\n }\n }\n\n /** Converts schedule type + config into a cron expression. */\n private ResolveCronExpression(\n scheduleType: 'Manual' | 'Interval' | 'Cron',\n cronExpression: string | null,\n intervalMinutes: number | null\n ): string | null {\n if (scheduleType === 'Cron') return cronExpression;\n if (scheduleType === 'Interval' && intervalMinutes) return this.IntervalToCron(intervalMinutes);\n return null;\n }\n\n /** Converts an interval in minutes to an equivalent cron expression. */\n private IntervalToCron(minutes: number): string {\n if (minutes < 60) return `*/${minutes} * * * *`;\n const hours = minutes / 60;\n if (Number.isInteger(hours)) return hours === 1 ? '0 * * * *' : `0 */${hours} * * *`;\n return `*/${minutes} * * * *`;\n }\n\n /**\n * Creates a new ScheduledJob or updates the existing one.\n * Returns the ID of the job (new or existing).\n */\n private async UpsertScheduledJob(\n existingJobID: string | null,\n entity: MJCompanyIntegrationEntity,\n cronExpression: string,\n integrationID: string\n ): Promise<string> {\n const md = this.ProviderToUse;\n\n if (existingJobID) {\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(existingJobID);\n if (loaded) {\n job.Set('CronExpression', cronExpression);\n job.Set('Status', 'Active');\n // Reset NextRunAt so the scheduler picks up the new cron immediately\n job.Set('NextRunAt', new Date());\n await job.Save();\n return existingJobID;\n }\n }\n\n // No existing job (or failed to load) — create a new one\n const integrationName = (entity.Get('Name') as string) ?? (entity.Get('Integration') as string) ?? 'Integration';\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n job.NewRecord();\n job.Set('Name', `${integrationName} Sync`);\n job.Set('JobTypeID', this.INTEGRATION_SYNC_JOB_TYPE_ID);\n job.Set('CronExpression', cronExpression);\n job.Set('Timezone', 'UTC');\n job.Set('Status', 'Active');\n job.Set('ConcurrencyMode', 'Skip');\n job.Set('Configuration', JSON.stringify({ CompanyIntegrationID: integrationID }));\n // Set NextRunAt to now so the scheduler fires it on next poll without needing a restart\n job.Set('NextRunAt', new Date());\n await job.Save();\n return job.Get('ID') as string;\n }\n\n /** Sets an existing ScheduledJob to Disabled so it stops firing. */\n private async DisableScheduledJob(jobID: string): Promise<void> {\n const md = this.ProviderToUse;\n const job = await md.GetEntityObject<MJScheduledJobEntity>('MJ: Scheduled Jobs');\n const loaded = await job.Load(jobID);\n if (loaded) {\n job.Set('Status', 'Disabled');\n await job.Save();\n }\n }\n\n async RunNow(integrationID: string): Promise<void> {\n if (this.RunningID) return;\n this.RunningID = integrationID;\n this.cdr.detectChanges();\n\n try {\n const result = await this.dataService.RunSync(integrationID);\n if (!result.Success) {\n console.error('[SchedulesComponent] RunSync failed:', result.Message);\n }\n await this.LoadData();\n } catch (err) {\n console.error('[SchedulesComponent] RunNow error:', err);\n } finally {\n this.RunningID = null;\n this.cdr.detectChanges();\n }\n }\n\n // ---------------------------------------------------------------------------\n // Template helpers\n // ---------------------------------------------------------------------------\n\n GetEffectiveScheduleEnabled(schedule: ScheduleRow): boolean {\n return this.getEffectiveValue(schedule.ID, 'ScheduleEnabled', schedule.ScheduleEnabled) as boolean;\n }\n\n GetEffectiveScheduleType(schedule: ScheduleRow): 'Manual' | 'Interval' | 'Cron' {\n return this.getEffectiveValue(schedule.ID, 'ScheduleType', schedule.ScheduleType) as 'Manual' | 'Interval' | 'Cron';\n }\n\n GetEffectiveInterval(schedule: ScheduleRow): number | null {\n return this.getEffectiveValue(schedule.ID, 'ScheduleIntervalMinutes', schedule.ScheduleIntervalMinutes) as number | null;\n }\n\n GetEffectiveCron(schedule: ScheduleRow): string | null {\n return this.getEffectiveValue(schedule.ID, 'CronExpression', schedule.CronExpression) as string | null;\n }\n\n IsIntervalSelected(schedule: ScheduleRow, minutes: number): boolean {\n return this.GetEffectiveInterval(schedule) === minutes;\n }\n\n GetNextRunRelative(schedule: ScheduleRow): string {\n if (!schedule.NextScheduledRunAt) return 'Not scheduled';\n const next = new Date(schedule.NextScheduledRunAt);\n const diffMs = next.getTime() - Date.now();\n if (diffMs < 0) return 'Overdue';\n return 'in ' + this.formatDurationMs(diffMs);\n }\n\n GetLastRunRelative(schedule: ScheduleRow): string {\n if (!schedule.LastScheduledRunAt) return 'Never';\n return this.dataService.ComputeRelativeTime(schedule.LastScheduledRunAt);\n }\n\n GetCronDescription(expression: string | null): string {\n if (!expression) return '';\n const parts = expression.split(' ');\n if (parts.length !== 5) return expression;\n const [min, hour, , , dow] = parts;\n if (min === '0' && hour === '*') return 'Every hour';\n if (min === '0' && hour.startsWith('*/')) return `Every ${hour.slice(2)} hours`;\n if (min === '0' && hour !== '*' && dow === '*') return `Daily at ${hour}:00`;\n if (min === '0' && hour !== '*' && dow === '1-5') return `Weekdays at ${hour}:00`;\n if (dow === '1-5') return `Weekdays at ${hour}:${min.padStart(2, '0')}`;\n return expression;\n }\n\n GetIntegrationIcon(name: string): string {\n return ResolveIntegrationIcon(name);\n }\n\n ComputeTimelinePosition(hour: number, minute: number): number {\n return ((hour * 60 + minute) / (24 * 60)) * 100;\n }\n\n IsSaving(integrationID: string): boolean {\n return UUIDsEqual(this.SavingID, integrationID);\n }\n\n IsRunning(integrationID: string): boolean {\n return UUIDsEqual(this.RunningID, integrationID);\n }\n\n get ScheduledCount(): number {\n return this.Schedules.filter(s => s.ScheduleEnabled).length;\n }\n\n get LockedCount(): number {\n return this.Schedules.filter(s => s.IsLocked).length;\n }\n\n TrackByID(_index: number, item: ScheduleRow): string {\n return item.ID;\n }\n\n TrackTimelineByID(_index: number, item: TimelineRow): string {\n return item.IntegrationID;\n }\n\n TrackPresetByMinutes(_index: number, item: IntervalPreset): number {\n return item.Minutes;\n }\n\n TrackCronPresetByExpr(_index: number, item: CronPreset): string {\n return item.Expression;\n }\n\n TrackHour(_index: number, hour: number): number {\n return hour;\n }\n\n TrackMarker(index: number, _item: TimelineMarker): number {\n return index;\n }\n\n // ---------------------------------------------------------------------------\n // Private helpers\n // ---------------------------------------------------------------------------\n\n private findSchedule(integrationID: string): ScheduleRow | undefined {\n return this.Schedules.find(s => UUIDsEqual(s.ID, integrationID));\n }\n\n private getEffectiveValue<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n originalValue: ScheduleRow[K]\n ): ScheduleRow[K] {\n const changes = this.PendingChanges.get(integrationID);\n if (changes && field in changes) {\n return changes[field] as ScheduleRow[K];\n }\n return originalValue;\n }\n\n private setPendingChange<K extends keyof ScheduleRow>(\n integrationID: string,\n field: K,\n value: ScheduleRow[K]\n ): void {\n const existing = this.PendingChanges.get(integrationID) ?? {};\n existing[field] = value;\n this.PendingChanges.set(integrationID, existing);\n this.cdr.detectChanges();\n }\n\n private buildTimelineHours(): void {\n this.TimelineHours = Array.from({ length: 24 }, (_, i) => i);\n }\n\n private computeMarkersForSchedule(schedule: ScheduleRow, now: Date): TimelineMarker[] {\n const markers: TimelineMarker[] = [];\n const type = schedule.ScheduleType;\n\n if (type === 'Interval' && schedule.ScheduleIntervalMinutes && schedule.ScheduleIntervalMinutes > 0) {\n this.computeIntervalMarkers(schedule, now, markers);\n } else if (type === 'Cron' && schedule.CronExpression) {\n this.computeCronMarkers(schedule, now, markers);\n } else if (schedule.NextScheduledRunAt) {\n this.addNextRunMarker(schedule, now, markers);\n }\n\n return markers;\n }\n\n private computeIntervalMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const intervalMs = schedule.ScheduleIntervalMinutes! * 60_000;\n const endTime = now.getTime() + 24 * 60 * 60_000;\n\n // Start from the next scheduled run or from now\n let cursor = schedule.NextScheduledRunAt\n ? new Date(schedule.NextScheduledRunAt).getTime()\n : now.getTime();\n\n // If cursor is in the past, advance to the next future occurrence\n while (cursor < now.getTime()) {\n cursor += intervalMs;\n }\n\n const nextRun = cursor;\n\n while (cursor < endTime) {\n const d = new Date(cursor);\n markers.push({\n Hour: d.getHours(),\n Minute: d.getMinutes(),\n IsNext: cursor === nextRun\n });\n cursor += intervalMs;\n }\n }\n\n private computeCronMarkers(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n // Simple cron approximation for timeline display\n const times = this.approximateCronTimes(schedule.CronExpression!);\n const nextRunTime = schedule.NextScheduledRunAt ? new Date(schedule.NextScheduledRunAt) : null;\n\n for (const time of times) {\n const isNext = nextRunTime != null\n && time.Hour === nextRunTime.getHours()\n && time.Minute === nextRunTime.getMinutes();\n markers.push({ Hour: time.Hour, Minute: time.Minute, IsNext: isNext });\n }\n }\n\n private addNextRunMarker(schedule: ScheduleRow, now: Date, markers: TimelineMarker[]): void {\n const next = new Date(schedule.NextScheduledRunAt!);\n const diffMs = next.getTime() - now.getTime();\n if (diffMs >= 0 && diffMs <= 24 * 60 * 60_000) {\n markers.push({ Hour: next.getHours(), Minute: next.getMinutes(), IsNext: true });\n }\n }\n\n /**\n * Approximate cron schedule times within a 24-hour window.\n * Handles common patterns only -- not a full cron parser.\n */\n private approximateCronTimes(expression: string): Array<{ Hour: number; Minute: number }> {\n const parts = expression.split(' ');\n if (parts.length !== 5) return [];\n const [minPart, hourPart] = parts;\n const minute = minPart === '*' ? 0 : parseInt(minPart, 10);\n const times: Array<{ Hour: number; Minute: number }> = [];\n\n if (hourPart === '*') {\n // Every hour\n for (let h = 0; h < 24; h++) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n } else if (hourPart.startsWith('*/')) {\n const step = parseInt(hourPart.slice(2), 10);\n if (!isNaN(step) && step > 0) {\n for (let h = 0; h < 24; h += step) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n } else {\n // Specific hour(s) — comma-separated\n const hours = hourPart.split(',').map(h => parseInt(h.trim(), 10)).filter(h => !isNaN(h));\n for (const h of hours) {\n times.push({ Hour: h, Minute: isNaN(minute) ? 0 : minute });\n }\n }\n\n return times;\n }\n\n private formatDurationMs(ms: number): string {\n const totalMinutes = Math.floor(ms / 60_000);\n if (totalMinutes < 1) return 'less than a minute';\n if (totalMinutes < 60) return `${totalMinutes} minute${totalMinutes === 1 ? '' : 's'}`;\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n if (minutes === 0) return `${hours} hour${hours === 1 ? '' : 's'}`;\n return `${hours}h ${minutes}m`;\n }\n}\n\nexport function LoadSchedulesComponent(): void {\n // Tree-shaking prevention: importing this module causes\n // @RegisterClass decorators to fire, registering components.\n}\n","<!-- Loading state -->\n@if (IsLoading) {\n <div class=\"loading-container\">\n <mj-loading text=\"Loading schedules...\"></mj-loading>\n </div>\n} @else {\n <div class=\"schedules-root\">\n\n <!-- ================================================================= -->\n <!-- HEADER -->\n <!-- ================================================================= -->\n <div class=\"section-header\">\n <div class=\"header-left\">\n <h2 class=\"section-title\">\n <i class=\"fa-solid fa-calendar-check\"></i>\n Sync Schedules\n </h2>\n <span class=\"header-meta\">{{ Schedules.length }} integration{{ Schedules.length === 1 ? '' : 's' }}</span>\n <span class=\"header-meta\">{{ ScheduledCount }} scheduled</span>\n @if (LockedCount > 0) {\n <span class=\"header-meta running-badge\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n {{ LockedCount }} running\n </span>\n }\n </div>\n <button class=\"btn btn-outline\" (click)=\"LoadData()\">\n <i class=\"fa-solid fa-arrows-rotate\"></i>\n Refresh\n </button>\n </div>\n\n <!-- ================================================================= -->\n <!-- TIMELINE (24-hour visual) -->\n <!-- ================================================================= -->\n @if (TimelineMarkers.length > 0) {\n <div class=\"timeline-section\">\n <div class=\"timeline-title\">\n <i class=\"fa-regular fa-clock\"></i>\n Next 24 Hours\n </div>\n <div class=\"timeline-container\">\n <!-- Hour grid labels -->\n <div class=\"timeline-grid-labels\">\n <div class=\"timeline-label-spacer\"></div>\n <div class=\"timeline-grid-track\">\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <span class=\"timeline-hour-label\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n {{ hour }}:00\n </span>\n }\n }\n </div>\n </div>\n\n <!-- Integration rows -->\n @for (row of TimelineMarkers; track TrackTimelineByID($index, row)) {\n <div class=\"timeline-row\">\n <div class=\"timeline-row-label\" [title]=\"row.IntegrationName\">\n {{ row.IntegrationName }}\n </div>\n <div class=\"timeline-track-container\">\n <!-- Hour grid lines -->\n @for (hour of TimelineHours; track TrackHour($index, hour)) {\n @if (hour % 4 === 0) {\n <div class=\"timeline-grid-line\"\n [style.left.%]=\"ComputeTimelinePosition(hour, 0)\">\n </div>\n }\n }\n\n <!-- Track bar -->\n <div class=\"timeline-track\"></div>\n\n <!-- Markers -->\n @for (marker of row.Markers; track TrackMarker($index, marker)) {\n <div class=\"timeline-marker\"\n [class.timeline-marker-next]=\"marker.IsNext\"\n [style.left.%]=\"ComputeTimelinePosition(marker.Hour, marker.Minute)\"\n [title]=\"marker.Hour + ':' + ('' + marker.Minute).padStart(2, '0')\">\n </div>\n }\n\n <!-- Locked indicator -->\n @if (row.IsLocked) {\n <div class=\"timeline-locked-indicator\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n </div>\n }\n\n <!-- Current time line -->\n <div class=\"timeline-now-line\"></div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- ================================================================= -->\n <!-- SCHEDULE CARDS -->\n <!-- ================================================================= -->\n <div class=\"cards-section\">\n @for (schedule of Schedules; track TrackByID($index, schedule)) {\n <div class=\"schedule-card\" [class.schedule-card-disabled]=\"!schedule.IsActive\">\n\n <!-- LEFT: Icon + Info -->\n <div class=\"card-info\">\n <div class=\"card-icon\">\n <i [class]=\"GetIntegrationIcon(schedule.Integration || schedule.Name)\"></i>\n </div>\n <div class=\"card-details\">\n <div class=\"card-name\">{{ schedule.Integration || schedule.Name }}</div>\n <div class=\"card-company\">{{ schedule.Company }}</div>\n <div class=\"card-badges\">\n @if (schedule.IsActive) {\n <span class=\"badge badge-success\">Active</span>\n } @else {\n <span class=\"badge badge-gray\">Inactive</span>\n }\n @if (schedule.IsLocked) {\n <span class=\"badge badge-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n }\n </div>\n </div>\n </div>\n\n <!-- CENTER: Schedule Configuration -->\n <div class=\"card-config\">\n <!-- Schedule toggle -->\n <div class=\"config-row\">\n <label class=\"toggle-label\">\n Auto-sync\n <button class=\"toggle-switch\"\n [class.toggle-on]=\"GetEffectiveScheduleEnabled(schedule)\"\n (click)=\"ToggleScheduleEnabled(schedule.ID)\"\n [attr.aria-checked]=\"GetEffectiveScheduleEnabled(schedule)\"\n role=\"switch\">\n <span class=\"toggle-knob\"></span>\n </button>\n </label>\n </div>\n\n @if (GetEffectiveScheduleEnabled(schedule)) {\n <!-- Schedule type pills -->\n <div class=\"config-row\">\n <div class=\"type-pills\">\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Manual'\"\n (click)=\"SetScheduleType(schedule.ID, 'Manual')\">\n Manual\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Interval'\"\n (click)=\"SetScheduleType(schedule.ID, 'Interval')\">\n Interval\n </button>\n <button class=\"type-pill\"\n [class.type-pill-active]=\"GetEffectiveScheduleType(schedule) === 'Cron'\"\n (click)=\"SetScheduleType(schedule.ID, 'Cron')\">\n Cron\n </button>\n </div>\n </div>\n\n <!-- Interval config -->\n @if (GetEffectiveScheduleType(schedule) === 'Interval') {\n <div class=\"config-row\">\n <div class=\"interval-presets\">\n @for (preset of IntervalPresets; track TrackPresetByMinutes($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"IsIntervalSelected(schedule, preset.Minutes)\"\n (click)=\"SetInterval(schedule.ID, preset.Minutes)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"custom-interval\">\n <input type=\"number\"\n class=\"interval-input\"\n placeholder=\"Custom min\"\n min=\"1\"\n [value]=\"GetEffectiveInterval(schedule)\"\n (change)=\"SetCustomInterval(schedule.ID, $event)\" />\n <span class=\"interval-unit\">min</span>\n </div>\n </div>\n }\n\n <!-- Cron config -->\n @if (GetEffectiveScheduleType(schedule) === 'Cron') {\n <div class=\"config-row\">\n <div class=\"cron-presets\">\n @for (preset of CronPresets; track TrackCronPresetByExpr($index, preset)) {\n <button class=\"preset-btn\"\n [class.preset-btn-active]=\"GetEffectiveCron(schedule) === preset.Expression\"\n (click)=\"SetCronExpression(schedule.ID, preset.Expression)\">\n {{ preset.Label }}\n </button>\n }\n </div>\n <div class=\"cron-input-row\">\n <input type=\"text\"\n class=\"cron-input\"\n placeholder=\"* * * * *\"\n [value]=\"GetEffectiveCron(schedule) ?? ''\"\n (change)=\"OnCronInputChange(schedule.ID, $event)\" />\n @if (GetEffectiveCron(schedule)) {\n <span class=\"cron-description\">\n {{ GetCronDescription(GetEffectiveCron(schedule)) }}\n </span>\n }\n </div>\n </div>\n }\n }\n </div>\n\n <!-- RIGHT: Status + Actions -->\n <div class=\"card-status\">\n <div class=\"status-items\">\n <div class=\"status-item\">\n <span class=\"status-label\">Next run</span>\n <span class=\"status-value\">{{ GetNextRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Last run</span>\n <span class=\"status-value\">{{ GetLastRunRelative(schedule) }}</span>\n </div>\n <div class=\"status-item\">\n <span class=\"status-label\">Status</span>\n @if (schedule.IsLocked) {\n <span class=\"status-value status-running\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running\n </span>\n } @else {\n <span class=\"status-value status-idle\">Idle</span>\n }\n </div>\n </div>\n\n <div class=\"card-actions\">\n @if (HasChanges(schedule.ID)) {\n <button class=\"btn btn-primary btn-save\"\n [disabled]=\"IsSaving(schedule.ID)\"\n (click)=\"SaveSchedule(schedule.ID)\">\n @if (IsSaving(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-check\"></i>\n Save\n }\n </button>\n }\n <button class=\"btn btn-outline btn-run\"\n [disabled]=\"IsRunning(schedule.ID) || schedule.IsLocked\"\n (click)=\"RunNow(schedule.ID)\">\n @if (IsRunning(schedule.ID)) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Running...\n } @else {\n <i class=\"fa-solid fa-play\"></i>\n Run Now\n }\n </button>\n </div>\n </div>\n </div>\n }\n\n @if (Schedules.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-calendar-xmark\"></i>\n <p>No integrations found</p>\n </div>\n }\n </div>\n </div>\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRunViewProvider } from '@memberjunction/core';
|
|
1
|
+
import { IRunViewProvider, IMetadataProvider } from '@memberjunction/core';
|
|
2
2
|
import { MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationEntity, MJIntegrationEntity, MJIntegrationSourceTypeEntity, MJCompanyIntegrationSyncWatermarkEntity } from '@memberjunction/core-entities';
|
|
3
3
|
import { DiscoveredObjectResult, DiscoveredFieldResult, DiscoveryResult, ConnectionTestGraphQLResult, SchemaPreviewObjectInput, SchemaPreviewResult, DefaultConfigResult, ApplyAllResult, SourceObjectListItem, SourceObjectSelectionInput } from '@memberjunction/graphql-dataprovider';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -167,6 +167,10 @@ export declare function ResolveIntegrationIcon(name: string, entityIcon?: string
|
|
|
167
167
|
*/
|
|
168
168
|
export declare function IsImageIcon(icon: string | null | undefined): boolean;
|
|
169
169
|
export declare class IntegrationDataService {
|
|
170
|
+
private _provider;
|
|
171
|
+
/** Set the metadata provider this service should use. Components should call this after injection. */
|
|
172
|
+
set Provider(value: IMetadataProvider | null);
|
|
173
|
+
get Provider(): IMetadataProvider;
|
|
170
174
|
LoadIntegrationSummaries(provider?: IRunViewProvider | null): Promise<IntegrationSummary[]>;
|
|
171
175
|
LoadEntityMaps(companyIntegrationID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationEntityMapEntity[]>;
|
|
172
176
|
LoadFieldMaps(entityMapID: string, _provider?: IRunViewProvider | null): Promise<MJCompanyIntegrationFieldMapEntity[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-data.service.d.ts","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integration-data.service.d.ts","sourceRoot":"","sources":["../../../src/Integration/services/integration-data.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,14 @@ export function IsImageIcon(icon) {
|
|
|
50
50
|
return icon.startsWith('http') || icon.startsWith('data:') || icon.startsWith('/');
|
|
51
51
|
}
|
|
52
52
|
export class IntegrationDataService {
|
|
53
|
+
_provider = null;
|
|
54
|
+
/** Set the metadata provider this service should use. Components should call this after injection. */
|
|
55
|
+
set Provider(value) {
|
|
56
|
+
this._provider = value;
|
|
57
|
+
}
|
|
58
|
+
get Provider() {
|
|
59
|
+
return this._provider ?? Metadata.Provider;
|
|
60
|
+
}
|
|
53
61
|
async LoadIntegrationSummaries(provider) {
|
|
54
62
|
const engine = IntegrationEngineBase.Instance;
|
|
55
63
|
const rv = this.createRunView(provider);
|
|
@@ -221,7 +229,7 @@ export class IntegrationDataService {
|
|
|
221
229
|
}
|
|
222
230
|
// --- Entity Map CRUD ---
|
|
223
231
|
async CreateEntityMap(params) {
|
|
224
|
-
const md =
|
|
232
|
+
const md = this.Provider;
|
|
225
233
|
const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
|
|
226
234
|
em.NewRecord();
|
|
227
235
|
em.CompanyIntegrationID = params.CompanyIntegrationID;
|
|
@@ -243,20 +251,20 @@ export class IntegrationDataService {
|
|
|
243
251
|
return em;
|
|
244
252
|
}
|
|
245
253
|
async DeleteEntityMap(entityMapID) {
|
|
246
|
-
const md =
|
|
254
|
+
const md = this.Provider;
|
|
247
255
|
const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
|
|
248
256
|
await em.Load(entityMapID);
|
|
249
257
|
return em.Delete();
|
|
250
258
|
}
|
|
251
259
|
async ToggleEntityMapEnabled(entityMapID, enabled) {
|
|
252
|
-
const md =
|
|
260
|
+
const md = this.Provider;
|
|
253
261
|
const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
|
|
254
262
|
await em.Load(entityMapID);
|
|
255
263
|
em.SyncEnabled = enabled;
|
|
256
264
|
return em.Save();
|
|
257
265
|
}
|
|
258
266
|
async UpdateSyncDirection(entityMapID, direction) {
|
|
259
|
-
const md =
|
|
267
|
+
const md = this.Provider;
|
|
260
268
|
const em = await md.GetEntityObject('MJ: Company Integration Entity Maps');
|
|
261
269
|
await em.Load(entityMapID);
|
|
262
270
|
em.SyncDirection = direction;
|
|
@@ -264,7 +272,7 @@ export class IntegrationDataService {
|
|
|
264
272
|
}
|
|
265
273
|
// --- Field Map CRUD ---
|
|
266
274
|
async CreateFieldMap(params) {
|
|
267
|
-
const md =
|
|
275
|
+
const md = this.Provider;
|
|
268
276
|
const fm = await md.GetEntityObject('MJ: Company Integration Field Maps');
|
|
269
277
|
fm.NewRecord();
|
|
270
278
|
fm.EntityMapID = params.EntityMapID;
|
|
@@ -289,13 +297,13 @@ export class IntegrationDataService {
|
|
|
289
297
|
return fm;
|
|
290
298
|
}
|
|
291
299
|
async DeleteFieldMap(fieldMapID) {
|
|
292
|
-
const md =
|
|
300
|
+
const md = this.Provider;
|
|
293
301
|
const fm = await md.GetEntityObject('MJ: Company Integration Field Maps');
|
|
294
302
|
await fm.Load(fieldMapID);
|
|
295
303
|
return fm.Delete();
|
|
296
304
|
}
|
|
297
305
|
async UpdateFieldMap(fieldMapID, updates) {
|
|
298
|
-
const md =
|
|
306
|
+
const md = this.Provider;
|
|
299
307
|
const fm = await md.GetEntityObject('MJ: Company Integration Field Maps');
|
|
300
308
|
await fm.Load(fieldMapID);
|
|
301
309
|
if (updates.SourceFieldName !== undefined)
|
|
@@ -316,14 +324,14 @@ export class IntegrationDataService {
|
|
|
316
324
|
}
|
|
317
325
|
/** Load available MJ entities for mapping target selection */
|
|
318
326
|
async LoadMJEntities(_provider) {
|
|
319
|
-
const md =
|
|
327
|
+
const md = this.Provider;
|
|
320
328
|
return md.Entities
|
|
321
329
|
.map(e => ({ ID: e.ID, Name: e.Name }))
|
|
322
330
|
.sort((a, b) => a.Name.localeCompare(b.Name));
|
|
323
331
|
}
|
|
324
332
|
/** Load entity fields for a given entity (for field mapping destination picker) */
|
|
325
333
|
async LoadEntityFields(entityID, _provider) {
|
|
326
|
-
const md =
|
|
334
|
+
const md = this.Provider;
|
|
327
335
|
const entity = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
|
|
328
336
|
if (!entity)
|
|
329
337
|
return [];
|
|
@@ -349,7 +357,7 @@ export class IntegrationDataService {
|
|
|
349
357
|
}
|
|
350
358
|
/** Execute the full RSU pipeline for an integration entity map */
|
|
351
359
|
async RunSchemaPipeline(companyIntegrationID, entityMap) {
|
|
352
|
-
const md =
|
|
360
|
+
const md = this.Provider;
|
|
353
361
|
const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityMap.EntityID));
|
|
354
362
|
if (!entityInfo) {
|
|
355
363
|
return { Success: false, Message: `Entity not found for ID ${entityMap.EntityID}` };
|
|
@@ -427,7 +435,7 @@ export class IntegrationDataService {
|
|
|
427
435
|
}
|
|
428
436
|
/** Preview destination data by loading a few records from the target entity */
|
|
429
437
|
async PreviewDestinationData(entityID, limit = 5, provider) {
|
|
430
|
-
const md =
|
|
438
|
+
const md = this.Provider;
|
|
431
439
|
const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
|
|
432
440
|
if (!entityInfo)
|
|
433
441
|
return [];
|
|
@@ -449,7 +457,7 @@ export class IntegrationDataService {
|
|
|
449
457
|
}
|
|
450
458
|
/** Get a count of records in the destination MJ entity */
|
|
451
459
|
async GetDestinationRecordCount(entityID, provider) {
|
|
452
|
-
const md =
|
|
460
|
+
const md = this.Provider;
|
|
453
461
|
const entityInfo = md.Entities.find(e => UUIDsEqual(e.ID, entityID));
|
|
454
462
|
if (!entityInfo)
|
|
455
463
|
return 0;
|
|
@@ -505,7 +513,7 @@ export class IntegrationDataService {
|
|
|
505
513
|
}
|
|
506
514
|
/** Run a directional sync directly via the GraphQL StartSync mutation. */
|
|
507
515
|
async StartSyncWithDirection(companyIntegrationID, fullSync, syncDirection) {
|
|
508
|
-
const provider =
|
|
516
|
+
const provider = this.Provider;
|
|
509
517
|
const client = new GraphQLIntegrationClient(provider);
|
|
510
518
|
return client.StartSync(companyIntegrationID, undefined, fullSync, syncDirection);
|
|
511
519
|
}
|
|
@@ -518,7 +526,7 @@ export class IntegrationDataService {
|
|
|
518
526
|
Message: 'Action "Run Integration Sync" not found. Ensure the action is registered.'
|
|
519
527
|
};
|
|
520
528
|
}
|
|
521
|
-
const provider =
|
|
529
|
+
const provider = this.Provider;
|
|
522
530
|
const actionClient = new GraphQLActionClient(provider);
|
|
523
531
|
const params = [
|
|
524
532
|
{ Name: 'CompanyIntegrationID', Value: companyIntegrationID, Type: 'Input' },
|
|
@@ -548,7 +556,7 @@ export class IntegrationDataService {
|
|
|
548
556
|
* for every non-system column. Returns the count of maps created.
|
|
549
557
|
*/
|
|
550
558
|
async AutoMapSchema(companyIntegrationID, schemaName, direction = 'Pull') {
|
|
551
|
-
const md =
|
|
559
|
+
const md = this.Provider;
|
|
552
560
|
const errors = [];
|
|
553
561
|
// Get entities in the target schema
|
|
554
562
|
const schemaEntities = md.Entities.filter(e => e.SchemaName.toLowerCase() === schemaName.toLowerCase());
|
|
@@ -612,7 +620,7 @@ export class IntegrationDataService {
|
|
|
612
620
|
}
|
|
613
621
|
/** Load available schemas (for auto-map schema picker) */
|
|
614
622
|
LoadSchemas() {
|
|
615
|
-
const md =
|
|
623
|
+
const md = this.Provider;
|
|
616
624
|
const schemas = new Set();
|
|
617
625
|
for (const entity of md.Entities) {
|
|
618
626
|
if (entity.SchemaName)
|
|
@@ -633,7 +641,7 @@ export class IntegrationDataService {
|
|
|
633
641
|
return counts;
|
|
634
642
|
}
|
|
635
643
|
async lookupActionID(actionName) {
|
|
636
|
-
const rv =
|
|
644
|
+
const rv = RunView.FromMetadataProvider(this.Provider);
|
|
637
645
|
const result = await rv.RunView({
|
|
638
646
|
EntityName: 'MJ: Actions',
|
|
639
647
|
ExtraFilter: `Name='${actionName}'`,
|
|
@@ -644,11 +652,11 @@ export class IntegrationDataService {
|
|
|
644
652
|
return result.Results.length > 0 ? result.Results[0].ID : null;
|
|
645
653
|
}
|
|
646
654
|
getIntegrationClient() {
|
|
647
|
-
const provider =
|
|
655
|
+
const provider = this.Provider;
|
|
648
656
|
return new GraphQLIntegrationClient(provider);
|
|
649
657
|
}
|
|
650
658
|
createRunView(provider) {
|
|
651
|
-
return new RunView(provider ??
|
|
659
|
+
return new RunView((provider ?? this.Provider));
|
|
652
660
|
}
|
|
653
661
|
buildSummary(integration, allRuns, sourceTypes, integrationDefs) {
|
|
654
662
|
const integrationRuns = allRuns.filter(r => UUIDsEqual(r.CompanyIntegrationID, integration.ID));
|