@burdenoff/microfe-bigconsole 2026.1104.2 → 2026.1104.3
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/components/datasink/LinkedWorkflowsPanel.d.ts +4 -0
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +80 -55
- package/dist/bigconsole/components/datasink/SinkWorkflowLinkForm.d.ts +13 -0
- package/dist/bigconsole/components/datasink/SinkWorkflowLinkForm.js +80 -0
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +144 -111
- package/dist/bigconsole/pages/DataSinkViewPage.js +305 -287
- package/dist/bigconsole/utils/dataSinkOwner.d.ts +26 -0
- package/dist/bigconsole/utils/dataSinkOwner.js +17 -0
- package/dist/bigconsole/utils/sinkWorkflowLink.d.ts +14 -0
- package/dist/bigconsole/utils/sinkWorkflowLink.js +7 -0
- package/package.json +1 -1
|
@@ -1,537 +1,555 @@
|
|
|
1
1
|
import { useDataSinkStore as e } from "../store/dataSinkStore.js";
|
|
2
|
-
import { useAppNavigate as
|
|
2
|
+
import { useAppNavigate as ee } from "../contexts/NavigationContext.js";
|
|
3
3
|
import "../contexts/index.js";
|
|
4
|
-
import { NEW_WORKFLOW_NAV as
|
|
5
|
-
import { newWorkflowPath as
|
|
4
|
+
import { NEW_WORKFLOW_NAV as t } from "../workflowOpen.js";
|
|
5
|
+
import { newWorkflowPath as te } from "../BigConsoleRoutes.js";
|
|
6
6
|
import "../components/common/sectionStyles.js";
|
|
7
|
-
import { Section as
|
|
7
|
+
import { Section as n, SectionStack as ne } from "../components/common/Section.js";
|
|
8
8
|
import "../components/common/index.js";
|
|
9
|
-
import { DataSinkTableViewer as
|
|
10
|
-
import
|
|
11
|
-
import { BIGCONSOLE_PERMISSIONS as
|
|
12
|
-
import { DataSinkStatusBadge as
|
|
13
|
-
import { isNative as
|
|
14
|
-
import { hasDataSinkPayload as
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
9
|
+
import { DataSinkTableViewer as re } from "../components/datasink/DataSinkTableViewer.js";
|
|
10
|
+
import ie from "../hooks/useDataSinkOperations.js";
|
|
11
|
+
import { BIGCONSOLE_PERMISSIONS as r } from "../../constants/permissions.js";
|
|
12
|
+
import { DataSinkStatusBadge as i } from "../components/datasink/DataSinkStatusBadge.js";
|
|
13
|
+
import { isNative as a, nativeConfirm as ae, nativeImpact as oe, nativeNotify as o } from "../../utils/nativeBridge.js";
|
|
14
|
+
import { hasDataSinkPayload as s } from "../utils/dataSinkPayload.js";
|
|
15
|
+
import { readSinkOwner as se } from "../utils/dataSinkOwner.js";
|
|
16
|
+
import ce from "../hooks/useDataSinkSubscription.js";
|
|
17
|
+
import { formatByteSize as le } from "../utils/format.js";
|
|
18
|
+
import { describeSetupGaps as ue, getSetupGaps as de } from "../utils/dataSinkSetup.js";
|
|
19
|
+
import { DataSinkDataViewer as fe } from "../components/datasink/DataSinkDataViewer.js";
|
|
20
|
+
import { LinkedWorkflowsPanel as pe } from "../components/datasink/LinkedWorkflowsPanel.js";
|
|
21
|
+
import { LinkedParsersPanel as me } from "../components/datasink/LinkedParsersPanel.js";
|
|
22
|
+
import { WorkflowStatusPanel as he } from "../components/datasink/WorkflowStatusPanel.js";
|
|
23
|
+
import { ExportDataSinkDialog as ge } from "../components/datasink/ExportDataSinkDialog.js";
|
|
24
|
+
import { ImportDataGuideDialog as _e } from "../components/datasink/ImportDataGuideDialog.js";
|
|
25
|
+
import { memo as c, useCallback as l, useEffect as ve, useState as u } from "react";
|
|
26
|
+
import { useParams as ye } from "react-router";
|
|
27
|
+
import { AccessDenied as be, PermissionButton as d } from "@burdenoff/fe-libs/shared/components";
|
|
28
|
+
import { usePermissions as xe } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
29
|
+
import { AlertCircle as Se, ArrowLeft as f, Bell as Ce, Code as we, Database as p, Download as Te, Edit as Ee, Eye as De, EyeOff as Oe, Grid3X3 as ke, Loader2 as m, RefreshCw as Ae, Trash2 as je, Upload as h } from "lucide-react";
|
|
30
|
+
import { Button as g, IllustratedEmptyState as Me, NextSteps as Ne, PagePurpose as Pe } from "@burdenoff/fe-libs/ui";
|
|
31
|
+
import { useI18n as Fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
32
|
+
import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
33
|
+
import { formatDistanceToNow as b } from "date-fns";
|
|
33
34
|
//#region src/bigconsole/pages/DataSinkViewPage.tsx
|
|
34
|
-
var
|
|
35
|
-
let { dataSinkId:
|
|
36
|
-
|
|
37
|
-
dataSinkId:
|
|
38
|
-
enabled: !!
|
|
39
|
-
}),
|
|
40
|
-
|
|
41
|
-
}, [
|
|
42
|
-
let
|
|
43
|
-
|
|
44
|
-
}, [
|
|
45
|
-
|
|
46
|
-
}, [
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
var x = "focus-visible:ring-inset focus-visible:ring-offset-0", S = c(function() {
|
|
36
|
+
let { dataSinkId: c } = ye(), S = ee(), { t: C } = Fe(), { hasPermission: Ie, isLoading: Le } = xe(), Re = Ie(r.DATASINK_READ), [w, T] = u(!1), [E, D] = u(!1), [O, k] = u(!1), [ze, A] = u(!1), [Be, j] = u(!1), [M, Ve] = u(null), [N, P] = u(!1), [F, I] = u("table"), [L, He] = u(100), [R, Ue] = u(0), [z, We] = u(null), [Ge, Ke] = u(!1), B = e((e) => c ? e.dataSinks.get(c) : void 0), V = se(B?.metadata), { loading: qe, error: H, fetchDataSink: U, getDataSinkData: W, refreshDataSink: G, updateDataSink: K, deleteDataSink: q } = ie({ skipFetch: !0 });
|
|
37
|
+
ce({
|
|
38
|
+
dataSinkId: c,
|
|
39
|
+
enabled: !!c
|
|
40
|
+
}), ve(() => {
|
|
41
|
+
c && U(c);
|
|
42
|
+
}, [c, U]);
|
|
43
|
+
let Je = l(async () => {
|
|
44
|
+
c && await U(c);
|
|
45
|
+
}, [c, U]), J = l(() => {
|
|
46
|
+
S("/datasinks");
|
|
47
|
+
}, [S]), Y = l(() => {
|
|
48
|
+
S(`/datasinks/${c}/edit`);
|
|
49
|
+
}, [S, c]), X = l(async () => {
|
|
50
|
+
if (c) {
|
|
51
|
+
D(!0);
|
|
49
52
|
try {
|
|
50
|
-
await G({ id:
|
|
53
|
+
await G({ id: c });
|
|
51
54
|
} catch {} finally {
|
|
52
|
-
|
|
55
|
+
D(!1);
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
|
-
}, [
|
|
56
|
-
if (!
|
|
57
|
-
let e = await
|
|
58
|
-
title:
|
|
59
|
-
message:
|
|
60
|
-
okButtonTitle:
|
|
61
|
-
cancelButtonTitle:
|
|
58
|
+
}, [c, G]), Ye = l(async () => {
|
|
59
|
+
if (!c) return;
|
|
60
|
+
let e = await ae({
|
|
61
|
+
title: C("bigconsole.dataSinks.view.deleteConfirmTitle", "Delete DataSink?"),
|
|
62
|
+
message: C("bigconsole.dataSinks.view.deleteConfirmMessage", "Are you sure you want to delete this DataSink?"),
|
|
63
|
+
okButtonTitle: C("bigconsole.dataSinks.view.delete", "Delete"),
|
|
64
|
+
cancelButtonTitle: C("bigconsole.dataSinks.view.cancel", "Cancel")
|
|
62
65
|
});
|
|
63
|
-
if (e === null ? window.confirm(
|
|
64
|
-
|
|
66
|
+
if (e === null ? window.confirm(C("bigconsole.dataSinks.view.deleteConfirmMessage", "Are you sure you want to delete this DataSink?")) : e) {
|
|
67
|
+
oe("medium"), k(!0);
|
|
65
68
|
try {
|
|
66
|
-
await q(
|
|
69
|
+
await q(c), a() && o("success"), S("/datasinks");
|
|
67
70
|
} catch {
|
|
68
|
-
|
|
71
|
+
a() && o("error");
|
|
69
72
|
} finally {
|
|
70
|
-
|
|
73
|
+
k(!1);
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
76
|
}, [
|
|
74
|
-
|
|
77
|
+
c,
|
|
75
78
|
q,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
]), Z =
|
|
79
|
-
if (
|
|
80
|
-
|
|
79
|
+
S,
|
|
80
|
+
C
|
|
81
|
+
]), Z = l(async (e, ee) => {
|
|
82
|
+
if (c) {
|
|
83
|
+
P(!0);
|
|
81
84
|
try {
|
|
82
|
-
let
|
|
83
|
-
limit:
|
|
85
|
+
let t = await W({ id: c }, {
|
|
86
|
+
limit: ee,
|
|
84
87
|
offset: e
|
|
85
88
|
});
|
|
86
|
-
|
|
89
|
+
t && (Ve(t.raw || {}), We(typeof t.totalCount == "number" ? t.totalCount : null), Ke(!!t.hasMore), Ue(e));
|
|
87
90
|
} catch {} finally {
|
|
88
|
-
|
|
91
|
+
P(!1);
|
|
89
92
|
}
|
|
90
93
|
}
|
|
91
|
-
}, [
|
|
92
|
-
if (
|
|
93
|
-
if (
|
|
94
|
-
|
|
94
|
+
}, [c, W]), Q = l(async () => {
|
|
95
|
+
if (c) {
|
|
96
|
+
if (w) {
|
|
97
|
+
T(!1);
|
|
95
98
|
return;
|
|
96
99
|
}
|
|
97
|
-
await Z(0,
|
|
100
|
+
await Z(0, L), T(!0);
|
|
98
101
|
}
|
|
99
102
|
}, [
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
c,
|
|
104
|
+
w,
|
|
102
105
|
Z,
|
|
103
|
-
|
|
104
|
-
]),
|
|
105
|
-
|
|
106
|
-
}, [Z]),
|
|
106
|
+
L
|
|
107
|
+
]), Xe = l((e) => {
|
|
108
|
+
He(e), Z(0, e);
|
|
109
|
+
}, [Z]), Ze = l(() => {
|
|
110
|
+
A(!0);
|
|
111
|
+
}, []), Qe = l(() => {
|
|
112
|
+
A(!1);
|
|
113
|
+
}, []), $e = l(() => {
|
|
107
114
|
j(!0);
|
|
108
|
-
}, []),
|
|
115
|
+
}, []), et = l(() => {
|
|
109
116
|
j(!1);
|
|
110
|
-
}, []),
|
|
111
|
-
|
|
112
|
-
}, []),
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}, [C]), $e = u(async (e) => {
|
|
117
|
-
if (!V || !await K({
|
|
118
|
-
id: V.id,
|
|
119
|
-
version: V.version,
|
|
117
|
+
}, []), tt = l(() => {
|
|
118
|
+
j(!1), S(te(), t);
|
|
119
|
+
}, [S]), nt = l(async (e) => {
|
|
120
|
+
if (!B || !await K({
|
|
121
|
+
id: B.id,
|
|
122
|
+
version: B.version,
|
|
120
123
|
data: e
|
|
121
124
|
})) return !1;
|
|
122
125
|
try {
|
|
123
|
-
await Z(0,
|
|
126
|
+
await Z(0, L), T(!0);
|
|
124
127
|
} catch {}
|
|
125
128
|
return !0;
|
|
126
129
|
}, [
|
|
127
|
-
|
|
130
|
+
B,
|
|
128
131
|
K,
|
|
129
132
|
Z,
|
|
130
|
-
|
|
133
|
+
L
|
|
131
134
|
]);
|
|
132
|
-
if (
|
|
135
|
+
if (qe && !B) return /* @__PURE__ */ v("div", {
|
|
133
136
|
className: "flex min-h-[240px] items-center justify-center p-card-padding",
|
|
134
|
-
children: /* @__PURE__ */
|
|
137
|
+
children: /* @__PURE__ */ v(m, { className: "h-icon-lg w-icon-lg animate-spin text-text-secondary" })
|
|
135
138
|
});
|
|
136
|
-
if (H && !
|
|
139
|
+
if (H && !B) return /* @__PURE__ */ v("div", {
|
|
137
140
|
className: "p-card-padding",
|
|
138
|
-
children: /* @__PURE__ */
|
|
141
|
+
children: /* @__PURE__ */ v(n, {
|
|
139
142
|
tone: "danger",
|
|
140
143
|
headingLevel: 2,
|
|
141
|
-
title:
|
|
144
|
+
title: C("bigconsole.dataSinks.view.loadError", "Failed to load DataSink"),
|
|
142
145
|
description: H.message,
|
|
143
|
-
icon: /* @__PURE__ */
|
|
144
|
-
actions: /* @__PURE__ */
|
|
146
|
+
icon: /* @__PURE__ */ v(Se, { className: "h-icon-sm w-icon-sm" }),
|
|
147
|
+
actions: /* @__PURE__ */ y(g, {
|
|
145
148
|
onClick: J,
|
|
146
149
|
variant: "secondary",
|
|
147
150
|
size: "sm",
|
|
148
|
-
children: [/* @__PURE__ */
|
|
151
|
+
children: [/* @__PURE__ */ v(f, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.goBack", "Go back")]
|
|
149
152
|
})
|
|
150
153
|
})
|
|
151
154
|
});
|
|
152
|
-
if (!
|
|
153
|
-
title:
|
|
154
|
-
description:
|
|
155
|
+
if (!Le && !Re) return /* @__PURE__ */ v(be, {
|
|
156
|
+
title: C("bigconsole.dataSinks.view.accessDeniedTitle", "Access Denied"),
|
|
157
|
+
description: C("bigconsole.dataSinks.view.accessDeniedDescription", "You don't have permission to view this data sink.")
|
|
155
158
|
});
|
|
156
|
-
if (!
|
|
159
|
+
if (!B) return /* @__PURE__ */ v("div", {
|
|
157
160
|
className: "flex min-h-[240px] items-center justify-center p-card-padding",
|
|
158
|
-
children: /* @__PURE__ */
|
|
161
|
+
children: /* @__PURE__ */ v(Me, {
|
|
159
162
|
illustration: "empty-data",
|
|
160
|
-
title:
|
|
161
|
-
description:
|
|
162
|
-
action: /* @__PURE__ */
|
|
163
|
+
title: C("bigconsole.dataSinks.view.notFoundTitle", "DataSink not found"),
|
|
164
|
+
description: C("bigconsole.dataSinks.view.notFoundDescription", "The DataSink you're looking for doesn't exist or has been deleted."),
|
|
165
|
+
action: /* @__PURE__ */ y(g, {
|
|
163
166
|
onClick: J,
|
|
164
167
|
variant: "default",
|
|
165
168
|
size: "default",
|
|
166
|
-
children: [/* @__PURE__ */
|
|
169
|
+
children: [/* @__PURE__ */ v(f, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.goBackToDataSinks", "Go back to DataSinks")]
|
|
167
170
|
})
|
|
168
171
|
})
|
|
169
172
|
});
|
|
170
|
-
let $ =
|
|
171
|
-
return /* @__PURE__ */
|
|
173
|
+
let $ = de(B);
|
|
174
|
+
return /* @__PURE__ */ y("div", {
|
|
172
175
|
className: "min-w-0 p-card-padding",
|
|
173
176
|
children: [
|
|
174
|
-
/* @__PURE__ */
|
|
177
|
+
/* @__PURE__ */ y("header", {
|
|
175
178
|
className: "mb-section-gap flex flex-wrap items-start justify-between gap-form-gap",
|
|
176
|
-
children: [/* @__PURE__ */
|
|
179
|
+
children: [/* @__PURE__ */ y("div", {
|
|
177
180
|
className: "min-w-[min(100%,16rem)] flex-1",
|
|
178
181
|
children: [
|
|
179
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ y(g, {
|
|
180
183
|
onClick: J,
|
|
181
184
|
variant: "ghost",
|
|
182
185
|
size: "sm",
|
|
183
186
|
className: "mb-4",
|
|
184
|
-
children: [/* @__PURE__ */
|
|
187
|
+
children: [/* @__PURE__ */ v(f, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.backToDataSinks", "Back to DataSinks")]
|
|
185
188
|
}),
|
|
186
|
-
/* @__PURE__ */
|
|
189
|
+
/* @__PURE__ */ y("div", {
|
|
187
190
|
className: "flex flex-wrap items-center gap-2",
|
|
188
191
|
children: [
|
|
189
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ v("h1", {
|
|
190
193
|
className: "break-words text-2xl font-bold text-text-primary",
|
|
191
|
-
children:
|
|
194
|
+
children: B.name || C("bigconsole.dataSinks.view.untitled", "Untitled")
|
|
192
195
|
}),
|
|
193
|
-
/* @__PURE__ */
|
|
194
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ v(i, { status: B.status }),
|
|
197
|
+
/* @__PURE__ */ y("span", {
|
|
195
198
|
className: "rounded-pill border border-border-subtle px-2 py-1 text-xs text-text-secondary",
|
|
196
|
-
children: ["v",
|
|
199
|
+
children: ["v", B.version]
|
|
197
200
|
})
|
|
198
201
|
]
|
|
199
202
|
}),
|
|
200
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ v("p", {
|
|
201
204
|
className: "mt-1 break-all font-mono text-sm text-text-muted",
|
|
202
|
-
children:
|
|
205
|
+
children: B.key
|
|
203
206
|
}),
|
|
204
|
-
|
|
207
|
+
B.description && /* @__PURE__ */ v("p", {
|
|
205
208
|
className: "mt-2 break-words text-sm text-text-secondary",
|
|
206
|
-
children:
|
|
209
|
+
children: B.description
|
|
207
210
|
})
|
|
208
211
|
]
|
|
209
|
-
}), /* @__PURE__ */
|
|
212
|
+
}), /* @__PURE__ */ y("div", {
|
|
210
213
|
className: "flex max-w-full flex-wrap items-center gap-2",
|
|
211
214
|
children: [
|
|
212
|
-
/* @__PURE__ */
|
|
213
|
-
permission:
|
|
215
|
+
/* @__PURE__ */ v(d, {
|
|
216
|
+
permission: r.DATASINK_EXECUTE,
|
|
214
217
|
deniedBehavior: "disable",
|
|
215
|
-
children: /* @__PURE__ */
|
|
218
|
+
children: /* @__PURE__ */ y(g, {
|
|
216
219
|
onClick: X,
|
|
217
|
-
disabled:
|
|
220
|
+
disabled: E,
|
|
218
221
|
variant: "default",
|
|
219
222
|
size: "default",
|
|
220
|
-
children: [/* @__PURE__ */
|
|
223
|
+
children: [/* @__PURE__ */ v(Ae, { className: `w-4 h-4 mr-2 ${E ? "animate-spin" : ""}` }), E ? C("bigconsole.dataSinks.view.refreshing", "Refreshing...") : C("bigconsole.dataSinks.view.refresh", "Refresh")]
|
|
221
224
|
})
|
|
222
225
|
}),
|
|
223
|
-
/* @__PURE__ */
|
|
224
|
-
onClick:
|
|
226
|
+
/* @__PURE__ */ y(g, {
|
|
227
|
+
onClick: $e,
|
|
225
228
|
variant: "secondary",
|
|
226
229
|
size: "default",
|
|
227
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: [/* @__PURE__ */ v(h, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.importData", "Import Data")]
|
|
228
231
|
}),
|
|
229
|
-
/* @__PURE__ */
|
|
230
|
-
onClick:
|
|
232
|
+
/* @__PURE__ */ y(g, {
|
|
233
|
+
onClick: Ze,
|
|
231
234
|
variant: "secondary",
|
|
232
235
|
size: "default",
|
|
233
|
-
children: [/* @__PURE__ */
|
|
236
|
+
children: [/* @__PURE__ */ v(Te, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.export", "Export")]
|
|
234
237
|
}),
|
|
235
|
-
/* @__PURE__ */
|
|
236
|
-
onClick: () =>
|
|
238
|
+
/* @__PURE__ */ y(g, {
|
|
239
|
+
onClick: () => S(`/datasinks/${c}/alerts`),
|
|
237
240
|
variant: "secondary",
|
|
238
241
|
size: "default",
|
|
239
|
-
children: [/* @__PURE__ */
|
|
242
|
+
children: [/* @__PURE__ */ v(Ce, { className: "w-4 h-4 mr-2" }), C("bigconsole.alerts.title", "Alerts")]
|
|
240
243
|
}),
|
|
241
|
-
/* @__PURE__ */
|
|
242
|
-
permission:
|
|
244
|
+
/* @__PURE__ */ v(d, {
|
|
245
|
+
permission: r.DATASINK_UPDATE,
|
|
243
246
|
deniedBehavior: "disable",
|
|
244
|
-
children: /* @__PURE__ */
|
|
247
|
+
children: /* @__PURE__ */ y(g, {
|
|
245
248
|
onClick: Y,
|
|
246
249
|
variant: "secondary",
|
|
247
250
|
size: "default",
|
|
248
|
-
children: [/* @__PURE__ */
|
|
251
|
+
children: [/* @__PURE__ */ v(Ee, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.edit", "Edit")]
|
|
249
252
|
})
|
|
250
253
|
}),
|
|
251
|
-
/* @__PURE__ */
|
|
252
|
-
permission:
|
|
254
|
+
/* @__PURE__ */ v(d, {
|
|
255
|
+
permission: r.DATASINK_DELETE,
|
|
253
256
|
deniedBehavior: "hide",
|
|
254
|
-
children: /* @__PURE__ */
|
|
255
|
-
onClick:
|
|
256
|
-
disabled:
|
|
257
|
+
children: /* @__PURE__ */ y(g, {
|
|
258
|
+
onClick: Ye,
|
|
259
|
+
disabled: O,
|
|
257
260
|
variant: "destructive",
|
|
258
261
|
size: "default",
|
|
259
|
-
children: [/* @__PURE__ */
|
|
262
|
+
children: [/* @__PURE__ */ v(je, { className: "w-4 h-4 mr-2" }), O ? C("bigconsole.dataSinks.view.deleting", "Deleting...") : C("bigconsole.dataSinks.view.delete", "Delete")]
|
|
260
263
|
})
|
|
261
264
|
})
|
|
262
265
|
]
|
|
263
266
|
})]
|
|
264
267
|
}),
|
|
265
|
-
/* @__PURE__ */
|
|
268
|
+
/* @__PURE__ */ v(Pe, {
|
|
266
269
|
className: "mb-section-gap",
|
|
267
|
-
children:
|
|
270
|
+
children: C("bigconsole.dataSinks.view.pagePurpose", "A data sink is a structured store that holds your processed data and serves it to dashboards. From here you can inspect its schema and stats, preview the cached rows, refresh it from its linked workflow, or export it.")
|
|
268
271
|
}),
|
|
269
|
-
$.length > 0 && /* @__PURE__ */
|
|
272
|
+
$.length > 0 && /* @__PURE__ */ y("div", {
|
|
270
273
|
role: "status",
|
|
271
274
|
className: "mb-section-gap flex flex-wrap items-center justify-between gap-form-gap rounded-input border border-[var(--color-status-warning-border)] bg-[var(--color-status-warning-bgSubtle)] p-3",
|
|
272
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ v("p", {
|
|
273
276
|
className: "min-w-0 text-sm text-[var(--color-status-warning-text)]",
|
|
274
|
-
children:
|
|
275
|
-
}), /* @__PURE__ */
|
|
276
|
-
permission:
|
|
277
|
+
children: ue($, C)
|
|
278
|
+
}), /* @__PURE__ */ v(d, {
|
|
279
|
+
permission: r.DATASINK_UPDATE,
|
|
277
280
|
deniedBehavior: "disable",
|
|
278
|
-
children: /* @__PURE__ */
|
|
281
|
+
children: /* @__PURE__ */ v(g, {
|
|
279
282
|
onClick: Y,
|
|
280
283
|
variant: "secondary",
|
|
281
284
|
size: "sm",
|
|
282
|
-
children:
|
|
285
|
+
children: C("bigconsole.dataSinks.setup.continueSetup", "Continue setup")
|
|
283
286
|
})
|
|
284
287
|
})]
|
|
285
288
|
}),
|
|
286
|
-
/* @__PURE__ */
|
|
289
|
+
/* @__PURE__ */ y(ne, {
|
|
287
290
|
className: "mt-section-gap",
|
|
288
|
-
children: [/* @__PURE__ */
|
|
291
|
+
children: [/* @__PURE__ */ y("div", {
|
|
289
292
|
className: "grid min-w-0 gap-section-gap lg:grid-cols-[minmax(0,2fr)_minmax(0,3fr)]",
|
|
290
|
-
children: [/* @__PURE__ */
|
|
293
|
+
children: [/* @__PURE__ */ v(n, {
|
|
291
294
|
headingLevel: 2,
|
|
292
|
-
title:
|
|
295
|
+
title: C("bigconsole.dataSinks.view.details", "Details"),
|
|
293
296
|
description: "Cache, refresh and storage settings for this sink.",
|
|
294
|
-
children: /* @__PURE__ */
|
|
297
|
+
children: /* @__PURE__ */ y("dl", {
|
|
295
298
|
className: "divide-y divide-[var(--color-border-subtle)] text-sm",
|
|
296
299
|
children: [
|
|
297
|
-
/* @__PURE__ */
|
|
300
|
+
/* @__PURE__ */ y("div", {
|
|
298
301
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2 first:pt-0",
|
|
299
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
300
303
|
className: "min-w-0 text-text-secondary",
|
|
301
|
-
children:
|
|
302
|
-
}), /* @__PURE__ */
|
|
303
|
-
status:
|
|
304
|
+
children: C("bigconsole.dataSinks.view.status", "Status")
|
|
305
|
+
}), /* @__PURE__ */ v("dd", { children: /* @__PURE__ */ v(i, {
|
|
306
|
+
status: B.status,
|
|
304
307
|
size: "sm"
|
|
305
308
|
}) })]
|
|
306
309
|
}),
|
|
307
|
-
/* @__PURE__ */
|
|
310
|
+
/* @__PURE__ */ y("div", {
|
|
308
311
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2",
|
|
309
|
-
children: [/* @__PURE__ */
|
|
312
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
310
313
|
className: "min-w-0 text-text-secondary",
|
|
311
|
-
children:
|
|
312
|
-
}), /* @__PURE__ */
|
|
314
|
+
children: C("bigconsole.dataSinks.view.owner", "Owner")
|
|
315
|
+
}), /* @__PURE__ */ v("dd", {
|
|
316
|
+
className: `min-w-0 break-words text-right ${V ? "font-medium text-text-primary" : "text-text-muted"}`,
|
|
317
|
+
"data-testid": "datasink-owner",
|
|
318
|
+
children: V || C("bigconsole.dataSinks.view.ownerNotSet", "Not set")
|
|
319
|
+
})]
|
|
320
|
+
}),
|
|
321
|
+
/* @__PURE__ */ y("div", {
|
|
322
|
+
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2",
|
|
323
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
324
|
+
className: "min-w-0 text-text-secondary",
|
|
325
|
+
children: C("bigconsole.dataSinks.view.cacheTtl", "Cache TTL")
|
|
326
|
+
}), /* @__PURE__ */ v("dd", {
|
|
313
327
|
className: "font-medium text-text-primary",
|
|
314
|
-
children:
|
|
328
|
+
children: B.ttl ? `${B.ttl}s` : C("bigconsole.dataSinks.view.none", "None")
|
|
315
329
|
})]
|
|
316
330
|
}),
|
|
317
|
-
/* @__PURE__ */
|
|
331
|
+
/* @__PURE__ */ y("div", {
|
|
318
332
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2",
|
|
319
|
-
children: [/* @__PURE__ */
|
|
333
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
320
334
|
className: "min-w-0 text-text-secondary",
|
|
321
|
-
children:
|
|
322
|
-
}), /* @__PURE__ */
|
|
335
|
+
children: C("bigconsole.dataSinks.view.refreshType", "Refresh Type")
|
|
336
|
+
}), /* @__PURE__ */ v("dd", {
|
|
323
337
|
className: "font-medium capitalize text-text-primary",
|
|
324
|
-
children:
|
|
338
|
+
children: B.refresh?.type || C("bigconsole.dataSinks.view.manual", "Manual")
|
|
325
339
|
})]
|
|
326
340
|
}),
|
|
327
|
-
/* @__PURE__ */
|
|
341
|
+
/* @__PURE__ */ y("div", {
|
|
328
342
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2",
|
|
329
|
-
children: [/* @__PURE__ */
|
|
343
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
330
344
|
className: "min-w-0 text-text-secondary",
|
|
331
|
-
children:
|
|
332
|
-
}), /* @__PURE__ */
|
|
345
|
+
children: C("bigconsole.dataSinks.view.size", "Size")
|
|
346
|
+
}), /* @__PURE__ */ v("dd", {
|
|
333
347
|
className: "font-medium text-text-primary",
|
|
334
|
-
children:
|
|
348
|
+
children: le(B.sizeBytes || 0)
|
|
335
349
|
})]
|
|
336
350
|
}),
|
|
337
|
-
/* @__PURE__ */
|
|
351
|
+
/* @__PURE__ */ y("div", {
|
|
338
352
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2",
|
|
339
|
-
children: [/* @__PURE__ */
|
|
353
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
340
354
|
className: "min-w-0 text-text-secondary",
|
|
341
|
-
children:
|
|
342
|
-
}), /* @__PURE__ */
|
|
355
|
+
children: C("bigconsole.dataSinks.view.version", "Version")
|
|
356
|
+
}), /* @__PURE__ */ v("dd", {
|
|
343
357
|
className: "font-medium text-text-primary",
|
|
344
|
-
children:
|
|
358
|
+
children: B.version || 1
|
|
345
359
|
})]
|
|
346
360
|
}),
|
|
347
|
-
/* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ y("div", {
|
|
348
362
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2",
|
|
349
|
-
children: [/* @__PURE__ */
|
|
363
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
350
364
|
className: "min-w-0 text-text-secondary",
|
|
351
|
-
children:
|
|
352
|
-
}), /* @__PURE__ */
|
|
365
|
+
children: C("bigconsole.dataSinks.view.lastRefreshed", "Last Refreshed")
|
|
366
|
+
}), /* @__PURE__ */ v("dd", {
|
|
353
367
|
className: "font-medium text-text-primary",
|
|
354
|
-
children:
|
|
368
|
+
children: B.lastRefreshedAt ? b(new Date(B.lastRefreshedAt), { addSuffix: !0 }) : C("bigconsole.dataSinks.view.never", "Never")
|
|
355
369
|
})]
|
|
356
370
|
}),
|
|
357
|
-
/* @__PURE__ */
|
|
371
|
+
/* @__PURE__ */ y("div", {
|
|
358
372
|
className: "flex flex-wrap items-center justify-between gap-x-form-gap gap-y-1 py-2 last:pb-0",
|
|
359
|
-
children: [/* @__PURE__ */
|
|
373
|
+
children: [/* @__PURE__ */ v("dt", {
|
|
360
374
|
className: "min-w-0 text-text-secondary",
|
|
361
|
-
children:
|
|
362
|
-
}), /* @__PURE__ */
|
|
375
|
+
children: C("bigconsole.dataSinks.view.created", "Created")
|
|
376
|
+
}), /* @__PURE__ */ v("dd", {
|
|
363
377
|
className: "font-medium text-text-primary",
|
|
364
|
-
children:
|
|
378
|
+
children: b(new Date(B.createdAt), { addSuffix: !0 })
|
|
365
379
|
})]
|
|
366
380
|
})
|
|
367
381
|
]
|
|
368
382
|
})
|
|
369
|
-
}), /* @__PURE__ */
|
|
383
|
+
}), /* @__PURE__ */ y(n, {
|
|
370
384
|
emphasis: "primary",
|
|
371
385
|
headingLevel: 2,
|
|
372
|
-
title:
|
|
386
|
+
title: C("bigconsole.dataSinks.view.dataPreview", "Data Preview"),
|
|
373
387
|
description: "The rows this sink is currently serving to dashboards.",
|
|
374
|
-
icon: /* @__PURE__ */
|
|
375
|
-
actions: /* @__PURE__ */
|
|
388
|
+
icon: /* @__PURE__ */ v(p, { className: "h-icon-sm w-icon-sm" }),
|
|
389
|
+
actions: /* @__PURE__ */ y(_, { children: [w && /* @__PURE__ */ y("div", {
|
|
376
390
|
role: "group",
|
|
377
|
-
"aria-label":
|
|
391
|
+
"aria-label": C("bigconsole.dataSinks.view.dataPreview", "Data Preview"),
|
|
378
392
|
className: "flex items-center overflow-hidden rounded-button border border-[var(--color-border-default)]",
|
|
379
|
-
children: [/* @__PURE__ */
|
|
393
|
+
children: [/* @__PURE__ */ v("button", {
|
|
380
394
|
type: "button",
|
|
381
|
-
onClick: () =>
|
|
382
|
-
"aria-pressed":
|
|
383
|
-
className: `flex h-control-md w-[var(--size-controlHeight-md)] items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface ${
|
|
384
|
-
title:
|
|
385
|
-
children: /* @__PURE__ */
|
|
386
|
-
}), /* @__PURE__ */
|
|
395
|
+
onClick: () => I("table"),
|
|
396
|
+
"aria-pressed": F === "table",
|
|
397
|
+
className: `flex h-control-md w-[var(--size-controlHeight-md)] items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface ${x} ${F === "table" ? "bg-bg-sunken text-text-primary" : "text-text-secondary hover:text-text-primary"}`,
|
|
398
|
+
title: C("bigconsole.dataSinks.view.tableView", "Table view"),
|
|
399
|
+
children: /* @__PURE__ */ v(ke, { className: "w-4 h-4" })
|
|
400
|
+
}), /* @__PURE__ */ v("button", {
|
|
387
401
|
type: "button",
|
|
388
|
-
onClick: () =>
|
|
389
|
-
"aria-pressed":
|
|
390
|
-
className: `flex h-control-md w-[var(--size-controlHeight-md)] items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface ${
|
|
391
|
-
title:
|
|
392
|
-
children: /* @__PURE__ */
|
|
402
|
+
onClick: () => I("json"),
|
|
403
|
+
"aria-pressed": F === "json",
|
|
404
|
+
className: `flex h-control-md w-[var(--size-controlHeight-md)] items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface ${x} ${F === "json" ? "bg-bg-sunken text-text-primary" : "text-text-secondary hover:text-text-primary"}`,
|
|
405
|
+
title: C("bigconsole.dataSinks.view.jsonView", "JSON view"),
|
|
406
|
+
children: /* @__PURE__ */ v(we, { className: "w-4 h-4" })
|
|
393
407
|
})]
|
|
394
|
-
}), /* @__PURE__ */
|
|
408
|
+
}), /* @__PURE__ */ v(g, {
|
|
395
409
|
onClick: Q,
|
|
396
|
-
disabled:
|
|
397
|
-
variant:
|
|
410
|
+
disabled: N,
|
|
411
|
+
variant: w ? "secondary" : "default",
|
|
398
412
|
size: "sm",
|
|
399
|
-
children:
|
|
413
|
+
children: N ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(m, { className: "w-4 h-4 mr-2 animate-spin" }), C("bigconsole.dataSinks.view.loading", "Loading...")] }) : w ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(Oe, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.hideData", "Hide Data")] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(De, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.showData", "Show Data")] })
|
|
400
414
|
})] }),
|
|
401
|
-
children: [
|
|
402
|
-
data:
|
|
415
|
+
children: [w && M && /* @__PURE__ */ y(_, { children: [v(F === "table" ? re : fe, {
|
|
416
|
+
data: M,
|
|
403
417
|
maxHeight: "400px"
|
|
404
|
-
}),
|
|
418
|
+
}), z !== null && /* @__PURE__ */ y("div", {
|
|
405
419
|
className: "mt-form-gap flex flex-wrap items-center justify-between gap-form-gap border-t border-[var(--color-border-subtle)] pt-form-gap",
|
|
406
|
-
children: [/* @__PURE__ */
|
|
420
|
+
children: [/* @__PURE__ */ y("label", {
|
|
407
421
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
408
|
-
children: [/* @__PURE__ */
|
|
409
|
-
"aria-label":
|
|
422
|
+
children: [/* @__PURE__ */ v("span", { children: C("bigconsole.dataSinks.view.rowsPerPage", "Rows per page") }), /* @__PURE__ */ v("select", {
|
|
423
|
+
"aria-label": C("bigconsole.dataSinks.view.rowsPerPage", "Rows per page"),
|
|
410
424
|
className: "h-control-md rounded-input border border-[var(--color-border-default)] bg-bg-canvas px-2 text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
|
|
411
|
-
value:
|
|
412
|
-
onChange: (e) =>
|
|
425
|
+
value: L,
|
|
426
|
+
onChange: (e) => Xe(Number(e.target.value)),
|
|
413
427
|
children: [
|
|
414
428
|
100,
|
|
415
429
|
500,
|
|
416
430
|
1e3
|
|
417
|
-
].map((e) => /* @__PURE__ */
|
|
431
|
+
].map((e) => /* @__PURE__ */ v("option", {
|
|
418
432
|
value: e,
|
|
419
433
|
children: e
|
|
420
434
|
}, e))
|
|
421
435
|
})]
|
|
422
|
-
}), /* @__PURE__ */
|
|
436
|
+
}), /* @__PURE__ */ y("div", {
|
|
423
437
|
className: "flex flex-wrap items-center gap-control-gap text-sm text-text-secondary",
|
|
424
438
|
children: [
|
|
425
|
-
/* @__PURE__ */
|
|
426
|
-
start:
|
|
427
|
-
end: Math.min(
|
|
428
|
-
total:
|
|
439
|
+
/* @__PURE__ */ v("span", { children: z === 0 ? C("bigconsole.dataSinks.view.zeroRows", "0 rows") : C("bigconsole.dataSinks.view.rowRange", "{{start}}–{{end}} of {{total}}", {
|
|
440
|
+
start: R + 1,
|
|
441
|
+
end: Math.min(R + L, z),
|
|
442
|
+
total: z
|
|
429
443
|
}) }),
|
|
430
|
-
/* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ v(g, {
|
|
431
445
|
variant: "secondary",
|
|
432
446
|
size: "sm",
|
|
433
|
-
disabled:
|
|
434
|
-
onClick: () => void Z(Math.max(0,
|
|
435
|
-
children:
|
|
447
|
+
disabled: R === 0 || N,
|
|
448
|
+
onClick: () => void Z(Math.max(0, R - L), L),
|
|
449
|
+
children: C("bigconsole.dataSinks.view.previous", "Previous")
|
|
436
450
|
}),
|
|
437
|
-
/* @__PURE__ */
|
|
451
|
+
/* @__PURE__ */ v(g, {
|
|
438
452
|
variant: "secondary",
|
|
439
453
|
size: "sm",
|
|
440
|
-
disabled: !
|
|
441
|
-
onClick: () => void Z(
|
|
442
|
-
children:
|
|
454
|
+
disabled: !Ge || N,
|
|
455
|
+
onClick: () => void Z(R + L, L),
|
|
456
|
+
children: C("bigconsole.dataSinks.view.next", "Next")
|
|
443
457
|
})
|
|
444
458
|
]
|
|
445
459
|
})]
|
|
446
|
-
})] }), !
|
|
460
|
+
})] }), !w && (s(B) ? /* @__PURE__ */ y("p", {
|
|
447
461
|
className: "flex items-center gap-icon-gap text-sm text-text-secondary",
|
|
448
|
-
children: [/* @__PURE__ */
|
|
462
|
+
children: [/* @__PURE__ */ v(p, {
|
|
449
463
|
"aria-hidden": "true",
|
|
450
464
|
className: "h-icon-sm w-icon-sm shrink-0 text-text-muted"
|
|
451
|
-
}),
|
|
452
|
-
}) : /* @__PURE__ */
|
|
465
|
+
}), C("bigconsole.dataSinks.view.showDataHint", "Click \"Show Data\" to preview the cached data.")]
|
|
466
|
+
}) : /* @__PURE__ */ y("div", {
|
|
453
467
|
className: "flex flex-col items-center gap-form-gap py-form-gap text-center",
|
|
454
468
|
children: [
|
|
455
|
-
/* @__PURE__ */
|
|
469
|
+
/* @__PURE__ */ v(p, {
|
|
456
470
|
"aria-hidden": "true",
|
|
457
471
|
className: "h-icon-lg w-icon-lg text-text-muted"
|
|
458
472
|
}),
|
|
459
|
-
/* @__PURE__ */
|
|
473
|
+
/* @__PURE__ */ v("p", {
|
|
460
474
|
className: "text-sm text-text-secondary",
|
|
461
|
-
children:
|
|
475
|
+
children: C("bigconsole.dataSinks.view.noDataYet", "This data sink has no data yet. Upload a CSV or build a workflow to import data.")
|
|
462
476
|
}),
|
|
463
|
-
/* @__PURE__ */
|
|
464
|
-
onClick:
|
|
477
|
+
/* @__PURE__ */ y(g, {
|
|
478
|
+
onClick: $e,
|
|
465
479
|
variant: "default",
|
|
466
480
|
size: "sm",
|
|
467
|
-
children: [/* @__PURE__ */
|
|
481
|
+
children: [/* @__PURE__ */ v(h, { className: "w-4 h-4 mr-2" }), C("bigconsole.dataSinks.view.importData", "Import Data")]
|
|
468
482
|
})
|
|
469
483
|
]
|
|
470
484
|
}))]
|
|
471
485
|
})]
|
|
472
|
-
}), /* @__PURE__ */
|
|
486
|
+
}), /* @__PURE__ */ y("div", {
|
|
473
487
|
className: "grid min-w-0 gap-section-gap md:grid-cols-2",
|
|
474
488
|
children: [
|
|
475
|
-
|
|
476
|
-
workflowId:
|
|
477
|
-
executionId:
|
|
478
|
-
lastRefreshedAt:
|
|
479
|
-
setupState:
|
|
480
|
-
status:
|
|
489
|
+
B.fluidGridsWorkflowId && /* @__PURE__ */ v(he, {
|
|
490
|
+
workflowId: B.fluidGridsWorkflowId,
|
|
491
|
+
executionId: B.fluidGridsWorkflowExecutionId || void 0,
|
|
492
|
+
lastRefreshedAt: B.lastRefreshedAt || void 0,
|
|
493
|
+
setupState: B.setupState,
|
|
494
|
+
status: B.status,
|
|
481
495
|
onRerunWorkflow: X,
|
|
482
|
-
disabled:
|
|
483
|
-
isRerunning:
|
|
496
|
+
disabled: E,
|
|
497
|
+
isRerunning: E
|
|
498
|
+
}),
|
|
499
|
+
/* @__PURE__ */ v(pe, {
|
|
500
|
+
workflowLinks: B.workflowLinks,
|
|
501
|
+
dataSinkKey: B.key,
|
|
502
|
+
onLinked: Je
|
|
484
503
|
}),
|
|
485
|
-
/* @__PURE__ */
|
|
486
|
-
/* @__PURE__ */ y(fe, { dataSinkKey: V.key })
|
|
504
|
+
/* @__PURE__ */ v(me, { dataSinkKey: B.key })
|
|
487
505
|
]
|
|
488
506
|
})]
|
|
489
507
|
}),
|
|
490
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ v(Ne, {
|
|
491
509
|
storageKey: "bigconsole-datasink-view",
|
|
492
510
|
steps: [
|
|
493
511
|
{
|
|
494
512
|
id: "preview",
|
|
495
|
-
label:
|
|
496
|
-
description:
|
|
513
|
+
label: C("bigconsole.dataSinks.view.nextSteps.previewLabel", "Preview the data"),
|
|
514
|
+
description: C("bigconsole.dataSinks.view.nextSteps.previewDescription", "Open the cached rows to confirm the sink holds what you expect."),
|
|
497
515
|
onClick: Q
|
|
498
516
|
},
|
|
499
517
|
{
|
|
500
518
|
id: "refresh",
|
|
501
|
-
label:
|
|
502
|
-
description:
|
|
519
|
+
label: C("bigconsole.dataSinks.view.nextSteps.refreshLabel", "Refresh from source"),
|
|
520
|
+
description: C("bigconsole.dataSinks.view.nextSteps.refreshDescription", "Re-run the linked workflow to pull the latest data."),
|
|
503
521
|
onClick: X
|
|
504
522
|
},
|
|
505
523
|
{
|
|
506
524
|
id: "build-dashboard",
|
|
507
|
-
label:
|
|
508
|
-
description:
|
|
509
|
-
onClick: () =>
|
|
525
|
+
label: C("bigconsole.dataSinks.view.nextSteps.dashboardLabel", "Visualize it on a dashboard"),
|
|
526
|
+
description: C("bigconsole.dataSinks.view.nextSteps.dashboardDescription", "Add widgets that query this sink to see your data live."),
|
|
527
|
+
onClick: () => S("/dashboards")
|
|
510
528
|
},
|
|
511
529
|
{
|
|
512
530
|
id: "export",
|
|
513
|
-
label:
|
|
514
|
-
description:
|
|
515
|
-
onClick:
|
|
531
|
+
label: C("bigconsole.dataSinks.view.nextSteps.exportLabel", "Export the data"),
|
|
532
|
+
description: C("bigconsole.dataSinks.view.nextSteps.exportDescription", "Download the contents for use elsewhere."),
|
|
533
|
+
onClick: Ze
|
|
516
534
|
}
|
|
517
535
|
]
|
|
518
536
|
}),
|
|
519
|
-
/* @__PURE__ */
|
|
520
|
-
isOpen:
|
|
521
|
-
dataSinkId:
|
|
522
|
-
dataSinkName:
|
|
523
|
-
onClose:
|
|
537
|
+
/* @__PURE__ */ v(ge, {
|
|
538
|
+
isOpen: ze,
|
|
539
|
+
dataSinkId: c || null,
|
|
540
|
+
dataSinkName: B.name || B.key,
|
|
541
|
+
onClose: Qe
|
|
524
542
|
}),
|
|
525
|
-
/* @__PURE__ */
|
|
526
|
-
isOpen:
|
|
527
|
-
dataSinkName:
|
|
528
|
-
hasExistingData:
|
|
529
|
-
onClose:
|
|
530
|
-
onGoToWorkflows:
|
|
531
|
-
onImportCsv:
|
|
543
|
+
/* @__PURE__ */ v(_e, {
|
|
544
|
+
isOpen: Be,
|
|
545
|
+
dataSinkName: B.name || B.key,
|
|
546
|
+
hasExistingData: s(B),
|
|
547
|
+
onClose: et,
|
|
548
|
+
onGoToWorkflows: tt,
|
|
549
|
+
onImportCsv: nt
|
|
532
550
|
})
|
|
533
551
|
]
|
|
534
552
|
});
|
|
535
553
|
});
|
|
536
554
|
//#endregion
|
|
537
|
-
export {
|
|
555
|
+
export { S as DataSinkViewPage, S as default };
|