@burdenoff/microfe-bigconsole 2026.805.2 → 2026.812.1

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