@burdenoff/microfe-bigconsole 2026.1011.10 → 2026.1012.1
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/README.md +19 -0
- package/dist/bigconsole/BigConsoleRoot.js +88 -82
- package/dist/bigconsole/BigConsoleRoutes.js +163 -136
- package/dist/bigconsole/assistant/assistantProduct.js +1 -4
- package/dist/bigconsole/assistant/pageContext.d.ts +0 -14
- package/dist/bigconsole/assistant/pageContext.js +1 -6
- package/dist/bigconsole/assistant/recordAdapters.js +26 -27
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +31 -31
- package/dist/bigconsole/components/common/index.d.ts +0 -1
- package/dist/bigconsole/components/common/index.js +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +44 -44
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +36 -36
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +59 -59
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +58 -57
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +41 -41
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +34 -34
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +110 -110
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +21 -21
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +164 -173
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -101
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +31 -31
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +15 -15
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -163
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +37 -37
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js +66 -66
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
- package/dist/bigconsole/components/datasink/DataSinkCard.js +50 -51
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +47 -47
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +91 -91
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
- package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
- package/dist/bigconsole/components/parser/ImportParserDialog.js +120 -120
- package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +10 -10
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +76 -77
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -96
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +4 -4
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +93 -93
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +499 -507
- package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +4 -4
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
- package/dist/bigconsole/components/widgets/custom/CustomWidget.js +73 -131
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
- package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +28 -9
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +115 -42
- package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +20 -0
- package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +10 -0
- package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -1
- package/dist/bigconsole/components/widgets/iframe-widget/index.js +3 -2
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
- package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
- package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +110 -27
- package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +6 -0
- package/dist/bigconsole/components/widgets/text-widget/textData.js +17 -14
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +15 -15
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +15 -15
- package/dist/bigconsole/context/BigConsoleContext.d.ts +10 -0
- package/dist/bigconsole/context/BigConsoleContext.js +47 -30
- package/dist/bigconsole/context/index.d.ts +1 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +58 -49
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +74 -72
- package/dist/bigconsole/customWidget/proposalPreview.d.ts +5 -0
- package/dist/bigconsole/customWidget/proposalPreview.js +31 -0
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -23
- package/dist/bigconsole/hooks/useDataSinkAlerts.js +113 -138
- package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +7 -0
- package/dist/bigconsole/hooks/useDataSinkOperations.js +109 -98
- package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -1
- package/dist/bigconsole/hooks/useDrilldown.js +68 -67
- package/dist/bigconsole/hooks/useExportDataSink.js +1 -1
- package/dist/bigconsole/hooks/useGlobalFilters.js +3 -3
- package/dist/bigconsole/hooks/useImportDataSink.js +102 -90
- package/dist/bigconsole/pages/AdminPage.js +130 -130
- package/dist/bigconsole/pages/DashboardBuilderPage.js +60 -72
- package/dist/bigconsole/pages/DashboardViewPage.js +235 -258
- package/dist/bigconsole/pages/DashboardsPage.js +221 -269
- package/dist/bigconsole/pages/DataParsersPage.js +157 -180
- package/dist/bigconsole/pages/DataSinkAlertsPage.js +55 -62
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +318 -295
- package/dist/bigconsole/pages/DataSinkViewPage.js +256 -255
- package/dist/bigconsole/pages/DataSinksPage.js +216 -251
- package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
- package/dist/bigconsole/pages/InsightsPage.js +265 -279
- package/dist/bigconsole/pages/OverviewPage.js +47 -47
- package/dist/bigconsole/pages/ParserBuilderPage.js +213 -229
- package/dist/bigconsole/pages/ParserViewPage.js +97 -97
- package/dist/bigconsole/pages/PipelineBuilderPage.js +214 -256
- package/dist/bigconsole/pages/PipelineViewPage.js +146 -146
- package/dist/bigconsole/pages/PipelinesPage.js +88 -107
- package/dist/bigconsole/pages/SettingsPage.js +173 -179
- package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
- package/dist/bigconsole/pages/WorkflowViewPage.js +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +141 -141
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +12 -12
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +235 -122
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +6 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +151 -151
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
- package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +29 -0
- package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +51 -0
- package/dist/bigconsole/store/widgetStore.d.ts +0 -12
- package/dist/bigconsole/store/widgetStore.js +1 -3
- package/dist/bigconsole/types/index.d.ts +17 -2
- package/dist/bigconsole/utils/backendError.d.ts +0 -18
- package/dist/bigconsole/utils/dataSinkPayload.d.ts +48 -0
- package/dist/bigconsole/utils/dataSinkPayload.js +38 -0
- package/dist/bigconsole/utils/index.d.ts +2 -0
- package/dist/bigconsole/utils/safeUrl.d.ts +79 -0
- package/dist/bigconsole/utils/safeUrl.js +93 -0
- package/dist/bigconsole/utils/sanitizeHtml.d.ts +16 -0
- package/dist/bigconsole/utils/sanitizeHtml.js +67 -0
- package/dist/bigconsole/workflowOpen.js +14 -15
- package/dist/generated/wspace-operations.d.ts +138 -8
- package/dist/generated/wspace-operations.js +281 -240
- package/dist/node_modules/dompurify/dist/purify.es.js +800 -0
- package/package.json +9 -5
- package/dist/bigconsole/assistant/displayCopy.d.ts +0 -32
- package/dist/bigconsole/assistant/pageControls.d.ts +0 -81
- package/dist/bigconsole/assistant/pageControls.js +0 -169
- package/dist/bigconsole/assistant/previewControl.d.ts +0 -16
- package/dist/bigconsole/assistant/previewControl.js +0 -10
- package/dist/bigconsole/assistant/usePreviewControl.d.ts +0 -2
- package/dist/bigconsole/assistant/usePreviewControl.js +0 -20
- package/dist/bigconsole/components/common/SortBySelect.d.ts +0 -11
- package/dist/bigconsole/components/common/SortBySelect.js +0 -29
- package/dist/bigconsole/constants/backendErrors.js +0 -94
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -14
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -32
- package/dist/bigconsole/utils/backendError.js +0 -42
- package/dist/bigconsole/utils/dashboardList.d.ts +0 -28
- package/dist/bigconsole/utils/dashboardList.js +0 -15
- package/dist/bigconsole/utils/dataSinkList.d.ts +0 -15
- package/dist/bigconsole/utils/dataSinkList.js +0 -15
- package/dist/bigconsole/utils/formDirty.d.ts +0 -82
- package/dist/bigconsole/utils/formDirty.js +0 -21
- package/dist/bigconsole/utils/insightsDraft.d.ts +0 -29
- package/dist/bigconsole/utils/insightsDraft.js +0 -8
- package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -130
- package/dist/bigconsole/utils/layoutBaseline.js +0 -96
- package/dist/bigconsole/utils/listSort.d.ts +0 -80
- package/dist/bigconsole/utils/listSort.js +0 -85
- package/dist/bigconsole/utils/widgetFormDirty.d.ts +0 -16
- package/dist/bigconsole/utils/widgetFormDirty.js +0 -13
|
@@ -3,285 +3,285 @@ import { useAppNavigate as t } from "../contexts/NavigationContext.js";
|
|
|
3
3
|
import "../contexts/index.js";
|
|
4
4
|
import n from "../hooks/useWorkflowOperations.js";
|
|
5
5
|
import { NEW_WORKFLOW_NAV as r } from "../workflowOpen.js";
|
|
6
|
-
import { newWorkflowPath as
|
|
7
|
-
import { SECTION_FOCUS_RING as
|
|
8
|
-
import { Section as
|
|
6
|
+
import { newWorkflowPath as ee } from "../BigConsoleRoutes.js";
|
|
7
|
+
import { SECTION_FOCUS_RING as i } from "../components/common/sectionStyles.js";
|
|
8
|
+
import { Section as a, SectionStack as o } from "../components/common/Section.js";
|
|
9
9
|
import "../components/common/index.js";
|
|
10
|
-
import { BIGCONSOLE_PERMISSIONS as
|
|
11
|
-
import { isNative as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import { memo as
|
|
15
|
-
import { AccessDenied as
|
|
16
|
-
import { usePermissions as
|
|
17
|
-
import { AlertCircle as
|
|
18
|
-
import { AuroraBackground as
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
10
|
+
import { BIGCONSOLE_PERMISSIONS as s } from "../../constants/permissions.js";
|
|
11
|
+
import { isNative as c, nativeNotify as l } from "../../utils/nativeBridge.js";
|
|
12
|
+
import u from "../components/workflow/WorkflowDeleteDialog.js";
|
|
13
|
+
import d from "../components/workflow/WorkflowCard.js";
|
|
14
|
+
import { memo as f, useCallback as p, useMemo as m, useState as h } from "react";
|
|
15
|
+
import { AccessDenied as g, PermissionButton as _ } from "@burdenoff/fe-libs/shared/components";
|
|
16
|
+
import { usePermissions as v } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
17
|
+
import { AlertCircle as y, Plus as b, Search as te, Workflow as x } from "lucide-react";
|
|
18
|
+
import { AuroraBackground as S, Button as C, GradientText as w, IllustratedEmptyState as T, Input as ne, PagePurpose as re, Spinner as ie } from "@burdenoff/fe-libs/ui";
|
|
19
|
+
import { Fragment as ae, jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
20
|
+
import { useI18n as O } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
21
21
|
//#region src/bigconsole/pages/WorkflowsPage.tsx
|
|
22
|
-
var
|
|
23
|
-
let
|
|
24
|
-
let e = [...
|
|
25
|
-
if (
|
|
26
|
-
let t =
|
|
22
|
+
var k = f(function() {
|
|
23
|
+
let f = t(), { t: k } = O(), { hasPermission: A, isLoading: j } = v(), M = A(s.WORKFLOW_READ), N = A(s.WORKFLOW_UPDATE), P = A(s.WORKFLOW_DELETE), F = A(s.WORKFLOW_EXECUTE), [I, L] = h("all"), [R, z] = h(null), B = e((e) => e.searchQuery), V = e((e) => e.setSearchQuery), H = e((e) => e.deleteDialogOpen), U = e((e) => e.currentWorkflow), W = e((e) => e.openDeleteDialog), G = e((e) => e.closeDeleteDialog), { loading: K, error: q, workflows: J, deleteWorkflow: Y, refetch: oe } = n(), { executeWorkflow: X } = n({ skipFetch: !0 }), se = e((e) => e.workflowUIStates), Z = m(() => {
|
|
24
|
+
let e = [...J];
|
|
25
|
+
if (I !== "all" && (e = e.filter((e) => e.status === I)), B.trim()) {
|
|
26
|
+
let t = B.toLowerCase();
|
|
27
27
|
e = e.filter((e) => e.name.toLowerCase().includes(t) || e.key.toLowerCase().includes(t) || e.description?.toLowerCase().includes(t));
|
|
28
28
|
}
|
|
29
29
|
return e.sort((e, t) => new Date(t.updatedAt).getTime() - new Date(e.updatedAt).getTime());
|
|
30
30
|
}, [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
]),
|
|
35
|
-
|
|
36
|
-
}, [
|
|
37
|
-
|
|
38
|
-
}, [
|
|
39
|
-
let t =
|
|
40
|
-
t?.key &&
|
|
41
|
-
}, [
|
|
42
|
-
let t =
|
|
43
|
-
t &&
|
|
44
|
-
}, [
|
|
45
|
-
let t =
|
|
31
|
+
J,
|
|
32
|
+
I,
|
|
33
|
+
B
|
|
34
|
+
]), Q = p(() => {
|
|
35
|
+
f(ee(), r);
|
|
36
|
+
}, [f]), ce = p((e) => {
|
|
37
|
+
f(`/workflows/details/${e}`);
|
|
38
|
+
}, [f]), le = p((e) => {
|
|
39
|
+
let t = J.find((t) => t.id === e);
|
|
40
|
+
t?.key && f(`/workflows/workflow/${encodeURIComponent(t.key)}/v1`);
|
|
41
|
+
}, [f, J]), $ = p((e) => {
|
|
42
|
+
let t = J.find((t) => t.id === e);
|
|
43
|
+
t && W(t);
|
|
44
|
+
}, [J, W]), ue = p(async (e) => {
|
|
45
|
+
let t = J.find((t) => t.id === e);
|
|
46
46
|
if (t) {
|
|
47
|
-
if (
|
|
48
|
-
|
|
47
|
+
if (z(null), await X(e)) {
|
|
48
|
+
c() && l("success"), z({
|
|
49
49
|
workflowName: t.name,
|
|
50
50
|
ok: !0,
|
|
51
|
-
message:
|
|
51
|
+
message: k("bigconsole.workflows.run.triggered", "Run triggered. The execution count and last-run time update as the run progresses.")
|
|
52
52
|
});
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
c() && l("error"), z({
|
|
56
56
|
workflowName: t.name,
|
|
57
57
|
ok: !1,
|
|
58
|
-
message:
|
|
58
|
+
message: k("bigconsole.workflows.run.failed", "The workflow could not be started. Nothing has been changed.")
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
}, [
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
]), de =
|
|
66
|
-
if (
|
|
62
|
+
J,
|
|
63
|
+
X,
|
|
64
|
+
k
|
|
65
|
+
]), de = p(async () => {
|
|
66
|
+
if (U) {
|
|
67
67
|
try {
|
|
68
|
-
await
|
|
68
|
+
await Y(U.id), c() && l("success");
|
|
69
69
|
} catch (e) {
|
|
70
|
-
throw
|
|
70
|
+
throw c() && l("error"), e;
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
G();
|
|
73
73
|
}
|
|
74
74
|
}, [
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
U,
|
|
76
|
+
Y,
|
|
77
|
+
G
|
|
78
78
|
]), fe = [
|
|
79
79
|
{
|
|
80
80
|
value: "all",
|
|
81
|
-
label:
|
|
81
|
+
label: k("bigconsole.workflows.filters.all", "All")
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
value: "draft",
|
|
85
|
-
label:
|
|
85
|
+
label: k("bigconsole.workflows.status.draft", "Draft")
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
value: "active",
|
|
89
|
-
label:
|
|
89
|
+
label: k("bigconsole.workflows.status.active", "Active")
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
value: "paused",
|
|
93
|
-
label:
|
|
93
|
+
label: k("bigconsole.workflows.status.paused", "Paused")
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
96
|
value: "error",
|
|
97
|
-
label:
|
|
97
|
+
label: k("bigconsole.workflows.status.error", "Error")
|
|
98
98
|
},
|
|
99
99
|
{
|
|
100
100
|
value: "archived",
|
|
101
|
-
label:
|
|
101
|
+
label: k("bigconsole.workflows.status.archived", "Archived")
|
|
102
102
|
}
|
|
103
103
|
];
|
|
104
|
-
if (!
|
|
105
|
-
title:
|
|
106
|
-
description:
|
|
104
|
+
if (!j && !M) return /* @__PURE__ */ E(g, {
|
|
105
|
+
title: k("bigconsole.workflows.errors.accessDeniedTitle", "Access Denied"),
|
|
106
|
+
description: k("bigconsole.workflows.errors.accessDeniedListDescription", "You don't have permission to view workflows.")
|
|
107
107
|
});
|
|
108
|
-
let pe = !
|
|
109
|
-
return /* @__PURE__ */
|
|
108
|
+
let pe = !K && J.length === 0, me = !K && Z.length === 0 && J.length > 0;
|
|
109
|
+
return /* @__PURE__ */ D("div", {
|
|
110
110
|
"data-tour": "bigconsole-workflows-list",
|
|
111
111
|
className: "min-h-dvh bg-bg-canvas",
|
|
112
112
|
children: [
|
|
113
|
-
/* @__PURE__ */
|
|
113
|
+
/* @__PURE__ */ D("header", {
|
|
114
114
|
"data-section-emphasis": "bare",
|
|
115
115
|
className: "relative min-w-0 overflow-hidden border-b border-[var(--color-border-seam)] bg-[image:var(--gradient-gloss-card)]",
|
|
116
|
-
children: [/* @__PURE__ */
|
|
116
|
+
children: [/* @__PURE__ */ E(S, { intensity: "subtle" }), /* @__PURE__ */ D("div", {
|
|
117
117
|
className: "relative flex flex-col gap-form-gap p-[var(--space-pagePadding)] sm:flex-row sm:items-center sm:justify-between",
|
|
118
|
-
children: [/* @__PURE__ */
|
|
118
|
+
children: [/* @__PURE__ */ D("div", {
|
|
119
119
|
className: "flex min-w-0 items-center gap-form-gap",
|
|
120
|
-
children: [/* @__PURE__ */
|
|
120
|
+
children: [/* @__PURE__ */ E("span", {
|
|
121
121
|
"aria-hidden": "true",
|
|
122
122
|
className: "flex h-control-lg w-[var(--size-controlHeight-lg)] shrink-0 items-center justify-center rounded-card bg-action-primary-bg",
|
|
123
|
-
children: /* @__PURE__ */
|
|
124
|
-
}), /* @__PURE__ */
|
|
123
|
+
children: /* @__PURE__ */ E(x, { className: "h-icon-lg w-icon-lg text-action-primary-text" })
|
|
124
|
+
}), /* @__PURE__ */ D("div", {
|
|
125
125
|
className: "min-w-0",
|
|
126
|
-
children: [/* @__PURE__ */
|
|
126
|
+
children: [/* @__PURE__ */ E("h1", {
|
|
127
127
|
className: "text-2xl font-bold text-text-primary",
|
|
128
|
-
children: /* @__PURE__ */
|
|
129
|
-
}), /* @__PURE__ */
|
|
128
|
+
children: /* @__PURE__ */ E(w, { children: k("bigconsole.workflows.list.title", "Workflows") })
|
|
129
|
+
}), /* @__PURE__ */ E("p", {
|
|
130
130
|
className: "text-sm text-text-secondary",
|
|
131
|
-
children:
|
|
131
|
+
children: k("bigconsole.workflows.list.subtitle", "Design ETL workflows with FluidGrids and link them to DataSinks")
|
|
132
132
|
})]
|
|
133
133
|
})]
|
|
134
|
-
}), /* @__PURE__ */
|
|
134
|
+
}), /* @__PURE__ */ E("div", {
|
|
135
135
|
className: "flex flex-wrap items-center gap-control-gap",
|
|
136
|
-
children: /* @__PURE__ */
|
|
137
|
-
permission:
|
|
136
|
+
children: /* @__PURE__ */ E(_, {
|
|
137
|
+
permission: s.WORKFLOW_CREATE,
|
|
138
138
|
deniedBehavior: "disable",
|
|
139
|
-
children: /* @__PURE__ */
|
|
140
|
-
onClick:
|
|
141
|
-
children: [/* @__PURE__ */
|
|
139
|
+
children: /* @__PURE__ */ D(C, {
|
|
140
|
+
onClick: Q,
|
|
141
|
+
children: [/* @__PURE__ */ E(b, { className: "h-icon-sm w-icon-sm" }), k("bigconsole.workflows.actions.designWorkflow", "Design Workflow")]
|
|
142
142
|
})
|
|
143
143
|
})
|
|
144
144
|
})]
|
|
145
145
|
})]
|
|
146
146
|
}),
|
|
147
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ E("div", {
|
|
148
148
|
className: "p-[var(--space-pagePadding)]",
|
|
149
|
-
children: /* @__PURE__ */
|
|
149
|
+
children: /* @__PURE__ */ D(o, { children: [/* @__PURE__ */ E(re, { children: k("bigconsole.workflows.list.purpose", "Workflows are visual ETL jobs built with the FluidGrids builder — they fetch data from external systems, transform it, and load it into your BigConsole DataSinks on a schedule or on demand. Use them to keep dashboards fed with fresh, shaped data without writing glue code.") }), q ? /* @__PURE__ */ E(a, {
|
|
150
150
|
headingLevel: 2,
|
|
151
151
|
tone: "danger",
|
|
152
|
-
title:
|
|
152
|
+
title: k("bigconsole.workflows.errors.loadFailedTitle", "Failed to load Workflows"),
|
|
153
153
|
description: "The workflow service did not respond. Nothing has been changed — retry when you are ready.",
|
|
154
|
-
icon: /* @__PURE__ */
|
|
155
|
-
actions: /* @__PURE__ */
|
|
154
|
+
icon: /* @__PURE__ */ E(y, { className: "h-icon-md w-icon-md" }),
|
|
155
|
+
actions: /* @__PURE__ */ E(C, {
|
|
156
156
|
size: "sm",
|
|
157
|
-
onClick: () =>
|
|
158
|
-
children:
|
|
157
|
+
onClick: () => oe(),
|
|
158
|
+
children: k("bigconsole.workflows.actions.tryAgain", "Try Again")
|
|
159
159
|
}),
|
|
160
160
|
"data-testid": "workflows-error",
|
|
161
|
-
children: /* @__PURE__ */
|
|
161
|
+
children: /* @__PURE__ */ E("p", {
|
|
162
162
|
className: "break-words text-sm text-[var(--color-status-error-text)]",
|
|
163
|
-
children:
|
|
163
|
+
children: q.message
|
|
164
164
|
})
|
|
165
|
-
}) : /* @__PURE__ */
|
|
165
|
+
}) : /* @__PURE__ */ D(ae, { children: [/* @__PURE__ */ E(a, {
|
|
166
166
|
headingLevel: 2,
|
|
167
167
|
title: "Filters",
|
|
168
168
|
description: "Narrow the list by status, or search by name, key or description.",
|
|
169
169
|
padding: "compact",
|
|
170
170
|
"data-testid": "workflows-filters",
|
|
171
|
-
children: /* @__PURE__ */
|
|
171
|
+
children: /* @__PURE__ */ D("div", {
|
|
172
172
|
className: "flex flex-col gap-form-gap lg:flex-row lg:items-center lg:justify-between",
|
|
173
|
-
children: [/* @__PURE__ */
|
|
173
|
+
children: [/* @__PURE__ */ E("div", {
|
|
174
174
|
role: "group",
|
|
175
175
|
"aria-label": "Filter workflows by status",
|
|
176
176
|
className: "flex flex-wrap items-center gap-1 rounded-card bg-bg-sunken p-1",
|
|
177
|
-
children: fe.map((e) => /* @__PURE__ */
|
|
177
|
+
children: fe.map((e) => /* @__PURE__ */ E("button", {
|
|
178
178
|
type: "button",
|
|
179
|
-
"aria-pressed":
|
|
180
|
-
onClick: () =>
|
|
181
|
-
className: `min-h-[var(--size-controlHeight-md)] rounded-button px-3 text-sm font-medium motion-safe:transition-colors ${
|
|
179
|
+
"aria-pressed": I === e.value,
|
|
180
|
+
onClick: () => L(e.value),
|
|
181
|
+
className: `min-h-[var(--size-controlHeight-md)] rounded-button px-3 text-sm font-medium motion-safe:transition-colors ${i} ${I === e.value ? "bg-bg-surface text-text-primary shadow-[var(--shadow-elevation-1)]" : "text-text-secondary hover:text-text-primary"}`,
|
|
182
182
|
children: e.label
|
|
183
183
|
}, e.value))
|
|
184
|
-
}), /* @__PURE__ */
|
|
184
|
+
}), /* @__PURE__ */ D("div", {
|
|
185
185
|
className: "relative w-full lg:max-w-[360px]",
|
|
186
|
-
children: [/* @__PURE__ */
|
|
186
|
+
children: [/* @__PURE__ */ E(te, {
|
|
187
187
|
"aria-hidden": "true",
|
|
188
188
|
className: "pointer-events-none absolute left-3 top-1/2 h-icon-sm w-icon-sm -translate-y-1/2 text-text-muted"
|
|
189
|
-
}), /* @__PURE__ */
|
|
189
|
+
}), /* @__PURE__ */ E(ne, {
|
|
190
190
|
type: "text",
|
|
191
|
-
"aria-label":
|
|
192
|
-
placeholder:
|
|
193
|
-
value:
|
|
194
|
-
onChange: (e) =>
|
|
191
|
+
"aria-label": k("bigconsole.workflows.filters.searchPlaceholder", "Search workflows..."),
|
|
192
|
+
placeholder: k("bigconsole.workflows.filters.searchPlaceholder", "Search workflows..."),
|
|
193
|
+
value: B,
|
|
194
|
+
onChange: (e) => V(e.target.value),
|
|
195
195
|
className: "h-control-md pl-10"
|
|
196
196
|
})]
|
|
197
197
|
})]
|
|
198
198
|
})
|
|
199
|
-
}), /* @__PURE__ */
|
|
199
|
+
}), /* @__PURE__ */ D(a, {
|
|
200
200
|
headingLevel: 2,
|
|
201
201
|
emphasis: "primary",
|
|
202
|
-
title:
|
|
202
|
+
title: k("bigconsole.workflows.list.title", "Workflows"),
|
|
203
203
|
description: "Every workflow in this workspace, most recently updated first.",
|
|
204
|
-
meta: /* @__PURE__ */
|
|
204
|
+
meta: /* @__PURE__ */ D("span", {
|
|
205
205
|
className: "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary",
|
|
206
|
-
children: [
|
|
206
|
+
children: [Z.length, Z.length === J.length ? "" : ` of ${J.length}`]
|
|
207
207
|
}),
|
|
208
208
|
"data-testid": "workflows-results",
|
|
209
209
|
children: [
|
|
210
|
-
|
|
210
|
+
K && J.length === 0 && /* @__PURE__ */ E("div", {
|
|
211
211
|
className: "flex min-h-[240px] items-center justify-center",
|
|
212
|
-
children: /* @__PURE__ */
|
|
212
|
+
children: /* @__PURE__ */ D("div", {
|
|
213
213
|
className: "text-center",
|
|
214
|
-
children: [/* @__PURE__ */
|
|
214
|
+
children: [/* @__PURE__ */ E(ie, {
|
|
215
215
|
size: "lg",
|
|
216
216
|
className: "mb-form-gap"
|
|
217
|
-
}), /* @__PURE__ */
|
|
217
|
+
}), /* @__PURE__ */ E("p", {
|
|
218
218
|
className: "text-sm text-text-muted",
|
|
219
|
-
children:
|
|
219
|
+
children: k("bigconsole.workflows.list.loading", "Loading workflows...")
|
|
220
220
|
})]
|
|
221
221
|
})
|
|
222
222
|
}),
|
|
223
|
-
pe && /* @__PURE__ */
|
|
223
|
+
pe && /* @__PURE__ */ E(T, {
|
|
224
224
|
illustration: "empty-data",
|
|
225
|
-
title:
|
|
226
|
-
description:
|
|
227
|
-
action: /* @__PURE__ */
|
|
228
|
-
permission:
|
|
225
|
+
title: k("bigconsole.workflows.list.emptyTitle", "No Workflows yet"),
|
|
226
|
+
description: k("bigconsole.workflows.list.emptyDescription", "Design ETL workflows with the FluidGrids visual builder to fetch, transform, and deliver data into BigConsole DataSinks."),
|
|
227
|
+
action: /* @__PURE__ */ E(_, {
|
|
228
|
+
permission: s.WORKFLOW_CREATE,
|
|
229
229
|
deniedBehavior: "disable",
|
|
230
|
-
children: /* @__PURE__ */
|
|
231
|
-
onClick:
|
|
232
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: /* @__PURE__ */ D(C, {
|
|
231
|
+
onClick: Q,
|
|
232
|
+
children: [/* @__PURE__ */ E(b, { className: "h-icon-sm w-icon-sm" }), k("bigconsole.workflows.actions.designWorkflow", "Design Workflow")]
|
|
233
233
|
})
|
|
234
234
|
})
|
|
235
235
|
}),
|
|
236
|
-
me && /* @__PURE__ */
|
|
236
|
+
me && /* @__PURE__ */ E(T, {
|
|
237
237
|
illustration: "empty-search",
|
|
238
|
-
title:
|
|
239
|
-
description:
|
|
238
|
+
title: k("bigconsole.workflows.list.noResultsTitle", "No matching workflows"),
|
|
239
|
+
description: k("bigconsole.workflows.list.noResultsDescription", "No workflows match your filters")
|
|
240
240
|
}),
|
|
241
|
-
|
|
241
|
+
R && /* @__PURE__ */ D("div", {
|
|
242
242
|
role: "status",
|
|
243
243
|
"aria-live": "polite",
|
|
244
|
-
className: `mb-form-gap flex flex-wrap items-center justify-between gap-icon-gap rounded-input border p-3 text-sm ${
|
|
244
|
+
className: `mb-form-gap flex flex-wrap items-center justify-between gap-icon-gap rounded-input border p-3 text-sm ${R.ok ? "border-[var(--color-status-success-border)] bg-[var(--color-status-success-bgSubtle)] text-[var(--color-status-success-text)]" : "border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] text-[var(--color-status-error-text)]"}`,
|
|
245
245
|
"data-testid": "workflows-run-outcome",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
246
|
+
children: [/* @__PURE__ */ D("span", {
|
|
247
247
|
className: "min-w-0",
|
|
248
248
|
children: [
|
|
249
|
-
/* @__PURE__ */
|
|
249
|
+
/* @__PURE__ */ E("strong", {
|
|
250
250
|
className: "font-semibold",
|
|
251
|
-
children:
|
|
251
|
+
children: R.workflowName
|
|
252
252
|
}),
|
|
253
253
|
" — ",
|
|
254
|
-
|
|
254
|
+
R.message
|
|
255
255
|
]
|
|
256
|
-
}), /* @__PURE__ */
|
|
256
|
+
}), /* @__PURE__ */ E("button", {
|
|
257
257
|
type: "button",
|
|
258
|
-
onClick: () =>
|
|
258
|
+
onClick: () => z(null),
|
|
259
259
|
className: "rounded-button px-2 py-1 text-xs font-medium underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
|
|
260
|
-
children:
|
|
260
|
+
children: k("bigconsole.workflows.run.dismiss", "Dismiss")
|
|
261
261
|
})]
|
|
262
262
|
}),
|
|
263
|
-
|
|
263
|
+
Z.length > 0 && /* @__PURE__ */ E("div", {
|
|
264
264
|
className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2 xl:grid-cols-3",
|
|
265
|
-
children:
|
|
265
|
+
children: Z.map((e) => /* @__PURE__ */ E(d, {
|
|
266
266
|
workflow: e,
|
|
267
|
-
onView:
|
|
268
|
-
onEdit:
|
|
269
|
-
onDelete:
|
|
270
|
-
onRun:
|
|
271
|
-
isRunning:
|
|
267
|
+
onView: ce,
|
|
268
|
+
onEdit: N ? le : void 0,
|
|
269
|
+
onDelete: P ? $ : void 0,
|
|
270
|
+
onRun: F ? ue : void 0,
|
|
271
|
+
isRunning: se.get(e.id)?.isExecuting ?? !1
|
|
272
272
|
}, e.id))
|
|
273
273
|
})
|
|
274
274
|
]
|
|
275
275
|
})] })] })
|
|
276
276
|
}),
|
|
277
|
-
|
|
278
|
-
workflow:
|
|
279
|
-
isOpen:
|
|
280
|
-
onClose:
|
|
277
|
+
U && /* @__PURE__ */ E(u, {
|
|
278
|
+
workflow: U,
|
|
279
|
+
isOpen: H,
|
|
280
|
+
onClose: G,
|
|
281
281
|
onConfirm: de
|
|
282
282
|
})
|
|
283
283
|
]
|
|
284
284
|
});
|
|
285
285
|
});
|
|
286
286
|
//#endregion
|
|
287
|
-
export {
|
|
287
|
+
export { k as WorkflowsPage };
|
|
@@ -2,15 +2,15 @@ import { BIGCONSOLE_BILLING_PATHS as e, BIGCONSOLE_QUOTA_EXHAUSTED_EVENT as t, g
|
|
|
2
2
|
import { useCallback as r, useEffect as i, useState as a } from "react";
|
|
3
3
|
import { AlertTriangle as o } from "lucide-react";
|
|
4
4
|
import { Button as s, ResponsiveDialog as c, ResponsiveDialogContent as l, ResponsiveDialogDescription as u, ResponsiveDialogFooter as d, ResponsiveDialogHeader as f, ResponsiveDialogTitle as p } from "@burdenoff/fe-libs/ui";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
6
|
+
import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
7
7
|
//#region src/bigconsole/providers/BigConsoleQuotaProvider.tsx
|
|
8
8
|
var v = {
|
|
9
9
|
open: !1,
|
|
10
10
|
kind: "generic"
|
|
11
11
|
};
|
|
12
12
|
function y({ children: y, onViewBilling: b }) {
|
|
13
|
-
let { t: x } =
|
|
13
|
+
let { t: x } = _(), [S, C] = a(v);
|
|
14
14
|
i(() => {
|
|
15
15
|
let e = (e) => {
|
|
16
16
|
let t = e.detail;
|
|
@@ -34,30 +34,30 @@ function y({ children: y, onViewBilling: b }) {
|
|
|
34
34
|
open: !1
|
|
35
35
|
})), b(T ? e.billingSetup : e.billing);
|
|
36
36
|
}, [b, T]), D = n(S.kind), O = x(`bigconsole.quota.${S.kind}.title`, D.title), k = x(`bigconsole.quota.${S.kind}.message`, D.message);
|
|
37
|
-
return /* @__PURE__ */
|
|
37
|
+
return /* @__PURE__ */ g(m, { children: [y, /* @__PURE__ */ h(c, {
|
|
38
38
|
open: S.open,
|
|
39
39
|
onOpenChange: (e) => !e && w(),
|
|
40
|
-
children: /* @__PURE__ */
|
|
40
|
+
children: /* @__PURE__ */ g(l, {
|
|
41
41
|
className: "sm:max-w-md",
|
|
42
42
|
showCloseButton: !1,
|
|
43
|
-
children: [/* @__PURE__ */
|
|
43
|
+
children: [/* @__PURE__ */ g("div", {
|
|
44
44
|
className: "flex items-start gap-3",
|
|
45
|
-
children: [/* @__PURE__ */
|
|
45
|
+
children: [/* @__PURE__ */ h("div", {
|
|
46
46
|
className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-status-warning-bg-subtle text-status-warning-text",
|
|
47
|
-
children: /* @__PURE__ */
|
|
47
|
+
children: /* @__PURE__ */ h(o, {
|
|
48
48
|
className: "size-5",
|
|
49
49
|
"aria-hidden": "true"
|
|
50
50
|
})
|
|
51
|
-
}), /* @__PURE__ */
|
|
51
|
+
}), /* @__PURE__ */ g(f, {
|
|
52
52
|
className: "text-left",
|
|
53
|
-
children: [/* @__PURE__ */
|
|
53
|
+
children: [/* @__PURE__ */ h(p, { children: O }), /* @__PURE__ */ h(u, { children: k })]
|
|
54
54
|
})]
|
|
55
|
-
}), /* @__PURE__ */
|
|
55
|
+
}), /* @__PURE__ */ g(d, { children: [/* @__PURE__ */ h(s, {
|
|
56
56
|
type: "button",
|
|
57
57
|
variant: "outline",
|
|
58
58
|
onClick: w,
|
|
59
59
|
children: x("bigconsole.quota.dismiss", "Dismiss")
|
|
60
|
-
}), /* @__PURE__ */
|
|
60
|
+
}), /* @__PURE__ */ h(s, {
|
|
61
61
|
type: "button",
|
|
62
62
|
onClick: E,
|
|
63
63
|
children: T ? x("bigconsole.quota.setUpBilling", "Set up billing") : x("bigconsole.quota.viewBilling", "View Billing")
|