@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
@@ -4,22 +4,23 @@ import t from "../../../hooks/useWidgetOperations.js";
4
4
  import "../../../hooks/index.js";
5
5
  import { memo as n, useCallback as r, useMemo as i, useState as a } from "react";
6
6
  import { ChevronDown as o, ChevronRight as s, GripVertical as c, Settings as l } from "lucide-react";
7
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
7
+ import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
8
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
8
9
  //#region src/bigconsole/components/widgets/pivot-table/PivotTableWidget.tsx
9
- var f = [
10
+ var p = [
10
11
  "sum",
11
12
  "count",
12
13
  "average",
13
14
  "min",
14
15
  "max"
15
- ], p = {
16
+ ], m = {
16
17
  sum: (e) => e.reduce((e, t) => e + t, 0),
17
18
  count: (e) => e.length,
18
19
  average: (e) => e.length ? e.reduce((e, t) => e + t, 0) / e.length : 0,
19
20
  min: (e) => e.length ? Math.min(...e) : 0,
20
21
  max: (e) => e.length ? Math.max(...e) : 0
21
22
  };
22
- function m(e, t, n, r = 0) {
23
+ function h(e, t, n, r = 0) {
23
24
  let i = {
24
25
  key: "root",
25
26
  values: {},
@@ -30,7 +31,7 @@ function m(e, t, n, r = 0) {
30
31
  if (t.length === 0) {
31
32
  for (let t of n) {
32
33
  let n = e.map((e) => Number(e[t.field]) || 0).filter((e) => !isNaN(e));
33
- i.values[t.field] = p[t.aggregation](n);
34
+ i.values[t.field] = m[t.aggregation](n);
34
35
  }
35
36
  return i;
36
37
  }
@@ -40,22 +41,22 @@ function m(e, t, n, r = 0) {
40
41
  s.has(e) || s.set(e, []), s.get(e).push(t);
41
42
  }
42
43
  for (let [e, t] of s) {
43
- let a = m(t, o, n, r + 1);
44
+ let a = h(t, o, n, r + 1);
44
45
  a.key = e, i.children.set(e, a);
45
46
  }
46
47
  for (let t of n) {
47
48
  let n = e.map((e) => Number(e[t.field]) || 0).filter((e) => !isNaN(e));
48
- i.values[t.field] = p[t.aggregation](n);
49
+ i.values[t.field] = m[t.aggregation](n);
49
50
  }
50
51
  return i;
51
52
  }
52
- function h(e, t) {
53
+ function g(e, t) {
53
54
  if (t.length === 0) return ["Total"];
54
55
  let n = t[0], r = /* @__PURE__ */ new Set();
55
56
  for (let t of e) r.add(String(t[n] ?? "Unknown"));
56
57
  return Array.from(r).sort();
57
58
  }
58
- function g(e, t, n, r) {
59
+ function _(e, t, n, r) {
59
60
  let i = e;
60
61
  for (let [e, t] of Object.entries(r)) i = i.filter((n) => String(n[e]) === t);
61
62
  let a = /* @__PURE__ */ new Map();
@@ -63,23 +64,23 @@ function g(e, t, n, r) {
63
64
  let e = {};
64
65
  for (let t of n) {
65
66
  let n = i.map((e) => Number(e[t.field]) || 0).filter((e) => !isNaN(e));
66
- e[t.field] = p[t.aggregation](n);
67
+ e[t.field] = m[t.aggregation](n);
67
68
  }
68
69
  return a.set("Total", e), a;
69
70
  }
70
- let o = t[0], s = h(e, t);
71
+ let o = t[0], s = g(e, t);
71
72
  for (let e of s) {
72
73
  let t = i.filter((t) => String(t[o]) === e), r = {};
73
74
  for (let e of n) {
74
75
  let n = t.map((t) => Number(t[e.field]) || 0).filter((e) => !isNaN(e));
75
- r[e.field] = p[e.aggregation](n);
76
+ r[e.field] = m[e.aggregation](n);
76
77
  }
77
78
  a.set(e, r);
78
79
  }
79
80
  return a;
80
81
  }
81
- var _ = n(function({ widget: n, data: c = [], onDrilldown: f }) {
82
- let p = i(() => Array.isArray(c) ? c : [], [c]), _ = i(() => {
82
+ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
83
+ let { t: m } = u(), v = i(() => Array.isArray(c) ? c : [], [c]), y = i(() => {
83
84
  let e = {
84
85
  rows: [],
85
86
  columns: [],
@@ -95,22 +96,22 @@ var _ = n(function({ widget: n, data: c = [], onDrilldown: f }) {
95
96
  ...e,
96
97
  ...n.config
97
98
  } : e;
98
- }, [n.config]), v = e(), { updateWidget: b } = t(void 0, void 0, { skipFetch: !0 }), x = JSON.stringify({
99
- rows: _.rows,
100
- columns: _.columns,
101
- values: _.values
102
- }), [S, C] = a({
103
- rows: _.rows,
104
- columns: _.columns,
105
- values: _.values
106
- }), [w, T] = a(x);
107
- x !== w && (T(x), C({
108
- rows: _.rows,
109
- columns: _.columns,
110
- values: _.values
99
+ }, [n.config]), x = e(), { updateWidget: S } = t(void 0, void 0, { skipFetch: !0 }), C = JSON.stringify({
100
+ rows: y.rows,
101
+ columns: y.columns,
102
+ values: y.values
103
+ }), [w, T] = a({
104
+ rows: y.rows,
105
+ columns: y.columns,
106
+ values: y.values
107
+ }), [E, D] = a(C);
108
+ C !== E && (D(C), T({
109
+ rows: y.rows,
110
+ columns: y.columns,
111
+ values: y.values
111
112
  }));
112
- let { rows: E, columns: D, values: O } = S, k = r((e) => {
113
- v && b({
113
+ let { rows: O, columns: k, values: A } = w, j = r((e) => {
114
+ x && S({
114
115
  id: n.id,
115
116
  config: {
116
117
  ...n.config,
@@ -120,128 +121,128 @@ var _ = n(function({ widget: n, data: c = [], onDrilldown: f }) {
120
121
  }
121
122
  });
122
123
  }, [
123
- v,
124
- b,
124
+ x,
125
+ S,
125
126
  n.id,
126
127
  n.config
127
- ]), A = r((e) => {
128
- C(e), k(e);
129
- }, [k]), [j, M] = a(new Set(["root"])), N = i(() => m(p, E, O), [
130
- p,
131
- E,
132
- O
133
- ]), P = i(() => h(p, D), [p, D]), F = i(() => _.showColumnTotals ? g(p, D, O, {}) : null, [
134
- _.showColumnTotals,
135
- p,
136
- D,
137
- O
138
- ]), I = i(() => p.length > 0 ? Object.keys(p[0]) : [], [p]), L = i(() => {
128
+ ]), M = r((e) => {
129
+ T(e), j(e);
130
+ }, [j]), [N, P] = a(new Set(["root"])), F = i(() => h(v, O, A), [
131
+ v,
132
+ O,
133
+ A
134
+ ]), I = i(() => g(v, k), [v, k]), L = i(() => y.showColumnTotals ? _(v, k, A, {}) : null, [
135
+ y.showColumnTotals,
136
+ v,
137
+ k,
138
+ A
139
+ ]), R = i(() => v.length > 0 ? Object.keys(v[0]) : [], [v]), z = i(() => {
139
140
  let e = new Set([
140
- ...E,
141
- ...D,
142
- ...O.map((e) => e.field)
141
+ ...O,
142
+ ...k,
143
+ ...A.map((e) => e.field)
143
144
  ]);
144
- return I.filter((t) => !e.has(t));
145
+ return R.filter((t) => !e.has(t));
145
146
  }, [
146
- I,
147
- E,
148
- D,
149
- O
150
- ]), R = r((e, t, n) => {
147
+ R,
148
+ O,
149
+ k,
150
+ A
151
+ ]), B = r((e, t, n) => {
151
152
  if (t === n) return;
152
153
  let r = {
153
- rows: t === "rows" ? E.filter((t) => t !== e) : [...E],
154
- columns: t === "columns" ? D.filter((t) => t !== e) : [...D],
155
- values: t === "values" ? O.filter((t) => t.field !== e) : [...O]
154
+ rows: t === "rows" ? O.filter((t) => t !== e) : [...O],
155
+ columns: t === "columns" ? k.filter((t) => t !== e) : [...k],
156
+ values: t === "values" ? A.filter((t) => t.field !== e) : [...A]
156
157
  };
157
158
  n === "rows" && !r.rows.includes(e) ? r.rows.push(e) : n === "columns" && !r.columns.includes(e) ? r.columns.push(e) : n === "values" && !r.values.some((t) => t.field === e) && r.values.push({
158
159
  field: e,
159
160
  aggregation: "sum"
160
- }), A(r);
161
+ }), M(r);
161
162
  }, [
162
- E,
163
- D,
164
163
  O,
165
- A
166
- ]), z = r((e, t) => {
167
- A({
168
- rows: [...E],
169
- columns: [...D],
170
- values: O.map((n) => n.field === e ? {
164
+ k,
165
+ A,
166
+ M
167
+ ]), V = r((e, t) => {
168
+ M({
169
+ rows: [...O],
170
+ columns: [...k],
171
+ values: A.map((n) => n.field === e ? {
171
172
  ...n,
172
173
  aggregation: t
173
174
  } : n)
174
175
  });
175
176
  }, [
176
- E,
177
- D,
178
177
  O,
179
- A
180
- ]), B = r((e) => {
178
+ k,
179
+ A,
180
+ M
181
+ ]), H = r((e) => {
181
182
  if (isNaN(e)) return "-";
182
- switch (_.numberFormat) {
183
+ switch (y.numberFormat) {
183
184
  case "currency": return new Intl.NumberFormat("en-US", {
184
185
  style: "currency",
185
186
  currency: "USD",
186
- minimumFractionDigits: _.decimalPlaces,
187
- maximumFractionDigits: _.decimalPlaces
187
+ minimumFractionDigits: y.decimalPlaces,
188
+ maximumFractionDigits: y.decimalPlaces
188
189
  }).format(e);
189
190
  case "percentage": return new Intl.NumberFormat("en-US", {
190
191
  style: "percent",
191
- minimumFractionDigits: _.decimalPlaces,
192
- maximumFractionDigits: _.decimalPlaces
192
+ minimumFractionDigits: y.decimalPlaces,
193
+ maximumFractionDigits: y.decimalPlaces
193
194
  }).format(e / 100);
194
195
  default: return new Intl.NumberFormat("en-US", {
195
- minimumFractionDigits: _.decimalPlaces,
196
- maximumFractionDigits: _.decimalPlaces
196
+ minimumFractionDigits: y.decimalPlaces,
197
+ maximumFractionDigits: y.decimalPlaces
197
198
  }).format(e);
198
199
  }
199
- }, [_.numberFormat, _.decimalPlaces]), V = r((e) => {
200
- M((t) => {
200
+ }, [y.numberFormat, y.decimalPlaces]), U = r((e) => {
201
+ P((t) => {
201
202
  let n = new Set(t);
202
203
  return n.has(e) ? n.delete(e) : n.add(e), n;
203
204
  });
204
- }, []), H = r((e, t) => {
205
- f && f({
205
+ }, []), W = r((e, t) => {
206
+ p && p({
206
207
  rowFilter: e,
207
208
  columnValue: t,
208
209
  type: "pivot_cell_click"
209
210
  });
210
- }, [f]), U = r((e, t, n, r) => {
211
- let i = [], a = e.children.size > 0, c = j.has(n), l = E[r - 1];
211
+ }, [p]), G = r((e, t, n, r) => {
212
+ let i = [], a = e.children.size > 0, c = N.has(n), l = O[r - 1];
212
213
  if (r > 0) {
213
- let l = g(p, D, O, t);
214
- i.push(/* @__PURE__ */ d("tr", {
214
+ let l = _(v, k, A, t);
215
+ i.push(/* @__PURE__ */ f("tr", {
215
216
  className: "hover:bg-bg-sunken/50 transition-colors",
216
217
  children: [
217
- /* @__PURE__ */ u("td", {
218
+ /* @__PURE__ */ d("td", {
218
219
  className: "sticky left-0 bg-bg-surface border-r border-border-default px-3 py-2 font-medium text-sm",
219
220
  style: { paddingLeft: `${r * 16 + 8}px` },
220
- children: /* @__PURE__ */ d("div", {
221
+ children: /* @__PURE__ */ f("div", {
221
222
  className: "flex items-center gap-1",
222
223
  children: [
223
- _.expandable && a && /* @__PURE__ */ u("button", {
224
+ y.expandable && a && /* @__PURE__ */ d("button", {
224
225
  type: "button",
225
- onClick: () => V(n),
226
+ onClick: () => U(n),
226
227
  className: "p-0.5 hover:bg-bg-sunken rounded",
227
- children: u(c ? o : s, { className: "w-4 h-4 text-text-secondary" })
228
+ children: d(c ? o : s, { className: "w-4 h-4 text-text-secondary" })
228
229
  }),
229
- !a && _.expandable && /* @__PURE__ */ u("span", { className: "w-5" }),
230
- /* @__PURE__ */ u("span", { children: e.key })
230
+ !a && y.expandable && /* @__PURE__ */ d("span", { className: "w-5" }),
231
+ /* @__PURE__ */ d("span", { children: e.key })
231
232
  ]
232
233
  })
233
234
  }),
234
- P.map((e) => {
235
+ I.map((e) => {
235
236
  let n = l.get(e) || {};
236
- return O.map((r) => /* @__PURE__ */ u("td", {
237
+ return A.map((r) => /* @__PURE__ */ d("td", {
237
238
  className: "px-3 py-2 text-sm text-right tabular-nums cursor-pointer hover:bg-action-primary-bg/10",
238
- onClick: () => H(t, e),
239
- children: B(n[r.field] || 0)
239
+ onClick: () => W(t, e),
240
+ children: H(n[r.field] || 0)
240
241
  }, `${e}-${r.field}`));
241
242
  }),
242
- _.showRowTotals && O.map((t) => /* @__PURE__ */ u("td", {
243
+ y.showRowTotals && A.map((t) => /* @__PURE__ */ d("td", {
243
244
  className: "px-3 py-2 text-sm text-right tabular-nums font-medium bg-bg-sunken/30",
244
- children: B(e.values[t.field] || 0)
245
+ children: H(e.values[t.field] || 0)
245
246
  }, `total-${t.field}`))
246
247
  ]
247
248
  }, n));
@@ -253,190 +254,190 @@ var _ = n(function({ widget: n, data: c = [], onDrilldown: f }) {
253
254
  ...t,
254
255
  [l]: o
255
256
  } : t;
256
- i.push(...U(a, c, s, r + 1));
257
+ i.push(...G(a, c, s, r + 1));
257
258
  }
258
259
  }
259
260
  return i;
260
261
  }, [
261
- p,
262
- _,
263
- E,
264
- D,
262
+ v,
263
+ y,
265
264
  O,
266
- P,
267
- j,
268
- B,
265
+ k,
266
+ A,
267
+ I,
268
+ N,
269
269
  H,
270
- V
271
- ]), W = E.length > 0 || O.length > 0;
272
- return p.length === 0 ? /* @__PURE__ */ d("div", {
270
+ W,
271
+ U
272
+ ]), K = O.length > 0 || A.length > 0;
273
+ return v.length === 0 ? /* @__PURE__ */ f("div", {
273
274
  className: "flex flex-col items-center justify-center h-full p-8 text-text-secondary",
274
275
  children: [
275
- /* @__PURE__ */ u(l, { className: "w-12 h-12 mb-4 opacity-50" }),
276
- /* @__PURE__ */ u("p", {
276
+ /* @__PURE__ */ d(l, { className: "w-12 h-12 mb-4 opacity-50" }),
277
+ /* @__PURE__ */ d("p", {
277
278
  className: "text-sm",
278
- children: "No data available"
279
+ children: m("bigconsole.widget.pivotTable.noData", "No data available")
279
280
  }),
280
- /* @__PURE__ */ u("p", {
281
+ /* @__PURE__ */ d("p", {
281
282
  className: "text-xs mt-1",
282
- children: "Configure data source to populate pivot table"
283
+ children: m("bigconsole.widget.pivotTable.noDataHint", "Configure data source to populate pivot table")
283
284
  })
284
285
  ]
285
- }) : /* @__PURE__ */ d("div", {
286
+ }) : /* @__PURE__ */ f("div", {
286
287
  className: "flex flex-col h-full overflow-hidden",
287
- children: [v && /* @__PURE__ */ u(y, {
288
- rowFields: E,
289
- columnFields: D,
290
- valueFields: O,
291
- availableFields: L,
292
- onMoveField: R,
293
- onChangeAggregation: z
294
- }), W ? /* @__PURE__ */ u("div", {
288
+ children: [x && /* @__PURE__ */ d(b, {
289
+ rowFields: O,
290
+ columnFields: k,
291
+ valueFields: A,
292
+ availableFields: z,
293
+ onMoveField: B,
294
+ onChangeAggregation: V
295
+ }), K ? /* @__PURE__ */ d("div", {
295
296
  className: "flex-1 overflow-auto",
296
- children: /* @__PURE__ */ d("table", {
297
+ children: /* @__PURE__ */ f("table", {
297
298
  className: "w-full border-collapse",
298
299
  children: [
299
- /* @__PURE__ */ d("thead", {
300
+ /* @__PURE__ */ f("thead", {
300
301
  className: "sticky top-0 z-10",
301
- children: [/* @__PURE__ */ d("tr", {
302
+ children: [/* @__PURE__ */ f("tr", {
302
303
  className: "bg-bg-sunken",
303
304
  children: [
304
- /* @__PURE__ */ u("th", {
305
+ /* @__PURE__ */ d("th", {
305
306
  className: "sticky left-0 bg-bg-sunken border-r border-b border-border-default px-3 py-2 text-left text-xs font-semibold uppercase tracking-wider text-text-secondary",
306
- children: E.length > 0 ? E.map((e) => e.replace(/_/g, " ")).join(" / ") : "Values"
307
+ children: O.length > 0 ? O.map((e) => e.replace(/_/g, " ")).join(" / ") : m("bigconsole.widget.pivotTable.valuesHeader", "Values")
307
308
  }),
308
- P.map((e) => /* @__PURE__ */ u("th", {
309
- colSpan: O.length || 1,
309
+ I.map((e) => /* @__PURE__ */ d("th", {
310
+ colSpan: A.length || 1,
310
311
  className: "border-b border-border-default px-3 py-2 text-center text-xs font-semibold uppercase tracking-wider text-text-secondary",
311
312
  children: e
312
313
  }, e)),
313
- _.showRowTotals && /* @__PURE__ */ u("th", {
314
- colSpan: O.length || 1,
314
+ y.showRowTotals && /* @__PURE__ */ d("th", {
315
+ colSpan: A.length || 1,
315
316
  className: "border-b border-border-default px-3 py-2 text-center text-xs font-semibold uppercase tracking-wider text-text-secondary bg-bg-sunken/50",
316
- children: "Total"
317
+ children: m("bigconsole.widget.pivotTable.total", "Total")
317
318
  })
318
319
  ]
319
- }), O.length > 1 && /* @__PURE__ */ d("tr", {
320
+ }), A.length > 1 && /* @__PURE__ */ f("tr", {
320
321
  className: "bg-bg-surface",
321
322
  children: [
322
- /* @__PURE__ */ u("th", { className: "sticky left-0 bg-bg-surface border-r border-b border-border-default" }),
323
- P.map((e) => O.map((t) => /* @__PURE__ */ u("th", {
323
+ /* @__PURE__ */ d("th", { className: "sticky left-0 bg-bg-surface border-r border-b border-border-default" }),
324
+ I.map((e) => A.map((t) => /* @__PURE__ */ d("th", {
324
325
  className: "border-b border-border-default px-3 py-1 text-center text-xs text-text-secondary",
325
326
  children: t.label || t.field.replace(/_/g, " ")
326
327
  }, `${e}-${t.field}`))),
327
- _.showRowTotals && O.map((e) => /* @__PURE__ */ u("th", {
328
+ y.showRowTotals && A.map((e) => /* @__PURE__ */ d("th", {
328
329
  className: "border-b border-border-default px-3 py-1 text-center text-xs text-text-secondary bg-bg-sunken/30",
329
330
  children: e.label || e.field.replace(/_/g, " ")
330
331
  }, `total-${e.field}`))
331
332
  ]
332
333
  })]
333
334
  }),
334
- /* @__PURE__ */ u("tbody", {
335
+ /* @__PURE__ */ d("tbody", {
335
336
  className: "divide-y divide-border-default",
336
- children: U(N, {}, "root", 0)
337
+ children: G(F, {}, "root", 0)
337
338
  }),
338
- _.showColumnTotals && /* @__PURE__ */ u("tfoot", { children: /* @__PURE__ */ d("tr", {
339
+ y.showColumnTotals && /* @__PURE__ */ d("tfoot", { children: /* @__PURE__ */ f("tr", {
339
340
  className: "bg-bg-sunken/50 font-medium",
340
341
  children: [
341
- /* @__PURE__ */ u("td", {
342
+ /* @__PURE__ */ d("td", {
342
343
  className: "sticky left-0 bg-bg-sunken/50 border-r border-t border-border-default px-3 py-2 text-sm",
343
- children: "Total"
344
+ children: m("bigconsole.widget.pivotTable.total", "Total")
344
345
  }),
345
- P.map((e) => {
346
- let t = F?.get(e) || {};
347
- return O.map((n) => /* @__PURE__ */ u("td", {
346
+ I.map((e) => {
347
+ let t = L?.get(e) || {};
348
+ return A.map((n) => /* @__PURE__ */ d("td", {
348
349
  className: "border-t border-border-default px-3 py-2 text-sm text-right tabular-nums",
349
- children: B(t[n.field] || 0)
350
+ children: H(t[n.field] || 0)
350
351
  }, `footer-${e}-${n.field}`));
351
352
  }),
352
- _.showRowTotals && _.showGrandTotal && O.map((e) => /* @__PURE__ */ u("td", {
353
+ y.showRowTotals && y.showGrandTotal && A.map((e) => /* @__PURE__ */ d("td", {
353
354
  className: "border-t border-border-default px-3 py-2 text-sm text-right tabular-nums font-bold bg-bg-sunken",
354
- children: B(N.values[e.field] || 0)
355
+ children: H(F.values[e.field] || 0)
355
356
  }, `grand-${e.field}`))
356
357
  ]
357
358
  }) })
358
359
  ]
359
360
  })
360
- }) : /* @__PURE__ */ d("div", {
361
+ }) : /* @__PURE__ */ f("div", {
361
362
  className: "flex flex-col items-center justify-center flex-1 p-8 text-text-secondary",
362
363
  children: [
363
- /* @__PURE__ */ u(l, { className: "w-12 h-12 mb-4 opacity-50" }),
364
- /* @__PURE__ */ u("p", {
364
+ /* @__PURE__ */ d(l, { className: "w-12 h-12 mb-4 opacity-50" }),
365
+ /* @__PURE__ */ d("p", {
365
366
  className: "text-sm",
366
- children: "Configure Pivot Table"
367
+ children: m("bigconsole.widget.pivotTable.configureTitle", "Configure Pivot Table")
367
368
  }),
368
- /* @__PURE__ */ u("p", {
369
+ /* @__PURE__ */ d("p", {
369
370
  className: "text-xs mt-1",
370
- children: v ? "Drag fields into the Rows and Values zones above" : "Add row fields and value fields in widget settings"
371
+ children: x ? m("bigconsole.widget.pivotTable.configureHintEdit", "Drag fields into the Rows and Values zones above") : m("bigconsole.widget.pivotTable.configureHintView", "Add row fields and value fields in widget settings")
371
372
  })
372
373
  ]
373
374
  })]
374
375
  });
375
- }), v = "application/x-pivot-field", y = ({ rowFields: e, columnFields: t, valueFields: n, availableFields: r, onMoveField: i, onChangeAggregation: o }) => {
376
- let [s, l] = a(null), p = (e) => (t) => {
377
- t.preventDefault(), t.stopPropagation(), l(null);
378
- let n = t.dataTransfer.getData(v) || t.dataTransfer.getData("text/plain");
376
+ }), y = "application/x-pivot-field", b = ({ rowFields: e, columnFields: t, valueFields: n, availableFields: r, onMoveField: i, onChangeAggregation: o }) => {
377
+ let { t: s } = u(), [l, m] = a(null), h = (e) => (t) => {
378
+ t.preventDefault(), t.stopPropagation(), m(null);
379
+ let n = t.dataTransfer.getData(y) || t.dataTransfer.getData("text/plain");
379
380
  if (n) try {
380
381
  let { field: t, from: r } = JSON.parse(n);
381
382
  t && i(t, r, e);
382
383
  } catch {}
383
- }, m = (e, t, n) => /* @__PURE__ */ d("span", {
384
+ }, g = (e, t, n) => /* @__PURE__ */ f("span", {
384
385
  draggable: !0,
385
386
  onDragStart: (n) => {
386
387
  let r = JSON.stringify({
387
388
  field: e,
388
389
  from: t
389
390
  });
390
- n.dataTransfer.setData(v, r), n.dataTransfer.setData("text/plain", r), n.dataTransfer.effectAllowed = "move";
391
+ n.dataTransfer.setData(y, r), n.dataTransfer.setData("text/plain", r), n.dataTransfer.effectAllowed = "move";
391
392
  },
392
393
  className: "inline-flex items-center gap-1 px-2 py-1 rounded-md bg-bg-surface border border-border-default text-xs text-text-primary cursor-grab",
393
394
  children: [
394
- /* @__PURE__ */ u(c, {
395
+ /* @__PURE__ */ d(c, {
395
396
  className: "w-3 h-3 text-text-tertiary",
396
397
  "aria-hidden": "true"
397
398
  }),
398
- /* @__PURE__ */ u("span", { children: (n?.label || e).replace(/_/g, " ") }),
399
- n && /* @__PURE__ */ u("select", {
399
+ /* @__PURE__ */ d("span", { children: (n?.label || e).replace(/_/g, " ") }),
400
+ n && /* @__PURE__ */ d("select", {
400
401
  value: n.aggregation,
401
402
  onChange: (t) => o(e, t.target.value),
402
403
  onClick: (e) => e.stopPropagation(),
403
- "aria-label": `Aggregation for ${e}`,
404
+ "aria-label": s("bigconsole.widget.pivotTable.aggregationForField", "Aggregation for {{field}}", { field: e }),
404
405
  className: "ml-1 bg-bg-sunken text-text-secondary rounded px-1 py-0.5 text-[10px] uppercase",
405
- children: f.map((e) => /* @__PURE__ */ u("option", {
406
+ children: p.map((e) => /* @__PURE__ */ d("option", {
406
407
  value: e,
407
408
  children: e
408
409
  }, e))
409
410
  })
410
411
  ]
411
- }, e), h = (e, t, n) => /* @__PURE__ */ d("div", {
412
+ }, e), _ = (e, t, n) => /* @__PURE__ */ f("div", {
412
413
  onDragOver: (e) => {
413
- e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "move", s !== t && l(t);
414
+ e.preventDefault(), e.stopPropagation(), e.dataTransfer.dropEffect = "move", l !== t && m(t);
414
415
  },
415
- onDragLeave: () => l((e) => e === t ? null : e),
416
- onDrop: p(t),
417
- className: `flex-1 min-w-[8rem] rounded-md border p-2 transition-colors ${s === t ? "border-action-primary-bg bg-action-primary-bg/5" : "border-border-default bg-bg-sunken/30"}`,
418
- children: [/* @__PURE__ */ u("div", {
416
+ onDragLeave: () => m((e) => e === t ? null : e),
417
+ onDrop: h(t),
418
+ className: `flex-1 min-w-[8rem] rounded-md border p-2 transition-colors ${l === t ? "border-action-primary-bg bg-action-primary-bg/5" : "border-border-default bg-bg-sunken/30"}`,
419
+ children: [/* @__PURE__ */ d("div", {
419
420
  className: "text-[10px] font-semibold uppercase tracking-wider text-text-tertiary mb-1.5",
420
421
  children: e
421
- }), /* @__PURE__ */ u("div", {
422
+ }), /* @__PURE__ */ d("div", {
422
423
  className: "flex flex-wrap gap-1.5 min-h-[1.75rem]",
423
424
  children: n
424
425
  })]
425
426
  });
426
- return /* @__PURE__ */ d("div", {
427
+ return /* @__PURE__ */ f("div", {
427
428
  className: "flex flex-wrap gap-2 p-2 border-b border-border-default bg-bg-surface",
428
429
  children: [
429
- h("Rows", "rows", e.map((e) => m(e, "rows"))),
430
- h("Columns", "columns", t.map((e) => m(e, "columns"))),
431
- h("Values", "values", n.map((e) => m(e.field, "values", e))),
432
- h("Available", "available", r.length > 0 ? r.map((e) => m(e, "available")) : /* @__PURE__ */ u("span", {
430
+ _(s("bigconsole.widget.pivotTable.zoneRows", "Rows"), "rows", e.map((e) => g(e, "rows"))),
431
+ _(s("bigconsole.widget.pivotTable.zoneColumns", "Columns"), "columns", t.map((e) => g(e, "columns"))),
432
+ _(s("bigconsole.widget.pivotTable.zoneValues", "Values"), "values", n.map((e) => g(e.field, "values", e))),
433
+ _(s("bigconsole.widget.pivotTable.zoneAvailable", "Available"), "available", r.length > 0 ? r.map((e) => g(e, "available")) : /* @__PURE__ */ d("span", {
433
434
  className: "text-[11px] text-text-tertiary italic",
434
- children: "All fields in use"
435
+ children: s("bigconsole.widget.pivotTable.allFieldsInUse", "All fields in use")
435
436
  }))
436
437
  ]
437
438
  });
438
439
  };
439
440
  //#endregion
440
- export { _ as default };
441
+ export { v as default };
441
442
 
442
443
  //# sourceMappingURL=PivotTableWidget.js.map