@object-ui/plugin-charts 17.2.0 → 17.3.0
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.
- package/CHANGELOG.md +74 -0
- package/dist/index.js +368 -349
- package/dist/index.umd.cjs +2 -2
- package/package.json +12 -12
package/dist/index.js
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
import { ComponentRegistry as e, buildCategoryRank as t, buildChartSeries as n, buildDimensionLabelMap as r, buildOptionColorMap as i, compareToTrendLabelKey as a, computeDrillFilter as o, extractRecords as s, isDrillEnabled as c, relabelDimensions as l, resolveContextTokens as u, resolveDrillTitle as d, resolveFilterPlaceholders as f, shiftFilterByCompareTo as p } from "@object-ui/core";
|
|
2
2
|
import * as m from "react";
|
|
3
3
|
import h, { Suspense as g, useCallback as ee, useContext as te, useEffect as ne, useMemo as _, useRef as re, useState as v } from "react";
|
|
4
|
-
import { Button as ie, ChartSkeleton as y, Dialog as ae, DialogContent as b, DialogHeader as x, DialogTitle as S, RefreshIndicator as C, Sheet as oe, SheetContent as se, SheetHeader as ce, SheetTitle as le, Skeleton as
|
|
5
|
-
import { Fragment as
|
|
6
|
-
import { Area as
|
|
7
|
-
import { SchemaRenderer as
|
|
8
|
-
import { AlertCircle as
|
|
9
|
-
import { useSafeFieldLabel as
|
|
4
|
+
import { Button as ie, ChartSkeleton as y, Dialog as ae, DialogContent as b, DialogHeader as x, DialogTitle as S, RefreshIndicator as C, Sheet as oe, SheetContent as se, SheetHeader as ce, SheetTitle as le, Skeleton as ue } from "@object-ui/components";
|
|
5
|
+
import { Fragment as de, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
6
|
+
import { Area as fe, AreaChart as pe, Bar as me, BarChart as E, Brush as he, CartesianGrid as ge, Cell as D, ComposedChart as _e, Funnel as ve, FunnelChart as O, LabelList as k, Legend as A, Line as ye, LineChart as be, Pie as xe, PieChart as Se, PolarAngleAxis as Ce, PolarGrid as we, PolarRadiusAxis as Te, Radar as Ee, RadarChart as De, ReferenceArea as Oe, ReferenceLine as ke, ResponsiveContainer as Ae, Sankey as je, Scatter as Me, ScatterChart as j, Tooltip as M, Treemap as N, XAxis as P, YAxis as F, ZAxis as Ne } from "recharts";
|
|
7
|
+
import { SchemaRenderer as Pe, SchemaRendererContext as Fe, useDataScope as Ie, useDrillNavigation as Le, useFilterScope as Re } from "@object-ui/react";
|
|
8
|
+
import { AlertCircle as ze, ArrowUpRight as Be } from "lucide-react";
|
|
9
|
+
import { useSafeFieldLabel as Ve, useSafeTranslate as I } from "@object-ui/i18n";
|
|
10
10
|
//#region \0rolldown/runtime.js
|
|
11
|
-
var
|
|
11
|
+
var L = Object.defineProperty, R = (e, t, n) => () => {
|
|
12
12
|
if (n) throw n[0];
|
|
13
13
|
try {
|
|
14
14
|
return e && (t = e(e = 0)), t;
|
|
15
15
|
} catch (e) {
|
|
16
16
|
throw n = [e], e;
|
|
17
17
|
}
|
|
18
|
-
},
|
|
18
|
+
}, z = (e, t) => {
|
|
19
19
|
let n = {};
|
|
20
|
-
for (var r in e)
|
|
20
|
+
for (var r in e) L(n, r, {
|
|
21
21
|
get: e[r],
|
|
22
22
|
enumerable: !0
|
|
23
23
|
});
|
|
24
|
-
return t ||
|
|
24
|
+
return t || L(n, Symbol.toStringTag, { value: "Module" }), n;
|
|
25
25
|
};
|
|
26
26
|
//#endregion
|
|
27
27
|
//#region src/normalizeChartSchema.ts
|
|
28
|
-
function
|
|
28
|
+
function B(e) {
|
|
29
29
|
let t = G(e);
|
|
30
30
|
if (t) return t;
|
|
31
31
|
if (W(e)) return Object.values(e).find((e) => typeof e == "string" && e);
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function V(e) {
|
|
34
34
|
if (!W(e)) return;
|
|
35
35
|
let t = {}, n = G(e.field);
|
|
36
36
|
n && (t.field = n);
|
|
@@ -44,17 +44,17 @@ function H(e) {
|
|
|
44
44
|
o !== void 0 && o > 0 && (t.stepSize = o), typeof e.showGridLines == "boolean" && (t.showGridLines = e.showGridLines), typeof e.logarithmic == "boolean" && (t.logarithmic = e.logarithmic);
|
|
45
45
|
let s = G(e.position);
|
|
46
46
|
(s === "left" || s === "right" || s === "top" || s === "bottom") && (t.position = s);
|
|
47
|
-
let c =
|
|
47
|
+
let c = B(e.title);
|
|
48
48
|
return c && (t.title = c), t;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function H(e) {
|
|
51
51
|
if (!W(e)) {
|
|
52
52
|
let t = G(e);
|
|
53
53
|
return t ? { dataKey: t } : void 0;
|
|
54
54
|
}
|
|
55
55
|
let t = G(e.dataKey) ?? G(e.name);
|
|
56
56
|
if (!t) return;
|
|
57
|
-
let n = { dataKey: t }, r =
|
|
57
|
+
let n = { dataKey: t }, r = B(e.label);
|
|
58
58
|
r && (n.label = r);
|
|
59
59
|
let i = G(e.chartType) ?? G(e.type);
|
|
60
60
|
(i === "bar" || i === "line" || i === "area") && (n.chartType = i);
|
|
@@ -71,17 +71,17 @@ function U(e) {
|
|
|
71
71
|
let u = G(e.color);
|
|
72
72
|
return u && (n.color = u), n;
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function He(e) {
|
|
75
75
|
if (!W(e)) return {};
|
|
76
76
|
let t = {}, n = G(e.type), r = G(e.chartType) ?? G(e.specType) ?? (n && Xe.has(n) ? n : void 0);
|
|
77
77
|
r && qe.has(r) && (t.chartType = r);
|
|
78
|
-
let i = e.xAxis, a =
|
|
78
|
+
let i = e.xAxis, a = V(i);
|
|
79
79
|
a && (a.format || a.title || a.showGridLines !== void 0) && (t.xAxis = a);
|
|
80
80
|
let o = G(e.xAxisKey) ?? a?.field ?? G(i);
|
|
81
81
|
o && (t.xAxisKey = o);
|
|
82
|
-
let s = (Array.isArray(e.yAxis) ? e.yAxis : e.yAxis === void 0 ? [] : [e.yAxis]).map((e) =>
|
|
82
|
+
let s = (Array.isArray(e.yAxis) ? e.yAxis : e.yAxis === void 0 ? [] : [e.yAxis]).map((e) => V(e) ?? (G(e) ? { field: G(e) } : void 0)).filter((e) => !!e);
|
|
83
83
|
s.length && (t.yAxes = s);
|
|
84
|
-
let c = (Array.isArray(e.series) ? e.series : Array.isArray(e.categories) ? e.categories : void 0)?.map(
|
|
84
|
+
let c = (Array.isArray(e.series) ? e.series : Array.isArray(e.categories) ? e.categories : void 0)?.map(H).filter((e) => !!e);
|
|
85
85
|
if (!c?.length) {
|
|
86
86
|
let e = s.filter((e) => e.field).map((e, t) => ({
|
|
87
87
|
dataKey: e.field,
|
|
@@ -91,28 +91,28 @@ function Ve(e) {
|
|
|
91
91
|
e.length && (c = e);
|
|
92
92
|
}
|
|
93
93
|
c?.length && (t.series = c), typeof e.showLegend == "boolean" && (t.showLegend = e.showLegend), typeof e.showDataLabels == "boolean" && (t.showDataLabels = e.showDataLabels);
|
|
94
|
-
let l =
|
|
94
|
+
let l = B(e.title);
|
|
95
95
|
l && (t.title = l);
|
|
96
|
-
let u =
|
|
96
|
+
let u = B(e.subtitle);
|
|
97
97
|
u && (t.subtitle = u);
|
|
98
|
-
let d =
|
|
98
|
+
let d = B(e.description);
|
|
99
99
|
d && (t.description = d);
|
|
100
100
|
let f = K(e.height);
|
|
101
101
|
return f !== void 0 && f > 0 && (t.height = f), Array.isArray(e.annotations) && e.annotations.length && (t.annotations = e.annotations.filter(W)), W(e.interaction) && (t.interaction = e.interaction), t;
|
|
102
102
|
}
|
|
103
|
-
function
|
|
103
|
+
function Ue(e) {
|
|
104
104
|
if (e === "bar" || e === "column") return "bar";
|
|
105
105
|
if (e === "line") return "line";
|
|
106
106
|
if (e === "area") return "area";
|
|
107
107
|
}
|
|
108
|
-
function
|
|
108
|
+
function We(e, t) {
|
|
109
109
|
if (e === "combo") return "combo";
|
|
110
|
-
let n =
|
|
110
|
+
let n = Ue(e);
|
|
111
111
|
if (!n || !t || t.length < 2) return e;
|
|
112
112
|
let r = t.map((e) => e.chartType ?? n);
|
|
113
113
|
return new Set(r).size > 1 ? "combo" : e;
|
|
114
114
|
}
|
|
115
|
-
function
|
|
115
|
+
function U(e) {
|
|
116
116
|
if (!e) return;
|
|
117
117
|
let t = e.includes("%"), n = /^([$£€¥₹])/.exec(e), r = e.includes(","), i = /\.(0+)/.exec(e)?.[1].length ?? 0, a = {
|
|
118
118
|
$: "USD",
|
|
@@ -151,9 +151,9 @@ function Ge(e, t) {
|
|
|
151
151
|
function Ke(e) {
|
|
152
152
|
if (!e) return;
|
|
153
153
|
let { min: t, max: n } = e;
|
|
154
|
-
if (
|
|
154
|
+
if (t !== void 0 || n !== void 0) return [t ?? "auto", n ?? "auto"];
|
|
155
155
|
}
|
|
156
|
-
var qe, Je, Ye, Xe, W, G, K, Ze, Qe =
|
|
156
|
+
var qe, Je, Ye, Xe, W, G, K, Ze, Qe = R((() => {
|
|
157
157
|
qe = /* @__PURE__ */ new Set([
|
|
158
158
|
"bar",
|
|
159
159
|
"column",
|
|
@@ -179,33 +179,33 @@ var qe, Je, Ye, Xe, W, G, K, Ze, Qe = z((() => {
|
|
|
179
179
|
...Je,
|
|
180
180
|
...Ye
|
|
181
181
|
]), W = (e) => !!e && typeof e == "object" && !Array.isArray(e), G = (e) => typeof e == "string" && e ? e : void 0, K = (e) => typeof e == "number" && Number.isFinite(e) ? e : void 0, Ze = 200;
|
|
182
|
-
})), $e = /* @__PURE__ */
|
|
182
|
+
})), $e = /* @__PURE__ */ z({ default: () => tt });
|
|
183
183
|
function et(e, t = 14) {
|
|
184
184
|
return e.length > t ? `${e.slice(0, t - 1)}…` : e;
|
|
185
185
|
}
|
|
186
186
|
function q({ x: e, y: t, payload: n }) {
|
|
187
187
|
let r = String(n?.value ?? ""), i = et(r);
|
|
188
|
-
return /* @__PURE__ */
|
|
188
|
+
return /* @__PURE__ */ w("g", {
|
|
189
189
|
transform: `translate(${e},${t})`,
|
|
190
|
-
children: /* @__PURE__ */
|
|
190
|
+
children: /* @__PURE__ */ T("text", {
|
|
191
191
|
dy: 10,
|
|
192
192
|
textAnchor: "end",
|
|
193
193
|
transform: "rotate(-32)",
|
|
194
194
|
fill: "hsl(var(--muted-foreground))",
|
|
195
195
|
fontSize: 11,
|
|
196
196
|
fontFamily: "monospace",
|
|
197
|
-
children: [r !== i && /* @__PURE__ */
|
|
197
|
+
children: [r !== i && /* @__PURE__ */ w("title", { children: r }), i]
|
|
198
198
|
})
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
function tt({ data: e = [], dataKey: t = "value", xAxisKey: n = "name", height: r = 400, className: i = "", color: a = "hsl(var(--primary))" }) {
|
|
202
202
|
let o = e.map((e) => String(e?.[n] ?? "")), s = o.length > 4 || o.some((e) => e.length > 8);
|
|
203
|
-
return /* @__PURE__ */
|
|
203
|
+
return /* @__PURE__ */ w("div", {
|
|
204
204
|
className: `p-2 sm:p-3 md:p-4 rounded-xl border border-border bg-card/40 backdrop-blur-sm shadow-lg shadow-background/5 ${i}`,
|
|
205
|
-
children: /* @__PURE__ */
|
|
205
|
+
children: /* @__PURE__ */ w(Ae, {
|
|
206
206
|
width: "100%",
|
|
207
207
|
height: r,
|
|
208
|
-
children: /* @__PURE__ */
|
|
208
|
+
children: /* @__PURE__ */ T(E, {
|
|
209
209
|
data: e,
|
|
210
210
|
margin: {
|
|
211
211
|
top: 10,
|
|
@@ -214,66 +214,66 @@ function tt({ data: e = [], dataKey: t = "value", xAxisKey: n = "name", height:
|
|
|
214
214
|
bottom: s ? 24 : 5
|
|
215
215
|
},
|
|
216
216
|
children: [
|
|
217
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ T("defs", { children: [/* @__PURE__ */ T("linearGradient", {
|
|
218
218
|
id: "barGradient",
|
|
219
219
|
x1: "0",
|
|
220
220
|
y1: "0",
|
|
221
221
|
x2: "0",
|
|
222
222
|
y2: "1",
|
|
223
223
|
children: [
|
|
224
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ w("stop", {
|
|
225
225
|
offset: "0%",
|
|
226
226
|
stopColor: a,
|
|
227
227
|
stopOpacity: 1
|
|
228
228
|
}),
|
|
229
|
-
/* @__PURE__ */
|
|
229
|
+
/* @__PURE__ */ w("stop", {
|
|
230
230
|
offset: "90%",
|
|
231
231
|
stopColor: a,
|
|
232
232
|
stopOpacity: .6
|
|
233
233
|
}),
|
|
234
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ w("stop", {
|
|
235
235
|
offset: "100%",
|
|
236
236
|
stopColor: a,
|
|
237
237
|
stopOpacity: .3
|
|
238
238
|
})
|
|
239
239
|
]
|
|
240
|
-
}), /* @__PURE__ */
|
|
240
|
+
}), /* @__PURE__ */ T("filter", {
|
|
241
241
|
id: "glow",
|
|
242
242
|
height: "130%",
|
|
243
243
|
children: [
|
|
244
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ w("feGaussianBlur", {
|
|
245
245
|
in: "SourceAlpha",
|
|
246
246
|
stdDeviation: "3",
|
|
247
247
|
result: "blur"
|
|
248
248
|
}),
|
|
249
|
-
/* @__PURE__ */
|
|
249
|
+
/* @__PURE__ */ w("feOffset", {
|
|
250
250
|
in: "blur",
|
|
251
251
|
dx: "0",
|
|
252
252
|
dy: "0",
|
|
253
253
|
result: "offsetBlur"
|
|
254
254
|
}),
|
|
255
|
-
/* @__PURE__ */
|
|
255
|
+
/* @__PURE__ */ w("feFlood", {
|
|
256
256
|
floodColor: a,
|
|
257
257
|
floodOpacity: "0.5",
|
|
258
258
|
result: "offsetColor"
|
|
259
259
|
}),
|
|
260
|
-
/* @__PURE__ */
|
|
260
|
+
/* @__PURE__ */ w("feComposite", {
|
|
261
261
|
in: "offsetColor",
|
|
262
262
|
in2: "offsetBlur",
|
|
263
263
|
operator: "in",
|
|
264
264
|
result: "offsetBlur"
|
|
265
265
|
}),
|
|
266
|
-
/* @__PURE__ */
|
|
266
|
+
/* @__PURE__ */ T("feMerge", { children: [/* @__PURE__ */ w("feMergeNode", { in: "offsetBlur" }), /* @__PURE__ */ w("feMergeNode", { in: "SourceGraphic" })] })
|
|
267
267
|
]
|
|
268
268
|
})] }),
|
|
269
|
-
/* @__PURE__ */
|
|
269
|
+
/* @__PURE__ */ w(ge, {
|
|
270
270
|
strokeDasharray: "3 3",
|
|
271
271
|
stroke: "hsl(var(--border))",
|
|
272
272
|
vertical: !1
|
|
273
273
|
}),
|
|
274
|
-
/* @__PURE__ */
|
|
274
|
+
/* @__PURE__ */ w(P, {
|
|
275
275
|
dataKey: n,
|
|
276
|
-
tick: s ? /* @__PURE__ */
|
|
276
|
+
tick: s ? /* @__PURE__ */ w(q, {}) : {
|
|
277
277
|
fill: "hsl(var(--muted-foreground))",
|
|
278
278
|
fontSize: 12,
|
|
279
279
|
fontFamily: "monospace"
|
|
@@ -284,7 +284,7 @@ function tt({ data: e = [], dataKey: t = "value", xAxisKey: n = "name", height:
|
|
|
284
284
|
height: s ? 56 : void 0,
|
|
285
285
|
dy: s ? void 0 : 10
|
|
286
286
|
}),
|
|
287
|
-
/* @__PURE__ */
|
|
287
|
+
/* @__PURE__ */ w(F, {
|
|
288
288
|
tick: {
|
|
289
289
|
fill: "hsl(var(--muted-foreground))",
|
|
290
290
|
fontSize: 12,
|
|
@@ -293,7 +293,7 @@ function tt({ data: e = [], dataKey: t = "value", xAxisKey: n = "name", height:
|
|
|
293
293
|
tickLine: !1,
|
|
294
294
|
axisLine: !1
|
|
295
295
|
}),
|
|
296
|
-
/* @__PURE__ */
|
|
296
|
+
/* @__PURE__ */ w(M, {
|
|
297
297
|
cursor: {
|
|
298
298
|
fill: "hsl(var(--muted))",
|
|
299
299
|
opacity: .2
|
|
@@ -308,11 +308,11 @@ function tt({ data: e = [], dataKey: t = "value", xAxisKey: n = "name", height:
|
|
|
308
308
|
},
|
|
309
309
|
itemStyle: { color: "hsl(var(--primary))" }
|
|
310
310
|
}),
|
|
311
|
-
/* @__PURE__ */
|
|
311
|
+
/* @__PURE__ */ w(A, { wrapperStyle: {
|
|
312
312
|
paddingTop: "20px",
|
|
313
313
|
fontFamily: "monospace"
|
|
314
314
|
} }),
|
|
315
|
-
/* @__PURE__ */
|
|
315
|
+
/* @__PURE__ */ w(me, {
|
|
316
316
|
dataKey: t,
|
|
317
317
|
fill: "url(#barGradient)",
|
|
318
318
|
radius: [
|
|
@@ -329,7 +329,7 @@ function tt({ data: e = [], dataKey: t = "value", xAxisKey: n = "name", height:
|
|
|
329
329
|
})
|
|
330
330
|
});
|
|
331
331
|
}
|
|
332
|
-
var nt =
|
|
332
|
+
var nt = R((() => {}));
|
|
333
333
|
//#endregion
|
|
334
334
|
//#region src/ChartContainerImpl.tsx
|
|
335
335
|
function rt() {
|
|
@@ -353,9 +353,9 @@ function J({ id: e, className: t, children: n, config: r, disableSettleRemount:
|
|
|
353
353
|
return r.observe(e), () => {
|
|
354
354
|
t = !0, n != null && clearTimeout(n), r.disconnect();
|
|
355
355
|
};
|
|
356
|
-
}, [i]), /* @__PURE__ */
|
|
356
|
+
}, [i]), /* @__PURE__ */ w(st.Provider, {
|
|
357
357
|
value: { config: r },
|
|
358
|
-
children: /* @__PURE__ */
|
|
358
|
+
children: /* @__PURE__ */ T("div", {
|
|
359
359
|
ref: c,
|
|
360
360
|
"data-slot": "chart",
|
|
361
361
|
"data-chart": s,
|
|
@@ -366,10 +366,10 @@ function J({ id: e, className: t, children: n, config: r, disableSettleRemount:
|
|
|
366
366
|
...a.style
|
|
367
367
|
},
|
|
368
368
|
...a,
|
|
369
|
-
children: [/* @__PURE__ */
|
|
369
|
+
children: [/* @__PURE__ */ w(ct, {
|
|
370
370
|
id: s,
|
|
371
371
|
config: r
|
|
372
|
-
}), /* @__PURE__ */
|
|
372
|
+
}), /* @__PURE__ */ w(Ae, {
|
|
373
373
|
width: "100%",
|
|
374
374
|
height: "100%",
|
|
375
375
|
children: n
|
|
@@ -381,10 +381,10 @@ function it({ active: e, payload: t, className: n, indicator: r = "dot", hideLab
|
|
|
381
381
|
let { config: p } = rt(), h = m.useMemo(() => {
|
|
382
382
|
if (i || !t?.length) return null;
|
|
383
383
|
let [e] = t, n = `${f || e?.dataKey || e?.name || "value"}`, r = ot(p, e, n), a = !f && typeof o == "string" ? p[o]?.label || o : r?.label;
|
|
384
|
-
return s ? /* @__PURE__ */
|
|
384
|
+
return s ? /* @__PURE__ */ w("div", {
|
|
385
385
|
className: Y("font-medium", c),
|
|
386
386
|
children: s(a, t)
|
|
387
|
-
}) : a ? /* @__PURE__ */
|
|
387
|
+
}) : a ? /* @__PURE__ */ w("div", {
|
|
388
388
|
className: Y("font-medium", c),
|
|
389
389
|
children: a
|
|
390
390
|
}) : null;
|
|
@@ -399,29 +399,29 @@ function it({ active: e, payload: t, className: n, indicator: r = "dot", hideLab
|
|
|
399
399
|
]);
|
|
400
400
|
if (!e || !t?.length) return null;
|
|
401
401
|
let g = t.length === 1 && r !== "dot";
|
|
402
|
-
return /* @__PURE__ */
|
|
402
|
+
return /* @__PURE__ */ T("div", {
|
|
403
403
|
className: Y("border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl", n),
|
|
404
|
-
children: [g ? null : h, /* @__PURE__ */
|
|
404
|
+
children: [g ? null : h, /* @__PURE__ */ w("div", {
|
|
405
405
|
className: "grid gap-1.5",
|
|
406
406
|
children: t.filter((e) => e.type !== "none").map((e, t) => {
|
|
407
407
|
let n = `${d || e.name || e.dataKey || "value"}`, i = ot(p, e, n), o = u || e.payload.fill || e.color;
|
|
408
|
-
return /* @__PURE__ */
|
|
408
|
+
return /* @__PURE__ */ w("div", {
|
|
409
409
|
className: Y("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", r === "dot" ? "items-center" : ""),
|
|
410
|
-
children: l && e?.value !== void 0 && e.name ? l(e.value, e.name, e, t, e.payload) : /* @__PURE__ */
|
|
410
|
+
children: l && e?.value !== void 0 && e.name ? l(e.value, e.name, e, t, e.payload) : /* @__PURE__ */ T(de, { children: [i?.icon ? /* @__PURE__ */ w(i.icon, {}) : !a && /* @__PURE__ */ w("div", {
|
|
411
411
|
className: Y("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", r === "dot" ? "h-2.5 w-2.5" : "", r === "line" ? "w-1" : "", r === "dashed" ? "w-0 border-[1.5px] border-dashed bg-transparent" : "", g && r === "dashed" ? "my-0.5" : ""),
|
|
412
412
|
style: {
|
|
413
413
|
"--color-bg": o,
|
|
414
414
|
"--color-border": o
|
|
415
415
|
}
|
|
416
|
-
}), /* @__PURE__ */
|
|
416
|
+
}), /* @__PURE__ */ T("div", {
|
|
417
417
|
className: Y("flex flex-1 justify-between leading-none", g ? "items-end" : "items-center"),
|
|
418
|
-
children: [/* @__PURE__ */
|
|
418
|
+
children: [/* @__PURE__ */ T("div", {
|
|
419
419
|
className: "grid gap-1.5",
|
|
420
|
-
children: [g ? h : null, /* @__PURE__ */
|
|
420
|
+
children: [g ? h : null, /* @__PURE__ */ w("span", {
|
|
421
421
|
className: "text-muted-foreground",
|
|
422
422
|
children: i?.label || e.name
|
|
423
423
|
})]
|
|
424
|
-
}), e.value && /* @__PURE__ */
|
|
424
|
+
}), e.value && /* @__PURE__ */ w("span", {
|
|
425
425
|
className: "text-foreground font-mono font-medium tabular-nums",
|
|
426
426
|
children: e.value.toLocaleString()
|
|
427
427
|
})]
|
|
@@ -433,13 +433,13 @@ function it({ active: e, payload: t, className: n, indicator: r = "dot", hideLab
|
|
|
433
433
|
}
|
|
434
434
|
function at({ className: e, hideIcon: t = !1, payload: n, verticalAlign: r = "bottom", nameKey: i }) {
|
|
435
435
|
let { config: a } = rt();
|
|
436
|
-
return n?.length ? /* @__PURE__ */
|
|
436
|
+
return n?.length ? /* @__PURE__ */ w("div", {
|
|
437
437
|
className: Y("flex items-center justify-center gap-4", r === "top" ? "pb-3" : "pt-3", e),
|
|
438
438
|
children: n.filter((e) => e.type !== "none").map((e) => {
|
|
439
439
|
let n = `${i || e.dataKey || "value"}`, r = ot(a, e, n);
|
|
440
|
-
return /* @__PURE__ */
|
|
440
|
+
return /* @__PURE__ */ T("div", {
|
|
441
441
|
className: Y("[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"),
|
|
442
|
-
children: [r?.icon && !t ? /* @__PURE__ */
|
|
442
|
+
children: [r?.icon && !t ? /* @__PURE__ */ w(r.icon, {}) : /* @__PURE__ */ w("div", {
|
|
443
443
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
444
444
|
style: { backgroundColor: e.color }
|
|
445
445
|
}), r?.label]
|
|
@@ -452,13 +452,13 @@ function ot(e, t, n) {
|
|
|
452
452
|
let r = "payload" in t && typeof t.payload == "object" && t.payload !== null ? t.payload : void 0, i = n;
|
|
453
453
|
return r && n in r && typeof r[n] == "string" ? i = r[n] : n in t && typeof t[n] == "string" && (i = t[n]), i in e ? e[i] : e[n];
|
|
454
454
|
}
|
|
455
|
-
var Y, X, st, ct, Z, lt, ut =
|
|
455
|
+
var Y, X, st, ct, Z, lt, ut = R((() => {
|
|
456
456
|
Y = (...e) => e.filter(Boolean).join(" "), X = {
|
|
457
457
|
light: "",
|
|
458
458
|
dark: ".dark"
|
|
459
459
|
}, st = m.createContext(null), ct = ({ id: e, config: t }) => {
|
|
460
460
|
let n = Object.entries(t).filter(([, e]) => e.theme || e.color);
|
|
461
|
-
return n.length ? /* @__PURE__ */
|
|
461
|
+
return n.length ? /* @__PURE__ */ w("style", { dangerouslySetInnerHTML: { __html: Object.entries(X).map(([t, r]) => `
|
|
462
462
|
${r} [data-chart=${e}] {
|
|
463
463
|
${n.map(([e, n]) => {
|
|
464
464
|
let r = n.theme?.[t] || n.color;
|
|
@@ -466,7 +466,7 @@ ${n.map(([e, n]) => {
|
|
|
466
466
|
}).join("\n")}
|
|
467
467
|
}
|
|
468
468
|
`).join("\n") } }) : null;
|
|
469
|
-
}, Z =
|
|
469
|
+
}, Z = M, lt = A;
|
|
470
470
|
}));
|
|
471
471
|
//#endregion
|
|
472
472
|
//#region src/chartDrillEvents.ts
|
|
@@ -504,10 +504,10 @@ function mt(e, t) {
|
|
|
504
504
|
value: typeof n?.value == "number" ? n.value : void 0
|
|
505
505
|
};
|
|
506
506
|
}
|
|
507
|
-
var ht =
|
|
507
|
+
var ht = R((() => {})), gt = /* @__PURE__ */ z({ default: () => xt });
|
|
508
508
|
function _t(e) {
|
|
509
509
|
let { x: t, y: n, width: r, height: i, name: a, fill: o } = e;
|
|
510
|
-
return r <= 0 || i <= 0 ? null : /* @__PURE__ */
|
|
510
|
+
return r <= 0 || i <= 0 ? null : /* @__PURE__ */ T("g", { children: [/* @__PURE__ */ w("rect", {
|
|
511
511
|
x: t,
|
|
512
512
|
y: n,
|
|
513
513
|
width: r,
|
|
@@ -515,7 +515,7 @@ function _t(e) {
|
|
|
515
515
|
fill: o,
|
|
516
516
|
stroke: "hsl(var(--background))",
|
|
517
517
|
strokeWidth: 2
|
|
518
|
-
}), r > 48 && i > 18 ? /* @__PURE__ */
|
|
518
|
+
}), r > 48 && i > 18 ? /* @__PURE__ */ w("text", {
|
|
519
519
|
x: t + 6,
|
|
520
520
|
y: n + 18,
|
|
521
521
|
fill: "#fff",
|
|
@@ -525,25 +525,25 @@ function _t(e) {
|
|
|
525
525
|
}) : null] });
|
|
526
526
|
}
|
|
527
527
|
function vt({ title: e, subtitle: t, children: n }) {
|
|
528
|
-
return !e && !t ? /* @__PURE__ */
|
|
528
|
+
return !e && !t ? /* @__PURE__ */ w(de, { children: n }) : /* @__PURE__ */ T("div", {
|
|
529
529
|
className: "flex h-full w-full flex-col",
|
|
530
|
-
children: [/* @__PURE__ */
|
|
530
|
+
children: [/* @__PURE__ */ T("div", {
|
|
531
531
|
className: "mb-2 shrink-0",
|
|
532
|
-
children: [e ? /* @__PURE__ */
|
|
532
|
+
children: [e ? /* @__PURE__ */ w("div", {
|
|
533
533
|
className: "text-sm font-medium leading-tight text-foreground",
|
|
534
534
|
children: e
|
|
535
|
-
}) : null, t ? /* @__PURE__ */
|
|
535
|
+
}) : null, t ? /* @__PURE__ */ w("div", {
|
|
536
536
|
className: "text-xs leading-tight text-muted-foreground",
|
|
537
537
|
children: t
|
|
538
538
|
}) : null]
|
|
539
|
-
}), /* @__PURE__ */
|
|
539
|
+
}), /* @__PURE__ */ w("div", {
|
|
540
540
|
className: "min-h-0 flex-1",
|
|
541
541
|
children: n
|
|
542
542
|
})]
|
|
543
543
|
});
|
|
544
544
|
}
|
|
545
545
|
function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i = "name", series: a = [], className: o = "", colors: s, categoryColors: c, categoryOrder: l, onChartClick: u, isAnimationActive: d, xAxis: f, yAxes: p, showLegend: h, showDataLabels: g, title: ee, subtitle: te, description: ne, height: _, annotations: re, interaction: v }) {
|
|
546
|
-
let ie = e === "column" ? "bar" : e, y =
|
|
546
|
+
let ie = e === "column" ? "bar" : e, y = We(ie, a), ae = Ue(ie), b = Array.isArray(n) ? n : [], x = d === !1 ? { isAnimationActive: !1 } : {}, S = {
|
|
547
547
|
...d === !1 ? { disableSettleRemount: !0 } : {},
|
|
548
548
|
..._ ? { style: { height: _ } } : {},
|
|
549
549
|
...ne ? {
|
|
@@ -573,10 +573,10 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
573
573
|
]), le = u ? {
|
|
574
574
|
onClick: se,
|
|
575
575
|
style: { cursor: "pointer" }
|
|
576
|
-
} : {},
|
|
576
|
+
} : {}, ue = u ? {
|
|
577
577
|
onClick: ce,
|
|
578
578
|
style: { cursor: "pointer" }
|
|
579
|
-
} : {}, A = m.useCallback((e, t, n) => c && c[e == null ? "" : String(e)] || n[t % n.length], [c]),
|
|
579
|
+
} : {}, A = m.useCallback((e, t, n) => c && c[e == null ? "" : String(e)] || n[t % n.length], [c]), Ae = m.useCallback((e) => {
|
|
580
580
|
if (!u) return;
|
|
581
581
|
let t = ft(e, i, a);
|
|
582
582
|
t && u(t);
|
|
@@ -584,42 +584,42 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
584
584
|
u,
|
|
585
585
|
i,
|
|
586
586
|
a
|
|
587
|
-
]),
|
|
587
|
+
]), Pe = m.useCallback((e) => {
|
|
588
588
|
if (!u) return;
|
|
589
589
|
let t = pt(e, a);
|
|
590
590
|
t && u(t);
|
|
591
|
-
}, [u, a]),
|
|
591
|
+
}, [u, a]), Fe = m.useCallback((e) => {
|
|
592
592
|
if (!u) return;
|
|
593
593
|
let t = mt(e, a);
|
|
594
594
|
t && u(t);
|
|
595
|
-
}, [u, a]),
|
|
596
|
-
onClick:
|
|
595
|
+
}, [u, a]), Ie = u ? {
|
|
596
|
+
onClick: Ae,
|
|
597
597
|
cursor: "pointer"
|
|
598
|
-
} : {}, Ie = u ? {
|
|
599
|
-
onClick: Ne,
|
|
600
|
-
style: { cursor: "pointer" }
|
|
601
598
|
} : {}, Le = u ? {
|
|
602
599
|
onClick: Pe,
|
|
603
600
|
style: { cursor: "pointer" }
|
|
601
|
+
} : {}, Re = u ? {
|
|
602
|
+
onClick: Fe,
|
|
603
|
+
style: { cursor: "pointer" }
|
|
604
604
|
} : {};
|
|
605
605
|
m.useEffect(() => {
|
|
606
606
|
let e = () => oe(window.innerWidth < 640);
|
|
607
607
|
return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
608
608
|
}, []);
|
|
609
|
-
let
|
|
610
|
-
bar:
|
|
611
|
-
"horizontal-bar":
|
|
609
|
+
let ze = {
|
|
610
|
+
bar: E,
|
|
611
|
+
"horizontal-bar": E,
|
|
612
612
|
line: be,
|
|
613
|
-
area:
|
|
613
|
+
area: pe,
|
|
614
614
|
pie: Se,
|
|
615
615
|
donut: Se,
|
|
616
616
|
radar: De,
|
|
617
|
-
scatter:
|
|
618
|
-
funnel:
|
|
619
|
-
combo:
|
|
620
|
-
treemap:
|
|
621
|
-
sankey:
|
|
622
|
-
}[y] ||
|
|
617
|
+
scatter: j,
|
|
618
|
+
funnel: O,
|
|
619
|
+
combo: _e,
|
|
620
|
+
treemap: E,
|
|
621
|
+
sankey: E
|
|
622
|
+
}[y] || E, Be = m.useCallback((e) => {
|
|
623
623
|
if (e == null || e === "") return "";
|
|
624
624
|
let t = r?.[String(e)]?.label;
|
|
625
625
|
if (t != null) return String(t);
|
|
@@ -627,7 +627,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
627
627
|
if (/^\d{4}-\d{2}-\d{2}/.test(n)) {
|
|
628
628
|
let e = new Date(n);
|
|
629
629
|
if (!Number.isNaN(e.getTime())) {
|
|
630
|
-
let t = (b.length > 1 ? Math.abs(new Date(String(b[b.length - 1][i] ?? "")).getTime() - new Date(String(b[0][i] ?? "")).getTime()) : 0) /
|
|
630
|
+
let t = (b.length > 1 ? Math.abs(new Date(String(b[b.length - 1][i] ?? "")).getTime() - new Date(String(b[0][i] ?? "")).getTime()) : 0) / 864e5;
|
|
631
631
|
try {
|
|
632
632
|
return t <= 62 ? e.toLocaleDateString(void 0, {
|
|
633
633
|
month: "short",
|
|
@@ -647,13 +647,13 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
647
647
|
i,
|
|
648
648
|
C,
|
|
649
649
|
r
|
|
650
|
-
]),
|
|
650
|
+
]), Ve = m.useMemo(() => b.some((e) => String(e[i] || "").length > 5), [b, i]), I = () => Array.isArray(s) && s.length > 0 ? s : [
|
|
651
651
|
"hsl(var(--chart-1))",
|
|
652
652
|
"hsl(var(--chart-2))",
|
|
653
653
|
"hsl(var(--chart-3))",
|
|
654
654
|
"hsl(var(--chart-4))",
|
|
655
655
|
"hsl(var(--chart-5))"
|
|
656
|
-
],
|
|
656
|
+
], L = m.useCallback((e) => {
|
|
657
657
|
if (e == null || e === "") return "";
|
|
658
658
|
let t = typeof e == "number" ? e : Number(e);
|
|
659
659
|
if (!Number.isFinite(t)) return String(e);
|
|
@@ -665,8 +665,8 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
665
665
|
} catch {
|
|
666
666
|
return String(t);
|
|
667
667
|
}
|
|
668
|
-
}, []),
|
|
669
|
-
let t = a.filter((t) =>
|
|
668
|
+
}, []), R = p?.[0], z = p && p.length > 1 ? p[1] : R?.position === "right" ? R : void 0, B = !!p && p.length > 1, V = m.useMemo(() => U(f?.format) ?? Be, [f?.format, Be]), H = m.useMemo(() => U(R?.format) ?? L, [R?.format, L]), He = m.useMemo(() => U(z?.format) ?? L, [z?.format, L]), Xe = m.useCallback((e) => {
|
|
669
|
+
let t = a.filter((t) => B ? (t.yAxis === "right" ? "right" : "left") === e : e === "left").map((e) => e.dataKey), n = [];
|
|
670
670
|
for (let e of b) for (let r of t) {
|
|
671
671
|
let t = Number(e?.[r]);
|
|
672
672
|
Number.isFinite(t) && n.push(t);
|
|
@@ -675,7 +675,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
675
675
|
}, [
|
|
676
676
|
b,
|
|
677
677
|
a,
|
|
678
|
-
|
|
678
|
+
B
|
|
679
679
|
]), W = m.useCallback((e, t = "left") => {
|
|
680
680
|
if (!e) return {};
|
|
681
681
|
let n = Ke(e), r = Ge(e, Xe(t));
|
|
@@ -693,7 +693,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
693
693
|
position: "insideLeft"
|
|
694
694
|
} } : {}
|
|
695
695
|
};
|
|
696
|
-
}, [Xe]), G =
|
|
696
|
+
}, [Xe]), G = R?.showGridLines !== !1, K = {
|
|
697
697
|
vertical: f?.showGridLines === !0,
|
|
698
698
|
horizontal: G
|
|
699
699
|
}, Ze = h !== !1, Qe = m.useMemo(() => {
|
|
@@ -710,34 +710,38 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
710
710
|
fill: i,
|
|
711
711
|
fontSize: 11
|
|
712
712
|
} } : {};
|
|
713
|
-
|
|
714
|
-
|
|
713
|
+
if (t?.type === "region") {
|
|
714
|
+
let e = r ? {
|
|
715
715
|
x1: t.value,
|
|
716
716
|
x2: t.endValue
|
|
717
717
|
} : {
|
|
718
718
|
y1: t.value,
|
|
719
719
|
y2: t.endValue
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
720
|
+
};
|
|
721
|
+
return /* @__PURE__ */ w(Oe, {
|
|
722
|
+
...e,
|
|
723
|
+
...B && !r ? { yAxisId: "left" } : {},
|
|
724
|
+
fill: i,
|
|
725
|
+
fillOpacity: .12,
|
|
726
|
+
stroke: i,
|
|
727
|
+
strokeOpacity: .35,
|
|
728
|
+
...s
|
|
729
|
+
}, `ann-${n}`);
|
|
730
|
+
}
|
|
731
|
+
return /* @__PURE__ */ w(ke, {
|
|
728
732
|
...r ? { x: t?.value } : { y: t?.value },
|
|
729
|
-
...
|
|
733
|
+
...B && !r ? { yAxisId: "left" } : {},
|
|
730
734
|
stroke: i,
|
|
731
735
|
strokeDasharray: a,
|
|
732
736
|
...s
|
|
733
737
|
}, `ann-${n}`);
|
|
734
738
|
});
|
|
735
|
-
}, [re,
|
|
739
|
+
}, [re, B]), $e = v?.tooltips !== !1, et = v?.brush === !0 ? /* @__PURE__ */ w(he, {
|
|
736
740
|
dataKey: i,
|
|
737
741
|
height: 24,
|
|
738
742
|
travellerWidth: 8,
|
|
739
743
|
stroke: "hsl(var(--muted-foreground))"
|
|
740
|
-
}) : null, q = (e) => g ? /* @__PURE__ */
|
|
744
|
+
}) : null, q = (e) => g ? /* @__PURE__ */ w(k, {
|
|
741
745
|
position: "top",
|
|
742
746
|
className: "fill-foreground",
|
|
743
747
|
fontSize: 11,
|
|
@@ -748,41 +752,41 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
748
752
|
axisLine: !1,
|
|
749
753
|
interval: "preserveStartEnd",
|
|
750
754
|
minTickGap: C ? 32 : 48,
|
|
751
|
-
tickFormatter:
|
|
755
|
+
tickFormatter: V,
|
|
752
756
|
...f?.title ? { label: {
|
|
753
757
|
value: f.title,
|
|
754
758
|
position: "insideBottom",
|
|
755
759
|
offset: -4
|
|
756
760
|
} } : {},
|
|
757
|
-
...!C &&
|
|
761
|
+
...!C && Ve && {
|
|
758
762
|
angle: -35,
|
|
759
763
|
textAnchor: "end",
|
|
760
764
|
height: 60
|
|
761
765
|
}
|
|
762
766
|
}), [
|
|
763
767
|
C,
|
|
764
|
-
|
|
765
|
-
|
|
768
|
+
Ve,
|
|
769
|
+
V,
|
|
766
770
|
f?.title
|
|
767
771
|
]);
|
|
768
772
|
if (y && Je.has(y)) {
|
|
769
773
|
let e = a[0]?.dataKey || "value", t = b[0]?.[e], n = typeof t == "number" ? t : Number(t), i = a[0]?.label ?? r?.[e]?.label ?? e;
|
|
770
|
-
return /* @__PURE__ */
|
|
774
|
+
return /* @__PURE__ */ w("div", {
|
|
771
775
|
className: o,
|
|
772
776
|
"data-testid": "advanced-chart-single-value",
|
|
773
|
-
children: /* @__PURE__ */
|
|
777
|
+
children: /* @__PURE__ */ T("div", {
|
|
774
778
|
className: "flex flex-col gap-1 py-4",
|
|
775
|
-
children: [/* @__PURE__ */
|
|
779
|
+
children: [/* @__PURE__ */ w("span", {
|
|
776
780
|
className: "text-3xl font-semibold tabular-nums",
|
|
777
781
|
children: Number.isFinite(n) ? new Intl.NumberFormat().format(n) : String(t ?? "—")
|
|
778
|
-
}), /* @__PURE__ */
|
|
782
|
+
}), /* @__PURE__ */ w("span", {
|
|
779
783
|
className: "text-xs text-muted-foreground",
|
|
780
784
|
children: String(i)
|
|
781
785
|
})]
|
|
782
786
|
})
|
|
783
787
|
});
|
|
784
788
|
}
|
|
785
|
-
if (y && Ye.has(y)) return /* @__PURE__ */
|
|
789
|
+
if (y && Ye.has(y)) return /* @__PURE__ */ T("div", {
|
|
786
790
|
className: `rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground ${o ?? ""}`,
|
|
787
791
|
"data-testid": "advanced-chart-tabular-notice",
|
|
788
792
|
role: "note",
|
|
@@ -792,7 +796,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
792
796
|
"” is tabular — render it with the data-table / pivot components; a chart block draws series charts."
|
|
793
797
|
]
|
|
794
798
|
});
|
|
795
|
-
if (y && !qe.has(y)) return /* @__PURE__ */
|
|
799
|
+
if (y && !qe.has(y)) return /* @__PURE__ */ T("div", {
|
|
796
800
|
className: `rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground ${o ?? ""}`,
|
|
797
801
|
"data-testid": "advanced-chart-unknown-type",
|
|
798
802
|
role: "note",
|
|
@@ -803,7 +807,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
803
807
|
]
|
|
804
808
|
});
|
|
805
809
|
if (y === "pie" || y === "donut") {
|
|
806
|
-
let e = y === "donut" ? "52%" : 0, t =
|
|
810
|
+
let e = y === "donut" ? "52%" : 0, t = I(), n = { ...r };
|
|
807
811
|
return b.forEach((e, r) => {
|
|
808
812
|
let a = e?.[i];
|
|
809
813
|
if (a == null || a === "") return;
|
|
@@ -812,16 +816,16 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
812
816
|
label: o,
|
|
813
817
|
color: A(a, r, t)
|
|
814
818
|
});
|
|
815
|
-
}), /* @__PURE__ */
|
|
819
|
+
}), /* @__PURE__ */ w(J, {
|
|
816
820
|
config: n,
|
|
817
821
|
className: o,
|
|
818
822
|
...S,
|
|
819
|
-
children: /* @__PURE__ */
|
|
820
|
-
/* @__PURE__ */
|
|
823
|
+
children: /* @__PURE__ */ T(Se, { children: [
|
|
824
|
+
/* @__PURE__ */ w(Z, {
|
|
821
825
|
cursor: !1,
|
|
822
|
-
content: /* @__PURE__ */
|
|
826
|
+
content: /* @__PURE__ */ w(it, { hideLabel: !0 })
|
|
823
827
|
}),
|
|
824
|
-
/* @__PURE__ */
|
|
828
|
+
/* @__PURE__ */ w(xe, {
|
|
825
829
|
data: b,
|
|
826
830
|
dataKey: a[0]?.dataKey || "value",
|
|
827
831
|
nameKey: i || "name",
|
|
@@ -830,19 +834,19 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
830
834
|
paddingAngle: 2,
|
|
831
835
|
outerRadius: "85%",
|
|
832
836
|
...x,
|
|
833
|
-
...
|
|
837
|
+
...ue,
|
|
834
838
|
children: b.map((e, n) => {
|
|
835
839
|
let r = A(e?.[i], n, t);
|
|
836
|
-
return /* @__PURE__ */
|
|
840
|
+
return /* @__PURE__ */ w(D, { fill: Q(r) }, `cell-${n}`);
|
|
837
841
|
})
|
|
838
842
|
}),
|
|
839
|
-
Ze ? /* @__PURE__ */
|
|
843
|
+
Ze ? /* @__PURE__ */ w(lt, {
|
|
840
844
|
verticalAlign: "bottom",
|
|
841
845
|
wrapperStyle: {
|
|
842
846
|
fontSize: C ? "11px" : "12px",
|
|
843
847
|
paddingTop: "8px"
|
|
844
848
|
},
|
|
845
|
-
content: /* @__PURE__ */
|
|
849
|
+
content: /* @__PURE__ */ w(at, {
|
|
846
850
|
nameKey: i,
|
|
847
851
|
className: "flex-wrap"
|
|
848
852
|
})
|
|
@@ -851,7 +855,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
851
855
|
});
|
|
852
856
|
}
|
|
853
857
|
if (y === "funnel") {
|
|
854
|
-
let e = a[0]?.dataKey || "value", n =
|
|
858
|
+
let e = a[0]?.dataKey || "value", n = I(), s = u ? (t) => {
|
|
855
859
|
t && u({
|
|
856
860
|
category: t?.payload?.[i] ?? t?.[i],
|
|
857
861
|
value: t?.payload?.[e] ?? t?.[e]
|
|
@@ -863,43 +867,43 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
863
867
|
let r = Number(t?.[e] ?? 0);
|
|
864
868
|
return Number(n?.[e] ?? 0) - r;
|
|
865
869
|
});
|
|
866
|
-
return /* @__PURE__ */
|
|
870
|
+
return /* @__PURE__ */ w(J, {
|
|
867
871
|
config: r,
|
|
868
872
|
className: o,
|
|
869
873
|
...S,
|
|
870
|
-
children: /* @__PURE__ */
|
|
874
|
+
children: /* @__PURE__ */ T(O, { children: [/* @__PURE__ */ w(Z, { content: /* @__PURE__ */ w(it, {}) }), /* @__PURE__ */ T(ve, {
|
|
871
875
|
dataKey: e,
|
|
872
876
|
data: f,
|
|
873
877
|
nameKey: i,
|
|
874
878
|
...x,
|
|
875
879
|
...c,
|
|
876
|
-
children: [/* @__PURE__ */
|
|
880
|
+
children: [/* @__PURE__ */ w(k, {
|
|
877
881
|
position: "right",
|
|
878
882
|
fill: "hsl(var(--foreground))",
|
|
879
883
|
stroke: "none",
|
|
880
884
|
dataKey: i
|
|
881
|
-
}), f.map((e, t) => /* @__PURE__ */
|
|
885
|
+
}), f.map((e, t) => /* @__PURE__ */ w(D, { fill: Q(n[t % n.length]) }, `funnel-cell-${t}`))]
|
|
882
886
|
})] })
|
|
883
887
|
});
|
|
884
888
|
}
|
|
885
889
|
if (y === "treemap") {
|
|
886
|
-
let e = a[0]?.dataKey || "value", t =
|
|
890
|
+
let e = a[0]?.dataKey || "value", t = I(), n = b.map((n, r) => ({
|
|
887
891
|
name: String(n?.[i] ?? ""),
|
|
888
892
|
size: Number(n?.[e]) || 0,
|
|
889
893
|
fill: Q(t[r % t.length])
|
|
890
894
|
}));
|
|
891
|
-
return /* @__PURE__ */
|
|
895
|
+
return /* @__PURE__ */ w(J, {
|
|
892
896
|
config: r,
|
|
893
897
|
className: o,
|
|
894
898
|
...S,
|
|
895
|
-
children: /* @__PURE__ */
|
|
899
|
+
children: /* @__PURE__ */ w(N, {
|
|
896
900
|
data: n,
|
|
897
901
|
dataKey: "size",
|
|
898
902
|
nameKey: "name",
|
|
899
903
|
...x,
|
|
900
|
-
content: /* @__PURE__ */
|
|
901
|
-
...
|
|
902
|
-
children: /* @__PURE__ */
|
|
904
|
+
content: /* @__PURE__ */ w(_t, {}),
|
|
905
|
+
...Le,
|
|
906
|
+
children: /* @__PURE__ */ w(M, {})
|
|
903
907
|
})
|
|
904
908
|
});
|
|
905
909
|
}
|
|
@@ -909,11 +913,11 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
909
913
|
target: n + 1,
|
|
910
914
|
value: Number(t?.[e]) || 0
|
|
911
915
|
}));
|
|
912
|
-
return c.length === 0 ? /* @__PURE__ */
|
|
916
|
+
return c.length === 0 ? /* @__PURE__ */ w("div", { className: o }) : /* @__PURE__ */ w(J, {
|
|
913
917
|
config: r,
|
|
914
918
|
className: o,
|
|
915
919
|
...S,
|
|
916
|
-
children: /* @__PURE__ */
|
|
920
|
+
children: /* @__PURE__ */ w(je, {
|
|
917
921
|
data: {
|
|
918
922
|
nodes: s,
|
|
919
923
|
links: c
|
|
@@ -924,24 +928,24 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
924
928
|
strokeOpacity: .25
|
|
925
929
|
},
|
|
926
930
|
node: { fill: "hsl(var(--chart-1))" },
|
|
927
|
-
...
|
|
928
|
-
children: /* @__PURE__ */
|
|
931
|
+
...Re,
|
|
932
|
+
children: /* @__PURE__ */ w(M, {})
|
|
929
933
|
})
|
|
930
934
|
});
|
|
931
935
|
}
|
|
932
|
-
if (y === "radar") return /* @__PURE__ */
|
|
936
|
+
if (y === "radar") return /* @__PURE__ */ w(J, {
|
|
933
937
|
config: r,
|
|
934
938
|
className: o,
|
|
935
939
|
...S,
|
|
936
|
-
children: /* @__PURE__ */
|
|
940
|
+
children: /* @__PURE__ */ T(De, {
|
|
937
941
|
data: b,
|
|
938
942
|
children: [
|
|
939
|
-
/* @__PURE__ */
|
|
940
|
-
/* @__PURE__ */
|
|
941
|
-
/* @__PURE__ */
|
|
942
|
-
/* @__PURE__ */
|
|
943
|
-
/* @__PURE__ */
|
|
944
|
-
content: /* @__PURE__ */
|
|
943
|
+
/* @__PURE__ */ w(we, {}),
|
|
944
|
+
/* @__PURE__ */ w(Ce, { dataKey: i }),
|
|
945
|
+
/* @__PURE__ */ w(Te, {}),
|
|
946
|
+
/* @__PURE__ */ w(Z, { content: /* @__PURE__ */ w(it, {}) }),
|
|
947
|
+
/* @__PURE__ */ w(lt, {
|
|
948
|
+
content: /* @__PURE__ */ w(at, {}),
|
|
945
949
|
...C && {
|
|
946
950
|
verticalAlign: "bottom",
|
|
947
951
|
wrapperStyle: {
|
|
@@ -952,7 +956,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
952
956
|
}),
|
|
953
957
|
a.map((e) => {
|
|
954
958
|
let t = Q(r[e.dataKey]?.color || St);
|
|
955
|
-
return /* @__PURE__ */
|
|
959
|
+
return /* @__PURE__ */ w(Ee, {
|
|
956
960
|
dataKey: e.dataKey,
|
|
957
961
|
stroke: t,
|
|
958
962
|
fill: t,
|
|
@@ -963,13 +967,13 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
963
967
|
]
|
|
964
968
|
})
|
|
965
969
|
});
|
|
966
|
-
if (y === "scatter") return /* @__PURE__ */
|
|
970
|
+
if (y === "scatter") return /* @__PURE__ */ w(J, {
|
|
967
971
|
config: r,
|
|
968
972
|
className: o,
|
|
969
973
|
...S,
|
|
970
|
-
children: /* @__PURE__ */
|
|
971
|
-
/* @__PURE__ */
|
|
972
|
-
/* @__PURE__ */
|
|
974
|
+
children: /* @__PURE__ */ T(j, { children: [
|
|
975
|
+
/* @__PURE__ */ w(ge, { vertical: !1 }),
|
|
976
|
+
/* @__PURE__ */ w(P, {
|
|
973
977
|
type: "number",
|
|
974
978
|
dataKey: i,
|
|
975
979
|
name: String(r[i]?.label || i),
|
|
@@ -977,22 +981,22 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
977
981
|
axisLine: !1,
|
|
978
982
|
minTickGap: C ? 32 : 48
|
|
979
983
|
}),
|
|
980
|
-
/* @__PURE__ */
|
|
984
|
+
/* @__PURE__ */ w(F, {
|
|
981
985
|
type: "number",
|
|
982
986
|
dataKey: a[0]?.dataKey || "value",
|
|
983
987
|
name: String(r[a[0]?.dataKey]?.label || a[0]?.dataKey),
|
|
984
988
|
tickLine: !1,
|
|
985
989
|
axisLine: !1,
|
|
986
|
-
tickFormatter:
|
|
990
|
+
tickFormatter: L,
|
|
987
991
|
width: 48
|
|
988
992
|
}),
|
|
989
|
-
/* @__PURE__ */
|
|
993
|
+
/* @__PURE__ */ w(Ne, {
|
|
990
994
|
type: "number",
|
|
991
995
|
range: [60, 400]
|
|
992
996
|
}),
|
|
993
|
-
/* @__PURE__ */
|
|
994
|
-
/* @__PURE__ */
|
|
995
|
-
content: /* @__PURE__ */
|
|
997
|
+
/* @__PURE__ */ w(Z, { content: /* @__PURE__ */ w(it, {}) }),
|
|
998
|
+
/* @__PURE__ */ w(lt, {
|
|
999
|
+
content: /* @__PURE__ */ w(at, {}),
|
|
996
1000
|
...C && {
|
|
997
1001
|
verticalAlign: "bottom",
|
|
998
1002
|
wrapperStyle: {
|
|
@@ -1002,53 +1006,53 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1002
1006
|
}
|
|
1003
1007
|
}),
|
|
1004
1008
|
a.map((e, t) => {
|
|
1005
|
-
let n =
|
|
1006
|
-
return /* @__PURE__ */
|
|
1009
|
+
let n = I(), i = Q(r[e.dataKey]?.color || n[t % n.length]), a = wt(e, "scatter");
|
|
1010
|
+
return /* @__PURE__ */ w(Me, {
|
|
1007
1011
|
name: r[e.dataKey]?.label || e.dataKey,
|
|
1008
1012
|
data: b,
|
|
1009
1013
|
fill: i,
|
|
1010
1014
|
fillOpacity: a?.fillOpacity,
|
|
1011
1015
|
...x,
|
|
1012
|
-
...
|
|
1016
|
+
...Ie
|
|
1013
1017
|
}, e.dataKey);
|
|
1014
1018
|
})
|
|
1015
1019
|
] })
|
|
1016
1020
|
});
|
|
1017
|
-
if (y === "combo") return /* @__PURE__ */
|
|
1021
|
+
if (y === "combo") return /* @__PURE__ */ w(vt, {
|
|
1018
1022
|
title: ee,
|
|
1019
1023
|
subtitle: te,
|
|
1020
|
-
children: /* @__PURE__ */
|
|
1024
|
+
children: /* @__PURE__ */ w(J, {
|
|
1021
1025
|
config: r,
|
|
1022
1026
|
className: o,
|
|
1023
1027
|
...S,
|
|
1024
|
-
children: /* @__PURE__ */
|
|
1028
|
+
children: /* @__PURE__ */ T(_e, {
|
|
1025
1029
|
data: b,
|
|
1026
1030
|
children: [
|
|
1027
|
-
/* @__PURE__ */
|
|
1028
|
-
/* @__PURE__ */
|
|
1031
|
+
/* @__PURE__ */ w(ge, { ...K }),
|
|
1032
|
+
/* @__PURE__ */ w(P, {
|
|
1029
1033
|
dataKey: i,
|
|
1030
1034
|
...tt
|
|
1031
1035
|
}),
|
|
1032
|
-
/* @__PURE__ */
|
|
1036
|
+
/* @__PURE__ */ w(F, {
|
|
1033
1037
|
yAxisId: "left",
|
|
1034
1038
|
tickLine: !1,
|
|
1035
1039
|
axisLine: !1,
|
|
1036
|
-
tickFormatter:
|
|
1040
|
+
tickFormatter: H,
|
|
1037
1041
|
width: 48,
|
|
1038
|
-
...W(
|
|
1042
|
+
...W(R)
|
|
1039
1043
|
}),
|
|
1040
|
-
/* @__PURE__ */
|
|
1044
|
+
/* @__PURE__ */ w(F, {
|
|
1041
1045
|
yAxisId: "right",
|
|
1042
1046
|
orientation: "right",
|
|
1043
1047
|
tickLine: !1,
|
|
1044
1048
|
axisLine: !1,
|
|
1045
|
-
tickFormatter:
|
|
1049
|
+
tickFormatter: He,
|
|
1046
1050
|
width: 48,
|
|
1047
|
-
...W(
|
|
1051
|
+
...W(z, "right")
|
|
1048
1052
|
}),
|
|
1049
|
-
$e ? /* @__PURE__ */
|
|
1050
|
-
Ze ? /* @__PURE__ */
|
|
1051
|
-
content: /* @__PURE__ */
|
|
1053
|
+
$e ? /* @__PURE__ */ w(Z, { content: /* @__PURE__ */ w(it, {}) }) : null,
|
|
1054
|
+
Ze ? /* @__PURE__ */ w(lt, {
|
|
1055
|
+
content: /* @__PURE__ */ w(at, {}),
|
|
1052
1056
|
...C && {
|
|
1053
1057
|
verticalAlign: "bottom",
|
|
1054
1058
|
wrapperStyle: {
|
|
@@ -1060,8 +1064,8 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1060
1064
|
Qe,
|
|
1061
1065
|
et,
|
|
1062
1066
|
a.map((e, t) => {
|
|
1063
|
-
let n = Q(r[e.dataKey]?.color || St), i = e.chartType || ae || (t === 0 ? "bar" : "line"), a = e.yAxis === "right" || e.yAxis === "left" ? e.yAxis : ae || i === "bar" ? "left" : "right", o = wt(e, i), s = e.stack ? { stackId: String(e.stack) } : {}, c =
|
|
1064
|
-
return i === "line" ? /* @__PURE__ */
|
|
1067
|
+
let n = Q(r[e.dataKey]?.color || St), i = e.chartType || ae || (t === 0 ? "bar" : "line"), a = e.yAxis === "right" || e.yAxis === "left" ? e.yAxis : ae || i === "bar" ? "left" : "right", o = wt(e, i), s = e.stack ? { stackId: String(e.stack) } : {}, c = U((a === "right" ? z : R)?.format);
|
|
1068
|
+
return i === "line" ? /* @__PURE__ */ w(ye, {
|
|
1065
1069
|
yAxisId: a,
|
|
1066
1070
|
type: "monotone",
|
|
1067
1071
|
dataKey: e.dataKey,
|
|
@@ -1072,7 +1076,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1072
1076
|
strokeDasharray: o?.strokeDasharray,
|
|
1073
1077
|
...x,
|
|
1074
1078
|
children: q(c)
|
|
1075
|
-
}, e.dataKey) : i === "area" ? /* @__PURE__ */
|
|
1079
|
+
}, e.dataKey) : i === "area" ? /* @__PURE__ */ w(fe, {
|
|
1076
1080
|
yAxisId: a,
|
|
1077
1081
|
type: "monotone",
|
|
1078
1082
|
dataKey: e.dataKey,
|
|
@@ -1084,7 +1088,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1084
1088
|
...s,
|
|
1085
1089
|
...x,
|
|
1086
1090
|
children: q(c)
|
|
1087
|
-
}, e.dataKey) : /* @__PURE__ */
|
|
1091
|
+
}, e.dataKey) : /* @__PURE__ */ w(me, {
|
|
1088
1092
|
yAxisId: a,
|
|
1089
1093
|
dataKey: e.dataKey,
|
|
1090
1094
|
fill: n,
|
|
@@ -1099,94 +1103,94 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1099
1103
|
})
|
|
1100
1104
|
})
|
|
1101
1105
|
});
|
|
1102
|
-
let nt = y === "horizontal-bar", rt =
|
|
1106
|
+
let nt = y === "horizontal-bar", rt = I(), ot = c ? Object.values(c).map((e) => Q(String(e))) : [], Y = Array.from(/* @__PURE__ */ new Set([
|
|
1103
1107
|
...rt,
|
|
1104
1108
|
...ot,
|
|
1105
1109
|
...a.map((e, t) => Q(r[e.dataKey]?.color || rt[t % rt.length] || St))
|
|
1106
1110
|
])), X = (e) => "g" + e.replace(/[^a-zA-Z0-9]/g, "");
|
|
1107
|
-
return /* @__PURE__ */
|
|
1111
|
+
return /* @__PURE__ */ w(vt, {
|
|
1108
1112
|
title: ee,
|
|
1109
1113
|
subtitle: te,
|
|
1110
|
-
children: /* @__PURE__ */
|
|
1114
|
+
children: /* @__PURE__ */ w(J, {
|
|
1111
1115
|
config: r,
|
|
1112
1116
|
className: o,
|
|
1113
1117
|
...S,
|
|
1114
|
-
children: /* @__PURE__ */
|
|
1118
|
+
children: /* @__PURE__ */ T(ze, {
|
|
1115
1119
|
data: b,
|
|
1116
1120
|
layout: nt ? "vertical" : "horizontal",
|
|
1117
1121
|
...le,
|
|
1118
1122
|
children: [
|
|
1119
|
-
/* @__PURE__ */
|
|
1123
|
+
/* @__PURE__ */ w("defs", { children: Y.map((e) => /* @__PURE__ */ T(m.Fragment, { children: [/* @__PURE__ */ T("linearGradient", {
|
|
1120
1124
|
id: `bg-${X(e)}`,
|
|
1121
1125
|
x1: "0",
|
|
1122
1126
|
y1: "0",
|
|
1123
1127
|
x2: "0",
|
|
1124
1128
|
y2: "1",
|
|
1125
|
-
children: [/* @__PURE__ */
|
|
1129
|
+
children: [/* @__PURE__ */ w("stop", {
|
|
1126
1130
|
offset: "0%",
|
|
1127
1131
|
style: { stopColor: e },
|
|
1128
1132
|
stopOpacity: .95
|
|
1129
|
-
}), /* @__PURE__ */
|
|
1133
|
+
}), /* @__PURE__ */ w("stop", {
|
|
1130
1134
|
offset: "100%",
|
|
1131
1135
|
style: { stopColor: e },
|
|
1132
1136
|
stopOpacity: .5
|
|
1133
1137
|
})]
|
|
1134
|
-
}), /* @__PURE__ */
|
|
1138
|
+
}), /* @__PURE__ */ T("linearGradient", {
|
|
1135
1139
|
id: `ag-${X(e)}`,
|
|
1136
1140
|
x1: "0",
|
|
1137
1141
|
y1: "0",
|
|
1138
1142
|
x2: "0",
|
|
1139
1143
|
y2: "1",
|
|
1140
|
-
children: [/* @__PURE__ */
|
|
1144
|
+
children: [/* @__PURE__ */ w("stop", {
|
|
1141
1145
|
offset: "0%",
|
|
1142
1146
|
style: { stopColor: e },
|
|
1143
1147
|
stopOpacity: .5
|
|
1144
|
-
}), /* @__PURE__ */
|
|
1148
|
+
}), /* @__PURE__ */ w("stop", {
|
|
1145
1149
|
offset: "95%",
|
|
1146
1150
|
style: { stopColor: e },
|
|
1147
1151
|
stopOpacity: .05
|
|
1148
1152
|
})]
|
|
1149
1153
|
})] }, X(e))) }),
|
|
1150
|
-
/* @__PURE__ */
|
|
1151
|
-
nt ? /* @__PURE__ */
|
|
1154
|
+
/* @__PURE__ */ w(ge, { ...K }),
|
|
1155
|
+
nt ? /* @__PURE__ */ T(de, { children: [/* @__PURE__ */ w(P, {
|
|
1152
1156
|
type: "number",
|
|
1153
1157
|
tickLine: !1,
|
|
1154
1158
|
axisLine: !1,
|
|
1155
|
-
tickFormatter:
|
|
1156
|
-
...W(
|
|
1157
|
-
}), /* @__PURE__ */
|
|
1159
|
+
tickFormatter: H,
|
|
1160
|
+
...W(R)
|
|
1161
|
+
}), /* @__PURE__ */ w(F, {
|
|
1158
1162
|
type: "category",
|
|
1159
1163
|
dataKey: i,
|
|
1160
1164
|
tickLine: !1,
|
|
1161
1165
|
axisLine: !1,
|
|
1162
1166
|
width: Math.min(140, Math.max(60, Math.max(...b.map((e) => String(e[i] ?? "").length)) * 7)),
|
|
1163
|
-
tickFormatter:
|
|
1164
|
-
})] }) : /* @__PURE__ */
|
|
1165
|
-
/* @__PURE__ */
|
|
1167
|
+
tickFormatter: V
|
|
1168
|
+
})] }) : /* @__PURE__ */ T(de, { children: [
|
|
1169
|
+
/* @__PURE__ */ w(P, {
|
|
1166
1170
|
dataKey: i,
|
|
1167
1171
|
...tt
|
|
1168
1172
|
}),
|
|
1169
|
-
/* @__PURE__ */
|
|
1170
|
-
...
|
|
1173
|
+
/* @__PURE__ */ w(F, {
|
|
1174
|
+
...B ? { yAxisId: "left" } : {},
|
|
1171
1175
|
tickLine: !1,
|
|
1172
1176
|
axisLine: !1,
|
|
1173
|
-
tickFormatter:
|
|
1177
|
+
tickFormatter: H,
|
|
1174
1178
|
width: 48,
|
|
1175
|
-
...W(
|
|
1179
|
+
...W(R)
|
|
1176
1180
|
}),
|
|
1177
|
-
|
|
1181
|
+
B ? /* @__PURE__ */ w(F, {
|
|
1178
1182
|
yAxisId: "right",
|
|
1179
1183
|
orientation: "right",
|
|
1180
1184
|
tickLine: !1,
|
|
1181
1185
|
axisLine: !1,
|
|
1182
|
-
tickFormatter:
|
|
1186
|
+
tickFormatter: He,
|
|
1183
1187
|
width: 48,
|
|
1184
|
-
...W(
|
|
1188
|
+
...W(z, "right")
|
|
1185
1189
|
}) : null
|
|
1186
1190
|
] }),
|
|
1187
|
-
$e ? /* @__PURE__ */
|
|
1188
|
-
Ze ? /* @__PURE__ */
|
|
1189
|
-
content: /* @__PURE__ */
|
|
1191
|
+
$e ? /* @__PURE__ */ w(Z, { content: /* @__PURE__ */ w(it, {}) }) : null,
|
|
1192
|
+
Ze ? /* @__PURE__ */ w(lt, {
|
|
1193
|
+
content: /* @__PURE__ */ w(at, {}),
|
|
1190
1194
|
...C && {
|
|
1191
1195
|
verticalAlign: "bottom",
|
|
1192
1196
|
wrapperStyle: {
|
|
@@ -1198,10 +1202,10 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1198
1202
|
Qe,
|
|
1199
1203
|
et,
|
|
1200
1204
|
a.map((e, t) => {
|
|
1201
|
-
let n =
|
|
1205
|
+
let n = I(), o = e.variant === "comparison", s = o ? a.slice(0, t).find((e) => e.variant !== "comparison") || a[0] : e, c = o ? a.indexOf(s) : t, l = Q(r[s.dataKey]?.color || n[c % n.length] || St), u = B ? { yAxisId: e.yAxis === "right" ? "right" : "left" } : {}, d = e.stack ? { stackId: String(e.stack) } : {}, f = U((e.yAxis === "right" ? z : R)?.format);
|
|
1202
1206
|
if (y === "bar" || y === "horizontal-bar") {
|
|
1203
1207
|
let t = a.filter((e) => e.variant !== "comparison").length === 1 && !o && a.length === 1 && b.length > 1, r = wt(e, "bar");
|
|
1204
|
-
return /* @__PURE__ */
|
|
1208
|
+
return /* @__PURE__ */ T(me, {
|
|
1205
1209
|
dataKey: e.dataKey,
|
|
1206
1210
|
fill: `url(#bg-${X(l)})`,
|
|
1207
1211
|
radius: 4,
|
|
@@ -1209,12 +1213,12 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1209
1213
|
...d,
|
|
1210
1214
|
...u,
|
|
1211
1215
|
...x,
|
|
1212
|
-
children: [t && b.map((e, t) => /* @__PURE__ */
|
|
1216
|
+
children: [t && b.map((e, t) => /* @__PURE__ */ w(D, { fill: `url(#bg-${X(Q(A(e?.[i], t, n)))})` }, `cell-${t}`)), q(f)]
|
|
1213
1217
|
}, e.dataKey);
|
|
1214
1218
|
}
|
|
1215
1219
|
if (y === "line") {
|
|
1216
1220
|
let t = wt(e, "line");
|
|
1217
|
-
return /* @__PURE__ */
|
|
1221
|
+
return /* @__PURE__ */ w(ye, {
|
|
1218
1222
|
type: "monotone",
|
|
1219
1223
|
dataKey: e.dataKey,
|
|
1220
1224
|
stroke: l,
|
|
@@ -1229,7 +1233,7 @@ function yt({ chartType: e = "bar", data: n = [], config: r = {}, xAxisKey: i =
|
|
|
1229
1233
|
}
|
|
1230
1234
|
if (y === "area") {
|
|
1231
1235
|
let t = wt(e, "area");
|
|
1232
|
-
return /* @__PURE__ */
|
|
1236
|
+
return /* @__PURE__ */ w(fe, {
|
|
1233
1237
|
type: "monotone",
|
|
1234
1238
|
dataKey: e.dataKey,
|
|
1235
1239
|
fill: `url(#ag-${X(l)})`,
|
|
@@ -1263,22 +1267,22 @@ function xt(e) {
|
|
|
1263
1267
|
t,
|
|
1264
1268
|
n,
|
|
1265
1269
|
r
|
|
1266
|
-
]), t ? /* @__PURE__ */
|
|
1270
|
+
]), t ? /* @__PURE__ */ w("div", {
|
|
1267
1271
|
className: `flex h-full min-h-[120px] w-full items-center justify-center p-4 text-center text-sm text-muted-foreground ${e.className ?? ""}`,
|
|
1268
1272
|
role: "status",
|
|
1269
1273
|
"data-chart-error": "missing-category-key",
|
|
1270
|
-
children: /* @__PURE__ */
|
|
1274
|
+
children: /* @__PURE__ */ T("span", { children: [
|
|
1271
1275
|
"This chart cannot plot its category axis: no row has a",
|
|
1272
1276
|
" ",
|
|
1273
|
-
/* @__PURE__ */
|
|
1277
|
+
/* @__PURE__ */ w("code", {
|
|
1274
1278
|
className: "font-mono",
|
|
1275
1279
|
children: n
|
|
1276
1280
|
}),
|
|
1277
1281
|
" field."
|
|
1278
1282
|
] })
|
|
1279
|
-
}) : /* @__PURE__ */
|
|
1283
|
+
}) : /* @__PURE__ */ w(yt, { ...e });
|
|
1280
1284
|
}
|
|
1281
|
-
var St, Ct, Q, wt, Tt, Et =
|
|
1285
|
+
var St, Ct, Q, wt, Tt, Et = R((() => {
|
|
1282
1286
|
ut(), ht(), Qe(), St = "hsl(var(--primary))", Ct = {
|
|
1283
1287
|
slate: "#64748b",
|
|
1284
1288
|
gray: "#6b7280",
|
|
@@ -1321,9 +1325,9 @@ var St, Ct, Q, wt, Tt, Et = z((() => {
|
|
|
1321
1325
|
//#endregion
|
|
1322
1326
|
//#region src/ChartRenderer.tsx
|
|
1323
1327
|
Qe();
|
|
1324
|
-
var Dt = h.lazy(() => Promise.resolve().then(() => (nt(), $e))), Ot = h.lazy(() => Promise.resolve().then(() => (Et(), gt))), kt = ({ schema: e }) => /* @__PURE__ */
|
|
1325
|
-
fallback: /* @__PURE__ */
|
|
1326
|
-
children: /* @__PURE__ */
|
|
1328
|
+
var Dt = h.lazy(() => Promise.resolve().then(() => (nt(), $e))), Ot = h.lazy(() => Promise.resolve().then(() => (Et(), gt))), kt = ({ schema: e }) => /* @__PURE__ */ w(g, {
|
|
1329
|
+
fallback: /* @__PURE__ */ w(ue, { className: "w-full h-48 sm:h-64 md:h-80 lg:h-[400px]" }),
|
|
1330
|
+
children: /* @__PURE__ */ w(Dt, {
|
|
1327
1331
|
data: e.data,
|
|
1328
1332
|
dataKey: e.dataKey,
|
|
1329
1333
|
xAxisKey: e.xAxisKey,
|
|
@@ -1333,7 +1337,7 @@ var Dt = h.lazy(() => Promise.resolve().then(() => (nt(), $e))), Ot = h.lazy(()
|
|
|
1333
1337
|
})
|
|
1334
1338
|
}), $ = ({ schema: e, onChartClick: t }) => {
|
|
1335
1339
|
let n = h.useMemo(() => {
|
|
1336
|
-
let t =
|
|
1340
|
+
let t = He(e), n = Array.isArray(e.series) ? e.series : void 0, r = (n?.length && n.every((e) => !!e && typeof e == "object" && "dataKey" in e) ? n : t.series) ?? n, i = e.xAxisKey ?? t.xAxisKey, a = e.config;
|
|
1337
1341
|
if (i || (e.index ? i = e.index : e.category && (i = e.category)), r || (e.categories ? r = e.categories.map((e) => ({ dataKey: e })) : e.value && (r = [{ dataKey: e.value }])), !a && r) {
|
|
1338
1342
|
let t = e.colors || [
|
|
1339
1343
|
"hsl(var(--chart-1))",
|
|
@@ -1357,9 +1361,9 @@ var Dt = h.lazy(() => Promise.resolve().then(() => (nt(), $e))), Ot = h.lazy(()
|
|
|
1357
1361
|
spec: t
|
|
1358
1362
|
};
|
|
1359
1363
|
}, [e]);
|
|
1360
|
-
return /* @__PURE__ */
|
|
1361
|
-
fallback: /* @__PURE__ */
|
|
1362
|
-
children: /* @__PURE__ */
|
|
1364
|
+
return /* @__PURE__ */ w(g, {
|
|
1365
|
+
fallback: /* @__PURE__ */ w(ue, { className: "w-full h-48 sm:h-64 md:h-80 lg:h-[400px]" }),
|
|
1366
|
+
children: /* @__PURE__ */ w(Ot, {
|
|
1363
1367
|
chartType: n.chartType,
|
|
1364
1368
|
data: n.data,
|
|
1365
1369
|
config: n.config,
|
|
@@ -1414,9 +1418,7 @@ function Nt(e, t) {
|
|
|
1414
1418
|
case "max":
|
|
1415
1419
|
s = o.length > 0 ? Math.max(...o) : 0;
|
|
1416
1420
|
break;
|
|
1417
|
-
default:
|
|
1418
|
-
s = o.reduce((e, t) => e + t, 0);
|
|
1419
|
-
break;
|
|
1421
|
+
default: s = o.reduce((e, t) => e + t, 0);
|
|
1420
1422
|
}
|
|
1421
1423
|
return {
|
|
1422
1424
|
[i]: e,
|
|
@@ -1473,19 +1475,19 @@ async function Pt(e, t, n, r, i) {
|
|
|
1473
1475
|
}));
|
|
1474
1476
|
let a = c.id_field || "id";
|
|
1475
1477
|
try {
|
|
1476
|
-
let l =
|
|
1478
|
+
let l = await r.find(n, {
|
|
1477
1479
|
$filter: { [a]: { $in: i } },
|
|
1478
1480
|
$top: i.length
|
|
1479
|
-
})
|
|
1480
|
-
for (let e of
|
|
1481
|
-
let t = String(e[a] ?? e.id ?? e._id ?? ""), n = e[
|
|
1482
|
-
t && (
|
|
1481
|
+
}), u = s(l), d = c.reference_field || c.display_field || "name", f = {};
|
|
1482
|
+
for (let e of u) {
|
|
1483
|
+
let t = String(e[a] ?? e.id ?? e._id ?? ""), n = e[d] || e.name || e.label || e.title || t;
|
|
1484
|
+
t && (f[t] = String(n));
|
|
1483
1485
|
}
|
|
1484
1486
|
return e.map((e) => {
|
|
1485
1487
|
let n = e[t], r = String(n ?? "");
|
|
1486
1488
|
return {
|
|
1487
1489
|
...e,
|
|
1488
|
-
[t]:
|
|
1490
|
+
[t]: f[r] || r,
|
|
1489
1491
|
[o]: n
|
|
1490
1492
|
};
|
|
1491
1493
|
});
|
|
@@ -1511,11 +1513,11 @@ async function Pt(e, t, n, r, i) {
|
|
|
1511
1513
|
});
|
|
1512
1514
|
}
|
|
1513
1515
|
var Ft = (e) => {
|
|
1514
|
-
let { schema: t } = e, m = e.onSegmentClick, h = te(
|
|
1516
|
+
let { schema: t } = e, m = e.onSegmentClick, h = te(Fe), g = e.dataSource || h?.dataSource, ue = Ie(t.bind), { fieldOptionLabel: de } = Ve(), fe = re(de);
|
|
1515
1517
|
ne(() => {
|
|
1516
|
-
|
|
1517
|
-
}, [
|
|
1518
|
-
let [
|
|
1518
|
+
fe.current = de;
|
|
1519
|
+
}, [de]);
|
|
1520
|
+
let [pe, me] = v([]), [E, he] = v(null), [ge, D] = v(() => !(Array.isArray(t.data) && t.data.length > 0) && (!!t.objectName || !!t.dataset)), [_e, ve] = v(null), [O, k] = v(null), [A, ye] = v(null), [be, xe] = v(null), { openRecordList: Se } = Le(), Ce = I(), we = _(() => t.aggregate ? JSON.stringify(t.aggregate) : "", [t.aggregate]), Te = _(() => t.filter ? JSON.stringify(t.filter) : "", [t.filter]), Ee = _(() => t.compareTo ? JSON.stringify(t.compareTo) : "", [t.compareTo]), De = _(() => t.dataset ? JSON.stringify({
|
|
1519
1521
|
d: t.dataset,
|
|
1520
1522
|
dim: t.dimensions ?? [],
|
|
1521
1523
|
val: t.values ?? []
|
|
@@ -1589,27 +1591,27 @@ var Ft = (e) => {
|
|
|
1589
1591
|
return Array.isArray(i) ? i : [];
|
|
1590
1592
|
}
|
|
1591
1593
|
if (typeof e.find == "function") {
|
|
1592
|
-
let r =
|
|
1593
|
-
return t.aggregate &&
|
|
1594
|
+
let r = await e.find(t.objectName, { $filter: n }), i = s(r);
|
|
1595
|
+
return t.aggregate && i.length > 0 && (i = Nt(i, t.aggregate)), i;
|
|
1594
1596
|
}
|
|
1595
1597
|
return [];
|
|
1596
|
-
}, [t.objectName, we]),
|
|
1598
|
+
}, [t.objectName, we]), Ae = Re(), je = ee(async (e, n) => {
|
|
1597
1599
|
if (!e || !t.objectName && !t.dataset) {
|
|
1598
|
-
n.current &&
|
|
1600
|
+
n.current && D(!1);
|
|
1599
1601
|
return;
|
|
1600
1602
|
}
|
|
1601
|
-
n.current && (
|
|
1603
|
+
n.current && (D(!0), ve(null));
|
|
1602
1604
|
try {
|
|
1603
1605
|
if (t.dataset && typeof e.queryDataset == "function") {
|
|
1604
|
-
let r = f(t.filter,
|
|
1606
|
+
let r = f(t.filter, Ae), i = await e.queryDataset(t.dataset, {
|
|
1605
1607
|
dimensions: Array.isArray(t.dimensions) ? t.dimensions : [],
|
|
1606
1608
|
measures: Array.isArray(t.values) ? t.values : [],
|
|
1607
1609
|
...r ? { runtimeFilter: r } : {}
|
|
1608
1610
|
});
|
|
1609
|
-
n.current && (
|
|
1611
|
+
n.current && (me(Array.isArray(i?.rows) ? i.rows : []), he(Array.isArray(i?.fields) ? i.fields : null));
|
|
1610
1612
|
return;
|
|
1611
1613
|
}
|
|
1612
|
-
let r = f(t.filter,
|
|
1614
|
+
let r = f(t.filter, Ae), i = t.compareTo, a = !!i && Oe(t.chartType), o = a ? u(p(t.filter, i), Ae) : null, [s, c] = await Promise.all([ke(e, r), o ? ke(e, o) : Promise.resolve([])]), l = s, d = t.aggregate?.groupBy, m = d && typeof d == "object" && !Array.isArray(d) ? d.alias || d.field : d || t.xAxisKey;
|
|
1613
1615
|
if (a && c.length > 0 && t.aggregate) {
|
|
1614
1616
|
let e = t.aggregate.field, n = t.aggregate.function, r = jt(t.aggregate), i = (t) => {
|
|
1615
1617
|
if (t == null) return null;
|
|
@@ -1655,13 +1657,13 @@ var Ft = (e) => {
|
|
|
1655
1657
|
}
|
|
1656
1658
|
if (m && typeof e.getObjectSchema == "function") try {
|
|
1657
1659
|
let n = await e.getObjectSchema(t.objectName);
|
|
1658
|
-
l = await Pt(l, m, n, e, (e, n) =>
|
|
1660
|
+
l = await Pt(l, m, n, e, (e, n) => fe.current(t.objectName, m, e, n));
|
|
1659
1661
|
} catch {}
|
|
1660
|
-
n.current &&
|
|
1662
|
+
n.current && me(l);
|
|
1661
1663
|
} catch (e) {
|
|
1662
|
-
console.error("[ObjectChart] Fetch error:", e), n.current &&
|
|
1664
|
+
console.error("[ObjectChart] Fetch error:", e), n.current && ve(e instanceof Error ? e.message : "Failed to load chart data");
|
|
1663
1665
|
} finally {
|
|
1664
|
-
n.current &&
|
|
1666
|
+
n.current && D(!1);
|
|
1665
1667
|
}
|
|
1666
1668
|
}, [
|
|
1667
1669
|
t.objectName,
|
|
@@ -1672,105 +1674,119 @@ var Ft = (e) => {
|
|
|
1672
1674
|
t.xAxisKey,
|
|
1673
1675
|
t.chartType,
|
|
1674
1676
|
ke,
|
|
1675
|
-
|
|
1677
|
+
Ae
|
|
1676
1678
|
]);
|
|
1677
1679
|
ne(() => {
|
|
1678
1680
|
let e = { current: !0 };
|
|
1679
|
-
return (t.objectName || t.dataset) && !
|
|
1681
|
+
return (t.objectName || t.dataset) && !ue && !t.data ? je(g, e) : e.current && D(!1), () => {
|
|
1680
1682
|
e.current = !1;
|
|
1681
1683
|
};
|
|
1682
1684
|
}, [
|
|
1683
1685
|
t.objectName,
|
|
1684
1686
|
De,
|
|
1685
1687
|
g,
|
|
1686
|
-
|
|
1688
|
+
ue,
|
|
1687
1689
|
t.data,
|
|
1688
1690
|
Te,
|
|
1689
1691
|
we,
|
|
1690
1692
|
Ee,
|
|
1691
|
-
|
|
1693
|
+
je
|
|
1692
1694
|
]);
|
|
1693
|
-
let
|
|
1694
|
-
if (!
|
|
1695
|
-
let e = /* @__PURE__ */ new Map(), t = `__raw_${
|
|
1696
|
-
for (let n of
|
|
1697
|
-
let r = n?.[
|
|
1695
|
+
let Me = ue || t.data || pe, j = Array.isArray(Me) ? Me : [], M = t.drillDown, N = t.aggregate?.groupBy || t.xAxisKey, P = _(() => {
|
|
1696
|
+
if (!N) return /* @__PURE__ */ new Map();
|
|
1697
|
+
let e = /* @__PURE__ */ new Map(), t = `__raw_${N}`;
|
|
1698
|
+
for (let n of j) {
|
|
1699
|
+
let r = n?.[N];
|
|
1698
1700
|
if (r == null) continue;
|
|
1699
1701
|
let i = t in (n || {}) ? n[t] : r;
|
|
1700
1702
|
e.set(String(r), i);
|
|
1701
1703
|
}
|
|
1702
1704
|
return e;
|
|
1703
|
-
}, [
|
|
1705
|
+
}, [j, N]), F = _(() => {
|
|
1706
|
+
if (O) return {
|
|
1707
|
+
...t.filter || {},
|
|
1708
|
+
...o(M, O, { groupByField: N })
|
|
1709
|
+
};
|
|
1710
|
+
}, [
|
|
1711
|
+
O,
|
|
1712
|
+
M,
|
|
1713
|
+
N,
|
|
1714
|
+
Te
|
|
1715
|
+
]), Ne = !m && !!O && !!t.objectName && M?.target === "navigate" && !!Se;
|
|
1716
|
+
ne(() => {
|
|
1717
|
+
Ne && (Se(t.objectName, F), k(null));
|
|
1718
|
+
}, [Ne]);
|
|
1719
|
+
let L = t.compareTo, R = t.aggregate ? jt(t.aggregate) : void 0, z = R ? `${R}${Mt}` : void 0, B = !!L && Oe(t.chartType) && !!z && j.some((e) => e[z] != null), V = _(() => {
|
|
1704
1720
|
let e = Array.isArray(t.series) ? t.series : null;
|
|
1705
|
-
if (!
|
|
1706
|
-
let n = e || [{ dataKey:
|
|
1721
|
+
if (!B) return e;
|
|
1722
|
+
let n = e || [{ dataKey: R }], r = {
|
|
1707
1723
|
vsLastWeek: "Previous week",
|
|
1708
1724
|
vsLastMonth: "Previous month",
|
|
1709
1725
|
vsLastQuarter: "Previous quarter",
|
|
1710
1726
|
vsLastYear: "Previous year",
|
|
1711
1727
|
vsYesterday: "Yesterday",
|
|
1712
1728
|
vsPreviousPeriod: "Previous period"
|
|
1713
|
-
}[a(
|
|
1729
|
+
}[a(L, t.filter)] || "Previous period";
|
|
1714
1730
|
return [...n.map((e) => ({
|
|
1715
1731
|
...e,
|
|
1716
1732
|
variant: e.variant || "current"
|
|
1717
1733
|
})), {
|
|
1718
|
-
dataKey:
|
|
1734
|
+
dataKey: z,
|
|
1719
1735
|
label: r,
|
|
1720
1736
|
variant: "comparison"
|
|
1721
1737
|
}];
|
|
1722
1738
|
}, [
|
|
1723
|
-
|
|
1739
|
+
B,
|
|
1724
1740
|
t.series,
|
|
1725
|
-
Me,
|
|
1726
1741
|
R,
|
|
1742
|
+
z,
|
|
1727
1743
|
t.filter,
|
|
1728
|
-
|
|
1729
|
-
]),
|
|
1744
|
+
L
|
|
1745
|
+
]), H = t.dataset ? n(l(j, be), t.dimensions, t.values, E) : null, He = H ? {
|
|
1730
1746
|
...t,
|
|
1731
|
-
data:
|
|
1732
|
-
xAxisKey:
|
|
1733
|
-
series:
|
|
1747
|
+
data: H.data,
|
|
1748
|
+
xAxisKey: H.xAxisKey,
|
|
1749
|
+
series: H.series
|
|
1734
1750
|
} : {
|
|
1735
1751
|
...t,
|
|
1736
|
-
data:
|
|
1737
|
-
...
|
|
1738
|
-
},
|
|
1752
|
+
data: j,
|
|
1753
|
+
...V ? { series: V } : {}
|
|
1754
|
+
}, Ue = t.colors && !Array.isArray(t.colors) && typeof t.colors == "object" ? t.colors : null, We = Array.isArray(t.colors) ? t.colors : void 0, U = A || Ue ? {
|
|
1739
1755
|
...A || {},
|
|
1740
|
-
...
|
|
1741
|
-
} : void 0,
|
|
1742
|
-
...
|
|
1743
|
-
colors:
|
|
1744
|
-
...
|
|
1756
|
+
...Ue || {}
|
|
1757
|
+
} : void 0, Ge = {
|
|
1758
|
+
...He,
|
|
1759
|
+
colors: We,
|
|
1760
|
+
...U ? { categoryColors: U } : {}
|
|
1745
1761
|
};
|
|
1746
|
-
if (
|
|
1762
|
+
if (ge && j.length === 0) return /* @__PURE__ */ T("div", {
|
|
1747
1763
|
className: "p-2 " + (t.className || ""),
|
|
1748
1764
|
"data-testid": "chart-loading",
|
|
1749
1765
|
role: "status",
|
|
1750
1766
|
"aria-busy": "true",
|
|
1751
1767
|
"aria-live": "polite",
|
|
1752
|
-
children: [/* @__PURE__ */
|
|
1768
|
+
children: [/* @__PURE__ */ w("span", {
|
|
1753
1769
|
className: "sr-only",
|
|
1754
1770
|
children: "Loading chart data…"
|
|
1755
|
-
}), /* @__PURE__ */
|
|
1771
|
+
}), /* @__PURE__ */ w(y, { className: "h-full" })]
|
|
1756
1772
|
});
|
|
1757
|
-
if (
|
|
1773
|
+
if (_e) return /* @__PURE__ */ T("div", {
|
|
1758
1774
|
className: "flex flex-col items-center justify-center gap-2 p-4 " + (t.className || ""),
|
|
1759
1775
|
"data-testid": "chart-error",
|
|
1760
1776
|
role: "alert",
|
|
1761
1777
|
children: [
|
|
1762
|
-
/* @__PURE__ */
|
|
1763
|
-
/* @__PURE__ */
|
|
1778
|
+
/* @__PURE__ */ w(ze, { className: "h-6 w-6 text-destructive opacity-60" }),
|
|
1779
|
+
/* @__PURE__ */ w("p", {
|
|
1764
1780
|
className: "text-xs text-destructive font-medium",
|
|
1765
1781
|
children: "Failed to load chart data"
|
|
1766
1782
|
}),
|
|
1767
|
-
/* @__PURE__ */
|
|
1783
|
+
/* @__PURE__ */ w("p", {
|
|
1768
1784
|
className: "text-xs text-muted-foreground max-w-xs text-center",
|
|
1769
|
-
children:
|
|
1785
|
+
children: _e
|
|
1770
1786
|
})
|
|
1771
1787
|
]
|
|
1772
1788
|
});
|
|
1773
|
-
if (!g && t.objectName &&
|
|
1789
|
+
if (!g && t.objectName && j.length === 0) return /* @__PURE__ */ T("div", {
|
|
1774
1790
|
className: "flex items-center justify-center text-muted-foreground text-sm p-4 " + (t.className || ""),
|
|
1775
1791
|
"data-testid": "chart-no-datasource",
|
|
1776
1792
|
children: [
|
|
@@ -1779,86 +1795,83 @@ var Ft = (e) => {
|
|
|
1779
1795
|
"”"
|
|
1780
1796
|
]
|
|
1781
1797
|
});
|
|
1782
|
-
let
|
|
1783
|
-
let t = e.category, n = t != null &&
|
|
1784
|
-
|
|
1798
|
+
let Ke = c(M) ? (e) => {
|
|
1799
|
+
let t = e.category, n = t != null && P.has(String(t)) ? P.get(String(t)) : t;
|
|
1800
|
+
k({
|
|
1785
1801
|
...e,
|
|
1786
1802
|
category: n,
|
|
1787
1803
|
categoryLabel: t,
|
|
1788
1804
|
scope: "cell"
|
|
1789
1805
|
});
|
|
1790
|
-
} : void 0,
|
|
1791
|
-
let e =
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1806
|
+
} : void 0, qe = m ?? Ke, Je = !m && O && t.objectName && !Ne ? (() => {
|
|
1807
|
+
let e = F ?? {}, n = d(M, O, t.title || "Details"), r = M?.target ?? "drawer", i = {
|
|
1808
|
+
type: "object-data-table",
|
|
1809
|
+
objectName: t.objectName,
|
|
1810
|
+
filter: e,
|
|
1811
|
+
pagination: !0,
|
|
1812
|
+
pageSize: M?.maxRows,
|
|
1813
|
+
columns: M?.columns?.map((e) => ({
|
|
1814
|
+
accessorKey: e,
|
|
1815
|
+
header: e
|
|
1816
|
+
})),
|
|
1817
|
+
drillDown: {
|
|
1818
|
+
enabled: !0,
|
|
1819
|
+
mode: "record",
|
|
1820
|
+
target: "dialog"
|
|
1821
|
+
}
|
|
1822
|
+
}, a = /* @__PURE__ */ w("div", {
|
|
1795
1823
|
className: "overflow-auto",
|
|
1796
1824
|
"data-testid": "chart-drill-body",
|
|
1797
|
-
children: /* @__PURE__ */
|
|
1798
|
-
schema:
|
|
1799
|
-
type: "object-data-table",
|
|
1800
|
-
objectName: t.objectName,
|
|
1801
|
-
filter: n,
|
|
1802
|
-
pagination: !0,
|
|
1803
|
-
pageSize: N?.maxRows,
|
|
1804
|
-
columns: N?.columns?.map((e) => ({
|
|
1805
|
-
accessorKey: e,
|
|
1806
|
-
header: e
|
|
1807
|
-
})),
|
|
1808
|
-
drillDown: {
|
|
1809
|
-
enabled: !0,
|
|
1810
|
-
mode: "record",
|
|
1811
|
-
target: "dialog"
|
|
1812
|
-
}
|
|
1813
|
-
},
|
|
1825
|
+
children: /* @__PURE__ */ w(Pe, {
|
|
1826
|
+
schema: i,
|
|
1814
1827
|
dataSource: g
|
|
1815
1828
|
})
|
|
1816
|
-
}),
|
|
1829
|
+
}), o = Se && t.objectName ? /* @__PURE__ */ T(ie, {
|
|
1817
1830
|
type: "button",
|
|
1818
1831
|
variant: "ghost",
|
|
1819
1832
|
size: "sm",
|
|
1820
1833
|
"data-testid": "drill-open-in-list",
|
|
1821
1834
|
onClick: () => {
|
|
1822
|
-
Se(t.objectName,
|
|
1835
|
+
Se(t.objectName, e), k(null);
|
|
1823
1836
|
},
|
|
1824
|
-
children: [Ce("dashboard.openInList", "Open in list"), /* @__PURE__ */
|
|
1837
|
+
children: [Ce("dashboard.openInList", "Open in list"), /* @__PURE__ */ w(Be, { className: "ml-1 h-3.5 w-3.5" })]
|
|
1825
1838
|
}) : null;
|
|
1826
|
-
return
|
|
1839
|
+
return r === "dialog" ? /* @__PURE__ */ w(ae, {
|
|
1827
1840
|
open: !0,
|
|
1828
|
-
onOpenChange: (e) => !e &&
|
|
1829
|
-
children: /* @__PURE__ */
|
|
1841
|
+
onOpenChange: (e) => !e && k(null),
|
|
1842
|
+
children: /* @__PURE__ */ T(b, {
|
|
1830
1843
|
className: "max-w-4xl",
|
|
1831
|
-
children: [/* @__PURE__ */
|
|
1844
|
+
children: [/* @__PURE__ */ T(x, {
|
|
1832
1845
|
className: "flex-row items-center justify-between gap-4 pr-8",
|
|
1833
|
-
children: [/* @__PURE__ */
|
|
1846
|
+
children: [/* @__PURE__ */ w(S, { children: n }), o]
|
|
1834
1847
|
}), a]
|
|
1835
1848
|
})
|
|
1836
|
-
}) : /* @__PURE__ */
|
|
1849
|
+
}) : /* @__PURE__ */ w(oe, {
|
|
1837
1850
|
open: !0,
|
|
1838
|
-
onOpenChange: (e) => !e &&
|
|
1839
|
-
children: /* @__PURE__ */
|
|
1851
|
+
onOpenChange: (e) => !e && k(null),
|
|
1852
|
+
children: /* @__PURE__ */ T(se, {
|
|
1840
1853
|
side: "right",
|
|
1841
1854
|
className: "w-full sm:max-w-2xl md:max-w-3xl lg:max-w-4xl flex flex-col",
|
|
1842
|
-
children: [/* @__PURE__ */
|
|
1855
|
+
children: [/* @__PURE__ */ T(ce, {
|
|
1843
1856
|
className: "flex-row items-center justify-between gap-4 pr-8",
|
|
1844
|
-
children: [/* @__PURE__ */
|
|
1845
|
-
}), /* @__PURE__ */
|
|
1857
|
+
children: [/* @__PURE__ */ w(le, { children: n }), o]
|
|
1858
|
+
}), /* @__PURE__ */ w("div", {
|
|
1846
1859
|
className: "flex-1 overflow-hidden mt-2",
|
|
1847
1860
|
children: a
|
|
1848
1861
|
})]
|
|
1849
1862
|
})
|
|
1850
1863
|
});
|
|
1851
1864
|
})() : null;
|
|
1852
|
-
return /* @__PURE__ */
|
|
1865
|
+
return /* @__PURE__ */ T("div", {
|
|
1853
1866
|
className: "relative",
|
|
1854
1867
|
children: [
|
|
1855
|
-
/* @__PURE__ */
|
|
1856
|
-
/* @__PURE__ */
|
|
1868
|
+
/* @__PURE__ */ w(C, { active: ge && j.length > 0 }),
|
|
1869
|
+
/* @__PURE__ */ w($, {
|
|
1857
1870
|
...e,
|
|
1858
|
-
schema:
|
|
1859
|
-
onChartClick:
|
|
1871
|
+
schema: Ge,
|
|
1872
|
+
onChartClick: qe
|
|
1860
1873
|
}),
|
|
1861
|
-
|
|
1874
|
+
Je
|
|
1862
1875
|
]
|
|
1863
1876
|
});
|
|
1864
1877
|
};
|
|
@@ -1889,6 +1902,12 @@ e.register("object-chart", Ft, {
|
|
|
1889
1902
|
type: "object",
|
|
1890
1903
|
label: "Aggregate",
|
|
1891
1904
|
description: "Aggregation config: { field, function, groupBy }"
|
|
1905
|
+
},
|
|
1906
|
+
{
|
|
1907
|
+
name: "drillDown",
|
|
1908
|
+
type: "object",
|
|
1909
|
+
label: "Drill-down",
|
|
1910
|
+
description: "Segment drill config: { enabled?, filter?, title?, target?: 'drawer' | 'dialog', columns?, maxRows? }. Present = on; {} is enough. Clicking a segment opens the underlying records filtered by the clicked category."
|
|
1892
1911
|
}
|
|
1893
1912
|
]
|
|
1894
1913
|
});
|