@burdenoff/microfe-bigconsole 2026.805.3 → 2026.812.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +118 -106
  2. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  3. package/dist/bigconsole/components/DrilldownModal.js +54 -50
  4. package/dist/bigconsole/components/DrilldownModal.js.map +1 -1
  5. package/dist/bigconsole/components/builder/BuilderCanvas.js +2 -2
  6. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +1 -1
  7. package/dist/bigconsole/components/builder/BuilderTopbar.js +3 -3
  8. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +1 -1
  9. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +24 -25
  10. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +1 -1
  11. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +40 -29
  12. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +1 -1
  13. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +135 -97
  14. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  15. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +58 -44
  16. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +1 -1
  17. package/dist/bigconsole/components/common/Section.js +70 -0
  18. package/dist/bigconsole/components/common/Section.js.map +1 -0
  19. package/dist/bigconsole/components/common/index.js +2 -0
  20. package/dist/bigconsole/components/common/sectionStyles.js +42 -0
  21. package/dist/bigconsole/components/common/sectionStyles.js.map +1 -0
  22. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +209 -193
  23. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +213 -231
  25. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  26. package/dist/bigconsole/components/dashboard/DashboardGrid.js +12 -18
  27. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -1
  28. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +109 -102
  29. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  30. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +81 -70
  31. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  32. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +125 -159
  33. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -1
  34. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +25 -23
  35. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  36. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +3 -3
  37. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  38. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +5 -3
  39. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  40. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +170 -284
  41. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  42. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +147 -151
  43. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  44. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +45 -53
  45. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +1 -1
  46. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +157 -148
  47. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
  48. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +17 -8
  49. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  50. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -95
  51. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  52. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +20 -18
  53. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +1 -1
  54. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +26 -58
  55. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +1 -1
  56. package/dist/bigconsole/components/dashboard/WidgetPalette.js +307 -231
  57. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  58. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +29 -29
  59. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  60. package/dist/bigconsole/components/datasink/DataSinkCard.js +78 -79
  61. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  62. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +33 -34
  63. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +1 -1
  64. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +79 -56
  65. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  66. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +75 -65
  67. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  68. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +1 -1
  69. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  70. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +20 -19
  71. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +1 -1
  72. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +127 -171
  73. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +1 -1
  74. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +263 -243
  75. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  76. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +65 -66
  77. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +1 -1
  78. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +121 -127
  79. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +1 -1
  80. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +33 -26
  81. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  82. package/dist/bigconsole/components/datasink/SetupStateBadge.js +3 -3
  83. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +1 -1
  84. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +95 -95
  85. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +1 -1
  86. package/dist/bigconsole/components/parser/DataSinkSelector.js +154 -123
  87. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  88. package/dist/bigconsole/components/parser/ExpressionEditor.js +3 -3
  89. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +1 -1
  90. package/dist/bigconsole/components/parser/ImportParserDialog.js +235 -275
  91. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  92. package/dist/bigconsole/components/parser/ParserCard.js +133 -114
  93. package/dist/bigconsole/components/parser/ParserCard.js.map +1 -1
  94. package/dist/bigconsole/components/parser/ParserSelector.js +191 -174
  95. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  96. package/dist/bigconsole/components/parser/ParserStatusBadge.js +2 -2
  97. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +1 -1
  98. package/dist/bigconsole/components/parser/ParserTypeBadge.js +4 -4
  99. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +1 -1
  100. package/dist/bigconsole/components/pipeline/PipelineCard.js +134 -89
  101. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -1
  102. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +77 -64
  103. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +1 -1
  104. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +7 -10
  105. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +1 -1
  106. package/dist/bigconsole/components/preview/AiPreviewContent.js +31 -32
  107. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -1
  108. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +152 -106
  109. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  110. package/dist/bigconsole/components/preview/AiPreviewPanel.js +193 -152
  111. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  112. package/dist/bigconsole/components/preview/previewShared.js +41 -23
  113. package/dist/bigconsole/components/preview/previewShared.js.map +1 -1
  114. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +342 -308
  115. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  116. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +262 -238
  117. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  118. package/dist/bigconsole/components/widgets/PropertiesPanel.js +783 -867
  119. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  120. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +7 -5
  121. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +1 -1
  122. package/dist/bigconsole/components/widgets/WidgetHeader.js +7 -8
  123. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -1
  124. package/dist/bigconsole/components/widgets/WidgetRegistry.js +4 -4
  125. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +1 -1
  126. package/dist/bigconsole/components/widgets/WidgetWrapper.js +8 -7
  127. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  128. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +1 -1
  129. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +1 -1
  130. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +2 -2
  131. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  132. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +11 -5
  133. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  134. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +19 -15
  135. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  136. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +154 -102
  137. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  138. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +36 -32
  139. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +1 -1
  140. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +85 -60
  141. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  142. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +64 -35
  143. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +1 -1
  144. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +46 -45
  145. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +1 -1
  146. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +35 -24
  147. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  148. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +2 -2
  149. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +1 -1
  150. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
  151. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  152. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +153 -90
  153. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +1 -1
  154. package/dist/bigconsole/components/widgets/list/ListConfig.js +8 -2
  155. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  156. package/dist/bigconsole/components/widgets/list/ListItem.js +1 -1
  157. package/dist/bigconsole/components/widgets/list/ListItem.js.map +1 -1
  158. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +1 -1
  159. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +1 -1
  160. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +14 -4
  161. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  162. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +112 -89
  163. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -1
  164. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +21 -13
  165. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  166. package/dist/bigconsole/components/widgets/metric-card/index.js +4 -4
  167. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +3 -3
  168. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  169. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +34 -25
  170. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
  171. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +129 -114
  172. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +1 -1
  173. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +3 -3
  174. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +1 -1
  175. package/dist/bigconsole/components/widgets/states/EmptyState.js +6 -4
  176. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -1
  177. package/dist/bigconsole/components/widgets/states/ErrorState.js +7 -5
  178. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +1 -1
  179. package/dist/bigconsole/components/widgets/states/LoadingState.js +5 -4
  180. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +1 -1
  181. package/dist/bigconsole/components/widgets/table/TableConfig.js +10 -4
  182. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
  183. package/dist/bigconsole/components/widgets/table/TableHeader.js +1 -1
  184. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +1 -1
  185. package/dist/bigconsole/components/widgets/table/TableWidget.js +1 -1
  186. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +1 -1
  187. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +1 -1
  188. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +1 -1
  189. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +3 -3
  190. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +1 -1
  191. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +2 -2
  192. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +1 -1
  193. package/dist/bigconsole/components/widgets/utils/targetProgress.js +13 -0
  194. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +1 -0
  195. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +112 -85
  196. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  197. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +28 -20
  198. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  199. package/dist/bigconsole/components/workflow/WorkflowCard.js +92 -77
  200. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +1 -1
  201. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +70 -51
  202. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +1 -1
  203. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +16 -17
  204. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +1 -1
  205. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +6 -4
  206. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  207. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +360 -338
  208. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  209. package/dist/bigconsole/hooks/useModalFocusTrap.js +53 -0
  210. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +1 -0
  211. package/dist/bigconsole/pages/DashboardBuilderPage.js +209 -203
  212. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  213. package/dist/bigconsole/pages/DashboardViewPage.js +126 -120
  214. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  215. package/dist/bigconsole/pages/DashboardsPage.js +838 -800
  216. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  217. package/dist/bigconsole/pages/DataParsersPage.js +263 -315
  218. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  219. package/dist/bigconsole/pages/DataSinkBuilderPage.js +301 -341
  220. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  221. package/dist/bigconsole/pages/DataSinkViewPage.js +346 -339
  222. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  223. package/dist/bigconsole/pages/DataSinksPage.js +356 -458
  224. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  225. package/dist/bigconsole/pages/DataSourcesPage.js +7 -2
  226. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  227. package/dist/bigconsole/pages/HomePage.js +186 -193
  228. package/dist/bigconsole/pages/HomePage.js.map +1 -1
  229. package/dist/bigconsole/pages/InsightsPage.js +887 -740
  230. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  231. package/dist/bigconsole/pages/ParserBuilderPage.js +679 -637
  232. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  233. package/dist/bigconsole/pages/ParserViewPage.js +368 -342
  234. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  235. package/dist/bigconsole/pages/PipelineBuilderPage.js +537 -444
  236. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  237. package/dist/bigconsole/pages/PipelineViewPage.js +412 -377
  238. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  239. package/dist/bigconsole/pages/PipelinesPage.js +248 -298
  240. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  241. package/dist/bigconsole/pages/WidgetDemoPage.js +251 -153
  242. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  243. package/dist/bigconsole/pages/WorkflowViewPage.js +381 -371
  244. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  245. package/dist/bigconsole/pages/WorkflowsPage.js +171 -286
  246. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  247. package/package.json +1 -1
@@ -1,67 +1,69 @@
1
1
  import { useParserStore as e } from "../store/parserStore.js";
2
2
  import { useAppNavigate as ee } from "../contexts/NavigationContext.js";
3
3
  import "../contexts/index.js";
4
- import te from "../hooks/useDataSinkOperations.js";
5
- import t from "../hooks/useParserOperations.js";
6
- import { BIGCONSOLE_PERMISSIONS as n } from "../../constants/permissions.js";
7
- import r from "../components/parser/ParserTypeBadge.js";
8
- import i from "../components/parser/ParserStatusBadge.js";
9
- import { isNative as a, nativeCopyText as ne, nativeImpact as re, nativeNotify as o, nativeToast as ie } from "../../utils/nativeBridge.js";
10
- import ae from "../components/parser/ExpressionEditor.js";
11
- import oe from "../components/parser/ExportParserDialog.js";
12
- import { memo as s, useCallback as c, useEffect as l, useState as u } from "react";
13
- import { useParams as se } from "react-router";
14
- import { AccessDenied as ce, PermissionButton as d } from "@burdenoff/fe-libs/shared/components";
15
- import { usePermissions as f } from "@burdenoff/fe-libs/shared/providers/shell";
16
- import { AlertCircle as le, AlertTriangle as ue, ArrowDown as de, ArrowLeft as p, Check as fe, Copy as pe, Database as me, Download as he, Edit as ge, FileCode2 as _e, Loader2 as m, Play as h, Trash2 as ve } from "lucide-react";
17
- import { useI18n as ye } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
18
- import { Badge as g, Button as _, Card as v, CardContent as y, CardHeader as b, CardTitle as x, Dialog as be, DialogContent as xe, DialogDescription as Se, DialogFooter as Ce, DialogHeader as S, DialogTitle as C, GlassCard as w, IllustratedEmptyState as T, NextSteps as E, PagePurpose as D } from "@burdenoff/fe-libs/ui";
19
- import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
20
- import { formatDistanceToNow as j } from "date-fns";
4
+ import { Section as t, SectionStack as te } from "../components/common/Section.js";
5
+ import "../components/common/index.js";
6
+ import n from "../hooks/useDataSinkOperations.js";
7
+ import r from "../hooks/useParserOperations.js";
8
+ import { BIGCONSOLE_PERMISSIONS as i } from "../../constants/permissions.js";
9
+ import a from "../components/parser/ParserTypeBadge.js";
10
+ import o from "../components/parser/ParserStatusBadge.js";
11
+ import { isNative as s, nativeCopyText as ne, nativeImpact as c, nativeNotify as l, nativeToast as re } from "../../utils/nativeBridge.js";
12
+ import u from "../components/parser/ExpressionEditor.js";
13
+ import d from "../components/parser/ExportParserDialog.js";
14
+ import { memo as f, useCallback as p, useEffect as m, useState as h } from "react";
15
+ import { useParams as ie } from "react-router";
16
+ import { AccessDenied as ae, PermissionButton as g } from "@burdenoff/fe-libs/shared/components";
17
+ import { usePermissions as oe } from "@burdenoff/fe-libs/shared/providers/shell";
18
+ import { AlertCircle as se, AlertTriangle as ce, ArrowDown as le, ArrowLeft as _, Check as v, Copy as ue, Database as de, Download as fe, Edit as pe, FileCode2 as me, Loader2 as he, Play as ge, Trash2 as _e } from "lucide-react";
19
+ import { useI18n as ve } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
20
+ import { Badge as y, Button as b, IllustratedEmptyState as ye, NextSteps as be, PagePurpose as xe, ResponsiveDialog as x, ResponsiveDialogContent as S, ResponsiveDialogDescription as C, ResponsiveDialogFooter as w, ResponsiveDialogHeader as T, ResponsiveDialogTitle as E } from "@burdenoff/fe-libs/ui";
21
+ import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
22
+ import { formatDistanceToNow as A } from "date-fns";
21
23
  //#region src/bigconsole/pages/ParserViewPage.tsx
22
- var we = "default", M = s(function() {
23
- let { parserId: s, consoleId: M } = se(), N = ee(), { t: P } = ye(), Te = M || we, { hasPermission: Ee, isLoading: De } = f(), Oe = Ee(n.PARSER_READ), [F, I] = u(!1), [ke, L] = u(!1), [Ae, R] = u(!1), [z, B] = u(!1), [je, V] = u(!1), [H, U] = u(null), W = e((e) => s ? e.parsers.get(s) : void 0), { loading: Me, error: G, fetchParser: K, deleteParser: q, executeParser: J } = t({
24
- consoleId: Te,
24
+ var j = "default", M = f(function() {
25
+ let { parserId: f, consoleId: M } = ie(), N = ee(), { t: P } = ve(), Se = M || j, { hasPermission: Ce, isLoading: we } = oe(), Te = Ce(i.PARSER_READ), [F, I] = h(!1), [Ee, L] = h(!1), [De, R] = h(!1), [z, B] = h(!1), [Oe, V] = h(!1), [H, U] = h(null), W = e((e) => f ? e.parsers.get(f) : void 0), { loading: ke, error: G, fetchParser: K, deleteParser: q, executeParser: J } = r({
26
+ consoleId: Se,
25
27
  skipFetch: !0
26
- }), { dataSinks: Ne, fetchDataSinks: Y } = te({ skipFetch: !0 });
27
- l(() => {
28
- s && K(s);
29
- }, [s, K]), l(() => {
28
+ }), { dataSinks: Ae, fetchDataSinks: Y } = n({ skipFetch: !0 });
29
+ m(() => {
30
+ f && K(f);
31
+ }, [f, K]), m(() => {
30
32
  Y();
31
33
  }, [Y]);
32
- let X = W?.inputSinkKey ? Ne.find((e) => e.key === W.inputSinkKey) : null, Z = c(() => {
34
+ let X = W?.inputSinkKey ? Ae.find((e) => e.key === W.inputSinkKey) : null, Z = p(() => {
33
35
  N(M ? `/dashboards/${M}/parsers` : "/parsers");
34
- }, [N, M]), Q = c(() => {
35
- N(M ? `/dashboards/${M}/parsers/${s}/edit` : `/parsers/${s}/edit`);
36
+ }, [N, M]), Q = p(() => {
37
+ N(M ? `/dashboards/${M}/parsers/${f}/edit` : `/parsers/${f}/edit`);
36
38
  }, [
37
39
  N,
38
- s,
40
+ f,
39
41
  M
40
- ]), Pe = c(async () => {
41
- if (s) {
42
+ ]), je = p(async () => {
43
+ if (f) {
42
44
  I(!0);
43
45
  try {
44
- await q(s) ? (a() && o("success"), N(M ? `/dashboards/${M}/parsers` : "/parsers")) : a() && o("error");
46
+ await q(f) ? (s() && l("success"), N(M ? `/dashboards/${M}/parsers` : "/parsers")) : s() && l("error");
45
47
  } catch {
46
- a() && o("error");
48
+ s() && l("error");
47
49
  } finally {
48
50
  I(!1), L(!1);
49
51
  }
50
52
  }
51
53
  }, [
52
- s,
54
+ f,
53
55
  q,
54
56
  N,
55
57
  M
56
- ]), Fe = c(async () => {
58
+ ]), Me = p(async () => {
57
59
  if (W?.expression) try {
58
- await ne(W.expression), R(!0), a() && ie(P("bigconsole.parsers.view.expressionCopied", "Expression copied")), setTimeout(() => R(!1), 2e3);
60
+ await ne(W.expression), R(!0), s() && re(P("bigconsole.parsers.view.expressionCopied", "Expression copied")), setTimeout(() => R(!1), 2e3);
59
61
  } catch {}
60
- }, [W?.expression, P]), $ = c(async () => {
61
- if (s) {
62
+ }, [W?.expression, P]), $ = p(async () => {
63
+ if (f) {
62
64
  B(!0), U(null);
63
65
  try {
64
- let e = await J(s);
66
+ let e = await J(f);
65
67
  e && U({
66
68
  success: e.success,
67
69
  output: e.output,
@@ -80,321 +82,361 @@ var we = "default", M = s(function() {
80
82
  }
81
83
  }
82
84
  }, [
83
- s,
85
+ f,
84
86
  J,
85
87
  P
86
- ]), Ie = c(() => {
88
+ ]), Ne = p(() => {
87
89
  X && N(`/datasinks/${X.id}`);
88
- }, [N, X]), Le = c(() => {
90
+ }, [N, X]), Pe = p(() => {
89
91
  V(!0);
90
- }, []), Re = c(() => {
92
+ }, []), Fe = p(() => {
91
93
  V(!1);
92
94
  }, []);
93
- return Me && !W || De ? /* @__PURE__ */ k("div", {
95
+ if (ke && !W || we) return /* @__PURE__ */ O("div", {
94
96
  className: "flex items-center justify-center min-h-[400px]",
95
- children: /* @__PURE__ */ k(m, { className: "w-8 h-8 text-text-secondary animate-spin" })
96
- }) : Oe ? G ? /* @__PURE__ */ k("div", {
97
+ children: /* @__PURE__ */ O(he, { className: "w-8 h-8 text-text-secondary animate-spin" })
98
+ });
99
+ if (!Te) return /* @__PURE__ */ O(ae, {
100
+ title: P("bigconsole.parsers.accessDenied.title", "Access Denied"),
101
+ description: P("bigconsole.parsers.accessDenied.view", "You don't have permission to view this parser.")
102
+ });
103
+ if (G) return /* @__PURE__ */ O("div", {
104
+ className: "p-card-padding",
105
+ children: /* @__PURE__ */ O(t, {
106
+ tone: "danger",
107
+ headingLevel: 2,
108
+ title: P("bigconsole.parsers.errors.viewLoadFailed", "Failed to load Parser"),
109
+ description: "The parser could not be fetched. Go back to the list and try again.",
110
+ icon: /* @__PURE__ */ O(se, { className: "h-icon-md w-icon-md text-[var(--color-status-error-text)]" }),
111
+ actions: /* @__PURE__ */ k(b, {
112
+ onClick: Z,
113
+ variant: "secondary",
114
+ size: "sm",
115
+ children: [/* @__PURE__ */ O(_, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.goBack", "Go back")]
116
+ }),
117
+ "data-testid": "parser-load-error",
118
+ children: /* @__PURE__ */ O("p", {
119
+ className: "font-mono text-xs break-words text-text-secondary",
120
+ children: G.message
121
+ })
122
+ })
123
+ });
124
+ if (!W) return /* @__PURE__ */ O("div", {
97
125
  className: "flex items-center justify-center min-h-[400px] p-card-padding",
98
- children: /* @__PURE__ */ A("div", {
99
- className: "text-center",
100
- children: [
101
- /* @__PURE__ */ k(le, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
102
- /* @__PURE__ */ k("p", {
103
- className: "text-status-error-text text-body-sm font-medium mb-2",
104
- children: P("bigconsole.parsers.errors.viewLoadFailed", "Failed to load Parser")
105
- }),
106
- /* @__PURE__ */ k("p", {
107
- className: "text-text-tertiary text-body-xs mb-6",
108
- children: G.message
109
- }),
110
- /* @__PURE__ */ A(_, {
111
- onClick: Z,
112
- variant: "ghost",
113
- size: "sm",
114
- children: [/* @__PURE__ */ k(p, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.goBack", "Go back")]
115
- })
116
- ]
126
+ children: /* @__PURE__ */ O(ye, {
127
+ illustration: "empty-data",
128
+ title: P("bigconsole.parsers.view.notFoundTitle", "Parser not found"),
129
+ description: P("bigconsole.parsers.view.notFoundDescription", "The Parser you're looking for doesn't exist or has been deleted."),
130
+ action: /* @__PURE__ */ k(b, {
131
+ onClick: Z,
132
+ variant: "default",
133
+ size: "default",
134
+ children: [/* @__PURE__ */ O(_, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.goBackToParsers", "Go back to Parsers")]
135
+ })
117
136
  })
118
- }) : W ? /* @__PURE__ */ A("div", {
119
- className: "p-card-padding space-y-6",
137
+ });
138
+ let Ie = H !== null;
139
+ return /* @__PURE__ */ k("div", {
140
+ className: "p-card-padding",
120
141
  children: [
121
- /* @__PURE__ */ A("div", {
122
- className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",
123
- children: [/* @__PURE__ */ A("div", {
124
- className: "flex-1",
125
- children: [
126
- /* @__PURE__ */ A(_, {
127
- onClick: Z,
128
- variant: "ghost",
129
- size: "sm",
130
- className: "mb-4",
131
- children: [/* @__PURE__ */ k(p, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.view.backToParsers", "Back to Parsers")]
132
- }),
133
- /* @__PURE__ */ A("div", {
134
- className: "flex items-center gap-2 flex-wrap",
135
- children: [
136
- /* @__PURE__ */ k("h1", {
137
- className: "text-heading-h1 font-bold text-text-primary",
138
- children: W.name || P("bigconsole.parsers.view.untitled", "Untitled")
139
- }),
140
- /* @__PURE__ */ k(r, { type: W.type }),
141
- /* @__PURE__ */ k(i, { status: W.status })
142
- ]
143
- }),
144
- W.description && /* @__PURE__ */ k("p", {
145
- className: "text-body-sm text-text-secondary mt-2",
146
- children: W.description
147
- })
148
- ]
149
- }), /* @__PURE__ */ A("div", {
150
- className: "flex items-center gap-2 flex-wrap",
151
- children: [
152
- /* @__PURE__ */ k(d, {
153
- permission: n.PARSER_EXECUTE,
154
- deniedBehavior: "disable",
155
- children: /* @__PURE__ */ A(_, {
156
- onClick: $,
157
- disabled: z,
158
- variant: "secondary",
159
- size: "default",
160
- children: [/* @__PURE__ */ k(h, { className: "w-4 h-4 mr-2" }), z ? P("bigconsole.parsers.view.running", "Running...") : P("bigconsole.parsers.actions.execute", "Execute")]
142
+ /* @__PURE__ */ k(te, { children: [
143
+ /* @__PURE__ */ k("div", {
144
+ className: "flex flex-col gap-form-gap border-b border-[var(--color-border-subtle)] pb-form-gap sm:flex-row sm:items-start sm:justify-between",
145
+ children: [/* @__PURE__ */ k("div", {
146
+ className: "min-w-0 flex-1",
147
+ children: [
148
+ /* @__PURE__ */ k(b, {
149
+ onClick: Z,
150
+ variant: "ghost",
151
+ size: "sm",
152
+ className: "mb-4",
153
+ children: [/* @__PURE__ */ O(_, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.view.backToParsers", "Back to Parsers")]
154
+ }),
155
+ /* @__PURE__ */ k("div", {
156
+ className: "flex items-center gap-2 flex-wrap",
157
+ children: [
158
+ /* @__PURE__ */ O("h1", {
159
+ className: "text-2xl font-bold text-text-primary sm:text-3xl",
160
+ children: W.name || P("bigconsole.parsers.view.untitled", "Untitled")
161
+ }),
162
+ /* @__PURE__ */ O(a, { type: W.type }),
163
+ /* @__PURE__ */ O(o, { status: W.status })
164
+ ]
165
+ }),
166
+ W.description && /* @__PURE__ */ O("p", {
167
+ className: "text-sm text-text-secondary mt-2",
168
+ children: W.description
161
169
  })
162
- }),
163
- /* @__PURE__ */ A(_, {
164
- onClick: Le,
165
- variant: "secondary",
166
- size: "default",
167
- children: [/* @__PURE__ */ k(he, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.export", "Export")]
168
- }),
169
- /* @__PURE__ */ k(d, {
170
- permission: n.PARSER_UPDATE,
171
- deniedBehavior: "disable",
172
- children: /* @__PURE__ */ A(_, {
173
- onClick: Q,
170
+ ]
171
+ }), /* @__PURE__ */ k("div", {
172
+ className: "flex shrink-0 flex-wrap items-center gap-control-gap",
173
+ children: [
174
+ /* @__PURE__ */ O(g, {
175
+ permission: i.PARSER_EXECUTE,
176
+ deniedBehavior: "disable",
177
+ children: /* @__PURE__ */ k(b, {
178
+ onClick: $,
179
+ disabled: z,
180
+ variant: "default",
181
+ size: "default",
182
+ children: [/* @__PURE__ */ O(ge, { className: "w-4 h-4 mr-2" }), z ? P("bigconsole.parsers.view.running", "Running...") : P("bigconsole.parsers.actions.execute", "Execute")]
183
+ })
184
+ }),
185
+ /* @__PURE__ */ k(b, {
186
+ onClick: Pe,
174
187
  variant: "secondary",
175
188
  size: "default",
176
- children: [/* @__PURE__ */ k(ge, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.edit", "Edit")]
189
+ children: [/* @__PURE__ */ O(fe, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.export", "Export")]
190
+ }),
191
+ /* @__PURE__ */ O(g, {
192
+ permission: i.PARSER_UPDATE,
193
+ deniedBehavior: "disable",
194
+ children: /* @__PURE__ */ k(b, {
195
+ onClick: Q,
196
+ variant: "secondary",
197
+ size: "default",
198
+ children: [/* @__PURE__ */ O(pe, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.edit", "Edit")]
199
+ })
200
+ }),
201
+ /* @__PURE__ */ O(g, {
202
+ permission: i.PARSER_DELETE,
203
+ deniedBehavior: "hide",
204
+ children: /* @__PURE__ */ k(b, {
205
+ onClick: () => L(!0),
206
+ disabled: F,
207
+ variant: "destructive",
208
+ size: "default",
209
+ children: [/* @__PURE__ */ O(_e, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.delete", "Delete")]
210
+ })
177
211
  })
178
- }),
179
- /* @__PURE__ */ k(d, {
180
- permission: n.PARSER_DELETE,
181
- deniedBehavior: "hide",
182
- children: /* @__PURE__ */ A(_, {
183
- onClick: () => L(!0),
184
- disabled: F,
185
- variant: "destructive",
186
- size: "default",
187
- children: [/* @__PURE__ */ k(ve, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.delete", "Delete")]
212
+ ]
213
+ })]
214
+ }),
215
+ /* @__PURE__ */ O(xe, {
216
+ className: "max-w-[80ch]",
217
+ children: P("bigconsole.parsers.view.purpose", "A parser turns raw input into structured fields using its expression. Review or copy the expression, run it against a sample to see the output, then edit it or use it inside a pipeline to shape incoming data.")
218
+ }),
219
+ /* @__PURE__ */ k("div", {
220
+ className: "grid gap-section-gap md:grid-cols-2 lg:grid-cols-3",
221
+ children: [/* @__PURE__ */ k("div", {
222
+ className: "flex min-w-0 flex-col gap-section-gap md:col-span-2",
223
+ children: [H && /* @__PURE__ */ O(t, {
224
+ id: "parser-execution-result",
225
+ emphasis: "primary",
226
+ tone: H.success ? "success" : "danger",
227
+ headingLevel: 2,
228
+ title: P("bigconsole.parsers.view.executionResult", "Execution Result"),
229
+ description: H.success ? "Output produced by the latest run of this parser." : "The latest run did not complete. Fix the expression or the input and run again.",
230
+ meta: /* @__PURE__ */ O(y, {
231
+ variant: H.success ? "default" : "destructive",
232
+ children: H.success ? P("bigconsole.parsers.view.success", "Success") : P("bigconsole.parsers.view.failed", "Failed")
233
+ }),
234
+ actions: /* @__PURE__ */ k(y, {
235
+ variant: "secondary",
236
+ className: "text-xs",
237
+ children: [H.executionTimeMs, "ms"]
238
+ }),
239
+ "data-testid": "parser-execution-result",
240
+ children: /* @__PURE__ */ O("pre", {
241
+ className: "max-h-[300px] min-w-0 overflow-auto rounded-md bg-bg-sunken p-4 font-mono text-sm text-text-primary",
242
+ children: H.error ?? JSON.stringify(H.output, null, 2)
188
243
  })
189
- })
190
- ]
191
- })]
192
- }),
193
- /* @__PURE__ */ k(D, { children: P("bigconsole.parsers.view.purpose", "A parser turns raw input into structured fields using its expression. Review or copy the expression, run it against a sample to see the output, then edit it or use it inside a pipeline to shape incoming data.") }),
194
- /* @__PURE__ */ k(E, {
195
- storageKey: "bigconsole-parser-view",
196
- steps: [
197
- {
198
- id: "execute",
199
- label: P("bigconsole.parsers.view.nextSteps.executeLabel", "Run a test execution"),
200
- description: P("bigconsole.parsers.view.nextSteps.executeDescription", "Check the expression produces the fields you expect."),
201
- onClick: $
202
- },
203
- {
204
- id: "edit",
205
- label: P("bigconsole.parsers.view.nextSteps.editLabel", "Edit the expression"),
206
- description: P("bigconsole.parsers.view.nextSteps.editDescription", "Refine how this parser maps your input."),
207
- onClick: Q
208
- },
209
- {
210
- id: "pipeline",
211
- label: P("bigconsole.parsers.view.nextSteps.pipelineLabel", "Use it in a pipeline"),
212
- description: P("bigconsole.parsers.view.nextSteps.pipelineDescription", "Chain this parser with a data sink to process data end to end."),
213
- onClick: () => N("/pipelines")
214
- }
215
- ]
216
- }),
217
- /* @__PURE__ */ A("div", {
218
- className: "grid gap-6 lg:grid-cols-3",
219
- children: [/* @__PURE__ */ A("div", {
220
- className: "lg:col-span-2 space-y-6",
221
- children: [/* @__PURE__ */ A(w, {
222
- treatment: "glass",
223
- glow: !0,
224
- children: [/* @__PURE__ */ A(b, {
225
- className: "flex flex-row items-center justify-between space-y-0",
226
- children: [/* @__PURE__ */ A(x, {
227
- className: "flex items-center gap-2",
228
- children: [
229
- /* @__PURE__ */ k(_e, { className: "w-4 h-4 text-text-secondary" }),
230
- P("bigconsole.parsers.view.expression", "Expression"),
231
- /* @__PURE__ */ k(g, {
232
- variant: "secondary",
233
- className: "text-xs uppercase",
234
- children: W.type
235
- })
236
- ]
237
- }), /* @__PURE__ */ k(_, {
238
- onClick: Fe,
244
+ }), /* @__PURE__ */ O(t, {
245
+ emphasis: Ie ? "standard" : "primary",
246
+ headingLevel: 2,
247
+ title: P("bigconsole.parsers.view.expression", "Expression"),
248
+ description: "The JQ or JSONata program this parser runs against every input record.",
249
+ icon: /* @__PURE__ */ O(me, { className: "h-icon-sm w-icon-sm" }),
250
+ meta: /* @__PURE__ */ O(y, {
251
+ variant: "secondary",
252
+ className: "text-xs uppercase",
253
+ children: W.type
254
+ }),
255
+ actions: /* @__PURE__ */ O(b, {
256
+ onClick: Me,
239
257
  variant: "ghost",
240
258
  size: "sm",
241
- children: Ae ? /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(fe, { className: "w-3.5 h-3.5 text-status-success-text mr-2" }), P("bigconsole.parsers.view.copied", "Copied!")] }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(pe, { className: "w-3.5 h-3.5 mr-2" }), P("bigconsole.parsers.actions.copy", "Copy")] })
242
- })]
243
- }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ k(ae, {
244
- value: W.expression,
245
- type: W.type,
246
- readOnly: !0,
247
- height: "300px"
248
- }) })]
249
- }), H && /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ A(b, {
250
- className: "flex flex-row items-center justify-between space-y-0",
251
- children: [/* @__PURE__ */ A(x, {
252
- className: "flex items-center gap-2",
253
- children: [P("bigconsole.parsers.view.executionResult", "Execution Result"), /* @__PURE__ */ k(g, {
254
- variant: H.success ? "default" : "destructive",
255
- children: H.success ? P("bigconsole.parsers.view.success", "Success") : P("bigconsole.parsers.view.failed", "Failed")
256
- })]
257
- }), /* @__PURE__ */ A(g, {
258
- variant: "secondary",
259
- className: "text-xs",
260
- children: [H.executionTimeMs, "ms"]
259
+ children: De ? /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(v, { className: "w-3.5 h-3.5 text-status-success-text mr-2" }), P("bigconsole.parsers.view.copied", "Copied!")] }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(ue, { className: "w-3.5 h-3.5 mr-2" }), P("bigconsole.parsers.actions.copy", "Copy")] })
260
+ }),
261
+ "data-testid": "parser-expression",
262
+ children: /* @__PURE__ */ O(u, {
263
+ value: W.expression,
264
+ type: W.type,
265
+ readOnly: !0,
266
+ height: "clamp(180px, 40vh, 300px)"
267
+ })
261
268
  })]
262
- }), /* @__PURE__ */ k(y, { children: H.error ? /* @__PURE__ */ k("div", {
263
- className: "bg-status-error-bg/5 border border-status-error-border/20 rounded-md p-4",
264
- children: /* @__PURE__ */ k("p", {
265
- className: "text-body-sm text-status-error-text font-mono",
266
- children: H.error
267
- })
268
- }) : /* @__PURE__ */ k("pre", {
269
- className: "text-body-sm text-text-primary font-mono bg-bg-sunken rounded-md p-4 overflow-auto max-h-[300px]",
270
- children: JSON.stringify(H.output, null, 2)
271
- }) })] })]
272
- }), /* @__PURE__ */ A("div", {
273
- className: "space-y-6",
274
- children: [
275
- /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ k(b, { children: /* @__PURE__ */ k(x, { children: P("bigconsole.parsers.view.dataFlow", "Data Flow") }) }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ A("div", {
276
- className: "space-y-3",
277
- children: [
278
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
279
- className: "text-xs font-medium text-text-secondary",
280
- children: P("bigconsole.parsers.view.sourceDataSink", "Source DataSink")
281
- }), W.inputSinkKey ? /* @__PURE__ */ A("div", {
282
- className: "mt-1",
283
- children: [/* @__PURE__ */ k("p", {
284
- className: "text-body-sm text-text-primary font-mono",
285
- children: W.inputSinkKey
286
- }), X && /* @__PURE__ */ A(_, {
287
- onClick: Ie,
288
- variant: "link",
289
- size: "sm",
290
- className: "mt-1 p-0 h-auto",
291
- children: [/* @__PURE__ */ k(me, { className: "w-3 h-3 mr-1" }), P("bigconsole.parsers.view.viewDataSink", "View {{name}}", { name: X.name || P("bigconsole.parsers.view.dataSinkFallback", "DataSink") })]
292
- })]
293
- }) : /* @__PURE__ */ k("p", {
294
- className: "text-body-sm text-text-tertiary mt-1",
295
- children: P("bigconsole.parsers.view.noneConfigured", "None configured")
296
- })] }),
297
- /* @__PURE__ */ k("div", {
298
- className: "flex items-center justify-center py-1",
299
- children: /* @__PURE__ */ k(de, { className: "w-4 h-4 text-text-tertiary" })
300
- }),
301
- /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
302
- className: "text-xs font-medium text-text-secondary",
303
- children: P("bigconsole.parsers.view.outputKey", "Output Key")
304
- }), /* @__PURE__ */ k("p", {
305
- className: "text-body-sm text-text-primary font-mono mt-1",
306
- children: W.outputKey || P("bigconsole.parsers.view.notConfigured", "Not configured")
307
- })] })
308
- ]
309
- }) })] }),
310
- /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ k(b, { children: /* @__PURE__ */ k(x, { children: P("bigconsole.parsers.view.configuration", "Configuration") }) }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ A("dl", {
311
- className: "space-y-4 text-body-sm",
312
- children: [
313
- /* @__PURE__ */ A("div", {
314
- className: "flex justify-between items-center",
315
- children: [/* @__PURE__ */ k("dt", {
316
- className: "text-text-secondary",
317
- children: P("bigconsole.parsers.view.status", "Status")
318
- }), /* @__PURE__ */ k("dd", { children: /* @__PURE__ */ k(i, { status: W.status }) })]
319
- }),
320
- /* @__PURE__ */ A("div", {
321
- className: "flex justify-between items-center",
322
- children: [/* @__PURE__ */ k("dt", {
323
- className: "text-text-secondary",
324
- children: P("bigconsole.parsers.view.type", "Type")
325
- }), /* @__PURE__ */ k("dd", { children: /* @__PURE__ */ k(r, { type: W.type }) })]
326
- }),
327
- /* @__PURE__ */ A("div", {
328
- className: "flex justify-between items-center",
329
- children: [/* @__PURE__ */ k("dt", {
330
- className: "text-text-secondary",
331
- children: P("bigconsole.parsers.view.cacheTtl", "Cache TTL")
332
- }), /* @__PURE__ */ k("dd", {
333
- className: "text-text-primary font-medium",
334
- children: W.ttl ? P("bigconsole.parsers.view.ttlSeconds", "{{ttl}}s", { ttl: W.ttl }) : P("bigconsole.parsers.view.noCaching", "No caching")
335
- })]
336
- }),
337
- /* @__PURE__ */ A("div", {
338
- className: "flex justify-between items-center",
339
- children: [/* @__PURE__ */ k("dt", {
340
- className: "text-text-secondary",
341
- children: P("bigconsole.parsers.view.version", "Version")
342
- }), /* @__PURE__ */ k("dd", {
343
- className: "text-text-primary font-medium",
344
- children: W.version || 1
269
+ }), /* @__PURE__ */ k("div", {
270
+ className: "grid min-w-0 gap-section-gap md:col-span-2 md:grid-cols-2 lg:col-span-1 lg:grid-cols-1",
271
+ children: [
272
+ /* @__PURE__ */ O(t, {
273
+ headingLevel: 2,
274
+ title: P("bigconsole.parsers.view.dataFlow", "Data Flow"),
275
+ description: "Where this parser reads from and what it writes.",
276
+ "data-testid": "parser-data-flow",
277
+ children: /* @__PURE__ */ k("dl", {
278
+ className: "space-y-3",
279
+ children: [
280
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", {
281
+ className: "text-xs font-medium uppercase tracking-wide text-text-muted",
282
+ children: P("bigconsole.parsers.view.sourceDataSink", "Source DataSink")
283
+ }), W.inputSinkKey ? /* @__PURE__ */ k("dd", {
284
+ className: "mt-1",
285
+ children: [/* @__PURE__ */ O("p", {
286
+ className: "break-words font-mono text-sm font-medium text-text-primary",
287
+ children: W.inputSinkKey
288
+ }), X && /* @__PURE__ */ k(b, {
289
+ onClick: Ne,
290
+ variant: "link",
291
+ size: "sm",
292
+ className: "mt-1 p-0 h-auto",
293
+ children: [/* @__PURE__ */ O(de, { className: "w-3 h-3 mr-1" }), P("bigconsole.parsers.view.viewDataSink", "View {{name}}", { name: X.name || P("bigconsole.parsers.view.dataSinkFallback", "DataSink") })]
294
+ })]
295
+ }) : /* @__PURE__ */ O("dd", {
296
+ className: "mt-1 text-sm text-text-muted",
297
+ children: P("bigconsole.parsers.view.noneConfigured", "None configured")
298
+ })] }),
299
+ /* @__PURE__ */ O("div", {
300
+ "aria-hidden": "true",
301
+ className: "flex items-center justify-center py-1",
302
+ children: /* @__PURE__ */ O(le, { className: "w-4 h-4 text-text-muted" })
303
+ }),
304
+ /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("dt", {
305
+ className: "text-xs font-medium uppercase tracking-wide text-text-muted",
306
+ children: P("bigconsole.parsers.view.outputKey", "Output Key")
307
+ }), /* @__PURE__ */ O("dd", {
308
+ className: "mt-1 break-words font-mono text-sm font-medium text-text-primary",
309
+ children: W.outputKey || P("bigconsole.parsers.view.notConfigured", "Not configured")
310
+ })] })
311
+ ]
312
+ })
313
+ }),
314
+ /* @__PURE__ */ O(t, {
315
+ headingLevel: 2,
316
+ title: P("bigconsole.parsers.view.configuration", "Configuration"),
317
+ "data-testid": "parser-configuration",
318
+ children: /* @__PURE__ */ k("dl", {
319
+ className: "space-y-4 text-sm",
320
+ children: [
321
+ /* @__PURE__ */ k("div", {
322
+ className: "flex flex-wrap items-center justify-between gap-2",
323
+ children: [/* @__PURE__ */ O("dt", {
324
+ className: "text-text-secondary",
325
+ children: P("bigconsole.parsers.view.status", "Status")
326
+ }), /* @__PURE__ */ O("dd", { children: /* @__PURE__ */ O(o, { status: W.status }) })]
327
+ }),
328
+ /* @__PURE__ */ k("div", {
329
+ className: "flex flex-wrap items-center justify-between gap-2",
330
+ children: [/* @__PURE__ */ O("dt", {
331
+ className: "text-text-secondary",
332
+ children: P("bigconsole.parsers.view.type", "Type")
333
+ }), /* @__PURE__ */ O("dd", { children: /* @__PURE__ */ O(a, { type: W.type }) })]
334
+ }),
335
+ /* @__PURE__ */ k("div", {
336
+ className: "flex flex-wrap items-center justify-between gap-2",
337
+ children: [/* @__PURE__ */ O("dt", {
338
+ className: "text-text-secondary",
339
+ children: P("bigconsole.parsers.view.cacheTtl", "Cache TTL")
340
+ }), /* @__PURE__ */ O("dd", {
341
+ className: "text-text-primary font-medium",
342
+ children: W.ttl ? P("bigconsole.parsers.view.ttlSeconds", "{{ttl}}s", { ttl: W.ttl }) : P("bigconsole.parsers.view.noCaching", "No caching")
343
+ })]
344
+ }),
345
+ /* @__PURE__ */ k("div", {
346
+ className: "flex flex-wrap items-center justify-between gap-2",
347
+ children: [/* @__PURE__ */ O("dt", {
348
+ className: "text-text-secondary",
349
+ children: P("bigconsole.parsers.view.version", "Version")
350
+ }), /* @__PURE__ */ O("dd", {
351
+ className: "text-text-primary font-medium",
352
+ children: W.version || 1
353
+ })]
354
+ })
355
+ ]
356
+ })
357
+ }),
358
+ /* @__PURE__ */ O(t, {
359
+ emphasis: "muted",
360
+ padding: "compact",
361
+ headingLevel: 2,
362
+ title: P("bigconsole.parsers.view.timestamps", "Timestamps"),
363
+ "data-testid": "parser-history",
364
+ children: /* @__PURE__ */ k("dl", {
365
+ className: "space-y-4 text-sm",
366
+ children: [/* @__PURE__ */ k("div", {
367
+ className: "flex flex-wrap items-center justify-between gap-2",
368
+ children: [/* @__PURE__ */ O("dt", {
369
+ className: "text-text-secondary",
370
+ children: P("bigconsole.parsers.view.created", "Created")
371
+ }), /* @__PURE__ */ O("dd", {
372
+ className: "text-text-primary font-medium",
373
+ children: W.createdAt ? A(new Date(W.createdAt), { addSuffix: !0 }) : P("bigconsole.parsers.view.unknown", "Unknown")
374
+ })]
375
+ }), /* @__PURE__ */ k("div", {
376
+ className: "flex flex-wrap items-center justify-between gap-2",
377
+ children: [/* @__PURE__ */ O("dt", {
378
+ className: "text-text-secondary",
379
+ children: P("bigconsole.parsers.view.updated", "Updated")
380
+ }), /* @__PURE__ */ O("dd", {
381
+ className: "text-text-primary font-medium",
382
+ children: W.updatedAt ? A(new Date(W.updatedAt), { addSuffix: !0 }) : P("bigconsole.parsers.view.unknown", "Unknown")
383
+ })]
345
384
  })]
346
385
  })
347
- ]
348
- }) })] }),
349
- /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ k(b, { children: /* @__PURE__ */ k(x, { children: P("bigconsole.parsers.view.timestamps", "Timestamps") }) }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ A("dl", {
350
- className: "space-y-4 text-body-sm",
351
- children: [/* @__PURE__ */ A("div", {
352
- className: "flex justify-between items-center",
353
- children: [/* @__PURE__ */ k("dt", {
354
- className: "text-text-secondary",
355
- children: P("bigconsole.parsers.view.created", "Created")
356
- }), /* @__PURE__ */ k("dd", {
357
- className: "text-text-primary font-medium",
358
- children: W.createdAt ? j(new Date(W.createdAt), { addSuffix: !0 }) : P("bigconsole.parsers.view.unknown", "Unknown")
359
- })]
360
- }), /* @__PURE__ */ A("div", {
361
- className: "flex justify-between items-center",
362
- children: [/* @__PURE__ */ k("dt", {
363
- className: "text-text-secondary",
364
- children: P("bigconsole.parsers.view.updated", "Updated")
365
- }), /* @__PURE__ */ k("dd", {
366
- className: "text-text-primary font-medium",
367
- children: W.updatedAt ? j(new Date(W.updatedAt), { addSuffix: !0 }) : P("bigconsole.parsers.view.unknown", "Unknown")
368
- })]
369
- })]
370
- }) })] })
386
+ })
387
+ ]
388
+ })]
389
+ }),
390
+ /* @__PURE__ */ O(be, {
391
+ storageKey: "bigconsole-parser-view",
392
+ steps: [
393
+ {
394
+ id: "execute",
395
+ label: P("bigconsole.parsers.view.nextSteps.executeLabel", "Run a test execution"),
396
+ description: P("bigconsole.parsers.view.nextSteps.executeDescription", "Check the expression produces the fields you expect."),
397
+ onClick: $
398
+ },
399
+ {
400
+ id: "edit",
401
+ label: P("bigconsole.parsers.view.nextSteps.editLabel", "Edit the expression"),
402
+ description: P("bigconsole.parsers.view.nextSteps.editDescription", "Refine how this parser maps your input."),
403
+ onClick: Q
404
+ },
405
+ {
406
+ id: "pipeline",
407
+ label: P("bigconsole.parsers.view.nextSteps.pipelineLabel", "Use it in a pipeline"),
408
+ description: P("bigconsole.parsers.view.nextSteps.pipelineDescription", "Chain this parser with a data sink to process data end to end."),
409
+ onClick: () => N("/pipelines")
410
+ }
371
411
  ]
372
- })]
373
- }),
374
- /* @__PURE__ */ k(be, {
375
- open: ke,
412
+ })
413
+ ] }),
414
+ /* @__PURE__ */ O(x, {
415
+ open: Ee,
376
416
  onOpenChange: L,
377
- children: /* @__PURE__ */ A(xe, { children: [
378
- /* @__PURE__ */ A(S, { children: [/* @__PURE__ */ k(C, { children: P("bigconsole.parsers.view.deleteDialogTitle", "Delete Parser") }), /* @__PURE__ */ A(Se, { children: [
417
+ children: /* @__PURE__ */ k(S, { children: [
418
+ /* @__PURE__ */ k(T, { children: [/* @__PURE__ */ O(E, { children: P("bigconsole.parsers.view.deleteDialogTitle", "Delete Parser") }), /* @__PURE__ */ k(C, { children: [
379
419
  P("bigconsole.parsers.view.deleteConfirmPrefix", "Are you sure you want to delete"),
380
420
  " ",
381
- /* @__PURE__ */ k("strong", { children: W.name }),
421
+ /* @__PURE__ */ O("strong", { children: W.name }),
382
422
  P("bigconsole.parsers.view.deleteConfirmSuffix", "? This action cannot be undone.")
383
423
  ] })] }),
384
- /* @__PURE__ */ A("div", {
385
- className: "bg-status-warning-bg/10 border border-status-warning-border/20 rounded-md p-4 flex items-start gap-2",
386
- children: [/* @__PURE__ */ k(ue, { className: "w-4 h-4 text-status-warning-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ k("p", {
387
- className: "text-body-xs text-status-warning-text",
388
- children: P("bigconsole.parsers.view.deleteWarning", "Widgets and pipelines using this parser may stop working correctly after deletion.")
389
- })]
424
+ /* @__PURE__ */ O(t, {
425
+ tone: "warning",
426
+ padding: "compact",
427
+ headingLevel: 3,
428
+ title: "Check dependents first",
429
+ description: P("bigconsole.parsers.view.deleteWarning", "Widgets and pipelines using this parser may stop working correctly after deletion."),
430
+ icon: /* @__PURE__ */ O(ce, { className: "h-icon-sm w-icon-sm text-[var(--color-status-warning-text)]" }),
431
+ "data-testid": "parser-delete-warning"
390
432
  }),
391
- /* @__PURE__ */ A(Ce, { children: [/* @__PURE__ */ k(_, {
433
+ /* @__PURE__ */ k(w, { children: [/* @__PURE__ */ O(b, {
392
434
  onClick: () => L(!1),
393
435
  variant: "secondary",
394
436
  children: P("bigconsole.parsers.actions.cancel", "Cancel")
395
- }), /* @__PURE__ */ k(_, {
437
+ }), /* @__PURE__ */ O(b, {
396
438
  onClick: () => {
397
- re("medium"), Pe();
439
+ c("medium"), je();
398
440
  },
399
441
  disabled: F,
400
442
  variant: "destructive",
@@ -402,29 +444,13 @@ var we = "default", M = s(function() {
402
444
  })] })
403
445
  ] })
404
446
  }),
405
- /* @__PURE__ */ k(oe, {
406
- isOpen: je,
407
- parserId: s || null,
447
+ /* @__PURE__ */ O(d, {
448
+ isOpen: Oe,
449
+ parserId: f || null,
408
450
  parserName: W.name,
409
- onClose: Re
451
+ onClose: Fe
410
452
  })
411
453
  ]
412
- }) : /* @__PURE__ */ k("div", {
413
- className: "flex items-center justify-center min-h-[400px] p-card-padding",
414
- children: /* @__PURE__ */ k(T, {
415
- illustration: "empty-data",
416
- title: P("bigconsole.parsers.view.notFoundTitle", "Parser not found"),
417
- description: P("bigconsole.parsers.view.notFoundDescription", "The Parser you're looking for doesn't exist or has been deleted."),
418
- action: /* @__PURE__ */ A(_, {
419
- onClick: Z,
420
- variant: "default",
421
- size: "default",
422
- children: [/* @__PURE__ */ k(p, { className: "w-4 h-4 mr-2" }), P("bigconsole.parsers.actions.goBackToParsers", "Go back to Parsers")]
423
- })
424
- })
425
- }) : /* @__PURE__ */ k(ce, {
426
- title: P("bigconsole.parsers.accessDenied.title", "Access Denied"),
427
- description: P("bigconsole.parsers.accessDenied.view", "You don't have permission to view this parser.")
428
454
  });
429
455
  });
430
456
  //#endregion