@burdenoff/microfe-bigconsole 2026.805.1 → 2026.805.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/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/builder/inspector/DataBindingSection.js +109 -113
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +115 -113
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +71 -62
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +116 -100
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +56 -54
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +126 -125
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +151 -150
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +77 -76
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +97 -96
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +172 -191
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.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/PublishToStoreDialog.js +75 -83
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +151 -154
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +187 -193
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -0
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +110 -108
- package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +102 -103
- package/dist/bigconsole/components/datasink/CacheTTLSelector.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/DataSinkDeleteDialog.js +36 -41
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +38 -37
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +113 -117
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +182 -197
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +166 -168
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.js +87 -86
- package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.js +196 -211
- package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
- package/dist/bigconsole/components/parser/ParserSelector.js +130 -128
- package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +66 -63
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -91
- package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +243 -230
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +149 -145
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +504 -470
- package/dist/bigconsole/components/widgets/PropertiesPanel.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/calendar/CalendarWidget.js +44 -47
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +143 -142
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +101 -88
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +135 -134
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.js +167 -159
- package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +69 -68
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +64 -72
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +60 -59
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.js +57 -56
- package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +70 -69
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +35 -34
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +20 -19
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +178 -177
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +76 -75
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.js +183 -168
- package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +187 -180
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.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/customWidget/CustomWidgetBuilderSheet.js +40 -38
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +150 -148
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js +189 -175
- package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardViewPage.js +200 -187
- package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardsPage.js +379 -324
- package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
- package/dist/bigconsole/pages/DataParsersPage.js +185 -178
- package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +195 -170
- package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js +224 -200
- 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/DataSourcesPage.js +8 -7
- package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
- package/dist/bigconsole/pages/InsightsPage.js +238 -208
- package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js +480 -413
- package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/ParserViewPage.js +192 -172
- package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js +198 -163
- package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineViewPage.js +138 -133
- package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelinesPage.js +162 -136
- package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
- package/dist/bigconsole/pages/SettingsPage.js +177 -172
- package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
- package/dist/bigconsole/pages/WidgetDemoPage.js +121 -83
- package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js +269 -242
- package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +153 -138
- package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +111 -109
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +127 -126
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +103 -103
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -1
- package/dist/constants/permissions.js +83 -0
- package/dist/constants/permissions.js.map +1 -0
- package/package.json +2 -1
|
@@ -1,83 +1,87 @@
|
|
|
1
1
|
import { useAppNavigate as e } from "../contexts/NavigationContext.js";
|
|
2
2
|
import "../contexts/index.js";
|
|
3
3
|
import t from "../hooks/useDataSinkOperations.js";
|
|
4
|
-
import {
|
|
4
|
+
import { BIGCONSOLE_PERMISSIONS as n } from "../../constants/permissions.js";
|
|
5
|
+
import { isNative as ee, nativeCopyText as te, nativeToast as ne } from "../../utils/nativeBridge.js";
|
|
5
6
|
import r from "../components/datasink/CacheTTLSelector.js";
|
|
6
|
-
import
|
|
7
|
-
import { memo as i, useCallback as a, useEffect as o, useMemo as
|
|
8
|
-
import { useParams as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
7
|
+
import re from "../components/datasink/RefreshTypeSelector.js";
|
|
8
|
+
import { memo as i, useCallback as a, useEffect as o, useMemo as s, useState as c } from "react";
|
|
9
|
+
import { useParams as l } from "react-router";
|
|
10
|
+
import { AccessDenied as ie, PermissionButton as ae } from "@burdenoff/fe-libs/shared/components";
|
|
11
|
+
import { usePermissions as oe } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
12
|
+
import { AlertCircle as u, ArrowLeft as se, Check as ce, Copy as le, Database as d, Eye as f, Loader2 as p, Save as ue, Settings as de } from "lucide-react";
|
|
13
|
+
import { useI18n as fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
14
|
+
import { Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v, GlassCard as pe, IllustratedEmptyState as me, Input as y, Label as b, PagePurpose as he, Textarea as x } from "@burdenoff/fe-libs/ui";
|
|
11
15
|
import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
12
16
|
//#region src/bigconsole/pages/DataSinkBuilderPage.tsx
|
|
13
|
-
function
|
|
17
|
+
function ge(e) {
|
|
14
18
|
return e.toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "").substring(0, 64);
|
|
15
19
|
}
|
|
16
|
-
function
|
|
17
|
-
let
|
|
18
|
-
if (e.name.trim() ? e.name.length < 2 ?
|
|
20
|
+
function _e(e, t) {
|
|
21
|
+
let n = {};
|
|
22
|
+
if (e.name.trim() ? e.name.length < 2 ? n.name = t("bigconsole.dataSinks.builder.validation.nameMinLength", "Name must be at least 2 characters") : e.name.length > 100 && (n.name = t("bigconsole.dataSinks.builder.validation.nameMaxLength", "Name must be less than 100 characters")) : n.name = t("bigconsole.dataSinks.builder.validation.nameRequired", "Name is required"), e.key.trim() ? /^[a-z0-9_]+$/.test(e.key) ? e.key.length > 64 && (n.key = t("bigconsole.dataSinks.builder.validation.keyMaxLength", "Key must be less than 64 characters")) : n.key = t("bigconsole.dataSinks.builder.validation.keyFormat", "Key can only contain lowercase letters, numbers, and underscores") : n.key = t("bigconsole.dataSinks.builder.validation.keyRequired", "Key is required"), e.data && e.data.trim()) try {
|
|
19
23
|
JSON.parse(e.data);
|
|
20
24
|
} catch {
|
|
21
|
-
|
|
25
|
+
n.data = t("bigconsole.dataSinks.builder.validation.invalidJson", "Invalid JSON format");
|
|
22
26
|
}
|
|
23
|
-
return
|
|
27
|
+
return n;
|
|
24
28
|
}
|
|
25
|
-
var
|
|
26
|
-
let { dataSinkId: i } =
|
|
29
|
+
var T = i(function() {
|
|
30
|
+
let { dataSinkId: i } = l(), T = e(), { t: E } = fe(), D = i !== "new" && !!i, { hasPermission: ve, isLoading: ye } = oe(), be = ve(n.DATASINK_READ), xe = D ? n.DATASINK_UPDATE : n.DATASINK_CREATE, [O, k] = c({
|
|
27
31
|
name: "",
|
|
28
32
|
key: "",
|
|
29
33
|
description: "",
|
|
30
34
|
ttl: 300,
|
|
31
35
|
refresh: { type: "manual" },
|
|
32
36
|
data: "{}"
|
|
33
|
-
}), [A, j] =
|
|
37
|
+
}), [A, j] = c({}), [M, N] = c(!1), [P, F] = c(!1), [I, L] = c(null), [Se, R] = c(!1), [z, B] = c(!1), [V, H] = c(null), [U, W] = c(null), { loading: Ce, error: G, dataSinks: we, fetchDataSink: K, createDataSink: q, updateDataSink: J, getDataSinkData: Y } = t({ skipFetch: !0 }), X = D ? we.find((e) => e.id === i) : null;
|
|
34
38
|
o(() => {
|
|
35
|
-
D && i && !
|
|
39
|
+
D && i && !X && K(i);
|
|
36
40
|
}, [
|
|
37
41
|
D,
|
|
38
42
|
i,
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
X,
|
|
44
|
+
K
|
|
41
45
|
]);
|
|
42
|
-
let [
|
|
46
|
+
let [Z, Te] = c(!1);
|
|
43
47
|
o(() => {
|
|
44
|
-
if (
|
|
48
|
+
if (X && !Z) {
|
|
45
49
|
let e = "";
|
|
46
|
-
if (
|
|
47
|
-
if (typeof
|
|
48
|
-
let t = JSON.parse(
|
|
50
|
+
if (X.data) try {
|
|
51
|
+
if (typeof X.data == "string") {
|
|
52
|
+
let t = JSON.parse(X.data);
|
|
49
53
|
e = JSON.stringify(t, null, 2);
|
|
50
|
-
} else e = JSON.stringify(
|
|
54
|
+
} else e = JSON.stringify(X.data, null, 2);
|
|
51
55
|
} catch {
|
|
52
|
-
e = typeof
|
|
56
|
+
e = typeof X.data == "string" ? X.data : "";
|
|
53
57
|
}
|
|
54
58
|
k({
|
|
55
|
-
name:
|
|
56
|
-
key:
|
|
57
|
-
description:
|
|
58
|
-
ttl:
|
|
59
|
-
refresh:
|
|
60
|
-
type:
|
|
61
|
-
schedule:
|
|
62
|
-
cron:
|
|
63
|
-
timezone:
|
|
59
|
+
name: X.name || "",
|
|
60
|
+
key: X.key || "",
|
|
61
|
+
description: X.description || "",
|
|
62
|
+
ttl: X.ttl || 300,
|
|
63
|
+
refresh: X.refresh ? {
|
|
64
|
+
type: X.refresh.type === "scheduled" ? "scheduled" : "manual",
|
|
65
|
+
schedule: X.refresh.schedule ? {
|
|
66
|
+
cron: X.refresh.schedule.cron,
|
|
67
|
+
timezone: X.refresh.schedule.timezone
|
|
64
68
|
} : void 0
|
|
65
69
|
} : { type: "manual" },
|
|
66
70
|
data: e
|
|
67
|
-
}), N(!0),
|
|
71
|
+
}), N(!0), Te(!0), j({});
|
|
68
72
|
}
|
|
69
|
-
}, [
|
|
70
|
-
let
|
|
73
|
+
}, [X, Z]);
|
|
74
|
+
let Ee = a((e) => {
|
|
71
75
|
let t = e.target.value;
|
|
72
76
|
k((e) => ({
|
|
73
77
|
...e,
|
|
74
78
|
name: t,
|
|
75
|
-
key: M ? e.key :
|
|
79
|
+
key: M ? e.key : ge(t)
|
|
76
80
|
})), j((e) => ({
|
|
77
81
|
...e,
|
|
78
82
|
name: void 0
|
|
79
83
|
}));
|
|
80
|
-
}, [M]),
|
|
84
|
+
}, [M]), De = a((e) => {
|
|
81
85
|
let t = e.target.value.toLowerCase().replace(/[^a-z0-9_]/g, "");
|
|
82
86
|
k((e) => ({
|
|
83
87
|
...e,
|
|
@@ -86,22 +90,22 @@ var E = i(function() {
|
|
|
86
90
|
...e,
|
|
87
91
|
key: void 0
|
|
88
92
|
}));
|
|
89
|
-
}, []),
|
|
93
|
+
}, []), Oe = a((e) => {
|
|
90
94
|
k((t) => ({
|
|
91
95
|
...t,
|
|
92
96
|
description: e.target.value
|
|
93
97
|
}));
|
|
94
|
-
}, []),
|
|
98
|
+
}, []), Q = a((e) => {
|
|
95
99
|
k((t) => ({
|
|
96
100
|
...t,
|
|
97
101
|
ttl: e || 0
|
|
98
102
|
}));
|
|
99
|
-
}, []),
|
|
103
|
+
}, []), ke = a((e) => {
|
|
100
104
|
k((t) => ({
|
|
101
105
|
...t,
|
|
102
106
|
refresh: e
|
|
103
107
|
}));
|
|
104
|
-
}, []),
|
|
108
|
+
}, []), Ae = a((e) => {
|
|
105
109
|
k((t) => ({
|
|
106
110
|
...t,
|
|
107
111
|
data: e.target.value
|
|
@@ -109,7 +113,7 @@ var E = i(function() {
|
|
|
109
113
|
...e,
|
|
110
114
|
data: void 0
|
|
111
115
|
}));
|
|
112
|
-
}, []),
|
|
116
|
+
}, []), je = a(() => {
|
|
113
117
|
try {
|
|
114
118
|
let e = JSON.parse(O.data);
|
|
115
119
|
k((t) => ({
|
|
@@ -122,32 +126,33 @@ var E = i(function() {
|
|
|
122
126
|
} catch {
|
|
123
127
|
j((e) => ({
|
|
124
128
|
...e,
|
|
125
|
-
data: "Invalid JSON format"
|
|
129
|
+
data: E("bigconsole.dataSinks.builder.validation.invalidJson", "Invalid JSON format")
|
|
126
130
|
}));
|
|
127
131
|
}
|
|
128
|
-
}, [O.data]),
|
|
129
|
-
O.key && (await
|
|
130
|
-
}, [O.key]), $ = a(() => {
|
|
131
|
-
|
|
132
|
-
}, [
|
|
133
|
-
if (!(!D || !
|
|
134
|
-
|
|
132
|
+
}, [O.data, E]), Me = a(async () => {
|
|
133
|
+
O.key && (await te(O.key), R(!0), ee() && ne(E("bigconsole.dataSinks.builder.toolbar.keyCopied", "Key copied")), setTimeout(() => R(!1), 2e3));
|
|
134
|
+
}, [O.key, E]), $ = a(() => {
|
|
135
|
+
T("/datasinks");
|
|
136
|
+
}, [T]), Ne = a(async () => {
|
|
137
|
+
if (!(!D || !X)) {
|
|
138
|
+
B(!0), W(null);
|
|
135
139
|
try {
|
|
136
|
-
let e = await
|
|
137
|
-
e?.raw ?
|
|
140
|
+
let e = await Y({ key: X.key });
|
|
141
|
+
e?.raw ? H(Array.isArray(e.raw) ? e.raw.slice(0, 20) : [e.raw]) : H([]);
|
|
138
142
|
} catch (e) {
|
|
139
|
-
|
|
143
|
+
W(e instanceof Error ? e.message : E("bigconsole.dataSinks.builder.errors.loadDataFailed", "Failed to load data"));
|
|
140
144
|
} finally {
|
|
141
|
-
|
|
145
|
+
B(!1);
|
|
142
146
|
}
|
|
143
147
|
}
|
|
144
148
|
}, [
|
|
145
149
|
D,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
X,
|
|
151
|
+
Y,
|
|
152
|
+
E
|
|
153
|
+
]), Pe = a(async (e) => {
|
|
149
154
|
e.preventDefault(), L(null);
|
|
150
|
-
let t =
|
|
155
|
+
let t = _e(O, E);
|
|
151
156
|
if (Object.keys(t).length > 0) {
|
|
152
157
|
j(t);
|
|
153
158
|
return;
|
|
@@ -160,14 +165,14 @@ var E = i(function() {
|
|
|
160
165
|
} catch {
|
|
161
166
|
j((e) => ({
|
|
162
167
|
...e,
|
|
163
|
-
data: "Invalid JSON format"
|
|
168
|
+
data: E("bigconsole.dataSinks.builder.validation.invalidJson", "Invalid JSON format")
|
|
164
169
|
})), F(!1);
|
|
165
170
|
return;
|
|
166
171
|
}
|
|
167
|
-
if (D &&
|
|
168
|
-
if (!await
|
|
169
|
-
id:
|
|
170
|
-
version:
|
|
172
|
+
if (D && X) {
|
|
173
|
+
if (!await J({
|
|
174
|
+
id: X.id,
|
|
175
|
+
version: X.version,
|
|
171
176
|
name: O.name,
|
|
172
177
|
description: O.description || void 0,
|
|
173
178
|
ttl: O.ttl,
|
|
@@ -176,8 +181,8 @@ var E = i(function() {
|
|
|
176
181
|
schedule: O.refresh.schedule
|
|
177
182
|
},
|
|
178
183
|
data: e
|
|
179
|
-
})) throw Error("Failed to update DataSink");
|
|
180
|
-
} else if (!await
|
|
184
|
+
})) throw Error(E("bigconsole.dataSinks.builder.errors.updateFailed", "Failed to update DataSink"));
|
|
185
|
+
} else if (!await q({
|
|
181
186
|
key: O.key,
|
|
182
187
|
name: O.name,
|
|
183
188
|
description: O.description || void 0,
|
|
@@ -187,21 +192,22 @@ var E = i(function() {
|
|
|
187
192
|
schedule: O.refresh.schedule
|
|
188
193
|
},
|
|
189
194
|
data: e
|
|
190
|
-
})) throw Error("Failed to create DataSink");
|
|
191
|
-
|
|
195
|
+
})) throw Error(E("bigconsole.dataSinks.builder.errors.createFailed", "Failed to create DataSink"));
|
|
196
|
+
T("/datasinks");
|
|
192
197
|
} catch (e) {
|
|
193
|
-
L(e instanceof Error ? e.message : "Failed to save DataSink");
|
|
198
|
+
L(e instanceof Error ? e.message : E("bigconsole.dataSinks.builder.errors.saveFailed", "Failed to save DataSink"));
|
|
194
199
|
} finally {
|
|
195
200
|
F(!1);
|
|
196
201
|
}
|
|
197
202
|
}, [
|
|
198
203
|
O,
|
|
199
204
|
D,
|
|
200
|
-
|
|
205
|
+
X,
|
|
206
|
+
q,
|
|
201
207
|
J,
|
|
202
|
-
|
|
208
|
+
T,
|
|
203
209
|
E
|
|
204
|
-
]),
|
|
210
|
+
]), Fe = s(() => {
|
|
205
211
|
let e = O.name.trim().length >= 2, t = O.key.trim().length > 0, n = !0;
|
|
206
212
|
if (O.data && O.data.trim()) try {
|
|
207
213
|
JSON.parse(O.data);
|
|
@@ -214,25 +220,28 @@ var E = i(function() {
|
|
|
214
220
|
O.key,
|
|
215
221
|
O.data
|
|
216
222
|
]);
|
|
217
|
-
return
|
|
223
|
+
return Ce && D ? /* @__PURE__ */ C("div", {
|
|
218
224
|
className: "flex items-center justify-center min-h-[400px]",
|
|
219
|
-
children: /* @__PURE__ */ C(
|
|
220
|
-
}) :
|
|
225
|
+
children: /* @__PURE__ */ C(p, { className: "w-8 h-8 text-text-secondary animate-spin" })
|
|
226
|
+
}) : G ? /* @__PURE__ */ C("div", {
|
|
221
227
|
className: "flex items-center justify-center min-h-[400px] p-card-padding",
|
|
222
228
|
children: /* @__PURE__ */ w("div", {
|
|
223
229
|
className: "text-center",
|
|
224
230
|
children: [
|
|
225
|
-
/* @__PURE__ */ C(
|
|
231
|
+
/* @__PURE__ */ C(u, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
|
|
226
232
|
/* @__PURE__ */ C("p", {
|
|
227
233
|
className: "text-status-error-text text-body-sm font-medium mb-2",
|
|
228
|
-
children: "Failed to load DataSink"
|
|
234
|
+
children: E("bigconsole.dataSinks.builder.errors.loadFailed", "Failed to load DataSink")
|
|
229
235
|
}),
|
|
230
236
|
/* @__PURE__ */ C("p", {
|
|
231
237
|
className: "text-text-tertiary text-body-xs",
|
|
232
|
-
children:
|
|
238
|
+
children: G.message
|
|
233
239
|
})
|
|
234
240
|
]
|
|
235
241
|
})
|
|
242
|
+
}) : D && !ye && !be ? /* @__PURE__ */ C(ie, {
|
|
243
|
+
title: E("bigconsole.dataSinks.builder.accessDenied.title", "Access Denied"),
|
|
244
|
+
description: E("bigconsole.dataSinks.builder.accessDenied.description", "You don't have permission to view this data sink.")
|
|
236
245
|
}) : /* @__PURE__ */ C("div", {
|
|
237
246
|
className: "min-h-screen bg-bg-canvas",
|
|
238
247
|
children: /* @__PURE__ */ w("div", {
|
|
@@ -241,60 +250,60 @@ var E = i(function() {
|
|
|
241
250
|
/* @__PURE__ */ w("div", {
|
|
242
251
|
className: "mb-6",
|
|
243
252
|
children: [
|
|
244
|
-
/* @__PURE__ */ w(
|
|
253
|
+
/* @__PURE__ */ w(m, {
|
|
245
254
|
onClick: $,
|
|
246
255
|
variant: "ghost",
|
|
247
256
|
size: "sm",
|
|
248
257
|
className: "mb-4",
|
|
249
|
-
children: [/* @__PURE__ */ C(
|
|
258
|
+
children: [/* @__PURE__ */ C(se, { className: "w-4 h-4 mr-2" }), E("bigconsole.dataSinks.builder.header.backToDataSinks", "Back to DataSinks")]
|
|
250
259
|
}),
|
|
251
260
|
/* @__PURE__ */ C("h1", {
|
|
252
261
|
className: "text-heading-h1 font-bold text-text-primary",
|
|
253
|
-
children: D ? "Edit DataSink" : "Create DataSink"
|
|
262
|
+
children: D ? E("bigconsole.dataSinks.builder.header.editTitle", "Edit DataSink") : E("bigconsole.dataSinks.builder.header.createTitle", "Create DataSink")
|
|
254
263
|
}),
|
|
255
264
|
/* @__PURE__ */ C("p", {
|
|
256
265
|
className: "text-body-sm text-text-secondary mt-1",
|
|
257
|
-
children: D ? "Update the DataSink configuration." : "Create a new DataSink to store and cache data. Use the unique key to connect workflows."
|
|
266
|
+
children: D ? E("bigconsole.dataSinks.builder.header.editSubtitle", "Update the DataSink configuration.") : E("bigconsole.dataSinks.builder.header.createSubtitle", "Create a new DataSink to store and cache data. Use the unique key to connect workflows.")
|
|
258
267
|
})
|
|
259
268
|
]
|
|
260
269
|
}),
|
|
261
270
|
I && /* @__PURE__ */ w("div", {
|
|
262
271
|
className: "mb-6 p-4 bg-status-error-bg/10 border border-status-error-border/30 rounded-lg flex items-start gap-3",
|
|
263
|
-
children: [/* @__PURE__ */ C(
|
|
272
|
+
children: [/* @__PURE__ */ C(u, { className: "w-5 h-5 text-status-error-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
|
|
264
273
|
className: "text-sm font-medium text-status-error-text",
|
|
265
|
-
children: "Failed to save DataSink"
|
|
274
|
+
children: E("bigconsole.dataSinks.builder.errors.saveFailed", "Failed to save DataSink")
|
|
266
275
|
}), /* @__PURE__ */ C("p", {
|
|
267
276
|
className: "text-xs text-status-error-text/80 mt-1",
|
|
268
277
|
children: I
|
|
269
278
|
})] })]
|
|
270
279
|
}),
|
|
271
|
-
/* @__PURE__ */ C(
|
|
280
|
+
/* @__PURE__ */ C(he, {
|
|
272
281
|
className: "mb-6",
|
|
273
|
-
children: "A data sink is the named, structured store your dashboards read from. Give it a unique key, configure how long data is cached and how it refreshes, then point a workflow at that key to push data in. Get the basics right here and everything downstream connects to it."
|
|
282
|
+
children: E("bigconsole.dataSinks.builder.header.purpose", "A data sink is the named, structured store your dashboards read from. Give it a unique key, configure how long data is cached and how it refreshes, then point a workflow at that key to push data in. Get the basics right here and everything downstream connects to it.")
|
|
274
283
|
}),
|
|
275
284
|
/* @__PURE__ */ w("form", {
|
|
276
|
-
onSubmit:
|
|
285
|
+
onSubmit: Pe,
|
|
277
286
|
className: "space-y-6",
|
|
278
287
|
children: [
|
|
279
|
-
/* @__PURE__ */ w(
|
|
288
|
+
/* @__PURE__ */ w(pe, {
|
|
280
289
|
treatment: "glass",
|
|
281
290
|
glow: !0,
|
|
282
|
-
children: [/* @__PURE__ */ C(
|
|
291
|
+
children: [/* @__PURE__ */ C(_, {
|
|
283
292
|
className: "pb-4",
|
|
284
293
|
children: /* @__PURE__ */ w("div", {
|
|
285
294
|
className: "flex items-center gap-3",
|
|
286
295
|
children: [/* @__PURE__ */ C("div", {
|
|
287
296
|
className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
|
|
288
|
-
children: /* @__PURE__ */ C(
|
|
289
|
-
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(
|
|
297
|
+
children: /* @__PURE__ */ C(d, { className: "w-4 h-4 text-action-primary-bg" })
|
|
298
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
|
|
290
299
|
className: "text-base",
|
|
291
|
-
children: "Basic Information"
|
|
300
|
+
children: E("bigconsole.dataSinks.builder.basicInfo.title", "Basic Information")
|
|
292
301
|
}), /* @__PURE__ */ C("p", {
|
|
293
302
|
className: "text-xs text-text-secondary mt-0.5",
|
|
294
|
-
children: "Essential details for your DataSink"
|
|
303
|
+
children: E("bigconsole.dataSinks.builder.basicInfo.subtitle", "Essential details for your DataSink")
|
|
295
304
|
})] })]
|
|
296
305
|
})
|
|
297
|
-
}), /* @__PURE__ */ w(
|
|
306
|
+
}), /* @__PURE__ */ w(g, {
|
|
298
307
|
className: "space-y-5",
|
|
299
308
|
children: [
|
|
300
309
|
/* @__PURE__ */ w("div", {
|
|
@@ -302,17 +311,21 @@ var E = i(function() {
|
|
|
302
311
|
children: [
|
|
303
312
|
/* @__PURE__ */ w(b, {
|
|
304
313
|
htmlFor: "name",
|
|
305
|
-
children: [
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
314
|
+
children: [
|
|
315
|
+
E("bigconsole.dataSinks.builder.basicInfo.nameLabel", "Name"),
|
|
316
|
+
" ",
|
|
317
|
+
/* @__PURE__ */ C("span", {
|
|
318
|
+
className: "text-status-error-text",
|
|
319
|
+
children: "*"
|
|
320
|
+
})
|
|
321
|
+
]
|
|
309
322
|
}),
|
|
310
323
|
/* @__PURE__ */ C(y, {
|
|
311
324
|
id: "name",
|
|
312
325
|
type: "text",
|
|
313
326
|
value: O.name,
|
|
314
|
-
onChange:
|
|
315
|
-
placeholder: "e.g., Sales Metrics",
|
|
327
|
+
onChange: Ee,
|
|
328
|
+
placeholder: E("bigconsole.dataSinks.builder.basicInfo.namePlaceholder", "e.g., Sales Metrics"),
|
|
316
329
|
className: A.name ? "border-status-error-border" : ""
|
|
317
330
|
}),
|
|
318
331
|
A.name && /* @__PURE__ */ C("p", {
|
|
@@ -326,10 +339,14 @@ var E = i(function() {
|
|
|
326
339
|
children: [
|
|
327
340
|
/* @__PURE__ */ w(b, {
|
|
328
341
|
htmlFor: "key",
|
|
329
|
-
children: [
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
342
|
+
children: [
|
|
343
|
+
E("bigconsole.dataSinks.builder.basicInfo.keyLabel", "Unique Key"),
|
|
344
|
+
" ",
|
|
345
|
+
/* @__PURE__ */ C("span", {
|
|
346
|
+
className: "text-status-error-text",
|
|
347
|
+
children: "*"
|
|
348
|
+
})
|
|
349
|
+
]
|
|
333
350
|
}),
|
|
334
351
|
/* @__PURE__ */ w("div", {
|
|
335
352
|
className: "flex gap-2",
|
|
@@ -337,17 +354,17 @@ var E = i(function() {
|
|
|
337
354
|
id: "key",
|
|
338
355
|
type: "text",
|
|
339
356
|
value: O.key,
|
|
340
|
-
onChange:
|
|
341
|
-
placeholder: "sales_metrics",
|
|
357
|
+
onChange: De,
|
|
358
|
+
placeholder: E("bigconsole.dataSinks.builder.basicInfo.keyPlaceholder", "sales_metrics"),
|
|
342
359
|
disabled: D,
|
|
343
360
|
className: `font-mono flex-1 ${A.key ? "border-status-error-border" : ""}`
|
|
344
|
-
}), O.key && /* @__PURE__ */ C(
|
|
361
|
+
}), O.key && /* @__PURE__ */ C(m, {
|
|
345
362
|
type: "button",
|
|
346
|
-
onClick:
|
|
363
|
+
onClick: Me,
|
|
347
364
|
variant: "outline",
|
|
348
365
|
size: "sm",
|
|
349
366
|
className: "px-3",
|
|
350
|
-
children:
|
|
367
|
+
children: Se ? /* @__PURE__ */ C(ce, { className: "w-4 h-4 text-status-success-text" }) : /* @__PURE__ */ C(le, { className: "w-4 h-4" })
|
|
351
368
|
})]
|
|
352
369
|
}),
|
|
353
370
|
A.key && /* @__PURE__ */ C("p", {
|
|
@@ -356,7 +373,7 @@ var E = i(function() {
|
|
|
356
373
|
}),
|
|
357
374
|
/* @__PURE__ */ C("p", {
|
|
358
375
|
className: "text-body-xs text-text-tertiary",
|
|
359
|
-
children: D ? "Key cannot be changed. Use this key in your workflows to push data." : "Auto-generated from name. This key will be used by workflows to push data."
|
|
376
|
+
children: D ? E("bigconsole.dataSinks.builder.basicInfo.keyHelpEdit", "Key cannot be changed. Use this key in your workflows to push data.") : E("bigconsole.dataSinks.builder.basicInfo.keyHelpCreate", "Auto-generated from name. This key will be used by workflows to push data.")
|
|
360
377
|
})
|
|
361
378
|
]
|
|
362
379
|
}),
|
|
@@ -364,12 +381,12 @@ var E = i(function() {
|
|
|
364
381
|
className: "space-y-2",
|
|
365
382
|
children: [/* @__PURE__ */ C(b, {
|
|
366
383
|
htmlFor: "description",
|
|
367
|
-
children: "Description"
|
|
384
|
+
children: E("bigconsole.dataSinks.builder.basicInfo.descriptionLabel", "Description")
|
|
368
385
|
}), /* @__PURE__ */ C(x, {
|
|
369
386
|
id: "description",
|
|
370
387
|
value: O.description,
|
|
371
|
-
onChange:
|
|
372
|
-
placeholder: "Describe what data this sink stores...",
|
|
388
|
+
onChange: Oe,
|
|
389
|
+
placeholder: E("bigconsole.dataSinks.builder.basicInfo.descriptionPlaceholder", "Describe what data this sink stores..."),
|
|
373
390
|
rows: 2,
|
|
374
391
|
className: "resize-none"
|
|
375
392
|
})]
|
|
@@ -377,42 +394,42 @@ var E = i(function() {
|
|
|
377
394
|
]
|
|
378
395
|
})]
|
|
379
396
|
}),
|
|
380
|
-
/* @__PURE__ */ w(
|
|
397
|
+
/* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(_, {
|
|
381
398
|
className: "pb-4",
|
|
382
399
|
children: /* @__PURE__ */ w("div", {
|
|
383
400
|
className: "flex items-center gap-3",
|
|
384
401
|
children: [/* @__PURE__ */ C("div", {
|
|
385
402
|
className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
|
|
386
|
-
children: /* @__PURE__ */ C(
|
|
387
|
-
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(
|
|
403
|
+
children: /* @__PURE__ */ C(de, { className: "w-4 h-4 text-action-primary-bg" })
|
|
404
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
|
|
388
405
|
className: "text-base",
|
|
389
|
-
children: "Configuration"
|
|
406
|
+
children: E("bigconsole.dataSinks.builder.config.title", "Configuration")
|
|
390
407
|
}), /* @__PURE__ */ C("p", {
|
|
391
408
|
className: "text-xs text-text-secondary mt-0.5",
|
|
392
|
-
children: "Cache and refresh settings"
|
|
409
|
+
children: E("bigconsole.dataSinks.builder.config.subtitle", "Cache and refresh settings")
|
|
393
410
|
})] })]
|
|
394
411
|
})
|
|
395
|
-
}), /* @__PURE__ */ w(
|
|
412
|
+
}), /* @__PURE__ */ w(g, {
|
|
396
413
|
className: "space-y-5",
|
|
397
414
|
children: [/* @__PURE__ */ w("div", {
|
|
398
415
|
className: "space-y-2",
|
|
399
416
|
children: [
|
|
400
|
-
/* @__PURE__ */ C(b, { children: "Cache Duration" }),
|
|
417
|
+
/* @__PURE__ */ C(b, { children: E("bigconsole.dataSinks.builder.config.cacheDurationLabel", "Cache Duration") }),
|
|
401
418
|
/* @__PURE__ */ C(r, {
|
|
402
419
|
value: O.ttl,
|
|
403
|
-
onChange:
|
|
420
|
+
onChange: Q
|
|
404
421
|
}),
|
|
405
422
|
/* @__PURE__ */ C("p", {
|
|
406
423
|
className: "text-body-xs text-text-tertiary",
|
|
407
|
-
children: "How long cached data remains valid before requiring refresh."
|
|
424
|
+
children: E("bigconsole.dataSinks.builder.config.cacheDurationHelp", "How long cached data remains valid before requiring refresh.")
|
|
408
425
|
})
|
|
409
426
|
]
|
|
410
|
-
}), /* @__PURE__ */ C(
|
|
427
|
+
}), /* @__PURE__ */ C(re, {
|
|
411
428
|
value: O.refresh,
|
|
412
|
-
onChange:
|
|
429
|
+
onChange: ke
|
|
413
430
|
})]
|
|
414
431
|
})] }),
|
|
415
|
-
/* @__PURE__ */ w(
|
|
432
|
+
/* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(_, {
|
|
416
433
|
className: "pb-4",
|
|
417
434
|
children: /* @__PURE__ */ w("div", {
|
|
418
435
|
className: "flex items-center justify-between",
|
|
@@ -420,29 +437,29 @@ var E = i(function() {
|
|
|
420
437
|
className: "flex items-center gap-3",
|
|
421
438
|
children: [/* @__PURE__ */ C("div", {
|
|
422
439
|
className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
|
|
423
|
-
children: /* @__PURE__ */ C(
|
|
424
|
-
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(
|
|
440
|
+
children: /* @__PURE__ */ C(d, { className: "w-4 h-4 text-action-primary-bg" })
|
|
441
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
|
|
425
442
|
className: "text-base",
|
|
426
|
-
children: "Data Payload"
|
|
443
|
+
children: E("bigconsole.dataSinks.builder.dataPayload.title", "Data Payload")
|
|
427
444
|
}), /* @__PURE__ */ C("p", {
|
|
428
445
|
className: "text-xs text-text-secondary mt-0.5",
|
|
429
|
-
children: D ? "Edit the JSON data stored in this DataSink" : "Optional initial data (JSON format)"
|
|
446
|
+
children: D ? E("bigconsole.dataSinks.builder.dataPayload.subtitleEdit", "Edit the JSON data stored in this DataSink") : E("bigconsole.dataSinks.builder.dataPayload.subtitleCreate", "Optional initial data (JSON format)")
|
|
430
447
|
})] })]
|
|
431
|
-
}), /* @__PURE__ */ C(
|
|
448
|
+
}), /* @__PURE__ */ C(m, {
|
|
432
449
|
type: "button",
|
|
433
|
-
onClick:
|
|
450
|
+
onClick: je,
|
|
434
451
|
variant: "outline",
|
|
435
452
|
size: "sm",
|
|
436
|
-
children: "Format JSON"
|
|
453
|
+
children: E("bigconsole.dataSinks.builder.dataPayload.formatJson", "Format JSON")
|
|
437
454
|
})]
|
|
438
455
|
})
|
|
439
|
-
}), /* @__PURE__ */ C(
|
|
456
|
+
}), /* @__PURE__ */ C(g, { children: /* @__PURE__ */ w("div", {
|
|
440
457
|
className: "space-y-2",
|
|
441
458
|
children: [
|
|
442
459
|
/* @__PURE__ */ C(x, {
|
|
443
460
|
value: O.data,
|
|
444
|
-
onChange:
|
|
445
|
-
placeholder: "{\"key\": \"value\"}",
|
|
461
|
+
onChange: Ae,
|
|
462
|
+
placeholder: E("bigconsole.dataSinks.builder.dataPayload.dataPlaceholder", "{\"key\": \"value\"}"),
|
|
446
463
|
rows: 10,
|
|
447
464
|
className: `font-mono text-xs resize-y ${A.data ? "border-status-error-border" : ""}`
|
|
448
465
|
}),
|
|
@@ -452,11 +469,11 @@ var E = i(function() {
|
|
|
452
469
|
}),
|
|
453
470
|
/* @__PURE__ */ C("p", {
|
|
454
471
|
className: "text-body-xs text-text-tertiary",
|
|
455
|
-
children: "Enter valid JSON data. This data will be stored and can be accessed by widgets via parsers."
|
|
472
|
+
children: E("bigconsole.dataSinks.builder.dataPayload.help", "Enter valid JSON data. This data will be stored and can be accessed by widgets via parsers.")
|
|
456
473
|
})
|
|
457
474
|
]
|
|
458
475
|
}) })] }),
|
|
459
|
-
D &&
|
|
476
|
+
D && X && /* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(_, {
|
|
460
477
|
className: "pb-4",
|
|
461
478
|
children: /* @__PURE__ */ w("div", {
|
|
462
479
|
className: "flex items-center justify-between",
|
|
@@ -464,49 +481,53 @@ var E = i(function() {
|
|
|
464
481
|
className: "flex items-center gap-3",
|
|
465
482
|
children: [/* @__PURE__ */ C("div", {
|
|
466
483
|
className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
|
|
467
|
-
children: /* @__PURE__ */ C(
|
|
468
|
-
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(
|
|
484
|
+
children: /* @__PURE__ */ C(f, { className: "w-4 h-4 text-action-primary-bg" })
|
|
485
|
+
}), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
|
|
469
486
|
className: "text-base",
|
|
470
|
-
children: "Data Preview"
|
|
487
|
+
children: E("bigconsole.dataSinks.builder.preview.title", "Data Preview")
|
|
471
488
|
}), /* @__PURE__ */ C("p", {
|
|
472
489
|
className: "text-xs text-text-secondary mt-0.5",
|
|
473
|
-
children: "Preview the first 20 records"
|
|
490
|
+
children: E("bigconsole.dataSinks.builder.preview.subtitle", "Preview the first 20 records")
|
|
474
491
|
})] })]
|
|
475
|
-
}), /* @__PURE__ */ C(
|
|
492
|
+
}), /* @__PURE__ */ C(m, {
|
|
476
493
|
type: "button",
|
|
477
|
-
onClick:
|
|
494
|
+
onClick: Ne,
|
|
478
495
|
variant: "outline",
|
|
479
496
|
size: "sm",
|
|
480
|
-
disabled:
|
|
481
|
-
children:
|
|
497
|
+
disabled: z,
|
|
498
|
+
children: z ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(p, { className: "w-4 h-4 mr-2 animate-spin" }), E("bigconsole.dataSinks.builder.preview.loading", "Loading...")] }) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(f, { className: "w-4 h-4 mr-2" }), E("bigconsole.dataSinks.builder.preview.showData", "Show Data")] })
|
|
482
499
|
})]
|
|
483
500
|
})
|
|
484
|
-
}), (
|
|
501
|
+
}), (V || U) && /* @__PURE__ */ C(g, { children: U ? /* @__PURE__ */ C("div", {
|
|
485
502
|
className: "p-4 bg-status-error-bg/10 border border-status-error-border/30 rounded-md",
|
|
486
503
|
children: /* @__PURE__ */ C("p", {
|
|
487
504
|
className: "text-sm text-status-error-text",
|
|
488
|
-
children:
|
|
505
|
+
children: U
|
|
489
506
|
})
|
|
490
|
-
}) :
|
|
507
|
+
}) : V && V.length > 0 ? /* @__PURE__ */ C("pre", {
|
|
491
508
|
className: "p-4 bg-bg-sunken rounded-md overflow-auto max-h-[300px] text-xs font-mono",
|
|
492
|
-
children: JSON.stringify(
|
|
493
|
-
}) : /* @__PURE__ */ C(
|
|
509
|
+
children: JSON.stringify(V, null, 2)
|
|
510
|
+
}) : /* @__PURE__ */ C(me, {
|
|
494
511
|
illustration: "empty-generic",
|
|
495
|
-
title: "No data available yet",
|
|
496
|
-
description: "Connect a workflow to this sink's key to start pushing data."
|
|
512
|
+
title: E("bigconsole.dataSinks.builder.preview.emptyTitle", "No data available yet"),
|
|
513
|
+
description: E("bigconsole.dataSinks.builder.preview.emptyDescription", "Connect a workflow to this sink's key to start pushing data.")
|
|
497
514
|
}) })] }),
|
|
498
515
|
/* @__PURE__ */ w("div", {
|
|
499
516
|
className: "flex items-center justify-end gap-4 pt-4",
|
|
500
|
-
children: [/* @__PURE__ */ C(
|
|
517
|
+
children: [/* @__PURE__ */ C(m, {
|
|
501
518
|
type: "button",
|
|
502
519
|
onClick: $,
|
|
503
520
|
variant: "secondary",
|
|
504
|
-
children: "Cancel"
|
|
505
|
-
}), /* @__PURE__ */ C(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
521
|
+
children: E("bigconsole.dataSinks.builder.actions.cancel", "Cancel")
|
|
522
|
+
}), /* @__PURE__ */ C(ae, {
|
|
523
|
+
permission: xe,
|
|
524
|
+
deniedBehavior: "disable",
|
|
525
|
+
children: /* @__PURE__ */ C(m, {
|
|
526
|
+
type: "submit",
|
|
527
|
+
disabled: !Fe || P,
|
|
528
|
+
variant: "default",
|
|
529
|
+
children: P ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(p, { className: "w-4 h-4 mr-2 animate-spin" }), E("bigconsole.dataSinks.builder.actions.saving", "Saving...")] }) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(ue, { className: "w-4 h-4 mr-2" }), D ? E("bigconsole.dataSinks.builder.actions.saveChanges", "Save Changes") : E("bigconsole.dataSinks.builder.actions.create", "Create DataSink")] })
|
|
530
|
+
})
|
|
510
531
|
})]
|
|
511
532
|
})
|
|
512
533
|
]
|
|
@@ -515,21 +536,25 @@ var E = i(function() {
|
|
|
515
536
|
className: "mt-6 p-4 bg-bg-sunken rounded-lg border border-border-default",
|
|
516
537
|
children: [/* @__PURE__ */ C("h3", {
|
|
517
538
|
className: "text-sm font-medium text-text-primary mb-2",
|
|
518
|
-
children: "What's Next?"
|
|
539
|
+
children: E("bigconsole.dataSinks.builder.whatsNext.title", "What's Next?")
|
|
519
540
|
}), /* @__PURE__ */ w("ol", {
|
|
520
541
|
className: "list-decimal list-inside text-xs text-text-secondary space-y-1",
|
|
521
542
|
children: [
|
|
522
|
-
/* @__PURE__ */ C("li", { children: "Create this DataSink to get your unique key" }),
|
|
543
|
+
/* @__PURE__ */ C("li", { children: E("bigconsole.dataSinks.builder.whatsNext.step1", "Create this DataSink to get your unique key") }),
|
|
523
544
|
/* @__PURE__ */ w("li", { children: [
|
|
524
|
-
"Go to
|
|
525
|
-
|
|
526
|
-
"
|
|
545
|
+
E("bigconsole.dataSinks.builder.whatsNext.step2Prefix", "Go to"),
|
|
546
|
+
" ",
|
|
547
|
+
/* @__PURE__ */ C("strong", { children: E("bigconsole.dataSinks.builder.whatsNext.workflows", "Workflows") }),
|
|
548
|
+
" ",
|
|
549
|
+
E("bigconsole.dataSinks.builder.whatsNext.step2Suffix", "and create a FluidGrids workflow")
|
|
527
550
|
] }),
|
|
528
|
-
/* @__PURE__ */ C("li", { children: "Use the unique key in your workflow to push data to this DataSink" }),
|
|
551
|
+
/* @__PURE__ */ C("li", { children: E("bigconsole.dataSinks.builder.whatsNext.step3", "Use the unique key in your workflow to push data to this DataSink") }),
|
|
529
552
|
/* @__PURE__ */ w("li", { children: [
|
|
530
|
-
"
|
|
531
|
-
|
|
532
|
-
|
|
553
|
+
E("bigconsole.dataSinks.builder.whatsNext.step4Prefix", "Create"),
|
|
554
|
+
" ",
|
|
555
|
+
/* @__PURE__ */ C("strong", { children: E("bigconsole.dataSinks.builder.whatsNext.parsers", "Parsers") }),
|
|
556
|
+
" ",
|
|
557
|
+
E("bigconsole.dataSinks.builder.whatsNext.step4Suffix", "to transform the data using JQ or JSONata")
|
|
533
558
|
] })
|
|
534
559
|
]
|
|
535
560
|
})]
|
|
@@ -539,6 +564,6 @@ var E = i(function() {
|
|
|
539
564
|
});
|
|
540
565
|
});
|
|
541
566
|
//#endregion
|
|
542
|
-
export {
|
|
567
|
+
export { T as DataSinkBuilderPage, T as default };
|
|
543
568
|
|
|
544
569
|
//# sourceMappingURL=DataSinkBuilderPage.js.map
|