@memberjunction/ng-dashboards 5.46.0 → 5.48.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/DataExplorer/data-explorer-dashboard.component.d.ts +15 -4
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +45 -35
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +7 -0
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.d.ts +4 -0
- package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +39 -30
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +14 -12
- 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 +6 -1
- package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
- package/dist/Lists/services/list-set-operations.service.d.ts +11 -0
- package/dist/Lists/services/list-set-operations.service.d.ts.map +1 -1
- package/dist/Lists/services/list-set-operations.service.js +27 -2
- package/dist/Lists/services/list-set-operations.service.js.map +1 -1
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +33 -0
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +69 -2
- package/dist/PredictiveStudio/at-risk.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-catalog.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-catalog.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-compare.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-compare.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-home.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-home.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-operate-dialog.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-operate-dialog.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +306 -297
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-production.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-production.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-registry.component.d.ts +1 -1
- package/dist/PredictiveStudio/components/ps-registry.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-registry.component.js +15 -9
- package/dist/PredictiveStudio/components/ps-registry.component.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +115 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js +119 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -0
- package/dist/PredictiveStudio/predictive-studio-copilot.view-models.d.ts +36 -0
- package/dist/PredictiveStudio/predictive-studio-copilot.view-models.d.ts.map +1 -0
- package/dist/PredictiveStudio/predictive-studio-copilot.view-models.js +52 -0
- package/dist/PredictiveStudio/predictive-studio-copilot.view-models.js.map +1 -0
- package/dist/PredictiveStudio/resources/ps-models-resource.component.d.ts +9 -1
- package/dist/PredictiveStudio/resources/ps-models-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-models-resource.component.js +133 -56
- package/dist/PredictiveStudio/resources/ps-models-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +50 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +591 -165
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-resource-base.d.ts +17 -0
- package/dist/PredictiveStudio/resources/ps-resource-base.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-resource-base.js +27 -1
- package/dist/PredictiveStudio/resources/ps-resource-base.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.d.ts +11 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +199 -99
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/package.json +59 -59
|
@@ -30,31 +30,34 @@ function PSPipelinesComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
30
30
|
} }
|
|
31
31
|
function PSPipelinesComponent_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
32
32
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
33
|
-
i0.ɵɵelementStart(0, "button",
|
|
33
|
+
i0.ɵɵelementStart(0, "button", 63);
|
|
34
34
|
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_For_2_Template_button_click_0_listener() { const p_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectPipeline(p_r5.ID)); });
|
|
35
35
|
i0.ɵɵelement(1, "i", 3);
|
|
36
|
-
i0.ɵɵ
|
|
37
|
-
i0.ɵɵ
|
|
38
|
-
i0.ɵɵ
|
|
36
|
+
i0.ɵɵelementStart(2, "span", 64);
|
|
37
|
+
i0.ɵɵtext(3);
|
|
38
|
+
i0.ɵɵelementEnd();
|
|
39
|
+
i0.ɵɵelementStart(4, "span", 65);
|
|
40
|
+
i0.ɵɵtext(5);
|
|
39
41
|
i0.ɵɵelementEnd()();
|
|
40
42
|
} if (rf & 2) {
|
|
41
43
|
const p_r5 = ctx.$implicit;
|
|
42
44
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
43
45
|
i0.ɵɵclassProp("on", ctx_r1.isSelectedPipeline(p_r5));
|
|
44
|
-
i0.ɵɵ
|
|
45
|
-
i0.ɵɵ
|
|
46
|
+
i0.ɵɵproperty("title", p_r5.Name);
|
|
47
|
+
i0.ɵɵadvance(3);
|
|
48
|
+
i0.ɵɵtextInterpolate(p_r5.Name);
|
|
46
49
|
i0.ɵɵadvance();
|
|
47
50
|
i0.ɵɵclassMap(ctx_r1.statusClass(p_r5.Status));
|
|
48
51
|
i0.ɵɵadvance();
|
|
49
52
|
i0.ɵɵtextInterpolate(p_r5.Status);
|
|
50
53
|
} }
|
|
51
|
-
function
|
|
52
|
-
i0.ɵɵelementStart(0, "span",
|
|
53
|
-
i0.ɵɵelement(1, "i",
|
|
54
|
+
function PSPipelinesComponent_Conditional_2_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementStart(0, "span", 18);
|
|
56
|
+
i0.ɵɵelement(1, "i", 66);
|
|
54
57
|
i0.ɵɵtext(2, " Unsaved");
|
|
55
58
|
i0.ɵɵelementEnd();
|
|
56
59
|
} }
|
|
57
|
-
function
|
|
60
|
+
function PSPipelinesComponent_Conditional_2_For_36_Template(rf, ctx) { if (rf & 1) {
|
|
58
61
|
i0.ɵɵnamespaceSVG();
|
|
59
62
|
i0.ɵɵelement(0, "path");
|
|
60
63
|
} if (rf & 2) {
|
|
@@ -62,8 +65,8 @@ function PSPipelinesComponent_Conditional_2_For_35_Template(rf, ctx) { if (rf &
|
|
|
62
65
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
63
66
|
i0.ɵɵattribute("d", ctx_r1.edgePath(edge_r6));
|
|
64
67
|
} }
|
|
65
|
-
function
|
|
66
|
-
i0.ɵɵelementStart(0, "span",
|
|
68
|
+
function PSPipelinesComponent_Conditional_2_For_38_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵelementStart(0, "span", 69);
|
|
67
70
|
i0.ɵɵtext(1);
|
|
68
71
|
i0.ɵɵelementEnd();
|
|
69
72
|
} if (rf & 2) {
|
|
@@ -71,8 +74,8 @@ function PSPipelinesComponent_Conditional_2_For_37_Conditional_5_Template(rf, ct
|
|
|
71
74
|
i0.ɵɵadvance();
|
|
72
75
|
i0.ɵɵtextInterpolate(node_r8.tag);
|
|
73
76
|
} }
|
|
74
|
-
function
|
|
75
|
-
i0.ɵɵelementStart(0, "div",
|
|
77
|
+
function PSPipelinesComponent_Conditional_2_For_38_For_8_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
+
i0.ɵɵelementStart(0, "div", 71)(1, "span", 74);
|
|
76
79
|
i0.ɵɵtext(2);
|
|
77
80
|
i0.ɵɵelementEnd();
|
|
78
81
|
i0.ɵɵelementStart(3, "span");
|
|
@@ -85,28 +88,28 @@ function PSPipelinesComponent_Conditional_2_For_37_For_8_Template(rf, ctx) { if
|
|
|
85
88
|
i0.ɵɵadvance(2);
|
|
86
89
|
i0.ɵɵtextInterpolate(row_r9.v);
|
|
87
90
|
} }
|
|
88
|
-
function
|
|
89
|
-
i0.ɵɵelement(0, "span",
|
|
91
|
+
function PSPipelinesComponent_Conditional_2_For_38_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
92
|
+
i0.ɵɵelement(0, "span", 72);
|
|
90
93
|
} }
|
|
91
|
-
function
|
|
92
|
-
i0.ɵɵelement(0, "span",
|
|
94
|
+
function PSPipelinesComponent_Conditional_2_For_38_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelement(0, "span", 73);
|
|
93
96
|
} }
|
|
94
|
-
function
|
|
97
|
+
function PSPipelinesComponent_Conditional_2_For_38_Template(rf, ctx) { if (rf & 1) {
|
|
95
98
|
const _r7 = i0.ɵɵgetCurrentView();
|
|
96
|
-
i0.ɵɵelementStart(0, "div",
|
|
97
|
-
i0.ɵɵlistener("click", function
|
|
98
|
-
i0.ɵɵelementStart(1, "div",
|
|
99
|
-
i0.ɵɵelement(2, "i",
|
|
99
|
+
i0.ɵɵelementStart(0, "div", 67);
|
|
100
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_For_38_Template_div_click_0_listener() { const node_r8 = i0.ɵɵrestoreView(_r7).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.selectNode(node_r8.id)); });
|
|
101
|
+
i0.ɵɵelementStart(1, "div", 68);
|
|
102
|
+
i0.ɵɵelement(2, "i", 42);
|
|
100
103
|
i0.ɵɵelementStart(3, "span");
|
|
101
104
|
i0.ɵɵtext(4);
|
|
102
105
|
i0.ɵɵelementEnd();
|
|
103
|
-
i0.ɵɵconditionalCreate(5,
|
|
106
|
+
i0.ɵɵconditionalCreate(5, PSPipelinesComponent_Conditional_2_For_38_Conditional_5_Template, 2, 1, "span", 69);
|
|
104
107
|
i0.ɵɵelementEnd();
|
|
105
|
-
i0.ɵɵelementStart(6, "div",
|
|
106
|
-
i0.ɵɵrepeaterCreate(7,
|
|
108
|
+
i0.ɵɵelementStart(6, "div", 70);
|
|
109
|
+
i0.ɵɵrepeaterCreate(7, PSPipelinesComponent_Conditional_2_For_38_For_8_Template, 5, 2, "div", 71, _forTrack3);
|
|
107
110
|
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵconditionalCreate(9,
|
|
109
|
-
i0.ɵɵconditionalCreate(10,
|
|
111
|
+
i0.ɵɵconditionalCreate(9, PSPipelinesComponent_Conditional_2_For_38_Conditional_9_Template, 1, 0, "span", 72);
|
|
112
|
+
i0.ɵɵconditionalCreate(10, PSPipelinesComponent_Conditional_2_For_38_Conditional_10_Template, 1, 0, "span", 73);
|
|
110
113
|
i0.ɵɵelementEnd();
|
|
111
114
|
} if (rf & 2) {
|
|
112
115
|
const node_r8 = ctx.$implicit;
|
|
@@ -128,15 +131,15 @@ function PSPipelinesComponent_Conditional_2_For_37_Template(rf, ctx) { if (rf &
|
|
|
128
131
|
i0.ɵɵadvance();
|
|
129
132
|
i0.ɵɵconditional(node_r8.hasOut ? 10 : -1);
|
|
130
133
|
} }
|
|
131
|
-
function
|
|
134
|
+
function PSPipelinesComponent_Conditional_2_Conditional_65_Template(rf, ctx) { if (rf & 1) {
|
|
132
135
|
const _r10 = i0.ɵɵgetCurrentView();
|
|
133
|
-
i0.ɵɵelementStart(0, "button",
|
|
134
|
-
i0.ɵɵlistener("click", function
|
|
135
|
-
i0.ɵɵelement(1, "i",
|
|
136
|
+
i0.ɵɵelementStart(0, "button", 75);
|
|
137
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Conditional_65_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.deleteSelected()); });
|
|
138
|
+
i0.ɵɵelement(1, "i", 76);
|
|
136
139
|
i0.ɵɵelementEnd();
|
|
137
140
|
} }
|
|
138
|
-
function
|
|
139
|
-
i0.ɵɵelementStart(0, "option",
|
|
141
|
+
function PSPipelinesComponent_Conditional_2_Conditional_67_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
142
|
+
i0.ɵɵelementStart(0, "option", 77);
|
|
140
143
|
i0.ɵɵtext(1);
|
|
141
144
|
i0.ɵɵelementEnd();
|
|
142
145
|
} if (rf & 2) {
|
|
@@ -145,26 +148,26 @@ function PSPipelinesComponent_Conditional_2_Conditional_66_For_5_Template(rf, ct
|
|
|
145
148
|
i0.ɵɵadvance();
|
|
146
149
|
i0.ɵɵtextInterpolate(k_r12);
|
|
147
150
|
} }
|
|
148
|
-
function
|
|
151
|
+
function PSPipelinesComponent_Conditional_2_Conditional_67_Template(rf, ctx) { if (rf & 1) {
|
|
149
152
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
150
|
-
i0.ɵɵelementStart(0, "div",
|
|
153
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
151
154
|
i0.ɵɵtext(2, "Kind");
|
|
152
155
|
i0.ɵɵelementEnd();
|
|
153
|
-
i0.ɵɵelementStart(3, "select",
|
|
154
|
-
i0.ɵɵlistener("change", function
|
|
155
|
-
i0.ɵɵrepeaterCreate(4,
|
|
156
|
+
i0.ɵɵelementStart(3, "select", 54);
|
|
157
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Conditional_67_Template_select_change_3_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setSourceKind($event.target.value)); });
|
|
158
|
+
i0.ɵɵrepeaterCreate(4, PSPipelinesComponent_Conditional_2_Conditional_67_For_5_Template, 2, 2, "option", 77, i0.ɵɵrepeaterTrackByIdentity);
|
|
156
159
|
i0.ɵɵelementEnd()();
|
|
157
|
-
i0.ɵɵelementStart(6, "div",
|
|
160
|
+
i0.ɵɵelementStart(6, "div", 50)(7, "label");
|
|
158
161
|
i0.ɵɵtext(8, "Reference (entity / query / id)");
|
|
159
162
|
i0.ɵɵelementEnd();
|
|
160
|
-
i0.ɵɵelementStart(9, "input",
|
|
161
|
-
i0.ɵɵlistener("input", function
|
|
163
|
+
i0.ɵɵelementStart(9, "input", 51);
|
|
164
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_67_Template_input_input_9_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setSourceRef($event.target.value)); });
|
|
162
165
|
i0.ɵɵelementEnd()();
|
|
163
|
-
i0.ɵɵelementStart(10, "div",
|
|
166
|
+
i0.ɵɵelementStart(10, "div", 50)(11, "label");
|
|
164
167
|
i0.ɵɵtext(12, "Alias (optional)");
|
|
165
168
|
i0.ɵɵelementEnd();
|
|
166
|
-
i0.ɵɵelementStart(13, "input",
|
|
167
|
-
i0.ɵɵlistener("input", function
|
|
169
|
+
i0.ɵɵelementStart(13, "input", 51);
|
|
170
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_67_Template_input_input_13_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setSourceAlias($event.target.value)); });
|
|
168
171
|
i0.ɵɵelementEnd()();
|
|
169
172
|
} if (rf & 2) {
|
|
170
173
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -177,8 +180,8 @@ function PSPipelinesComponent_Conditional_2_Conditional_66_Template(rf, ctx) { i
|
|
|
177
180
|
i0.ɵɵadvance(4);
|
|
178
181
|
i0.ɵɵproperty("value", ctx_r1.selectedSource.Alias || "");
|
|
179
182
|
} }
|
|
180
|
-
function
|
|
181
|
-
i0.ɵɵelementStart(0, "option",
|
|
183
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
184
|
+
i0.ɵɵelementStart(0, "option", 77);
|
|
182
185
|
i0.ɵɵtext(1);
|
|
183
186
|
i0.ɵɵelementEnd();
|
|
184
187
|
} if (rf & 2) {
|
|
@@ -187,34 +190,34 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_For_5_Template(rf, ct
|
|
|
187
190
|
i0.ɵɵadvance();
|
|
188
191
|
i0.ɵɵtextInterpolate(k_r14);
|
|
189
192
|
} }
|
|
190
|
-
function
|
|
193
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_10_Template(rf, ctx) { if (rf & 1) {
|
|
191
194
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
192
|
-
i0.ɵɵelementStart(0, "div",
|
|
195
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
193
196
|
i0.ɵɵtext(2, "Columns (comma-separated)");
|
|
194
197
|
i0.ɵɵelementEnd();
|
|
195
|
-
i0.ɵɵelementStart(3, "input",
|
|
196
|
-
i0.ɵɵlistener("input", function
|
|
198
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
199
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_10_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setColumns($event.target.value)); });
|
|
197
200
|
i0.ɵɵelementEnd()();
|
|
198
201
|
} if (rf & 2) {
|
|
199
202
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
200
203
|
i0.ɵɵadvance(3);
|
|
201
204
|
i0.ɵɵproperty("value", ctx_r1.columnsText);
|
|
202
205
|
} }
|
|
203
|
-
function
|
|
206
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_11_Template(rf, ctx) { if (rf & 1) {
|
|
204
207
|
const _r16 = i0.ɵɵgetCurrentView();
|
|
205
|
-
i0.ɵɵelementStart(0, "div",
|
|
208
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
206
209
|
i0.ɵɵtext(2, "Columns (comma-separated)");
|
|
207
210
|
i0.ɵɵelementEnd();
|
|
208
|
-
i0.ɵɵelementStart(3, "input",
|
|
209
|
-
i0.ɵɵlistener("input", function
|
|
211
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
212
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_11_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setColumns($event.target.value)); });
|
|
210
213
|
i0.ɵɵelementEnd()();
|
|
211
214
|
} if (rf & 2) {
|
|
212
215
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
213
216
|
i0.ɵɵadvance(3);
|
|
214
217
|
i0.ɵɵproperty("value", ctx_r1.columnsText);
|
|
215
218
|
} }
|
|
216
|
-
function
|
|
217
|
-
i0.ɵɵelementStart(0, "option",
|
|
219
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_12_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
220
|
+
i0.ɵɵelementStart(0, "option", 77);
|
|
218
221
|
i0.ɵɵtext(1);
|
|
219
222
|
i0.ɵɵelementEnd();
|
|
220
223
|
} if (rf & 2) {
|
|
@@ -223,20 +226,20 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Case_12_For_9_Templat
|
|
|
223
226
|
i0.ɵɵadvance();
|
|
224
227
|
i0.ɵɵtextInterpolate(s_r18);
|
|
225
228
|
} }
|
|
226
|
-
function
|
|
229
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_12_Template(rf, ctx) { if (rf & 1) {
|
|
227
230
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
228
|
-
i0.ɵɵelementStart(0, "div",
|
|
231
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
229
232
|
i0.ɵɵtext(2, "Column");
|
|
230
233
|
i0.ɵɵelementEnd();
|
|
231
|
-
i0.ɵɵelementStart(3, "input",
|
|
232
|
-
i0.ɵɵlistener("input", function
|
|
234
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
235
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_12_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("Column", $event.target.value)); });
|
|
233
236
|
i0.ɵɵelementEnd()();
|
|
234
|
-
i0.ɵɵelementStart(4, "div",
|
|
237
|
+
i0.ɵɵelementStart(4, "div", 50)(5, "label");
|
|
235
238
|
i0.ɵɵtext(6, "Strategy");
|
|
236
239
|
i0.ɵɵelementEnd();
|
|
237
|
-
i0.ɵɵelementStart(7, "select",
|
|
238
|
-
i0.ɵɵlistener("change", function
|
|
239
|
-
i0.ɵɵrepeaterCreate(8,
|
|
240
|
+
i0.ɵɵelementStart(7, "select", 54);
|
|
241
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_12_Template_select_change_7_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("Strategy", $event.target.value)); });
|
|
242
|
+
i0.ɵɵrepeaterCreate(8, PSPipelinesComponent_Conditional_2_Conditional_68_Case_12_For_9_Template, 2, 2, "option", 77, i0.ɵɵrepeaterTrackByIdentity);
|
|
240
243
|
i0.ɵɵelementEnd()();
|
|
241
244
|
} if (rf & 2) {
|
|
242
245
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -247,32 +250,32 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Case_12_Template(rf,
|
|
|
247
250
|
i0.ɵɵadvance();
|
|
248
251
|
i0.ɵɵrepeater(ctx_r1.imputeStrategies);
|
|
249
252
|
} }
|
|
250
|
-
function
|
|
253
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_13_Template(rf, ctx) { if (rf & 1) {
|
|
251
254
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
252
|
-
i0.ɵɵelementStart(0, "div",
|
|
255
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
253
256
|
i0.ɵɵtext(2, "Column");
|
|
254
257
|
i0.ɵɵelementEnd();
|
|
255
|
-
i0.ɵɵelementStart(3, "input",
|
|
256
|
-
i0.ɵɵlistener("input", function
|
|
258
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
259
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_13_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("Column", $event.target.value)); });
|
|
257
260
|
i0.ɵɵelementEnd()();
|
|
258
261
|
} if (rf & 2) {
|
|
259
262
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
260
263
|
i0.ɵɵadvance(3);
|
|
261
264
|
i0.ɵɵproperty("value", ctx_r1.stepField("Column"));
|
|
262
265
|
} }
|
|
263
|
-
function
|
|
266
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_14_Template(rf, ctx) { if (rf & 1) {
|
|
264
267
|
const _r20 = i0.ɵɵgetCurrentView();
|
|
265
|
-
i0.ɵɵelementStart(0, "div",
|
|
268
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
266
269
|
i0.ɵɵtext(2, "Column");
|
|
267
270
|
i0.ɵɵelementEnd();
|
|
268
|
-
i0.ɵɵelementStart(3, "input",
|
|
269
|
-
i0.ɵɵlistener("input", function
|
|
271
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
272
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_14_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("Column", $event.target.value)); });
|
|
270
273
|
i0.ɵɵelementEnd()();
|
|
271
|
-
i0.ɵɵelementStart(4, "div",
|
|
274
|
+
i0.ɵɵelementStart(4, "div", 50)(5, "label");
|
|
272
275
|
i0.ɵɵtext(6, "Bins");
|
|
273
276
|
i0.ɵɵelementEnd();
|
|
274
|
-
i0.ɵɵelementStart(7, "input",
|
|
275
|
-
i0.ɵɵlistener("input", function
|
|
277
|
+
i0.ɵɵelementStart(7, "input", 78);
|
|
278
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_14_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepNum("Bins", $event.target.value)); });
|
|
276
279
|
i0.ɵɵelementEnd()();
|
|
277
280
|
} if (rf & 2) {
|
|
278
281
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -281,25 +284,25 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Case_14_Template(rf,
|
|
|
281
284
|
i0.ɵɵadvance(4);
|
|
282
285
|
i0.ɵɵproperty("value", ctx_r1.stepField("Bins"));
|
|
283
286
|
} }
|
|
284
|
-
function
|
|
287
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_15_Template(rf, ctx) { if (rf & 1) {
|
|
285
288
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
286
|
-
i0.ɵɵelementStart(0, "div",
|
|
289
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
287
290
|
i0.ɵɵtext(2, "Entity");
|
|
288
291
|
i0.ɵɵelementEnd();
|
|
289
|
-
i0.ɵɵelementStart(3, "input",
|
|
290
|
-
i0.ɵɵlistener("input", function
|
|
292
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
293
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_15_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("Entity", $event.target.value)); });
|
|
291
294
|
i0.ɵɵelementEnd()();
|
|
292
|
-
i0.ɵɵelementStart(4, "div",
|
|
295
|
+
i0.ɵɵelementStart(4, "div", 50)(5, "label");
|
|
293
296
|
i0.ɵɵtext(6, "Embedding model ref");
|
|
294
297
|
i0.ɵɵelementEnd();
|
|
295
|
-
i0.ɵɵelementStart(7, "input",
|
|
296
|
-
i0.ɵɵlistener("input", function
|
|
298
|
+
i0.ɵɵelementStart(7, "input", 51);
|
|
299
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_15_Template_input_input_7_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("EmbeddingModelRef", $event.target.value)); });
|
|
297
300
|
i0.ɵɵelementEnd()();
|
|
298
|
-
i0.ɵɵelementStart(8, "div",
|
|
301
|
+
i0.ɵɵelementStart(8, "div", 50)(9, "label");
|
|
299
302
|
i0.ɵɵtext(10, "Dimensions");
|
|
300
303
|
i0.ɵɵelementEnd();
|
|
301
|
-
i0.ɵɵelementStart(11, "input",
|
|
302
|
-
i0.ɵɵlistener("input", function
|
|
304
|
+
i0.ɵɵelementStart(11, "input", 78);
|
|
305
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_15_Template_input_input_11_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepNum("Dims", $event.target.value)); });
|
|
303
306
|
i0.ɵɵelementEnd()();
|
|
304
307
|
} if (rf & 2) {
|
|
305
308
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
@@ -310,49 +313,49 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Case_15_Template(rf,
|
|
|
310
313
|
i0.ɵɵadvance(4);
|
|
311
314
|
i0.ɵɵproperty("value", ctx_r1.stepField("Dims"));
|
|
312
315
|
} }
|
|
313
|
-
function
|
|
316
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_16_Template(rf, ctx) { if (rf & 1) {
|
|
314
317
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
315
|
-
i0.ɵɵelementStart(0, "div",
|
|
318
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
316
319
|
i0.ɵɵtext(2, "Feature Pipeline ref");
|
|
317
320
|
i0.ɵɵelementEnd();
|
|
318
|
-
i0.ɵɵelementStart(3, "input",
|
|
319
|
-
i0.ɵɵlistener("input", function
|
|
321
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
322
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_16_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("FeaturePipelineRef", $event.target.value)); });
|
|
320
323
|
i0.ɵɵelementEnd()();
|
|
321
324
|
} if (rf & 2) {
|
|
322
325
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
323
326
|
i0.ɵɵadvance(3);
|
|
324
327
|
i0.ɵɵproperty("value", ctx_r1.stepField("FeaturePipelineRef"));
|
|
325
328
|
} }
|
|
326
|
-
function
|
|
329
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_17_Template(rf, ctx) { if (rf & 1) {
|
|
327
330
|
const _r23 = i0.ɵɵgetCurrentView();
|
|
328
|
-
i0.ɵɵelementStart(0, "div",
|
|
331
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
329
332
|
i0.ɵɵtext(2, "Flow Agent ref");
|
|
330
333
|
i0.ɵɵelementEnd();
|
|
331
|
-
i0.ɵɵelementStart(3, "input",
|
|
332
|
-
i0.ɵɵlistener("input", function
|
|
334
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
335
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_17_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("FlowAgentRef", $event.target.value)); });
|
|
333
336
|
i0.ɵɵelementEnd()();
|
|
334
337
|
} if (rf & 2) {
|
|
335
338
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
336
339
|
i0.ɵɵadvance(3);
|
|
337
340
|
i0.ɵɵproperty("value", ctx_r1.stepField("FlowAgentRef"));
|
|
338
341
|
} }
|
|
339
|
-
function
|
|
342
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Case_18_Template(rf, ctx) { if (rf & 1) {
|
|
340
343
|
const _r24 = i0.ɵɵgetCurrentView();
|
|
341
|
-
i0.ɵɵelementStart(0, "div",
|
|
344
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
342
345
|
i0.ɵɵtext(2, "Image column");
|
|
343
346
|
i0.ɵɵelementEnd();
|
|
344
|
-
i0.ɵɵelementStart(3, "input",
|
|
345
|
-
i0.ɵɵlistener("input", function
|
|
347
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
348
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Case_18_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.setStepStr("ImageColumn", $event.target.value)); });
|
|
346
349
|
i0.ɵɵelementEnd()();
|
|
347
350
|
} if (rf & 2) {
|
|
348
351
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
349
352
|
i0.ɵɵadvance(3);
|
|
350
353
|
i0.ɵɵproperty("value", ctx_r1.stepField("ImageColumn"));
|
|
351
354
|
} }
|
|
352
|
-
function
|
|
355
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Conditional_19_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
353
356
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
354
|
-
i0.ɵɵelementStart(0, "label",
|
|
355
|
-
i0.ɵɵlistener("change", function
|
|
357
|
+
i0.ɵɵelementStart(0, "label", 80)(1, "input", 82);
|
|
358
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Conditional_68_Conditional_19_For_5_Template_input_change_1_listener() { const s_r26 = i0.ɵɵrestoreView(_r25).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.toggleInput(s_r26.Id)); });
|
|
356
359
|
i0.ɵɵelementEnd();
|
|
357
360
|
i0.ɵɵtext(2);
|
|
358
361
|
i0.ɵɵelementEnd();
|
|
@@ -364,14 +367,14 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Conditional_19_For_5_
|
|
|
364
367
|
i0.ɵɵadvance();
|
|
365
368
|
i0.ɵɵtextInterpolate1(" ", s_r26.Label || s_r26.Kind);
|
|
366
369
|
} }
|
|
367
|
-
function
|
|
368
|
-
i0.ɵɵelementStart(0, "div",
|
|
370
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
371
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
369
372
|
i0.ɵɵtext(2, "Inputs (upstream steps)");
|
|
370
373
|
i0.ɵɵelementEnd();
|
|
371
|
-
i0.ɵɵelementStart(3, "div",
|
|
372
|
-
i0.ɵɵrepeaterCreate(4,
|
|
374
|
+
i0.ɵɵelementStart(3, "div", 79);
|
|
375
|
+
i0.ɵɵrepeaterCreate(4, PSPipelinesComponent_Conditional_2_Conditional_68_Conditional_19_For_5_Template, 3, 2, "label", 80, _forTrack4);
|
|
373
376
|
i0.ɵɵelementEnd();
|
|
374
|
-
i0.ɵɵelementStart(6, "div",
|
|
377
|
+
i0.ɵɵelementStart(6, "div", 81);
|
|
375
378
|
i0.ɵɵtext(7, "No inputs = a root step fed directly by the sources.");
|
|
376
379
|
i0.ɵɵelementEnd()();
|
|
377
380
|
} if (rf & 2) {
|
|
@@ -379,23 +382,23 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Conditional_19_Templa
|
|
|
379
382
|
i0.ɵɵadvance(4);
|
|
380
383
|
i0.ɵɵrepeater(ctx_r1.otherSteps);
|
|
381
384
|
} }
|
|
382
|
-
function
|
|
385
|
+
function PSPipelinesComponent_Conditional_2_Conditional_68_Template(rf, ctx) { if (rf & 1) {
|
|
383
386
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
384
|
-
i0.ɵɵelementStart(0, "div",
|
|
387
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
385
388
|
i0.ɵɵtext(2, "Kind");
|
|
386
389
|
i0.ɵɵelementEnd();
|
|
387
|
-
i0.ɵɵelementStart(3, "select",
|
|
388
|
-
i0.ɵɵlistener("change", function
|
|
389
|
-
i0.ɵɵrepeaterCreate(4,
|
|
390
|
+
i0.ɵɵelementStart(3, "select", 54);
|
|
391
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Conditional_68_Template_select_change_3_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setStepKind($event.target.value)); });
|
|
392
|
+
i0.ɵɵrepeaterCreate(4, PSPipelinesComponent_Conditional_2_Conditional_68_For_5_Template, 2, 2, "option", 77, i0.ɵɵrepeaterTrackByIdentity);
|
|
390
393
|
i0.ɵɵelementEnd()();
|
|
391
|
-
i0.ɵɵelementStart(6, "div",
|
|
394
|
+
i0.ɵɵelementStart(6, "div", 50)(7, "label");
|
|
392
395
|
i0.ɵɵtext(8, "Label");
|
|
393
396
|
i0.ɵɵelementEnd();
|
|
394
|
-
i0.ɵɵelementStart(9, "input",
|
|
395
|
-
i0.ɵɵlistener("input", function
|
|
397
|
+
i0.ɵɵelementStart(9, "input", 51);
|
|
398
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_68_Template_input_input_9_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setStepLabel($event.target.value)); });
|
|
396
399
|
i0.ɵɵelementEnd()();
|
|
397
|
-
i0.ɵɵconditionalCreate(10,
|
|
398
|
-
i0.ɵɵconditionalCreate(19,
|
|
400
|
+
i0.ɵɵconditionalCreate(10, PSPipelinesComponent_Conditional_2_Conditional_68_Case_10_Template, 4, 1, "div", 50)(11, PSPipelinesComponent_Conditional_2_Conditional_68_Case_11_Template, 4, 1, "div", 50)(12, PSPipelinesComponent_Conditional_2_Conditional_68_Case_12_Template, 10, 2)(13, PSPipelinesComponent_Conditional_2_Conditional_68_Case_13_Template, 4, 1, "div", 50)(14, PSPipelinesComponent_Conditional_2_Conditional_68_Case_14_Template, 8, 2)(15, PSPipelinesComponent_Conditional_2_Conditional_68_Case_15_Template, 12, 3)(16, PSPipelinesComponent_Conditional_2_Conditional_68_Case_16_Template, 4, 1, "div", 50)(17, PSPipelinesComponent_Conditional_2_Conditional_68_Case_17_Template, 4, 1, "div", 50)(18, PSPipelinesComponent_Conditional_2_Conditional_68_Case_18_Template, 4, 1, "div", 50);
|
|
401
|
+
i0.ɵɵconditionalCreate(19, PSPipelinesComponent_Conditional_2_Conditional_68_Conditional_19_Template, 8, 0, "div", 50);
|
|
399
402
|
} if (rf & 2) {
|
|
400
403
|
let tmp_5_0;
|
|
401
404
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -410,8 +413,8 @@ function PSPipelinesComponent_Conditional_2_Conditional_67_Template(rf, ctx) { i
|
|
|
410
413
|
i0.ɵɵadvance(9);
|
|
411
414
|
i0.ɵɵconditional(ctx_r1.otherSteps.length > 0 ? 19 : -1);
|
|
412
415
|
} }
|
|
413
|
-
function
|
|
414
|
-
i0.ɵɵelementStart(0, "option",
|
|
416
|
+
function PSPipelinesComponent_Conditional_2_Conditional_69_For_9_Template(rf, ctx) { if (rf & 1) {
|
|
417
|
+
i0.ɵɵelementStart(0, "option", 77);
|
|
415
418
|
i0.ɵɵtext(1);
|
|
416
419
|
i0.ɵɵelementEnd();
|
|
417
420
|
} if (rf & 2) {
|
|
@@ -420,20 +423,20 @@ function PSPipelinesComponent_Conditional_2_Conditional_68_For_9_Template(rf, ct
|
|
|
420
423
|
i0.ɵɵadvance();
|
|
421
424
|
i0.ɵɵtextInterpolate(pt_r28);
|
|
422
425
|
} }
|
|
423
|
-
function
|
|
426
|
+
function PSPipelinesComponent_Conditional_2_Conditional_69_Template(rf, ctx) { if (rf & 1) {
|
|
424
427
|
const _r27 = i0.ɵɵgetCurrentView();
|
|
425
|
-
i0.ɵɵelementStart(0, "div",
|
|
428
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
426
429
|
i0.ɵɵtext(2, "Target variable");
|
|
427
430
|
i0.ɵɵelementEnd();
|
|
428
|
-
i0.ɵɵelementStart(3, "input",
|
|
429
|
-
i0.ɵɵlistener("input", function
|
|
431
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
432
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_69_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setTargetVariable($event.target.value)); });
|
|
430
433
|
i0.ɵɵelementEnd()();
|
|
431
|
-
i0.ɵɵelementStart(4, "div",
|
|
434
|
+
i0.ɵɵelementStart(4, "div", 50)(5, "label");
|
|
432
435
|
i0.ɵɵtext(6, "Problem type");
|
|
433
436
|
i0.ɵɵelementEnd();
|
|
434
|
-
i0.ɵɵelementStart(7, "select",
|
|
435
|
-
i0.ɵɵlistener("change", function
|
|
436
|
-
i0.ɵɵrepeaterCreate(8,
|
|
437
|
+
i0.ɵɵelementStart(7, "select", 54);
|
|
438
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Conditional_69_Template_select_change_7_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setProblemType($event.target.value)); });
|
|
439
|
+
i0.ɵɵrepeaterCreate(8, PSPipelinesComponent_Conditional_2_Conditional_69_For_9_Template, 2, 2, "option", 77, i0.ɵɵrepeaterTrackByIdentity);
|
|
437
440
|
i0.ɵɵelementEnd()();
|
|
438
441
|
} if (rf & 2) {
|
|
439
442
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -444,8 +447,8 @@ function PSPipelinesComponent_Conditional_2_Conditional_68_Template(rf, ctx) { i
|
|
|
444
447
|
i0.ɵɵadvance();
|
|
445
448
|
i0.ɵɵrepeater(ctx_r1.problemTypes);
|
|
446
449
|
} }
|
|
447
|
-
function
|
|
448
|
-
i0.ɵɵelementStart(0, "option",
|
|
450
|
+
function PSPipelinesComponent_Conditional_2_Conditional_70_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
451
|
+
i0.ɵɵelementStart(0, "option", 77);
|
|
449
452
|
i0.ɵɵtext(1);
|
|
450
453
|
i0.ɵɵelementEnd();
|
|
451
454
|
} if (rf & 2) {
|
|
@@ -454,20 +457,20 @@ function PSPipelinesComponent_Conditional_2_Conditional_69_For_5_Template(rf, ct
|
|
|
454
457
|
i0.ɵɵadvance();
|
|
455
458
|
i0.ɵɵtextInterpolate(a_r30.Name);
|
|
456
459
|
} }
|
|
457
|
-
function
|
|
460
|
+
function PSPipelinesComponent_Conditional_2_Conditional_70_Template(rf, ctx) { if (rf & 1) {
|
|
458
461
|
const _r29 = i0.ɵɵgetCurrentView();
|
|
459
|
-
i0.ɵɵelementStart(0, "div",
|
|
462
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
460
463
|
i0.ɵɵtext(2, "Algorithm");
|
|
461
464
|
i0.ɵɵelementEnd();
|
|
462
|
-
i0.ɵɵelementStart(3, "select",
|
|
463
|
-
i0.ɵɵlistener("change", function
|
|
464
|
-
i0.ɵɵrepeaterCreate(4,
|
|
465
|
+
i0.ɵɵelementStart(3, "select", 54);
|
|
466
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Conditional_70_Template_select_change_3_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setAlgorithm($event.target.value)); });
|
|
467
|
+
i0.ɵɵrepeaterCreate(4, PSPipelinesComponent_Conditional_2_Conditional_70_For_5_Template, 2, 2, "option", 77, _forTrack0);
|
|
465
468
|
i0.ɵɵelementEnd()();
|
|
466
|
-
i0.ɵɵelementStart(6, "div",
|
|
469
|
+
i0.ɵɵelementStart(6, "div", 50)(7, "label");
|
|
467
470
|
i0.ɵɵtext(8, "Hyperparameters (JSON)");
|
|
468
471
|
i0.ɵɵelementEnd();
|
|
469
|
-
i0.ɵɵelementStart(9, "textarea",
|
|
470
|
-
i0.ɵɵlistener("input", function
|
|
472
|
+
i0.ɵɵelementStart(9, "textarea", 83);
|
|
473
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_70_Template_textarea_input_9_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setHyperparams($event.target.value)); });
|
|
471
474
|
i0.ɵɵelementEnd()();
|
|
472
475
|
} if (rf & 2) {
|
|
473
476
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -478,8 +481,8 @@ function PSPipelinesComponent_Conditional_2_Conditional_69_Template(rf, ctx) { i
|
|
|
478
481
|
i0.ɵɵadvance(5);
|
|
479
482
|
i0.ɵɵproperty("value", ctx_r1.editHyperparams);
|
|
480
483
|
} }
|
|
481
|
-
function
|
|
482
|
-
i0.ɵɵelementStart(0, "div",
|
|
484
|
+
function PSPipelinesComponent_Conditional_2_Conditional_71_Template(rf, ctx) { if (rf & 1) {
|
|
485
|
+
i0.ɵɵelementStart(0, "div", 27);
|
|
483
486
|
i0.ɵɵtext(1, "The trained model artifact. Run ");
|
|
484
487
|
i0.ɵɵelementStart(2, "strong");
|
|
485
488
|
i0.ɵɵtext(3, "Train");
|
|
@@ -487,52 +490,52 @@ function PSPipelinesComponent_Conditional_2_Conditional_70_Template(rf, ctx) { i
|
|
|
487
490
|
i0.ɵɵtext(4, " to produce a new versioned model from this pipeline.");
|
|
488
491
|
i0.ɵɵelementEnd();
|
|
489
492
|
} }
|
|
490
|
-
function
|
|
493
|
+
function PSPipelinesComponent_Conditional_2_Conditional_102_Template(rf, ctx) { if (rf & 1) {
|
|
491
494
|
const _r31 = i0.ɵɵgetCurrentView();
|
|
492
|
-
i0.ɵɵelementStart(0, "div",
|
|
495
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
493
496
|
i0.ɵɵtext(2, "Decision-date column");
|
|
494
497
|
i0.ɵɵelementEnd();
|
|
495
|
-
i0.ɵɵelementStart(3, "input",
|
|
496
|
-
i0.ɵɵlistener("input", function
|
|
498
|
+
i0.ɵɵelementStart(3, "input", 51);
|
|
499
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_102_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setAsOfColumn($event.target.value)); });
|
|
497
500
|
i0.ɵɵelementEnd()();
|
|
498
501
|
} if (rf & 2) {
|
|
499
502
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
500
503
|
i0.ɵɵadvance(3);
|
|
501
504
|
i0.ɵɵproperty("value", ctx_r1.editAsOf.Column || "");
|
|
502
505
|
} }
|
|
503
|
-
function
|
|
506
|
+
function PSPipelinesComponent_Conditional_2_Conditional_103_Template(rf, ctx) { if (rf & 1) {
|
|
504
507
|
const _r32 = i0.ɵɵgetCurrentView();
|
|
505
|
-
i0.ɵɵelementStart(0, "div",
|
|
508
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
506
509
|
i0.ɵɵtext(2, "Offset days before label");
|
|
507
510
|
i0.ɵɵelementEnd();
|
|
508
|
-
i0.ɵɵelementStart(3, "input",
|
|
509
|
-
i0.ɵɵlistener("input", function
|
|
511
|
+
i0.ɵɵelementStart(3, "input", 78);
|
|
512
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_103_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setAsOfOffset($event.target.value)); });
|
|
510
513
|
i0.ɵɵelementEnd()();
|
|
511
514
|
} if (rf & 2) {
|
|
512
515
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
513
516
|
i0.ɵɵadvance(3);
|
|
514
517
|
i0.ɵɵproperty("value", ctx_r1.editAsOf.OffsetDays ?? 0);
|
|
515
518
|
} }
|
|
516
|
-
function
|
|
519
|
+
function PSPipelinesComponent_Conditional_2_Conditional_120_Template(rf, ctx) { if (rf & 1) {
|
|
517
520
|
const _r33 = i0.ɵɵgetCurrentView();
|
|
518
|
-
i0.ɵɵelementStart(0, "div",
|
|
521
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
519
522
|
i0.ɵɵtext(2, "Test size");
|
|
520
523
|
i0.ɵɵelementEnd();
|
|
521
|
-
i0.ɵɵelementStart(3, "input",
|
|
522
|
-
i0.ɵɵlistener("input", function
|
|
524
|
+
i0.ɵɵelementStart(3, "input", 62);
|
|
525
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_120_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r33); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setTestSize($event.target.value)); });
|
|
523
526
|
i0.ɵɵelementEnd()();
|
|
524
527
|
} if (rf & 2) {
|
|
525
528
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
526
529
|
i0.ɵɵadvance(3);
|
|
527
530
|
i0.ɵɵproperty("value", ctx_r1.editValidation.TestSize ?? 0.2);
|
|
528
531
|
} }
|
|
529
|
-
function
|
|
532
|
+
function PSPipelinesComponent_Conditional_2_Conditional_121_Template(rf, ctx) { if (rf & 1) {
|
|
530
533
|
const _r34 = i0.ɵɵgetCurrentView();
|
|
531
|
-
i0.ɵɵelementStart(0, "div",
|
|
534
|
+
i0.ɵɵelementStart(0, "div", 50)(1, "label");
|
|
532
535
|
i0.ɵɵtext(2, "Folds (k)");
|
|
533
536
|
i0.ɵɵelementEnd();
|
|
534
|
-
i0.ɵɵelementStart(3, "input",
|
|
535
|
-
i0.ɵɵlistener("input", function
|
|
537
|
+
i0.ɵɵelementStart(3, "input", 78);
|
|
538
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Conditional_121_Template_input_input_3_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.setK($event.target.value)); });
|
|
536
539
|
i0.ɵɵelementEnd()();
|
|
537
540
|
} if (rf & 2) {
|
|
538
541
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -542,171 +545,173 @@ function PSPipelinesComponent_Conditional_2_Conditional_120_Template(rf, ctx) {
|
|
|
542
545
|
function PSPipelinesComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
543
546
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
544
547
|
i0.ɵɵelementStart(0, "div", 6);
|
|
545
|
-
i0.ɵɵrepeaterCreate(1, PSPipelinesComponent_Conditional_2_For_2_Template,
|
|
546
|
-
i0.ɵɵ
|
|
547
|
-
i0.ɵɵ
|
|
548
|
-
i0.ɵɵ
|
|
549
|
-
i0.ɵɵ
|
|
550
|
-
i0.ɵɵ
|
|
551
|
-
i0.ɵɵ
|
|
552
|
-
i0.ɵɵ
|
|
553
|
-
i0.ɵɵ
|
|
554
|
-
i0.ɵɵ
|
|
555
|
-
i0.ɵɵ
|
|
556
|
-
i0.ɵɵ
|
|
557
|
-
i0.ɵɵ
|
|
558
|
-
i0.ɵɵ
|
|
559
|
-
i0.ɵɵ
|
|
560
|
-
i0.ɵɵ
|
|
561
|
-
i0.ɵɵ
|
|
562
|
-
i0.ɵɵ
|
|
563
|
-
i0.ɵɵ
|
|
564
|
-
i0.ɵɵ
|
|
565
|
-
i0.ɵɵ
|
|
566
|
-
i0.ɵɵ
|
|
567
|
-
i0.ɵɵ
|
|
568
|
-
i0.ɵɵ
|
|
569
|
-
i0.ɵɵ
|
|
570
|
-
i0.ɵɵ
|
|
571
|
-
i0.ɵɵ
|
|
572
|
-
i0.ɵɵ
|
|
573
|
-
i0.ɵɵ
|
|
574
|
-
i0.ɵɵ
|
|
575
|
-
i0.ɵɵ
|
|
576
|
-
i0.ɵɵ
|
|
577
|
-
i0.ɵɵ
|
|
578
|
-
i0.ɵɵ
|
|
579
|
-
i0.ɵɵ
|
|
580
|
-
i0.ɵɵ
|
|
581
|
-
i0.ɵɵ
|
|
582
|
-
i0.ɵɵ
|
|
583
|
-
i0.ɵɵelement(
|
|
584
|
-
i0.ɵɵ
|
|
548
|
+
i0.ɵɵrepeaterCreate(1, PSPipelinesComponent_Conditional_2_For_2_Template, 6, 7, "button", 7, _forTrack0);
|
|
549
|
+
i0.ɵɵelementEnd();
|
|
550
|
+
i0.ɵɵelementStart(3, "div", 8)(4, "button", 9);
|
|
551
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.save()); });
|
|
552
|
+
i0.ɵɵelement(5, "i", 10);
|
|
553
|
+
i0.ɵɵtext(6, " Save ");
|
|
554
|
+
i0.ɵɵelementEnd();
|
|
555
|
+
i0.ɵɵelementStart(7, "button", 11);
|
|
556
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.validate()); });
|
|
557
|
+
i0.ɵɵelement(8, "i", 12);
|
|
558
|
+
i0.ɵɵtext(9, " Validate ");
|
|
559
|
+
i0.ɵɵelementEnd();
|
|
560
|
+
i0.ɵɵelementStart(10, "button", 13);
|
|
561
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.train()); });
|
|
562
|
+
i0.ɵɵelement(11, "i", 14);
|
|
563
|
+
i0.ɵɵtext(12, " Train ");
|
|
564
|
+
i0.ɵɵelementEnd();
|
|
565
|
+
i0.ɵɵelementStart(13, "button", 15);
|
|
566
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Template_button_click_13_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.refine()); });
|
|
567
|
+
i0.ɵɵelement(14, "i", 16);
|
|
568
|
+
i0.ɵɵtext(15, " Agent ");
|
|
569
|
+
i0.ɵɵelementEnd();
|
|
570
|
+
i0.ɵɵelement(16, "span", 17);
|
|
571
|
+
i0.ɵɵconditionalCreate(17, PSPipelinesComponent_Conditional_2_Conditional_17_Template, 3, 0, "span", 18);
|
|
572
|
+
i0.ɵɵelementEnd();
|
|
573
|
+
i0.ɵɵelementStart(18, "div", 19)(19, "div", 20)(20, "div", 21)(21, "span", 22);
|
|
574
|
+
i0.ɵɵtext(22, "Add:");
|
|
575
|
+
i0.ɵɵelementEnd();
|
|
576
|
+
i0.ɵɵelementStart(23, "button", 23);
|
|
577
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Template_button_click_23_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addSource()); });
|
|
578
|
+
i0.ɵɵelement(24, "i", 24);
|
|
579
|
+
i0.ɵɵtext(25, " Source");
|
|
580
|
+
i0.ɵɵelementEnd();
|
|
581
|
+
i0.ɵɵelementStart(26, "button", 25);
|
|
582
|
+
i0.ɵɵlistener("click", function PSPipelinesComponent_Conditional_2_Template_button_click_26_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addStep()); });
|
|
583
|
+
i0.ɵɵelement(27, "i", 26);
|
|
584
|
+
i0.ɵɵtext(28, " Feature step");
|
|
585
|
+
i0.ɵɵelementEnd();
|
|
586
|
+
i0.ɵɵelement(29, "span", 17);
|
|
587
|
+
i0.ɵɵelementStart(30, "span", 27);
|
|
588
|
+
i0.ɵɵelement(31, "i", 28);
|
|
589
|
+
i0.ɵɵtext(32);
|
|
585
590
|
i0.ɵɵelementEnd()();
|
|
586
|
-
i0.ɵɵelementStart(
|
|
591
|
+
i0.ɵɵelementStart(33, "div", 29);
|
|
587
592
|
i0.ɵɵnamespaceSVG();
|
|
588
|
-
i0.ɵɵelementStart(
|
|
589
|
-
i0.ɵɵrepeaterCreate(
|
|
593
|
+
i0.ɵɵelementStart(34, "svg", 30);
|
|
594
|
+
i0.ɵɵrepeaterCreate(35, PSPipelinesComponent_Conditional_2_For_36_Template, 1, 1, ":svg:path", null, _forTrack1);
|
|
590
595
|
i0.ɵɵelementEnd();
|
|
591
|
-
i0.ɵɵrepeaterCreate(
|
|
596
|
+
i0.ɵɵrepeaterCreate(37, PSPipelinesComponent_Conditional_2_For_38_Template, 11, 13, "div", 31, _forTrack2);
|
|
592
597
|
i0.ɵɵelementEnd();
|
|
593
598
|
i0.ɵɵnamespaceHTML();
|
|
594
|
-
i0.ɵɵelementStart(
|
|
595
|
-
i0.ɵɵelement(
|
|
596
|
-
i0.ɵɵtext(
|
|
599
|
+
i0.ɵɵelementStart(39, "div", 32)(40, "div", 33)(41, "span");
|
|
600
|
+
i0.ɵɵelement(42, "i", 34);
|
|
601
|
+
i0.ɵɵtext(43, " Source");
|
|
597
602
|
i0.ɵɵelementEnd();
|
|
598
|
-
i0.ɵɵelementStart(
|
|
599
|
-
i0.ɵɵelement(
|
|
600
|
-
i0.ɵɵtext(
|
|
603
|
+
i0.ɵɵelementStart(44, "span");
|
|
604
|
+
i0.ɵɵelement(45, "i", 35);
|
|
605
|
+
i0.ɵɵtext(46, " Feature");
|
|
601
606
|
i0.ɵɵelementEnd();
|
|
602
|
-
i0.ɵɵelementStart(
|
|
603
|
-
i0.ɵɵelement(
|
|
604
|
-
i0.ɵɵtext(
|
|
607
|
+
i0.ɵɵelementStart(47, "span");
|
|
608
|
+
i0.ɵɵelement(48, "i", 36);
|
|
609
|
+
i0.ɵɵtext(49, " Embedding");
|
|
605
610
|
i0.ɵɵelementEnd();
|
|
606
|
-
i0.ɵɵelementStart(
|
|
607
|
-
i0.ɵɵelement(
|
|
608
|
-
i0.ɵɵtext(
|
|
611
|
+
i0.ɵɵelementStart(50, "span");
|
|
612
|
+
i0.ɵɵelement(51, "i", 37);
|
|
613
|
+
i0.ɵɵtext(52, " Target");
|
|
609
614
|
i0.ɵɵelementEnd();
|
|
610
|
-
i0.ɵɵelementStart(
|
|
611
|
-
i0.ɵɵelement(
|
|
612
|
-
i0.ɵɵtext(
|
|
615
|
+
i0.ɵɵelementStart(53, "span");
|
|
616
|
+
i0.ɵɵelement(54, "i", 38);
|
|
617
|
+
i0.ɵɵtext(55, " Algorithm");
|
|
613
618
|
i0.ɵɵelementEnd()()()();
|
|
614
|
-
i0.ɵɵelementStart(
|
|
615
|
-
i0.ɵɵelement(
|
|
616
|
-
i0.ɵɵelementStart(
|
|
617
|
-
i0.ɵɵtext(
|
|
619
|
+
i0.ɵɵelementStart(56, "div", 39)(57, "div", 40)(58, "div", 41);
|
|
620
|
+
i0.ɵɵelement(59, "i", 42);
|
|
621
|
+
i0.ɵɵelementStart(60, "div", 43)(61, "h3", 44);
|
|
622
|
+
i0.ɵɵtext(62);
|
|
618
623
|
i0.ɵɵelementEnd();
|
|
619
|
-
i0.ɵɵelementStart(
|
|
620
|
-
i0.ɵɵtext(
|
|
624
|
+
i0.ɵɵelementStart(63, "div", 27);
|
|
625
|
+
i0.ɵɵtext(64);
|
|
621
626
|
i0.ɵɵelementEnd()();
|
|
622
|
-
i0.ɵɵconditionalCreate(
|
|
627
|
+
i0.ɵɵconditionalCreate(65, PSPipelinesComponent_Conditional_2_Conditional_65_Template, 2, 0, "button", 45);
|
|
623
628
|
i0.ɵɵelementEnd();
|
|
624
|
-
i0.ɵɵelementStart(
|
|
625
|
-
i0.ɵɵconditionalCreate(
|
|
626
|
-
i0.ɵɵconditionalCreate(
|
|
627
|
-
i0.ɵɵconditionalCreate(68, PSPipelinesComponent_Conditional_2_Conditional_68_Template, 10, 2);
|
|
629
|
+
i0.ɵɵelementStart(66, "div", 46);
|
|
630
|
+
i0.ɵɵconditionalCreate(67, PSPipelinesComponent_Conditional_2_Conditional_67_Template, 14, 3);
|
|
631
|
+
i0.ɵɵconditionalCreate(68, PSPipelinesComponent_Conditional_2_Conditional_68_Template, 20, 4);
|
|
628
632
|
i0.ɵɵconditionalCreate(69, PSPipelinesComponent_Conditional_2_Conditional_69_Template, 10, 2);
|
|
629
|
-
i0.ɵɵconditionalCreate(70, PSPipelinesComponent_Conditional_2_Conditional_70_Template,
|
|
633
|
+
i0.ɵɵconditionalCreate(70, PSPipelinesComponent_Conditional_2_Conditional_70_Template, 10, 2);
|
|
634
|
+
i0.ɵɵconditionalCreate(71, PSPipelinesComponent_Conditional_2_Conditional_71_Template, 5, 0, "div", 27);
|
|
630
635
|
i0.ɵɵelementEnd()();
|
|
631
|
-
i0.ɵɵelementStart(
|
|
632
|
-
i0.ɵɵelement(
|
|
633
|
-
i0.ɵɵelementStart(
|
|
634
|
-
i0.ɵɵtext(
|
|
636
|
+
i0.ɵɵelementStart(72, "div", 47)(73, "div", 48);
|
|
637
|
+
i0.ɵɵelement(74, "i", 49);
|
|
638
|
+
i0.ɵɵelementStart(75, "h3");
|
|
639
|
+
i0.ɵɵtext(76, "Leakage guard");
|
|
635
640
|
i0.ɵɵelementEnd()();
|
|
636
|
-
i0.ɵɵelementStart(
|
|
637
|
-
i0.ɵɵtext(
|
|
641
|
+
i0.ɵɵelementStart(77, "div", 46)(78, "div", 50)(79, "label");
|
|
642
|
+
i0.ɵɵtext(80, "Deny-list columns (comma-separated)");
|
|
638
643
|
i0.ɵɵelementEnd();
|
|
639
|
-
i0.ɵɵelementStart(
|
|
640
|
-
i0.ɵɵlistener("input", function
|
|
644
|
+
i0.ɵɵelementStart(81, "input", 51);
|
|
645
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Template_input_input_81_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setDeny($event.target.value)); });
|
|
641
646
|
i0.ɵɵelementEnd()();
|
|
642
|
-
i0.ɵɵelementStart(
|
|
643
|
-
i0.ɵɵtext(
|
|
647
|
+
i0.ɵɵelementStart(82, "div", 50)(83, "label");
|
|
648
|
+
i0.ɵɵtext(84, "Single-feature dominance threshold");
|
|
644
649
|
i0.ɵɵelementEnd();
|
|
645
|
-
i0.ɵɵelementStart(
|
|
646
|
-
i0.ɵɵlistener("input", function
|
|
650
|
+
i0.ɵɵelementStart(85, "input", 52);
|
|
651
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Template_input_input_85_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setThreshold($event.target.value)); });
|
|
647
652
|
i0.ɵɵelementEnd()()()();
|
|
648
|
-
i0.ɵɵelementStart(
|
|
649
|
-
i0.ɵɵelement(
|
|
650
|
-
i0.ɵɵelementStart(
|
|
651
|
-
i0.ɵɵtext(
|
|
653
|
+
i0.ɵɵelementStart(86, "div", 47)(87, "div", 48);
|
|
654
|
+
i0.ɵɵelement(88, "i", 53);
|
|
655
|
+
i0.ɵɵelementStart(89, "h3");
|
|
656
|
+
i0.ɵɵtext(90, "As-of strategy");
|
|
652
657
|
i0.ɵɵelementEnd()();
|
|
653
|
-
i0.ɵɵelementStart(
|
|
654
|
-
i0.ɵɵtext(
|
|
658
|
+
i0.ɵɵelementStart(91, "div", 46)(92, "div", 50)(93, "label");
|
|
659
|
+
i0.ɵɵtext(94, "Mode");
|
|
655
660
|
i0.ɵɵelementEnd();
|
|
656
|
-
i0.ɵɵelementStart(
|
|
657
|
-
i0.ɵɵlistener("change", function
|
|
658
|
-
i0.ɵɵelementStart(
|
|
659
|
-
i0.ɵɵtext(
|
|
661
|
+
i0.ɵɵelementStart(95, "select", 54);
|
|
662
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Template_select_change_95_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setAsOfMode($event.target.value)); });
|
|
663
|
+
i0.ɵɵelementStart(96, "option", 55);
|
|
664
|
+
i0.ɵɵtext(97, "none");
|
|
660
665
|
i0.ɵɵelementEnd();
|
|
661
|
-
i0.ɵɵelementStart(
|
|
662
|
-
i0.ɵɵtext(
|
|
666
|
+
i0.ɵɵelementStart(98, "option", 56);
|
|
667
|
+
i0.ɵɵtext(99, "column");
|
|
663
668
|
i0.ɵɵelementEnd();
|
|
664
|
-
i0.ɵɵelementStart(
|
|
665
|
-
i0.ɵɵtext(
|
|
669
|
+
i0.ɵɵelementStart(100, "option", 57);
|
|
670
|
+
i0.ɵɵtext(101, "offset");
|
|
666
671
|
i0.ɵɵelementEnd()()();
|
|
667
|
-
i0.ɵɵconditionalCreate(
|
|
668
|
-
i0.ɵɵconditionalCreate(
|
|
672
|
+
i0.ɵɵconditionalCreate(102, PSPipelinesComponent_Conditional_2_Conditional_102_Template, 4, 1, "div", 50);
|
|
673
|
+
i0.ɵɵconditionalCreate(103, PSPipelinesComponent_Conditional_2_Conditional_103_Template, 4, 1, "div", 50);
|
|
669
674
|
i0.ɵɵelementEnd()();
|
|
670
|
-
i0.ɵɵelementStart(
|
|
671
|
-
i0.ɵɵelement(
|
|
672
|
-
i0.ɵɵelementStart(
|
|
673
|
-
i0.ɵɵtext(
|
|
675
|
+
i0.ɵɵelementStart(104, "div", 47)(105, "div", 48);
|
|
676
|
+
i0.ɵɵelement(106, "i", 58);
|
|
677
|
+
i0.ɵɵelementStart(107, "h3");
|
|
678
|
+
i0.ɵɵtext(108, "Validation");
|
|
674
679
|
i0.ɵɵelementEnd()();
|
|
675
|
-
i0.ɵɵelementStart(
|
|
676
|
-
i0.ɵɵtext(
|
|
680
|
+
i0.ɵɵelementStart(109, "div", 46)(110, "div", 50)(111, "label");
|
|
681
|
+
i0.ɵɵtext(112, "Strategy");
|
|
677
682
|
i0.ɵɵelementEnd();
|
|
678
|
-
i0.ɵɵelementStart(
|
|
679
|
-
i0.ɵɵlistener("change", function
|
|
680
|
-
i0.ɵɵelementStart(
|
|
681
|
-
i0.ɵɵtext(
|
|
683
|
+
i0.ɵɵelementStart(113, "select", 54);
|
|
684
|
+
i0.ɵɵlistener("change", function PSPipelinesComponent_Conditional_2_Template_select_change_113_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setValStrategy($event.target.value)); });
|
|
685
|
+
i0.ɵɵelementStart(114, "option", 59);
|
|
686
|
+
i0.ɵɵtext(115, "train_test_split");
|
|
682
687
|
i0.ɵɵelementEnd();
|
|
683
|
-
i0.ɵɵelementStart(
|
|
684
|
-
i0.ɵɵtext(
|
|
688
|
+
i0.ɵɵelementStart(116, "option", 60);
|
|
689
|
+
i0.ɵɵtext(117, "kfold");
|
|
685
690
|
i0.ɵɵelementEnd();
|
|
686
|
-
i0.ɵɵelementStart(
|
|
687
|
-
i0.ɵɵtext(
|
|
691
|
+
i0.ɵɵelementStart(118, "option", 61);
|
|
692
|
+
i0.ɵɵtext(119, "holdout");
|
|
688
693
|
i0.ɵɵelementEnd()()();
|
|
689
|
-
i0.ɵɵconditionalCreate(
|
|
690
|
-
i0.ɵɵconditionalCreate(
|
|
691
|
-
i0.ɵɵelementStart(
|
|
692
|
-
i0.ɵɵtext(
|
|
694
|
+
i0.ɵɵconditionalCreate(120, PSPipelinesComponent_Conditional_2_Conditional_120_Template, 4, 1, "div", 50);
|
|
695
|
+
i0.ɵɵconditionalCreate(121, PSPipelinesComponent_Conditional_2_Conditional_121_Template, 4, 1, "div", 50);
|
|
696
|
+
i0.ɵɵelementStart(122, "div", 50)(123, "label");
|
|
697
|
+
i0.ɵɵtext(124, "Locked holdout fraction");
|
|
693
698
|
i0.ɵɵelementEnd();
|
|
694
|
-
i0.ɵɵelementStart(
|
|
695
|
-
i0.ɵɵlistener("input", function
|
|
699
|
+
i0.ɵɵelementStart(125, "input", 62);
|
|
700
|
+
i0.ɵɵlistener("input", function PSPipelinesComponent_Conditional_2_Template_input_input_125_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setHoldout($event.target.value)); });
|
|
696
701
|
i0.ɵɵelementEnd()()()()()();
|
|
697
702
|
} if (rf & 2) {
|
|
698
703
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
699
704
|
i0.ɵɵadvance();
|
|
700
705
|
i0.ɵɵrepeater(ctx_r1.pipelines);
|
|
701
706
|
i0.ɵɵadvance(3);
|
|
702
|
-
i0.ɵɵconditional(ctx_r1.dirty ? 4 : -1);
|
|
703
|
-
i0.ɵɵadvance();
|
|
704
707
|
i0.ɵɵproperty("disabled", !ctx_r1.dirty || ctx_r1.busy);
|
|
705
708
|
i0.ɵɵadvance(3);
|
|
706
709
|
i0.ɵɵproperty("disabled", ctx_r1.busy);
|
|
707
710
|
i0.ɵɵadvance(3);
|
|
708
711
|
i0.ɵɵproperty("disabled", ctx_r1.busy || ctx_r1.dirty);
|
|
709
|
-
i0.ɵɵadvance(
|
|
712
|
+
i0.ɵɵadvance(7);
|
|
713
|
+
i0.ɵɵconditional(ctx_r1.dirty ? 17 : -1);
|
|
714
|
+
i0.ɵɵadvance(15);
|
|
710
715
|
i0.ɵɵtextInterpolate2(" ", ctx_r1.nodes.length, " nodes \u00B7 ", ctx_r1.edges.length, " edges");
|
|
711
716
|
i0.ɵɵadvance();
|
|
712
717
|
i0.ɵɵstyleProp("width", ctx_r1.canvasW, "px")("height", ctx_r1.canvasH, "px");
|
|
@@ -724,17 +729,17 @@ function PSPipelinesComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
724
729
|
i0.ɵɵadvance(2);
|
|
725
730
|
i0.ɵɵtextInterpolate1("", ctx_r1.nodeTypeLabel(ctx_r1.selectedNode.type), " \u00B7 selected");
|
|
726
731
|
i0.ɵɵadvance();
|
|
727
|
-
i0.ɵɵconditional(ctx_r1.selectedNode.type === "src" || ctx_r1.selectedNode.type === "feat" || ctx_r1.selectedNode.type === "emb" ?
|
|
732
|
+
i0.ɵɵconditional(ctx_r1.selectedNode.type === "src" || ctx_r1.selectedNode.type === "feat" || ctx_r1.selectedNode.type === "emb" ? 65 : -1);
|
|
728
733
|
i0.ɵɵadvance(2);
|
|
729
|
-
i0.ɵɵconditional(ctx_r1.selectedSource ?
|
|
734
|
+
i0.ɵɵconditional(ctx_r1.selectedSource ? 67 : -1);
|
|
730
735
|
i0.ɵɵadvance();
|
|
731
|
-
i0.ɵɵconditional(ctx_r1.selectedStep ?
|
|
736
|
+
i0.ɵɵconditional(ctx_r1.selectedStep ? 68 : -1);
|
|
732
737
|
i0.ɵɵadvance();
|
|
733
|
-
i0.ɵɵconditional(ctx_r1.selectedNode.type === "target" ?
|
|
738
|
+
i0.ɵɵconditional(ctx_r1.selectedNode.type === "target" ? 69 : -1);
|
|
734
739
|
i0.ɵɵadvance();
|
|
735
|
-
i0.ɵɵconditional(ctx_r1.selectedNode.type === "algo" ?
|
|
740
|
+
i0.ɵɵconditional(ctx_r1.selectedNode.type === "algo" ? 70 : -1);
|
|
736
741
|
i0.ɵɵadvance();
|
|
737
|
-
i0.ɵɵconditional(ctx_r1.selectedNode.type === "output" ?
|
|
742
|
+
i0.ɵɵconditional(ctx_r1.selectedNode.type === "output" ? 71 : -1);
|
|
738
743
|
i0.ɵɵadvance(10);
|
|
739
744
|
i0.ɵɵproperty("value", ctx_r1.denyText);
|
|
740
745
|
i0.ɵɵadvance(4);
|
|
@@ -742,15 +747,15 @@ function PSPipelinesComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
742
747
|
i0.ɵɵadvance(10);
|
|
743
748
|
i0.ɵɵproperty("value", ctx_r1.editAsOf.Mode);
|
|
744
749
|
i0.ɵɵadvance(7);
|
|
745
|
-
i0.ɵɵconditional(ctx_r1.editAsOf.Mode === "column" ?
|
|
750
|
+
i0.ɵɵconditional(ctx_r1.editAsOf.Mode === "column" ? 102 : -1);
|
|
746
751
|
i0.ɵɵadvance();
|
|
747
|
-
i0.ɵɵconditional(ctx_r1.editAsOf.Mode === "offset" ?
|
|
752
|
+
i0.ɵɵconditional(ctx_r1.editAsOf.Mode === "offset" ? 103 : -1);
|
|
748
753
|
i0.ɵɵadvance(10);
|
|
749
754
|
i0.ɵɵproperty("value", ctx_r1.editValidation.Strategy);
|
|
750
755
|
i0.ɵɵadvance(7);
|
|
751
|
-
i0.ɵɵconditional(ctx_r1.editValidation.Strategy === "train_test_split" ?
|
|
756
|
+
i0.ɵɵconditional(ctx_r1.editValidation.Strategy === "train_test_split" ? 120 : -1);
|
|
752
757
|
i0.ɵɵadvance();
|
|
753
|
-
i0.ɵɵconditional(ctx_r1.editValidation.Strategy === "kfold" ?
|
|
758
|
+
i0.ɵɵconditional(ctx_r1.editValidation.Strategy === "kfold" ? 121 : -1);
|
|
754
759
|
i0.ɵɵadvance(4);
|
|
755
760
|
i0.ɵɵproperty("value", ctx_r1.editValidation.LockedHoldoutFraction);
|
|
756
761
|
} }
|
|
@@ -1350,14 +1355,14 @@ export class PSPipelinesComponent {
|
|
|
1350
1355
|
return `M ${sx} ${sy} C ${c1x} ${sy}, ${c2x} ${ty}, ${tx} ${ty}`;
|
|
1351
1356
|
}
|
|
1352
1357
|
static ɵfac = function PSPipelinesComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PSPipelinesComponent)(); };
|
|
1353
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PSPipelinesComponent, selectors: [["ps-pipelines"]], inputs: { engine: "engine", provider: "provider", currentUser: "currentUser" }, outputs: { askAgent: "askAgent" }, decls: 3, vars: 1, consts: [["data-testid", "ps-pipelines-panel", 1, "ps-panel", "ps-pipelines"], ["data-testid", "ps-pipelines-empty", 1, "ps-empty"], [1, "ps-empty-ico"], [1, "fa-solid", "fa-diagram-project"], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-pipelines-ask-agent", 3, "click"], [1, "fa-solid", "fa-robot"], ["data-testid", "ps-pipelines-picker", 1, "pl-
|
|
1358
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PSPipelinesComponent, selectors: [["ps-pipelines"]], inputs: { engine: "engine", provider: "provider", currentUser: "currentUser" }, outputs: { askAgent: "askAgent" }, decls: 3, vars: 1, consts: [["data-testid", "ps-pipelines-panel", 1, "ps-panel", "ps-pipelines"], ["data-testid", "ps-pipelines-empty", 1, "ps-empty"], [1, "ps-empty-ico"], [1, "fa-solid", "fa-diagram-project"], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-pipelines-ask-agent", 3, "click"], [1, "fa-solid", "fa-robot"], ["data-testid", "ps-pipelines-picker", 1, "pl-picker"], ["data-testid", "ps-pipelines-pill", 1, "pl-pill", 3, "on", "title"], [1, "pl-toolbar"], ["mjButton", "", "variant", "primary", "size", "sm", "data-testid", "ps-pipelines-save", 3, "click", "disabled"], [1, "fa-solid", "fa-floppy-disk"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-pipelines-validate", 3, "click", "disabled"], [1, "fa-solid", "fa-circle-check"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-pipelines-train", 3, "click", "disabled"], [1, "fa-solid", "fa-play"], ["mjButton", "", "variant", "secondary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "ps-spacer"], ["data-testid", "ps-pipelines-dirty", 1, "ps-tag", "amber"], [1, "builder"], [1, "canvas-wrap"], [1, "canvas-bar"], [1, "ps-small", "ps-muted", 2, "font-weight", "600"], ["data-testid", "ps-pipelines-add-source", 1, "ps-pchip", "s", 3, "click"], [1, "fa-solid", "fa-database"], ["data-testid", "ps-pipelines-add-step", 1, "ps-pchip", "f", 3, "click"], [1, "fa-solid", "fa-sliders"], [1, "ps-small", "ps-muted"], [1, "fa-solid", "fa-circle-nodes"], ["data-testid", "ps-pipelines-canvas", 1, "ps-flow", "big"], ["data-testid", "ps-pipelines-edges", 1, "ps-edges"], ["data-testid", "ps-pipelines-node", 1, "ps-node", 3, "ngClass", "selected", "left", "top"], [1, "flow-toolbar"], [1, "legend"], [1, "sw", "src"], [1, "sw", "feat"], [1, "sw", "emb"], [1, "sw", "target"], [1, "sw", "algo"], ["data-testid", "ps-pipelines-inspector", 1, "ps-col", "inspector"], [1, "ps-card", "insp"], [1, "ihead"], [1, "tile", 3, "ngClass"], [2, "flex", "1"], ["data-testid", "ps-pipelines-inspector-title"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-pipelines-delete"], [1, "ps-card-body"], [1, "ps-card"], [1, "ps-card-head"], [1, "fa-solid", "fa-shield-halved", 2, "color", "var(--mj-status-warning)"], [1, "ps-field"], ["type", "text", 1, "mj-input", 3, "input", "value"], ["type", "number", "step", "0.05", "min", "0", "max", "1", 1, "mj-input", 3, "input", "value"], [1, "fa-solid", "fa-clock-rotate-left", 2, "color", "var(--mj-brand-primary)"], [1, "mj-input", 3, "change", "value"], ["value", "none"], ["value", "column"], ["value", "offset"], [1, "fa-solid", "fa-scissors", 2, "color", "var(--mj-brand-primary)"], ["value", "train_test_split"], ["value", "kfold"], ["value", "holdout"], ["type", "number", "step", "0.05", 1, "mj-input", 3, "input", "value"], ["data-testid", "ps-pipelines-pill", 1, "pl-pill", 3, "click", "title"], [1, "pl-pill-name"], [1, "ps-badge"], [1, "fa-solid", "fa-pen"], ["data-testid", "ps-pipelines-node", 1, "ps-node", 3, "click", "ngClass"], [1, "nh"], [1, "ps-tag"], [1, "nb"], [1, "nb-row"], [1, "port", "in"], [1, "port", "out"], [1, "k"], ["mjButton", "", "variant", "secondary", "size", "sm", "data-testid", "ps-pipelines-delete", 3, "click"], [1, "fa-solid", "fa-trash"], [3, "value"], ["type", "number", 1, "mj-input", 3, "input", "value"], [1, "inputs-list"], [1, "inp-row"], [1, "ps-small", "ps-muted", 2, "margin-top", "4px"], ["type", "checkbox", 3, "change", "checked"], ["rows", "4", 1, "mj-textarea", 3, "input", "value"]], template: function PSPipelinesComponent_Template(rf, ctx) { if (rf & 1) {
|
|
1354
1359
|
i0.ɵɵelementStart(0, "div", 0);
|
|
1355
|
-
i0.ɵɵconditionalCreate(1, PSPipelinesComponent_Conditional_1_Template, 10, 0, "div", 1)(2, PSPipelinesComponent_Conditional_2_Template,
|
|
1360
|
+
i0.ɵɵconditionalCreate(1, PSPipelinesComponent_Conditional_1_Template, 10, 0, "div", 1)(2, PSPipelinesComponent_Conditional_2_Template, 126, 32);
|
|
1356
1361
|
i0.ɵɵelementEnd();
|
|
1357
1362
|
} if (rf & 2) {
|
|
1358
1363
|
i0.ɵɵadvance();
|
|
1359
1364
|
i0.ɵɵconditional(ctx.pipelines.length === 0 ? 1 : 2);
|
|
1360
|
-
} }, dependencies: [CommonModule, i1.NgClass, MJButtonDirective], styles: ["/* ============================================================================\n Predictive Studio \u2014 shared panel styles (design-token compliant)\n Maps the mockup design system onto MemberJunction semantic --mj-* tokens.\n Loaded by every PS panel component (styleUrls) under ViewEncapsulation.None,\n so the class names are global within the PS dashboard subtree.\n No hardcoded colors except the intentional categorical node/algorithm palette\n (declared once as --ps-* custom props below) which must stay distinct across\n light/dark to remain readable as diagram accents.\n ============================================================================ */\n\n/* Categorical accents for DAG node types + algorithm chips. These are\n data-visualization colors that must remain distinct regardless of theme\n (allowed exception #3 in the design-token rules). */\n.ps-panel {\n --ps-node-source: #6b7280;\n --ps-node-feature: #2050c8;\n --ps-node-embedding: #7b3ff0;\n --ps-node-target: #1f9d57;\n --ps-node-algorithm: #d98213;\n /* budget-gauge categorical accents (reuse the node palette so light/dark stay distinct) */\n --ps-gauge-cost: var(--ps-node-algorithm);\n --ps-gauge-iterations: var(--ps-node-feature);\n}\n\n.ps-panel {\n display: block;\n height: 100%;\n}\n\n/* ---- generic layout helpers ---- */\n.ps-row { display: flex; gap: 16px; }\n.ps-col { display: flex; flex-direction: column; gap: 16px; }\n.ps-wrap { flex-wrap: wrap; }\n.ps-spacer { flex: 1; }\n.ps-muted { color: var(--mj-text-muted); }\n.ps-small { font-size: 12.5px; }\n.ps-mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 12.5px; }\n.ps-section-title {\n font-size: 12px; text-transform: uppercase; letter-spacing: .06em;\n color: var(--mj-text-muted); margin: 4px 0 2px; font-weight: 700;\n}\n\n/* ---- cards ---- */\n.ps-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n}\n.ps-card-head {\n display: flex; align-items: center; gap: 10px;\n padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-card-head h3 { font-size: 14.5px; margin: 0; font-weight: 650; color: var(--mj-text-primary); }\n.ps-card-body { padding: 16px; }\n\n/* ---- KPI tiles ---- */\n.ps-kpi {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-radius: 10px; padding: 16px 18px; box-shadow: var(--mj-shadow-sm);\n}\n.ps-kpi .label { font-size: 12px; color: var(--mj-text-muted); font-weight: 600; }\n.ps-kpi .val { font-size: 26px; font-weight: 720; letter-spacing: -.02em; margin-top: 2px; color: var(--mj-text-primary); }\n\n/* ---- badges ---- */\n.ps-badge {\n display: inline-flex; align-items: center; gap: 5px;\n padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 650; line-height: 1.7;\n}\n.ps-badge.gray { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n.ps-badge.blue { background: var(--mj-status-info-bg); color: var(--mj-status-info-text); }\n.ps-badge.green { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n.ps-badge.amber { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-badge.red { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }\n\n/* recommendation-level chips (the ranking matrix payoff) */\n.ps-lvl {\n display: inline-flex; align-items: center; justify-content: center;\n min-width: 92px; padding: 4px 10px; border-radius: 7px;\n font-weight: 650; font-size: 11.5px; color: var(--mj-text-inverse);\n}\n.ps-lvl-Primary { background: var(--mj-status-success); }\n.ps-lvl-Strong { background: var(--mj-status-info); }\n.ps-lvl-Viable { background: var(--mj-status-warning); }\n.ps-lvl-Weak { background: var(--mj-text-disabled); }\n.ps-lvl-NotRecommended { background: var(--mj-bg-surface-sunken); color: var(--mj-text-muted); }\n\n/* ---- tags ---- */\n.ps-tag {\n display: inline-block; padding: 2px 8px; border-radius: 6px;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary);\n font-size: 11.5px; font-weight: 600;\n}\n.ps-tag.muted { opacity: .6; }\n.ps-divider { height: 1px; background: var(--mj-border-subtle); margin: 8px 0; }\n\n/* ---- tables ---- */\n.ps-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n.ps-table th {\n text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; padding: 9px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n.ps-table td { padding: 11px 12px; border-bottom: 1px solid var(--mj-border-subtle); color: var(--mj-text-primary); }\n.ps-table tr:hover td { background: var(--mj-bg-surface-hover); }\n.ps-table .num { text-align: right; font-variant-numeric: tabular-nums; }\n\n.ps-rank {\n width: 22px; height: 22px; border-radius: 6px; background: var(--mj-bg-surface-sunken);\n display: inline-grid; place-items: center; font-weight: 700; font-size: 11.5px; color: var(--mj-text-secondary);\n}\n.ps-rank.gold { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n\n/* ---- progress bars ---- */\n.ps-bar { height: 8px; border-radius: 999px; background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-bar > span { display: block; height: 100%; border-radius: 999px; background: var(--mj-brand-primary); }\n.ps-bar.warn > span { background: var(--mj-status-warning); }\n.ps-bar.run > span { background: var(--mj-brand-primary); }\n\n.ps-fbar { display: grid; grid-template-columns: 150px 1fr 48px; align-items: center; gap: 10px; padding: 5px 0; }\n.ps-fbar .track { height: 14px; border-radius: 5px; background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-fbar .track > span { display: block; height: 100%; background: var(--mj-brand-primary); }\n.ps-fbar .track > span.warn { background: var(--mj-status-warning); }\n.ps-fbar .name { color: var(--mj-text-secondary); }\n\n/* gauge */\n.ps-gauge {\n position: relative; width: 64px; height: 64px; border-radius: 50%; flex: 0 0 auto;\n background: conic-gradient(var(--ps-gauge-color, var(--mj-brand-primary)) calc(var(--ps-p, 40) * 1%), var(--mj-bg-surface-sunken) 0);\n display: grid; place-items: center;\n}\n.ps-gauge::after { content: ''; position: absolute; inset: 9px; background: var(--mj-bg-surface); border-radius: 50%; }\n.ps-gauge .g-val { position: relative; font-weight: 720; font-size: 14px; color: var(--mj-text-primary); }\n\n/* warning / info callouts */\n.ps-callout { display: flex; gap: 11px; padding: 12px 14px; border-radius: 10px; border: 1px solid; }\n.ps-callout.warn { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); color: var(--mj-status-warning-text); }\n.ps-callout.info { background: var(--mj-status-info-bg); border-color: var(--mj-status-info-border); color: var(--mj-status-info-text); }\n.ps-callout.success { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); color: var(--mj-status-success-text); }\n.ps-callout i { font-size: 16px; margin-top: 1px; }\n\n/* lifecycle stepper */\n.ps-stepper { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }\n.ps-step { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.ps-step .pip {\n width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--mj-border-strong);\n display: grid; place-items: center; font-size: 11px;\n}\n.ps-step.done { color: var(--mj-status-success-text); }\n.ps-step.done .pip { background: var(--mj-status-success); border-color: var(--mj-status-success); color: var(--mj-text-inverse); }\n.ps-step.curr { color: var(--mj-brand-primary); }\n.ps-step.curr .pip { border-color: var(--mj-brand-primary); color: var(--mj-brand-primary); }\n.ps-step .ln { width: 26px; height: 2px; background: var(--mj-border-strong); }\n\n/* ---- DAG flow canvas ---- */\n.ps-flow {\n position: relative;\n background:\n linear-gradient(var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n linear-gradient(90deg, var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default); border-radius: 10px;\n min-height: 620px; overflow: hidden;\n}\n.ps-node {\n position: absolute; width: 190px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong); border-left-width: 3px; border-radius: 10px;\n box-shadow: var(--mj-shadow-sm); cursor: pointer;\n}\n.ps-node .nh {\n display: flex; align-items: center; gap: 8px; padding: 9px 11px;\n border-bottom: 1px solid var(--mj-border-subtle); font-weight: 650; font-size: 12.5px; color: var(--mj-text-primary);\n}\n.ps-node .nh i.tile {\n width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 12px; flex: 0 0 auto;\n}\n.ps-node .nh .ps-tag { margin-left: auto; }\n.ps-node .nb { padding: 9px 11px; font-size: 12px; color: var(--mj-text-secondary); }\n.ps-node .nb-row { display: flex; justify-content: space-between; gap: 8px; padding: 2px 0; }\n.ps-node .nb-row .k { color: var(--mj-text-muted); }\n.ps-node.src { border-left-color: var(--ps-node-source); }\n.ps-node.src .nh i.tile { background: var(--ps-node-source); }\n.ps-node.feat { border-left-color: var(--ps-node-feature); }\n.ps-node.feat .nh i.tile { background: var(--ps-node-feature); }\n.ps-node.emb { border-left-color: var(--ps-node-embedding); }\n.ps-node.emb .nh i.tile { background: var(--ps-node-embedding); }\n.ps-node.target { border-left-color: var(--ps-node-target); }\n.ps-node.target .nh i.tile { background: var(--ps-node-target); }\n.ps-node.algo { border-left-color: var(--ps-node-algorithm); }\n.ps-node.algo .nh i.tile { background: var(--ps-node-algorithm); }\n.ps-node.output { border-left-color: var(--mj-status-success); }\n.ps-node.output .nh i.tile { background: var(--mj-status-success); }\n.ps-node.selected {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n}\n.ps-node .port {\n position: absolute; width: 11px; height: 11px; border-radius: 50%;\n background: var(--mj-bg-surface); border: 2px solid var(--mj-brand-primary);\n top: 50%; transform: translateY(-50%);\n}\n.ps-node .port.in { left: -6px; }\n.ps-node .port.out { right: -6px; }\nsvg.ps-edges { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }\nsvg.ps-edges path { stroke: color-mix(in srgb, var(--mj-brand-primary) 45%, transparent); stroke-width: 2; fill: none; }\n\n/* palette chips */\n.ps-pchip {\n display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 8px;\n border: 1px dashed var(--mj-border-strong); background: var(--mj-bg-surface);\n font-size: 12.5px; font-weight: 600; color: var(--mj-text-secondary); cursor: grab;\n}\n.ps-pchip i { font-size: 12px; color: var(--mj-text-inverse); width: 20px; height: 20px; border-radius: 5px; display: grid; place-items: center; }\n.ps-pchip.s i { background: var(--ps-node-source); }\n.ps-pchip.f i { background: var(--ps-node-feature); }\n.ps-pchip.e i { background: var(--ps-node-embedding); }\n.ps-pchip.t i { background: var(--ps-node-target); }\n.ps-pchip.a i { background: var(--ps-node-algorithm); }\n\n/* segmented control */\n.ps-seg { display: inline-flex; border: 1px solid var(--mj-border-default); border-radius: 8px; overflow: hidden; }\n.ps-seg button {\n border: none; background: var(--mj-bg-surface); color: var(--mj-text-secondary);\n padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer;\n border-right: 1px solid var(--mj-border-default);\n}\n.ps-seg button:last-child { border-right: none; }\n.ps-seg button.on { background: var(--mj-brand-primary); color: var(--mj-text-inverse); }\n\n/* field control */\n.ps-field { margin-bottom: 14px; }\n.ps-field > label {\n display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; margin-bottom: 6px;\n}\n.ps-input {\n width: 100%; padding: 8px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; background: var(--mj-bg-surface); color: var(--mj-text-primary);\n box-sizing: border-box;\n}\n.ps-input:focus { outline: none; border-color: var(--mj-brand-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent); }\n\n/* loading container */\n.ps-loading { display: flex; align-items: center; justify-content: center; padding: 60px 0; }\n\n/* ---- empty / prompt states ---- */\n.ps-empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n text-align: center; gap: 10px; padding: 56px 24px; color: var(--mj-text-muted);\n}\n.ps-empty .ps-empty-ico {\n width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-disabled); font-size: 24px;\n}\n.ps-empty h3 { margin: 4px 0 0; font-size: 16px; font-weight: 650; color: var(--mj-text-secondary); }\n.ps-empty p { margin: 0; max-width: 420px; font-size: 13px; line-height: 1.5; }\n\n/* ---- confirm modal ---- */\n.ps-modal-backdrop {\n position: fixed; inset: 0; z-index: 1000;\n background: var(--mj-bg-overlay);\n display: flex; align-items: center; justify-content: center; padding: 24px;\n}\n.ps-modal {\n width: 100%; max-width: 480px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default); border-radius: 14px;\n box-shadow: var(--mj-shadow-lg, var(--mj-shadow-sm)); overflow: hidden;\n}\n.ps-modal-head {\n display: flex; align-items: center; gap: 12px; padding: 18px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-modal-head .ico {\n width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;\n font-size: 16px; flex: 0 0 auto;\n background: var(--mj-status-info-bg); color: var(--mj-status-info-text);\n}\n.ps-modal-head.warn .ico { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-modal-head.danger .ico { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-modal-head h3 { margin: 0; font-size: 15.5px; font-weight: 650; color: var(--mj-text-primary); }\n.ps-modal-body { padding: 18px 20px; font-size: 13.5px; line-height: 1.55; color: var(--mj-text-secondary); }\n.ps-modal-body .ps-field { margin-top: 14px; margin-bottom: 0; }\n.ps-modal-foot {\n display: flex; align-items: center; gap: 10px; padding: 14px 20px;\n border-top: 1px solid var(--mj-border-subtle); background: var(--mj-bg-surface-card);\n}\n.ps-modal-foot .ps-spacer { flex: 1; }\n", "// Training Pipelines \u2014 real visual DAG builder driven by each pipeline's persisted spec.\n\n.ps-pipelines { display: flex; flex-direction: column; gap: 14px; }\n\n// Pipeline picker bar\n.ps-pipelines .pl-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n.ps-pipelines .pl-pill {\n display: inline-flex; align-items: center; gap: 8px; cursor: pointer;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary); border-radius: 999px; padding: 6px 12px; font-size: 13px;\n}\n.ps-pipelines .pl-pill:hover { background: var(--mj-bg-surface-hover); }\n.ps-pipelines .pl-pill.on {\n border-color: var(--mj-brand-primary); color: var(--mj-text-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.ps-pipelines .builder { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start; }\n@media (max-width: 1080px) { .ps-pipelines .builder { grid-template-columns: 1fr; } }\n\n.ps-pipelines .canvas-wrap { display: flex; flex-direction: column; min-width: 0; }\n.ps-pipelines .canvas-bar {\n display: flex; align-items: center; gap: 10px; flex-wrap: wrap;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-bottom: none; border-radius: 10px 10px 0 0; padding: 12px 14px;\n}\n/* The DAG canvas is sized in px by the layered layout (inline width/height) and\n may exceed the 1fr column width, so allow it to scroll rather than clip the\n right-most layers. min-height keeps an empty/short graph from collapsing. */\n.ps-pipelines .ps-flow.big {\n border-radius: 0;\n min-height: 460px;\n max-width: 100%;\n overflow: auto;\n}\n/* Pin every node to a fixed height so its port (top:50%) lines up exactly with\n the SVG edge anchor (node.y + NODE_H/2). NODE_H in the component = 86. */\n.ps-pipelines .ps-flow.big .ps-node {\n height: 86px;\n display: flex;\n flex-direction: column;\n}\n.ps-pipelines .ps-flow.big .ps-node .nb { flex: 1; min-height: 0; }\n.ps-pipelines .flow-toolbar {\n display: flex; align-items: center; gap: 8px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-top: none; border-radius: 0 0 10px 10px; padding: 10px 14px;\n}\n.ps-pipelines .legend { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--mj-text-secondary); flex-wrap: wrap; }\n.ps-pipelines .legend span { display: inline-flex; align-items: center; gap: 6px; }\n.ps-pipelines .legend .sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }\n.ps-pipelines .legend .sw.src { background: var(--ps-node-source); }\n.ps-pipelines .legend .sw.feat { background: var(--ps-node-feature); }\n.ps-pipelines .legend .sw.emb { background: var(--ps-node-embedding); }\n.ps-pipelines .legend .sw.target { background: var(--ps-node-target); }\n.ps-pipelines .legend .sw.algo { background: var(--ps-node-algorithm); }\n\n/* inspector */\n.ps-pipelines .inspector .insp { position: sticky; top: 0; }\n.ps-pipelines .ihead { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n.ps-pipelines .ihead h3 { font-size: 14px; color: var(--mj-text-primary); margin: 0; }\n.ps-pipelines .ihead .tile {\n width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 13px; flex: 0 0 auto; background: var(--ps-node-feature);\n}\n.ps-pipelines .ihead .tile[data-type='src'] { background: var(--ps-node-source); }\n.ps-pipelines .ihead .tile[data-type='emb'] { background: var(--ps-node-embedding); }\n.ps-pipelines .ihead .tile[data-type='target'] { background: var(--ps-node-target); }\n.ps-pipelines .ihead .tile[data-type='algo'] { background: var(--ps-node-algorithm); }\n.ps-pipelines .ihead .tile[data-type='output'] { background: var(--mj-status-success); }\n\n// Palette chips are interactive buttons in the editor\n.ps-pipelines .canvas-bar .ps-pchip { cursor: pointer; border: none; }\n.ps-pipelines .canvas-bar .ps-pchip:hover { filter: brightness(1.08); }\n\n// Inspector edit fields\n.ps-pipelines .ps-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.ps-pipelines .ps-field > label { font-size: 12px; font-weight: 650; color: var(--mj-text-muted); }\n.ps-pipelines .inputs-list { display: flex; flex-direction: column; gap: 4px; }\n.ps-pipelines .inp-row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--mj-text-secondary); cursor: pointer; }\n\n// Empty-state CTA spacing\n.ps-pipelines .ps-empty button { margin-top: 16px; }\n"], encapsulation: 2 });
|
|
1365
|
+
} }, dependencies: [CommonModule, i1.NgClass, MJButtonDirective], styles: ["/* ============================================================================\n Predictive Studio \u2014 shared panel styles (design-token compliant)\n Maps the mockup design system onto MemberJunction semantic --mj-* tokens.\n Loaded by every PS panel component (styleUrls) under ViewEncapsulation.None,\n so the class names are global within the PS dashboard subtree.\n No hardcoded colors except the intentional categorical node/algorithm palette\n (declared once as --ps-* custom props below) which must stay distinct across\n light/dark to remain readable as diagram accents.\n ============================================================================ */\n\n/* Categorical accents for DAG node types + algorithm chips. These are\n data-visualization colors that must remain distinct regardless of theme\n (allowed exception #3 in the design-token rules). */\n.ps-panel {\n --ps-node-source: #6b7280;\n --ps-node-feature: #2050c8;\n --ps-node-embedding: #7b3ff0;\n --ps-node-target: #1f9d57;\n --ps-node-algorithm: #d98213;\n /* budget-gauge categorical accents (reuse the node palette so light/dark stay distinct) */\n --ps-gauge-cost: var(--ps-node-algorithm);\n --ps-gauge-iterations: var(--ps-node-feature);\n}\n\n.ps-panel {\n display: block;\n height: 100%;\n}\n\n/* ---- generic layout helpers ---- */\n.ps-row { display: flex; gap: 16px; }\n.ps-col { display: flex; flex-direction: column; gap: 16px; }\n.ps-wrap { flex-wrap: wrap; }\n.ps-spacer { flex: 1; }\n.ps-muted { color: var(--mj-text-muted); }\n.ps-small { font-size: 12.5px; }\n.ps-mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 12.5px; }\n.ps-section-title {\n font-size: 12px; text-transform: uppercase; letter-spacing: .06em;\n color: var(--mj-text-muted); margin: 4px 0 2px; font-weight: 700;\n}\n\n/* ---- cards ---- */\n.ps-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n.ps-card-head {\n display: flex; align-items: center; gap: 10px;\n padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-card-head h3 { font-size: 14.5px; margin: 0; font-weight: 650; color: var(--mj-text-primary); }\n.ps-card-body { padding: 16px; }\n\n/* ---- KPI tiles ---- */\n.ps-kpi {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-radius: 8px; padding: 16px 18px;\n}\n.ps-kpi .label { font-size: 12px; color: var(--mj-text-muted); font-weight: 600; }\n.ps-kpi .val { font-size: 26px; font-weight: 720; letter-spacing: -.02em; margin-top: 2px; color: var(--mj-text-primary); }\n\n/* ---- badges ---- */\n.ps-badge {\n display: inline-flex; align-items: center; gap: 5px;\n padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 650; line-height: 1.7;\n}\n.ps-badge.gray { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n.ps-badge.blue { background: var(--mj-status-info-bg); color: var(--mj-status-info-text); }\n.ps-badge.green { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n.ps-badge.amber { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-badge.red { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }\n\n/* recommendation-level chips (the ranking matrix payoff) */\n.ps-lvl {\n display: inline-flex; align-items: center; justify-content: center;\n min-width: 92px; padding: 4px 10px; border-radius: 7px;\n font-weight: 650; font-size: 11.5px; color: var(--mj-text-inverse);\n}\n.ps-lvl-Primary { background: var(--mj-status-success); }\n.ps-lvl-Strong { background: var(--mj-status-info); }\n.ps-lvl-Viable { background: var(--mj-status-warning); }\n.ps-lvl-Weak { background: var(--mj-text-disabled); }\n.ps-lvl-NotRecommended { background: var(--mj-bg-surface-sunken); color: var(--mj-text-muted); }\n\n/* ---- tags ---- */\n.ps-tag {\n display: inline-block; padding: 2px 8px; border-radius: 6px;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary);\n font-size: 11.5px; font-weight: 600;\n}\n.ps-tag.muted { opacity: .6; }\n.ps-divider { height: 1px; background: var(--mj-border-subtle); margin: 8px 0; }\n\n/* ---- tables ---- */\n.ps-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n.ps-table th {\n text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; padding: 9px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n.ps-table td { padding: 11px 12px; border-bottom: 1px solid var(--mj-border-subtle); color: var(--mj-text-primary); }\n.ps-table tr:hover td { background: var(--mj-bg-surface-hover); }\n.ps-table .num { text-align: right; font-variant-numeric: tabular-nums; }\n\n.ps-rank {\n width: 22px; height: 22px; border-radius: 6px; background: var(--mj-bg-surface-sunken);\n display: inline-grid; place-items: center; font-weight: 700; font-size: 11.5px; color: var(--mj-text-secondary);\n}\n.ps-rank.gold { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n\n/* ---- progress bars ---- */\n.ps-bar { height: 8px; border-radius: 999px; background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-bar > span { display: block; height: 100%; border-radius: 999px; background: var(--mj-brand-primary); }\n.ps-bar.warn > span { background: var(--mj-status-warning); }\n.ps-bar.run > span { background: var(--mj-brand-primary); }\n\n.ps-fbar { display: grid; grid-template-columns: minmax(150px, 1.3fr) 2fr 56px; align-items: center; gap: 14px; padding: 8px 0; }\n.ps-fbar + .ps-fbar { border-top: 1px solid var(--mj-border-subtle); }\n.ps-fbar .track { height: 10px; border-radius: var(--mj-radius-full); background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-fbar .track > span { display: block; height: 100%; border-radius: var(--mj-radius-full); background: var(--mj-brand-primary); }\n.ps-fbar .track > span.warn { background: var(--mj-status-warning); }\n.ps-fbar .name { color: var(--mj-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.ps-fbar > .ps-mono { text-align: right; color: var(--mj-text-secondary); font-variant-numeric: tabular-nums; }\n\n/* gauge */\n.ps-gauge {\n position: relative; width: 64px; height: 64px; border-radius: 50%; flex: 0 0 auto;\n background: conic-gradient(var(--ps-gauge-color, var(--mj-brand-primary)) calc(var(--ps-p, 40) * 1%), var(--mj-bg-surface-sunken) 0);\n display: grid; place-items: center;\n}\n.ps-gauge::after { content: ''; position: absolute; inset: 9px; background: var(--mj-bg-surface); border-radius: 50%; }\n.ps-gauge .g-val { position: relative; font-weight: 720; font-size: 14px; color: var(--mj-text-primary); }\n\n/* warning / info callouts */\n.ps-callout { display: flex; gap: 11px; padding: 12px 14px; border-radius: 10px; border: 1px solid; }\n.ps-callout.warn { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); color: var(--mj-status-warning-text); }\n.ps-callout.info { background: var(--mj-status-info-bg); border-color: var(--mj-status-info-border); color: var(--mj-status-info-text); }\n.ps-callout.success { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); color: var(--mj-status-success-text); }\n.ps-callout i { font-size: 16px; margin-top: 1px; }\n\n/* lifecycle stepper */\n.ps-stepper { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }\n.ps-step { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.ps-step .pip {\n width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--mj-border-strong);\n display: grid; place-items: center; font-size: 11px;\n}\n.ps-step.done { color: var(--mj-status-success-text); }\n.ps-step.done .pip { background: var(--mj-status-success); border-color: var(--mj-status-success); color: var(--mj-text-inverse); }\n.ps-step.curr { color: var(--mj-brand-primary); }\n.ps-step.curr .pip { border-color: var(--mj-brand-primary); color: var(--mj-brand-primary); }\n.ps-step .ln { width: 26px; height: 2px; background: var(--mj-border-strong); }\n\n/* ---- DAG flow canvas ---- */\n.ps-flow {\n position: relative;\n background:\n linear-gradient(var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n linear-gradient(90deg, var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default); border-radius: 10px;\n min-height: 620px; overflow: hidden;\n}\n.ps-node {\n position: absolute; width: 190px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong); border-left-width: 3px; border-radius: 8px;\n cursor: pointer;\n}\n.ps-node .nh {\n display: flex; align-items: center; gap: 8px; padding: 9px 11px;\n border-bottom: 1px solid var(--mj-border-subtle); font-weight: 650; font-size: 12.5px; color: var(--mj-text-primary);\n}\n.ps-node .nh i.tile {\n width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 12px; flex: 0 0 auto;\n}\n.ps-node .nh .ps-tag { margin-left: auto; }\n.ps-node .nb { padding: 9px 11px; font-size: 12px; color: var(--mj-text-secondary); }\n.ps-node .nb-row { display: flex; justify-content: space-between; gap: 8px; padding: 2px 0; }\n.ps-node .nb-row .k { color: var(--mj-text-muted); }\n.ps-node.src { border-left-color: var(--ps-node-source); }\n.ps-node.src .nh i.tile { background: var(--ps-node-source); }\n.ps-node.feat { border-left-color: var(--ps-node-feature); }\n.ps-node.feat .nh i.tile { background: var(--ps-node-feature); }\n.ps-node.emb { border-left-color: var(--ps-node-embedding); }\n.ps-node.emb .nh i.tile { background: var(--ps-node-embedding); }\n.ps-node.target { border-left-color: var(--ps-node-target); }\n.ps-node.target .nh i.tile { background: var(--ps-node-target); }\n.ps-node.algo { border-left-color: var(--ps-node-algorithm); }\n.ps-node.algo .nh i.tile { background: var(--ps-node-algorithm); }\n.ps-node.output { border-left-color: var(--mj-status-success); }\n.ps-node.output .nh i.tile { background: var(--mj-status-success); }\n.ps-node.selected {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n}\n.ps-node .port {\n position: absolute; width: 11px; height: 11px; border-radius: 50%;\n background: var(--mj-bg-surface); border: 2px solid var(--mj-brand-primary);\n top: 50%; transform: translateY(-50%);\n}\n.ps-node .port.in { left: -6px; }\n.ps-node .port.out { right: -6px; }\nsvg.ps-edges { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }\nsvg.ps-edges path { stroke: color-mix(in srgb, var(--mj-brand-primary) 45%, transparent); stroke-width: 2; fill: none; }\n\n/* palette chips */\n.ps-pchip {\n display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 8px;\n border: 1px dashed var(--mj-border-strong); background: var(--mj-bg-surface);\n font-size: 12.5px; font-weight: 600; color: var(--mj-text-secondary); cursor: grab;\n}\n.ps-pchip i { font-size: 12px; color: var(--mj-text-inverse); width: 20px; height: 20px; border-radius: 5px; display: grid; place-items: center; }\n.ps-pchip.s i { background: var(--ps-node-source); }\n.ps-pchip.f i { background: var(--ps-node-feature); }\n.ps-pchip.e i { background: var(--ps-node-embedding); }\n.ps-pchip.t i { background: var(--ps-node-target); }\n.ps-pchip.a i { background: var(--ps-node-algorithm); }\n\n/* segmented control */\n.ps-seg { display: inline-flex; border: 1px solid var(--mj-border-default); border-radius: 8px; overflow: hidden; }\n.ps-seg button {\n border: none; background: var(--mj-bg-surface); color: var(--mj-text-secondary);\n padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer;\n border-right: 1px solid var(--mj-border-default);\n}\n.ps-seg button:last-child { border-right: none; }\n.ps-seg button.on { background: var(--mj-brand-primary); color: var(--mj-text-inverse); }\n\n/* field control */\n.ps-field { margin-bottom: 14px; }\n.ps-field > label {\n display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; margin-bottom: 6px;\n}\n.ps-input {\n width: 100%; padding: 8px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; background: var(--mj-bg-surface); color: var(--mj-text-primary);\n box-sizing: border-box;\n}\n.ps-input:focus { outline: none; border-color: var(--mj-brand-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent); }\n\n/* loading container */\n.ps-loading { display: flex; align-items: center; justify-content: center; padding: 60px 0; }\n\n/* ---- empty / prompt states ---- */\n.ps-empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n text-align: center; gap: 10px; padding: 56px 24px; color: var(--mj-text-muted);\n}\n.ps-empty .ps-empty-ico {\n width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-disabled); font-size: 24px;\n}\n.ps-empty h3 { margin: 4px 0 0; font-size: 16px; font-weight: 650; color: var(--mj-text-secondary); }\n.ps-empty p { margin: 0; max-width: 420px; font-size: 13px; line-height: 1.5; }\n\n/* ---- confirm modal ---- */\n.ps-modal-backdrop {\n position: fixed; inset: 0; z-index: 1000;\n background: var(--mj-bg-overlay);\n display: flex; align-items: center; justify-content: center; padding: 24px;\n}\n.ps-modal {\n width: 100%; max-width: 480px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default); border-radius: 14px;\n box-shadow: var(--mj-shadow-lg, var(--mj-shadow-sm)); overflow: hidden;\n}\n.ps-modal-head {\n display: flex; align-items: center; gap: 12px; padding: 18px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-modal-head .ico {\n width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;\n font-size: 16px; flex: 0 0 auto;\n background: var(--mj-status-info-bg); color: var(--mj-status-info-text);\n}\n.ps-modal-head.warn .ico { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-modal-head.danger .ico { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-modal-head h3 { margin: 0; font-size: 15.5px; font-weight: 650; color: var(--mj-text-primary); }\n.ps-modal-body { padding: 18px 20px; font-size: 13.5px; line-height: 1.55; color: var(--mj-text-secondary); }\n.ps-modal-body .ps-field { margin-top: 14px; margin-bottom: 0; }\n.ps-modal-foot {\n display: flex; align-items: center; gap: 10px; padding: 14px 20px;\n border-top: 1px solid var(--mj-border-subtle); background: var(--mj-bg-surface-card);\n}\n.ps-modal-foot .ps-spacer { flex: 1; }\n", "/* Training Pipelines \u2014 real visual DAG builder driven by each pipeline's persisted spec. */\n\n.ps-pipelines { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 0; }\n\n/* Pipeline picker bar */\n.ps-pipelines .pl-picker { display: flex; align-items: center; gap: 8px; overflow-x: auto; padding-bottom: 6px; }\n.ps-pipelines .pl-toolbar { display: flex; align-items: center; gap: 8px; margin: 8px 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--mj-border-subtle); }\n.ps-pipelines .pl-pill {\n display: inline-flex; align-items: center; gap: 8px; cursor: pointer; flex: 0 0 auto; max-width: 260px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary); border-radius: 999px; padding: 6px 12px; font-size: 13px;\n}\n.ps-pipelines .pl-pill .pl-pill-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.ps-pipelines .pl-pill:hover { background: var(--mj-bg-surface-hover); }\n.ps-pipelines .pl-pill.on {\n border-color: var(--mj-brand-primary); color: var(--mj-text-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n/* The builder fills the remaining panel height; each column scrolls on its own. */\n.ps-pipelines .builder {\n flex: 1; min-height: 0;\n display: grid; grid-template-columns: 1fr 320px; grid-template-rows: minmax(0, 1fr); gap: 16px;\n}\n@media (max-width: 1080px) {\n .ps-pipelines .builder { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1.4fr) minmax(0, 1fr); }\n}\n\n.ps-pipelines .canvas-wrap { display: flex; flex-direction: column; min-width: 0; min-height: 0; }\n.ps-pipelines .canvas-bar {\n display: flex; align-items: center; gap: 10px; flex-wrap: wrap;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-bottom: none; border-radius: 10px 10px 0 0; padding: 12px 14px;\n}\n/* The DAG canvas is sized in px by the layered layout (inline width/height) and\n may exceed the column, so it scrolls internally (both axes) while the column\n itself stays put. flex:1 makes it absorb the remaining column height. */\n.ps-pipelines .ps-flow.big {\n border-radius: 0;\n flex: 1 1 auto;\n min-height: 0;\n max-width: 100%;\n overflow: auto;\n}\n/* Pin every node to a fixed height so its port (top:50%) lines up exactly with\n the SVG edge anchor (node.y + NODE_H/2). NODE_H in the component = 86. */\n.ps-pipelines .ps-flow.big .ps-node {\n height: 86px;\n display: flex;\n flex-direction: column;\n}\n.ps-pipelines .ps-flow.big .ps-node .nb { flex: 1; min-height: 0; }\n.ps-pipelines .flow-toolbar {\n display: flex; align-items: center; gap: 8px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-top: none; border-radius: 0 0 10px 10px; padding: 10px 14px;\n}\n.ps-pipelines .legend { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--mj-text-secondary); flex-wrap: wrap; }\n.ps-pipelines .legend span { display: inline-flex; align-items: center; gap: 6px; }\n.ps-pipelines .legend .sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }\n.ps-pipelines .legend .sw.src { background: var(--ps-node-source); }\n.ps-pipelines .legend .sw.feat { background: var(--ps-node-feature); }\n.ps-pipelines .legend .sw.emb { background: var(--ps-node-embedding); }\n.ps-pipelines .legend .sw.target { background: var(--ps-node-target); }\n.ps-pipelines .legend .sw.algo { background: var(--ps-node-algorithm); }\n\n/* inspector \u2014 its own scroll column, independent of the canvas. NOTE: .inspector is\n also a .ps-col (display:flex column), so its card children ARE flex items \u2014 without\n flex-shrink:0 they compress to fit (scrollHeight == clientHeight, verified live) and\n the column never scrolls. These child rules are load-bearing, not decorative. */\n.ps-pipelines .inspector {\n min-height: 0;\n overflow-y: auto;\n}\n.ps-pipelines .inspector > * { flex: 0 0 auto; }\n.ps-pipelines .inspector .insp { position: static; }\n.ps-pipelines .ihead { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n.ps-pipelines .ihead h3 { font-size: 14px; color: var(--mj-text-primary); margin: 0; }\n.ps-pipelines .ihead .tile {\n width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 13px; flex: 0 0 auto; background: var(--ps-node-feature);\n}\n.ps-pipelines .ihead .tile[data-type='src'] { background: var(--ps-node-source); }\n.ps-pipelines .ihead .tile[data-type='emb'] { background: var(--ps-node-embedding); }\n.ps-pipelines .ihead .tile[data-type='target'] { background: var(--ps-node-target); }\n.ps-pipelines .ihead .tile[data-type='algo'] { background: var(--ps-node-algorithm); }\n.ps-pipelines .ihead .tile[data-type='output'] { background: var(--mj-status-success); }\n\n/* Palette chips are interactive buttons in the editor */\n.ps-pipelines .canvas-bar .ps-pchip { cursor: pointer; border: none; }\n.ps-pipelines .canvas-bar .ps-pchip:hover { filter: brightness(1.08); }\n\n/* Inspector edit fields */\n.ps-pipelines .ps-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.ps-pipelines .ps-field > label { font-size: 12px; font-weight: 650; color: var(--mj-text-muted); }\n.ps-pipelines .inputs-list { display: flex; flex-direction: column; gap: 4px; }\n.ps-pipelines .inp-row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--mj-text-secondary); cursor: pointer; }\n\n/* Empty-state CTA spacing */\n.ps-pipelines .ps-empty button { margin-top: 16px; }\n"], encapsulation: 2 });
|
|
1361
1366
|
}
|
|
1362
1367
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PSPipelinesComponent, [{
|
|
1363
1368
|
type: Component,
|
|
@@ -1378,17 +1383,19 @@ export class PSPipelinesComponent {
|
|
|
1378
1383
|
</button>
|
|
1379
1384
|
</div>
|
|
1380
1385
|
} @else {
|
|
1381
|
-
<!-- Pipeline picker
|
|
1382
|
-
<div class="pl-
|
|
1386
|
+
<!-- Pipeline picker (its own scrollable row) -->
|
|
1387
|
+
<div class="pl-picker" data-testid="ps-pipelines-picker">
|
|
1383
1388
|
@for (p of pipelines; track p.ID) {
|
|
1384
1389
|
<button class="pl-pill" [class.on]="isSelectedPipeline(p)"
|
|
1385
|
-
data-testid="ps-pipelines-pill" (click)="selectPipeline(p.ID)">
|
|
1386
|
-
<i class="fa-solid fa-diagram-project"></i> {{ p.Name }}
|
|
1390
|
+
data-testid="ps-pipelines-pill" (click)="selectPipeline(p.ID)" [title]="p.Name">
|
|
1391
|
+
<i class="fa-solid fa-diagram-project"></i> <span class="pl-pill-name">{{ p.Name }}</span>
|
|
1387
1392
|
<span class="ps-badge" [class]="statusClass(p.Status)">{{ p.Status }}</span>
|
|
1388
1393
|
</button>
|
|
1389
1394
|
}
|
|
1390
|
-
|
|
1391
|
-
|
|
1395
|
+
</div>
|
|
1396
|
+
|
|
1397
|
+
<!-- Toolbar for the selected pipeline (its own row) -->
|
|
1398
|
+
<div class="pl-toolbar">
|
|
1392
1399
|
<button mjButton variant="primary" size="sm" data-testid="ps-pipelines-save" [disabled]="!dirty || busy" (click)="save()">
|
|
1393
1400
|
<i class="fa-solid fa-floppy-disk"></i> Save
|
|
1394
1401
|
</button>
|
|
@@ -1401,6 +1408,8 @@ export class PSPipelinesComponent {
|
|
|
1401
1408
|
<button mjButton variant="secondary" size="sm" (click)="refine()">
|
|
1402
1409
|
<i class="fa-solid fa-wand-magic-sparkles"></i> Agent
|
|
1403
1410
|
</button>
|
|
1411
|
+
<span class="ps-spacer"></span>
|
|
1412
|
+
@if (dirty) { <span class="ps-tag amber" data-testid="ps-pipelines-dirty"><i class="fa-solid fa-pen"></i> Unsaved</span> }
|
|
1404
1413
|
</div>
|
|
1405
1414
|
|
|
1406
1415
|
<div class="builder">
|
|
@@ -1574,7 +1583,7 @@ export class PSPipelinesComponent {
|
|
|
1574
1583
|
</div>
|
|
1575
1584
|
}
|
|
1576
1585
|
</div>
|
|
1577
|
-
`, styles: ["/* ============================================================================\n Predictive Studio \u2014 shared panel styles (design-token compliant)\n Maps the mockup design system onto MemberJunction semantic --mj-* tokens.\n Loaded by every PS panel component (styleUrls) under ViewEncapsulation.None,\n so the class names are global within the PS dashboard subtree.\n No hardcoded colors except the intentional categorical node/algorithm palette\n (declared once as --ps-* custom props below) which must stay distinct across\n light/dark to remain readable as diagram accents.\n ============================================================================ */\n\n/* Categorical accents for DAG node types + algorithm chips. These are\n data-visualization colors that must remain distinct regardless of theme\n (allowed exception #3 in the design-token rules). */\n.ps-panel {\n --ps-node-source: #6b7280;\n --ps-node-feature: #2050c8;\n --ps-node-embedding: #7b3ff0;\n --ps-node-target: #1f9d57;\n --ps-node-algorithm: #d98213;\n /* budget-gauge categorical accents (reuse the node palette so light/dark stay distinct) */\n --ps-gauge-cost: var(--ps-node-algorithm);\n --ps-gauge-iterations: var(--ps-node-feature);\n}\n\n.ps-panel {\n display: block;\n height: 100%;\n}\n\n/* ---- generic layout helpers ---- */\n.ps-row { display: flex; gap: 16px; }\n.ps-col { display: flex; flex-direction: column; gap: 16px; }\n.ps-wrap { flex-wrap: wrap; }\n.ps-spacer { flex: 1; }\n.ps-muted { color: var(--mj-text-muted); }\n.ps-small { font-size: 12.5px; }\n.ps-mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 12.5px; }\n.ps-section-title {\n font-size: 12px; text-transform: uppercase; letter-spacing: .06em;\n color: var(--mj-text-muted); margin: 4px 0 2px; font-weight: 700;\n}\n\n/* ---- cards ---- */\n.ps-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n box-shadow: var(--mj-shadow-sm);\n overflow: hidden;\n}\n.ps-card-head {\n display: flex; align-items: center; gap: 10px;\n padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-card-head h3 { font-size: 14.5px; margin: 0; font-weight: 650; color: var(--mj-text-primary); }\n.ps-card-body { padding: 16px; }\n\n/* ---- KPI tiles ---- */\n.ps-kpi {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-radius: 10px; padding: 16px 18px; box-shadow: var(--mj-shadow-sm);\n}\n.ps-kpi .label { font-size: 12px; color: var(--mj-text-muted); font-weight: 600; }\n.ps-kpi .val { font-size: 26px; font-weight: 720; letter-spacing: -.02em; margin-top: 2px; color: var(--mj-text-primary); }\n\n/* ---- badges ---- */\n.ps-badge {\n display: inline-flex; align-items: center; gap: 5px;\n padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 650; line-height: 1.7;\n}\n.ps-badge.gray { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n.ps-badge.blue { background: var(--mj-status-info-bg); color: var(--mj-status-info-text); }\n.ps-badge.green { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n.ps-badge.amber { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-badge.red { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }\n\n/* recommendation-level chips (the ranking matrix payoff) */\n.ps-lvl {\n display: inline-flex; align-items: center; justify-content: center;\n min-width: 92px; padding: 4px 10px; border-radius: 7px;\n font-weight: 650; font-size: 11.5px; color: var(--mj-text-inverse);\n}\n.ps-lvl-Primary { background: var(--mj-status-success); }\n.ps-lvl-Strong { background: var(--mj-status-info); }\n.ps-lvl-Viable { background: var(--mj-status-warning); }\n.ps-lvl-Weak { background: var(--mj-text-disabled); }\n.ps-lvl-NotRecommended { background: var(--mj-bg-surface-sunken); color: var(--mj-text-muted); }\n\n/* ---- tags ---- */\n.ps-tag {\n display: inline-block; padding: 2px 8px; border-radius: 6px;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary);\n font-size: 11.5px; font-weight: 600;\n}\n.ps-tag.muted { opacity: .6; }\n.ps-divider { height: 1px; background: var(--mj-border-subtle); margin: 8px 0; }\n\n/* ---- tables ---- */\n.ps-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n.ps-table th {\n text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; padding: 9px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n.ps-table td { padding: 11px 12px; border-bottom: 1px solid var(--mj-border-subtle); color: var(--mj-text-primary); }\n.ps-table tr:hover td { background: var(--mj-bg-surface-hover); }\n.ps-table .num { text-align: right; font-variant-numeric: tabular-nums; }\n\n.ps-rank {\n width: 22px; height: 22px; border-radius: 6px; background: var(--mj-bg-surface-sunken);\n display: inline-grid; place-items: center; font-weight: 700; font-size: 11.5px; color: var(--mj-text-secondary);\n}\n.ps-rank.gold { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n\n/* ---- progress bars ---- */\n.ps-bar { height: 8px; border-radius: 999px; background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-bar > span { display: block; height: 100%; border-radius: 999px; background: var(--mj-brand-primary); }\n.ps-bar.warn > span { background: var(--mj-status-warning); }\n.ps-bar.run > span { background: var(--mj-brand-primary); }\n\n.ps-fbar { display: grid; grid-template-columns: 150px 1fr 48px; align-items: center; gap: 10px; padding: 5px 0; }\n.ps-fbar .track { height: 14px; border-radius: 5px; background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-fbar .track > span { display: block; height: 100%; background: var(--mj-brand-primary); }\n.ps-fbar .track > span.warn { background: var(--mj-status-warning); }\n.ps-fbar .name { color: var(--mj-text-secondary); }\n\n/* gauge */\n.ps-gauge {\n position: relative; width: 64px; height: 64px; border-radius: 50%; flex: 0 0 auto;\n background: conic-gradient(var(--ps-gauge-color, var(--mj-brand-primary)) calc(var(--ps-p, 40) * 1%), var(--mj-bg-surface-sunken) 0);\n display: grid; place-items: center;\n}\n.ps-gauge::after { content: ''; position: absolute; inset: 9px; background: var(--mj-bg-surface); border-radius: 50%; }\n.ps-gauge .g-val { position: relative; font-weight: 720; font-size: 14px; color: var(--mj-text-primary); }\n\n/* warning / info callouts */\n.ps-callout { display: flex; gap: 11px; padding: 12px 14px; border-radius: 10px; border: 1px solid; }\n.ps-callout.warn { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); color: var(--mj-status-warning-text); }\n.ps-callout.info { background: var(--mj-status-info-bg); border-color: var(--mj-status-info-border); color: var(--mj-status-info-text); }\n.ps-callout.success { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); color: var(--mj-status-success-text); }\n.ps-callout i { font-size: 16px; margin-top: 1px; }\n\n/* lifecycle stepper */\n.ps-stepper { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }\n.ps-step { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.ps-step .pip {\n width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--mj-border-strong);\n display: grid; place-items: center; font-size: 11px;\n}\n.ps-step.done { color: var(--mj-status-success-text); }\n.ps-step.done .pip { background: var(--mj-status-success); border-color: var(--mj-status-success); color: var(--mj-text-inverse); }\n.ps-step.curr { color: var(--mj-brand-primary); }\n.ps-step.curr .pip { border-color: var(--mj-brand-primary); color: var(--mj-brand-primary); }\n.ps-step .ln { width: 26px; height: 2px; background: var(--mj-border-strong); }\n\n/* ---- DAG flow canvas ---- */\n.ps-flow {\n position: relative;\n background:\n linear-gradient(var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n linear-gradient(90deg, var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default); border-radius: 10px;\n min-height: 620px; overflow: hidden;\n}\n.ps-node {\n position: absolute; width: 190px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong); border-left-width: 3px; border-radius: 10px;\n box-shadow: var(--mj-shadow-sm); cursor: pointer;\n}\n.ps-node .nh {\n display: flex; align-items: center; gap: 8px; padding: 9px 11px;\n border-bottom: 1px solid var(--mj-border-subtle); font-weight: 650; font-size: 12.5px; color: var(--mj-text-primary);\n}\n.ps-node .nh i.tile {\n width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 12px; flex: 0 0 auto;\n}\n.ps-node .nh .ps-tag { margin-left: auto; }\n.ps-node .nb { padding: 9px 11px; font-size: 12px; color: var(--mj-text-secondary); }\n.ps-node .nb-row { display: flex; justify-content: space-between; gap: 8px; padding: 2px 0; }\n.ps-node .nb-row .k { color: var(--mj-text-muted); }\n.ps-node.src { border-left-color: var(--ps-node-source); }\n.ps-node.src .nh i.tile { background: var(--ps-node-source); }\n.ps-node.feat { border-left-color: var(--ps-node-feature); }\n.ps-node.feat .nh i.tile { background: var(--ps-node-feature); }\n.ps-node.emb { border-left-color: var(--ps-node-embedding); }\n.ps-node.emb .nh i.tile { background: var(--ps-node-embedding); }\n.ps-node.target { border-left-color: var(--ps-node-target); }\n.ps-node.target .nh i.tile { background: var(--ps-node-target); }\n.ps-node.algo { border-left-color: var(--ps-node-algorithm); }\n.ps-node.algo .nh i.tile { background: var(--ps-node-algorithm); }\n.ps-node.output { border-left-color: var(--mj-status-success); }\n.ps-node.output .nh i.tile { background: var(--mj-status-success); }\n.ps-node.selected {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n}\n.ps-node .port {\n position: absolute; width: 11px; height: 11px; border-radius: 50%;\n background: var(--mj-bg-surface); border: 2px solid var(--mj-brand-primary);\n top: 50%; transform: translateY(-50%);\n}\n.ps-node .port.in { left: -6px; }\n.ps-node .port.out { right: -6px; }\nsvg.ps-edges { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }\nsvg.ps-edges path { stroke: color-mix(in srgb, var(--mj-brand-primary) 45%, transparent); stroke-width: 2; fill: none; }\n\n/* palette chips */\n.ps-pchip {\n display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 8px;\n border: 1px dashed var(--mj-border-strong); background: var(--mj-bg-surface);\n font-size: 12.5px; font-weight: 600; color: var(--mj-text-secondary); cursor: grab;\n}\n.ps-pchip i { font-size: 12px; color: var(--mj-text-inverse); width: 20px; height: 20px; border-radius: 5px; display: grid; place-items: center; }\n.ps-pchip.s i { background: var(--ps-node-source); }\n.ps-pchip.f i { background: var(--ps-node-feature); }\n.ps-pchip.e i { background: var(--ps-node-embedding); }\n.ps-pchip.t i { background: var(--ps-node-target); }\n.ps-pchip.a i { background: var(--ps-node-algorithm); }\n\n/* segmented control */\n.ps-seg { display: inline-flex; border: 1px solid var(--mj-border-default); border-radius: 8px; overflow: hidden; }\n.ps-seg button {\n border: none; background: var(--mj-bg-surface); color: var(--mj-text-secondary);\n padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer;\n border-right: 1px solid var(--mj-border-default);\n}\n.ps-seg button:last-child { border-right: none; }\n.ps-seg button.on { background: var(--mj-brand-primary); color: var(--mj-text-inverse); }\n\n/* field control */\n.ps-field { margin-bottom: 14px; }\n.ps-field > label {\n display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; margin-bottom: 6px;\n}\n.ps-input {\n width: 100%; padding: 8px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; background: var(--mj-bg-surface); color: var(--mj-text-primary);\n box-sizing: border-box;\n}\n.ps-input:focus { outline: none; border-color: var(--mj-brand-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent); }\n\n/* loading container */\n.ps-loading { display: flex; align-items: center; justify-content: center; padding: 60px 0; }\n\n/* ---- empty / prompt states ---- */\n.ps-empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n text-align: center; gap: 10px; padding: 56px 24px; color: var(--mj-text-muted);\n}\n.ps-empty .ps-empty-ico {\n width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-disabled); font-size: 24px;\n}\n.ps-empty h3 { margin: 4px 0 0; font-size: 16px; font-weight: 650; color: var(--mj-text-secondary); }\n.ps-empty p { margin: 0; max-width: 420px; font-size: 13px; line-height: 1.5; }\n\n/* ---- confirm modal ---- */\n.ps-modal-backdrop {\n position: fixed; inset: 0; z-index: 1000;\n background: var(--mj-bg-overlay);\n display: flex; align-items: center; justify-content: center; padding: 24px;\n}\n.ps-modal {\n width: 100%; max-width: 480px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default); border-radius: 14px;\n box-shadow: var(--mj-shadow-lg, var(--mj-shadow-sm)); overflow: hidden;\n}\n.ps-modal-head {\n display: flex; align-items: center; gap: 12px; padding: 18px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-modal-head .ico {\n width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;\n font-size: 16px; flex: 0 0 auto;\n background: var(--mj-status-info-bg); color: var(--mj-status-info-text);\n}\n.ps-modal-head.warn .ico { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-modal-head.danger .ico { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-modal-head h3 { margin: 0; font-size: 15.5px; font-weight: 650; color: var(--mj-text-primary); }\n.ps-modal-body { padding: 18px 20px; font-size: 13.5px; line-height: 1.55; color: var(--mj-text-secondary); }\n.ps-modal-body .ps-field { margin-top: 14px; margin-bottom: 0; }\n.ps-modal-foot {\n display: flex; align-items: center; gap: 10px; padding: 14px 20px;\n border-top: 1px solid var(--mj-border-subtle); background: var(--mj-bg-surface-card);\n}\n.ps-modal-foot .ps-spacer { flex: 1; }\n", "// Training Pipelines \u2014 real visual DAG builder driven by each pipeline's persisted spec.\n\n.ps-pipelines { display: flex; flex-direction: column; gap: 14px; }\n\n// Pipeline picker bar\n.ps-pipelines .pl-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n.ps-pipelines .pl-pill {\n display: inline-flex; align-items: center; gap: 8px; cursor: pointer;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary); border-radius: 999px; padding: 6px 12px; font-size: 13px;\n}\n.ps-pipelines .pl-pill:hover { background: var(--mj-bg-surface-hover); }\n.ps-pipelines .pl-pill.on {\n border-color: var(--mj-brand-primary); color: var(--mj-text-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n.ps-pipelines .builder { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start; }\n@media (max-width: 1080px) { .ps-pipelines .builder { grid-template-columns: 1fr; } }\n\n.ps-pipelines .canvas-wrap { display: flex; flex-direction: column; min-width: 0; }\n.ps-pipelines .canvas-bar {\n display: flex; align-items: center; gap: 10px; flex-wrap: wrap;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-bottom: none; border-radius: 10px 10px 0 0; padding: 12px 14px;\n}\n/* The DAG canvas is sized in px by the layered layout (inline width/height) and\n may exceed the 1fr column width, so allow it to scroll rather than clip the\n right-most layers. min-height keeps an empty/short graph from collapsing. */\n.ps-pipelines .ps-flow.big {\n border-radius: 0;\n min-height: 460px;\n max-width: 100%;\n overflow: auto;\n}\n/* Pin every node to a fixed height so its port (top:50%) lines up exactly with\n the SVG edge anchor (node.y + NODE_H/2). NODE_H in the component = 86. */\n.ps-pipelines .ps-flow.big .ps-node {\n height: 86px;\n display: flex;\n flex-direction: column;\n}\n.ps-pipelines .ps-flow.big .ps-node .nb { flex: 1; min-height: 0; }\n.ps-pipelines .flow-toolbar {\n display: flex; align-items: center; gap: 8px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-top: none; border-radius: 0 0 10px 10px; padding: 10px 14px;\n}\n.ps-pipelines .legend { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--mj-text-secondary); flex-wrap: wrap; }\n.ps-pipelines .legend span { display: inline-flex; align-items: center; gap: 6px; }\n.ps-pipelines .legend .sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }\n.ps-pipelines .legend .sw.src { background: var(--ps-node-source); }\n.ps-pipelines .legend .sw.feat { background: var(--ps-node-feature); }\n.ps-pipelines .legend .sw.emb { background: var(--ps-node-embedding); }\n.ps-pipelines .legend .sw.target { background: var(--ps-node-target); }\n.ps-pipelines .legend .sw.algo { background: var(--ps-node-algorithm); }\n\n/* inspector */\n.ps-pipelines .inspector .insp { position: sticky; top: 0; }\n.ps-pipelines .ihead { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n.ps-pipelines .ihead h3 { font-size: 14px; color: var(--mj-text-primary); margin: 0; }\n.ps-pipelines .ihead .tile {\n width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 13px; flex: 0 0 auto; background: var(--ps-node-feature);\n}\n.ps-pipelines .ihead .tile[data-type='src'] { background: var(--ps-node-source); }\n.ps-pipelines .ihead .tile[data-type='emb'] { background: var(--ps-node-embedding); }\n.ps-pipelines .ihead .tile[data-type='target'] { background: var(--ps-node-target); }\n.ps-pipelines .ihead .tile[data-type='algo'] { background: var(--ps-node-algorithm); }\n.ps-pipelines .ihead .tile[data-type='output'] { background: var(--mj-status-success); }\n\n// Palette chips are interactive buttons in the editor\n.ps-pipelines .canvas-bar .ps-pchip { cursor: pointer; border: none; }\n.ps-pipelines .canvas-bar .ps-pchip:hover { filter: brightness(1.08); }\n\n// Inspector edit fields\n.ps-pipelines .ps-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.ps-pipelines .ps-field > label { font-size: 12px; font-weight: 650; color: var(--mj-text-muted); }\n.ps-pipelines .inputs-list { display: flex; flex-direction: column; gap: 4px; }\n.ps-pipelines .inp-row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--mj-text-secondary); cursor: pointer; }\n\n// Empty-state CTA spacing\n.ps-pipelines .ps-empty button { margin-top: 16px; }\n"] }]
|
|
1586
|
+
`, styles: ["/* ============================================================================\n Predictive Studio \u2014 shared panel styles (design-token compliant)\n Maps the mockup design system onto MemberJunction semantic --mj-* tokens.\n Loaded by every PS panel component (styleUrls) under ViewEncapsulation.None,\n so the class names are global within the PS dashboard subtree.\n No hardcoded colors except the intentional categorical node/algorithm palette\n (declared once as --ps-* custom props below) which must stay distinct across\n light/dark to remain readable as diagram accents.\n ============================================================================ */\n\n/* Categorical accents for DAG node types + algorithm chips. These are\n data-visualization colors that must remain distinct regardless of theme\n (allowed exception #3 in the design-token rules). */\n.ps-panel {\n --ps-node-source: #6b7280;\n --ps-node-feature: #2050c8;\n --ps-node-embedding: #7b3ff0;\n --ps-node-target: #1f9d57;\n --ps-node-algorithm: #d98213;\n /* budget-gauge categorical accents (reuse the node palette so light/dark stay distinct) */\n --ps-gauge-cost: var(--ps-node-algorithm);\n --ps-gauge-iterations: var(--ps-node-feature);\n}\n\n.ps-panel {\n display: block;\n height: 100%;\n}\n\n/* ---- generic layout helpers ---- */\n.ps-row { display: flex; gap: 16px; }\n.ps-col { display: flex; flex-direction: column; gap: 16px; }\n.ps-wrap { flex-wrap: wrap; }\n.ps-spacer { flex: 1; }\n.ps-muted { color: var(--mj-text-muted); }\n.ps-small { font-size: 12.5px; }\n.ps-mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 12.5px; }\n.ps-section-title {\n font-size: 12px; text-transform: uppercase; letter-spacing: .06em;\n color: var(--mj-text-muted); margin: 4px 0 2px; font-weight: 700;\n}\n\n/* ---- cards ---- */\n.ps-card {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n overflow: hidden;\n}\n.ps-card-head {\n display: flex; align-items: center; gap: 10px;\n padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-card-head h3 { font-size: 14.5px; margin: 0; font-weight: 650; color: var(--mj-text-primary); }\n.ps-card-body { padding: 16px; }\n\n/* ---- KPI tiles ---- */\n.ps-kpi {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-radius: 8px; padding: 16px 18px;\n}\n.ps-kpi .label { font-size: 12px; color: var(--mj-text-muted); font-weight: 600; }\n.ps-kpi .val { font-size: 26px; font-weight: 720; letter-spacing: -.02em; margin-top: 2px; color: var(--mj-text-primary); }\n\n/* ---- badges ---- */\n.ps-badge {\n display: inline-flex; align-items: center; gap: 5px;\n padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 650; line-height: 1.7;\n}\n.ps-badge.gray { background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary); }\n.ps-badge.blue { background: var(--mj-status-info-bg); color: var(--mj-status-info-text); }\n.ps-badge.green { background: var(--mj-status-success-bg); color: var(--mj-status-success-text); }\n.ps-badge.amber { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-badge.red { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }\n\n/* recommendation-level chips (the ranking matrix payoff) */\n.ps-lvl {\n display: inline-flex; align-items: center; justify-content: center;\n min-width: 92px; padding: 4px 10px; border-radius: 7px;\n font-weight: 650; font-size: 11.5px; color: var(--mj-text-inverse);\n}\n.ps-lvl-Primary { background: var(--mj-status-success); }\n.ps-lvl-Strong { background: var(--mj-status-info); }\n.ps-lvl-Viable { background: var(--mj-status-warning); }\n.ps-lvl-Weak { background: var(--mj-text-disabled); }\n.ps-lvl-NotRecommended { background: var(--mj-bg-surface-sunken); color: var(--mj-text-muted); }\n\n/* ---- tags ---- */\n.ps-tag {\n display: inline-block; padding: 2px 8px; border-radius: 6px;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-secondary);\n font-size: 11.5px; font-weight: 600;\n}\n.ps-tag.muted { opacity: .6; }\n.ps-divider { height: 1px; background: var(--mj-border-subtle); margin: 8px 0; }\n\n/* ---- tables ---- */\n.ps-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n.ps-table th {\n text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; padding: 9px 12px;\n border-bottom: 1px solid var(--mj-border-default);\n}\n.ps-table td { padding: 11px 12px; border-bottom: 1px solid var(--mj-border-subtle); color: var(--mj-text-primary); }\n.ps-table tr:hover td { background: var(--mj-bg-surface-hover); }\n.ps-table .num { text-align: right; font-variant-numeric: tabular-nums; }\n\n.ps-rank {\n width: 22px; height: 22px; border-radius: 6px; background: var(--mj-bg-surface-sunken);\n display: inline-grid; place-items: center; font-weight: 700; font-size: 11.5px; color: var(--mj-text-secondary);\n}\n.ps-rank.gold { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n\n/* ---- progress bars ---- */\n.ps-bar { height: 8px; border-radius: 999px; background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-bar > span { display: block; height: 100%; border-radius: 999px; background: var(--mj-brand-primary); }\n.ps-bar.warn > span { background: var(--mj-status-warning); }\n.ps-bar.run > span { background: var(--mj-brand-primary); }\n\n.ps-fbar { display: grid; grid-template-columns: minmax(150px, 1.3fr) 2fr 56px; align-items: center; gap: 14px; padding: 8px 0; }\n.ps-fbar + .ps-fbar { border-top: 1px solid var(--mj-border-subtle); }\n.ps-fbar .track { height: 10px; border-radius: var(--mj-radius-full); background: var(--mj-bg-surface-sunken); overflow: hidden; }\n.ps-fbar .track > span { display: block; height: 100%; border-radius: var(--mj-radius-full); background: var(--mj-brand-primary); }\n.ps-fbar .track > span.warn { background: var(--mj-status-warning); }\n.ps-fbar .name { color: var(--mj-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.ps-fbar > .ps-mono { text-align: right; color: var(--mj-text-secondary); font-variant-numeric: tabular-nums; }\n\n/* gauge */\n.ps-gauge {\n position: relative; width: 64px; height: 64px; border-radius: 50%; flex: 0 0 auto;\n background: conic-gradient(var(--ps-gauge-color, var(--mj-brand-primary)) calc(var(--ps-p, 40) * 1%), var(--mj-bg-surface-sunken) 0);\n display: grid; place-items: center;\n}\n.ps-gauge::after { content: ''; position: absolute; inset: 9px; background: var(--mj-bg-surface); border-radius: 50%; }\n.ps-gauge .g-val { position: relative; font-weight: 720; font-size: 14px; color: var(--mj-text-primary); }\n\n/* warning / info callouts */\n.ps-callout { display: flex; gap: 11px; padding: 12px 14px; border-radius: 10px; border: 1px solid; }\n.ps-callout.warn { background: var(--mj-status-warning-bg); border-color: var(--mj-status-warning-border); color: var(--mj-status-warning-text); }\n.ps-callout.info { background: var(--mj-status-info-bg); border-color: var(--mj-status-info-border); color: var(--mj-status-info-text); }\n.ps-callout.success { background: var(--mj-status-success-bg); border-color: var(--mj-status-success-border); color: var(--mj-status-success-text); }\n.ps-callout i { font-size: 16px; margin-top: 1px; }\n\n/* lifecycle stepper */\n.ps-stepper { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }\n.ps-step { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.ps-step .pip {\n width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--mj-border-strong);\n display: grid; place-items: center; font-size: 11px;\n}\n.ps-step.done { color: var(--mj-status-success-text); }\n.ps-step.done .pip { background: var(--mj-status-success); border-color: var(--mj-status-success); color: var(--mj-text-inverse); }\n.ps-step.curr { color: var(--mj-brand-primary); }\n.ps-step.curr .pip { border-color: var(--mj-brand-primary); color: var(--mj-brand-primary); }\n.ps-step .ln { width: 26px; height: 2px; background: var(--mj-border-strong); }\n\n/* ---- DAG flow canvas ---- */\n.ps-flow {\n position: relative;\n background:\n linear-gradient(var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n linear-gradient(90deg, var(--mj-border-subtle) 1px, transparent 1px) 0 0 / 22px 22px,\n var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default); border-radius: 10px;\n min-height: 620px; overflow: hidden;\n}\n.ps-node {\n position: absolute; width: 190px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-strong); border-left-width: 3px; border-radius: 8px;\n cursor: pointer;\n}\n.ps-node .nh {\n display: flex; align-items: center; gap: 8px; padding: 9px 11px;\n border-bottom: 1px solid var(--mj-border-subtle); font-weight: 650; font-size: 12.5px; color: var(--mj-text-primary);\n}\n.ps-node .nh i.tile {\n width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 12px; flex: 0 0 auto;\n}\n.ps-node .nh .ps-tag { margin-left: auto; }\n.ps-node .nb { padding: 9px 11px; font-size: 12px; color: var(--mj-text-secondary); }\n.ps-node .nb-row { display: flex; justify-content: space-between; gap: 8px; padding: 2px 0; }\n.ps-node .nb-row .k { color: var(--mj-text-muted); }\n.ps-node.src { border-left-color: var(--ps-node-source); }\n.ps-node.src .nh i.tile { background: var(--ps-node-source); }\n.ps-node.feat { border-left-color: var(--ps-node-feature); }\n.ps-node.feat .nh i.tile { background: var(--ps-node-feature); }\n.ps-node.emb { border-left-color: var(--ps-node-embedding); }\n.ps-node.emb .nh i.tile { background: var(--ps-node-embedding); }\n.ps-node.target { border-left-color: var(--ps-node-target); }\n.ps-node.target .nh i.tile { background: var(--ps-node-target); }\n.ps-node.algo { border-left-color: var(--ps-node-algorithm); }\n.ps-node.algo .nh i.tile { background: var(--ps-node-algorithm); }\n.ps-node.output { border-left-color: var(--mj-status-success); }\n.ps-node.output .nh i.tile { background: var(--mj-status-success); }\n.ps-node.selected {\n border-color: var(--mj-brand-primary);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 18%, transparent);\n}\n.ps-node .port {\n position: absolute; width: 11px; height: 11px; border-radius: 50%;\n background: var(--mj-bg-surface); border: 2px solid var(--mj-brand-primary);\n top: 50%; transform: translateY(-50%);\n}\n.ps-node .port.in { left: -6px; }\n.ps-node .port.out { right: -6px; }\nsvg.ps-edges { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }\nsvg.ps-edges path { stroke: color-mix(in srgb, var(--mj-brand-primary) 45%, transparent); stroke-width: 2; fill: none; }\n\n/* palette chips */\n.ps-pchip {\n display: inline-flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 8px;\n border: 1px dashed var(--mj-border-strong); background: var(--mj-bg-surface);\n font-size: 12.5px; font-weight: 600; color: var(--mj-text-secondary); cursor: grab;\n}\n.ps-pchip i { font-size: 12px; color: var(--mj-text-inverse); width: 20px; height: 20px; border-radius: 5px; display: grid; place-items: center; }\n.ps-pchip.s i { background: var(--ps-node-source); }\n.ps-pchip.f i { background: var(--ps-node-feature); }\n.ps-pchip.e i { background: var(--ps-node-embedding); }\n.ps-pchip.t i { background: var(--ps-node-target); }\n.ps-pchip.a i { background: var(--ps-node-algorithm); }\n\n/* segmented control */\n.ps-seg { display: inline-flex; border: 1px solid var(--mj-border-default); border-radius: 8px; overflow: hidden; }\n.ps-seg button {\n border: none; background: var(--mj-bg-surface); color: var(--mj-text-secondary);\n padding: 6px 12px; font-size: 12.5px; font-weight: 600; cursor: pointer;\n border-right: 1px solid var(--mj-border-default);\n}\n.ps-seg button:last-child { border-right: none; }\n.ps-seg button.on { background: var(--mj-brand-primary); color: var(--mj-text-inverse); }\n\n/* field control */\n.ps-field { margin-bottom: 14px; }\n.ps-field > label {\n display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;\n color: var(--mj-text-muted); font-weight: 700; margin-bottom: 6px;\n}\n.ps-input {\n width: 100%; padding: 8px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; background: var(--mj-bg-surface); color: var(--mj-text-primary);\n box-sizing: border-box;\n}\n.ps-input:focus { outline: none; border-color: var(--mj-brand-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 12%, transparent); }\n\n/* loading container */\n.ps-loading { display: flex; align-items: center; justify-content: center; padding: 60px 0; }\n\n/* ---- empty / prompt states ---- */\n.ps-empty {\n display: flex; flex-direction: column; align-items: center; justify-content: center;\n text-align: center; gap: 10px; padding: 56px 24px; color: var(--mj-text-muted);\n}\n.ps-empty .ps-empty-ico {\n width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center;\n background: var(--mj-bg-surface-sunken); color: var(--mj-text-disabled); font-size: 24px;\n}\n.ps-empty h3 { margin: 4px 0 0; font-size: 16px; font-weight: 650; color: var(--mj-text-secondary); }\n.ps-empty p { margin: 0; max-width: 420px; font-size: 13px; line-height: 1.5; }\n\n/* ---- confirm modal ---- */\n.ps-modal-backdrop {\n position: fixed; inset: 0; z-index: 1000;\n background: var(--mj-bg-overlay);\n display: flex; align-items: center; justify-content: center; padding: 24px;\n}\n.ps-modal {\n width: 100%; max-width: 480px; background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default); border-radius: 14px;\n box-shadow: var(--mj-shadow-lg, var(--mj-shadow-sm)); overflow: hidden;\n}\n.ps-modal-head {\n display: flex; align-items: center; gap: 12px; padding: 18px 20px;\n border-bottom: 1px solid var(--mj-border-subtle);\n}\n.ps-modal-head .ico {\n width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;\n font-size: 16px; flex: 0 0 auto;\n background: var(--mj-status-info-bg); color: var(--mj-status-info-text);\n}\n.ps-modal-head.warn .ico { background: var(--mj-status-warning-bg); color: var(--mj-status-warning-text); }\n.ps-modal-head.danger .ico { background: var(--mj-status-error-bg); color: var(--mj-status-error-text); }\n.ps-modal-head h3 { margin: 0; font-size: 15.5px; font-weight: 650; color: var(--mj-text-primary); }\n.ps-modal-body { padding: 18px 20px; font-size: 13.5px; line-height: 1.55; color: var(--mj-text-secondary); }\n.ps-modal-body .ps-field { margin-top: 14px; margin-bottom: 0; }\n.ps-modal-foot {\n display: flex; align-items: center; gap: 10px; padding: 14px 20px;\n border-top: 1px solid var(--mj-border-subtle); background: var(--mj-bg-surface-card);\n}\n.ps-modal-foot .ps-spacer { flex: 1; }\n", "/* Training Pipelines \u2014 real visual DAG builder driven by each pipeline's persisted spec. */\n\n.ps-pipelines { display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 0; }\n\n/* Pipeline picker bar */\n.ps-pipelines .pl-picker { display: flex; align-items: center; gap: 8px; overflow-x: auto; padding-bottom: 6px; }\n.ps-pipelines .pl-toolbar { display: flex; align-items: center; gap: 8px; margin: 8px 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--mj-border-subtle); }\n.ps-pipelines .pl-pill {\n display: inline-flex; align-items: center; gap: 8px; cursor: pointer; flex: 0 0 auto; max-width: 260px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n color: var(--mj-text-secondary); border-radius: 999px; padding: 6px 12px; font-size: 13px;\n}\n.ps-pipelines .pl-pill .pl-pill-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.ps-pipelines .pl-pill:hover { background: var(--mj-bg-surface-hover); }\n.ps-pipelines .pl-pill.on {\n border-color: var(--mj-brand-primary); color: var(--mj-text-primary);\n background: color-mix(in srgb, var(--mj-brand-primary) 10%, var(--mj-bg-surface));\n}\n\n/* The builder fills the remaining panel height; each column scrolls on its own. */\n.ps-pipelines .builder {\n flex: 1; min-height: 0;\n display: grid; grid-template-columns: 1fr 320px; grid-template-rows: minmax(0, 1fr); gap: 16px;\n}\n@media (max-width: 1080px) {\n .ps-pipelines .builder { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1.4fr) minmax(0, 1fr); }\n}\n\n.ps-pipelines .canvas-wrap { display: flex; flex-direction: column; min-width: 0; min-height: 0; }\n.ps-pipelines .canvas-bar {\n display: flex; align-items: center; gap: 10px; flex-wrap: wrap;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-bottom: none; border-radius: 10px 10px 0 0; padding: 12px 14px;\n}\n/* The DAG canvas is sized in px by the layered layout (inline width/height) and\n may exceed the column, so it scrolls internally (both axes) while the column\n itself stays put. flex:1 makes it absorb the remaining column height. */\n.ps-pipelines .ps-flow.big {\n border-radius: 0;\n flex: 1 1 auto;\n min-height: 0;\n max-width: 100%;\n overflow: auto;\n}\n/* Pin every node to a fixed height so its port (top:50%) lines up exactly with\n the SVG edge anchor (node.y + NODE_H/2). NODE_H in the component = 86. */\n.ps-pipelines .ps-flow.big .ps-node {\n height: 86px;\n display: flex;\n flex-direction: column;\n}\n.ps-pipelines .ps-flow.big .ps-node .nb { flex: 1; min-height: 0; }\n.ps-pipelines .flow-toolbar {\n display: flex; align-items: center; gap: 8px;\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default);\n border-top: none; border-radius: 0 0 10px 10px; padding: 10px 14px;\n}\n.ps-pipelines .legend { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--mj-text-secondary); flex-wrap: wrap; }\n.ps-pipelines .legend span { display: inline-flex; align-items: center; gap: 6px; }\n.ps-pipelines .legend .sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }\n.ps-pipelines .legend .sw.src { background: var(--ps-node-source); }\n.ps-pipelines .legend .sw.feat { background: var(--ps-node-feature); }\n.ps-pipelines .legend .sw.emb { background: var(--ps-node-embedding); }\n.ps-pipelines .legend .sw.target { background: var(--ps-node-target); }\n.ps-pipelines .legend .sw.algo { background: var(--ps-node-algorithm); }\n\n/* inspector \u2014 its own scroll column, independent of the canvas. NOTE: .inspector is\n also a .ps-col (display:flex column), so its card children ARE flex items \u2014 without\n flex-shrink:0 they compress to fit (scrollHeight == clientHeight, verified live) and\n the column never scrolls. These child rules are load-bearing, not decorative. */\n.ps-pipelines .inspector {\n min-height: 0;\n overflow-y: auto;\n}\n.ps-pipelines .inspector > * { flex: 0 0 auto; }\n.ps-pipelines .inspector .insp { position: static; }\n.ps-pipelines .ihead { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n.ps-pipelines .ihead h3 { font-size: 14px; color: var(--mj-text-primary); margin: 0; }\n.ps-pipelines .ihead .tile {\n width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center;\n color: var(--mj-text-inverse); font-size: 13px; flex: 0 0 auto; background: var(--ps-node-feature);\n}\n.ps-pipelines .ihead .tile[data-type='src'] { background: var(--ps-node-source); }\n.ps-pipelines .ihead .tile[data-type='emb'] { background: var(--ps-node-embedding); }\n.ps-pipelines .ihead .tile[data-type='target'] { background: var(--ps-node-target); }\n.ps-pipelines .ihead .tile[data-type='algo'] { background: var(--ps-node-algorithm); }\n.ps-pipelines .ihead .tile[data-type='output'] { background: var(--mj-status-success); }\n\n/* Palette chips are interactive buttons in the editor */\n.ps-pipelines .canvas-bar .ps-pchip { cursor: pointer; border: none; }\n.ps-pipelines .canvas-bar .ps-pchip:hover { filter: brightness(1.08); }\n\n/* Inspector edit fields */\n.ps-pipelines .ps-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.ps-pipelines .ps-field > label { font-size: 12px; font-weight: 650; color: var(--mj-text-muted); }\n.ps-pipelines .inputs-list { display: flex; flex-direction: column; gap: 4px; }\n.ps-pipelines .inp-row { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--mj-text-secondary); cursor: pointer; }\n\n/* Empty-state CTA spacing */\n.ps-pipelines .ps-empty button { margin-top: 16px; }\n"] }]
|
|
1578
1587
|
}], null, { engine: [{
|
|
1579
1588
|
type: Input
|
|
1580
1589
|
}], provider: [{
|
|
@@ -1584,5 +1593,5 @@ export class PSPipelinesComponent {
|
|
|
1584
1593
|
}], askAgent: [{
|
|
1585
1594
|
type: Output
|
|
1586
1595
|
}] }); })();
|
|
1587
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PSPipelinesComponent, { className: "PSPipelinesComponent", filePath: "src/PredictiveStudio/components/ps-pipelines.component.ts", lineNumber:
|
|
1596
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PSPipelinesComponent, { className: "PSPipelinesComponent", filePath: "src/PredictiveStudio/components/ps-pipelines.component.ts", lineNumber: 311 }); })();
|
|
1588
1597
|
//# sourceMappingURL=ps-pipelines.component.js.map
|