@burdenoff/microfe-bigconsole 2026.805.2 → 2026.805.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +109 -113
  2. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  3. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +115 -113
  4. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  5. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +71 -62
  6. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  7. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +90 -89
  8. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  9. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +56 -54
  10. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  11. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +126 -125
  12. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  13. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +151 -150
  14. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +77 -76
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +97 -96
  18. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  19. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +172 -191
  20. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  21. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +75 -83
  22. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -1
  23. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +151 -154
  24. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  25. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +181 -190
  26. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  27. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -0
  28. package/dist/bigconsole/components/dashboard/WidgetPalette.js +110 -108
  29. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  30. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +102 -103
  31. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  32. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +36 -41
  33. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  34. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +38 -37
  35. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  36. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +113 -117
  37. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
  38. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +182 -197
  39. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  40. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +166 -168
  41. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  42. package/dist/bigconsole/components/parser/DataSinkSelector.js +87 -86
  43. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  44. package/dist/bigconsole/components/parser/ImportParserDialog.js +196 -211
  45. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  46. package/dist/bigconsole/components/parser/ParserSelector.js +130 -128
  47. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  48. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +66 -63
  49. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  50. package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -91
  51. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  52. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +222 -215
  53. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  54. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +149 -145
  55. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  56. package/dist/bigconsole/components/widgets/PropertiesPanel.js +504 -470
  57. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  58. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +44 -47
  59. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  60. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +143 -142
  61. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  62. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +101 -88
  63. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  64. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +135 -134
  65. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  66. package/dist/bigconsole/components/widgets/form/FormWidget.js +167 -159
  67. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -1
  68. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +69 -68
  69. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  70. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +64 -72
  71. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  72. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +60 -59
  73. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  74. package/dist/bigconsole/components/widgets/list/ListConfig.js +57 -56
  75. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  76. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +70 -69
  77. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  78. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +35 -34
  79. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  80. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +20 -19
  81. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -1
  82. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +178 -177
  83. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  84. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +76 -75
  85. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
  86. package/dist/bigconsole/components/widgets/table/TableConfig.js +183 -168
  87. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
  88. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +187 -180
  89. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  90. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +40 -38
  91. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  92. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +150 -148
  93. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  94. package/dist/bigconsole/pages/DashboardBuilderPage.js +181 -176
  95. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  96. package/dist/bigconsole/pages/DashboardViewPage.js +196 -192
  97. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  98. package/dist/bigconsole/pages/DashboardsPage.js +223 -219
  99. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  100. package/dist/bigconsole/pages/DataParsersPage.js +167 -170
  101. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  102. package/dist/bigconsole/pages/DataSinkBuilderPage.js +204 -189
  103. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  104. package/dist/bigconsole/pages/DataSinkViewPage.js +175 -169
  105. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  106. package/dist/bigconsole/pages/DataSourcesPage.js +8 -7
  107. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  108. package/dist/bigconsole/pages/InsightsPage.js +238 -208
  109. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  110. package/dist/bigconsole/pages/ParserBuilderPage.js +464 -412
  111. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  112. package/dist/bigconsole/pages/ParserViewPage.js +92 -90
  113. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  114. package/dist/bigconsole/pages/PipelineBuilderPage.js +221 -194
  115. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  116. package/dist/bigconsole/pages/PipelineViewPage.js +181 -184
  117. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  118. package/dist/bigconsole/pages/PipelinesPage.js +128 -127
  119. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  120. package/dist/bigconsole/pages/SettingsPage.js +177 -172
  121. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  122. package/dist/bigconsole/pages/WidgetDemoPage.js +121 -83
  123. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  124. package/dist/bigconsole/pages/WorkflowViewPage.js +199 -193
  125. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  126. package/dist/bigconsole/pages/WorkflowsPage.js +129 -128
  127. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  128. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +111 -109
  129. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -1
  130. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +127 -126
  131. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -1
  132. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +103 -103
  133. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -1
  134. package/package.json +2 -1
@@ -1,123 +1,119 @@
1
1
  import e from "../../parser/DataSinkSelector.js";
2
2
  import t from "../../parser/ParserSelector.js";
3
- import { Input as n, Label as r, Spinner as i } from "@burdenoff/fe-libs/ui";
4
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
+ import { Input as r, Label as i, Spinner as a } from "@burdenoff/fe-libs/ui";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
6
  //#region src/bigconsole/components/builder/inspector/DataBindingSection.tsx
6
- var s = {
7
- unbound: "Select a DataSink to begin",
8
- loading: "Testing parser and detecting fields…",
9
- bound: "Binding ready",
10
- no_data: "Parser returned no data",
11
- parser_error: "Parser test failed",
12
- field_mismatch: "Some mapped fields were not found"
13
- }, c = ({ consoleId: c, binding: l, dataSinkKey: u, dataPath: d, status: f, missingFields: p = [], preview: m, error: h, onDataSinkChange: g, onParserChange: _, onDataPathChange: v }) => /* @__PURE__ */ o("div", {
14
- className: "space-y-4",
15
- children: [
16
- /* @__PURE__ */ a("div", {
17
- className: "rounded-md border border-border-subtle bg-bg-sunken p-3",
18
- children: /* @__PURE__ */ a("p", {
19
- className: "text-xs text-text-secondary",
20
- children: "Connect this widget to a DataSink and Parser to display transformed data."
21
- })
22
- }),
23
- /* @__PURE__ */ o("div", {
24
- className: "space-y-2",
25
- children: [
26
- /* @__PURE__ */ a(r, { children: "DataSink" }),
27
- /* @__PURE__ */ a(e, {
28
- value: u,
29
- onChange: g,
30
- placeholder: "Select a DataSink..."
31
- }),
32
- u && /* @__PURE__ */ o("p", {
7
+ var c = ({ consoleId: c, binding: l, dataSinkKey: u, dataPath: d, status: f, missingFields: p = [], preview: m, error: h, onDataSinkChange: g, onParserChange: _, onDataPathChange: v }) => {
8
+ let { t: y } = n(), b = {
9
+ unbound: y("bigconsole.builder.dataBinding.status.unbound", "Select a DataSink to begin"),
10
+ loading: y("bigconsole.builder.dataBinding.status.loading", "Testing parser and detecting fields…"),
11
+ bound: y("bigconsole.builder.dataBinding.status.bound", "Binding ready"),
12
+ no_data: y("bigconsole.builder.dataBinding.status.noData", "Parser returned no data"),
13
+ parser_error: y("bigconsole.builder.dataBinding.status.parserError", "Parser test failed"),
14
+ field_mismatch: y("bigconsole.builder.dataBinding.status.fieldMismatch", "Some mapped fields were not found")
15
+ };
16
+ return /* @__PURE__ */ s("div", {
17
+ className: "space-y-4",
18
+ children: [
19
+ /* @__PURE__ */ o("div", {
20
+ className: "rounded-md border border-border-subtle bg-bg-sunken p-3",
21
+ children: /* @__PURE__ */ o("p", {
33
22
  className: "text-xs text-text-secondary",
34
- children: [
35
- "Key: ",
36
- u,
37
- l.source.ref && /* @__PURE__ */ o("span", {
23
+ children: y("bigconsole.builder.dataBinding.intro", "Connect this widget to a DataSink and Parser to display transformed data.")
24
+ })
25
+ }),
26
+ /* @__PURE__ */ s("div", {
27
+ className: "space-y-2",
28
+ children: [
29
+ /* @__PURE__ */ o(i, { children: y("bigconsole.builder.dataBinding.dataSinkLabel", "DataSink") }),
30
+ /* @__PURE__ */ o(e, {
31
+ value: u,
32
+ onChange: g,
33
+ placeholder: y("bigconsole.builder.dataBinding.dataSinkPlaceholder", "Select a DataSink...")
34
+ }),
35
+ u && /* @__PURE__ */ s("p", {
36
+ className: "text-xs text-text-secondary",
37
+ children: [y("bigconsole.builder.dataBinding.keyLabel", "Key: {{key}}", { key: u }), l.source.ref && /* @__PURE__ */ o("span", {
38
38
  className: "ml-2 text-text-tertiary",
39
- children: [
40
- "ID: ",
41
- l.source.ref.slice(0, 8),
42
- "..."
43
- ]
39
+ children: y("bigconsole.builder.dataBinding.idLabel", "ID: {{id}}...", { id: l.source.ref.slice(0, 8) })
40
+ })]
41
+ })
42
+ ]
43
+ }),
44
+ /* @__PURE__ */ s("div", {
45
+ className: "space-y-2",
46
+ children: [
47
+ /* @__PURE__ */ o(i, { children: y("bigconsole.builder.dataBinding.parserLabel", "Parser") }),
48
+ /* @__PURE__ */ o(t, {
49
+ consoleId: c,
50
+ value: l.parserId ?? null,
51
+ onChange: _,
52
+ filterInputSinkKey: u ?? void 0,
53
+ filterStatus: void 0,
54
+ placeholder: u ? y("bigconsole.builder.dataBinding.parserPlaceholder", "Select a parser...") : y("bigconsole.builder.dataBinding.parserPlaceholderNoSink", "Select a DataSink first..."),
55
+ disabled: !u
56
+ }),
57
+ /* @__PURE__ */ s("p", {
58
+ className: "flex items-center gap-1 text-xs text-text-secondary",
59
+ role: "status",
60
+ children: [f === "loading" && /* @__PURE__ */ o(a, { style: {
61
+ width: "12px",
62
+ height: "12px"
63
+ } }), b[f]]
64
+ }),
65
+ h && /* @__PURE__ */ o("p", {
66
+ className: "text-xs text-status-error-text",
67
+ children: h
68
+ }),
69
+ p.length > 0 && /* @__PURE__ */ o("p", {
70
+ className: "text-xs text-status-warning-text",
71
+ children: y("bigconsole.builder.dataBinding.missingFields", "Missing: {{fields}}", { fields: p.join(", ") })
72
+ })
73
+ ]
74
+ }),
75
+ l.parserId && Object.keys(l.fields).length > 0 && /* @__PURE__ */ s("div", {
76
+ className: "rounded-md border border-status-success-border bg-status-success-bg-subtle p-3",
77
+ children: [/* @__PURE__ */ o("p", {
78
+ className: "mb-2 text-xs font-medium text-status-success-text",
79
+ children: y("bigconsole.builder.dataBinding.fieldMappingsConfigured", "Field mappings configured")
80
+ }), /* @__PURE__ */ o("div", {
81
+ className: "space-y-1 text-xs text-text-secondary",
82
+ children: Object.entries(l.fields).map(([e, t]) => /* @__PURE__ */ s("p", { children: [
83
+ e,
84
+ ": ",
85
+ /* @__PURE__ */ o("code", {
86
+ className: "rounded bg-bg-sunken px-1",
87
+ children: t
44
88
  })
45
- ]
46
- })
47
- ]
48
- }),
49
- /* @__PURE__ */ o("div", {
50
- className: "space-y-2",
51
- children: [
52
- /* @__PURE__ */ a(r, { children: "Parser" }),
53
- /* @__PURE__ */ a(t, {
54
- consoleId: c,
55
- value: l.parserId ?? null,
56
- onChange: _,
57
- filterInputSinkKey: u ?? void 0,
58
- filterStatus: void 0,
59
- placeholder: u ? "Select a parser..." : "Select a DataSink first...",
60
- disabled: !u
61
- }),
62
- /* @__PURE__ */ o("p", {
63
- className: "flex items-center gap-1 text-xs text-text-secondary",
64
- role: "status",
65
- children: [f === "loading" && /* @__PURE__ */ a(i, { style: {
66
- width: "12px",
67
- height: "12px"
68
- } }), s[f]]
69
- }),
70
- h && /* @__PURE__ */ a("p", {
71
- className: "text-xs text-status-error-text",
72
- children: h
73
- }),
74
- p.length > 0 && /* @__PURE__ */ o("p", {
75
- className: "text-xs text-status-warning-text",
76
- children: ["Missing: ", p.join(", ")]
77
- })
78
- ]
79
- }),
80
- l.parserId && Object.keys(l.fields).length > 0 && /* @__PURE__ */ o("div", {
81
- className: "rounded-md border border-status-success-border bg-status-success-bg-subtle p-3",
82
- children: [/* @__PURE__ */ a("p", {
83
- className: "mb-2 text-xs font-medium text-status-success-text",
84
- children: "Field mappings configured"
85
- }), /* @__PURE__ */ a("div", {
86
- className: "space-y-1 text-xs text-text-secondary",
87
- children: Object.entries(l.fields).map(([e, t]) => /* @__PURE__ */ o("p", { children: [
88
- e,
89
- ": ",
90
- /* @__PURE__ */ a("code", {
91
- className: "rounded bg-bg-sunken px-1",
92
- children: t
89
+ ] }, e))
90
+ })]
91
+ }),
92
+ m !== void 0 && /* @__PURE__ */ s("div", {
93
+ className: "space-y-2",
94
+ children: [/* @__PURE__ */ o(i, { children: y("bigconsole.builder.dataBinding.livePreviewLabel", "Live Preview") }), /* @__PURE__ */ o("pre", {
95
+ className: "max-h-40 overflow-auto rounded-md border border-border-subtle bg-bg-sunken p-3 text-xs text-text-secondary",
96
+ children: JSON.stringify(m, null, 2)
97
+ })]
98
+ }),
99
+ /* @__PURE__ */ s("div", {
100
+ className: "space-y-2",
101
+ children: [
102
+ /* @__PURE__ */ o(i, { children: y("bigconsole.builder.dataBinding.dataPathLabel", "Data Path (Optional)") }),
103
+ /* @__PURE__ */ o(r, {
104
+ value: d ?? "",
105
+ onChange: (e) => v(e.target.value || void 0),
106
+ placeholder: y("bigconsole.builder.dataBinding.dataPathPlaceholder", "e.g., summary.totalRevenue")
107
+ }),
108
+ /* @__PURE__ */ o("p", {
109
+ className: "text-xs text-text-secondary",
110
+ children: y("bigconsole.builder.dataBinding.dataPathHelp", "Path to extract specific data from the parser output (dot notation)")
93
111
  })
94
- ] }, e))
95
- })]
96
- }),
97
- m !== void 0 && /* @__PURE__ */ o("div", {
98
- className: "space-y-2",
99
- children: [/* @__PURE__ */ a(r, { children: "Live Preview" }), /* @__PURE__ */ a("pre", {
100
- className: "max-h-40 overflow-auto rounded-md border border-border-subtle bg-bg-sunken p-3 text-xs text-text-secondary",
101
- children: JSON.stringify(m, null, 2)
102
- })]
103
- }),
104
- /* @__PURE__ */ o("div", {
105
- className: "space-y-2",
106
- children: [
107
- /* @__PURE__ */ a(r, { children: "Data Path (Optional)" }),
108
- /* @__PURE__ */ a(n, {
109
- value: d ?? "",
110
- onChange: (e) => v(e.target.value || void 0),
111
- placeholder: "e.g., summary.totalRevenue"
112
- }),
113
- /* @__PURE__ */ a("p", {
114
- className: "text-xs text-text-secondary",
115
- children: "Path to extract specific data from the parser output (dot notation)"
116
- })
117
- ]
118
- })
119
- ]
120
- });
112
+ ]
113
+ })
114
+ ]
115
+ });
116
+ };
121
117
  //#endregion
122
118
  export { c as DataBindingSection };
123
119
 
@@ -1 +1 @@
1
- {"version":3,"file":"DataBindingSection.js","names":[],"sources":["../../../../../src/bigconsole/components/builder/inspector/DataBindingSection.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { Input, Label, Spinner } from '@burdenoff/fe-libs/ui';\nimport type { WidgetBinding, WidgetBindingStatus } from '../../../types';\nimport { DataSinkSelector } from '../../parser/DataSinkSelector';\nimport { ParserSelector } from '../../parser/ParserSelector';\n\nexport interface DataBindingSectionProps {\n consoleId: string;\n binding: WidgetBinding;\n dataSinkKey: string | null;\n dataPath?: string;\n status: WidgetBindingStatus;\n missingFields?: string[];\n preview?: unknown;\n error?: string | null;\n onDataSinkChange: (key: string | null) => void;\n onParserChange: (parserId: string | null) => void;\n onDataPathChange: (path: string | undefined) => void;\n}\n\nconst STATUS_LABELS: Record<WidgetBindingStatus, string> = {\n unbound: 'Select a DataSink to begin',\n loading: 'Testing parser and detecting fields…',\n bound: 'Binding ready',\n no_data: 'Parser returned no data',\n parser_error: 'Parser test failed',\n field_mismatch: 'Some mapped fields were not found',\n};\n\nexport const DataBindingSection: FC<DataBindingSectionProps> = ({\n consoleId,\n binding,\n dataSinkKey,\n dataPath,\n status,\n missingFields = [],\n preview,\n error,\n onDataSinkChange,\n onParserChange,\n onDataPathChange,\n}) => (\n <div className=\"space-y-4\">\n <div className=\"rounded-md border border-border-subtle bg-bg-sunken p-3\">\n <p className=\"text-xs text-text-secondary\">\n Connect this widget to a DataSink and Parser to display transformed data.\n </p>\n </div>\n\n <div className=\"space-y-2\">\n <Label>DataSink</Label>\n <DataSinkSelector value={dataSinkKey} onChange={onDataSinkChange} placeholder=\"Select a DataSink...\" />\n {dataSinkKey && (\n <p className=\"text-xs text-text-secondary\">\n Key: {dataSinkKey}\n {binding.source.ref && (\n <span className=\"ml-2 text-text-tertiary\">ID: {binding.source.ref.slice(0, 8)}...</span>\n )}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <Label>Parser</Label>\n <ParserSelector\n consoleId={consoleId}\n value={binding.parserId ?? null}\n onChange={onParserChange}\n filterInputSinkKey={dataSinkKey ?? undefined}\n filterStatus={undefined}\n placeholder={dataSinkKey ? 'Select a parser...' : 'Select a DataSink first...'}\n disabled={!dataSinkKey}\n />\n <p className=\"flex items-center gap-1 text-xs text-text-secondary\" role=\"status\">\n {status === 'loading' && <Spinner style={{ width: '12px', height: '12px' }} />}\n {STATUS_LABELS[status]}\n </p>\n {error && <p className=\"text-xs text-status-error-text\">{error}</p>}\n {missingFields.length > 0 && (\n <p className=\"text-xs text-status-warning-text\">Missing: {missingFields.join(', ')}</p>\n )}\n </div>\n\n {binding.parserId && Object.keys(binding.fields).length > 0 && (\n <div className=\"rounded-md border border-status-success-border bg-status-success-bg-subtle p-3\">\n <p className=\"mb-2 text-xs font-medium text-status-success-text\">Field mappings configured</p>\n <div className=\"space-y-1 text-xs text-text-secondary\">\n {Object.entries(binding.fields).map(([name, path]) => (\n <p key={name}>\n {name}: <code className=\"rounded bg-bg-sunken px-1\">{path}</code>\n </p>\n ))}\n </div>\n </div>\n )}\n\n {preview !== undefined && (\n <div className=\"space-y-2\">\n <Label>Live Preview</Label>\n <pre className=\"max-h-40 overflow-auto rounded-md border border-border-subtle bg-bg-sunken p-3 text-xs text-text-secondary\">\n {JSON.stringify(preview, null, 2)}\n </pre>\n </div>\n )}\n\n <div className=\"space-y-2\">\n <Label>Data Path (Optional)</Label>\n <Input\n value={dataPath ?? ''}\n onChange={(event) => onDataPathChange(event.target.value || undefined)}\n placeholder=\"e.g., summary.totalRevenue\"\n />\n <p className=\"text-xs text-text-secondary\">Path to extract specific data from the parser output (dot notation)</p>\n </div>\n </div>\n);\n"],"mappings":";;;;;AAoBA,IAAM,IAAqD;CACzD,SAAS;CACT,SAAS;CACT,OAAO;CACP,SAAS;CACT,cAAc;CACd,gBAAgB;CACjB,EAEY,KAAmD,EAC9D,cACA,YACA,gBACA,aACA,WACA,mBAAgB,EAAE,EAClB,YACA,UACA,qBACA,mBACA,0BAEA,kBAAC,OAAD;CAAK,WAAU;WAAf;EACE,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,KAAD;IAAG,WAAU;cAA8B;IAEvC,CAAA;GACA,CAAA;EAEN,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAA,UAAO,YAAgB,CAAA;IACvB,kBAAC,GAAD;KAAkB,OAAO;KAAa,UAAU;KAAkB,aAAY;KAAyB,CAAA;IACtG,KACC,kBAAC,KAAD;KAAG,WAAU;eAAb;MAA2C;MACnC;MACL,EAAQ,OAAO,OACd,kBAAC,QAAD;OAAM,WAAU;iBAAhB;QAA0C;QAAK,EAAQ,OAAO,IAAI,MAAM,GAAG,EAAE;QAAC;QAAU;;MAExF;;IAEF;;EAEN,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAA,UAAO,UAAc,CAAA;IACrB,kBAAC,GAAD;KACa;KACX,OAAO,EAAQ,YAAY;KAC3B,UAAU;KACV,oBAAoB,KAAe,KAAA;KACnC,cAAc,KAAA;KACd,aAAa,IAAc,uBAAuB;KAClD,UAAU,CAAC;KACX,CAAA;IACF,kBAAC,KAAD;KAAG,WAAU;KAAsD,MAAK;eAAxE,CACG,MAAW,aAAa,kBAAC,GAAD,EAAS,OAAO;MAAE,OAAO;MAAQ,QAAQ;MAAQ,EAAI,CAAA,EAC7E,EAAc,GACb;;IACH,KAAS,kBAAC,KAAD;KAAG,WAAU;eAAkC;KAAU,CAAA;IAClE,EAAc,SAAS,KACtB,kBAAC,KAAD;KAAG,WAAU;eAAb,CAAgD,aAAU,EAAc,KAAK,KAAK,CAAK;;IAErF;;EAEL,EAAQ,YAAY,OAAO,KAAK,EAAQ,OAAO,CAAC,SAAS,KACxD,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,KAAD;IAAG,WAAU;cAAoD;IAA6B,CAAA,EAC9F,kBAAC,OAAD;IAAK,WAAU;cACZ,OAAO,QAAQ,EAAQ,OAAO,CAAC,KAAK,CAAC,GAAM,OAC1C,kBAAC,KAAD,EAAA,UAAA;KACG;KAAK;KAAE,kBAAC,QAAD;MAAM,WAAU;gBAA6B;MAAY,CAAA;KAC/D,EAAA,EAFI,EAEJ,CACJ;IACE,CAAA,CACF;;EAGP,MAAY,KAAA,KACX,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAA,UAAO,gBAAoB,CAAA,EAC3B,kBAAC,OAAD;IAAK,WAAU;cACZ,KAAK,UAAU,GAAS,MAAM,EAAE;IAC7B,CAAA,CACF;;EAGR,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAA,UAAO,wBAA4B,CAAA;IACnC,kBAAC,GAAD;KACE,OAAO,KAAY;KACnB,WAAW,MAAU,EAAiB,EAAM,OAAO,SAAS,KAAA,EAAU;KACtE,aAAY;KACZ,CAAA;IACF,kBAAC,KAAD;KAAG,WAAU;eAA8B;KAAuE,CAAA;IAC9G;;EACF"}
1
+ {"version":3,"file":"DataBindingSection.js","names":[],"sources":["../../../../../src/bigconsole/components/builder/inspector/DataBindingSection.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { Input, Label, Spinner } from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { WidgetBinding, WidgetBindingStatus } from '../../../types';\nimport { DataSinkSelector } from '../../parser/DataSinkSelector';\nimport { ParserSelector } from '../../parser/ParserSelector';\n\nexport interface DataBindingSectionProps {\n consoleId: string;\n binding: WidgetBinding;\n dataSinkKey: string | null;\n dataPath?: string;\n status: WidgetBindingStatus;\n missingFields?: string[];\n preview?: unknown;\n error?: string | null;\n onDataSinkChange: (key: string | null) => void;\n onParserChange: (parserId: string | null) => void;\n onDataPathChange: (path: string | undefined) => void;\n}\n\nexport const DataBindingSection: FC<DataBindingSectionProps> = ({\n consoleId,\n binding,\n dataSinkKey,\n dataPath,\n status,\n missingFields = [],\n preview,\n error,\n onDataSinkChange,\n onParserChange,\n onDataPathChange,\n}) => {\n const { t } = useI18n();\n\n const statusLabels: Record<WidgetBindingStatus, string> = {\n unbound: t('bigconsole.builder.dataBinding.status.unbound', 'Select a DataSink to begin'),\n loading: t('bigconsole.builder.dataBinding.status.loading', 'Testing parser and detecting fields…'),\n bound: t('bigconsole.builder.dataBinding.status.bound', 'Binding ready'),\n no_data: t('bigconsole.builder.dataBinding.status.noData', 'Parser returned no data'),\n parser_error: t('bigconsole.builder.dataBinding.status.parserError', 'Parser test failed'),\n field_mismatch: t('bigconsole.builder.dataBinding.status.fieldMismatch', 'Some mapped fields were not found'),\n };\n\n return (\n <div className=\"space-y-4\">\n <div className=\"rounded-md border border-border-subtle bg-bg-sunken p-3\">\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.builder.dataBinding.intro',\n 'Connect this widget to a DataSink and Parser to display transformed data.'\n )}\n </p>\n </div>\n\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.builder.dataBinding.dataSinkLabel', 'DataSink')}</Label>\n <DataSinkSelector\n value={dataSinkKey}\n onChange={onDataSinkChange}\n placeholder={t('bigconsole.builder.dataBinding.dataSinkPlaceholder', 'Select a DataSink...')}\n />\n {dataSinkKey && (\n <p className=\"text-xs text-text-secondary\">\n {t('bigconsole.builder.dataBinding.keyLabel', 'Key: {{key}}', { key: dataSinkKey })}\n {binding.source.ref && (\n <span className=\"ml-2 text-text-tertiary\">\n {t('bigconsole.builder.dataBinding.idLabel', 'ID: {{id}}...', {\n id: binding.source.ref.slice(0, 8),\n })}\n </span>\n )}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.builder.dataBinding.parserLabel', 'Parser')}</Label>\n <ParserSelector\n consoleId={consoleId}\n value={binding.parserId ?? null}\n onChange={onParserChange}\n filterInputSinkKey={dataSinkKey ?? undefined}\n filterStatus={undefined}\n placeholder={\n dataSinkKey\n ? t('bigconsole.builder.dataBinding.parserPlaceholder', 'Select a parser...')\n : t('bigconsole.builder.dataBinding.parserPlaceholderNoSink', 'Select a DataSink first...')\n }\n disabled={!dataSinkKey}\n />\n <p className=\"flex items-center gap-1 text-xs text-text-secondary\" role=\"status\">\n {status === 'loading' && <Spinner style={{ width: '12px', height: '12px' }} />}\n {statusLabels[status]}\n </p>\n {error && <p className=\"text-xs text-status-error-text\">{error}</p>}\n {missingFields.length > 0 && (\n <p className=\"text-xs text-status-warning-text\">\n {t('bigconsole.builder.dataBinding.missingFields', 'Missing: {{fields}}', {\n fields: missingFields.join(', '),\n })}\n </p>\n )}\n </div>\n\n {binding.parserId && Object.keys(binding.fields).length > 0 && (\n <div className=\"rounded-md border border-status-success-border bg-status-success-bg-subtle p-3\">\n <p className=\"mb-2 text-xs font-medium text-status-success-text\">\n {t('bigconsole.builder.dataBinding.fieldMappingsConfigured', 'Field mappings configured')}\n </p>\n <div className=\"space-y-1 text-xs text-text-secondary\">\n {Object.entries(binding.fields).map(([name, path]) => (\n <p key={name}>\n {name}: <code className=\"rounded bg-bg-sunken px-1\">{path}</code>\n </p>\n ))}\n </div>\n </div>\n )}\n\n {preview !== undefined && (\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.builder.dataBinding.livePreviewLabel', 'Live Preview')}</Label>\n <pre className=\"max-h-40 overflow-auto rounded-md border border-border-subtle bg-bg-sunken p-3 text-xs text-text-secondary\">\n {JSON.stringify(preview, null, 2)}\n </pre>\n </div>\n )}\n\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.builder.dataBinding.dataPathLabel', 'Data Path (Optional)')}</Label>\n <Input\n value={dataPath ?? ''}\n onChange={(event) => onDataPathChange(event.target.value || undefined)}\n placeholder={t('bigconsole.builder.dataBinding.dataPathPlaceholder', 'e.g., summary.totalRevenue')}\n />\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.builder.dataBinding.dataPathHelp',\n 'Path to extract specific data from the parser output (dot notation)'\n )}\n </p>\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;AAqBA,IAAa,KAAmD,EAC9D,cACA,YACA,gBACA,aACA,WACA,mBAAgB,EAAE,EAClB,YACA,UACA,qBACA,mBACA,0BACI;CACJ,IAAM,EAAE,SAAM,GAAS,EAEjB,IAAoD;EACxD,SAAS,EAAE,iDAAiD,6BAA6B;EACzF,SAAS,EAAE,iDAAiD,uCAAuC;EACnG,OAAO,EAAE,+CAA+C,gBAAgB;EACxE,SAAS,EAAE,gDAAgD,0BAA0B;EACrF,cAAc,EAAE,qDAAqD,qBAAqB;EAC1F,gBAAgB,EAAE,uDAAuD,oCAAoC;EAC9G;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,KAAD;KAAG,WAAU;eACV,EACC,wCACA,4EACD;KACC,CAAA;IACA,CAAA;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,gDAAgD,WAAW,EAAS,CAAA;KAC9E,kBAAC,GAAD;MACE,OAAO;MACP,UAAU;MACV,aAAa,EAAE,sDAAsD,uBAAuB;MAC5F,CAAA;KACD,KACC,kBAAC,KAAD;MAAG,WAAU;gBAAb,CACG,EAAE,2CAA2C,gBAAgB,EAAE,KAAK,GAAa,CAAC,EAClF,EAAQ,OAAO,OACd,kBAAC,QAAD;OAAM,WAAU;iBACb,EAAE,0CAA0C,iBAAiB,EAC5D,IAAI,EAAQ,OAAO,IAAI,MAAM,GAAG,EAAE,EACnC,CAAC;OACG,CAAA,CAEP;;KAEF;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,8CAA8C,SAAS,EAAS,CAAA;KAC1E,kBAAC,GAAD;MACa;MACX,OAAO,EAAQ,YAAY;MAC3B,UAAU;MACV,oBAAoB,KAAe,KAAA;MACnC,cAAc,KAAA;MACd,aACE,IACI,EAAE,oDAAoD,qBAAqB,GAC3E,EAAE,0DAA0D,6BAA6B;MAE/F,UAAU,CAAC;MACX,CAAA;KACF,kBAAC,KAAD;MAAG,WAAU;MAAsD,MAAK;gBAAxE,CACG,MAAW,aAAa,kBAAC,GAAD,EAAS,OAAO;OAAE,OAAO;OAAQ,QAAQ;OAAQ,EAAI,CAAA,EAC7E,EAAa,GACZ;;KACH,KAAS,kBAAC,KAAD;MAAG,WAAU;gBAAkC;MAAU,CAAA;KAClE,EAAc,SAAS,KACtB,kBAAC,KAAD;MAAG,WAAU;gBACV,EAAE,gDAAgD,uBAAuB,EACxE,QAAQ,EAAc,KAAK,KAAK,EACjC,CAAC;MACA,CAAA;KAEF;;GAEL,EAAQ,YAAY,OAAO,KAAK,EAAQ,OAAO,CAAC,SAAS,KACxD,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,KAAD;KAAG,WAAU;eACV,EAAE,0DAA0D,4BAA4B;KACvF,CAAA,EACJ,kBAAC,OAAD;KAAK,WAAU;eACZ,OAAO,QAAQ,EAAQ,OAAO,CAAC,KAAK,CAAC,GAAM,OAC1C,kBAAC,KAAD,EAAA,UAAA;MACG;MAAK;MAAE,kBAAC,QAAD;OAAM,WAAU;iBAA6B;OAAY,CAAA;MAC/D,EAAA,EAFI,EAEJ,CACJ;KACE,CAAA,CACF;;GAGP,MAAY,KAAA,KACX,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,mDAAmD,eAAe,EAAS,CAAA,EACrF,kBAAC,OAAD;KAAK,WAAU;eACZ,KAAK,UAAU,GAAS,MAAM,EAAE;KAC7B,CAAA,CACF;;GAGR,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,gDAAgD,uBAAuB,EAAS,CAAA;KAC1F,kBAAC,GAAD;MACE,OAAO,KAAY;MACnB,WAAW,MAAU,EAAiB,EAAM,OAAO,SAAS,KAAA,EAAU;MACtE,aAAa,EAAE,sDAAsD,6BAA6B;MAClG,CAAA;KACF,kBAAC,KAAD;MAAG,WAAU;gBACV,EACC,+CACA,sEACD;MACC,CAAA;KACA;;GACF"}