@burdenoff/microfe-bigconsole 2026.804.2 → 2026.805.2
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/bigconsole/AdminRoot.js +21 -16
- package/dist/bigconsole/AdminRoot.js.map +1 -1
- package/dist/bigconsole/BigConsoleRoot.js +44 -39
- package/dist/bigconsole/BigConsoleRoot.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +115 -100
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +100 -98
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +164 -161
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.js +20 -20
- package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +216 -49
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +96 -90
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.js +87 -76
- package/dist/bigconsole/components/widgets/WidgetMenu.js.map +1 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +120 -118
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js +113 -104
- package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardViewPage.js +208 -199
- package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardsPage.js +376 -325
- package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
- package/dist/bigconsole/pages/DataParsersPage.js +135 -125
- package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +182 -172
- package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js +233 -198
- package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinksPage.js +281 -268
- package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js +238 -223
- package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/ParserViewPage.js +162 -144
- package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js +212 -204
- package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineViewPage.js +191 -183
- package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelinesPage.js +128 -103
- package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js +238 -217
- package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +116 -102
- package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
- package/dist/bigconsole/utils/csv.js +91 -0
- package/dist/bigconsole/utils/csv.js.map +1 -0
- package/dist/constants/permissions.js +83 -0
- package/dist/constants/permissions.js.map +1 -0
- package/package.json +2 -2
|
@@ -2,79 +2,82 @@ import { useAppNavigate as e } from "../contexts/NavigationContext.js";
|
|
|
2
2
|
import "../contexts/index.js";
|
|
3
3
|
import t from "../hooks/useParserOperations.js";
|
|
4
4
|
import n from "../hooks/usePipelineOperations.js";
|
|
5
|
-
import r from "
|
|
6
|
-
import
|
|
5
|
+
import { BIGCONSOLE_PERMISSIONS as r } from "../../constants/permissions.js";
|
|
6
|
+
import i from "../components/pipeline/PipelineStatusBadge.js";
|
|
7
|
+
import { memo as a, useCallback as o, useEffect as s, useMemo as ee, useState as c } from "react";
|
|
7
8
|
import { useParams as l } from "react-router";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
9
|
+
import { AccessDenied as te } from "@burdenoff/fe-libs/shared/components";
|
|
10
|
+
import { usePermissions as u } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
11
|
+
import { GlassCard as d, IllustratedEmptyState as f, PagePurpose as p } from "@burdenoff/fe-libs/ui";
|
|
12
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
10
13
|
//#region src/bigconsole/pages/PipelineBuilderPage.tsx
|
|
11
|
-
var
|
|
14
|
+
var g = ({ className: e }) => /* @__PURE__ */ m("svg", {
|
|
12
15
|
className: e,
|
|
13
16
|
fill: "none",
|
|
14
17
|
stroke: "currentColor",
|
|
15
18
|
viewBox: "0 0 24 24",
|
|
16
|
-
children: /* @__PURE__ */
|
|
19
|
+
children: /* @__PURE__ */ m("path", {
|
|
17
20
|
strokeLinecap: "round",
|
|
18
21
|
strokeLinejoin: "round",
|
|
19
22
|
strokeWidth: 2,
|
|
20
23
|
d: "M10 19l-7-7m0 0l7-7m-7 7h18"
|
|
21
24
|
})
|
|
22
|
-
}),
|
|
25
|
+
}), _ = ({ className: e }) => /* @__PURE__ */ m("svg", {
|
|
23
26
|
className: e,
|
|
24
27
|
fill: "none",
|
|
25
28
|
stroke: "currentColor",
|
|
26
29
|
viewBox: "0 0 24 24",
|
|
27
|
-
children: /* @__PURE__ */
|
|
30
|
+
children: /* @__PURE__ */ m("path", {
|
|
28
31
|
strokeLinecap: "round",
|
|
29
32
|
strokeLinejoin: "round",
|
|
30
33
|
strokeWidth: 2,
|
|
31
34
|
d: "M12 4v16m8-8H4"
|
|
32
35
|
})
|
|
33
|
-
}),
|
|
36
|
+
}), ne = ({ className: e }) => /* @__PURE__ */ m("svg", {
|
|
34
37
|
className: e,
|
|
35
38
|
fill: "none",
|
|
36
39
|
stroke: "currentColor",
|
|
37
40
|
viewBox: "0 0 24 24",
|
|
38
|
-
children: /* @__PURE__ */
|
|
41
|
+
children: /* @__PURE__ */ m("path", {
|
|
39
42
|
strokeLinecap: "round",
|
|
40
43
|
strokeLinejoin: "round",
|
|
41
44
|
strokeWidth: 2,
|
|
42
45
|
d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
|
|
43
46
|
})
|
|
44
|
-
}),
|
|
47
|
+
}), re = ({ className: e }) => /* @__PURE__ */ m("svg", {
|
|
45
48
|
className: e,
|
|
46
49
|
fill: "none",
|
|
47
50
|
stroke: "currentColor",
|
|
48
51
|
viewBox: "0 0 24 24",
|
|
49
|
-
children: /* @__PURE__ */
|
|
52
|
+
children: /* @__PURE__ */ m("path", {
|
|
50
53
|
strokeLinecap: "round",
|
|
51
54
|
strokeLinejoin: "round",
|
|
52
55
|
strokeWidth: 2,
|
|
53
56
|
d: "M5 15l7-7 7 7"
|
|
54
57
|
})
|
|
55
|
-
}),
|
|
58
|
+
}), ie = ({ className: e }) => /* @__PURE__ */ m("svg", {
|
|
56
59
|
className: e,
|
|
57
60
|
fill: "none",
|
|
58
61
|
stroke: "currentColor",
|
|
59
62
|
viewBox: "0 0 24 24",
|
|
60
|
-
children: /* @__PURE__ */
|
|
63
|
+
children: /* @__PURE__ */ m("path", {
|
|
61
64
|
strokeLinecap: "round",
|
|
62
65
|
strokeLinejoin: "round",
|
|
63
66
|
strokeWidth: 2,
|
|
64
67
|
d: "M19 9l-7 7-7-7"
|
|
65
68
|
})
|
|
66
|
-
}),
|
|
69
|
+
}), ae = ({ className: e }) => /* @__PURE__ */ m("svg", {
|
|
67
70
|
className: e,
|
|
68
71
|
fill: "none",
|
|
69
72
|
stroke: "currentColor",
|
|
70
73
|
viewBox: "0 0 24 24",
|
|
71
|
-
children: /* @__PURE__ */
|
|
74
|
+
children: /* @__PURE__ */ m("path", {
|
|
72
75
|
strokeLinecap: "round",
|
|
73
76
|
strokeLinejoin: "round",
|
|
74
77
|
strokeWidth: 2,
|
|
75
78
|
d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
|
|
76
79
|
})
|
|
77
|
-
}),
|
|
80
|
+
}), oe = [
|
|
78
81
|
{
|
|
79
82
|
value: "draft",
|
|
80
83
|
label: "Draft"
|
|
@@ -87,7 +90,7 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
87
90
|
value: "inactive",
|
|
88
91
|
label: "Inactive"
|
|
89
92
|
}
|
|
90
|
-
],
|
|
93
|
+
], v = [
|
|
91
94
|
{
|
|
92
95
|
value: "fail",
|
|
93
96
|
label: "Fail",
|
|
@@ -103,7 +106,7 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
103
106
|
label: "Fallback",
|
|
104
107
|
description: "Use fallback value on error"
|
|
105
108
|
}
|
|
106
|
-
],
|
|
109
|
+
], y = {
|
|
107
110
|
parserId: "",
|
|
108
111
|
parserName: "",
|
|
109
112
|
parserType: null,
|
|
@@ -113,14 +116,14 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
113
116
|
onError: "fail",
|
|
114
117
|
fallbackValue: "",
|
|
115
118
|
description: ""
|
|
116
|
-
},
|
|
117
|
-
let { pipelineId:
|
|
118
|
-
consoleId:
|
|
119
|
+
}, b = a(function() {
|
|
120
|
+
let { pipelineId: a } = l(), b = e(), x = !!a && a !== "new", S = "default", { hasPermission: C, isLoading: w } = u(), T = C(r.PIPELINE_READ), E = C(r.PIPELINE_CREATE), D = C(r.PIPELINE_UPDATE), O = x ? D : E, [k, A] = c(""), [j, M] = c(""), [N, P] = c("draft"), [F, I] = c([]), [L, R] = c(1), [z, B] = c(!1), [V, H] = c(null), { loading: U, error: W, fetchPipeline: G, createPipeline: K, updatePipeline: q } = n({
|
|
121
|
+
consoleId: S,
|
|
119
122
|
skipFetch: !0
|
|
120
|
-
}), { parsers:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
e && (
|
|
123
|
+
}), { parsers: J } = t({ consoleId: S });
|
|
124
|
+
s(() => {
|
|
125
|
+
x && a && G(a).then((e) => {
|
|
126
|
+
e && (A(e.name), M(e.description || ""), P(e.status), R(e.version), I((e.stages || []).map((e) => ({
|
|
124
127
|
id: e.id,
|
|
125
128
|
parserId: e.parserId,
|
|
126
129
|
parserName: e.parserName || "",
|
|
@@ -134,38 +137,38 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
134
137
|
}))));
|
|
135
138
|
});
|
|
136
139
|
}, [
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
x,
|
|
141
|
+
a,
|
|
142
|
+
G
|
|
140
143
|
]);
|
|
141
|
-
let
|
|
142
|
-
|
|
143
|
-
}, [
|
|
144
|
-
|
|
145
|
-
}, []),
|
|
146
|
-
|
|
147
|
-
}, []),
|
|
148
|
-
|
|
144
|
+
let Y = ee(() => !k.trim() || F.length === 0 ? !1 : F.every((e) => e.parserId && e.inputKey && e.outputKey), [k, F]), X = o(() => {
|
|
145
|
+
b("/pipelines");
|
|
146
|
+
}, [b]), Z = o(() => {
|
|
147
|
+
I((e) => [...e, { ...y }]);
|
|
148
|
+
}, []), se = o((e) => {
|
|
149
|
+
I((t) => t.filter((t, n) => n !== e));
|
|
150
|
+
}, []), Q = o((e, t) => {
|
|
151
|
+
I((n) => {
|
|
149
152
|
let r = [...n], i = t === "up" ? e - 1 : e + 1;
|
|
150
153
|
return i < 0 || i >= r.length ? n : ([r[e], r[i]] = [r[i], r[e]], r);
|
|
151
154
|
});
|
|
152
|
-
}, []),
|
|
153
|
-
|
|
155
|
+
}, []), $ = o((e, t) => {
|
|
156
|
+
I((n) => n.map((n, r) => r === e ? {
|
|
154
157
|
...n,
|
|
155
158
|
...t
|
|
156
159
|
} : n));
|
|
157
|
-
}, []),
|
|
158
|
-
let n =
|
|
159
|
-
n &&
|
|
160
|
+
}, []), ce = o((e, t) => {
|
|
161
|
+
let n = J.find((e) => e.id === t);
|
|
162
|
+
n && $(e, {
|
|
160
163
|
parserId: n.id,
|
|
161
164
|
parserName: n.name,
|
|
162
165
|
parserType: n.type
|
|
163
166
|
});
|
|
164
|
-
}, [
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
+
}, [J, $]), le = o(async () => {
|
|
168
|
+
if (!(!Y || !O)) {
|
|
169
|
+
B(!0), H(null);
|
|
167
170
|
try {
|
|
168
|
-
let e =
|
|
171
|
+
let e = F.map((e) => ({
|
|
169
172
|
parserId: e.parserId,
|
|
170
173
|
parserName: e.parserName,
|
|
171
174
|
parserType: e.parserType || void 0,
|
|
@@ -176,274 +179,279 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
176
179
|
fallbackValue: e.fallbackValue ? JSON.parse(e.fallbackValue) : void 0,
|
|
177
180
|
description: e.description || void 0
|
|
178
181
|
}));
|
|
179
|
-
if (
|
|
180
|
-
name:
|
|
181
|
-
description:
|
|
182
|
-
status:
|
|
183
|
-
},
|
|
182
|
+
if (x && a) await q(a, {
|
|
183
|
+
name: k,
|
|
184
|
+
description: j || void 0,
|
|
185
|
+
status: N
|
|
186
|
+
}, L) && b(`/pipelines/${a}`);
|
|
184
187
|
else {
|
|
185
|
-
let t = await
|
|
186
|
-
consoleId:
|
|
187
|
-
name:
|
|
188
|
-
description:
|
|
189
|
-
status:
|
|
188
|
+
let t = await K({
|
|
189
|
+
consoleId: S,
|
|
190
|
+
name: k,
|
|
191
|
+
description: j || void 0,
|
|
192
|
+
status: N,
|
|
190
193
|
stages: e
|
|
191
194
|
});
|
|
192
|
-
t &&
|
|
195
|
+
t && b(`/pipelines/${t.id}`);
|
|
193
196
|
}
|
|
194
197
|
} catch (e) {
|
|
195
|
-
|
|
198
|
+
H(e instanceof Error ? e.message : "Failed to save pipeline");
|
|
196
199
|
} finally {
|
|
197
|
-
|
|
200
|
+
B(!1);
|
|
198
201
|
}
|
|
199
202
|
}
|
|
200
203
|
}, [
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
204
|
+
Y,
|
|
205
|
+
S,
|
|
206
|
+
O,
|
|
207
|
+
x,
|
|
208
|
+
a,
|
|
206
209
|
k,
|
|
207
210
|
j,
|
|
208
211
|
N,
|
|
209
212
|
F,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
+
L,
|
|
214
|
+
K,
|
|
215
|
+
q,
|
|
216
|
+
b
|
|
213
217
|
]);
|
|
214
|
-
return
|
|
218
|
+
return U && x ? /* @__PURE__ */ m("div", {
|
|
215
219
|
className: "p-6",
|
|
216
|
-
children: /* @__PURE__ */
|
|
220
|
+
children: /* @__PURE__ */ h("div", {
|
|
217
221
|
className: "flex flex-col items-center justify-center py-16",
|
|
218
|
-
children: [/* @__PURE__ */
|
|
222
|
+
children: [/* @__PURE__ */ h("svg", {
|
|
219
223
|
className: "w-8 h-8 text-action-primary-bg animate-spin mb-4",
|
|
220
224
|
fill: "none",
|
|
221
225
|
viewBox: "0 0 24 24",
|
|
222
|
-
children: [/* @__PURE__ */
|
|
226
|
+
children: [/* @__PURE__ */ m("circle", {
|
|
223
227
|
className: "opacity-25",
|
|
224
228
|
cx: "12",
|
|
225
229
|
cy: "12",
|
|
226
230
|
r: "10",
|
|
227
231
|
stroke: "currentColor",
|
|
228
232
|
strokeWidth: "4"
|
|
229
|
-
}), /* @__PURE__ */
|
|
233
|
+
}), /* @__PURE__ */ m("path", {
|
|
230
234
|
className: "opacity-75",
|
|
231
235
|
fill: "currentColor",
|
|
232
236
|
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
233
237
|
})]
|
|
234
|
-
}), /* @__PURE__ */
|
|
238
|
+
}), /* @__PURE__ */ m("p", {
|
|
235
239
|
className: "text-sm text-text-secondary",
|
|
236
240
|
children: "Loading Pipeline..."
|
|
237
241
|
})]
|
|
238
242
|
})
|
|
239
|
-
}) :
|
|
243
|
+
}) : x && !w && !T ? /* @__PURE__ */ m(te, {
|
|
244
|
+
title: "Access Denied",
|
|
245
|
+
description: "You don't have permission to view this pipeline."
|
|
246
|
+
}) : W ? /* @__PURE__ */ m("div", {
|
|
240
247
|
className: "p-6",
|
|
241
|
-
children: /* @__PURE__ */
|
|
248
|
+
children: /* @__PURE__ */ h("div", {
|
|
242
249
|
className: "flex flex-col items-center justify-center py-16 text-center",
|
|
243
250
|
children: [
|
|
244
|
-
/* @__PURE__ */
|
|
251
|
+
/* @__PURE__ */ m("div", {
|
|
245
252
|
className: "p-3 rounded-full bg-status-error-bg/10 mb-4",
|
|
246
|
-
children: /* @__PURE__ */
|
|
253
|
+
children: /* @__PURE__ */ m(ae, { className: "w-8 h-8 text-status-error-text" })
|
|
247
254
|
}),
|
|
248
|
-
/* @__PURE__ */
|
|
255
|
+
/* @__PURE__ */ m("h3", {
|
|
249
256
|
className: "text-lg font-medium text-text-primary mb-2",
|
|
250
257
|
children: "Failed to load Pipeline"
|
|
251
258
|
}),
|
|
252
|
-
/* @__PURE__ */
|
|
259
|
+
/* @__PURE__ */ m("p", {
|
|
253
260
|
className: "text-sm text-text-secondary mb-4",
|
|
254
|
-
children:
|
|
261
|
+
children: W.message
|
|
255
262
|
}),
|
|
256
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ m("button", {
|
|
257
264
|
type: "button",
|
|
258
|
-
onClick:
|
|
265
|
+
onClick: X,
|
|
259
266
|
className: "px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
|
|
260
267
|
children: "Back to Pipelines"
|
|
261
268
|
})
|
|
262
269
|
]
|
|
263
270
|
})
|
|
264
|
-
}) : /* @__PURE__ */
|
|
271
|
+
}) : /* @__PURE__ */ h("div", {
|
|
265
272
|
className: "p-6",
|
|
266
273
|
children: [
|
|
267
|
-
/* @__PURE__ */
|
|
274
|
+
/* @__PURE__ */ h("div", {
|
|
268
275
|
className: "flex items-center justify-between mb-6",
|
|
269
|
-
children: [/* @__PURE__ */
|
|
276
|
+
children: [/* @__PURE__ */ h("div", {
|
|
270
277
|
className: "flex items-center gap-4",
|
|
271
|
-
children: [/* @__PURE__ */
|
|
278
|
+
children: [/* @__PURE__ */ m("button", {
|
|
272
279
|
type: "button",
|
|
273
|
-
onClick:
|
|
280
|
+
onClick: X,
|
|
274
281
|
className: "p-2 text-text-secondary hover:text-text-primary hover:bg-bg-sunken rounded-md transition-colors",
|
|
275
|
-
children: /* @__PURE__ */
|
|
276
|
-
}), /* @__PURE__ */
|
|
282
|
+
children: /* @__PURE__ */ m(g, { className: "w-5 h-5" })
|
|
283
|
+
}), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h1", {
|
|
277
284
|
className: "text-2xl font-bold text-text-primary",
|
|
278
|
-
children:
|
|
279
|
-
}), /* @__PURE__ */
|
|
285
|
+
children: x ? "Edit Pipeline" : "Create Pipeline"
|
|
286
|
+
}), /* @__PURE__ */ m("p", {
|
|
280
287
|
className: "text-sm text-text-secondary mt-1",
|
|
281
|
-
children:
|
|
288
|
+
children: x ? "Update pipeline settings and stages" : "Create a new data transformation pipeline"
|
|
282
289
|
})] })]
|
|
283
|
-
}), /* @__PURE__ */
|
|
290
|
+
}), /* @__PURE__ */ h("div", {
|
|
284
291
|
className: "flex items-center gap-2",
|
|
285
|
-
children: [/* @__PURE__ */
|
|
292
|
+
children: [/* @__PURE__ */ m("button", {
|
|
286
293
|
type: "button",
|
|
287
|
-
onClick:
|
|
294
|
+
onClick: X,
|
|
288
295
|
className: "px-4 py-2 text-sm font-medium text-text-primary bg-bg-sunken hover:bg-border-default rounded-md transition-colors",
|
|
289
296
|
children: "Cancel"
|
|
290
|
-
}), /* @__PURE__ */
|
|
297
|
+
}), /* @__PURE__ */ m("button", {
|
|
291
298
|
type: "button",
|
|
292
|
-
onClick:
|
|
293
|
-
disabled: !
|
|
294
|
-
|
|
295
|
-
|
|
299
|
+
onClick: le,
|
|
300
|
+
disabled: !Y || z || !O,
|
|
301
|
+
title: O ? void 0 : `You don't have permission to ${x ? "update" : "create"} pipelines.`,
|
|
302
|
+
className: "px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
303
|
+
children: z ? "Saving..." : x ? "Save Changes" : "Create Pipeline"
|
|
296
304
|
})]
|
|
297
305
|
})]
|
|
298
306
|
}),
|
|
299
|
-
/* @__PURE__ */ p
|
|
307
|
+
/* @__PURE__ */ m(p, {
|
|
300
308
|
className: "mb-6",
|
|
301
309
|
children: "Build a pipeline by chaining parser stages — each stage reads an input key, runs a parser, and writes a structured output key that the next stage (or a data sink) can use. Name it, add your stages in order, then test it before saving so your data flows end to end."
|
|
302
310
|
}),
|
|
303
|
-
|
|
311
|
+
V && /* @__PURE__ */ m("div", {
|
|
304
312
|
className: "mb-6 p-4 bg-status-error-bg/10 border border-status-error-border/20 rounded-md",
|
|
305
|
-
children: /* @__PURE__ */
|
|
313
|
+
children: /* @__PURE__ */ m("p", {
|
|
306
314
|
className: "text-sm text-status-error-text",
|
|
307
|
-
children:
|
|
315
|
+
children: V
|
|
308
316
|
})
|
|
309
317
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
318
|
+
/* @__PURE__ */ h("div", {
|
|
311
319
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
312
|
-
children: [/* @__PURE__ */
|
|
320
|
+
children: [/* @__PURE__ */ h("div", {
|
|
313
321
|
className: "lg:col-span-2 space-y-6",
|
|
314
|
-
children: [/* @__PURE__ */
|
|
322
|
+
children: [/* @__PURE__ */ h("div", {
|
|
315
323
|
className: "bg-bg-surface border border-border-default rounded-lg p-6",
|
|
316
|
-
children: [/* @__PURE__ */
|
|
324
|
+
children: [/* @__PURE__ */ m("h2", {
|
|
317
325
|
className: "text-lg font-semibold text-text-primary mb-4",
|
|
318
326
|
children: "Basic Information"
|
|
319
|
-
}), /* @__PURE__ */
|
|
327
|
+
}), /* @__PURE__ */ h("div", {
|
|
320
328
|
className: "space-y-4",
|
|
321
329
|
children: [
|
|
322
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("label", {
|
|
323
331
|
className: "block text-sm font-medium text-text-primary mb-2",
|
|
324
|
-
children: ["Name ", /* @__PURE__ */
|
|
332
|
+
children: ["Name ", /* @__PURE__ */ m("span", {
|
|
325
333
|
className: "text-status-error-text",
|
|
326
334
|
children: "*"
|
|
327
335
|
})]
|
|
328
|
-
}), /* @__PURE__ */
|
|
336
|
+
}), /* @__PURE__ */ m("input", {
|
|
329
337
|
type: "text",
|
|
330
|
-
value:
|
|
331
|
-
onChange: (e) =>
|
|
338
|
+
value: k,
|
|
339
|
+
onChange: (e) => A(e.target.value),
|
|
332
340
|
placeholder: "My Pipeline",
|
|
333
341
|
className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
|
|
334
342
|
})] }),
|
|
335
|
-
/* @__PURE__ */
|
|
343
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
|
|
336
344
|
className: "block text-sm font-medium text-text-primary mb-2",
|
|
337
345
|
children: "Description"
|
|
338
|
-
}), /* @__PURE__ */
|
|
339
|
-
value:
|
|
340
|
-
onChange: (e) =>
|
|
346
|
+
}), /* @__PURE__ */ m("textarea", {
|
|
347
|
+
value: j,
|
|
348
|
+
onChange: (e) => M(e.target.value),
|
|
341
349
|
placeholder: "What does this pipeline do?",
|
|
342
350
|
rows: 3,
|
|
343
351
|
className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg resize-none"
|
|
344
352
|
})] }),
|
|
345
|
-
/* @__PURE__ */
|
|
353
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
|
|
346
354
|
className: "block text-sm font-medium text-text-primary mb-2",
|
|
347
355
|
children: "Status"
|
|
348
|
-
}), /* @__PURE__ */
|
|
349
|
-
value:
|
|
350
|
-
onChange: (e) =>
|
|
356
|
+
}), /* @__PURE__ */ m("select", {
|
|
357
|
+
value: N,
|
|
358
|
+
onChange: (e) => P(e.target.value),
|
|
351
359
|
className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
|
|
352
|
-
children:
|
|
360
|
+
children: oe.map((e) => /* @__PURE__ */ m("option", {
|
|
353
361
|
value: e.value,
|
|
354
362
|
children: e.label
|
|
355
363
|
}, e.value))
|
|
356
364
|
})] })
|
|
357
365
|
]
|
|
358
366
|
})]
|
|
359
|
-
}), /* @__PURE__ */
|
|
367
|
+
}), /* @__PURE__ */ h(d, {
|
|
360
368
|
treatment: "glass",
|
|
361
369
|
glow: !0,
|
|
362
370
|
className: "p-6",
|
|
363
|
-
children: [/* @__PURE__ */
|
|
371
|
+
children: [/* @__PURE__ */ h("div", {
|
|
364
372
|
className: "flex items-center justify-between mb-4",
|
|
365
|
-
children: [/* @__PURE__ */
|
|
373
|
+
children: [/* @__PURE__ */ h("h2", {
|
|
366
374
|
className: "text-lg font-semibold text-text-primary",
|
|
367
375
|
children: [
|
|
368
376
|
"Stages (",
|
|
369
|
-
|
|
377
|
+
F.length,
|
|
370
378
|
")"
|
|
371
379
|
]
|
|
372
|
-
}), /* @__PURE__ */
|
|
380
|
+
}), /* @__PURE__ */ h("button", {
|
|
373
381
|
type: "button",
|
|
374
|
-
onClick:
|
|
382
|
+
onClick: Z,
|
|
375
383
|
className: "inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
|
|
376
|
-
children: [/* @__PURE__ */
|
|
384
|
+
children: [/* @__PURE__ */ m(_, { className: "w-4 h-4" }), "Add Stage"]
|
|
377
385
|
})]
|
|
378
|
-
}),
|
|
386
|
+
}), F.length === 0 ? /* @__PURE__ */ m(f, {
|
|
379
387
|
illustration: "empty-generic",
|
|
380
388
|
title: "No stages yet",
|
|
381
389
|
description: "Add a stage to start building your pipeline.",
|
|
382
|
-
action: /* @__PURE__ */
|
|
390
|
+
action: /* @__PURE__ */ h("button", {
|
|
383
391
|
type: "button",
|
|
384
|
-
onClick:
|
|
392
|
+
onClick: Z,
|
|
385
393
|
className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
|
|
386
|
-
children: [/* @__PURE__ */
|
|
394
|
+
children: [/* @__PURE__ */ m(_, { className: "w-4 h-4" }), "Add First Stage"]
|
|
387
395
|
})
|
|
388
|
-
}) : /* @__PURE__ */
|
|
396
|
+
}) : /* @__PURE__ */ m("div", {
|
|
389
397
|
className: "space-y-4",
|
|
390
|
-
children:
|
|
398
|
+
children: F.map((e, t) => /* @__PURE__ */ h("div", {
|
|
391
399
|
className: "p-4 bg-bg-sunken border border-border-default rounded-lg",
|
|
392
|
-
children: [/* @__PURE__ */
|
|
400
|
+
children: [/* @__PURE__ */ h("div", {
|
|
393
401
|
className: "flex items-center justify-between mb-4",
|
|
394
|
-
children: [/* @__PURE__ */
|
|
402
|
+
children: [/* @__PURE__ */ h("div", {
|
|
395
403
|
className: "flex items-center gap-2",
|
|
396
|
-
children: [/* @__PURE__ */
|
|
404
|
+
children: [/* @__PURE__ */ m("span", {
|
|
397
405
|
className: "w-6 h-6 flex items-center justify-center text-xs font-medium bg-action-primary-bg/10 text-action-primary-bg rounded-full",
|
|
398
406
|
children: t + 1
|
|
399
|
-
}), /* @__PURE__ */
|
|
407
|
+
}), /* @__PURE__ */ m("span", {
|
|
400
408
|
className: "font-medium text-text-primary",
|
|
401
409
|
children: e.parserName || `Stage ${t + 1}`
|
|
402
410
|
})]
|
|
403
|
-
}), /* @__PURE__ */
|
|
411
|
+
}), /* @__PURE__ */ h("div", {
|
|
404
412
|
className: "flex items-center gap-1",
|
|
405
413
|
children: [
|
|
406
|
-
/* @__PURE__ */
|
|
414
|
+
/* @__PURE__ */ m("button", {
|
|
407
415
|
type: "button",
|
|
408
|
-
onClick: () =>
|
|
416
|
+
onClick: () => Q(t, "up"),
|
|
409
417
|
disabled: t === 0,
|
|
410
418
|
className: "p-1 text-text-secondary hover:text-text-primary hover:bg-bg-surface rounded disabled:opacity-30",
|
|
411
|
-
children: /* @__PURE__ */
|
|
419
|
+
children: /* @__PURE__ */ m(re, { className: "w-4 h-4" })
|
|
412
420
|
}),
|
|
413
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ m("button", {
|
|
414
422
|
type: "button",
|
|
415
|
-
onClick: () =>
|
|
416
|
-
disabled: t ===
|
|
423
|
+
onClick: () => Q(t, "down"),
|
|
424
|
+
disabled: t === F.length - 1,
|
|
417
425
|
className: "p-1 text-text-secondary hover:text-text-primary hover:bg-bg-surface rounded disabled:opacity-30",
|
|
418
|
-
children: /* @__PURE__ */
|
|
426
|
+
children: /* @__PURE__ */ m(ie, { className: "w-4 h-4" })
|
|
419
427
|
}),
|
|
420
|
-
/* @__PURE__ */
|
|
428
|
+
/* @__PURE__ */ m("button", {
|
|
421
429
|
type: "button",
|
|
422
|
-
onClick: () =>
|
|
430
|
+
onClick: () => se(t),
|
|
423
431
|
className: "p-1 text-text-secondary hover:text-status-error-text hover:bg-status-error-bg/10 rounded",
|
|
424
|
-
children: /* @__PURE__ */
|
|
432
|
+
children: /* @__PURE__ */ m(ne, { className: "w-4 h-4" })
|
|
425
433
|
})
|
|
426
434
|
]
|
|
427
435
|
})]
|
|
428
|
-
}), /* @__PURE__ */
|
|
436
|
+
}), /* @__PURE__ */ h("div", {
|
|
429
437
|
className: "grid grid-cols-2 gap-4",
|
|
430
438
|
children: [
|
|
431
|
-
/* @__PURE__ */
|
|
439
|
+
/* @__PURE__ */ h("div", {
|
|
432
440
|
className: "col-span-2",
|
|
433
|
-
children: [/* @__PURE__ */
|
|
441
|
+
children: [/* @__PURE__ */ h("label", {
|
|
434
442
|
className: "block text-xs font-medium text-text-secondary mb-1",
|
|
435
|
-
children: ["Parser ", /* @__PURE__ */
|
|
443
|
+
children: ["Parser ", /* @__PURE__ */ m("span", {
|
|
436
444
|
className: "text-status-error-text",
|
|
437
445
|
children: "*"
|
|
438
446
|
})]
|
|
439
|
-
}), /* @__PURE__ */
|
|
447
|
+
}), /* @__PURE__ */ h("select", {
|
|
440
448
|
value: e.parserId,
|
|
441
|
-
onChange: (e) =>
|
|
449
|
+
onChange: (e) => ce(t, e.target.value),
|
|
442
450
|
className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
|
|
443
|
-
children: [/* @__PURE__ */
|
|
451
|
+
children: [/* @__PURE__ */ m("option", {
|
|
444
452
|
value: "",
|
|
445
453
|
children: "Select a parser..."
|
|
446
|
-
}),
|
|
454
|
+
}), J.map((e) => /* @__PURE__ */ h("option", {
|
|
447
455
|
value: e.id,
|
|
448
456
|
children: [
|
|
449
457
|
e.name,
|
|
@@ -454,68 +462,68 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
454
462
|
}, e.id))]
|
|
455
463
|
})]
|
|
456
464
|
}),
|
|
457
|
-
/* @__PURE__ */
|
|
465
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("label", {
|
|
458
466
|
className: "block text-xs font-medium text-text-secondary mb-1",
|
|
459
|
-
children: ["Input Key ", /* @__PURE__ */
|
|
467
|
+
children: ["Input Key ", /* @__PURE__ */ m("span", {
|
|
460
468
|
className: "text-status-error-text",
|
|
461
469
|
children: "*"
|
|
462
470
|
})]
|
|
463
|
-
}), /* @__PURE__ */
|
|
471
|
+
}), /* @__PURE__ */ m("input", {
|
|
464
472
|
type: "text",
|
|
465
473
|
value: e.inputKey,
|
|
466
|
-
onChange: (e) =>
|
|
474
|
+
onChange: (e) => $(t, { inputKey: e.target.value }),
|
|
467
475
|
placeholder: "data",
|
|
468
476
|
className: "w-full px-3 py-2 text-sm font-mono text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
|
|
469
477
|
})] }),
|
|
470
|
-
/* @__PURE__ */
|
|
478
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ h("label", {
|
|
471
479
|
className: "block text-xs font-medium text-text-secondary mb-1",
|
|
472
|
-
children: ["Output Key ", /* @__PURE__ */
|
|
480
|
+
children: ["Output Key ", /* @__PURE__ */ m("span", {
|
|
473
481
|
className: "text-status-error-text",
|
|
474
482
|
children: "*"
|
|
475
483
|
})]
|
|
476
|
-
}), /* @__PURE__ */
|
|
484
|
+
}), /* @__PURE__ */ m("input", {
|
|
477
485
|
type: "text",
|
|
478
486
|
value: e.outputKey,
|
|
479
|
-
onChange: (e) =>
|
|
487
|
+
onChange: (e) => $(t, { outputKey: e.target.value }),
|
|
480
488
|
placeholder: "result",
|
|
481
489
|
className: "w-full px-3 py-2 text-sm font-mono text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
|
|
482
490
|
})] }),
|
|
483
|
-
/* @__PURE__ */
|
|
491
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("label", {
|
|
484
492
|
className: "block text-xs font-medium text-text-secondary mb-1",
|
|
485
493
|
children: "On Error"
|
|
486
|
-
}), /* @__PURE__ */
|
|
494
|
+
}), /* @__PURE__ */ m("select", {
|
|
487
495
|
value: e.onError,
|
|
488
|
-
onChange: (e) =>
|
|
496
|
+
onChange: (e) => $(t, { onError: e.target.value }),
|
|
489
497
|
className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
|
|
490
|
-
children:
|
|
498
|
+
children: v.map((e) => /* @__PURE__ */ m("option", {
|
|
491
499
|
value: e.value,
|
|
492
500
|
children: e.label
|
|
493
501
|
}, e.value))
|
|
494
502
|
})] }),
|
|
495
|
-
/* @__PURE__ */
|
|
503
|
+
/* @__PURE__ */ m("div", {
|
|
496
504
|
className: "flex items-center",
|
|
497
|
-
children: /* @__PURE__ */
|
|
505
|
+
children: /* @__PURE__ */ h("label", {
|
|
498
506
|
className: "flex items-center gap-2 cursor-pointer",
|
|
499
|
-
children: [/* @__PURE__ */
|
|
507
|
+
children: [/* @__PURE__ */ m("input", {
|
|
500
508
|
type: "checkbox",
|
|
501
509
|
checked: e.enabled,
|
|
502
|
-
onChange: (e) =>
|
|
510
|
+
onChange: (e) => $(t, { enabled: e.target.checked }),
|
|
503
511
|
className: "w-4 h-4 rounded border-border-default text-action-primary-bg focus:ring-action-primary-bg"
|
|
504
|
-
}), /* @__PURE__ */
|
|
512
|
+
}), /* @__PURE__ */ m("span", {
|
|
505
513
|
className: "text-sm text-text-primary",
|
|
506
514
|
children: "Enabled"
|
|
507
515
|
})]
|
|
508
516
|
})
|
|
509
517
|
}),
|
|
510
|
-
e.onError === "fallback" && /* @__PURE__ */
|
|
518
|
+
e.onError === "fallback" && /* @__PURE__ */ h("div", {
|
|
511
519
|
className: "col-span-2",
|
|
512
|
-
children: [/* @__PURE__ */
|
|
520
|
+
children: [/* @__PURE__ */ m("label", {
|
|
513
521
|
className: "block text-xs font-medium text-text-secondary mb-1",
|
|
514
522
|
children: "Fallback Value (JSON)"
|
|
515
|
-
}), /* @__PURE__ */
|
|
523
|
+
}), /* @__PURE__ */ m("input", {
|
|
516
524
|
type: "text",
|
|
517
525
|
value: e.fallbackValue,
|
|
518
|
-
onChange: (e) =>
|
|
526
|
+
onChange: (e) => $(t, { fallbackValue: e.target.value }),
|
|
519
527
|
placeholder: "{\"default\": true}",
|
|
520
528
|
className: "w-full px-3 py-2 text-sm font-mono text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
|
|
521
529
|
})]
|
|
@@ -525,58 +533,58 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
525
533
|
}, t))
|
|
526
534
|
})]
|
|
527
535
|
})]
|
|
528
|
-
}), /* @__PURE__ */
|
|
536
|
+
}), /* @__PURE__ */ h("div", {
|
|
529
537
|
className: "space-y-6",
|
|
530
|
-
children: [/* @__PURE__ */
|
|
538
|
+
children: [/* @__PURE__ */ h("div", {
|
|
531
539
|
className: "bg-bg-surface border border-border-default rounded-lg p-6",
|
|
532
|
-
children: [/* @__PURE__ */
|
|
540
|
+
children: [/* @__PURE__ */ m("h2", {
|
|
533
541
|
className: "text-lg font-semibold text-text-primary mb-4",
|
|
534
542
|
children: "Preview"
|
|
535
|
-
}), /* @__PURE__ */
|
|
543
|
+
}), /* @__PURE__ */ h("div", {
|
|
536
544
|
className: "space-y-3",
|
|
537
545
|
children: [
|
|
538
|
-
/* @__PURE__ */
|
|
546
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("span", {
|
|
539
547
|
className: "text-xs text-text-secondary",
|
|
540
548
|
children: "Name"
|
|
541
|
-
}), /* @__PURE__ */
|
|
549
|
+
}), /* @__PURE__ */ m("p", {
|
|
542
550
|
className: "text-sm text-text-primary",
|
|
543
|
-
children:
|
|
551
|
+
children: k || "Untitled"
|
|
544
552
|
})] }),
|
|
545
|
-
/* @__PURE__ */
|
|
553
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("span", {
|
|
546
554
|
className: "text-xs text-text-secondary",
|
|
547
555
|
children: "Status"
|
|
548
|
-
}), /* @__PURE__ */
|
|
556
|
+
}), /* @__PURE__ */ m("div", {
|
|
549
557
|
className: "mt-1",
|
|
550
|
-
children: /* @__PURE__ */
|
|
558
|
+
children: /* @__PURE__ */ m(i, { status: N })
|
|
551
559
|
})] }),
|
|
552
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("span", {
|
|
553
561
|
className: "text-xs text-text-secondary",
|
|
554
562
|
children: "Stages"
|
|
555
|
-
}), /* @__PURE__ */
|
|
563
|
+
}), /* @__PURE__ */ m("p", {
|
|
556
564
|
className: "text-sm text-text-primary",
|
|
557
|
-
children:
|
|
565
|
+
children: F.length
|
|
558
566
|
})] }),
|
|
559
|
-
|
|
567
|
+
F.length > 0 && /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("span", {
|
|
560
568
|
className: "text-xs text-text-secondary",
|
|
561
569
|
children: "Data Flow"
|
|
562
|
-
}), /* @__PURE__ */
|
|
570
|
+
}), /* @__PURE__ */ h("div", {
|
|
563
571
|
className: "mt-1 text-xs font-mono text-text-secondary",
|
|
564
|
-
children: [
|
|
572
|
+
children: [F.map((e, t) => /* @__PURE__ */ h("span", { children: [e.inputKey, t < F.length - 1 && " → "] }, t)), F.length > 0 && ` → ${F[F.length - 1].outputKey}`]
|
|
565
573
|
})] })
|
|
566
574
|
]
|
|
567
575
|
})]
|
|
568
|
-
}), /* @__PURE__ */
|
|
576
|
+
}), /* @__PURE__ */ h("div", {
|
|
569
577
|
className: "bg-bg-sunken border border-border-default rounded-lg p-6",
|
|
570
|
-
children: [/* @__PURE__ */
|
|
578
|
+
children: [/* @__PURE__ */ m("h3", {
|
|
571
579
|
className: "text-sm font-semibold text-text-primary mb-2",
|
|
572
580
|
children: "Tips"
|
|
573
|
-
}), /* @__PURE__ */
|
|
581
|
+
}), /* @__PURE__ */ h("ul", {
|
|
574
582
|
className: "text-xs text-text-secondary space-y-2",
|
|
575
583
|
children: [
|
|
576
|
-
/* @__PURE__ */
|
|
577
|
-
/* @__PURE__ */
|
|
578
|
-
/* @__PURE__ */
|
|
579
|
-
/* @__PURE__ */
|
|
584
|
+
/* @__PURE__ */ m("li", { children: "• Each stage processes the output of the previous stage" }),
|
|
585
|
+
/* @__PURE__ */ m("li", { children: "• Use consistent input/output keys to chain data" }),
|
|
586
|
+
/* @__PURE__ */ m("li", { children: "• Set error handling per stage for robustness" }),
|
|
587
|
+
/* @__PURE__ */ m("li", { children: "• Disable stages to skip them during execution" })
|
|
580
588
|
]
|
|
581
589
|
})]
|
|
582
590
|
})]
|
|
@@ -586,6 +594,6 @@ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
|
|
|
586
594
|
});
|
|
587
595
|
});
|
|
588
596
|
//#endregion
|
|
589
|
-
export {
|
|
597
|
+
export { b as PipelineBuilderPage, b as default };
|
|
590
598
|
|
|
591
599
|
//# sourceMappingURL=PipelineBuilderPage.js.map
|