@memberjunction/ng-dashboards 6.1.2 → 6.2.0-edge.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.
Files changed (99) hide show
  1. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +6 -1
  2. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  3. package/dist/AI/components/vectors/vector-management-resource.component.js +99 -45
  4. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  5. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +4 -0
  6. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  7. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +16 -6
  8. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  9. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +4 -0
  10. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  11. package/dist/DataExplorer/data-explorer-dashboard.component.js +14 -4
  12. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  13. package/dist/DataExplorer/services/explorer-state.service.js +2 -2
  14. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  15. package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
  16. package/dist/DevTools/graphql-console.component.js +2 -0
  17. package/dist/DevTools/graphql-console.component.js.map +1 -1
  18. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  19. package/dist/Integration/components/connections/connections.component.js +2 -0
  20. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  21. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +4 -12
  22. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
  23. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +39 -78
  24. package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
  25. package/dist/Lists/components/lists-browse-resource.component.d.ts +3 -0
  26. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  27. package/dist/Lists/components/lists-browse-resource.component.js +7 -6
  28. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  29. package/dist/Lists/components/lists-my-lists-resource.component.d.ts +3 -0
  30. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  31. package/dist/Lists/components/lists-my-lists-resource.component.js +7 -6
  32. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  33. package/dist/PredictiveStudio/at-risk.view-models.d.ts +41 -3
  34. package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +1 -1
  35. package/dist/PredictiveStudio/at-risk.view-models.js +99 -6
  36. package/dist/PredictiveStudio/at-risk.view-models.js.map +1 -1
  37. package/dist/PredictiveStudio/components/ps-catalog.component.d.ts +4 -1
  38. package/dist/PredictiveStudio/components/ps-catalog.component.d.ts.map +1 -1
  39. package/dist/PredictiveStudio/components/ps-catalog.component.js +61 -37
  40. package/dist/PredictiveStudio/components/ps-catalog.component.js.map +1 -1
  41. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +12 -0
  42. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  43. package/dist/PredictiveStudio/components/ps-experiments.component.js +426 -184
  44. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  45. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +84 -0
  46. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -0
  47. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +1397 -0
  48. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -0
  49. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +66 -34
  50. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
  51. package/dist/PredictiveStudio/components/ps-pipelines.component.js +2456 -743
  52. package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
  53. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +194 -0
  54. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -0
  55. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +1902 -0
  56. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -0
  57. package/dist/PredictiveStudio/components/ps-production.component.d.ts +17 -1
  58. package/dist/PredictiveStudio/components/ps-production.component.d.ts.map +1 -1
  59. package/dist/PredictiveStudio/components/ps-production.component.js +653 -372
  60. package/dist/PredictiveStudio/components/ps-production.component.js.map +1 -1
  61. package/dist/PredictiveStudio/components/ps-registry.component.d.ts +21 -61
  62. package/dist/PredictiveStudio/components/ps-registry.component.d.ts.map +1 -1
  63. package/dist/PredictiveStudio/components/ps-registry.component.js +214 -681
  64. package/dist/PredictiveStudio/components/ps-registry.component.js.map +1 -1
  65. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +49 -0
  66. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +1 -0
  67. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +658 -0
  68. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +1 -0
  69. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +42 -0
  70. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -0
  71. package/dist/PredictiveStudio/predictive-studio-score-history.service.js +90 -0
  72. package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -0
  73. package/dist/PredictiveStudio/predictive-studio.view-models.d.ts +14 -2
  74. package/dist/PredictiveStudio/predictive-studio.view-models.d.ts.map +1 -1
  75. package/dist/PredictiveStudio/predictive-studio.view-models.js +41 -5
  76. package/dist/PredictiveStudio/predictive-studio.view-models.js.map +1 -1
  77. package/dist/PredictiveStudio/resources/ps-models-resource.component.d.ts +9 -1
  78. package/dist/PredictiveStudio/resources/ps-models-resource.component.d.ts.map +1 -1
  79. package/dist/PredictiveStudio/resources/ps-models-resource.component.js +178 -65
  80. package/dist/PredictiveStudio/resources/ps-models-resource.component.js.map +1 -1
  81. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +9 -1
  82. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  83. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +307 -369
  84. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  85. package/dist/PredictiveStudio/resources/ps-resource-base.js +1 -1
  86. package/dist/PredictiveStudio/resources/ps-resource-base.js.map +1 -1
  87. package/dist/PredictiveStudio/resources/ps-studio-resource.component.d.ts +17 -1
  88. package/dist/PredictiveStudio/resources/ps-studio-resource.component.d.ts.map +1 -1
  89. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +309 -138
  90. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
  91. package/dist/VersionHistory/components/graph-resource.component.d.ts +1 -0
  92. package/dist/VersionHistory/components/graph-resource.component.d.ts.map +1 -1
  93. package/dist/VersionHistory/components/graph-resource.component.js +6 -5
  94. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  95. package/dist/predictive-studio-dashboards.module.d.ts +10 -8
  96. package/dist/predictive-studio-dashboards.module.d.ts.map +1 -1
  97. package/dist/predictive-studio-dashboards.module.js +13 -3
  98. package/dist/predictive-studio-dashboards.module.js.map +1 -1
  99. package/package.json +64 -63
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps-pipeline-wizard.component.js","sourceRoot":"","sources":["../../../src/PredictiveStudio/components/ps-pipeline-wizard.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { UUIDsEqual } from '@memberjunction/global';\nimport { MJButtonDirective } from '@memberjunction/ng-ui-components';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { IMetadataProvider, UserInfo, EntityInfo, EntityFieldInfo, Metadata } from '@memberjunction/core';\nimport {\n MJMLTrainingPipelineEntity,\n MJMLAlgorithmEntity,\n PredictiveStudioTrainModelOperation,\n} from '@memberjunction/core-entities';\nimport {\n DOMINANCE_THRESHOLD_DEFAULT,\n type SourceBinding,\n type FeatureStep,\n type AsOfStrategy,\n type LeakageGuard,\n type ValidationStrategy,\n type ProblemType,\n} from '@memberjunction/predictive-studio-core';\nimport { PredictiveStudioEngine } from '../engine/predictive-studio.engine';\n\nexport interface FieldSelectionItem {\n field: EntityFieldInfo;\n selected: boolean;\n isDenyList: boolean;\n isTarget: boolean;\n}\n\nexport type WizardStep = 'goal' | 'features' | 'preprocessing' | 'algorithm';\n\n@Component({\n standalone: true,\n selector: 'ps-pipeline-wizard',\n imports: [CommonModule, FormsModule, MJButtonDirective],\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../predictive-studio.shared.css', './ps-pipeline-wizard.component.css'],\n template: `\n <div class=\"ps-modal-backdrop\" (click)=\"onBackdropClick($event)\">\n <div class=\"ps-modal-dialog ps-wizard-dialog\" role=\"dialog\" aria-modal=\"true\" data-testid=\"ps-pipeline-wizard\">\n <!-- Header -->\n <div class=\"ps-wizard-header\">\n <div class=\"ps-wizard-header-title\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n <div>\n <h2>{{ isEditing ? 'Edit Training Pipeline' : 'New ML Training Pipeline' }}</h2>\n <span class=\"ps-wizard-subtitle\">Step-by-step pipeline configuration with leakage guard</span>\n </div>\n </div>\n <button class=\"ps-wizard-close\" (click)=\"cancel()\" aria-label=\"Close wizard\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <!-- Step Indicator Strip -->\n <div class=\"ps-wizard-stepper\">\n <button class=\"ps-step-tab\" [class.active]=\"currentStep === 'goal'\" [class.done]=\"isStepDone('goal')\" (click)=\"goToStep('goal')\">\n <span class=\"step-num\">1</span>\n <span class=\"step-label\">Goal & Target</span>\n </button>\n <div class=\"step-line\"></div>\n <button class=\"ps-step-tab\" [class.active]=\"currentStep === 'features'\" [class.done]=\"isStepDone('features')\" (click)=\"goToStep('features')\">\n <span class=\"step-num\">2</span>\n <span class=\"step-label\">Features & Leakage</span>\n </button>\n <div class=\"step-line\"></div>\n <button class=\"ps-step-tab\" [class.active]=\"currentStep === 'preprocessing'\" [class.done]=\"isStepDone('preprocessing')\" (click)=\"goToStep('preprocessing')\">\n <span class=\"step-num\">3</span>\n <span class=\"step-label\">Preprocessing</span>\n </button>\n <div class=\"step-line\"></div>\n <button class=\"ps-step-tab\" [class.active]=\"currentStep === 'algorithm'\" [class.done]=\"isStepDone('algorithm')\" (click)=\"goToStep('algorithm')\">\n <span class=\"step-num\">4</span>\n <span class=\"step-label\">Algorithm & Split</span>\n </button>\n </div>\n\n <!-- Step Content Area -->\n <div class=\"ps-wizard-body\">\n <!-- Step 1: Goal & Target -->\n @if (currentStep === 'goal') {\n <div class=\"ps-step-content\" data-testid=\"ps-wizard-step-goal\">\n <div class=\"ps-field\">\n <label for=\"pipeline-name\">Pipeline Name <span class=\"req\">*</span></label>\n <input id=\"pipeline-name\" class=\"mj-input\" type=\"text\" [(ngModel)]=\"pipelineName\" placeholder=\"e.g. Member Renewal Risk v1\" />\n </div>\n\n <div class=\"ps-field\">\n <label for=\"pipeline-desc\">Description</label>\n <textarea id=\"pipeline-desc\" class=\"mj-textarea\" rows=\"2\" [(ngModel)]=\"pipelineDescription\" placeholder=\"Predicts whether active members will renew before their period ends.\"></textarea>\n </div>\n\n <div class=\"ps-grid-2\">\n <div class=\"ps-field\">\n <label for=\"target-entity\">Target Entity <span class=\"req\">*</span></label>\n <select id=\"target-entity\" class=\"mj-input\" [ngModel]=\"selectedEntityId\" (ngModelChange)=\"onEntitySelected($event)\">\n <option [value]=\"''\" disabled>-- Select Entity --</option>\n @for (ent of availableEntities; track ent.ID) {\n <option [value]=\"ent.ID\">{{ ent.Name }} ({{ ent.BaseView || ent.BaseTable }})</option>\n }\n </select>\n </div>\n\n <div class=\"ps-field\">\n <label for=\"target-variable\">Target Variable (Label Column) <span class=\"req\">*</span></label>\n <select id=\"target-variable\" class=\"mj-input\" [(ngModel)]=\"targetVariable\" [disabled]=\"!selectedEntity\">\n <option [value]=\"''\" disabled>-- Select Label Field --</option>\n @for (f of availableFields; track f.Name) {\n <option [value]=\"f.Name\">{{ f.Name }} ({{ f.Type }})</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"ps-grid-2\">\n <div class=\"ps-field\">\n <label for=\"problem-type\">Problem Type</label>\n <select id=\"problem-type\" class=\"mj-input\" [(ngModel)]=\"problemType\" (ngModelChange)=\"onProblemTypeChange()\">\n <option value=\"classification\">Classification (Predict Categorical / Binary Outcome)</option>\n <option value=\"regression\">Regression (Predict Numeric Continuous Value)</option>\n </select>\n </div>\n\n <div class=\"ps-field\">\n <label for=\"eval-metric\">Primary Evaluation Metric</label>\n <select id=\"eval-metric\" class=\"mj-input\" [(ngModel)]=\"evaluationMetric\">\n @for (m of availableMetrics; track m) {\n <option [value]=\"m\">{{ m }}</option>\n }\n </select>\n </div>\n </div>\n\n <div class=\"ps-card as-of-box\">\n <div class=\"ps-card-head\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i>\n <h4>Point-in-Time Cutoff (Temporal Leakage Guard)</h4>\n </div>\n <div class=\"ps-card-body\">\n <div class=\"ps-grid-2\">\n <div class=\"ps-field\">\n <label>Cutoff Mode</label>\n <select class=\"mj-input\" [(ngModel)]=\"asOfMode\">\n <option value=\"none\">None (Static Cross-Sectional Data)</option>\n <option value=\"column\">Date Column on Entity</option>\n <option value=\"offset\">Relative Days Offset before Event</option>\n </select>\n </div>\n\n @if (asOfMode === 'column') {\n <div class=\"ps-field\">\n <label>Decision Date Field</label>\n <select class=\"mj-input\" [(ngModel)]=\"asOfColumn\">\n <option [value]=\"''\">-- Select Date Field --</option>\n @for (f of dateFields; track f.Name) {\n <option [value]=\"f.Name\">{{ f.Name }}</option>\n }\n </select>\n </div>\n }\n\n @if (asOfMode === 'offset') {\n <div class=\"ps-field\">\n <label>Offset Days before Outcome</label>\n <input class=\"mj-input\" type=\"number\" min=\"1\" [(ngModel)]=\"asOfOffsetDays\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n }\n\n <!-- Step 2: Feature Selection & Leakage Guard -->\n @if (currentStep === 'features') {\n <div class=\"ps-step-content\" data-testid=\"ps-wizard-step-features\">\n <div class=\"feat-toolbar\">\n <div class=\"feat-search\">\n <i class=\"fa-solid fa-magnifying-glass\"></i>\n <input class=\"mj-input\" type=\"text\" [(ngModel)]=\"fieldSearchFilter\" placeholder=\"Filter fields by name or type…\" />\n </div>\n <div class=\"feat-actions\">\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"selectAllFields(true)\">Select All</button>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"selectAllFields(false)\">Deselect All</button>\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"excludeAuditFields()\">Exclude IDs & Timestamps</button>\n </div>\n </div>\n\n <div class=\"feat-stats\">\n <span>Selected: <strong>{{ selectedFeaturesCount }}</strong> features</span>\n <span>Leakage Deny-List: <strong class=\"text-danger\">{{ denyListCount }}</strong> excluded fields</span>\n </div>\n\n <div class=\"feat-table-wrap\">\n <table class=\"ps-table feat-table\">\n <thead>\n <tr>\n <th style=\"width: 40px;\">Use</th>\n <th>Field Name</th>\n <th>Data Type</th>\n <th>Nullable</th>\n <th style=\"width: 140px; text-align: center;\">Leakage Guard</th>\n </tr>\n </thead>\n <tbody>\n @for (item of filteredFieldItems; track item.field.Name) {\n <tr [class.target-row]=\"item.isTarget\" [class.deny-row]=\"item.isDenyList\">\n <td>\n <input type=\"checkbox\" [(ngModel)]=\"item.selected\" [disabled]=\"item.isTarget || item.isDenyList\" />\n </td>\n <td>\n <strong>{{ item.field.Name }}</strong>\n @if (item.isTarget) {\n <span class=\"ps-badge info\" style=\"margin-left: 6px;\">Target Label</span>\n }\n </td>\n <td><code>{{ item.field.Type }}</code></td>\n <td>{{ item.field.AllowsNull ? 'Yes' : 'No' }}</td>\n <td style=\"text-align: center;\">\n @if (!item.isTarget) {\n <button class=\"ps-deny-toggle\" [class.denied]=\"item.isDenyList\" (click)=\"toggleDenyList(item)\" title=\"Add to leakage deny-list\">\n <i class=\"fa-solid\" [class.fa-shield-halved]=\"item.isDenyList\" [class.fa-shield]=\"!item.isDenyList\"></i>\n {{ item.isDenyList ? 'Denied' : 'Allow' }}\n </button>\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <div class=\"ps-field\" style=\"margin-top: 14px;\">\n <label>Single-Feature Dominance Threshold: <strong>{{ dominanceThreshold | percent }}</strong></label>\n <div class=\"slider-row\">\n <input type=\"range\" min=\"0.5\" max=\"0.99\" step=\"0.01\" [(ngModel)]=\"dominanceThreshold\" />\n <span class=\"ps-muted ps-small\">Warns and holds model if any single feature accounts for > {{ dominanceThreshold | percent }} of total importance.</span>\n </div>\n </div>\n </div>\n }\n\n <!-- Step 3: Preprocessing Recipe -->\n @if (currentStep === 'preprocessing') {\n <div class=\"ps-step-content\" data-testid=\"ps-wizard-step-preprocessing\">\n <div class=\"recipe-card\">\n <div class=\"recipe-icon\"><i class=\"fa-solid fa-table-cells\"></i></div>\n <div class=\"recipe-details\">\n <h4>Categorical Encoding</h4>\n <p class=\"ps-small ps-muted\">Converts text and discrete categoricals into numerical representations.</p>\n <select class=\"mj-input\" [(ngModel)]=\"categoricalEncoding\">\n <option value=\"onehot\">One-Hot Encoding (Recommended for cardinality &lt; 50)</option>\n <option value=\"none\">Pass-Through / Native Algorithm Handling</option>\n </select>\n </div>\n </div>\n\n <div class=\"recipe-card\">\n <div class=\"recipe-icon\"><i class=\"fa-solid fa-fill-drip\"></i></div>\n <div class=\"recipe-details\">\n <h4>Missing Value Imputation</h4>\n <p class=\"ps-small ps-muted\">Strategy for filling null or missing entries in training matrices.</p>\n <select class=\"mj-input\" [(ngModel)]=\"imputeStrategy\">\n <option value=\"median\">Median (Robust against numeric outliers)</option>\n <option value=\"mean\">Mean (Standard arithmetic average)</option>\n <option value=\"mode\">Mode (Most frequent category)</option>\n <option value=\"constant\">Constant (Zero / Missing category token)</option>\n </select>\n </div>\n </div>\n\n <div class=\"recipe-card\">\n <div class=\"recipe-icon\"><i class=\"fa-solid fa-ruler-combined\"></i></div>\n <div class=\"recipe-details\">\n <h4>Numeric Standardization</h4>\n <p class=\"ps-small ps-muted\">Scales numeric features to prevent large magnitudes from dominating.</p>\n <select class=\"mj-input\" [(ngModel)]=\"standardizeStrategy\">\n <option value=\"standard\">Standard Scaling (Z-score: mean 0, variance 1)</option>\n <option value=\"minmax\">Min-Max Scaling (Bounding values to [0, 1])</option>\n <option value=\"none\">None (Native tree-based scaling)</option>\n </select>\n </div>\n </div>\n </div>\n }\n\n <!-- Step 4: Algorithm & Validation Split -->\n @if (currentStep === 'algorithm') {\n <div class=\"ps-step-content\" data-testid=\"ps-wizard-step-algorithm\">\n <div class=\"ps-field\">\n <label for=\"algorithm-select\">Algorithm <span class=\"req\">*</span></label>\n <select id=\"algorithm-select\" class=\"mj-input\" [ngModel]=\"selectedAlgorithmId\" (ngModelChange)=\"onAlgorithmSelected($event)\">\n @for (a of availableAlgorithms; track a.ID) {\n <option [value]=\"a.ID\">{{ a.Name }} ({{ a.DriverClass }})</option>\n }\n </select>\n </div>\n\n <!-- Hyperparameter controls -->\n <div class=\"ps-card\" style=\"margin: 12px 0;\">\n <div class=\"ps-card-head\">\n <i class=\"fa-solid fa-sliders\"></i>\n <h4>Algorithm Hyperparameters</h4>\n </div>\n <div class=\"ps-card-body\">\n <div class=\"ps-grid-3\">\n <div class=\"ps-field\">\n <label>Estimators (Trees)</label>\n <input class=\"mj-input\" type=\"number\" min=\"10\" max=\"1000\" step=\"10\" [(ngModel)]=\"hyperparamEstimators\" />\n </div>\n <div class=\"ps-field\">\n <label>Max Depth</label>\n <input class=\"mj-input\" type=\"number\" min=\"1\" max=\"20\" [(ngModel)]=\"hyperparamMaxDepth\" />\n </div>\n <div class=\"ps-field\">\n <label>Learning Rate</label>\n <input class=\"mj-input\" type=\"number\" min=\"0.001\" max=\"1\" step=\"0.01\" [(ngModel)]=\"hyperparamLearningRate\" />\n </div>\n </div>\n </div>\n </div>\n\n <!-- Validation strategy -->\n <div class=\"ps-card\">\n <div class=\"ps-card-head\">\n <i class=\"fa-solid fa-scissors\"></i>\n <h4>Validation Strategy</h4>\n </div>\n <div class=\"ps-card-body\">\n <div class=\"ps-grid-2\">\n <div class=\"ps-field\">\n <label>Strategy</label>\n <select class=\"mj-input\" [(ngModel)]=\"validationStrategyType\">\n <option value=\"train_test_split\">Train / Test Split</option>\n <option value=\"kfold\">K-Fold Cross-Validation</option>\n </select>\n </div>\n\n @if (validationStrategyType === 'train_test_split') {\n <div class=\"ps-field\">\n <label>Test Holdout Percentage: <strong>{{ testSplitRatio | percent }}</strong></label>\n <input type=\"range\" min=\"0.1\" max=\"0.4\" step=\"0.05\" [(ngModel)]=\"testSplitRatio\" />\n </div>\n } @else {\n <div class=\"ps-field\">\n <label>Number of Folds (K)</label>\n <input class=\"mj-input\" type=\"number\" min=\"2\" max=\"10\" [(ngModel)]=\"kFolds\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n\n <!-- Footer Actions -->\n <div class=\"ps-wizard-footer\">\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"cancel()\">Cancel</button>\n <span class=\"ps-spacer\"></span>\n\n @if (currentStep !== 'goal') {\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"prevStep()\">\n <i class=\"fa-solid fa-arrow-left\"></i> Back\n </button>\n }\n\n @if (currentStep !== 'algorithm') {\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"nextStep()\" [disabled]=\"!canProceed()\">\n Next <i class=\"fa-solid fa-arrow-right\"></i>\n </button>\n } @else {\n <button mjButton variant=\"secondary\" size=\"sm\" (click)=\"saveDraft()\" [disabled]=\"busy || !canSave()\">\n <i class=\"fa-solid fa-floppy-disk\"></i> Save Draft\n </button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"saveAndTrain()\" [disabled]=\"busy || !canSave()\">\n <i class=\"fa-solid fa-play\"></i> Save & Train Now\n </button>\n }\n </div>\n </div>\n </div>\n `,\n})\nexport class PSPipelineWizardComponent implements OnInit {\n @Input() provider: IMetadataProvider | null = null;\n @Input() currentUser: UserInfo | null = null;\n @Input() engine: PredictiveStudioEngine | null = null;\n @Input() initialAlgorithmName?: string;\n @Input() initialAlgorithmId?: string;\n @Input() cloneFromPipeline?: MJMLTrainingPipelineEntity;\n @Input() set cloneFrom(p: MJMLTrainingPipelineEntity | null | undefined) {\n this.cloneFromPipeline = p ?? undefined;\n }\n\n @Output() closed = new EventEmitter<void>();\n @Output() saved = new EventEmitter<MJMLTrainingPipelineEntity>();\n @Output() trainRequested = new EventEmitter<MJMLTrainingPipelineEntity>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly notifications = inject(MJNotificationService);\n\n public currentStep: WizardStep = 'goal';\n public busy = false;\n public isEditing = false;\n\n // Step 1: Goal & Target\n public pipelineName = '';\n public pipelineDescription = '';\n public selectedEntityId = '';\n public targetVariable = '';\n public problemType: ProblemType = 'classification';\n public evaluationMetric = 'AUC';\n public asOfMode: 'none' | 'column' | 'offset' = 'none';\n public asOfColumn = '';\n public asOfOffsetDays = 30;\n\n // Step 2: Features\n public fieldItems: FieldSelectionItem[] = [];\n public fieldSearchFilter = '';\n public dominanceThreshold = DOMINANCE_THRESHOLD_DEFAULT;\n\n // Step 3: Preprocessing\n public categoricalEncoding: 'onehot' | 'none' = 'onehot';\n public imputeStrategy: 'mean' | 'median' | 'mode' | 'constant' = 'median';\n public standardizeStrategy: 'standard' | 'minmax' | 'none' = 'standard';\n\n // Step 4: Algorithm & Validation\n public selectedAlgorithmId = '';\n public hyperparamEstimators = 100;\n public hyperparamMaxDepth = 6;\n public hyperparamLearningRate = 0.1;\n public validationStrategyType: 'train_test_split' | 'kfold' = 'train_test_split';\n public testSplitRatio = 0.2;\n public kFolds = 5;\n\n public ngOnInit(): void {\n this.initFromDefaults();\n }\n\n public get availableEntities(): EntityInfo[] {\n if (!this.provider) return [];\n return this.provider.Entities.filter((e) => !e.VirtualEntity && e.AllowUserSearchAPI)\n .sort((a, b) => a.Name.localeCompare(b.Name));\n }\n\n public get selectedEntity(): EntityInfo | null {\n if (!this.selectedEntityId || !this.provider) return null;\n return this.provider.Entities.find((e) => UUIDsEqual(e.ID, this.selectedEntityId)) ?? null;\n }\n\n public get availableFields(): EntityFieldInfo[] {\n return this.selectedEntity?.Fields ?? [];\n }\n\n public get dateFields(): EntityFieldInfo[] {\n return this.availableFields.filter((f) => f.Type?.toLowerCase().includes('date') || f.Type?.toLowerCase().includes('time'));\n }\n\n public get availableMetrics(): string[] {\n if (this.problemType === 'classification') {\n return ['AUC', 'Accuracy', 'F1', 'Log Loss', 'Precision', 'Recall'];\n }\n return ['RMSE', 'MAE', 'R2', 'MSE'];\n }\n\n public get availableAlgorithms(): MJMLAlgorithmEntity[] {\n return this.engine?.Algorithms ?? [];\n }\n\n public get filteredFieldItems(): FieldSelectionItem[] {\n const q = this.fieldSearchFilter.trim().toLowerCase();\n if (!q) return this.fieldItems;\n return this.fieldItems.filter((item) => item.field.Name.toLowerCase().includes(q) || item.field.Type?.toLowerCase().includes(q));\n }\n\n public get selectedFeaturesCount(): number {\n return this.fieldItems.filter((i) => i.selected && !i.isDenyList && !i.isTarget).length;\n }\n\n public get denyListCount(): number {\n return this.fieldItems.filter((i) => i.isDenyList).length;\n }\n\n public onEntitySelected(entityId: string): void {\n this.selectedEntityId = entityId;\n this.targetVariable = '';\n this.populateFieldItems();\n this.cdr.detectChanges();\n }\n\n public onProblemTypeChange(): void {\n this.evaluationMetric = this.problemType === 'classification' ? 'AUC' : 'RMSE';\n this.cdr.detectChanges();\n }\n\n public onAlgorithmSelected(algoId: string): void {\n this.selectedAlgorithmId = algoId;\n this.cdr.detectChanges();\n }\n\n public toggleDenyList(item: FieldSelectionItem): void {\n item.isDenyList = !item.isDenyList;\n if (item.isDenyList) {\n item.selected = false;\n }\n this.cdr.detectChanges();\n }\n\n public selectAllFields(val: boolean): void {\n for (const item of this.fieldItems) {\n if (!item.isTarget && !item.isDenyList) {\n item.selected = val;\n }\n }\n this.cdr.detectChanges();\n }\n\n public excludeAuditFields(): void {\n for (const item of this.fieldItems) {\n const name = item.field.Name.toLowerCase();\n if (\n name === 'id' ||\n name.startsWith('__mj') ||\n name.includes('created') ||\n name.includes('updated') ||\n name.includes('password')\n ) {\n item.selected = false;\n }\n }\n this.cdr.detectChanges();\n }\n\n public isStepDone(step: WizardStep): boolean {\n switch (step) {\n case 'goal':\n return Boolean(this.pipelineName.trim() && this.selectedEntityId && this.targetVariable);\n case 'features':\n return this.selectedFeaturesCount > 0;\n case 'preprocessing':\n return true;\n case 'algorithm':\n return Boolean(this.selectedAlgorithmId);\n }\n }\n\n public canProceed(): boolean {\n return this.isStepDone(this.currentStep);\n }\n\n public canSave(): boolean {\n return (\n Boolean(this.pipelineName.trim()) &&\n Boolean(this.selectedEntityId) &&\n Boolean(this.targetVariable) &&\n Boolean(this.selectedAlgorithmId) &&\n this.selectedFeaturesCount > 0\n );\n }\n\n public goToStep(step: WizardStep): void {\n this.currentStep = step;\n this.cdr.detectChanges();\n }\n\n public nextStep(): void {\n if (this.currentStep === 'goal') this.currentStep = 'features';\n else if (this.currentStep === 'features') this.currentStep = 'preprocessing';\n else if (this.currentStep === 'preprocessing') this.currentStep = 'algorithm';\n this.cdr.detectChanges();\n }\n\n public prevStep(): void {\n if (this.currentStep === 'algorithm') this.currentStep = 'preprocessing';\n else if (this.currentStep === 'preprocessing') this.currentStep = 'features';\n else if (this.currentStep === 'features') this.currentStep = 'goal';\n this.cdr.detectChanges();\n }\n\n public cancel(): void {\n this.closed.emit();\n }\n\n public onBackdropClick(event: MouseEvent): void {\n if ((event.target as HTMLElement).classList.contains('ps-modal-backdrop')) {\n this.cancel();\n }\n }\n\n public async saveDraft(): Promise<MJMLTrainingPipelineEntity | null> {\n return this.persistPipeline(false);\n }\n\n public async saveAndTrain(): Promise<void> {\n const pipeline = await this.persistPipeline(true);\n if (!pipeline) return;\n this.trainRequested.emit(pipeline);\n }\n\n private async persistPipeline(andTrain: boolean): Promise<MJMLTrainingPipelineEntity | null> {\n if (!this.canSave()) {\n this.notifications.CreateSimpleNotification('Please complete required fields before saving.', 'warning', 3000);\n return null;\n }\n\n this.busy = true;\n this.cdr.detectChanges();\n\n try {\n const prov = this.provider ?? Metadata.Provider;\n const p = await prov.GetEntityObject<MJMLTrainingPipelineEntity>('MJ: ML Training Pipelines', this.currentUser ?? undefined);\n p.NewRecord();\n p.Name = this.pipelineName.trim();\n p.Description = this.pipelineDescription.trim();\n p.Version = 1;\n p.Status = 'Draft';\n p.TargetEntityID = this.selectedEntityId;\n p.TargetVariable = this.targetVariable;\n p.ProblemType = this.problemType;\n p.AlgorithmID = this.selectedAlgorithmId;\n\n // Source Bindings\n const sourceBindings: SourceBinding[] = [\n {\n Kind: 'Entity',\n Ref: this.selectedEntity?.Name ?? this.selectedEntityId,\n Alias: 'src_primary',\n },\n ];\n p.SourceBindings = JSON.stringify(sourceBindings);\n\n // Feature Steps\n const selectedColumns = this.fieldItems\n .filter((i) => i.selected && !i.isDenyList && !i.isTarget)\n .map((i) => i.field.Name);\n\n const steps: FeatureStep[] = [\n {\n Id: 'step_select',\n Kind: 'select',\n Label: 'Select Features',\n Inputs: ['src_primary'],\n Columns: selectedColumns,\n },\n ];\n\n if (this.categoricalEncoding === 'onehot') {\n const catCols = this.fieldItems\n .filter((i) => i.selected && !i.isDenyList && !i.isTarget)\n .filter((i) => {\n const t = i.field.Type?.toLowerCase() ?? '';\n return t.includes('char') || t.includes('text') || t.includes('string');\n })\n .map((i) => i.field.Name);\n\n for (const c of catCols) {\n steps.push({\n Id: `step_onehot_${c}`,\n Kind: 'onehot',\n Label: `One-Hot ${c}`,\n Inputs: ['step_select'],\n Column: c,\n });\n }\n }\n\n if (this.standardizeStrategy !== 'none') {\n const numCols = this.fieldItems\n .filter((i) => i.selected && !i.isDenyList && !i.isTarget)\n .filter((i) => {\n const t = i.field.Type?.toLowerCase() ?? '';\n return (\n t.includes('int') ||\n t.includes('decimal') ||\n t.includes('float') ||\n t.includes('money') ||\n t.includes('numeric')\n );\n })\n .map((i) => i.field.Name);\n\n if (numCols.length > 0) {\n steps.push({\n Id: 'step_standardize',\n Kind: 'standardize',\n Label: 'Standardize Numerics',\n Inputs: ['step_select'],\n Columns: numCols,\n });\n }\n }\n\n p.FeatureSteps = JSON.stringify({ Steps: steps });\n\n // As-Of Strategy\n const asOf: AsOfStrategy = {\n Mode: this.asOfMode,\n ...(this.asOfMode === 'column' ? { Column: this.asOfColumn } : {}),\n ...(this.asOfMode === 'offset' ? { OffsetDays: this.asOfOffsetDays } : {}),\n };\n p.AsOfStrategy = JSON.stringify(asOf);\n\n // Leakage Guard\n const denyList = this.fieldItems.filter((i) => i.isDenyList).map((i) => i.field.Name);\n const leakageGuard: LeakageGuard = {\n DenyFields: denyList,\n SingleFeatureDominanceThreshold: this.dominanceThreshold,\n };\n p.LeakageGuard = JSON.stringify(leakageGuard);\n\n // Validation Strategy\n const valStrategy: ValidationStrategy = {\n Strategy: this.validationStrategyType,\n LockedHoldoutFraction: 0.15,\n ...(this.validationStrategyType === 'train_test_split' ? { TestSize: this.testSplitRatio } : {}),\n ...(this.validationStrategyType === 'kfold' ? { K: this.kFolds } : {}),\n };\n p.ValidationStrategy = JSON.stringify(valStrategy);\n\n if (!(await p.Save())) {\n throw new Error(p.LatestResult?.CompleteMessage ?? 'Failed to save pipeline record.');\n }\n\n this.notifications.CreateSimpleNotification(\n `Training pipeline '${p.Name}' saved successfully.`,\n 'success',\n 3000\n );\n this.saved.emit(p);\n return p;\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.notifications.CreateSimpleNotification(`Error saving pipeline: ${msg}`, 'error', 5000);\n return null;\n } finally {\n this.busy = false;\n this.cdr.detectChanges();\n }\n }\n\n private initFromDefaults(): void {\n // If initial algorithm requested (e.g. from Catalog)\n if (this.initialAlgorithmId) {\n this.selectedAlgorithmId = this.initialAlgorithmId;\n } else if (this.initialAlgorithmName && (this.engine?.Algorithms.length ?? 0) > 0) {\n const match = this.engine!.Algorithms.find(\n (a) =>\n a.Name.toLowerCase() === this.initialAlgorithmName!.toLowerCase() ||\n a.DriverClass?.toLowerCase() === this.initialAlgorithmName!.toLowerCase()\n );\n if (match) this.selectedAlgorithmId = match.ID;\n } else if ((this.engine?.Algorithms.length ?? 0) > 0) {\n this.selectedAlgorithmId = this.engine!.Algorithms[0].ID;\n }\n\n // If cloning from existing pipeline\n if (this.cloneFromPipeline) {\n const cp = this.cloneFromPipeline;\n this.isEditing = false; // clone creates new\n this.pipelineName = `${cp.Name} (Copy)`;\n this.pipelineDescription = cp.Description || '';\n this.selectedEntityId = cp.TargetEntityID;\n this.targetVariable = cp.TargetVariable;\n this.problemType = (cp.ProblemType as ProblemType) || 'classification';\n if (cp.AlgorithmID) this.selectedAlgorithmId = cp.AlgorithmID;\n\n this.populateFieldItems();\n\n // Read leakage guard\n try {\n if (cp.LeakageGuard) {\n const lg = JSON.parse(cp.LeakageGuard) as Record<string, unknown>;\n const deny = (lg['DenyFields'] ?? lg['DenyList']) as string[] | undefined;\n if (Array.isArray(deny)) {\n const denySet = new Set(deny.map((d) => d.toLowerCase()));\n for (const item of this.fieldItems) {\n if (denySet.has(item.field.Name.toLowerCase())) {\n item.isDenyList = true;\n item.selected = false;\n }\n }\n }\n if (typeof lg['SingleFeatureDominanceThreshold'] === 'number') {\n this.dominanceThreshold = lg['SingleFeatureDominanceThreshold'];\n }\n }\n } catch {\n // Ignore\n }\n }\n }\n\n private populateFieldItems(): void {\n if (!this.selectedEntity) {\n this.fieldItems = [];\n return;\n }\n const targetLower = (this.targetVariable || '').toLowerCase();\n this.fieldItems = this.selectedEntity.Fields.map((f) => {\n const nameLower = f.Name.toLowerCase();\n const isTarget = Boolean(targetLower && nameLower === targetLower);\n const isSystem =\n nameLower === 'id' ||\n nameLower.startsWith('__mj') ||\n nameLower.includes('created') ||\n nameLower.includes('updated');\n return {\n field: f,\n selected: !isTarget && !isSystem,\n isDenyList: false,\n isTarget,\n };\n });\n }\n}\n"]}
@@ -1,7 +1,8 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { IMetadataProvider, UserInfo } from '@memberjunction/core';
3
- import { MJMLTrainingPipelineEntity } from '@memberjunction/core-entities';
3
+ import { MJMLTrainingPipelineEntity, MJMLModelEntity } from '@memberjunction/core-entities';
4
4
  import { type SourceBinding, type FeatureStep, type FeatureStepKind, type AsOfStrategy, type LeakageGuard, type ValidationStrategy, type ProblemType } from '@memberjunction/predictive-studio-core';
5
+ import { PSPanelKey } from '../predictive-studio.types';
5
6
  import { PredictiveStudioEngine } from '../engine/predictive-studio.engine';
6
7
  import * as i0 from "@angular/core";
7
8
  type NodeType = 'src' | 'feat' | 'emb' | 'target' | 'algo' | 'output';
@@ -24,23 +25,21 @@ interface DagEdge {
24
25
  from: string;
25
26
  to: string;
26
27
  }
27
- /**
28
- * Training Pipelines panel — a LIVE, **editable** visual DAG builder over `MJ: ML Training Pipelines`.
29
- * The whole graph is persisted as JSON (`SourceBindings` + `FeatureSteps` + `AlgorithmID` +
30
- * `TargetVariable` + `AsOfStrategy`/`LeakageGuard`/`ValidationStrategy`), so the editor reads/writes the
31
- * REAL spec. The parsed spec is the editable state; nodes/edges are derived from it for rendering, so an
32
- * edit → re-derive → re-layout. Save serializes back to the entity; Train runs the pipeline. Editing is
33
- * inspector-driven (explicit controls, no fiddly port-dragging) — better for a structured, persisted DAG.
34
- * Fully entity-agnostic — every node derives from the pipeline's own refs. See
35
- * plans/predictive-studio-pipeline-builder.md.
36
- */
37
- export declare class PSPipelinesComponent implements OnInit {
28
+ export declare class PSPipelinesComponent implements OnInit, OnChanges {
38
29
  engine: PredictiveStudioEngine;
39
30
  provider: IMetadataProvider | null;
40
31
  currentUser: UserInfo | null;
41
32
  askAgent: EventEmitter<string>;
33
+ navigate: EventEmitter<PSPanelKey>;
42
34
  private cdr;
43
35
  private notifications;
36
+ private navigationService;
37
+ isCatalogCollapsed: boolean;
38
+ catalogSizePct: number;
39
+ workspaceSizePct: number;
40
+ isInspectorCollapsed: boolean;
41
+ canvasSizePct: number;
42
+ inspectorSizePct: number;
44
43
  readonly starterPrompt: string;
45
44
  readonly sourceKinds: ("Entity" | "Query" | "ExternalEntity" | "VectorSet" | "FeaturePipeline")[];
46
45
  readonly stepKinds: FeatureStepKind[];
@@ -48,8 +47,23 @@ export declare class PSPipelinesComponent implements OnInit {
48
47
  readonly imputeStrategies: ("mode" | "mean" | "median" | "constant")[];
49
48
  pipelines: MJMLTrainingPipelineEntity[];
50
49
  selectedPipelineId: string;
51
- private editSources;
52
- private editSteps;
50
+ showWizard: boolean;
51
+ wizardClonePipeline: MJMLTrainingPipelineEntity | null;
52
+ initialWizardAlgorithmId?: string;
53
+ viewMode: 'stages' | 'graph' | 'dag';
54
+ searchQuery: string;
55
+ activeFilter: string;
56
+ readonly NODE_W = 230;
57
+ readonly NODE_H = 96;
58
+ Math: Math;
59
+ zoomLevel: number;
60
+ openWizard(algoId?: string): void;
61
+ cloneSelected(): void;
62
+ closeWizard(): void;
63
+ onWizardSaved(pipeline: MJMLTrainingPipelineEntity): Promise<void>;
64
+ onWizardTrainRequested(pipeline: MJMLTrainingPipelineEntity): Promise<void>;
65
+ editSources: SourceBinding[];
66
+ editSteps: FeatureStep[];
53
67
  editTargetVariable: string;
54
68
  editProblemType: ProblemType;
55
69
  editAlgorithmId: string;
@@ -66,9 +80,42 @@ export declare class PSPipelinesComponent implements OnInit {
66
80
  busy: boolean;
67
81
  private nodeById;
68
82
  private stepSeq;
83
+ ngOnChanges(_changes?: SimpleChanges): void;
69
84
  ngOnInit(): void;
85
+ onSplitDragEnd(sizes: readonly (number | '*')[]): void;
86
+ toggleCatalog(): void;
87
+ onInspectorSplitDragEnd(sizes: readonly (number | '*')[]): void;
88
+ toggleInspector(): void;
89
+ private saveLayoutPrefs;
90
+ openModelRecord(modelId: string): void;
91
+ viewTrainingRuns(modelId?: string): void;
92
+ refreshFromEngine(): void;
93
+ get isGraphView(): boolean;
94
+ toggleViewMode(): void;
95
+ zoomIn(): void;
96
+ zoomOut(): void;
97
+ resetZoom(): void;
98
+ inputVal(e: Event): string;
99
+ isEdgeActive(edge: DagEdge): boolean;
100
+ setFilter(f: string): void;
101
+ onSearchInput(ev: Event): void;
102
+ get filteredPipelines(): MJMLTrainingPipelineEntity[];
103
+ pipelineDomain(p?: MJMLTrainingPipelineEntity): string;
104
+ targetEntityName(p?: MJMLTrainingPipelineEntity): string;
105
+ get pipelineModels(): MJMLModelEntity[];
106
+ get publishedModel(): MJMLModelEntity | undefined;
107
+ selectedModelVersionId: string | null;
108
+ get inspectedModel(): MJMLModelEntity | undefined;
109
+ selectModelVersion(id: string): void;
110
+ bestMetricForPipeline(p?: MJMLTrainingPipelineEntity): string | null;
111
+ selectStep(id: string): void;
112
+ getStepColumns(step: FeatureStep): string[];
113
+ getStepInputs(step: FeatureStep): string[];
114
+ formatHoldout(m: MJMLModelEntity): string;
115
+ get asOfLabel(): string;
116
+ get selectedAlgorithmName(): string;
70
117
  selectPipeline(id: string): void;
71
- private get selectedPipeline();
118
+ get selectedPipeline(): MJMLTrainingPipelineEntity | undefined;
72
119
  isSelectedPipeline(p: MJMLTrainingPipelineEntity): boolean;
73
120
  private parse;
74
121
  private markDirty;
@@ -91,29 +138,19 @@ export declare class PSPipelinesComponent implements OnInit {
91
138
  setSourceAlias(alias: string): void;
92
139
  get columnsText(): string;
93
140
  setColumns(text: string): void;
94
- /** Read an arbitrary field off the selected step for display (narrowed by template @switch). */
95
141
  stepField(field: string): string;
96
142
  setStepStr(field: string, value: string): void;
97
143
  setStepNum(field: string, value: string): void;
98
144
  setStepLabel(label: string): void;
99
- /** Change a step's Kind, resetting its config to that Kind's defaults (preserving Id/Label/Inputs). */
100
145
  setStepKind(kind: string): void;
101
146
  hasInput(stepId: string): boolean;
102
- /** Toggle an upstream step input, preventing cycles. */
103
147
  toggleInput(stepId: string): void;
104
- /** True if making `target` depend on `from` would create a cycle (from is downstream of target). */
105
148
  private createsCycle;
106
149
  setTargetVariable(v: string): void;
107
150
  setProblemType(v: string): void;
108
151
  setAlgorithm(id: string): void;
109
152
  setHyperparams(v: string): void;
110
153
  get denyText(): string;
111
- /**
112
- * Parse the deny-field input. Uses the shared `parseDenyList` so a pasted
113
- * bracketed list ("[CheckInTime, Status]") yields clean column names rather than
114
- * "[CheckInTime" / "Status]" — entries which match no column and therefore leave
115
- * the most dangerous columns silently unguarded. The server re-validates on save.
116
- */
117
154
  setDeny(text: string): void;
118
155
  setThreshold(v: string): void;
119
156
  setAsOfMode(v: string): void;
@@ -127,21 +164,16 @@ export declare class PSPipelinesComponent implements OnInit {
127
164
  addStep(): void;
128
165
  deleteSelected(): void;
129
166
  private defaultStep;
130
- /** Serialize the editable state back onto the pipeline entity and Save(). */
131
167
  save(): Promise<void>;
132
- /** Client-side spec sanity check before training. */
133
168
  validate(): void;
134
- /** Run the pipeline via the Train Remote Op, then refresh the engine. */
135
169
  train(): Promise<void>;
136
170
  refine(): void;
137
- statusClass(status: string | null): string;
171
+ statusClass(status: string): string;
138
172
  nodeTypeLabel(type: NodeType): string;
139
- private layoutDag;
140
- private computeLayers;
141
- private positionColumns;
173
+ private layoutGraph;
142
174
  edgePath(edge: DagEdge): string;
143
175
  static ɵfac: i0.ɵɵFactoryDeclaration<PSPipelinesComponent, never>;
144
- static ɵcmp: i0.ɵɵComponentDeclaration<PSPipelinesComponent, "ps-pipelines", never, { "engine": { "alias": "engine"; "required": false; }; "provider": { "alias": "provider"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; }, { "askAgent": "askAgent"; }, never, never, true, never>;
176
+ static ɵcmp: i0.ɵɵComponentDeclaration<PSPipelinesComponent, "ps-pipelines", never, { "engine": { "alias": "engine"; "required": false; }; "provider": { "alias": "provider"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, { "askAgent": "askAgent"; "navigate": "navigate"; }, never, never, true, never>;
145
177
  }
146
178
  export {};
147
179
  //# sourceMappingURL=ps-pipelines.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ps-pipelines.component.d.ts","sourceRoot":"","sources":["../../../src/PredictiveStudio/components/ps-pipelines.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ps-pipelines.component.d.ts","sourceRoot":"","sources":["../../../src/PredictiveStudio/components/ps-pipelines.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,YAAY,EAAS,SAAS,EAAE,MAAM,EAAU,aAAa,EAA6B,MAAM,eAAe,CAAC;AAKvJ,OAAO,EAAgB,iBAAiB,EAAY,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAuD,MAAM,+BAA+B,CAAC;AAIjJ,OAAO,EAGL,KAAK,aAAa,EAElB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;;AAE5E,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAsCD,qBAosBa,oBAAqB,YAAW,MAAM,EAAE,SAAS;IACnD,MAAM,EAAG,sBAAsB,CAAC;IAChC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAC1C,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEnC,QAAQ,uBAA8B;IACtC,QAAQ,2BAAkC;IAEpD,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,iBAAiB,CAA6B;IAE/C,kBAAkB,UAAS;IAC3B,cAAc,SAAM;IACpB,gBAAgB,SAAM;IACtB,oBAAoB,UAAS;IAC7B,aAAa,SAAM;IACnB,gBAAgB,SAAM;IAE7B,SAAgB,aAAa,SAA+B;IAC5D,SAAgB,WAAW,8EAAgB;IAC3C,SAAgB,SAAS,oBAAc;IACvC,SAAgB,YAAY,gBAAiB;IAC7C,SAAgB,gBAAgB,8CAAqB;IAE9C,SAAS,EAAE,0BAA0B,EAAE,CAAM;IAC7C,kBAAkB,SAAM;IAExB,UAAU,UAAS;IACnB,mBAAmB,EAAE,0BAA0B,GAAG,IAAI,CAAQ;IAC9D,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAY;IACzD,WAAW,SAAM;IACjB,YAAY,SAAS;IAE5B,SAAgB,MAAM,OAAU;IAChC,SAAgB,MAAM,MAAU;IACzB,IAAI,OAAQ;IACZ,SAAS,SAAK;IAEd,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMjC,aAAa,IAAI,IAAI;IAOrB,WAAW,IAAI,IAAI;IAMb,aAAa,CAAC,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE,sBAAsB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IASjF,WAAW,EAAE,aAAa,EAAE,CAAM;IAClC,SAAS,EAAE,WAAW,EAAE,CAAM;IAC9B,kBAAkB,SAAM;IACxB,eAAe,EAAE,WAAW,CAAoB;IAChD,eAAe,SAAM;IACrB,eAAe,SAAQ;IACvB,WAAW,EAAE,YAAY,CAAoF;IAC7G,QAAQ,EAAE,YAAY,CAAoB;IAC1C,cAAc,EAAE,kBAAkB,CAAgF;IAElH,KAAK,EAAE,OAAO,EAAE,CAAM;IACtB,KAAK,EAAE,OAAO,EAAE,CAAM;IACtB,UAAU,SAAM;IAChB,OAAO,SAAO;IACd,OAAO,SAAO;IACd,KAAK,UAAS;IACd,IAAI,UAAS;IAEpB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,OAAO,CAAK;IAEb,WAAW,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI;IAIlD,QAAQ,IAAI,IAAI;IAwBT,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI;IAQtD,aAAa,IAAI,IAAI;IAMrB,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI;IAQ/D,eAAe,IAAI,IAAI;IAM9B,OAAO,CAAC,eAAe;IAWhB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IActC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IA0BxC,iBAAiB,IAAI,IAAI;IAWhC,IAAW,WAAW,IAAI,OAAO,CAEhC;IAEM,cAAc,IAAI,IAAI;IAItB,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,IAAI;IAIjB,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;IAI1B,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAIpC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1B,aAAa,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI;IAIrC,IAAW,iBAAiB,IAAI,0BAA0B,EAAE,CAa3D;IAEM,cAAc,CAAC,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM;IAQtD,gBAAgB,CAAC,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM;IAK/D,IAAW,cAAc,IAAI,eAAe,EAAE,CAG7C;IAED,IAAW,cAAc,IAAI,eAAe,GAAG,SAAS,CAEvD;IAEM,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpD,IAAW,cAAc,IAAI,eAAe,GAAG,SAAS,CAMvD;IAEM,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKpC,qBAAqB,CAAC,CAAC,CAAC,EAAE,0BAA0B,GAAG,MAAM,GAAG,IAAI;IAQpE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE;IAc3C,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE;IAI1C,aAAa,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;IAchD,IAAW,SAAS,IAAI,MAAM,CAI7B;IAED,IAAW,qBAAqB,IAAI,MAAM,CAEzC;IAEM,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAsCvC,IAAW,gBAAgB,IAAI,0BAA0B,GAAG,SAAS,CAEpE;IAEM,kBAAkB,CAAC,CAAC,EAAE,0BAA0B,GAAG,OAAO;IAIjE,OAAO,CAAC,KAAK;IAYb,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,OAAO;IAkFf,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,SAAS;IAWV,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAInC,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IACD,IAAW,cAAc,IAAI,aAAa,GAAG,IAAI,CAGhD;IACD,IAAW,YAAY,IAAI,WAAW,GAAG,IAAI,CAE5C;IACD,IAAW,UAAU,IAAI,WAAW,EAAE,CAErC;IACD,IAAW,UAAU,kEAEpB;IAIM,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IACjC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1C,IAAW,WAAW,IAAI,MAAM,CAM/B;IACM,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKhC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAEjC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAGjC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAgBxC,OAAO,CAAC,YAAY;IAoBb,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAClC,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC/B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAC9B,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAItC,IAAW,QAAQ,IAAI,MAAM,CAAmD;IACzE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC3B,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC7B,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC5B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC9B,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC9B,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC/B,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAC5B,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IACrB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3B,SAAS,IAAI,IAAI;IAKjB,OAAO,IAAI,IAAI;IAMf,cAAc,IAAI,IAAI;IAqB7B,OAAO,CAAC,WAAW;IAiBN,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,QAAQ,IAAI,IAAI;IAuBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B,MAAM,IAAI,IAAI;IAUd,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQnC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAa5C,OAAO,CAAC,WAAW;IAgFZ,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;yCAh+B3B,oBAAoB;2CAApB,oBAAoB;CA8+BhC"}