@burdenoff/microfe-bigconsole 2026.1004.3 → 2026.1004.5

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.
Files changed (157) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.d.ts +1 -1
  2. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -1
  3. package/dist/bigconsole/BigConsoleRoutes.js +15 -1
  4. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  5. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +1 -1
  6. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +57 -56
  7. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  8. package/dist/bigconsole/components/DrilldownModal.d.ts.map +1 -1
  9. package/dist/bigconsole/components/DrilldownModal.js +55 -53
  10. package/dist/bigconsole/components/DrilldownModal.js.map +1 -1
  11. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +3 -1
  12. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +1 -1
  13. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +40 -39
  14. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  15. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +1 -1
  16. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +184 -177
  17. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  18. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +1 -1
  19. package/dist/bigconsole/components/dashboard/DashboardGrid.js +40 -22
  20. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -1
  21. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +1 -1
  22. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +31 -25
  23. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +1 -1
  25. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +1 -1
  26. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +115 -80
  27. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  28. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +1 -1
  29. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +177 -146
  30. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  31. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +1 -1
  32. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +1 -1
  33. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +375 -325
  34. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  35. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +1 -1
  36. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +7 -1
  37. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  38. package/dist/bigconsole/components/parser/ParserSelector.d.ts +3 -1
  39. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +1 -1
  40. package/dist/bigconsole/components/parser/ParserSelector.js +94 -94
  41. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  42. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +1 -1
  43. package/dist/bigconsole/components/pipeline/PipelineCard.js +111 -89
  44. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -1
  45. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +8 -0
  46. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +1 -0
  47. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +52 -0
  48. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +1 -0
  49. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +1 -1
  50. package/dist/bigconsole/components/widgets/PropertiesPanel.js +257 -221
  51. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  52. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +1 -0
  53. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +1 -1
  54. package/dist/bigconsole/components/widgets/WidgetHeader.js +29 -29
  55. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -1
  56. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +2 -0
  57. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +1 -1
  58. package/dist/bigconsole/components/widgets/WidgetWrapper.js +247 -239
  59. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  60. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +1 -1
  61. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +6 -4
  62. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -1
  63. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +1 -0
  64. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +1 -1
  65. package/dist/bigconsole/components/widgets/states/EmptyState.js +4 -4
  66. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -1
  67. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +7 -0
  68. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +1 -0
  69. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +94 -0
  70. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +1 -0
  71. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +7 -0
  72. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +1 -0
  73. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +101 -0
  74. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +1 -0
  75. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +16 -0
  76. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +1 -0
  77. package/dist/bigconsole/hooks/useBigConsoleSettings.js +57 -0
  78. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +1 -0
  79. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +1 -1
  80. package/dist/bigconsole/hooks/useDashboardOperations.js +102 -79
  81. package/dist/bigconsole/hooks/useDashboardOperations.js.map +1 -1
  82. package/dist/bigconsole/hooks/useExportDashboard.d.ts +3 -1
  83. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +1 -1
  84. package/dist/bigconsole/hooks/useExportDashboard.js +23 -13
  85. package/dist/bigconsole/hooks/useExportDashboard.js.map +1 -1
  86. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +18 -0
  87. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +1 -1
  88. package/dist/bigconsole/hooks/useFilterUrlSync.js +87 -57
  89. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +1 -1
  90. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +1 -1
  91. package/dist/bigconsole/hooks/useGlobalFilters.js +39 -29
  92. package/dist/bigconsole/hooks/useGlobalFilters.js.map +1 -1
  93. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +1 -1
  94. package/dist/bigconsole/hooks/usePageOperations.js +1 -0
  95. package/dist/bigconsole/hooks/usePageOperations.js.map +1 -1
  96. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +1 -1
  97. package/dist/bigconsole/hooks/usePipelineOperations.js +114 -112
  98. package/dist/bigconsole/hooks/usePipelineOperations.js.map +1 -1
  99. package/dist/bigconsole/hooks/useShareRecipients.d.ts +22 -0
  100. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +1 -0
  101. package/dist/bigconsole/hooks/useShareRecipients.js +198 -0
  102. package/dist/bigconsole/hooks/useShareRecipients.js.map +1 -0
  103. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +1 -1
  104. package/dist/bigconsole/pages/DashboardBuilderPage.js +198 -193
  105. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  106. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +1 -1
  107. package/dist/bigconsole/pages/DashboardViewPage.js +171 -167
  108. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  109. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +1 -1
  110. package/dist/bigconsole/pages/DashboardsPage.js +313 -266
  111. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  112. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +1 -1
  113. package/dist/bigconsole/pages/DataSinkBuilderPage.js +84 -79
  114. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  115. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -1
  116. package/dist/bigconsole/pages/DataSinkViewPage.js +267 -257
  117. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  118. package/dist/bigconsole/pages/InsightsPage.d.ts.map +1 -1
  119. package/dist/bigconsole/pages/InsightsPage.js +465 -402
  120. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  121. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +1 -1
  122. package/dist/bigconsole/pages/PipelineBuilderPage.js +169 -157
  123. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  124. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +1 -1
  125. package/dist/bigconsole/pages/PipelineViewPage.js +370 -230
  126. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  127. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +1 -1
  128. package/dist/bigconsole/pages/PipelinesPage.js +181 -151
  129. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  130. package/dist/bigconsole/pages/SettingsPage.d.ts.map +1 -1
  131. package/dist/bigconsole/pages/SettingsPage.js +188 -208
  132. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  133. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +1 -1
  134. package/dist/bigconsole/pages/WidgetDemoPage.js +134 -117
  135. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  136. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +1 -1
  137. package/dist/bigconsole/pages/WorkflowViewPage.js +315 -267
  138. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  139. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +1 -1
  140. package/dist/bigconsole/pages/WorkflowsPage.js +4 -3
  141. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  142. package/dist/bigconsole/types/index.d.ts +4 -0
  143. package/dist/bigconsole/types/index.d.ts.map +1 -1
  144. package/dist/bigconsole/utils/drilldownParams.d.ts +3 -0
  145. package/dist/bigconsole/utils/drilldownParams.d.ts.map +1 -0
  146. package/dist/bigconsole/utils/drilldownParams.js +8 -0
  147. package/dist/bigconsole/utils/drilldownParams.js.map +1 -0
  148. package/dist/generated/wspace-operations.d.ts +148 -0
  149. package/dist/generated/wspace-operations.d.ts.map +1 -1
  150. package/dist/generated/wspace-operations.js +172 -133
  151. package/dist/generated/wspace-operations.js.map +1 -1
  152. package/dist/generated/wspace-types.d.ts +21 -0
  153. package/dist/generated/wspace-types.d.ts.map +1 -1
  154. package/dist/generated/wspace-types.js.map +1 -1
  155. package/dist/microfe-bigconsole.css +1 -1
  156. package/dist/translations/en.d.ts.map +1 -1
  157. package/package.json +2 -1
@@ -9,98 +9,98 @@ import { BIGCONSOLE_PERMISSIONS as a } from "../../constants/permissions.js";
9
9
  import { isNative as o, nativeNotify as s } from "../../utils/nativeBridge.js";
10
10
  import c from "../components/pipeline/PipelineStatusBadge.js";
11
11
  import te from "../components/pipeline/PipelineDeleteDialog.js";
12
- import { memo as l, useCallback as u, useEffect as ne, useId as re, useState as d } from "react";
13
- import { useParams as ie, useSearchParams as ae } from "react-router";
14
- import { AccessDenied as f } from "@burdenoff/fe-libs/shared/components";
15
- import { usePermissions as p } from "@burdenoff/fe-libs/shared/providers/shell";
16
- import { Button as m, IllustratedEmptyState as h, NextSteps as oe, PagePurpose as se, Spinner as ce } from "@burdenoff/fe-libs/ui";
17
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
18
- import { useI18n as v } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
12
+ import { memo as l, useCallback as u, useEffect as d, useId as ne, useState as f } from "react";
13
+ import { useParams as re, useSearchParams as ie } from "react-router";
14
+ import { AccessDenied as ae } from "@burdenoff/fe-libs/shared/components";
15
+ import { usePermissions as oe } from "@burdenoff/fe-libs/shared/providers/shell";
16
+ import { Button as p, IllustratedEmptyState as se, NextSteps as ce, PagePurpose as m, Spinner as le } from "@burdenoff/fe-libs/ui";
17
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
18
+ import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
19
  //#region src/bigconsole/pages/PipelineViewPage.tsx
20
- var y = "min-h-[var(--size-controlHeight-md)]", le = "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary", b = "rounded-button bg-bg-surface px-1.5 py-0.5 font-mono break-all text-text-primary", x = ({ className: e }) => /* @__PURE__ */ g("svg", {
20
+ var v = "min-h-[var(--size-controlHeight-md)]", ue = "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary", y = "rounded-button bg-bg-surface px-1.5 py-0.5 font-mono break-all text-text-primary", de = ({ className: e }) => /* @__PURE__ */ h("svg", {
21
21
  className: e,
22
22
  fill: "none",
23
23
  stroke: "currentColor",
24
24
  viewBox: "0 0 24 24",
25
- children: /* @__PURE__ */ g("path", {
25
+ children: /* @__PURE__ */ h("path", {
26
26
  strokeLinecap: "round",
27
27
  strokeLinejoin: "round",
28
28
  strokeWidth: 2,
29
29
  d: "M10 19l-7-7m0 0l7-7m-7 7h18"
30
30
  })
31
- }), S = ({ className: e }) => /* @__PURE__ */ g("svg", {
31
+ }), b = ({ className: e }) => /* @__PURE__ */ h("svg", {
32
32
  className: e,
33
33
  fill: "none",
34
34
  stroke: "currentColor",
35
35
  viewBox: "0 0 24 24",
36
- children: /* @__PURE__ */ g("path", {
36
+ children: /* @__PURE__ */ h("path", {
37
37
  strokeLinecap: "round",
38
38
  strokeLinejoin: "round",
39
39
  strokeWidth: 2,
40
40
  d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
41
41
  })
42
- }), C = ({ className: e }) => /* @__PURE__ */ g("svg", {
42
+ }), fe = ({ className: e }) => /* @__PURE__ */ h("svg", {
43
43
  className: e,
44
44
  fill: "none",
45
45
  stroke: "currentColor",
46
46
  viewBox: "0 0 24 24",
47
- children: /* @__PURE__ */ g("path", {
47
+ children: /* @__PURE__ */ h("path", {
48
48
  strokeLinecap: "round",
49
49
  strokeLinejoin: "round",
50
50
  strokeWidth: 2,
51
51
  d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
52
52
  })
53
- }), w = ({ className: e }) => /* @__PURE__ */ _("svg", {
53
+ }), x = ({ className: e }) => /* @__PURE__ */ g("svg", {
54
54
  className: e,
55
55
  fill: "none",
56
56
  stroke: "currentColor",
57
57
  viewBox: "0 0 24 24",
58
- children: [/* @__PURE__ */ g("path", {
58
+ children: [/* @__PURE__ */ h("path", {
59
59
  strokeLinecap: "round",
60
60
  strokeLinejoin: "round",
61
61
  strokeWidth: 2,
62
62
  d: "M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"
63
- }), /* @__PURE__ */ g("path", {
63
+ }), /* @__PURE__ */ h("path", {
64
64
  strokeLinecap: "round",
65
65
  strokeLinejoin: "round",
66
66
  strokeWidth: 2,
67
67
  d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
68
68
  })]
69
- }), T = ({ className: e }) => /* @__PURE__ */ g("svg", {
69
+ }), S = ({ className: e }) => /* @__PURE__ */ h("svg", {
70
70
  className: e,
71
71
  fill: "none",
72
72
  stroke: "currentColor",
73
73
  viewBox: "0 0 24 24",
74
- children: /* @__PURE__ */ g("path", {
74
+ children: /* @__PURE__ */ h("path", {
75
75
  strokeLinecap: "round",
76
76
  strokeLinejoin: "round",
77
77
  strokeWidth: 2,
78
78
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
79
79
  })
80
- }), ue = ({ className: e }) => /* @__PURE__ */ g("svg", {
80
+ }), pe = ({ className: e }) => /* @__PURE__ */ h("svg", {
81
81
  className: e,
82
82
  fill: "none",
83
83
  stroke: "currentColor",
84
84
  viewBox: "0 0 24 24",
85
- children: /* @__PURE__ */ g("path", {
85
+ children: /* @__PURE__ */ h("path", {
86
86
  strokeLinecap: "round",
87
87
  strokeLinejoin: "round",
88
88
  strokeWidth: 2,
89
89
  d: "M5 13l4 4L19 7"
90
90
  })
91
- }), E = ({ className: e }) => /* @__PURE__ */ g("svg", {
91
+ }), C = ({ className: e }) => /* @__PURE__ */ h("svg", {
92
92
  className: e,
93
93
  fill: "none",
94
94
  stroke: "currentColor",
95
95
  viewBox: "0 0 24 24",
96
- children: /* @__PURE__ */ g("path", {
96
+ children: /* @__PURE__ */ h("path", {
97
97
  strokeLinecap: "round",
98
98
  strokeLinejoin: "round",
99
99
  strokeWidth: 2,
100
100
  d: "M14 5l7 7m0 0l-7 7m7-7H3"
101
101
  })
102
- }), de = ({ handling: e }) => {
103
- let { t } = v(), n = {
102
+ }), me = ({ handling: e }) => {
103
+ let { t } = _(), n = {
104
104
  fail: {
105
105
  label: t("bigconsole.pipelines.view.errorHandlingFail", "Fail"),
106
106
  className: "bg-[var(--color-status-error-bgSubtle)] text-status-error-text border-[var(--color-status-error-border)]"
@@ -114,414 +114,554 @@ var y = "min-h-[var(--size-controlHeight-md)]", le = "rounded-pill bg-bg-sunken
114
114
  className: "bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)] border-[var(--color-status-info-border)]"
115
115
  }
116
116
  }, r = n[e] || n.fail;
117
- return /* @__PURE__ */ _("span", {
117
+ return /* @__PURE__ */ g("span", {
118
118
  className: `inline-flex items-center gap-1 whitespace-nowrap rounded-pill border px-2 py-0.5 text-xs font-medium ${r.className}`,
119
- children: [/* @__PURE__ */ g("span", {
119
+ children: [/* @__PURE__ */ h("span", {
120
120
  className: "font-normal opacity-80",
121
121
  children: "On error"
122
122
  }), r.label]
123
123
  });
124
- }, D = l(function() {
125
- let { pipelineId: l } = ie(), D = t(), { t: O } = v(), k = "default", [fe] = ae(), A = re(), { hasPermission: j, isLoading: pe } = p(), M = j(a.PIPELINE_READ), N = j(a.PIPELINE_UPDATE), P = j(a.PIPELINE_DELETE), F = j(a.PIPELINE_TEST), [I, L] = d(null), [R, z] = d("{\n \"data\": \"sample\"\n}"), [B, me] = d(null), [V, H] = d(fe.get("test") === "true"), he = e((e) => e.deleteDialogOpen), U = e((e) => e.openDeleteDialog), W = e((e) => e.closeDeleteDialog), { loading: G, error: K, fetchPipeline: q, deletePipeline: J, testPipeline: Y } = ee({
126
- consoleId: k,
124
+ }, w = l(function() {
125
+ let { pipelineId: l } = re(), w = t(), { t: T } = _(), [he] = ie(), E = ne(), { hasPermission: D, isLoading: O } = oe(), k = D(a.PIPELINE_READ), A = D(a.PIPELINE_UPDATE), ge = D(a.PIPELINE_DELETE), j = D(a.PIPELINE_TEST), [M, N] = f(null), [P, _e] = f("{\n \"data\": \"sample\"\n}"), [F, ve] = f(null), [I, L] = f([]), [R, z] = f(null), [B, V] = f(he.get("test") === "true"), ye = e((e) => e.deleteDialogOpen), H = e((e) => e.openDeleteDialog), U = e((e) => e.closeDeleteDialog), { loading: W, error: G, fetchPipeline: K, deletePipeline: q, testPipeline: J, listExecutions: Y } = ee({
126
+ consoleId: "default",
127
127
  skipFetch: !0
128
128
  });
129
- ne(() => {
130
- l && q(l).then((e) => {
131
- e && L(e);
129
+ d(() => {
130
+ l && K(l).then((e) => {
131
+ e && N(e);
132
132
  });
133
- }, [l, q]);
133
+ }, [l, K]), d(() => {
134
+ let e = !0;
135
+ if (!(!l || O || !k)) return Y(l).then((t) => {
136
+ if (!e) return;
137
+ let n = [...t].sort((e, t) => new Date(t.startedAt).getTime() - new Date(e.startedAt).getTime());
138
+ L(n), z(n[0] ?? null);
139
+ }), () => {
140
+ e = !1;
141
+ };
142
+ }, [
143
+ l,
144
+ O,
145
+ k,
146
+ Y
147
+ ]);
134
148
  let X = u(() => {
135
- D("/pipelines");
136
- }, [D]), Z = u(() => {
137
- D(`/pipelines/${l}/edit`);
138
- }, [D, l]), ge = u(() => {
139
- I && U(I);
140
- }, [I, U]), _e = u(async () => {
141
- I && (await J(I.id) ? (o() && s("success"), W(), D("/pipelines")) : o() && s("error"));
149
+ w(`/pipelines?consoleId=${encodeURIComponent(M?.consoleId ?? "default")}`);
150
+ }, [w, M?.consoleId]), Z = u(() => {
151
+ w(`/pipelines/${l}/edit`);
152
+ }, [w, l]), be = u(() => {
153
+ M && H(M);
154
+ }, [M, H]), xe = u(async () => {
155
+ M && (await q(M.id) ? (o() && s("success"), U(), w(`/pipelines?consoleId=${encodeURIComponent(M?.consoleId ?? "default")}`)) : o() && s("error"));
142
156
  }, [
143
- I,
144
- J,
145
- W,
146
- D
147
- ]), ve = u((e) => {
148
- D(`/dashboards/${k}/parsers/${e}`);
149
- }, [D, k]), ye = u(async () => {
150
- if (I) try {
151
- let e = await Y({
152
- pipelineId: I.id,
153
- inputData: R
157
+ M,
158
+ q,
159
+ U,
160
+ w
161
+ ]), Se = u((e) => {
162
+ w(`/parsers/${e}`);
163
+ }, [w]), Ce = u(async () => {
164
+ if (M) try {
165
+ let e = await J({
166
+ pipelineId: M.id,
167
+ inputData: P
154
168
  });
155
- e && me(e);
169
+ e && (ve(e), z(e), L(await Y(M.id)));
156
170
  } catch {}
157
171
  }, [
158
- I,
159
- Y,
160
- R
172
+ M,
173
+ J,
174
+ P,
175
+ Y
161
176
  ]);
162
- if (G && !I) return /* @__PURE__ */ g("div", {
177
+ if (W && !M) return /* @__PURE__ */ h("div", {
163
178
  className: "p-card-padding",
164
- children: /* @__PURE__ */ _("div", {
179
+ children: /* @__PURE__ */ g("div", {
165
180
  className: "flex flex-col items-center justify-center py-16",
166
181
  role: "status",
167
- children: [/* @__PURE__ */ g(ce, { style: {
182
+ children: [/* @__PURE__ */ h(le, { style: {
168
183
  height: "var(--size-icon-xl)",
169
184
  width: "var(--size-icon-xl)"
170
- } }), /* @__PURE__ */ g("p", {
185
+ } }), /* @__PURE__ */ h("p", {
171
186
  className: "mt-form-gap text-sm text-text-secondary",
172
- children: O("bigconsole.pipelines.view.loading", "Loading Pipeline...")
187
+ children: T("bigconsole.pipelines.view.loading", "Loading Pipeline...")
173
188
  })]
174
189
  })
175
190
  });
176
- if (!pe && !M) return /* @__PURE__ */ g(f, {
177
- title: O("bigconsole.pipelines.errors.accessDeniedTitle", "Access Denied"),
178
- description: O("bigconsole.pipelines.errors.accessDeniedViewDescription", "You don't have permission to view this pipeline.")
191
+ if (!O && !k) return /* @__PURE__ */ h(ae, {
192
+ title: T("bigconsole.pipelines.errors.accessDeniedTitle", "Access Denied"),
193
+ description: T("bigconsole.pipelines.errors.accessDeniedViewDescription", "You don't have permission to view this pipeline.")
179
194
  });
180
- if (K) return /* @__PURE__ */ g("div", {
195
+ if (G) return /* @__PURE__ */ h("div", {
181
196
  className: "p-card-padding",
182
- children: /* @__PURE__ */ g(r, {
197
+ children: /* @__PURE__ */ h(r, {
183
198
  tone: "danger",
184
199
  headingLevel: 2,
185
- title: O("bigconsole.pipelines.view.loadError", "Failed to load Pipeline"),
186
- description: K.message,
187
- icon: /* @__PURE__ */ g(T, { className: "h-icon-sm w-icon-sm" }),
188
- actions: /* @__PURE__ */ g(m, {
200
+ title: T("bigconsole.pipelines.view.loadError", "Failed to load Pipeline"),
201
+ description: G.message,
202
+ icon: /* @__PURE__ */ h(S, { className: "h-icon-sm w-icon-sm" }),
203
+ actions: /* @__PURE__ */ h(p, {
189
204
  onClick: X,
190
- className: y,
191
- children: O("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
205
+ className: v,
206
+ children: T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
192
207
  }),
193
208
  "data-testid": "pipeline-view-error",
194
- children: /* @__PURE__ */ g("p", {
209
+ children: /* @__PURE__ */ h("p", {
195
210
  className: "text-sm text-text-secondary",
196
211
  children: "The pipeline could not be read from the console service. Nothing was changed."
197
212
  })
198
213
  })
199
214
  });
200
- if (!I) return /* @__PURE__ */ g("div", {
215
+ if (!M) return /* @__PURE__ */ h("div", {
201
216
  className: "p-card-padding",
202
- children: /* @__PURE__ */ g(r, {
217
+ children: /* @__PURE__ */ h(r, {
203
218
  tone: "warning",
204
219
  headingLevel: 2,
205
- title: O("bigconsole.pipelines.view.notFoundTitle", "Pipeline not found"),
206
- description: O("bigconsole.pipelines.view.notFoundDescription", "The pipeline you're looking for doesn't exist or has been deleted."),
207
- icon: /* @__PURE__ */ g(T, { className: "h-icon-sm w-icon-sm" }),
208
- actions: /* @__PURE__ */ g(m, {
220
+ title: T("bigconsole.pipelines.view.notFoundTitle", "Pipeline not found"),
221
+ description: T("bigconsole.pipelines.view.notFoundDescription", "The pipeline you're looking for doesn't exist or has been deleted."),
222
+ icon: /* @__PURE__ */ h(S, { className: "h-icon-sm w-icon-sm" }),
223
+ actions: /* @__PURE__ */ h(p, {
209
224
  onClick: X,
210
- className: y,
211
- children: O("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
225
+ className: v,
226
+ children: T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
212
227
  }),
213
228
  "data-testid": "pipeline-not-found"
214
229
  })
215
230
  });
216
- let Q = I.stages?.length ?? 0, $ = B?.status === "completed", be = /* @__PURE__ */ g(r, {
217
- emphasis: V ? "standard" : "primary",
231
+ let Q = M.stages?.length ?? 0, $ = F?.status === "completed", we = /* @__PURE__ */ h(r, {
232
+ emphasis: B ? "standard" : "primary",
218
233
  headingLevel: 2,
219
- title: O("bigconsole.pipelines.view.stagesHeading", "Pipeline Stages ({{count}})", { count: Q }),
234
+ title: T("bigconsole.pipelines.view.stagesHeading", "Pipeline Stages ({{count}})", { count: Q }),
220
235
  description: "Data flows top to bottom — each stage reads its input key and writes an output key for the next one.",
221
236
  "data-testid": "pipeline-stages",
222
- children: Q === 0 ? /* @__PURE__ */ g(h, {
237
+ children: Q === 0 ? /* @__PURE__ */ h(se, {
223
238
  illustration: "empty-generic",
224
- title: O("bigconsole.pipelines.view.noStagesTitle", "No stages defined"),
225
- description: O("bigconsole.pipelines.view.noStagesDescription", "Edit the pipeline to add parser stages."),
226
- action: /* @__PURE__ */ _(m, {
239
+ title: T("bigconsole.pipelines.view.noStagesTitle", "No stages defined"),
240
+ description: T("bigconsole.pipelines.view.noStagesDescription", "Edit the pipeline to add parser stages."),
241
+ action: /* @__PURE__ */ g(p, {
227
242
  variant: "secondary",
228
243
  onClick: Z,
229
- disabled: !N,
230
- className: y,
231
- children: [/* @__PURE__ */ g(S, { className: "h-icon-sm w-icon-sm" }), O("bigconsole.pipelines.actions.edit", "Edit")]
244
+ disabled: !A,
245
+ className: v,
246
+ children: [/* @__PURE__ */ h(b, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.edit", "Edit")]
232
247
  })
233
- }) : /* @__PURE__ */ g("ol", {
248
+ }) : /* @__PURE__ */ h("ol", {
234
249
  className: "flex flex-col",
235
- children: (I.stages ?? []).map((e, t) => /* @__PURE__ */ _("li", {
250
+ children: (M.stages ?? []).map((e, t) => /* @__PURE__ */ g("li", {
236
251
  className: "flex min-w-0 flex-col",
237
- children: [/* @__PURE__ */ _("div", {
252
+ children: [/* @__PURE__ */ g("div", {
238
253
  "data-testid": "pipeline-stage",
239
254
  "data-enabled": e.enabled,
240
255
  className: `min-w-0 rounded-card border bg-bg-sunken p-4 ${e.enabled ? "border-[var(--color-border-subtle)]" : "border-dashed border-[var(--color-border-strong)]"}`,
241
256
  children: [
242
- /* @__PURE__ */ _("div", {
257
+ /* @__PURE__ */ g("div", {
243
258
  className: "flex flex-wrap items-center justify-between gap-control-gap",
244
- children: [/* @__PURE__ */ _("div", {
259
+ children: [/* @__PURE__ */ g("div", {
245
260
  className: "flex min-w-0 flex-wrap items-center gap-icon-gap",
246
261
  children: [
247
- /* @__PURE__ */ g("span", {
262
+ /* @__PURE__ */ h("span", {
248
263
  "aria-hidden": "true",
249
264
  className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-pill bg-bg-surface text-xs font-semibold text-text-secondary",
250
265
  children: t + 1
251
266
  }),
252
- /* @__PURE__ */ g("h3", {
267
+ /* @__PURE__ */ h("h3", {
253
268
  className: "min-w-0 truncate text-sm font-semibold text-text-primary",
254
- children: e.parserName || O("bigconsole.pipelines.view.stageFallbackName", "Stage {{number}}", { number: t + 1 })
269
+ children: e.parserName || T("bigconsole.pipelines.view.stageFallbackName", "Stage {{number}}", { number: t + 1 })
255
270
  }),
256
- e.parserType && /* @__PURE__ */ g("span", {
271
+ e.parserType && /* @__PURE__ */ h("span", {
257
272
  className: "rounded-pill bg-bg-surface px-2 py-0.5 text-xs font-medium text-text-secondary",
258
273
  children: e.parserType.toUpperCase()
259
274
  })
260
275
  ]
261
- }), /* @__PURE__ */ _("div", {
276
+ }), /* @__PURE__ */ g("div", {
262
277
  className: "flex flex-wrap items-center gap-icon-gap",
263
- children: [/* @__PURE__ */ g(de, { handling: e.onError }), !e.enabled && /* @__PURE__ */ g("span", {
278
+ children: [/* @__PURE__ */ h(me, { handling: e.onError }), !e.enabled && /* @__PURE__ */ h("span", {
264
279
  className: "rounded-pill border border-[var(--color-border-strong)] px-2 py-0.5 text-xs font-medium text-text-secondary",
265
- children: O("bigconsole.pipelines.view.stageDisabled", "Disabled")
280
+ children: T("bigconsole.pipelines.view.stageDisabled", "Disabled")
266
281
  })]
267
282
  })]
268
283
  }),
269
- /* @__PURE__ */ _("div", {
284
+ /* @__PURE__ */ g("div", {
270
285
  className: "mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-text-secondary",
271
286
  children: [
272
- /* @__PURE__ */ g("span", {
287
+ /* @__PURE__ */ h("span", {
273
288
  className: "text-text-muted",
274
289
  children: "Reads"
275
290
  }),
276
- /* @__PURE__ */ g("code", {
277
- className: b,
291
+ /* @__PURE__ */ h("code", {
292
+ className: y,
278
293
  children: e.inputKey
279
294
  }),
280
- /* @__PURE__ */ g(E, { className: "h-3 w-3 shrink-0" }),
281
- /* @__PURE__ */ g("span", {
295
+ /* @__PURE__ */ h(C, { className: "h-3 w-3 shrink-0" }),
296
+ /* @__PURE__ */ h("span", {
282
297
  className: "text-text-muted",
283
298
  children: "writes"
284
299
  }),
285
- /* @__PURE__ */ g("code", {
286
- className: b,
300
+ /* @__PURE__ */ h("code", {
301
+ className: y,
287
302
  children: e.outputKey
288
303
  })
289
304
  ]
290
305
  }),
291
- e.description && /* @__PURE__ */ g("p", {
306
+ e.description && /* @__PURE__ */ h("p", {
292
307
  className: "mt-2 text-xs text-text-secondary",
293
308
  children: e.description
294
309
  }),
295
- e.parserId && /* @__PURE__ */ g("button", {
310
+ e.parserId && /* @__PURE__ */ h("button", {
296
311
  type: "button",
297
- onClick: () => ve(e.parserId),
312
+ onClick: () => Se(e.parserId),
298
313
  className: "mt-2 rounded-button text-xs text-text-link 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",
299
- children: O("bigconsole.pipelines.view.viewParser", "View Parser")
314
+ children: T("bigconsole.pipelines.view.viewParser", "View Parser")
300
315
  })
301
316
  ]
302
- }), t < Q - 1 && /* @__PURE__ */ g("span", {
317
+ }), t < Q - 1 && /* @__PURE__ */ h("span", {
303
318
  "aria-hidden": "true",
304
319
  className: "flex justify-center py-1",
305
- children: /* @__PURE__ */ g(E, { className: "h-icon-sm w-icon-sm rotate-90 text-text-muted" })
320
+ children: /* @__PURE__ */ h(C, { className: "h-icon-sm w-icon-sm rotate-90 text-text-muted" })
306
321
  })]
307
322
  }, e.id))
308
323
  })
309
- }), xe = V ? /* @__PURE__ */ g(r, {
324
+ }), Te = B ? /* @__PURE__ */ h(r, {
310
325
  id: "pipeline-test-panel",
311
326
  emphasis: "primary",
312
327
  headingLevel: 2,
313
- title: O("bigconsole.pipelines.view.testPanelHeading", "Test Pipeline"),
328
+ title: T("bigconsole.pipelines.view.testPanelHeading", "Test Pipeline"),
314
329
  description: "Run sample input through every enabled stage. Nothing is written to the connected sink.",
315
- actions: /* @__PURE__ */ _(m, {
316
- onClick: ye,
317
- disabled: G || !F,
318
- className: y,
319
- children: [/* @__PURE__ */ g(w, { className: "h-icon-sm w-icon-sm" }), G ? O("bigconsole.pipelines.view.testRunning", "Running...") : O("bigconsole.pipelines.view.runTest", "Run Test")]
330
+ actions: /* @__PURE__ */ g(p, {
331
+ onClick: Ce,
332
+ disabled: W || !j,
333
+ className: v,
334
+ children: [/* @__PURE__ */ h(x, { className: "h-icon-sm w-icon-sm" }), W ? T("bigconsole.pipelines.view.testRunning", "Running...") : T("bigconsole.pipelines.view.runTest", "Run Test")]
320
335
  }),
321
336
  "data-testid": "pipeline-test-panel",
322
- children: /* @__PURE__ */ _("div", {
337
+ children: /* @__PURE__ */ g("div", {
323
338
  className: "flex flex-col gap-form-gap",
324
- children: [/* @__PURE__ */ _("div", {
339
+ children: [/* @__PURE__ */ g("div", {
325
340
  className: "min-w-0",
326
- children: [/* @__PURE__ */ g("label", {
327
- htmlFor: A,
341
+ children: [/* @__PURE__ */ h("label", {
342
+ htmlFor: E,
328
343
  className: "mb-1 block text-sm font-medium text-text-primary",
329
- children: O("bigconsole.pipelines.view.inputJsonLabel", "Input JSON")
330
- }), /* @__PURE__ */ g("textarea", {
331
- id: A,
332
- value: R,
333
- onChange: (e) => z(e.target.value),
344
+ children: T("bigconsole.pipelines.view.inputJsonLabel", "Input JSON")
345
+ }), /* @__PURE__ */ h("textarea", {
346
+ id: E,
347
+ value: P,
348
+ onChange: (e) => _e(e.target.value),
334
349
  spellCheck: !1,
335
350
  className: `min-h-32 w-full resize-y rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2 font-mono text-sm text-text-primary ${n}`,
336
351
  placeholder: "{\"key\": \"value\"}"
337
352
  })]
338
- }), B && /* @__PURE__ */ g(r, {
353
+ }), F && /* @__PURE__ */ h(r, {
339
354
  tone: $ ? "success" : "danger",
340
355
  headingLevel: 3,
341
- title: $ ? O("bigconsole.pipelines.view.testPassed", "Test Passed") : O("bigconsole.pipelines.view.testFailed", "Test Failed"),
342
- icon: g($ ? ue : T, { className: "h-icon-sm w-icon-sm" }),
343
- meta: B.totalExecutionTimeMs ? /* @__PURE__ */ _("span", {
344
- className: le,
345
- children: [B.totalExecutionTimeMs, "ms"]
356
+ title: $ ? T("bigconsole.pipelines.view.testPassed", "Test Passed") : T("bigconsole.pipelines.view.testFailed", "Test Failed"),
357
+ icon: h($ ? pe : S, { className: "h-icon-sm w-icon-sm" }),
358
+ meta: F.totalExecutionTimeMs ? /* @__PURE__ */ g("span", {
359
+ className: ue,
360
+ children: [F.totalExecutionTimeMs, "ms"]
346
361
  }) : null,
347
362
  "data-testid": "pipeline-test-result",
348
- children: /* @__PURE__ */ _("div", {
363
+ children: /* @__PURE__ */ g("div", {
349
364
  className: "flex flex-col gap-form-gap",
350
- children: [/* @__PURE__ */ _("div", {
365
+ children: [/* @__PURE__ */ g("div", {
351
366
  className: "min-w-0",
352
- children: [/* @__PURE__ */ g("h4", {
367
+ children: [/* @__PURE__ */ h("h4", {
353
368
  className: "mb-1 text-sm font-medium text-text-primary",
354
- children: O("bigconsole.pipelines.view.outputLabel", "Output")
355
- }), /* @__PURE__ */ g("pre", {
369
+ children: T("bigconsole.pipelines.view.outputLabel", "Output")
370
+ }), /* @__PURE__ */ h("pre", {
356
371
  className: "max-h-64 w-full overflow-auto rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas p-3 font-mono text-xs text-text-primary",
357
- children: JSON.stringify(B.outputData, null, 2) || "null"
372
+ children: JSON.stringify(F.outputData, null, 2) || "null"
358
373
  })]
359
- }), B.error && /* @__PURE__ */ _("div", {
374
+ }), F.error && /* @__PURE__ */ g("div", {
360
375
  className: "min-w-0",
361
- children: [/* @__PURE__ */ g("h4", {
376
+ children: [/* @__PURE__ */ h("h4", {
362
377
  className: "mb-1 text-sm font-medium text-status-error-text",
363
- children: O("bigconsole.pipelines.view.errorLabel", "Error")
364
- }), /* @__PURE__ */ g("pre", {
378
+ children: T("bigconsole.pipelines.view.errorLabel", "Error")
379
+ }), /* @__PURE__ */ h("pre", {
365
380
  className: "max-h-64 w-full overflow-auto rounded-input border border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] p-3 font-mono text-xs text-status-error-text",
366
- children: B.error
381
+ children: F.error
367
382
  })]
368
383
  })]
369
384
  })
370
385
  })]
371
386
  })
372
387
  }) : null;
373
- return /* @__PURE__ */ _("div", {
388
+ return /* @__PURE__ */ g("div", {
374
389
  className: "p-card-padding",
375
- children: [/* @__PURE__ */ _(i, { children: [
376
- /* @__PURE__ */ _("header", {
390
+ children: [/* @__PURE__ */ g(i, { children: [
391
+ /* @__PURE__ */ g("header", {
377
392
  className: "flex flex-col gap-form-gap sm:flex-row sm:items-start sm:justify-between",
378
- children: [/* @__PURE__ */ _("div", {
393
+ children: [/* @__PURE__ */ g("div", {
379
394
  className: "flex min-w-0 flex-col gap-control-gap",
380
395
  children: [
381
- /* @__PURE__ */ _(m, {
396
+ /* @__PURE__ */ g(p, {
382
397
  variant: "ghost",
383
398
  size: "sm",
384
399
  onClick: X,
385
400
  className: "w-fit",
386
- children: [/* @__PURE__ */ g(x, { className: "h-icon-sm w-icon-sm" }), O("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")]
401
+ children: [/* @__PURE__ */ h(de, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")]
387
402
  }),
388
- /* @__PURE__ */ _("div", {
403
+ /* @__PURE__ */ g("div", {
389
404
  className: "flex flex-wrap items-center gap-icon-gap",
390
- children: [/* @__PURE__ */ g("h1", {
405
+ children: [/* @__PURE__ */ h("h1", {
391
406
  className: "min-w-0 break-words text-2xl font-bold leading-tight text-text-primary",
392
- children: I.name
393
- }), /* @__PURE__ */ g(c, { status: I.status })]
407
+ children: M.name
408
+ }), /* @__PURE__ */ h(c, { status: M.status })]
394
409
  }),
395
- I.description && /* @__PURE__ */ g("p", {
410
+ M.description && /* @__PURE__ */ h("p", {
396
411
  className: "text-sm text-text-secondary",
397
- children: I.description
412
+ children: M.description
398
413
  })
399
414
  ]
400
- }), /* @__PURE__ */ _("div", {
415
+ }), /* @__PURE__ */ g("div", {
401
416
  className: "flex flex-wrap items-center gap-control-gap",
402
417
  children: [
403
- /* @__PURE__ */ _(m, {
404
- onClick: () => H(!V),
405
- disabled: !F,
406
- "aria-expanded": V,
418
+ /* @__PURE__ */ g(p, {
419
+ onClick: () => V(!B),
420
+ disabled: !j,
421
+ "aria-expanded": B,
407
422
  "aria-controls": "pipeline-test-panel",
408
- className: y,
409
- children: [/* @__PURE__ */ g(w, { className: "h-icon-sm w-icon-sm" }), O("bigconsole.pipelines.actions.test", "Test")]
423
+ className: v,
424
+ children: [/* @__PURE__ */ h(x, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.test", "Test")]
410
425
  }),
411
- /* @__PURE__ */ _(m, {
426
+ /* @__PURE__ */ g(p, {
412
427
  variant: "secondary",
413
428
  onClick: Z,
414
- disabled: !N,
415
- className: y,
416
- children: [/* @__PURE__ */ g(S, { className: "h-icon-sm w-icon-sm" }), O("bigconsole.pipelines.actions.edit", "Edit")]
429
+ disabled: !A,
430
+ className: v,
431
+ children: [/* @__PURE__ */ h(b, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.edit", "Edit")]
417
432
  }),
418
- P && /* @__PURE__ */ _(m, {
433
+ ge && /* @__PURE__ */ g(p, {
419
434
  variant: "destructive",
420
- onClick: ge,
421
- className: y,
422
- children: [/* @__PURE__ */ g(C, { className: "h-icon-sm w-icon-sm" }), O("bigconsole.pipelines.actions.delete", "Delete")]
435
+ onClick: be,
436
+ className: v,
437
+ children: [/* @__PURE__ */ h(fe, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.delete", "Delete")]
423
438
  })
424
439
  ]
425
440
  })]
426
441
  }),
427
- /* @__PURE__ */ g(se, {
442
+ /* @__PURE__ */ h(m, {
428
443
  className: "max-w-[75ch]",
429
- children: O("bigconsole.pipelines.view.purpose", "A pipeline chains parsers and a data sink into a repeatable flow. Review its stages here, test it with sample input to confirm the output, then edit the stages or run it to process real data into the connected sink.")
444
+ children: T("bigconsole.pipelines.view.purpose", "A pipeline chains parsers and a data sink into a repeatable flow. Review its stages here, test it with sample input to confirm the output, then edit the stages or run it to process real data into the connected sink.")
430
445
  }),
431
- /* @__PURE__ */ g(oe, {
446
+ /* @__PURE__ */ h(ce, {
432
447
  storageKey: "bigconsole-pipeline-view",
433
448
  steps: [
434
- ...F ? [{
449
+ ...j ? [{
435
450
  id: "test",
436
- label: O("bigconsole.pipelines.view.nextStepTestLabel", "Test with sample input"),
437
- description: O("bigconsole.pipelines.view.nextStepTestDescription", "Run the pipeline against a sample to verify each stage."),
438
- onClick: () => H(!0)
451
+ label: T("bigconsole.pipelines.view.nextStepTestLabel", "Test with sample input"),
452
+ description: T("bigconsole.pipelines.view.nextStepTestDescription", "Run the pipeline against a sample to verify each stage."),
453
+ onClick: () => V(!0)
439
454
  }] : [],
440
- ...N ? [{
455
+ ...A ? [{
441
456
  id: "edit",
442
- label: O("bigconsole.pipelines.view.nextStepEditLabel", "Edit the stages"),
443
- description: O("bigconsole.pipelines.view.nextStepEditDescription", "Add, reorder, or configure the parsers in this pipeline."),
457
+ label: T("bigconsole.pipelines.view.nextStepEditLabel", "Edit the stages"),
458
+ description: T("bigconsole.pipelines.view.nextStepEditDescription", "Add, reorder, or configure the parsers in this pipeline."),
444
459
  onClick: Z
445
460
  }] : [],
446
461
  {
447
462
  id: "sinks",
448
- label: O("bigconsole.pipelines.view.nextStepSinksLabel", "Review the target data sink"),
449
- description: O("bigconsole.pipelines.view.nextStepSinksDescription", "See where the processed data lands."),
450
- onClick: () => D("/datasinks")
463
+ label: T("bigconsole.pipelines.view.nextStepSinksLabel", "Review the target data sink"),
464
+ description: T("bigconsole.pipelines.view.nextStepSinksDescription", "See where the processed data lands."),
465
+ onClick: () => w("/datasinks")
451
466
  }
452
467
  ]
453
468
  }),
454
- /* @__PURE__ */ _("div", {
469
+ /* @__PURE__ */ g("div", {
455
470
  className: "grid grid-cols-1 gap-section-gap lg:grid-cols-3",
456
- children: [/* @__PURE__ */ g("div", {
471
+ children: [/* @__PURE__ */ h("div", {
457
472
  className: "min-w-0 lg:col-span-2",
458
- children: /* @__PURE__ */ _(i, { children: [xe, be] })
459
- }), /* @__PURE__ */ g("div", {
473
+ children: /* @__PURE__ */ g(i, { children: [
474
+ Te,
475
+ R && R.pipelineId === l && /* @__PURE__ */ h(r, {
476
+ emphasis: "primary",
477
+ headingLevel: 2,
478
+ title: T("bigconsole.pipelines.execution.timelineHeading", "Stage timeline"),
479
+ "data-testid": "pipeline-stage-timeline",
480
+ children: /* @__PURE__ */ g("div", {
481
+ className: "flex flex-col gap-form-gap",
482
+ children: [
483
+ /* @__PURE__ */ g("dl", {
484
+ className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2",
485
+ children: [
486
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
487
+ className: "text-xs text-text-muted",
488
+ children: T("bigconsole.pipelines.execution.runStatus", "Run status")
489
+ }), /* @__PURE__ */ h("dd", {
490
+ className: "font-medium text-text-primary",
491
+ children: R.status
492
+ })] }),
493
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
494
+ className: "text-xs text-text-muted",
495
+ children: T("bigconsole.pipelines.execution.totalDuration", "Total duration")
496
+ }), /* @__PURE__ */ h("dd", {
497
+ className: "text-text-primary",
498
+ children: R.totalExecutionTimeMs == null ? "—" : `${R.totalExecutionTimeMs} ms`
499
+ })] }),
500
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
501
+ className: "text-xs text-text-muted",
502
+ children: T("bigconsole.pipelines.execution.started", "Started")
503
+ }), /* @__PURE__ */ h("dd", {
504
+ className: "break-words text-text-primary",
505
+ children: new Date(R.startedAt).toLocaleString()
506
+ })] }),
507
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
508
+ className: "text-xs text-text-muted",
509
+ children: T("bigconsole.pipelines.execution.finished", "Finished")
510
+ }), /* @__PURE__ */ h("dd", {
511
+ className: "break-words text-text-primary",
512
+ children: R.completedAt ? new Date(R.completedAt).toLocaleString() : "—"
513
+ })] })
514
+ ]
515
+ }),
516
+ /* @__PURE__ */ h("ol", {
517
+ className: "flex flex-col gap-control-gap",
518
+ children: R.stageResults.map((e, t) => /* @__PURE__ */ g("li", {
519
+ className: "min-w-0 rounded-card border border-[var(--color-border-subtle)] bg-bg-sunken p-3",
520
+ children: [
521
+ /* @__PURE__ */ g("div", {
522
+ className: "flex flex-wrap items-center justify-between gap-control-gap",
523
+ children: [/* @__PURE__ */ g("h3", {
524
+ className: "min-w-0 break-words font-medium text-text-primary",
525
+ children: [
526
+ t + 1,
527
+ ".",
528
+ " ",
529
+ e.stageName ?? M.stages.find((t) => t.id === e.stageId)?.parserName ?? e.stageId
530
+ ]
531
+ }), /* @__PURE__ */ g("span", {
532
+ className: "text-sm text-text-secondary",
533
+ children: [
534
+ e.status,
535
+ " · ",
536
+ e.executionTimeMs,
537
+ " ms"
538
+ ]
539
+ })]
540
+ }),
541
+ e.error && /* @__PURE__ */ h("p", {
542
+ className: "mt-2 break-words text-sm text-status-error-text",
543
+ children: e.error
544
+ }),
545
+ e.output != null && /* @__PURE__ */ g("details", {
546
+ className: "mt-2",
547
+ children: [/* @__PURE__ */ h("summary", {
548
+ className: "cursor-pointer text-sm text-text-secondary",
549
+ children: T("bigconsole.pipelines.execution.stageOutput", "Stage output")
550
+ }), /* @__PURE__ */ h("pre", {
551
+ className: "mt-2 max-h-48 overflow-auto rounded-input bg-bg-canvas p-3 text-xs",
552
+ children: JSON.stringify(e.output, null, 2)
553
+ })]
554
+ })
555
+ ]
556
+ }, e.id))
557
+ }),
558
+ R.error && /* @__PURE__ */ h("p", {
559
+ role: "alert",
560
+ className: "break-words text-sm text-status-error-text",
561
+ children: R.error
562
+ })
563
+ ]
564
+ })
565
+ }),
566
+ we
567
+ ] })
568
+ }), /* @__PURE__ */ h("div", {
460
569
  className: "min-w-0",
461
- children: /* @__PURE__ */ g(i, { children: /* @__PURE__ */ g(r, {
570
+ children: /* @__PURE__ */ g(i, { children: [/* @__PURE__ */ h(r, {
571
+ headingLevel: 2,
572
+ title: T("bigconsole.pipelines.execution.historyHeading", "Previous runs"),
573
+ "data-testid": "pipeline-execution-history",
574
+ children: I.filter((e) => e.pipelineId === l).length === 0 ? /* @__PURE__ */ h("p", {
575
+ className: "text-sm text-text-secondary",
576
+ children: T("bigconsole.pipelines.execution.noHistory", "No execution history yet. Test this pipeline with sample input to inspect its stages.")
577
+ }) : /* @__PURE__ */ h("ol", {
578
+ className: "flex flex-col gap-control-gap",
579
+ children: I.filter((e) => e.pipelineId === l).map((e) => /* @__PURE__ */ h("li", { children: /* @__PURE__ */ g("button", {
580
+ type: "button",
581
+ "aria-pressed": R?.id === e.id,
582
+ onClick: () => z(e),
583
+ className: `flex w-full min-w-0 flex-col gap-1 rounded-button border border-[var(--color-border-subtle)] p-3 text-left ${n} ${R?.id === e.id ? "bg-bg-sunken" : "bg-bg-surface"}`,
584
+ children: [
585
+ /* @__PURE__ */ g("span", {
586
+ className: "flex flex-wrap justify-between gap-2 text-sm font-medium text-text-primary",
587
+ children: [/* @__PURE__ */ h("span", { children: e.status }), /* @__PURE__ */ h("span", { children: e.totalExecutionTimeMs == null ? "—" : `${e.totalExecutionTimeMs} ms` })]
588
+ }),
589
+ /* @__PURE__ */ h("span", {
590
+ className: "break-words text-xs text-text-secondary",
591
+ children: new Date(e.startedAt).toLocaleString()
592
+ }),
593
+ /* @__PURE__ */ h("span", {
594
+ className: "truncate font-mono text-xs text-text-muted",
595
+ title: e.id,
596
+ children: e.id
597
+ })
598
+ ]
599
+ }) }, e.id))
600
+ })
601
+ }), /* @__PURE__ */ h(r, {
462
602
  emphasis: "muted",
463
603
  headingLevel: 2,
464
- title: O("bigconsole.pipelines.view.detailsHeading", "Details"),
604
+ title: T("bigconsole.pipelines.view.detailsHeading", "Details"),
465
605
  "data-testid": "pipeline-details",
466
- children: /* @__PURE__ */ _("dl", {
606
+ children: /* @__PURE__ */ g("dl", {
467
607
  className: "flex flex-col gap-form-gap text-sm",
468
- children: [/* @__PURE__ */ _("div", {
608
+ children: [/* @__PURE__ */ g("div", {
469
609
  className: "flex flex-col gap-3",
470
610
  children: [
471
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
611
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
472
612
  className: "text-xs text-text-muted",
473
- children: O("bigconsole.pipelines.view.detailStatus", "Status")
474
- }), /* @__PURE__ */ g("dd", {
613
+ children: T("bigconsole.pipelines.view.detailStatus", "Status")
614
+ }), /* @__PURE__ */ h("dd", {
475
615
  className: "mt-1",
476
- children: /* @__PURE__ */ g(c, {
477
- status: I.status,
616
+ children: /* @__PURE__ */ h(c, {
617
+ status: M.status,
478
618
  size: "sm"
479
619
  })
480
620
  })] }),
481
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
621
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
482
622
  className: "text-xs text-text-muted",
483
- children: O("bigconsole.pipelines.view.detailStages", "Stages")
484
- }), /* @__PURE__ */ g("dd", {
623
+ children: T("bigconsole.pipelines.view.detailStages", "Stages")
624
+ }), /* @__PURE__ */ h("dd", {
485
625
  className: "text-text-primary",
486
626
  children: Q
487
627
  })] }),
488
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
628
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
489
629
  className: "text-xs text-text-muted",
490
- children: O("bigconsole.pipelines.view.detailLastExecuted", "Last Executed")
491
- }), /* @__PURE__ */ g("dd", {
630
+ children: T("bigconsole.pipelines.view.detailLastExecuted", "Last Executed")
631
+ }), /* @__PURE__ */ h("dd", {
492
632
  className: "break-words text-text-primary",
493
- children: I.lastExecutedAt ? new Date(I.lastExecutedAt).toLocaleString(void 0, {
633
+ children: M.lastExecutedAt ? new Date(M.lastExecutedAt).toLocaleString(void 0, {
494
634
  dateStyle: "medium",
495
635
  timeStyle: "short"
496
- }) : O("bigconsole.pipelines.view.detailNever", "Never")
636
+ }) : T("bigconsole.pipelines.view.detailNever", "Never")
497
637
  })] })
498
638
  ]
499
- }), /* @__PURE__ */ _("div", {
639
+ }), /* @__PURE__ */ g("div", {
500
640
  className: "flex flex-col gap-3 border-t border-[var(--color-border-subtle)] pt-form-gap",
501
641
  children: [
502
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
642
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
503
643
  className: "text-xs text-text-muted",
504
- children: O("bigconsole.pipelines.view.detailVersion", "Version")
505
- }), /* @__PURE__ */ g("dd", {
644
+ children: T("bigconsole.pipelines.view.detailVersion", "Version")
645
+ }), /* @__PURE__ */ h("dd", {
506
646
  className: "text-text-primary",
507
- children: I.version
647
+ children: M.version
508
648
  })] }),
509
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
649
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
510
650
  className: "text-xs text-text-muted",
511
- children: O("bigconsole.pipelines.view.detailCreated", "Created")
512
- }), /* @__PURE__ */ g("dd", {
651
+ children: T("bigconsole.pipelines.view.detailCreated", "Created")
652
+ }), /* @__PURE__ */ h("dd", {
513
653
  className: "break-words text-text-primary",
514
- children: new Date(I.createdAt).toLocaleString(void 0, {
654
+ children: new Date(M.createdAt).toLocaleString(void 0, {
515
655
  dateStyle: "medium",
516
656
  timeStyle: "short"
517
657
  })
518
658
  })] }),
519
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
659
+ /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
520
660
  className: "text-xs text-text-muted",
521
- children: O("bigconsole.pipelines.view.detailUpdated", "Updated")
522
- }), /* @__PURE__ */ g("dd", {
661
+ children: T("bigconsole.pipelines.view.detailUpdated", "Updated")
662
+ }), /* @__PURE__ */ h("dd", {
523
663
  className: "break-words text-text-primary",
524
- children: new Date(I.updatedAt).toLocaleString(void 0, {
664
+ children: new Date(M.updatedAt).toLocaleString(void 0, {
525
665
  dateStyle: "medium",
526
666
  timeStyle: "short"
527
667
  })
@@ -529,18 +669,18 @@ var y = "min-h-[var(--size-controlHeight-md)]", le = "rounded-pill bg-bg-sunken
529
669
  ]
530
670
  })]
531
671
  })
532
- }) })
672
+ })] })
533
673
  })]
534
674
  })
535
- ] }), I && /* @__PURE__ */ g(te, {
536
- pipeline: I,
537
- isOpen: he,
538
- onClose: W,
539
- onConfirm: _e
675
+ ] }), M && /* @__PURE__ */ h(te, {
676
+ pipeline: M,
677
+ isOpen: ye,
678
+ onClose: U,
679
+ onConfirm: xe
540
680
  })]
541
681
  });
542
682
  });
543
683
  //#endregion
544
- export { D as PipelineViewPage, D as default };
684
+ export { w as PipelineViewPage, w as default };
545
685
 
546
686
  //# sourceMappingURL=PipelineViewPage.js.map