@burdenoff/microfe-bigconsole 2026.929.2 → 2026.930.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/bigconsole/assistant/assistantRunPersistence.js +111 -0
  2. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +1 -0
  3. package/dist/bigconsole/assistant/assistantRunStore.js +87 -48
  4. package/dist/bigconsole/assistant/assistantRunStore.js.map +1 -1
  5. package/dist/bigconsole/assistant/previewController.js +19 -50
  6. package/dist/bigconsole/assistant/previewController.js.map +1 -1
  7. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +14 -0
  8. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +1 -0
  9. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +74 -50
  10. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  11. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +9 -4
  12. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  13. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +68 -40
  14. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +1 -1
  15. package/dist/bigconsole/components/embed/drilldown.js +26 -0
  16. package/dist/bigconsole/components/embed/drilldown.js.map +1 -0
  17. package/dist/bigconsole/components/embed/index.js +4 -3
  18. package/dist/bigconsole/components/embed/types.js.map +1 -1
  19. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +32 -30
  20. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  21. package/dist/bigconsole/components/preview/AiPreviewPanel.js +38 -36
  22. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  23. package/dist/bigconsole/components/preview/previewShared.js +1 -1
  24. package/dist/bigconsole/components/preview/previewShared.js.map +1 -1
  25. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +307 -233
  26. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  27. package/dist/bigconsole/components/widgets/PropertiesPanel.js +230 -220
  28. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  29. package/dist/bigconsole/components/widgets/WidgetWrapper.js +18 -19
  30. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  31. package/dist/bigconsole/context/BigConsoleContext.js +4 -1
  32. package/dist/bigconsole/context/BigConsoleContext.js.map +1 -1
  33. package/dist/bigconsole/hooks/useActivePage.js +25 -0
  34. package/dist/bigconsole/hooks/useActivePage.js.map +1 -0
  35. package/dist/bigconsole/hooks/useDrilldown.js +118 -71
  36. package/dist/bigconsole/hooks/useDrilldown.js.map +1 -1
  37. package/dist/bigconsole/hooks/useDrilldownOperations.js +32 -26
  38. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +1 -1
  39. package/dist/bigconsole/hooks/useFilterUrlSync.js +1 -1
  40. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +1 -1
  41. package/dist/bigconsole/pages/DashboardBuilderPage.js +190 -185
  42. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  43. package/dist/bigconsole/pages/DashboardViewPage.js +224 -217
  44. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  45. package/dist/generated/wspace-operations.js +132 -86
  46. package/dist/generated/wspace-operations.js.map +1 -1
  47. package/dist/generated/wspace-types.js.map +1 -1
  48. package/package.json +3 -3
  49. package/dist/bigconsole/assistant/useAssistantPanelShowsPreview.js +0 -25
  50. package/dist/bigconsole/assistant/useAssistantPanelShowsPreview.js.map +0 -1
@@ -6,64 +6,66 @@ import "../context/index.js";
6
6
  import { Section as r } from "../components/common/Section.js";
7
7
  import "../components/common/index.js";
8
8
  import i from "../hooks/useWidgetOperations.js";
9
- import a from "../hooks/useDashboardOperations.js";
10
- import ee from "../hooks/useFilterUrlSync.js";
11
- import te from "../hooks/usePageOperations.js";
9
+ import ee from "../hooks/useDashboardOperations.js";
10
+ import te from "../hooks/useActivePage.js";
11
+ import ne from "../hooks/useFilterUrlSync.js";
12
+ import re from "../hooks/usePageOperations.js";
12
13
  import "../hooks/index.js";
13
- import { BIGCONSOLE_PERMISSIONS as o } from "../../constants/permissions.js";
14
- import ne from "../components/dashboard/DashboardCanvas.js";
15
- import s from "../components/dashboard/LiveCanvasToggle.js";
16
- import c from "../components/dashboard/ExportDashboardDialog.js";
17
- import re from "../components/dashboard/DrilldownBreadcrumb.js";
18
- import ie from "../components/dashboard/PublishToStoreDialog.js";
14
+ import { BIGCONSOLE_PERMISSIONS as a } from "../../constants/permissions.js";
15
+ import ie from "../components/dashboard/DashboardCanvas.js";
16
+ import ae from "../components/dashboard/LiveCanvasToggle.js";
17
+ import o from "../components/dashboard/ExportDashboardDialog.js";
18
+ import oe from "../components/dashboard/DrilldownBreadcrumb.js";
19
+ import se from "../components/dashboard/PublishToStoreDialog.js";
19
20
  import "../components/dashboard/index.js";
20
- import { memo as l, useCallback as u, useEffect as d, useRef as ae, useState as f } from "react";
21
- import { useParams as oe } from "react-router";
22
- import { AccessDenied as se } from "@burdenoff/fe-libs/shared/components";
23
- import { usePermissions as ce } from "@burdenoff/fe-libs/shared/providers/shell";
24
- import { ArrowLeft as le } from "lucide-react";
25
- import { Button as p, IllustratedEmptyState as m } from "@burdenoff/fe-libs/ui";
26
- import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
27
- import { useI18n as ue } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
21
+ import { memo as s, useCallback as c, useEffect as l, useRef as ce, useState as u } from "react";
22
+ import { useLocation as le, useParams as d } from "react-router";
23
+ import { AccessDenied as f } from "@burdenoff/fe-libs/shared/components";
24
+ import { usePermissions as p } from "@burdenoff/fe-libs/shared/providers/shell";
25
+ import { ArrowLeft as m } from "lucide-react";
26
+ import { Button as h, IllustratedEmptyState as ue } from "@burdenoff/fe-libs/ui";
27
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
28
+ import { useI18n as de } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
28
29
  //#region src/bigconsole/pages/DashboardViewPage.tsx
29
- var v = l(function() {
30
- let { dashboardId: l } = oe(), v = n(), { t: y } = ue(), { hasPermission: b, isLoading: de } = ce(), fe = b(o.DASHBOARD_READ), pe = b(o.DASHBOARD_UPDATE), me = b(o.DASHBOARD_EXPORT), he = b(o.DASHBOARD_PUBLISH), [x, S] = f(null), [ge, C] = f(!1), [_e, w] = f(!1), [ve, T] = f(!1), [E, ye] = f(!1), { isInDrilldown: D, getContextFromUrl: O, getDrilldownMetadata: k } = ee(), A = t((e) => e.currentDashboard), j = t((e) => e.setCurrentDashboard), M = t((e) => e.setGlobalFilterValue), N = t((e) => e.clearAllGlobalFilters), P = e((e) => e.widgets), F = e((e) => e.clipboardWidgetId), I = e((e) => e.clipboardAction), L = e((e) => e.clearClipboard), R = e((e) => e.selectWidget), { loading: be, error: z, fetchDashboard: B, updateDashboard: V } = a(), { createWidget: H, deleteWidget: U, duplicateWidget: W, batchUpdatePositions: G, refetch: K } = i(x || void 0, l), { createPage: q, updatePage: J, deletePage: Y, reorderPages: X } = te();
31
- d(() => {
32
- if (!l) {
33
- v("/dashboards");
30
+ var y = s(function() {
31
+ let { dashboardId: s } = d(), y = n(), { t: b } = de(), { hasPermission: x, isLoading: fe } = p(), pe = x(a.DASHBOARD_READ), me = x(a.DASHBOARD_UPDATE), he = x(a.DASHBOARD_EXPORT), ge = x(a.DASHBOARD_PUBLISH), [_e, S] = u(!1), [ve, C] = u(!1), [ye, w] = u(!1), [T, be] = u(!1), { isInDrilldown: E, getContextFromUrl: D, getDrilldownMetadata: O } = ne(), k = t((e) => e.currentDashboard), A = t((e) => e.setCurrentDashboard), j = t((e) => e.setGlobalFilterValue), M = t((e) => e.clearAllGlobalFilters), N = e((e) => e.widgets), xe = le(), { activePageId: P, setActivePage: F } = te(k?.id === s ? k?.pages : void 0), I = e((e) => e.clipboardWidgetId), L = e((e) => e.clipboardAction), R = e((e) => e.clearClipboard), z = e((e) => e.selectWidget), { loading: Se, error: B, fetchDashboard: V, updateDashboard: H } = ee(), { createWidget: U, deleteWidget: W, duplicateWidget: G, batchUpdatePositions: K, refetch: q } = i(P || void 0, s), { createPage: J, updatePage: Y, deletePage: X, reorderPages: Z } = re();
32
+ l(() => {
33
+ if (!s) {
34
+ y("/dashboards");
34
35
  return;
35
36
  }
36
- return N(), w(!1), B(l).then((e) => {
37
- e ? e.pages && e.pages.length > 0 && S(e.pages[0].id) : w(!0);
37
+ return M(), C(!1), V(s).then((e) => {
38
+ e || C(!0);
38
39
  }), () => {
39
- j(null), N(), w(!1);
40
+ A(null), M(), C(!1);
40
41
  };
41
42
  }, [
42
- l,
43
- v,
44
- B,
45
- j,
46
- N
47
- ]), d(() => {
48
- if (!D) return;
49
- let e = O(), t = k();
43
+ s,
44
+ y,
45
+ V,
46
+ A,
47
+ M
48
+ ]), l(() => {
49
+ if (!E) return;
50
+ let e = D(), t = O();
50
51
  Object.entries(e).forEach(([e, t]) => {
51
- M(`ctx_${e}`, t);
52
- }), t.depth > 0 && (M("__drilldown_depth", t.depth), M("__drilldown_parent", t.parent), M("__drilldown_path", t.path)), Object.keys(e).length > 0 && console.debug("[DashboardViewPage] Loaded drilldown context:", {
52
+ j(`ctx_${e}`, t);
53
+ }), t.depth > 0 && (j("__drilldown_depth", t.depth), j("__drilldown_parent", t.parent), j("__drilldown_path", t.path)), Object.keys(e).length > 0 && console.debug("[DashboardViewPage] Loaded drilldown context:", {
53
54
  context: e,
54
55
  metadata: t
55
56
  });
56
57
  }, [
58
+ E,
57
59
  D,
58
60
  O,
59
- k,
60
- M
61
+ j,
62
+ xe.search
61
63
  ]);
62
- let Z = ae(K);
63
- Z.current = K, d(() => {
64
- if (!E || !l) return;
64
+ let Q = ce(q);
65
+ Q.current = q, l(() => {
66
+ if (!T || !s) return;
65
67
  let e = () => {
66
- typeof document < "u" && document.visibilityState !== "visible" || t.getState().viewMode !== "edit" && (B(l, { silent: !0 }), Z.current());
68
+ typeof document < "u" && document.visibilityState !== "visible" || t.getState().viewMode !== "edit" && (V(s, { silent: !0 }), Q.current());
67
69
  };
68
70
  e();
69
71
  let n = window.setInterval(e, 3500), r = () => {
@@ -73,60 +75,60 @@ var v = l(function() {
73
75
  window.clearInterval(n), document.removeEventListener("visibilitychange", r);
74
76
  };
75
77
  }, [
76
- E,
77
- l,
78
- B
78
+ T,
79
+ s,
80
+ V
79
81
  ]);
80
- let xe = u(async () => {
81
- if (l) {
82
- C(!0);
82
+ let Ce = c(async () => {
83
+ if (s) {
84
+ S(!0);
83
85
  try {
84
- let e = Array.from(P.values());
85
- e.length > 0 && await G(e.map((e) => ({
86
+ let e = Array.from(N.values());
87
+ e.length > 0 && await K(e.map((e) => ({
86
88
  id: e.id,
87
89
  position: e.position
88
- }))), A && await V({
89
- id: l,
90
- name: A.name,
91
- description: A.description
90
+ }))), k && await H({
91
+ id: s,
92
+ name: k.name,
93
+ description: k.description
92
94
  });
93
95
  } catch {} finally {
94
- C(!1);
96
+ S(!1);
95
97
  }
96
98
  }
97
99
  }, [
98
- l,
99
- P,
100
- A,
101
- G,
102
- V
103
- ]), Se = u(() => {
104
- v("/dashboards");
105
- }, [v]), Ce = u((e) => {
106
- S(e);
107
- }, []), we = u(async () => {
108
- let e = x || A?.pages?.[0]?.id;
109
- if (!F || !l || !e) return;
110
- let t = P.get(F);
100
+ s,
101
+ N,
102
+ k,
103
+ K,
104
+ H
105
+ ]), we = c(() => {
106
+ y("/dashboards");
107
+ }, [y]), Te = c((e) => {
108
+ F(e);
109
+ }, [F]), Ee = c(async () => {
110
+ let e = P || k?.pages?.[0]?.id;
111
+ if (!I || !s || !e) return;
112
+ let t = N.get(I);
111
113
  if (!t) {
112
- L();
114
+ R();
113
115
  return;
114
116
  }
115
117
  let n = {
116
118
  x: 0,
117
- y: Array.from(P.values()).reduce((e, t) => {
119
+ y: Array.from(N.values()).reduce((e, t) => {
118
120
  let n = (t.positionY ?? 0) + (t.positionHeight ?? 4);
119
121
  return Math.max(e, n);
120
122
  }, 0),
121
123
  width: t.positionWidth ?? 4,
122
124
  height: t.positionHeight ?? 4
123
- }, r = I === "copy" ? y("bigconsole.dashboards.view.widgetCopyTitle", "{{title}} (Copy)", { title: t.title }) : t.title, i = null;
125
+ }, r = L === "copy" ? b("bigconsole.dashboards.view.widgetCopyTitle", "{{title}} (Copy)", { title: t.title }) : t.title, i = null;
124
126
  try {
125
- i = await W(F, n, r);
127
+ i = await G(I, n, r);
126
128
  } catch {}
127
- i ||= await H({
129
+ i ||= await U({
128
130
  pageId: e,
129
- dashboardId: l,
131
+ dashboardId: s,
130
132
  type: t.type,
131
133
  title: r,
132
134
  description: t.description,
@@ -138,248 +140,253 @@ var v = l(function() {
138
140
  position: n,
139
141
  refreshInterval: t.refreshInterval ?? void 0,
140
142
  metadata: t.metadata
141
- }), i && (R(i.id), I === "cut" && await U(F)), L();
143
+ }), i && (z(i.id), L === "cut" && await W(I)), R();
142
144
  }, [
143
- F,
144
145
  I,
145
- l,
146
- x,
147
- A,
146
+ L,
147
+ s,
148
148
  P,
149
- W,
150
- H,
149
+ k,
150
+ N,
151
+ G,
151
152
  U,
153
+ W,
154
+ z,
152
155
  R,
153
- L,
154
- y
155
- ]), Te = u(() => {
156
- T(!0);
157
- }, []), [Ee, Q] = f(!1), De = u(() => {
158
- Q(!0);
159
- }, []), $ = u(() => {
160
- Q(!1);
161
- }, []), Oe = u(() => {
162
- T(!1);
163
- }, []), ke = u(async () => {
164
- if (!A || !l) return;
165
- let e = await q({
166
- dashboardId: l,
167
- name: y("bigconsole.dashboards.view.pageName", "Page {{count}}", { count: (A.pages?.length || 0) + 1 })
156
+ b
157
+ ]), De = c(() => {
158
+ w(!0);
159
+ }, []), [Oe, $] = u(!1), ke = c(() => {
160
+ $(!0);
161
+ }, []), Ae = c(() => {
162
+ $(!1);
163
+ }, []), je = c(() => {
164
+ w(!1);
165
+ }, []), Me = c(async () => {
166
+ if (!k || !s) return;
167
+ let e = await J({
168
+ dashboardId: s,
169
+ name: b("bigconsole.dashboards.view.pageName", "Page {{count}}", { count: (k.pages?.length || 0) + 1 })
168
170
  });
169
- e && (j({
170
- ...A,
171
- pages: [...A.pages || [], e]
172
- }), S(e.id));
171
+ e && (A({
172
+ ...k,
173
+ pages: [...k.pages || [], e]
174
+ }), F(e.id));
173
175
  }, [
176
+ k,
177
+ s,
174
178
  A,
175
- l,
176
- j,
177
- q,
178
- y
179
- ]), Ae = u(async (e, t) => {
180
- A && await J({
179
+ J,
180
+ F,
181
+ b
182
+ ]), Ne = c(async (e, t) => {
183
+ k && await Y({
181
184
  id: e,
182
185
  name: t
183
- }) && j({
184
- ...A,
185
- pages: A.pages?.map((n) => n.id === e ? {
186
+ }) && A({
187
+ ...k,
188
+ pages: k.pages?.map((n) => n.id === e ? {
186
189
  ...n,
187
190
  name: t
188
191
  } : n)
189
192
  });
190
193
  }, [
194
+ k,
191
195
  A,
192
- j,
193
- J
194
- ]), je = u(async (e) => {
195
- if (!A || !l) return;
196
- let t = A.pages?.find((t) => t.id === e);
196
+ Y
197
+ ]), Pe = c(async (e) => {
198
+ if (!k || !s) return;
199
+ let t = k.pages?.find((t) => t.id === e);
197
200
  if (!t) return;
198
- let n = await q({
199
- dashboardId: l,
200
- name: y("bigconsole.dashboards.view.pageCopyName", "{{name}} (Copy)", { name: t.name ?? "" })
201
+ let n = await J({
202
+ dashboardId: s,
203
+ name: b("bigconsole.dashboards.view.pageCopyName", "{{name}} (Copy)", { name: t.name ?? "" })
201
204
  });
202
- n && (j({
203
- ...A,
204
- pages: [...A.pages || [], n]
205
- }), S(n.id));
205
+ n && (A({
206
+ ...k,
207
+ pages: [...k.pages || [], n]
208
+ }), F(n.id));
206
209
  }, [
210
+ k,
211
+ s,
207
212
  A,
208
- l,
209
- j,
210
- q,
211
- y
212
- ]), Me = u(async (e) => {
213
- if (!(!A || (A.pages?.length || 0) <= 1) && await Y(e)) {
214
- let t = A.pages?.filter((t) => t.id !== e).map((e, t) => ({
213
+ J,
214
+ F,
215
+ b
216
+ ]), Fe = c(async (e) => {
217
+ if (!(!k || (k.pages?.length || 0) <= 1) && await X(e)) {
218
+ let t = k.pages?.filter((t) => t.id !== e).map((e, t) => ({
215
219
  ...e,
216
220
  order: t
217
221
  }));
218
- j({
219
- ...A,
222
+ A({
223
+ ...k,
220
224
  pages: t
221
- }), x === e && S(t?.[0]?.id || null);
225
+ });
226
+ let n = t?.[0]?.id;
227
+ P === e && n && F(n, { replace: !0 });
222
228
  }
223
229
  }, [
230
+ k,
224
231
  A,
225
- j,
226
- x,
227
- Y
228
- ]), Ne = u(async (e) => {
229
- !A || !l || (j({
230
- ...A,
232
+ P,
233
+ X,
234
+ F
235
+ ]), Ie = c(async (e) => {
236
+ !k || !s || (A({
237
+ ...k,
231
238
  pages: e.map((e, t) => ({
232
239
  ...e,
233
240
  order: t
234
241
  }))
235
- }), await X(l, e.map((e) => e.id)));
242
+ }), await Z(s, e.map((e) => e.id)));
236
243
  }, [
244
+ k,
245
+ s,
237
246
  A,
238
- l,
239
- j,
240
- X
247
+ Z
241
248
  ]);
242
- return de ? /* @__PURE__ */ g("div", {
249
+ return fe ? /* @__PURE__ */ _("div", {
243
250
  className: "flex items-center justify-center h-full",
244
- children: /* @__PURE__ */ g("div", { className: "animate-spin w-8 h-8 border-4 border-action-primary-bg border-t-transparent rounded-full" })
245
- }) : fe ? z ? /* @__PURE__ */ g("div", {
251
+ children: /* @__PURE__ */ _("div", { className: "animate-spin w-8 h-8 border-4 border-action-primary-bg border-t-transparent rounded-full" })
252
+ }) : pe ? B ? /* @__PURE__ */ _("div", {
246
253
  className: "flex h-full flex-col items-center justify-center",
247
254
  style: { padding: "var(--space-pagePadding)" },
248
- children: /* @__PURE__ */ g(r, {
255
+ children: /* @__PURE__ */ _(r, {
249
256
  headingLevel: 2,
250
257
  tone: "danger",
251
- title: y("bigconsole.dashboards.view.errorTitle", "Error loading dashboard"),
252
- description: /* @__PURE__ */ g("span", {
258
+ title: b("bigconsole.dashboards.view.errorTitle", "Error loading dashboard"),
259
+ description: /* @__PURE__ */ _("span", {
253
260
  className: "break-words",
254
- children: z.message
261
+ children: B.message
255
262
  }),
256
263
  className: "w-full max-w-md",
257
264
  "data-testid": "dashboard-view-error",
258
- actions: /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(p, {
265
+ actions: /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(h, {
259
266
  size: "sm",
260
- onClick: () => B(l),
261
- children: y("bigconsole.dashboards.view.retry", "Retry")
262
- }), /* @__PURE__ */ g(p, {
267
+ onClick: () => V(s),
268
+ children: b("bigconsole.dashboards.view.retry", "Retry")
269
+ }), /* @__PURE__ */ _(h, {
263
270
  size: "sm",
264
271
  variant: "outline",
265
- onClick: () => v("/dashboards"),
266
- children: y("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards")
272
+ onClick: () => y("/dashboards"),
273
+ children: b("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards")
267
274
  })] })
268
275
  })
269
- }) : _e ? /* @__PURE__ */ g("div", {
276
+ }) : ve ? /* @__PURE__ */ _("div", {
270
277
  className: "flex flex-col items-center justify-center h-full",
271
278
  style: { padding: "var(--space-pagePadding)" },
272
- children: /* @__PURE__ */ g(m, {
279
+ children: /* @__PURE__ */ _(ue, {
273
280
  illustration: "empty-data",
274
- title: y("bigconsole.dashboards.view.notFoundTitle", "Dashboard not found"),
275
- description: /* @__PURE__ */ _(h, { children: [y("bigconsole.dashboards.view.notFoundDescription", "The dashboard you're looking for doesn't exist or has been deleted."), /* @__PURE__ */ g("span", {
281
+ title: b("bigconsole.dashboards.view.notFoundTitle", "Dashboard not found"),
282
+ description: /* @__PURE__ */ v(g, { children: [b("bigconsole.dashboards.view.notFoundDescription", "The dashboard you're looking for doesn't exist or has been deleted."), /* @__PURE__ */ _("span", {
276
283
  className: "mt-2 block font-mono text-xs text-text-muted break-all",
277
- children: y("bigconsole.dashboards.view.idLabel", "ID: {{id}}", { id: l ?? "" })
284
+ children: b("bigconsole.dashboards.view.idLabel", "ID: {{id}}", { id: s ?? "" })
278
285
  })] }),
279
- action: /* @__PURE__ */ g(p, {
280
- onClick: () => v("/dashboards"),
281
- children: y("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards")
286
+ action: /* @__PURE__ */ _(h, {
287
+ onClick: () => y("/dashboards"),
288
+ children: b("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards")
282
289
  })
283
290
  })
284
- }) : be || !A ? /* @__PURE__ */ g("div", {
291
+ }) : Se || !k ? /* @__PURE__ */ _("div", {
285
292
  className: "flex items-center justify-center h-full",
286
293
  role: "status",
287
294
  "aria-live": "polite",
288
- children: /* @__PURE__ */ _("div", {
295
+ children: /* @__PURE__ */ v("div", {
289
296
  className: "flex flex-col items-center gap-4",
290
- children: [/* @__PURE__ */ g("div", { className: "animate-spin w-8 h-8 border-4 border-action-primary-bg border-t-transparent rounded-full" }), /* @__PURE__ */ g("p", {
297
+ children: [/* @__PURE__ */ _("div", { className: "animate-spin w-8 h-8 border-4 border-action-primary-bg border-t-transparent rounded-full" }), /* @__PURE__ */ _("p", {
291
298
  className: "text-sm text-text-secondary",
292
- children: y("bigconsole.dashboards.view.loading", "Loading dashboard...")
299
+ children: b("bigconsole.dashboards.view.loading", "Loading dashboard...")
293
300
  })]
294
301
  })
295
- }) : /* @__PURE__ */ _("div", {
302
+ }) : /* @__PURE__ */ v("div", {
296
303
  className: "h-full flex flex-col overflow-hidden",
297
304
  children: [
298
- /* @__PURE__ */ g(r, {
305
+ /* @__PURE__ */ _(r, {
299
306
  emphasis: "bare",
300
307
  padding: "none",
301
308
  "data-testid": "dashboard-route-header",
302
309
  "aria-label": "Dashboard",
303
310
  className: "flex-shrink-0 border-b border-[var(--color-border-subtle)] bg-bg-surface px-3 py-2",
304
311
  headerClassName: "",
305
- header: /* @__PURE__ */ _("div", {
312
+ header: /* @__PURE__ */ v("div", {
306
313
  className: "flex flex-wrap items-center gap-control-gap",
307
314
  children: [
308
- /* @__PURE__ */ _(p, {
309
- onClick: Se,
315
+ /* @__PURE__ */ v(h, {
316
+ onClick: we,
310
317
  variant: "ghost",
311
318
  size: "sm",
312
- title: y("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards"),
313
- "aria-label": y("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards"),
319
+ title: b("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards"),
320
+ "aria-label": b("bigconsole.dashboards.view.backToDashboards", "Back to Dashboards"),
314
321
  className: "flex-shrink-0",
315
- children: [/* @__PURE__ */ g(le, { className: "w-4 h-4 mr-2" }), y("bigconsole.dashboards.view.back", "Back")]
322
+ children: [/* @__PURE__ */ _(m, { className: "w-4 h-4 mr-2" }), b("bigconsole.dashboards.view.back", "Back")]
316
323
  }),
317
- /* @__PURE__ */ g("h1", {
324
+ /* @__PURE__ */ _("h1", {
318
325
  className: "min-w-0 flex-1 truncate text-sm font-semibold text-text-primary",
319
- title: A.name,
320
- children: A.name
326
+ title: k.name,
327
+ children: k.name
321
328
  }),
322
- /* @__PURE__ */ g("div", {
329
+ /* @__PURE__ */ _("div", {
323
330
  className: "flex-shrink-0",
324
- children: /* @__PURE__ */ g(s, {
325
- isLive: E,
326
- onToggle: () => ye((e) => !e)
331
+ children: /* @__PURE__ */ _(ae, {
332
+ isLive: T,
333
+ onToggle: () => be((e) => !e)
327
334
  })
328
335
  })
329
336
  ]
330
337
  })
331
338
  }),
332
- D && /* @__PURE__ */ g(re, {
333
- currentDashboardId: A.id,
334
- currentDashboardName: A.name,
339
+ E && /* @__PURE__ */ _(oe, {
340
+ currentDashboardId: k.id,
341
+ currentDashboardName: k.name,
335
342
  basePath: "/bigconsole/dashboards"
336
343
  }),
337
- /* @__PURE__ */ g("div", {
344
+ /* @__PURE__ */ _("div", {
338
345
  className: "flex-1 min-w-0 overflow-hidden",
339
- children: /* @__PURE__ */ g(ne, {
340
- dashboardId: A.id,
341
- pageId: x || A.pages?.[0]?.id,
342
- title: A.name,
343
- onPaste: we,
344
- onSave: pe ? xe : void 0,
345
- isSaving: ge,
346
- onExport: me ? Te : void 0,
347
- onPublishTemplate: he ? De : void 0,
348
- pages: (A.pages || []).map((e, t) => ({
346
+ children: /* @__PURE__ */ _(ie, {
347
+ dashboardId: k.id,
348
+ pageId: P || k.pages?.[0]?.id,
349
+ title: k.name,
350
+ onPaste: Ee,
351
+ onSave: me ? Ce : void 0,
352
+ isSaving: _e,
353
+ onExport: he ? De : void 0,
354
+ onPublishTemplate: ge ? ke : void 0,
355
+ pages: (k.pages || []).map((e, t) => ({
349
356
  id: e.id,
350
- name: e.name || y("bigconsole.dashboards.view.pageName", "Page {{count}}", { count: t + 1 }),
357
+ name: e.name || b("bigconsole.dashboards.view.pageName", "Page {{count}}", { count: t + 1 }),
351
358
  order: e.order ?? 0
352
359
  })),
353
- activePageId: x || A.pages?.[0]?.id,
354
- onPageChange: Ce,
355
- onPageAdd: ke,
356
- onPageRename: Ae,
357
- onPageDuplicate: je,
358
- onPageDelete: Me,
359
- onPagesReorder: Ne,
360
+ activePageId: P || k.pages?.[0]?.id,
361
+ onPageChange: Te,
362
+ onPageAdd: Me,
363
+ onPageRename: Ne,
364
+ onPageDuplicate: Pe,
365
+ onPageDelete: Fe,
366
+ onPagesReorder: Ie,
360
367
  showPageTabs: !0
361
368
  })
362
369
  }),
363
- /* @__PURE__ */ g(c, {
364
- isOpen: ve,
365
- dashboardId: A.id,
366
- dashboardName: A.name,
367
- onClose: Oe
370
+ /* @__PURE__ */ _(o, {
371
+ isOpen: ye,
372
+ dashboardId: k.id,
373
+ dashboardName: k.name,
374
+ onClose: je
368
375
  }),
369
- /* @__PURE__ */ g(ie, {
370
- isOpen: Ee,
371
- dashboardId: A.id,
372
- dashboardName: A.name,
373
- dashboardDescription: A.description,
374
- onClose: $
376
+ /* @__PURE__ */ _(se, {
377
+ isOpen: Oe,
378
+ dashboardId: k.id,
379
+ dashboardName: k.name,
380
+ dashboardDescription: k.description,
381
+ onClose: Ae
375
382
  })
376
383
  ]
377
- }) : /* @__PURE__ */ g(se, {
378
- title: y("bigconsole.dashboards.view.accessDeniedTitle", "Access Denied"),
379
- description: y("bigconsole.dashboards.view.accessDeniedDescription", "You don't have permission to view this dashboard.")
384
+ }) : /* @__PURE__ */ _(f, {
385
+ title: b("bigconsole.dashboards.view.accessDeniedTitle", "Access Denied"),
386
+ description: b("bigconsole.dashboards.view.accessDeniedDescription", "You don't have permission to view this dashboard.")
380
387
  });
381
388
  });
382
389
  //#endregion
383
- export { v as DashboardViewPage, v as default };
390
+ export { y as DashboardViewPage, y as default };
384
391
 
385
392
  //# sourceMappingURL=DashboardViewPage.js.map