@actioneer/ads 1.0.7 → 1.0.9
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/DESIGN.md +119 -91
- package/README.md +19 -1
- package/components/ai-elements/chart.js +20 -20
- package/components/ai-elements/inline-citation.js +50 -50
- package/components/ai-elements/message.js +1 -1
- package/components/ai-elements/tool.js +5 -5
- package/components/alert.d.ts +3 -2
- package/components/alert.js +25 -25
- package/components/answer.js +1 -1
- package/components/assistant-ui/action-bar.js +1 -1
- package/components/assistant-ui/attachment.js +68 -49
- package/components/assistant-ui/composer-add-context.js +1 -1
- package/components/assistant-ui/composer-harness.js +5 -4
- package/components/assistant-ui/composer-trigger-popover.js +1 -1
- package/components/assistant-ui/composer.js +13 -13
- package/components/assistant-ui/message-timing.js +6 -6
- package/components/assistant-ui/selection-toolbar.js +5 -5
- package/components/assistant-ui/sources.js +15 -15
- package/components/assistant-ui/tooltip-icon-button.js +18 -14
- package/components/audio-waveform.d.ts +21 -8
- package/components/audio-waveform.js +371 -94
- package/components/autocomplete.js +9 -9
- package/components/breadcrumbs.js +36 -42
- package/components/button.d.ts +16 -1
- package/components/button.js +86 -73
- package/components/card.js +1 -1
- package/components/chart.d.ts +31 -4
- package/components/chart.js +900 -666
- package/components/chip.d.ts +2 -1
- package/components/chip.js +56 -51
- package/components/command-palette.js +12 -12
- package/components/connector-card.d.ts +1 -2
- package/components/connector-card.js +17 -17
- package/components/date-range-picker.js +1 -2
- package/components/drawer.js +9 -10
- package/components/dropdown.js +1 -1
- package/components/empty-state.d.ts +2 -0
- package/components/empty-state.js +17 -15
- package/components/field.js +9 -10
- package/components/file-dropzone.d.ts +6 -3
- package/components/file-dropzone.js +72 -60
- package/components/filters.d.ts +37 -0
- package/components/filters.js +129 -0
- package/components/index.d.ts +1 -0
- package/components/index.js +447 -444
- package/components/infinite-canvas.js +9 -9
- package/components/modal.d.ts +2 -1
- package/components/modal.js +102 -91
- package/components/page-body.js +8 -8
- package/components/popover.d.ts +6 -1
- package/components/popover.js +75 -65
- package/components/progress-circle.d.ts +1 -1
- package/components/progress-circle.js +57 -48
- package/components/segmented.d.ts +1 -0
- package/components/segmented.js +34 -36
- package/components/select.js +2 -2
- package/components/selection-action-bar.js +32 -31
- package/components/setting-row.js +10 -10
- package/components/sidebar.d.ts +15 -0
- package/components/sidebar.js +186 -149
- package/components/slider.js +5 -5
- package/components/stepper.d.ts +1 -1
- package/components/stepper.js +1 -1
- package/components/switch.js +10 -10
- package/components/table.d.ts +10 -2
- package/components/table.js +380 -366
- package/components/tabs.d.ts +6 -1
- package/components/tabs.js +32 -29
- package/components/timeline.js +3 -3
- package/components/toast.js +53 -56
- package/components/ui/button.js +4 -4
- package/components/ui/dialog.js +1 -1
- package/components/viz-charts.js +263 -221
- package/demo/components/add-to-artifact.js +3 -2
- package/examples/README.md +31 -0
- package/examples/agents-screen.tsx +477 -0
- package/examples/campaign-analysis-screen.tsx +138 -0
- package/examples/campaigns-screen.tsx +439 -0
- package/examples/settings-screen.tsx +90 -0
- package/examples/workspace-header.tsx +71 -0
- package/lib/icons.d.ts +8 -0
- package/lib/icons.js +171 -118
- package/llms.txt +93 -29
- package/manifest.json +1660 -113
- package/package.json +1 -1
- package/styles.css +55 -68
- package/theme.css +50 -59
package/components/chart.js
CHANGED
|
@@ -1,133 +1,249 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import * as
|
|
4
|
-
import { ResponsiveContainer as
|
|
5
|
-
import { MotionConfig as
|
|
6
|
-
import { cn as
|
|
7
|
-
import { floatVariants as
|
|
8
|
-
const
|
|
2
|
+
import { jsxs as w, jsx as e, Fragment as oe } from "react/jsx-runtime";
|
|
3
|
+
import * as C from "react";
|
|
4
|
+
import { ResponsiveContainer as q, LineChart as Fe, Tooltip as z, Line as be, AreaChart as Te, Area as Ie, CartesianGrid as ce, XAxis as de, YAxis as ee, BarChart as De, Bar as ge, LabelList as me, Cell as te, ComposedChart as Ee, ScatterChart as ke, Scatter as Be, PieChart as He, Pie as _e, RadarChart as ze, PolarGrid as je, PolarAngleAxis as pe, PolarRadiusAxis as Pe, Radar as We, RadialBarChart as Ge, RadialBar as Ve, Treemap as Ue, ReferenceArea as Ye, ReferenceLine as Xe, ReferenceDot as Ze } from "recharts";
|
|
5
|
+
import { MotionConfig as Qe, AnimatePresence as qe, motion as Je } from "motion/react";
|
|
6
|
+
import { cn as D } from "../lib/cn.js";
|
|
7
|
+
import { floatVariants as Ke } from "../lib/motion.js";
|
|
8
|
+
const ne = (t) => `var(--color-chart-${t % 6 + 1})`, se = (t) => ne(t), re = "var(--chart-context)", ae = 2.5, et = /* @__PURE__ */ new Set([
|
|
9
|
+
"var(--color-chart-2)",
|
|
10
|
+
"var(--color-chart-6)",
|
|
11
|
+
re
|
|
12
|
+
]), Ne = (t) => et.has(t), fe = 20, tt = 0.55, W = "transition-opacity duration-150 ease-out motion-reduce:transition-none", X = (t, n, r = tt) => n == null || n === t ? 1 : r, we = (t) => t != null && t.isTooltipActive && t.activeTooltipIndex != null ? t.activeTooltipIndex : null;
|
|
13
|
+
function Ae() {
|
|
14
|
+
const [t, n] = C.useState(null), r = C.useMemo(
|
|
15
|
+
() => ({
|
|
16
|
+
onMouseMove: (i) => n(we(i)),
|
|
17
|
+
onMouseLeave: () => n(null)
|
|
18
|
+
}),
|
|
19
|
+
[]
|
|
20
|
+
);
|
|
21
|
+
return { activeIndex: t, handlers: r };
|
|
22
|
+
}
|
|
23
|
+
function Ce(t, n) {
|
|
24
|
+
const r = C.useRef(null), [i, o] = C.useState(null), [a, l] = C.useState(null);
|
|
25
|
+
return { frameRef: r, activeIndex: i, isDimmed: (d) => a != null && t(d) !== a, handlers: { onMouseMove: (d) => {
|
|
26
|
+
const b = we(d);
|
|
27
|
+
o(b);
|
|
28
|
+
const v = d == null ? void 0 : d.chartY;
|
|
29
|
+
if (b == null || !n || v == null || !r.current) {
|
|
30
|
+
l(null);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
let f = null, p = 1 / 0;
|
|
34
|
+
r.current.querySelectorAll(`circle[data-chart-index="${b}"]`).forEach((M) => {
|
|
35
|
+
const y = M.dataset.chartSeries, x = Number(M.getAttribute("cy"));
|
|
36
|
+
if (y == null || Number.isNaN(x)) return;
|
|
37
|
+
const u = Math.abs(x - v);
|
|
38
|
+
u < p && (p = u, f = t(y));
|
|
39
|
+
}), l(f);
|
|
40
|
+
}, onMouseLeave: () => {
|
|
41
|
+
o(null), l(null);
|
|
42
|
+
} } };
|
|
43
|
+
}
|
|
44
|
+
function Me(t, n) {
|
|
45
|
+
return (r) => {
|
|
46
|
+
if (!(n != null && n.includes(r))) return r;
|
|
47
|
+
const i = t.filter((o) => !n.includes(o));
|
|
48
|
+
return i[n.indexOf(r)] ?? i[0] ?? r;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const nt = 2.5, Y = {
|
|
9
52
|
primary: { ref: "var(--brand)", pill: "bg-action-primary-soft text-brand-text" },
|
|
10
53
|
success: { ref: "var(--color-success-600)", pill: "bg-success-50 text-success-700" },
|
|
11
54
|
warning: { ref: "var(--color-warning-500)", pill: "bg-warning-50 text-warning-700" },
|
|
12
55
|
danger: { ref: "var(--color-danger-500)", pill: "bg-danger-50 text-danger-700" },
|
|
13
56
|
info: { ref: "var(--color-info-500)", pill: "bg-info-50 text-info-700" }
|
|
14
|
-
},
|
|
15
|
-
const
|
|
57
|
+
}, _ = (t) => new Intl.NumberFormat("en-US", { notation: "compact", maximumFractionDigits: 1 }).format(t), ye = (t, n) => {
|
|
58
|
+
const r = [];
|
|
16
59
|
for (const i of t)
|
|
17
60
|
for (const o of Object.keys(i))
|
|
18
|
-
o !== n && typeof i[o] == "number" && !
|
|
19
|
-
return
|
|
61
|
+
o !== n && typeof i[o] == "number" && !r.includes(o) && r.push(o);
|
|
62
|
+
return r;
|
|
20
63
|
};
|
|
21
|
-
function
|
|
22
|
-
const l = (
|
|
23
|
-
return /* @__PURE__ */ e("text", { x: t, y: n, dy: o, textAnchor: i, className: "fill-tertiary text-xs tabular-nums", children:
|
|
64
|
+
function V({ x: t, y: n, payload: r, anchor: i, dy: o, format: a }) {
|
|
65
|
+
const l = (r == null ? void 0 : r.value) ?? "", h = a ? a(l) : l;
|
|
66
|
+
return /* @__PURE__ */ e("text", { x: t, y: n, dy: o, textAnchor: i, className: "fill-tertiary text-xs tabular-nums", children: h });
|
|
24
67
|
}
|
|
25
|
-
function
|
|
68
|
+
function Se({
|
|
26
69
|
x: t,
|
|
27
70
|
y: n,
|
|
28
|
-
value:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
71
|
+
value: r,
|
|
72
|
+
index: i,
|
|
73
|
+
hidden: o,
|
|
74
|
+
skip: a,
|
|
75
|
+
below: l,
|
|
76
|
+
color: h,
|
|
77
|
+
format: c
|
|
32
78
|
}) {
|
|
33
|
-
if (i || t == null || n == null ||
|
|
34
|
-
const
|
|
35
|
-
|
|
79
|
+
if (o || i != null && (a != null && a(i)) || t == null || n == null || r == null || r === "") return null;
|
|
80
|
+
const m = Number(r);
|
|
81
|
+
if (Number.isNaN(m)) return null;
|
|
82
|
+
const d = i != null && (l == null ? void 0 : l(i));
|
|
83
|
+
return /* @__PURE__ */ e(
|
|
36
84
|
"text",
|
|
37
85
|
{
|
|
38
86
|
x: Number(t),
|
|
39
|
-
y: Number(n) - 10,
|
|
87
|
+
y: d ? Number(n) + 20 : Number(n) - 10,
|
|
40
88
|
textAnchor: "middle",
|
|
41
|
-
fill:
|
|
42
|
-
className:
|
|
43
|
-
children:
|
|
89
|
+
fill: h,
|
|
90
|
+
className: D(!h && "fill-secondary", "text-xs tabular-nums"),
|
|
91
|
+
children: c(m)
|
|
44
92
|
}
|
|
45
93
|
);
|
|
46
94
|
}
|
|
47
|
-
function
|
|
95
|
+
function U({
|
|
48
96
|
cx: t,
|
|
49
97
|
cy: n,
|
|
50
|
-
color:
|
|
51
|
-
active: i = !1
|
|
98
|
+
color: r,
|
|
99
|
+
active: i = !1,
|
|
100
|
+
seriesKey: o,
|
|
101
|
+
index: a
|
|
52
102
|
}) {
|
|
53
|
-
|
|
103
|
+
if (t == null || n == null) return null;
|
|
104
|
+
const l = o != null && !i;
|
|
105
|
+
return /* @__PURE__ */ e(
|
|
54
106
|
"circle",
|
|
55
107
|
{
|
|
56
108
|
"aria-hidden": !0,
|
|
109
|
+
"data-chart-series": l ? o : void 0,
|
|
110
|
+
"data-chart-index": l ? a : void 0,
|
|
57
111
|
cx: t,
|
|
58
112
|
cy: n,
|
|
59
113
|
r: i ? 5.5 : 4,
|
|
60
114
|
fill: "var(--background)",
|
|
61
|
-
stroke:
|
|
62
|
-
strokeWidth: i ? 3 :
|
|
115
|
+
stroke: r,
|
|
116
|
+
strokeWidth: i ? 3 : nt
|
|
63
117
|
}
|
|
64
118
|
);
|
|
65
119
|
}
|
|
66
|
-
function
|
|
120
|
+
function rt({
|
|
67
121
|
x: t,
|
|
68
122
|
y: n,
|
|
69
|
-
width:
|
|
123
|
+
width: r,
|
|
70
124
|
height: i,
|
|
71
125
|
value: o,
|
|
72
|
-
format:
|
|
126
|
+
format: a,
|
|
73
127
|
horizontal: l
|
|
74
128
|
}) {
|
|
75
129
|
if (t == null || n == null || o == null || o === "") return null;
|
|
76
|
-
const
|
|
77
|
-
if (Number.isNaN(
|
|
78
|
-
const c = Number(t), m = Number(n),
|
|
130
|
+
const h = Number(o);
|
|
131
|
+
if (Number.isNaN(h)) return null;
|
|
132
|
+
const c = Number(t), m = Number(n), d = Number(r ?? 0), b = Number(i ?? 0);
|
|
79
133
|
return l ? /* @__PURE__ */ e(
|
|
80
134
|
"text",
|
|
81
135
|
{
|
|
82
|
-
x: c +
|
|
83
|
-
y: m +
|
|
136
|
+
x: c + d + 8,
|
|
137
|
+
y: m + b / 2,
|
|
84
138
|
dy: "0.32em",
|
|
85
139
|
textAnchor: "start",
|
|
86
140
|
className: "fill-secondary text-xs tabular-nums",
|
|
87
|
-
children:
|
|
141
|
+
children: a(h)
|
|
88
142
|
}
|
|
89
143
|
) : /* @__PURE__ */ e(
|
|
90
144
|
"text",
|
|
91
145
|
{
|
|
92
|
-
x: c +
|
|
146
|
+
x: c + d / 2,
|
|
93
147
|
y: m - 8,
|
|
94
148
|
textAnchor: "middle",
|
|
95
149
|
className: "fill-secondary text-xs tabular-nums",
|
|
96
|
-
children:
|
|
150
|
+
children: a(h)
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
function at({
|
|
155
|
+
x: t,
|
|
156
|
+
y: n,
|
|
157
|
+
width: r,
|
|
158
|
+
height: i,
|
|
159
|
+
value: o,
|
|
160
|
+
format: a,
|
|
161
|
+
horizontal: l,
|
|
162
|
+
light: h
|
|
163
|
+
}) {
|
|
164
|
+
if (t == null || n == null || o == null || o === "") return null;
|
|
165
|
+
const c = Number(o);
|
|
166
|
+
if (Number.isNaN(c) || c === 0) return null;
|
|
167
|
+
const m = Number(t), d = Number(n), b = Math.abs(Number(r ?? 0)), v = Math.abs(Number(i ?? 0)), f = a(c), p = l ? Math.max(fe, f.length * 6 + 8) : fe;
|
|
168
|
+
return (l ? b : v) < p ? null : /* @__PURE__ */ e(
|
|
169
|
+
"text",
|
|
170
|
+
{
|
|
171
|
+
x: m + Number(r ?? 0) / 2,
|
|
172
|
+
y: d + Number(i ?? 0) / 2,
|
|
173
|
+
dy: "0.32em",
|
|
174
|
+
textAnchor: "middle",
|
|
175
|
+
pointerEvents: "none",
|
|
176
|
+
className: D("text-xs tabular-nums", h ? "fill-primary" : "fill-white"),
|
|
177
|
+
children: f
|
|
97
178
|
}
|
|
98
179
|
);
|
|
99
180
|
}
|
|
100
|
-
function
|
|
181
|
+
function it({
|
|
182
|
+
x: t,
|
|
183
|
+
y: n,
|
|
184
|
+
width: r,
|
|
185
|
+
height: i,
|
|
186
|
+
index: o,
|
|
187
|
+
totals: a,
|
|
188
|
+
format: l,
|
|
189
|
+
horizontal: h
|
|
190
|
+
}) {
|
|
191
|
+
if (t == null || n == null || o == null) return null;
|
|
192
|
+
const c = a[o];
|
|
193
|
+
if (c == null) return null;
|
|
194
|
+
const m = Number(t), d = Number(n), b = Number(r ?? 0), v = Number(i ?? 0);
|
|
195
|
+
return h ? /* @__PURE__ */ e(
|
|
196
|
+
"text",
|
|
197
|
+
{
|
|
198
|
+
x: m + b + 8,
|
|
199
|
+
y: d + v / 2,
|
|
200
|
+
dy: "0.32em",
|
|
201
|
+
textAnchor: "start",
|
|
202
|
+
className: "fill-primary text-xs font-medium tabular-nums",
|
|
203
|
+
children: l(c)
|
|
204
|
+
}
|
|
205
|
+
) : /* @__PURE__ */ e(
|
|
206
|
+
"text",
|
|
207
|
+
{
|
|
208
|
+
x: m + b / 2,
|
|
209
|
+
y: d - 8,
|
|
210
|
+
textAnchor: "middle",
|
|
211
|
+
className: "fill-primary text-xs font-medium tabular-nums",
|
|
212
|
+
children: l(c)
|
|
213
|
+
}
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
function j({
|
|
101
217
|
active: t,
|
|
102
218
|
payload: n,
|
|
103
|
-
label:
|
|
219
|
+
label: r,
|
|
104
220
|
format: i,
|
|
105
221
|
labelKey: o,
|
|
106
|
-
renderer:
|
|
222
|
+
renderer: a
|
|
107
223
|
}) {
|
|
108
|
-
var
|
|
109
|
-
const l = (n ?? []).map((f,
|
|
110
|
-
const
|
|
224
|
+
var b, v;
|
|
225
|
+
const l = (n ?? []).map((f, p) => {
|
|
226
|
+
const M = f.payload && typeof f.payload == "object" ? f.payload : void 0;
|
|
111
227
|
return {
|
|
112
|
-
key: f.dataKey ??
|
|
113
|
-
name: f.name ?? f.dataKey ??
|
|
228
|
+
key: f.dataKey ?? p,
|
|
229
|
+
name: f.name ?? f.dataKey ?? p,
|
|
114
230
|
value: f.value,
|
|
115
231
|
color: f.color,
|
|
116
|
-
datum:
|
|
232
|
+
datum: M
|
|
117
233
|
};
|
|
118
|
-
}),
|
|
234
|
+
}), h = o ? (v = (b = l[0]) == null ? void 0 : b.datum) == null ? void 0 : v[o] : void 0, c = {
|
|
119
235
|
active: !!t,
|
|
120
|
-
label: typeof
|
|
236
|
+
label: typeof h == "string" || typeof h == "number" ? h : r,
|
|
121
237
|
items: l,
|
|
122
238
|
formatValue: i
|
|
123
239
|
};
|
|
124
|
-
if (
|
|
240
|
+
if (a) return /* @__PURE__ */ e(oe, { children: a(c) });
|
|
125
241
|
if (!c.active || !l.length) return null;
|
|
126
|
-
const m = l.length === 1,
|
|
127
|
-
return /* @__PURE__ */
|
|
128
|
-
/* @__PURE__ */ e("div", { className:
|
|
129
|
-
l.map((f) => /* @__PURE__ */
|
|
130
|
-
!m && /* @__PURE__ */
|
|
242
|
+
const m = l.length === 1, d = c.label ?? (m ? l[0].name : void 0);
|
|
243
|
+
return /* @__PURE__ */ w("div", { className: "rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background", children: [
|
|
244
|
+
/* @__PURE__ */ e("div", { className: D("text-xs font-normal tracking-wide uppercase text-background/60", !m && "mb-1"), children: d }),
|
|
245
|
+
l.map((f) => /* @__PURE__ */ w("div", { className: "flex items-center gap-1.5", children: [
|
|
246
|
+
!m && /* @__PURE__ */ w(oe, { children: [
|
|
131
247
|
/* @__PURE__ */ e("span", { "aria-hidden": !0, className: "size-1.5 rounded-dot", style: { background: f.color } }),
|
|
132
248
|
/* @__PURE__ */ e("span", { className: "text-background/70", children: f.name })
|
|
133
249
|
] }),
|
|
@@ -135,54 +251,54 @@ function T({
|
|
|
135
251
|
] }, f.key))
|
|
136
252
|
] });
|
|
137
253
|
}
|
|
138
|
-
const
|
|
139
|
-
function
|
|
254
|
+
const Re = "pointer-events-none inline-flex min-h-4 items-center rounded-full px-2 py-0.5 text-xs font-normal whitespace-nowrap";
|
|
255
|
+
function lt({
|
|
140
256
|
viewBox: t,
|
|
141
257
|
label: n,
|
|
142
|
-
value:
|
|
258
|
+
value: r,
|
|
143
259
|
color: i,
|
|
144
260
|
axis: o
|
|
145
261
|
}) {
|
|
146
|
-
const
|
|
262
|
+
const a = t ?? {}, l = /* @__PURE__ */ w("span", { className: D(Re, Y[i].pill), children: [
|
|
147
263
|
n,
|
|
148
|
-
|
|
264
|
+
r != null && /* @__PURE__ */ e("span", { className: "ml-1 tabular-nums", children: r })
|
|
149
265
|
] });
|
|
150
|
-
return o === "y" ? /* @__PURE__ */ e("foreignObject", { x:
|
|
266
|
+
return o === "y" ? /* @__PURE__ */ e("foreignObject", { x: a.x ?? 0, y: (a.y ?? 0) - 12, width: a.width ?? 0, height: 24, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-end pr-1", children: l }) }) : /* @__PURE__ */ e("foreignObject", { x: (a.x ?? 0) - 90, y: (a.y ?? 0) - 12, width: 180, height: 24, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center justify-center", children: l }) });
|
|
151
267
|
}
|
|
152
|
-
function
|
|
268
|
+
function ot({ viewBox: t, label: n, color: r }) {
|
|
153
269
|
const i = t ?? {};
|
|
154
|
-
return /* @__PURE__ */ e("foreignObject", { x: i.x ?? 0, y: i.y ?? 0, width: i.width ?? 0, height: 28, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center pl-1.5", children: /* @__PURE__ */ e("span", { className:
|
|
270
|
+
return /* @__PURE__ */ e("foreignObject", { x: i.x ?? 0, y: i.y ?? 0, width: i.width ?? 0, height: 28, className: "overflow-visible", children: /* @__PURE__ */ e("div", { className: "flex h-full items-center pl-1.5", children: /* @__PURE__ */ e("span", { className: D(Re, Y[r].pill), children: n }) }) });
|
|
155
271
|
}
|
|
156
|
-
function
|
|
272
|
+
function st({
|
|
157
273
|
cx: t,
|
|
158
274
|
cy: n,
|
|
159
|
-
n:
|
|
275
|
+
n: r,
|
|
160
276
|
ann: i,
|
|
161
277
|
onEnter: o,
|
|
162
|
-
onLeave:
|
|
278
|
+
onLeave: a
|
|
163
279
|
}) {
|
|
164
|
-
const [l,
|
|
280
|
+
const [l, h] = C.useState(!1);
|
|
165
281
|
if (t == null || n == null || !Number.isFinite(t) || !Number.isFinite(n)) return /* @__PURE__ */ e("g", {});
|
|
166
|
-
const c = () => o({ ann: i, n:
|
|
167
|
-
return /* @__PURE__ */
|
|
282
|
+
const c = () => o({ ann: i, n: r, cx: t, cy: n }), m = () => a();
|
|
283
|
+
return /* @__PURE__ */ w(
|
|
168
284
|
"g",
|
|
169
285
|
{
|
|
170
286
|
tabIndex: 0,
|
|
171
287
|
role: "img",
|
|
172
|
-
"aria-label": `Annotation ${
|
|
288
|
+
"aria-label": `Annotation ${r}: ${i.label}`,
|
|
173
289
|
className: "cursor-default outline-none [transform-box:fill-box] origin-center transition-transform ease-out [transition-duration:150ms] hover:scale-110 focus-visible:scale-110 motion-reduce:transition-none motion-reduce:hover:scale-100 motion-reduce:focus-visible:scale-100",
|
|
174
290
|
onMouseEnter: c,
|
|
175
291
|
onMouseLeave: m,
|
|
176
292
|
onFocus: () => {
|
|
177
|
-
|
|
293
|
+
h(!0), c();
|
|
178
294
|
},
|
|
179
295
|
onBlur: () => {
|
|
180
|
-
|
|
296
|
+
h(!1), m();
|
|
181
297
|
},
|
|
182
298
|
children: [
|
|
183
299
|
l && /* @__PURE__ */ e("circle", { cx: t, cy: n, r: 12, fill: "none", stroke: "var(--ring)", strokeWidth: 2 }),
|
|
184
300
|
/* @__PURE__ */ e("circle", { cx: t, cy: n, r: 10, fill: "var(--background)" }),
|
|
185
|
-
/* @__PURE__ */ e("circle", { cx: t, cy: n, r: 8, fill:
|
|
301
|
+
/* @__PURE__ */ e("circle", { cx: t, cy: n, r: 8, fill: Y[i.color ?? "primary"].ref }),
|
|
186
302
|
/* @__PURE__ */ e(
|
|
187
303
|
"text",
|
|
188
304
|
{
|
|
@@ -191,15 +307,15 @@ function Ue({
|
|
|
191
307
|
dy: "0.35em",
|
|
192
308
|
textAnchor: "middle",
|
|
193
309
|
className: "pointer-events-none fill-brand-foreground text-s font-medium select-none",
|
|
194
|
-
children:
|
|
310
|
+
children: r
|
|
195
311
|
}
|
|
196
312
|
)
|
|
197
313
|
]
|
|
198
314
|
}
|
|
199
315
|
);
|
|
200
316
|
}
|
|
201
|
-
function
|
|
202
|
-
return /* @__PURE__ */ e(
|
|
317
|
+
function ct({ hovered: t, frameWidth: n, format: r }) {
|
|
318
|
+
return /* @__PURE__ */ e(Qe, { reducedMotion: "user", children: /* @__PURE__ */ e(qe, { children: t && /* @__PURE__ */ e(
|
|
203
319
|
"div",
|
|
204
320
|
{
|
|
205
321
|
className: "pointer-events-none absolute z-10",
|
|
@@ -207,32 +323,32 @@ function Ye({ hovered: t, frameWidth: n, format: a }) {
|
|
|
207
323
|
left: Math.max(96, Math.min(t.cx, Math.max(n - 96, 96))),
|
|
208
324
|
top: t.cy - 16
|
|
209
325
|
},
|
|
210
|
-
children: /* @__PURE__ */
|
|
211
|
-
|
|
326
|
+
children: /* @__PURE__ */ w(
|
|
327
|
+
Je.div,
|
|
212
328
|
{
|
|
213
|
-
variants:
|
|
329
|
+
variants: Ke,
|
|
214
330
|
initial: "hidden",
|
|
215
331
|
animate: "visible",
|
|
216
332
|
exit: "hidden",
|
|
217
|
-
className: "w-max max-w-60 -translate-x-1/2 -translate-y-full origin-bottom rounded-lg bg-elevated p-3
|
|
333
|
+
className: "w-max max-w-60 -translate-x-1/2 -translate-y-full origin-bottom rounded-lg bg-elevated p-3",
|
|
218
334
|
children: [
|
|
219
|
-
/* @__PURE__ */
|
|
335
|
+
/* @__PURE__ */ w("div", { className: "flex items-center gap-2", children: [
|
|
220
336
|
/* @__PURE__ */ e(
|
|
221
337
|
"span",
|
|
222
338
|
{
|
|
223
339
|
"aria-hidden": !0,
|
|
224
340
|
className: "flex size-4.5 shrink-0 items-center justify-center rounded-full text-s font-medium text-brand-foreground",
|
|
225
|
-
style: { background:
|
|
341
|
+
style: { background: Y[t.ann.color ?? "primary"].ref },
|
|
226
342
|
children: t.n
|
|
227
343
|
}
|
|
228
344
|
),
|
|
229
345
|
/* @__PURE__ */ e("span", { className: "text-xs font-normal text-foreground", children: t.ann.label })
|
|
230
346
|
] }),
|
|
231
347
|
t.ann.description && /* @__PURE__ */ e("p", { className: "mt-1.5 text-xs leading-relaxed text-secondary", children: t.ann.description }),
|
|
232
|
-
/* @__PURE__ */
|
|
348
|
+
/* @__PURE__ */ w("div", { className: "mt-1.5 text-xs font-normal tracking-wide uppercase text-tertiary tabular-nums", children: [
|
|
233
349
|
t.ann.x,
|
|
234
350
|
" · ",
|
|
235
|
-
|
|
351
|
+
r(t.ann.y)
|
|
236
352
|
] })
|
|
237
353
|
]
|
|
238
354
|
}
|
|
@@ -240,50 +356,50 @@ function Ye({ hovered: t, frameWidth: n, format: a }) {
|
|
|
240
356
|
}
|
|
241
357
|
) }) });
|
|
242
358
|
}
|
|
243
|
-
function
|
|
244
|
-
const [
|
|
245
|
-
const
|
|
359
|
+
function Le(t, n) {
|
|
360
|
+
const [r, i] = C.useState(null), o = C.useCallback(() => i(null), []), { back: a, front: l } = C.useMemo(() => {
|
|
361
|
+
const h = [], c = [];
|
|
246
362
|
let m = 0;
|
|
247
|
-
return (t ?? []).forEach((
|
|
248
|
-
const
|
|
249
|
-
if (
|
|
250
|
-
const f =
|
|
251
|
-
|
|
363
|
+
return (t ?? []).forEach((d, b) => {
|
|
364
|
+
const v = d.color ?? "primary";
|
|
365
|
+
if (d.kind === "band") {
|
|
366
|
+
const f = d.axis ?? "y";
|
|
367
|
+
h.push(
|
|
252
368
|
/* @__PURE__ */ e(
|
|
253
|
-
|
|
369
|
+
Ye,
|
|
254
370
|
{
|
|
255
|
-
...f === "y" ? { y1:
|
|
256
|
-
fill:
|
|
371
|
+
...f === "y" ? { y1: d.from, y2: d.to } : { x1: d.from, x2: d.to },
|
|
372
|
+
fill: Y[v].ref,
|
|
257
373
|
fillOpacity: 0.06,
|
|
258
374
|
stroke: "none",
|
|
259
375
|
ifOverflow: f === "y" ? "extendDomain" : "visible",
|
|
260
|
-
label:
|
|
376
|
+
label: d.label ? /* @__PURE__ */ e(ot, { label: d.label, color: v }) : void 0
|
|
261
377
|
},
|
|
262
|
-
`ann-${
|
|
378
|
+
`ann-${b}`
|
|
263
379
|
)
|
|
264
380
|
);
|
|
265
|
-
} else if (
|
|
266
|
-
const f =
|
|
381
|
+
} else if (d.kind === "line") {
|
|
382
|
+
const f = d.axis ?? "y";
|
|
267
383
|
c.push(
|
|
268
384
|
/* @__PURE__ */ e(
|
|
269
|
-
|
|
385
|
+
Xe,
|
|
270
386
|
{
|
|
271
|
-
...f === "y" ? { y:
|
|
272
|
-
stroke:
|
|
387
|
+
...f === "y" ? { y: d.value } : { x: d.value },
|
|
388
|
+
stroke: Y[v].ref,
|
|
273
389
|
strokeWidth: 1,
|
|
274
390
|
strokeDasharray: "4 4",
|
|
275
391
|
ifOverflow: f === "y" ? "extendDomain" : "visible",
|
|
276
|
-
label:
|
|
277
|
-
|
|
392
|
+
label: d.label ? /* @__PURE__ */ e(
|
|
393
|
+
lt,
|
|
278
394
|
{
|
|
279
|
-
label:
|
|
280
|
-
value: typeof
|
|
281
|
-
color:
|
|
395
|
+
label: d.label,
|
|
396
|
+
value: typeof d.value == "number" ? n(d.value) : String(d.value),
|
|
397
|
+
color: v,
|
|
282
398
|
axis: f
|
|
283
399
|
}
|
|
284
400
|
) : void 0
|
|
285
401
|
},
|
|
286
|
-
`ann-${
|
|
402
|
+
`ann-${b}`
|
|
287
403
|
)
|
|
288
404
|
);
|
|
289
405
|
} else {
|
|
@@ -291,25 +407,25 @@ function ve(t, n) {
|
|
|
291
407
|
const f = m;
|
|
292
408
|
c.push(
|
|
293
409
|
/* @__PURE__ */ e(
|
|
294
|
-
|
|
410
|
+
Ze,
|
|
295
411
|
{
|
|
296
|
-
x:
|
|
297
|
-
y:
|
|
412
|
+
x: d.x,
|
|
413
|
+
y: d.y,
|
|
298
414
|
ifOverflow: "visible",
|
|
299
|
-
shape: (
|
|
415
|
+
shape: (p) => /* @__PURE__ */ e(st, { cx: p.cx, cy: p.cy, n: f, ann: d, onEnter: i, onLeave: o })
|
|
300
416
|
},
|
|
301
|
-
`ann-${
|
|
417
|
+
`ann-${b}`
|
|
302
418
|
)
|
|
303
419
|
);
|
|
304
420
|
}
|
|
305
|
-
}), { back:
|
|
421
|
+
}), { back: h, front: c };
|
|
306
422
|
}, [t, n, o]);
|
|
307
|
-
return { back:
|
|
423
|
+
return { back: a, front: l, hovered: r };
|
|
308
424
|
}
|
|
309
|
-
function
|
|
425
|
+
function Q({
|
|
310
426
|
items: t,
|
|
311
427
|
align: n = "end",
|
|
312
|
-
className:
|
|
428
|
+
className: r,
|
|
313
429
|
onToggle: i
|
|
314
430
|
}) {
|
|
315
431
|
const o = {
|
|
@@ -317,285 +433,343 @@ function X({
|
|
|
317
433
|
center: "justify-center",
|
|
318
434
|
end: "justify-end"
|
|
319
435
|
}[n];
|
|
320
|
-
return /* @__PURE__ */ e("div", { className:
|
|
321
|
-
(
|
|
436
|
+
return /* @__PURE__ */ e("div", { className: D("mb-3 flex flex-wrap items-center gap-x-4 gap-y-1", o, r), children: t.map(
|
|
437
|
+
(a) => i && a.key !== void 0 ? /* @__PURE__ */ w(
|
|
322
438
|
"button",
|
|
323
439
|
{
|
|
324
440
|
type: "button",
|
|
325
|
-
"aria-pressed": !
|
|
326
|
-
"aria-label": `Toggle ${
|
|
327
|
-
onClick: () => i(
|
|
328
|
-
className:
|
|
441
|
+
"aria-pressed": !a.hidden,
|
|
442
|
+
"aria-label": `Toggle ${a.label} series`,
|
|
443
|
+
onClick: () => i(a.key),
|
|
444
|
+
className: D(
|
|
329
445
|
"inline-flex cursor-pointer items-center gap-1.5 rounded-sm text-s outline-none",
|
|
330
446
|
"transition-colors duration-150 ease-out motion-reduce:transition-none",
|
|
331
447
|
"focus-visible:ring-2 focus-visible:ring-ring",
|
|
332
|
-
|
|
448
|
+
a.hidden ? "text-tertiary" : "text-secondary hover:text-foreground"
|
|
333
449
|
),
|
|
334
450
|
children: [
|
|
335
451
|
/* @__PURE__ */ e(
|
|
336
452
|
"span",
|
|
337
453
|
{
|
|
338
454
|
"aria-hidden": !0,
|
|
339
|
-
className:
|
|
455
|
+
className: D(
|
|
340
456
|
"size-2 rounded-dot transition-opacity duration-150 ease-out motion-reduce:transition-none",
|
|
341
|
-
|
|
457
|
+
a.hidden && "opacity-25"
|
|
342
458
|
),
|
|
343
|
-
style: { background:
|
|
459
|
+
style: { background: a.color }
|
|
344
460
|
}
|
|
345
461
|
),
|
|
346
|
-
|
|
462
|
+
a.label
|
|
347
463
|
]
|
|
348
464
|
},
|
|
349
|
-
|
|
350
|
-
) : /* @__PURE__ */
|
|
351
|
-
/* @__PURE__ */ e("span", { "aria-hidden": !0, className: "size-2 rounded-dot", style: { background:
|
|
352
|
-
|
|
353
|
-
] },
|
|
465
|
+
a.label
|
|
466
|
+
) : /* @__PURE__ */ w("span", { className: "inline-flex items-center gap-1.5 text-s text-secondary", children: [
|
|
467
|
+
/* @__PURE__ */ e("span", { "aria-hidden": !0, className: "size-2 rounded-dot", style: { background: a.color } }),
|
|
468
|
+
a.label
|
|
469
|
+
] }, a.label)
|
|
354
470
|
) });
|
|
355
471
|
}
|
|
356
|
-
const
|
|
357
|
-
({
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
472
|
+
const Z = C.forwardRef(
|
|
473
|
+
({
|
|
474
|
+
className: t,
|
|
475
|
+
height: n,
|
|
476
|
+
legendItems: r,
|
|
477
|
+
title: i,
|
|
478
|
+
subtitle: o,
|
|
479
|
+
legendPlacement: a,
|
|
480
|
+
hovered: l,
|
|
481
|
+
format: h,
|
|
482
|
+
onLegendToggle: c,
|
|
483
|
+
hoverRef: m,
|
|
484
|
+
children: d,
|
|
485
|
+
...b
|
|
486
|
+
}, v) => {
|
|
487
|
+
var u;
|
|
488
|
+
const f = C.useRef(null), p = (g) => {
|
|
489
|
+
f.current = g, m && (m.current = g), typeof v == "function" ? v(g) : v && (v.current = g);
|
|
490
|
+
}, M = i != null || o != null, x = (a ?? (M ? "header" : "top")) === "header" && r != null;
|
|
491
|
+
return /* @__PURE__ */ w("div", { ref: p, className: D("relative w-full font-sans", t), ...b, children: [
|
|
492
|
+
(M || x) && // The header row: title block leads, the legend trails on the same
|
|
493
|
+
// row. 36px separates the header block from the plot.
|
|
494
|
+
/* @__PURE__ */ w(
|
|
495
|
+
"div",
|
|
496
|
+
{
|
|
497
|
+
"data-slot": "chart-header",
|
|
498
|
+
className: D(
|
|
499
|
+
"flex flex-wrap items-start gap-x-6 gap-y-2",
|
|
500
|
+
M ? "justify-between" : "justify-end",
|
|
501
|
+
x ? "mb-9" : "mb-3"
|
|
502
|
+
),
|
|
503
|
+
children: [
|
|
504
|
+
M && /* @__PURE__ */ w("div", { className: "flex min-w-0 flex-col gap-0.5", children: [
|
|
505
|
+
i != null && /* @__PURE__ */ e("div", { className: "text-l font-medium text-on-white-primary", children: i }),
|
|
506
|
+
o != null && /* @__PURE__ */ e("div", { className: "text-s text-on-white-secondary", children: o })
|
|
507
|
+
] }),
|
|
508
|
+
x && r && /* @__PURE__ */ e(Q, { items: r, onToggle: c, className: "mb-0 pt-1" })
|
|
509
|
+
]
|
|
510
|
+
}
|
|
511
|
+
),
|
|
512
|
+
r && !x && /* @__PURE__ */ e(Q, { items: r, onToggle: c }),
|
|
513
|
+
/* @__PURE__ */ e(q, { width: "100%", height: Math.max(n, P), children: d }),
|
|
514
|
+
/* @__PURE__ */ e(ct, { hovered: l, frameWidth: ((u = f.current) == null ? void 0 : u.clientWidth) ?? 0, format: h })
|
|
366
515
|
] });
|
|
367
516
|
}
|
|
368
517
|
);
|
|
369
|
-
|
|
370
|
-
function
|
|
518
|
+
Z.displayName = "ChartFrame";
|
|
519
|
+
function ie(t) {
|
|
371
520
|
const {
|
|
372
521
|
data: n,
|
|
373
|
-
categoryKey:
|
|
522
|
+
categoryKey: r,
|
|
374
523
|
series: i,
|
|
375
524
|
seriesLabels: o,
|
|
376
|
-
highlight:
|
|
525
|
+
highlight: a,
|
|
377
526
|
annotations: l,
|
|
378
|
-
grid:
|
|
527
|
+
grid: h = !1,
|
|
379
528
|
legend: c,
|
|
380
529
|
showYAxis: m = !0,
|
|
381
|
-
formatValue:
|
|
382
|
-
xScale:
|
|
383
|
-
xDomain:
|
|
530
|
+
formatValue: d,
|
|
531
|
+
xScale: b = "category",
|
|
532
|
+
xDomain: v,
|
|
384
533
|
yDomain: f,
|
|
385
|
-
xTickFormatter:
|
|
386
|
-
yTickFormatter:
|
|
387
|
-
yAxisWidth:
|
|
388
|
-
|
|
534
|
+
xTickFormatter: p,
|
|
535
|
+
yTickFormatter: M,
|
|
536
|
+
yAxisWidth: y = 44,
|
|
537
|
+
title: x,
|
|
538
|
+
subtitle: u,
|
|
539
|
+
legendPlacement: g
|
|
540
|
+
} = t, S = { title: x, subtitle: u, legendPlacement: g }, $ = C.useMemo(() => i ?? ye(n, r), [i, n, r]), R = d ?? _, s = M ?? ((T) => typeof T == "number" ? R(T) : T), O = Le(l, R), A = (T, G) => a && $.includes(a) ? T === a ? "var(--color-chart-1)" : re : ne(G), I = (T) => (o == null ? void 0 : o[T]) ?? T, [L, E] = C.useState(
|
|
389
541
|
() => /* @__PURE__ */ new Set()
|
|
390
|
-
),
|
|
391
|
-
|
|
392
|
-
const
|
|
393
|
-
return
|
|
542
|
+
), N = C.useCallback((T) => {
|
|
543
|
+
E((G) => {
|
|
544
|
+
const H = new Set(G);
|
|
545
|
+
return H.has(T) ? H.delete(T) : H.add(T), H;
|
|
394
546
|
});
|
|
395
|
-
}, []),
|
|
396
|
-
key:
|
|
397
|
-
label:
|
|
398
|
-
color:
|
|
399
|
-
hidden:
|
|
547
|
+
}, []), F = (T) => L.has(T), B = c ?? $.length > 1 ? $.map((T, G) => ({
|
|
548
|
+
key: T,
|
|
549
|
+
label: I(T),
|
|
550
|
+
color: A(T, G),
|
|
551
|
+
hidden: L.has(T)
|
|
400
552
|
})) : null;
|
|
401
553
|
return {
|
|
402
|
-
names:
|
|
403
|
-
format:
|
|
404
|
-
layers:
|
|
405
|
-
legendItems:
|
|
554
|
+
names: $,
|
|
555
|
+
format: R,
|
|
556
|
+
layers: O,
|
|
557
|
+
legendItems: B,
|
|
558
|
+
header: S,
|
|
406
559
|
furniture: [
|
|
407
560
|
/* Gridlines one step below the border token — guides, not content. */
|
|
408
|
-
|
|
561
|
+
h ? /* @__PURE__ */ e(ce, { vertical: !1, stroke: "var(--chart-grid)" }, "grid") : null,
|
|
409
562
|
/* @__PURE__ */ e(
|
|
410
|
-
|
|
563
|
+
de,
|
|
411
564
|
{
|
|
412
|
-
dataKey:
|
|
413
|
-
type:
|
|
414
|
-
scale:
|
|
415
|
-
domain:
|
|
416
|
-
allowDataOverflow: !!
|
|
565
|
+
dataKey: r,
|
|
566
|
+
type: b === "time" ? "number" : "category",
|
|
567
|
+
scale: b === "time" ? "time" : "auto",
|
|
568
|
+
domain: b === "time" ? v ?? ["dataMin", "dataMax"] : v,
|
|
569
|
+
allowDataOverflow: !!v,
|
|
417
570
|
axisLine: { stroke: "var(--chart-axis)" },
|
|
418
571
|
tickLine: !1,
|
|
419
572
|
minTickGap: 28,
|
|
420
573
|
tickMargin: 24,
|
|
421
574
|
padding: { left: 16, right: 16 },
|
|
422
575
|
height: 40,
|
|
423
|
-
tick: /* @__PURE__ */ e(
|
|
576
|
+
tick: /* @__PURE__ */ e(V, { anchor: "middle", dy: 0, format: p })
|
|
424
577
|
},
|
|
425
578
|
"x"
|
|
426
579
|
),
|
|
427
580
|
m ? /* @__PURE__ */ e(
|
|
428
|
-
|
|
581
|
+
ee,
|
|
429
582
|
{
|
|
430
|
-
width:
|
|
583
|
+
width: y,
|
|
431
584
|
domain: f,
|
|
432
585
|
allowDataOverflow: !!f,
|
|
433
586
|
axisLine: { stroke: "var(--chart-axis)" },
|
|
434
587
|
tickLine: !1,
|
|
435
588
|
tickMargin: 12,
|
|
436
|
-
tick: /* @__PURE__ */ e(
|
|
589
|
+
tick: /* @__PURE__ */ e(V, { anchor: "end", dy: "0.32em", format: s })
|
|
437
590
|
},
|
|
438
591
|
"y"
|
|
439
592
|
) : null
|
|
440
593
|
],
|
|
441
|
-
colorFor:
|
|
442
|
-
labelFor:
|
|
443
|
-
toggleSeries:
|
|
444
|
-
isHidden:
|
|
594
|
+
colorFor: A,
|
|
595
|
+
labelFor: I,
|
|
596
|
+
toggleSeries: N,
|
|
597
|
+
isHidden: F
|
|
445
598
|
};
|
|
446
599
|
}
|
|
447
|
-
const
|
|
448
|
-
function
|
|
600
|
+
const P = 300, J = { top: 24, right: 12, bottom: 8, left: 0 };
|
|
601
|
+
function ue(t, n, r, i) {
|
|
449
602
|
if (i === !0) return new Set(t);
|
|
450
603
|
if (i === !1) return /* @__PURE__ */ new Set();
|
|
451
|
-
if (
|
|
452
|
-
const
|
|
453
|
-
return /* @__PURE__ */ new Set([
|
|
604
|
+
if (r && t.includes(r)) {
|
|
605
|
+
const a = (n ?? []).filter((l) => l !== r);
|
|
606
|
+
return /* @__PURE__ */ new Set([r, ...a]);
|
|
454
607
|
}
|
|
455
|
-
return t.filter((
|
|
608
|
+
return t.filter((a) => !(n != null && n.includes(a))).length === 1 ? new Set(t) : /* @__PURE__ */ new Set();
|
|
456
609
|
}
|
|
457
|
-
function
|
|
458
|
-
return
|
|
610
|
+
function $e(t, n, r) {
|
|
611
|
+
return C.useCallback(
|
|
459
612
|
(i, o) => {
|
|
460
|
-
if (!(n != null && n.includes(i))) return
|
|
461
|
-
const
|
|
462
|
-
return l ?
|
|
613
|
+
if (!(n != null && n.includes(i))) return r(i, o);
|
|
614
|
+
const a = t.filter((h) => !n.includes(h)), l = a[n.indexOf(i)] ?? a[0];
|
|
615
|
+
return l ? r(l, t.indexOf(l)) : r(i, o);
|
|
463
616
|
},
|
|
464
|
-
[t, n,
|
|
617
|
+
[t, n, r]
|
|
465
618
|
);
|
|
466
619
|
}
|
|
467
|
-
const
|
|
620
|
+
const dt = C.forwardRef(
|
|
468
621
|
// Straight segments by default: the house line is a solid stroke with a DOT
|
|
469
622
|
// at every observation — the data points are visible, the path connects them
|
|
470
623
|
// without inventing values between them.
|
|
471
624
|
// A smooth curve invents values between observations; opt back in with
|
|
472
625
|
// `curve="natural"` when the interpolation is the point.
|
|
473
|
-
({ height: t =
|
|
474
|
-
const { names: c, format: m, layers:
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
626
|
+
({ height: t = P, curve: n = "linear", forecastKeys: r, animatedSeriesKeys: i, showValues: o = !0, className: a, ...l }, h) => {
|
|
627
|
+
const { names: c, format: m, layers: d, legendItems: b, header: v, furniture: f, colorFor: p, labelFor: M, toggleSeries: y, isHidden: x } = ie(l), u = $e(c, r, p), g = ue(c, r, l.highlight, o), S = Me(c, r), $ = new Set(c.filter((N) => !x(N)).map(S)), R = Ce(S, $.size > 1), { activeIndex: s } = R, O = (N) => {
|
|
628
|
+
if (!(r != null && r.includes(N))) return;
|
|
629
|
+
const F = S(N);
|
|
630
|
+
if (F !== N)
|
|
631
|
+
return (B) => {
|
|
632
|
+
var T;
|
|
633
|
+
const k = (T = l.data[B]) == null ? void 0 : T[F];
|
|
634
|
+
return k != null && k !== "" && !x(F);
|
|
635
|
+
};
|
|
636
|
+
}, A = c.filter((N) => g.has(N) && !x(N)), I = (N, F) => {
|
|
637
|
+
var k;
|
|
638
|
+
const B = (k = l.data[N]) == null ? void 0 : k[F];
|
|
639
|
+
return typeof B == "number" && !Number.isNaN(B) ? B : null;
|
|
640
|
+
};
|
|
641
|
+
let L = 0;
|
|
642
|
+
for (let N = 0; N < l.data.length; N++)
|
|
643
|
+
for (const F of A) L = Math.max(L, Math.abs(I(N, F) ?? 0));
|
|
644
|
+
const E = (N) => {
|
|
645
|
+
if (A.length < 2 || L === 0) return;
|
|
646
|
+
const F = A.indexOf(N);
|
|
647
|
+
return (B) => {
|
|
648
|
+
const k = I(B, N);
|
|
649
|
+
return k == null ? !1 : A.some((T, G) => {
|
|
650
|
+
if (T === N) return !1;
|
|
651
|
+
const H = I(B, T);
|
|
652
|
+
return H == null ? !1 : (H > k || H === k && G < F) && (H - k) / L < 0.1;
|
|
653
|
+
});
|
|
654
|
+
};
|
|
655
|
+
};
|
|
656
|
+
return /* @__PURE__ */ e(Z, { ref: h, className: a, height: t, legendItems: b, ...v, hovered: d.hovered, format: m, onLegendToggle: y, hoverRef: R.frameRef, children: /* @__PURE__ */ w(Fe, { data: l.data, margin: J, ...R.handlers, children: [
|
|
657
|
+
f,
|
|
658
|
+
l.tooltip !== !1 && /* @__PURE__ */ e(
|
|
659
|
+
z,
|
|
660
|
+
{
|
|
661
|
+
content: /* @__PURE__ */ e(
|
|
662
|
+
j,
|
|
486
663
|
{
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
{
|
|
490
|
-
format: m,
|
|
491
|
-
renderer: l.tooltip
|
|
492
|
-
}
|
|
493
|
-
),
|
|
494
|
-
cursor: { stroke: "var(--border-strong)" },
|
|
495
|
-
isAnimationActive: !1
|
|
664
|
+
format: m,
|
|
665
|
+
renderer: l.tooltip
|
|
496
666
|
}
|
|
497
667
|
),
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
668
|
+
cursor: !1,
|
|
669
|
+
isAnimationActive: !1
|
|
670
|
+
}
|
|
671
|
+
),
|
|
672
|
+
d.back,
|
|
673
|
+
c.map((N, F) => /* @__PURE__ */ e(
|
|
674
|
+
be,
|
|
675
|
+
{
|
|
676
|
+
dataKey: N,
|
|
677
|
+
name: M(N),
|
|
678
|
+
type: n,
|
|
679
|
+
className: D(W, R.isDimmed(N) && "opacity-30"),
|
|
680
|
+
stroke: u(N, F),
|
|
681
|
+
strokeWidth: ae,
|
|
682
|
+
strokeDasharray: r != null && r.includes(N) ? "6 4" : void 0,
|
|
683
|
+
dot: /* @__PURE__ */ e(U, { color: u(N, F), seriesKey: N }),
|
|
684
|
+
activeDot: R.isDimmed(N) ? !1 : /* @__PURE__ */ e(U, { color: u(N, F), active: !0 }),
|
|
685
|
+
label: g.has(N) ? /* @__PURE__ */ e(
|
|
686
|
+
Se,
|
|
501
687
|
{
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
}
|
|
517
|
-
) : void 0,
|
|
518
|
-
hide: w(s),
|
|
519
|
-
isAnimationActive: (i == null ? void 0 : i.includes(s)) ?? !1
|
|
520
|
-
},
|
|
521
|
-
s
|
|
522
|
-
)),
|
|
523
|
-
u.front
|
|
524
|
-
]
|
|
525
|
-
}
|
|
526
|
-
) });
|
|
688
|
+
color: Ne(u(N, F)) ? void 0 : u(N, F),
|
|
689
|
+
format: m,
|
|
690
|
+
hidden: s != null,
|
|
691
|
+
skip: O(N),
|
|
692
|
+
below: E(N)
|
|
693
|
+
}
|
|
694
|
+
) : void 0,
|
|
695
|
+
hide: x(N),
|
|
696
|
+
isAnimationActive: (i == null ? void 0 : i.includes(N)) ?? !1
|
|
697
|
+
},
|
|
698
|
+
N
|
|
699
|
+
)),
|
|
700
|
+
d.front
|
|
701
|
+
] }) });
|
|
527
702
|
}
|
|
528
703
|
);
|
|
529
|
-
|
|
530
|
-
const
|
|
531
|
-
({ height: t =
|
|
532
|
-
const { names: c, format: m, layers:
|
|
533
|
-
return /* @__PURE__ */ e(
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
] }, g)) }),
|
|
545
|
-
b,
|
|
546
|
-
l.tooltip !== !1 && /* @__PURE__ */ e(
|
|
547
|
-
O,
|
|
704
|
+
dt.displayName = "LineChart";
|
|
705
|
+
const ut = C.forwardRef(
|
|
706
|
+
({ height: t = P, curve: n = "linear", stacked: r = !1, forecastKeys: i, showValues: o, className: a, ...l }, h) => {
|
|
707
|
+
const { names: c, format: m, layers: d, legendItems: b, header: v, furniture: f, colorFor: p, labelFor: M, toggleSeries: y, isHidden: x } = ie(l), u = $e(c, i, p), g = r ? /* @__PURE__ */ new Set() : ue(c, i, l.highlight, o), S = Me(c, i), $ = new Set(c.filter((A) => !x(A)).map(S)), R = Ce(S, $.size > 1), { activeIndex: s } = R, O = C.useId().replace(/[^a-zA-Z0-9]/g, "");
|
|
708
|
+
return /* @__PURE__ */ e(Z, { ref: h, className: a, height: t, legendItems: b, ...v, hovered: d.hovered, format: m, onLegendToggle: y, hoverRef: R.frameRef, children: /* @__PURE__ */ w(Te, { data: l.data, margin: J, ...R.handlers, children: [
|
|
709
|
+
/* @__PURE__ */ e("defs", { children: c.map((A, I) => /* @__PURE__ */ w("linearGradient", { id: `${O}-${I}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
710
|
+
/* @__PURE__ */ e("stop", { offset: "0%", stopColor: p(A, I), stopOpacity: 0.18 }),
|
|
711
|
+
/* @__PURE__ */ e("stop", { offset: "100%", stopColor: p(A, I), stopOpacity: 0.02 })
|
|
712
|
+
] }, A)) }),
|
|
713
|
+
f,
|
|
714
|
+
l.tooltip !== !1 && /* @__PURE__ */ e(
|
|
715
|
+
z,
|
|
716
|
+
{
|
|
717
|
+
content: /* @__PURE__ */ e(
|
|
718
|
+
j,
|
|
548
719
|
{
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
{
|
|
552
|
-
format: m,
|
|
553
|
-
renderer: l.tooltip
|
|
554
|
-
}
|
|
555
|
-
),
|
|
556
|
-
cursor: { stroke: "var(--border-strong)" },
|
|
557
|
-
isAnimationActive: !1
|
|
720
|
+
format: m,
|
|
721
|
+
renderer: l.tooltip
|
|
558
722
|
}
|
|
559
723
|
),
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
)),
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
724
|
+
cursor: !1,
|
|
725
|
+
isAnimationActive: !1
|
|
726
|
+
}
|
|
727
|
+
),
|
|
728
|
+
d.back,
|
|
729
|
+
c.map((A, I) => /* @__PURE__ */ e(
|
|
730
|
+
Ie,
|
|
731
|
+
{
|
|
732
|
+
dataKey: A,
|
|
733
|
+
name: M(A),
|
|
734
|
+
type: n,
|
|
735
|
+
className: D(W, R.isDimmed(A) && "opacity-30"),
|
|
736
|
+
stackId: r ? "stack" : void 0,
|
|
737
|
+
stroke: u(A, I),
|
|
738
|
+
strokeWidth: ae,
|
|
739
|
+
strokeDasharray: i != null && i.includes(A) ? "6 4" : void 0,
|
|
740
|
+
fill: `url(#${O}-${I})`,
|
|
741
|
+
dot: /* @__PURE__ */ e(U, { color: u(A, I), seriesKey: A }),
|
|
742
|
+
activeDot: R.isDimmed(A) ? !1 : /* @__PURE__ */ e(U, { color: u(A, I), active: !0 }),
|
|
743
|
+
label: g.has(A) ? /* @__PURE__ */ e(Se, { color: u(A, I), format: m, hidden: s != null }) : void 0,
|
|
744
|
+
hide: x(A),
|
|
745
|
+
isAnimationActive: !1
|
|
746
|
+
},
|
|
747
|
+
A
|
|
748
|
+
)),
|
|
749
|
+
d.front
|
|
750
|
+
] }) });
|
|
584
751
|
}
|
|
585
752
|
);
|
|
586
|
-
|
|
587
|
-
const
|
|
753
|
+
ut.displayName = "AreaChart";
|
|
754
|
+
const mt = C.forwardRef(
|
|
588
755
|
({
|
|
589
|
-
height: t =
|
|
756
|
+
height: t = P,
|
|
590
757
|
stacked: n = !1,
|
|
591
|
-
layout:
|
|
592
|
-
showValues: i,
|
|
758
|
+
layout: r = "vertical",
|
|
759
|
+
showValues: i = !0,
|
|
593
760
|
className: o,
|
|
594
|
-
...
|
|
761
|
+
...a
|
|
595
762
|
}, l) => {
|
|
596
|
-
const { names:
|
|
597
|
-
|
|
598
|
-
|
|
763
|
+
const { names: h, format: c, layers: m, legendItems: d, header: b, furniture: v, colorFor: f, labelFor: p, toggleSeries: M, isHidden: y } = ie(a), x = r === "horizontal", u = n ? /* @__PURE__ */ new Set() : ue(h, void 0, a.highlight, i), g = h.filter((L) => !y(L)), S = n ? g[g.length - 1] : void 0, $ = a.data.map((L) => {
|
|
764
|
+
let E = null;
|
|
765
|
+
for (const N of g) {
|
|
766
|
+
const F = L[N];
|
|
767
|
+
typeof F == "number" && !Number.isNaN(F) && (E = (E ?? 0) + F);
|
|
768
|
+
}
|
|
769
|
+
return E;
|
|
770
|
+
}), R = a.xTickFormatter ?? ((L) => typeof L == "number" ? c(L) : L), s = [
|
|
771
|
+
a.grid !== !1 ? /* @__PURE__ */ e(
|
|
772
|
+
ce,
|
|
599
773
|
{
|
|
600
774
|
horizontal: !1,
|
|
601
775
|
vertical: !0,
|
|
@@ -604,88 +778,120 @@ const Qe = R.forwardRef(
|
|
|
604
778
|
"grid"
|
|
605
779
|
) : null,
|
|
606
780
|
/* @__PURE__ */ e(
|
|
607
|
-
|
|
781
|
+
de,
|
|
608
782
|
{
|
|
609
783
|
type: "number",
|
|
610
|
-
domain:
|
|
611
|
-
allowDataOverflow: !!
|
|
784
|
+
domain: a.xDomain,
|
|
785
|
+
allowDataOverflow: !!a.xDomain,
|
|
612
786
|
axisLine: !1,
|
|
613
787
|
tickLine: !1,
|
|
614
788
|
minTickGap: 28,
|
|
615
789
|
tickMargin: 10,
|
|
616
|
-
tick: /* @__PURE__ */ e(
|
|
790
|
+
tick: /* @__PURE__ */ e(V, { anchor: "middle", dy: 0, format: R })
|
|
617
791
|
},
|
|
618
792
|
"x"
|
|
619
793
|
),
|
|
620
|
-
|
|
621
|
-
|
|
794
|
+
a.showYAxis !== !1 ? /* @__PURE__ */ e(
|
|
795
|
+
ee,
|
|
622
796
|
{
|
|
623
797
|
type: "category",
|
|
624
|
-
dataKey:
|
|
625
|
-
width:
|
|
798
|
+
dataKey: a.categoryKey,
|
|
799
|
+
width: a.yAxisWidth ?? 144,
|
|
626
800
|
axisLine: !1,
|
|
627
801
|
tickLine: !1,
|
|
628
802
|
tickMargin: 6,
|
|
629
803
|
tick: /* @__PURE__ */ e(
|
|
630
|
-
|
|
804
|
+
V,
|
|
631
805
|
{
|
|
632
806
|
anchor: "end",
|
|
633
807
|
dy: "0.32em",
|
|
634
|
-
format:
|
|
808
|
+
format: a.yTickFormatter
|
|
635
809
|
}
|
|
636
810
|
)
|
|
637
811
|
},
|
|
638
812
|
"y"
|
|
639
813
|
) : null
|
|
640
|
-
],
|
|
641
|
-
return /* @__PURE__ */ e(
|
|
642
|
-
|
|
814
|
+
], O = a.highlight && h.length === 1 && !h.includes(a.highlight) ? a.highlight : null, { activeIndex: A, handlers: I } = Ae();
|
|
815
|
+
return /* @__PURE__ */ e(Z, { ref: l, className: o, height: t, legendItems: d, ...b, hovered: m.hovered, format: c, onLegendToggle: M, children: /* @__PURE__ */ w(
|
|
816
|
+
De,
|
|
643
817
|
{
|
|
644
|
-
data:
|
|
645
|
-
layout:
|
|
646
|
-
margin:
|
|
818
|
+
data: a.data,
|
|
819
|
+
layout: x ? "vertical" : "horizontal",
|
|
820
|
+
margin: J,
|
|
647
821
|
barCategoryGap: "24%",
|
|
822
|
+
...I,
|
|
648
823
|
children: [
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
824
|
+
x ? s : v,
|
|
825
|
+
a.tooltip !== !1 && /* @__PURE__ */ e(
|
|
826
|
+
z,
|
|
652
827
|
{
|
|
653
828
|
content: /* @__PURE__ */ e(
|
|
654
|
-
|
|
829
|
+
j,
|
|
655
830
|
{
|
|
656
831
|
format: c,
|
|
657
|
-
renderer:
|
|
832
|
+
renderer: a.tooltip
|
|
658
833
|
}
|
|
659
834
|
),
|
|
660
|
-
cursor:
|
|
835
|
+
cursor: !1,
|
|
661
836
|
isAnimationActive: !1
|
|
662
837
|
}
|
|
663
838
|
),
|
|
664
839
|
m.back,
|
|
665
|
-
|
|
666
|
-
const
|
|
667
|
-
return /* @__PURE__ */
|
|
668
|
-
|
|
840
|
+
h.map((L, E) => {
|
|
841
|
+
const N = n ? L === S : !0, F = x ? [0, 4, 4, 0] : [4, 4, 0, 0];
|
|
842
|
+
return /* @__PURE__ */ w(
|
|
843
|
+
ge,
|
|
669
844
|
{
|
|
670
|
-
dataKey:
|
|
671
|
-
name:
|
|
845
|
+
dataKey: L,
|
|
846
|
+
name: p(L),
|
|
672
847
|
stackId: n ? "stack" : void 0,
|
|
673
|
-
fill:
|
|
674
|
-
|
|
675
|
-
radius: v ? S : 0,
|
|
848
|
+
fill: f(L, E),
|
|
849
|
+
radius: N ? F : 0,
|
|
676
850
|
maxBarSize: 48,
|
|
677
|
-
label:
|
|
678
|
-
hide:
|
|
851
|
+
label: u.has(L) ? /* @__PURE__ */ e(rt, { format: c, horizontal: x }) : void 0,
|
|
852
|
+
hide: y(L),
|
|
679
853
|
isAnimationActive: !1,
|
|
680
|
-
children:
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
854
|
+
children: [
|
|
855
|
+
n && i && /* @__PURE__ */ e(
|
|
856
|
+
me,
|
|
857
|
+
{
|
|
858
|
+
dataKey: L,
|
|
859
|
+
content: /* @__PURE__ */ e(
|
|
860
|
+
at,
|
|
861
|
+
{
|
|
862
|
+
format: c,
|
|
863
|
+
horizontal: x,
|
|
864
|
+
light: Ne(f(L, E))
|
|
865
|
+
}
|
|
866
|
+
)
|
|
867
|
+
}
|
|
868
|
+
),
|
|
869
|
+
n && i && L === S && /* @__PURE__ */ e(
|
|
870
|
+
me,
|
|
871
|
+
{
|
|
872
|
+
dataKey: L,
|
|
873
|
+
content: /* @__PURE__ */ e(
|
|
874
|
+
it,
|
|
875
|
+
{
|
|
876
|
+
totals: $,
|
|
877
|
+
format: c,
|
|
878
|
+
horizontal: x
|
|
879
|
+
}
|
|
880
|
+
)
|
|
881
|
+
}
|
|
882
|
+
),
|
|
883
|
+
a.data.map((B, k) => /* @__PURE__ */ e(
|
|
884
|
+
te,
|
|
885
|
+
{
|
|
886
|
+
fill: O ? B[a.categoryKey] === O ? "var(--color-chart-1)" : re : f(L, E),
|
|
887
|
+
className: W,
|
|
888
|
+
opacity: X(k, A)
|
|
889
|
+
},
|
|
890
|
+
k
|
|
891
|
+
))
|
|
892
|
+
]
|
|
687
893
|
},
|
|
688
|
-
|
|
894
|
+
L
|
|
689
895
|
);
|
|
690
896
|
}),
|
|
691
897
|
m.front
|
|
@@ -694,27 +900,27 @@ const Qe = R.forwardRef(
|
|
|
694
900
|
) });
|
|
695
901
|
}
|
|
696
902
|
);
|
|
697
|
-
|
|
698
|
-
const
|
|
699
|
-
({ height: t =
|
|
700
|
-
const { names: c, format: m, layers:
|
|
701
|
-
...
|
|
702
|
-
key:
|
|
703
|
-
label:
|
|
704
|
-
color:
|
|
705
|
-
hidden:
|
|
903
|
+
mt.displayName = "BarChart";
|
|
904
|
+
const Oe = C.forwardRef(
|
|
905
|
+
({ height: t = P, lineKeys: n, dualAxis: r = !1, stacked: i = !1, forecastKeys: o, className: a, ...l }, h) => {
|
|
906
|
+
const { names: c, format: m, layers: d, header: b, furniture: v, colorFor: f, labelFor: p, toggleSeries: M, isHidden: y } = ie(l), x = c.filter((s) => !n.includes(s)), u = (s, O) => n.length ? "var(--chart-axis)" : f(s, O), g = (s, O) => n.length ? "var(--color-chart-1)" : f(s, O), S = c.length > 1 ? [
|
|
907
|
+
...x.map((s) => ({
|
|
908
|
+
key: s,
|
|
909
|
+
label: p(s),
|
|
910
|
+
color: u(s, c.indexOf(s)),
|
|
911
|
+
hidden: y(s)
|
|
706
912
|
})),
|
|
707
|
-
...n.map((
|
|
708
|
-
key:
|
|
709
|
-
label:
|
|
710
|
-
color:
|
|
711
|
-
hidden:
|
|
913
|
+
...n.map((s) => ({
|
|
914
|
+
key: s,
|
|
915
|
+
label: p(s),
|
|
916
|
+
color: g(s, c.indexOf(s)),
|
|
917
|
+
hidden: y(s)
|
|
712
918
|
}))
|
|
713
|
-
] : null;
|
|
714
|
-
return /* @__PURE__ */ e(
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
919
|
+
] : null, { activeIndex: $, handlers: R } = Ae();
|
|
920
|
+
return /* @__PURE__ */ e(Z, { ref: h, className: a, height: t, legendItems: S, ...b, hovered: d.hovered, format: m, onLegendToggle: M, children: /* @__PURE__ */ w(Ee, { data: l.data, margin: J, barCategoryGap: "24%", ...R, children: [
|
|
921
|
+
v,
|
|
922
|
+
r && /* @__PURE__ */ e(
|
|
923
|
+
ee,
|
|
718
924
|
{
|
|
719
925
|
yAxisId: "right",
|
|
720
926
|
orientation: "right",
|
|
@@ -723,188 +929,196 @@ const be = R.forwardRef(
|
|
|
723
929
|
tickLine: !1,
|
|
724
930
|
tickMargin: 6,
|
|
725
931
|
tick: /* @__PURE__ */ e(
|
|
726
|
-
|
|
932
|
+
V,
|
|
727
933
|
{
|
|
728
934
|
anchor: "start",
|
|
729
935
|
dy: "0.32em",
|
|
730
|
-
format: (
|
|
936
|
+
format: (s) => typeof s == "number" ? m(s) : s
|
|
731
937
|
}
|
|
732
938
|
)
|
|
733
939
|
}
|
|
734
940
|
),
|
|
735
941
|
l.tooltip !== !1 && /* @__PURE__ */ e(
|
|
736
|
-
|
|
942
|
+
z,
|
|
737
943
|
{
|
|
738
944
|
content: /* @__PURE__ */ e(
|
|
739
|
-
|
|
945
|
+
j,
|
|
740
946
|
{
|
|
741
947
|
format: m,
|
|
742
948
|
renderer: l.tooltip
|
|
743
949
|
}
|
|
744
950
|
),
|
|
745
|
-
cursor:
|
|
951
|
+
cursor: !1,
|
|
746
952
|
isAnimationActive: !1
|
|
747
953
|
}
|
|
748
954
|
),
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
const
|
|
955
|
+
d.back,
|
|
956
|
+
x.map((s) => {
|
|
957
|
+
const O = c.indexOf(s), A = i ? s === x[x.length - 1] : !0;
|
|
752
958
|
return /* @__PURE__ */ e(
|
|
753
|
-
|
|
959
|
+
ge,
|
|
754
960
|
{
|
|
755
|
-
dataKey:
|
|
756
|
-
name:
|
|
961
|
+
dataKey: s,
|
|
962
|
+
name: p(s),
|
|
757
963
|
stackId: i ? "stack" : void 0,
|
|
758
|
-
fill:
|
|
759
|
-
|
|
760
|
-
radius: g ? [4, 4, 0, 0] : 0,
|
|
964
|
+
fill: u(s, O),
|
|
965
|
+
radius: A ? [4, 4, 0, 0] : 0,
|
|
761
966
|
maxBarSize: 48,
|
|
762
|
-
hide:
|
|
763
|
-
isAnimationActive: !1
|
|
967
|
+
hide: y(s),
|
|
968
|
+
isAnimationActive: !1,
|
|
969
|
+
children: l.data.map((I, L) => /* @__PURE__ */ e(
|
|
970
|
+
te,
|
|
971
|
+
{
|
|
972
|
+
fill: u(s, O),
|
|
973
|
+
className: W,
|
|
974
|
+
opacity: X(L, $)
|
|
975
|
+
},
|
|
976
|
+
L
|
|
977
|
+
))
|
|
764
978
|
},
|
|
765
|
-
|
|
979
|
+
s
|
|
766
980
|
);
|
|
767
981
|
}),
|
|
768
|
-
n.map((
|
|
769
|
-
const
|
|
982
|
+
n.map((s) => {
|
|
983
|
+
const O = c.indexOf(s);
|
|
770
984
|
return /* @__PURE__ */ e(
|
|
771
|
-
|
|
985
|
+
be,
|
|
772
986
|
{
|
|
773
|
-
dataKey:
|
|
774
|
-
name:
|
|
775
|
-
yAxisId:
|
|
987
|
+
dataKey: s,
|
|
988
|
+
name: p(s),
|
|
989
|
+
yAxisId: r ? "right" : void 0,
|
|
776
990
|
type: "linear",
|
|
777
|
-
stroke:
|
|
778
|
-
strokeWidth:
|
|
779
|
-
strokeDasharray: o != null && o.includes(
|
|
780
|
-
dot: /* @__PURE__ */ e(
|
|
781
|
-
activeDot: /* @__PURE__ */ e(
|
|
782
|
-
hide:
|
|
991
|
+
stroke: g(s, O),
|
|
992
|
+
strokeWidth: ae,
|
|
993
|
+
strokeDasharray: o != null && o.includes(s) ? "6 4" : void 0,
|
|
994
|
+
dot: /* @__PURE__ */ e(U, { color: g(s, O) }),
|
|
995
|
+
activeDot: /* @__PURE__ */ e(U, { color: g(s, O), active: !0 }),
|
|
996
|
+
hide: y(s),
|
|
783
997
|
isAnimationActive: !1
|
|
784
998
|
},
|
|
785
|
-
|
|
999
|
+
s
|
|
786
1000
|
);
|
|
787
1001
|
}),
|
|
788
|
-
|
|
1002
|
+
d.front
|
|
789
1003
|
] }) });
|
|
790
1004
|
}
|
|
791
1005
|
);
|
|
792
|
-
|
|
793
|
-
const
|
|
794
|
-
(t, n) => /* @__PURE__ */ e(
|
|
1006
|
+
Oe.displayName = "ComboChart";
|
|
1007
|
+
const ft = C.forwardRef(
|
|
1008
|
+
(t, n) => /* @__PURE__ */ e(Oe, { ref: n, ...t })
|
|
795
1009
|
);
|
|
796
|
-
|
|
797
|
-
const
|
|
1010
|
+
ft.displayName = "ComposedChart";
|
|
1011
|
+
const ht = C.forwardRef(
|
|
798
1012
|
({
|
|
799
1013
|
data: t,
|
|
800
1014
|
xKey: n,
|
|
801
|
-
yKey:
|
|
1015
|
+
yKey: r,
|
|
802
1016
|
labelKey: i,
|
|
803
1017
|
annotations: o,
|
|
804
|
-
height:
|
|
1018
|
+
height: a = P,
|
|
805
1019
|
grid: l = !1,
|
|
806
|
-
showYAxis:
|
|
1020
|
+
showYAxis: h = !0,
|
|
807
1021
|
formatValue: c,
|
|
808
1022
|
xScale: m = "number",
|
|
809
|
-
xDomain:
|
|
810
|
-
yDomain:
|
|
811
|
-
xTickFormatter:
|
|
1023
|
+
xDomain: d,
|
|
1024
|
+
yDomain: b,
|
|
1025
|
+
xTickFormatter: v,
|
|
812
1026
|
yTickFormatter: f,
|
|
813
|
-
yAxisWidth:
|
|
814
|
-
tooltip:
|
|
815
|
-
className:
|
|
816
|
-
},
|
|
817
|
-
const
|
|
818
|
-
return /* @__PURE__ */ e(
|
|
819
|
-
l && /* @__PURE__ */ e(
|
|
1027
|
+
yAxisWidth: p = 44,
|
|
1028
|
+
tooltip: M,
|
|
1029
|
+
className: y
|
|
1030
|
+
}, x) => {
|
|
1031
|
+
const u = c ?? _, g = v ?? ((R) => typeof R == "number" ? _(R) : R), S = f ?? ((R) => typeof R == "number" ? u(R) : R), $ = Le(o, u);
|
|
1032
|
+
return /* @__PURE__ */ e(Z, { ref: x, className: y, height: a, legendItems: null, hovered: $.hovered, format: u, children: /* @__PURE__ */ w(ke, { margin: J, children: [
|
|
1033
|
+
l && /* @__PURE__ */ e(ce, { vertical: !1, stroke: "var(--chart-grid)" }),
|
|
820
1034
|
/* @__PURE__ */ e(
|
|
821
|
-
|
|
1035
|
+
de,
|
|
822
1036
|
{
|
|
823
1037
|
type: "number",
|
|
824
1038
|
dataKey: n,
|
|
825
1039
|
scale: m === "time" ? "time" : "auto",
|
|
826
|
-
domain:
|
|
827
|
-
allowDataOverflow: !!
|
|
1040
|
+
domain: d ?? (m === "time" ? ["dataMin", "dataMax"] : ["auto", "auto"]),
|
|
1041
|
+
allowDataOverflow: !!d,
|
|
828
1042
|
axisLine: !1,
|
|
829
1043
|
tickLine: !1,
|
|
830
1044
|
minTickGap: 28,
|
|
831
1045
|
tickMargin: 10,
|
|
832
|
-
tick: /* @__PURE__ */ e(
|
|
1046
|
+
tick: /* @__PURE__ */ e(V, { anchor: "middle", dy: 0, format: g })
|
|
833
1047
|
}
|
|
834
1048
|
),
|
|
835
|
-
|
|
836
|
-
|
|
1049
|
+
h && /* @__PURE__ */ e(
|
|
1050
|
+
ee,
|
|
837
1051
|
{
|
|
838
1052
|
type: "number",
|
|
839
|
-
dataKey:
|
|
840
|
-
width:
|
|
841
|
-
domain:
|
|
842
|
-
allowDataOverflow: !!
|
|
1053
|
+
dataKey: r,
|
|
1054
|
+
width: p,
|
|
1055
|
+
domain: b,
|
|
1056
|
+
allowDataOverflow: !!b,
|
|
843
1057
|
axisLine: !1,
|
|
844
1058
|
tickLine: !1,
|
|
845
1059
|
tickMargin: 6,
|
|
846
|
-
tick: /* @__PURE__ */ e(
|
|
1060
|
+
tick: /* @__PURE__ */ e(V, { anchor: "end", dy: "0.32em", format: S })
|
|
847
1061
|
}
|
|
848
1062
|
),
|
|
849
|
-
|
|
850
|
-
|
|
1063
|
+
M !== !1 && /* @__PURE__ */ e(
|
|
1064
|
+
z,
|
|
851
1065
|
{
|
|
852
1066
|
content: /* @__PURE__ */ e(
|
|
853
|
-
|
|
1067
|
+
j,
|
|
854
1068
|
{
|
|
855
|
-
format:
|
|
1069
|
+
format: u,
|
|
856
1070
|
labelKey: i,
|
|
857
|
-
renderer:
|
|
1071
|
+
renderer: M
|
|
858
1072
|
}
|
|
859
1073
|
),
|
|
860
1074
|
cursor: { stroke: "var(--border-strong)", strokeDasharray: "4 4" },
|
|
861
1075
|
isAnimationActive: !1
|
|
862
1076
|
}
|
|
863
1077
|
),
|
|
864
|
-
|
|
1078
|
+
$.back,
|
|
865
1079
|
/* @__PURE__ */ e(
|
|
866
|
-
|
|
1080
|
+
Be,
|
|
867
1081
|
{
|
|
868
1082
|
data: t,
|
|
869
1083
|
fill: "var(--color-chart-1)",
|
|
870
|
-
shape: (
|
|
1084
|
+
shape: (R) => /* @__PURE__ */ e("circle", { cx: R.cx, cy: R.cy, r: 4.5, fill: "var(--color-chart-1)", fillOpacity: 0.75 }),
|
|
871
1085
|
isAnimationActive: !1
|
|
872
1086
|
}
|
|
873
1087
|
),
|
|
874
|
-
|
|
1088
|
+
$.front
|
|
875
1089
|
] }) });
|
|
876
1090
|
}
|
|
877
1091
|
);
|
|
878
|
-
|
|
879
|
-
const
|
|
1092
|
+
ht.displayName = "ScatterChart";
|
|
1093
|
+
const xt = C.forwardRef(
|
|
880
1094
|
({
|
|
881
1095
|
data: t,
|
|
882
1096
|
nameKey: n,
|
|
883
|
-
valueKey:
|
|
1097
|
+
valueKey: r,
|
|
884
1098
|
donut: i = !0,
|
|
885
1099
|
centerLabel: o,
|
|
886
|
-
highlight:
|
|
1100
|
+
highlight: a,
|
|
887
1101
|
height: l = 260,
|
|
888
|
-
legend:
|
|
1102
|
+
legend: h = !0,
|
|
889
1103
|
formatValue: c,
|
|
890
1104
|
tooltip: m,
|
|
891
|
-
className:
|
|
892
|
-
},
|
|
893
|
-
const
|
|
894
|
-
label: `${
|
|
895
|
-
color:
|
|
1105
|
+
className: d
|
|
1106
|
+
}, b) => {
|
|
1107
|
+
const v = c ?? _, f = t.reduce((g, S) => g + (typeof S[r] == "number" ? S[r] : 0), 0), p = (g, S) => ne(S), M = (g) => a && g !== a ? 0.3 : 1, [y, x] = C.useState(null), u = h ? t.map((g, S) => ({
|
|
1108
|
+
label: `${g[n]} · ${f ? Math.round(Number(g[r]) / f * 100) : 0}%`,
|
|
1109
|
+
color: p(String(g[n]), S)
|
|
896
1110
|
})) : null;
|
|
897
|
-
return /* @__PURE__ */
|
|
898
|
-
|
|
899
|
-
/* @__PURE__ */
|
|
900
|
-
/* @__PURE__ */ e(
|
|
1111
|
+
return /* @__PURE__ */ w("div", { ref: b, className: D("relative w-full font-sans", d), children: [
|
|
1112
|
+
u && /* @__PURE__ */ e(Q, { items: u }),
|
|
1113
|
+
/* @__PURE__ */ w("div", { className: "relative", children: [
|
|
1114
|
+
/* @__PURE__ */ e(q, { width: "100%", height: l, children: /* @__PURE__ */ w(He, { margin: { top: 8, right: 8, bottom: 8, left: 8 }, children: [
|
|
901
1115
|
m !== !1 && /* @__PURE__ */ e(
|
|
902
|
-
|
|
1116
|
+
z,
|
|
903
1117
|
{
|
|
904
1118
|
content: /* @__PURE__ */ e(
|
|
905
|
-
|
|
1119
|
+
j,
|
|
906
1120
|
{
|
|
907
|
-
format:
|
|
1121
|
+
format: v,
|
|
908
1122
|
renderer: m
|
|
909
1123
|
}
|
|
910
1124
|
),
|
|
@@ -912,10 +1126,10 @@ const Ke = R.forwardRef(
|
|
|
912
1126
|
}
|
|
913
1127
|
),
|
|
914
1128
|
/* @__PURE__ */ e(
|
|
915
|
-
|
|
1129
|
+
_e,
|
|
916
1130
|
{
|
|
917
1131
|
data: t,
|
|
918
|
-
dataKey:
|
|
1132
|
+
dataKey: r,
|
|
919
1133
|
nameKey: n,
|
|
920
1134
|
innerRadius: i ? "62%" : 0,
|
|
921
1135
|
outerRadius: "88%",
|
|
@@ -923,57 +1137,61 @@ const Ke = R.forwardRef(
|
|
|
923
1137
|
cornerRadius: i ? 4 : 2,
|
|
924
1138
|
stroke: "none",
|
|
925
1139
|
isAnimationActive: !1,
|
|
926
|
-
|
|
927
|
-
|
|
1140
|
+
onMouseEnter: (g, S) => x(S),
|
|
1141
|
+
onMouseLeave: () => x(null),
|
|
1142
|
+
children: t.map((g, S) => /* @__PURE__ */ e(
|
|
1143
|
+
te,
|
|
928
1144
|
{
|
|
929
1145
|
role: "presentation",
|
|
930
1146
|
"aria-hidden": "true",
|
|
931
|
-
|
|
932
|
-
|
|
1147
|
+
className: W,
|
|
1148
|
+
fill: p(String(g[n]), S),
|
|
1149
|
+
fillOpacity: M(String(g[n])),
|
|
1150
|
+
opacity: X(S, y)
|
|
933
1151
|
},
|
|
934
|
-
String(
|
|
1152
|
+
String(g[n])
|
|
935
1153
|
))
|
|
936
1154
|
}
|
|
937
1155
|
)
|
|
938
1156
|
] }) }),
|
|
939
|
-
i && /* @__PURE__ */
|
|
940
|
-
/* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children:
|
|
1157
|
+
i && /* @__PURE__ */ w("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
1158
|
+
/* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children: v(f) }),
|
|
941
1159
|
o && /* @__PURE__ */ e("div", { className: "mt-0.5 text-xs font-normal tracking-wide uppercase text-tertiary", children: o })
|
|
942
1160
|
] })
|
|
943
1161
|
] })
|
|
944
1162
|
] });
|
|
945
1163
|
}
|
|
946
1164
|
);
|
|
947
|
-
|
|
948
|
-
const
|
|
1165
|
+
xt.displayName = "PieChart";
|
|
1166
|
+
const vt = C.forwardRef(
|
|
949
1167
|
({
|
|
950
1168
|
data: t,
|
|
951
1169
|
categoryKey: n,
|
|
952
|
-
series:
|
|
1170
|
+
series: r,
|
|
953
1171
|
seriesLabels: i,
|
|
954
1172
|
highlight: o,
|
|
955
|
-
maxValue:
|
|
1173
|
+
maxValue: a,
|
|
956
1174
|
height: l = 300,
|
|
957
|
-
legend:
|
|
1175
|
+
legend: h,
|
|
958
1176
|
formatValue: c,
|
|
959
1177
|
tooltip: m,
|
|
960
|
-
className:
|
|
961
|
-
},
|
|
962
|
-
const
|
|
963
|
-
() =>
|
|
964
|
-
[n, t,
|
|
965
|
-
), f = c ??
|
|
1178
|
+
className: d
|
|
1179
|
+
}, b) => {
|
|
1180
|
+
const v = C.useMemo(
|
|
1181
|
+
() => r ?? ye(t, n),
|
|
1182
|
+
[n, t, r]
|
|
1183
|
+
), f = c ?? _, p = a ?? Math.max(
|
|
966
1184
|
1,
|
|
967
1185
|
...t.flatMap(
|
|
968
|
-
(
|
|
969
|
-
(
|
|
1186
|
+
(u) => v.map(
|
|
1187
|
+
(g) => typeof u[g] == "number" ? u[g] : 0
|
|
970
1188
|
)
|
|
971
1189
|
)
|
|
972
|
-
),
|
|
973
|
-
return /* @__PURE__ */
|
|
974
|
-
|
|
975
|
-
/* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-[520px]", children: /* @__PURE__ */ e(
|
|
976
|
-
|
|
1190
|
+
), M = (u) => (i == null ? void 0 : i[u]) ?? u, y = (u, g) => o && v.includes(o) ? u === o ? "var(--color-chart-1)" : re : ne(g), x = h ?? v.length > 1 ? v.map((u, g) => ({ label: M(u), color: y(u, g) })) : null;
|
|
1191
|
+
return /* @__PURE__ */ w("div", { ref: b, className: D("relative w-full font-sans", d), children: [
|
|
1192
|
+
x && /* @__PURE__ */ e(Q, { items: x, align: "center" }),
|
|
1193
|
+
/* @__PURE__ */ e("div", { className: "mx-auto w-full max-w-[520px]", children: /* @__PURE__ */ e(q, { width: "100%", height: l, children: /* @__PURE__ */ w(
|
|
1194
|
+
ze,
|
|
977
1195
|
{
|
|
978
1196
|
data: t,
|
|
979
1197
|
cx: "50%",
|
|
@@ -981,29 +1199,29 @@ const et = R.forwardRef(
|
|
|
981
1199
|
outerRadius: "68%",
|
|
982
1200
|
margin: { top: 10, right: 56, bottom: 16, left: 56 },
|
|
983
1201
|
children: [
|
|
984
|
-
/* @__PURE__ */ e(
|
|
1202
|
+
/* @__PURE__ */ e(je, { stroke: "var(--border)", radialLines: !0 }),
|
|
985
1203
|
/* @__PURE__ */ e(
|
|
986
|
-
|
|
1204
|
+
pe,
|
|
987
1205
|
{
|
|
988
1206
|
dataKey: n,
|
|
989
1207
|
tick: { fill: "var(--text-secondary)", fontSize: "var(--text-s)", fontWeight: 500 }
|
|
990
1208
|
}
|
|
991
1209
|
),
|
|
992
1210
|
/* @__PURE__ */ e(
|
|
993
|
-
|
|
1211
|
+
Pe,
|
|
994
1212
|
{
|
|
995
1213
|
angle: 90,
|
|
996
|
-
domain: [0,
|
|
1214
|
+
domain: [0, p],
|
|
997
1215
|
tick: !1,
|
|
998
1216
|
axisLine: !1,
|
|
999
1217
|
tickLine: !1
|
|
1000
1218
|
}
|
|
1001
1219
|
),
|
|
1002
1220
|
m !== !1 && /* @__PURE__ */ e(
|
|
1003
|
-
|
|
1221
|
+
z,
|
|
1004
1222
|
{
|
|
1005
1223
|
content: /* @__PURE__ */ e(
|
|
1006
|
-
|
|
1224
|
+
j,
|
|
1007
1225
|
{
|
|
1008
1226
|
format: f,
|
|
1009
1227
|
renderer: m
|
|
@@ -1012,19 +1230,19 @@ const et = R.forwardRef(
|
|
|
1012
1230
|
isAnimationActive: !1
|
|
1013
1231
|
}
|
|
1014
1232
|
),
|
|
1015
|
-
|
|
1016
|
-
|
|
1233
|
+
v.map((u, g) => /* @__PURE__ */ e(
|
|
1234
|
+
We,
|
|
1017
1235
|
{
|
|
1018
|
-
dataKey:
|
|
1019
|
-
name:
|
|
1020
|
-
stroke:
|
|
1021
|
-
fill:
|
|
1022
|
-
fillOpacity: o ?
|
|
1023
|
-
strokeWidth:
|
|
1024
|
-
dot: /* @__PURE__ */ e(
|
|
1236
|
+
dataKey: u,
|
|
1237
|
+
name: M(u),
|
|
1238
|
+
stroke: y(u, g),
|
|
1239
|
+
fill: y(u, g),
|
|
1240
|
+
fillOpacity: o ? u === o ? 0.16 : 0.05 : 0.1,
|
|
1241
|
+
strokeWidth: ae,
|
|
1242
|
+
dot: /* @__PURE__ */ e(U, { color: y(u, g) }),
|
|
1025
1243
|
isAnimationActive: !1
|
|
1026
1244
|
},
|
|
1027
|
-
|
|
1245
|
+
u
|
|
1028
1246
|
))
|
|
1029
1247
|
]
|
|
1030
1248
|
}
|
|
@@ -1032,51 +1250,51 @@ const et = R.forwardRef(
|
|
|
1032
1250
|
] });
|
|
1033
1251
|
}
|
|
1034
1252
|
);
|
|
1035
|
-
|
|
1036
|
-
const
|
|
1253
|
+
vt.displayName = "RadarChart";
|
|
1254
|
+
const bt = C.forwardRef(
|
|
1037
1255
|
({
|
|
1038
1256
|
data: t,
|
|
1039
1257
|
nameKey: n,
|
|
1040
|
-
valueKey:
|
|
1258
|
+
valueKey: r,
|
|
1041
1259
|
maxValue: i = 100,
|
|
1042
1260
|
centerLabel: o,
|
|
1043
|
-
height:
|
|
1261
|
+
height: a = P,
|
|
1044
1262
|
legend: l = !0,
|
|
1045
|
-
formatValue:
|
|
1263
|
+
formatValue: h,
|
|
1046
1264
|
tooltip: c,
|
|
1047
1265
|
className: m
|
|
1048
|
-
},
|
|
1049
|
-
const
|
|
1050
|
-
...
|
|
1051
|
-
name: String(
|
|
1052
|
-
fill:
|
|
1053
|
-
})),
|
|
1054
|
-
(
|
|
1266
|
+
}, d) => {
|
|
1267
|
+
const b = h ?? _, [v, f] = C.useState(null), p = t.map((x, u) => ({
|
|
1268
|
+
...x,
|
|
1269
|
+
name: String(x[n]),
|
|
1270
|
+
fill: se(u)
|
|
1271
|
+
})), M = p.length ? p.reduce(
|
|
1272
|
+
(x, u) => x + (typeof u[r] == "number" ? u[r] : 0),
|
|
1055
1273
|
0
|
|
1056
|
-
) /
|
|
1057
|
-
label: String(
|
|
1058
|
-
color:
|
|
1274
|
+
) / p.length : 0, y = l ? p.map((x, u) => ({
|
|
1275
|
+
label: String(x[n]),
|
|
1276
|
+
color: se(u)
|
|
1059
1277
|
})) : null;
|
|
1060
|
-
return /* @__PURE__ */
|
|
1061
|
-
/* @__PURE__ */
|
|
1062
|
-
/* @__PURE__ */ e(
|
|
1063
|
-
|
|
1278
|
+
return /* @__PURE__ */ w("div", { ref: d, className: D("relative w-full font-sans", m), children: [
|
|
1279
|
+
/* @__PURE__ */ w("div", { className: "relative mx-auto w-full max-w-[420px]", children: [
|
|
1280
|
+
/* @__PURE__ */ e(q, { width: "100%", height: a, children: /* @__PURE__ */ w(
|
|
1281
|
+
Ge,
|
|
1064
1282
|
{
|
|
1065
|
-
data:
|
|
1283
|
+
data: p,
|
|
1066
1284
|
innerRadius: "48%",
|
|
1067
1285
|
outerRadius: "82%",
|
|
1068
1286
|
startAngle: 90,
|
|
1069
1287
|
endAngle: -270,
|
|
1070
1288
|
margin: { top: 6, right: 6, bottom: 6, left: 6 },
|
|
1071
1289
|
children: [
|
|
1072
|
-
/* @__PURE__ */ e(
|
|
1290
|
+
/* @__PURE__ */ e(pe, { type: "number", domain: [0, i], tick: !1 }),
|
|
1073
1291
|
c !== !1 && /* @__PURE__ */ e(
|
|
1074
|
-
|
|
1292
|
+
z,
|
|
1075
1293
|
{
|
|
1076
1294
|
content: /* @__PURE__ */ e(
|
|
1077
|
-
|
|
1295
|
+
j,
|
|
1078
1296
|
{
|
|
1079
|
-
format:
|
|
1297
|
+
format: b,
|
|
1080
1298
|
renderer: c
|
|
1081
1299
|
}
|
|
1082
1300
|
),
|
|
@@ -1084,83 +1302,95 @@ const tt = R.forwardRef(
|
|
|
1084
1302
|
}
|
|
1085
1303
|
),
|
|
1086
1304
|
/* @__PURE__ */ e(
|
|
1087
|
-
|
|
1305
|
+
Ve,
|
|
1088
1306
|
{
|
|
1089
|
-
dataKey:
|
|
1307
|
+
dataKey: r,
|
|
1090
1308
|
background: { fill: "var(--muted)" },
|
|
1091
1309
|
cornerRadius: 999,
|
|
1092
1310
|
maxBarSize: 18,
|
|
1093
|
-
isAnimationActive: !1
|
|
1311
|
+
isAnimationActive: !1,
|
|
1312
|
+
onMouseEnter: (x, u) => f(u),
|
|
1313
|
+
onMouseLeave: () => f(null),
|
|
1314
|
+
children: p.map((x, u) => /* @__PURE__ */ e(
|
|
1315
|
+
te,
|
|
1316
|
+
{
|
|
1317
|
+
fill: x.fill,
|
|
1318
|
+
className: W,
|
|
1319
|
+
opacity: X(u, v)
|
|
1320
|
+
},
|
|
1321
|
+
`${x.name}-${u}`
|
|
1322
|
+
))
|
|
1094
1323
|
}
|
|
1095
1324
|
)
|
|
1096
1325
|
]
|
|
1097
1326
|
}
|
|
1098
1327
|
) }),
|
|
1099
|
-
/* @__PURE__ */
|
|
1100
|
-
/* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children:
|
|
1328
|
+
/* @__PURE__ */ w("div", { className: "pointer-events-none absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
1329
|
+
/* @__PURE__ */ e("div", { className: "text-xl font-medium text-foreground tabular-nums", children: b(Math.round(M)) }),
|
|
1101
1330
|
o && /* @__PURE__ */ e("div", { className: "mt-0.5 text-xs font-normal tracking-wide uppercase text-tertiary", children: o })
|
|
1102
1331
|
] })
|
|
1103
1332
|
] }),
|
|
1104
|
-
y && /* @__PURE__ */ e(
|
|
1333
|
+
y && /* @__PURE__ */ e(Q, { items: y, align: "center", className: "mb-0 mt-3" })
|
|
1105
1334
|
] });
|
|
1106
1335
|
}
|
|
1107
1336
|
);
|
|
1108
|
-
|
|
1109
|
-
function
|
|
1337
|
+
bt.displayName = "RadialBarChart";
|
|
1338
|
+
function gt({
|
|
1110
1339
|
x: t = 0,
|
|
1111
1340
|
y: n = 0,
|
|
1112
|
-
width:
|
|
1341
|
+
width: r = 0,
|
|
1113
1342
|
height: i = 0,
|
|
1114
1343
|
depth: o = 0,
|
|
1115
|
-
index:
|
|
1344
|
+
index: a = 0,
|
|
1116
1345
|
name: l,
|
|
1117
|
-
value:
|
|
1118
|
-
format: c =
|
|
1346
|
+
value: h,
|
|
1347
|
+
format: c = _,
|
|
1348
|
+
activeIndex: m = null
|
|
1119
1349
|
}) {
|
|
1120
1350
|
if (o === 0) return /* @__PURE__ */ e("g", {});
|
|
1121
|
-
const
|
|
1122
|
-
return /* @__PURE__ */
|
|
1351
|
+
const d = o === 0 ? "transparent" : se(a), b = o > 0 && a < 4, v = r > 72 && i > 38;
|
|
1352
|
+
return /* @__PURE__ */ w("g", { className: W, opacity: X(a, m), children: [
|
|
1123
1353
|
/* @__PURE__ */ e(
|
|
1124
1354
|
"rect",
|
|
1125
1355
|
{
|
|
1126
1356
|
x: t,
|
|
1127
1357
|
y: n,
|
|
1128
|
-
width:
|
|
1358
|
+
width: r,
|
|
1129
1359
|
height: i,
|
|
1130
1360
|
rx: 6,
|
|
1131
1361
|
ry: 6,
|
|
1132
|
-
fill:
|
|
1362
|
+
fill: d,
|
|
1133
1363
|
stroke: "var(--background)",
|
|
1134
1364
|
strokeWidth: 4
|
|
1135
1365
|
}
|
|
1136
1366
|
),
|
|
1137
|
-
|
|
1367
|
+
v && /* @__PURE__ */ e(
|
|
1138
1368
|
"foreignObject",
|
|
1139
1369
|
{
|
|
1140
1370
|
x: t + 8,
|
|
1141
1371
|
y: n + 8,
|
|
1142
|
-
width: Math.max(0,
|
|
1372
|
+
width: Math.max(0, r - 16),
|
|
1143
1373
|
height: Math.max(0, i - 16),
|
|
1144
1374
|
className: "pointer-events-none overflow-hidden",
|
|
1145
|
-
children: /* @__PURE__ */
|
|
1375
|
+
children: /* @__PURE__ */ w("div", { className: "flex h-full flex-col justify-between", children: [
|
|
1146
1376
|
/* @__PURE__ */ e(
|
|
1147
1377
|
"p",
|
|
1148
1378
|
{
|
|
1149
|
-
className:
|
|
1379
|
+
className: D(
|
|
1150
1380
|
"truncate text-xs font-medium",
|
|
1151
|
-
|
|
1381
|
+
b ? "text-background" : "text-foreground"
|
|
1152
1382
|
),
|
|
1153
1383
|
children: l
|
|
1154
1384
|
}
|
|
1155
1385
|
),
|
|
1156
|
-
typeof
|
|
1386
|
+
typeof h == "number" && i > 58 && /* @__PURE__ */ e(
|
|
1157
1387
|
"p",
|
|
1158
1388
|
{
|
|
1159
|
-
className:
|
|
1389
|
+
className: D(
|
|
1160
1390
|
"text-xs tabular-nums",
|
|
1161
|
-
|
|
1391
|
+
b ? "text-background/70" : "text-tertiary"
|
|
1162
1392
|
),
|
|
1163
|
-
children: c(
|
|
1393
|
+
children: c(h)
|
|
1164
1394
|
}
|
|
1165
1395
|
)
|
|
1166
1396
|
] })
|
|
@@ -1168,53 +1398,55 @@ function rt({
|
|
|
1168
1398
|
)
|
|
1169
1399
|
] });
|
|
1170
1400
|
}
|
|
1171
|
-
function
|
|
1172
|
-
const i = [], o = (
|
|
1173
|
-
const l = Array.isArray(
|
|
1401
|
+
function pt(t, n, r) {
|
|
1402
|
+
const i = [], o = (a) => {
|
|
1403
|
+
const l = Array.isArray(a.children) ? a.children : void 0;
|
|
1174
1404
|
if (l != null && l.length) {
|
|
1175
1405
|
l.forEach(o);
|
|
1176
1406
|
return;
|
|
1177
1407
|
}
|
|
1178
|
-
typeof r
|
|
1179
|
-
...
|
|
1180
|
-
name: String(
|
|
1181
|
-
value: r
|
|
1408
|
+
typeof a[r] == "number" && i.push({
|
|
1409
|
+
...a,
|
|
1410
|
+
name: String(a[n] ?? ""),
|
|
1411
|
+
value: a[r]
|
|
1182
1412
|
});
|
|
1183
1413
|
};
|
|
1184
1414
|
return t.forEach(o), i.length ? i : t;
|
|
1185
1415
|
}
|
|
1186
|
-
const
|
|
1416
|
+
const Nt = C.forwardRef(
|
|
1187
1417
|
({
|
|
1188
1418
|
data: t,
|
|
1189
1419
|
nameKey: n,
|
|
1190
|
-
valueKey:
|
|
1191
|
-
height: i =
|
|
1420
|
+
valueKey: r,
|
|
1421
|
+
height: i = P,
|
|
1192
1422
|
formatValue: o,
|
|
1193
|
-
tooltip:
|
|
1423
|
+
tooltip: a,
|
|
1194
1424
|
className: l
|
|
1195
|
-
},
|
|
1196
|
-
const c = o ??
|
|
1197
|
-
() =>
|
|
1198
|
-
[t, n,
|
|
1199
|
-
);
|
|
1200
|
-
return /* @__PURE__ */ e("div", { ref:
|
|
1201
|
-
|
|
1425
|
+
}, h) => {
|
|
1426
|
+
const c = o ?? _, m = C.useMemo(
|
|
1427
|
+
() => pt(t, n, r),
|
|
1428
|
+
[t, n, r]
|
|
1429
|
+
), [d, b] = C.useState(null);
|
|
1430
|
+
return /* @__PURE__ */ e("div", { ref: h, className: D("relative w-full font-sans", l), children: /* @__PURE__ */ e(q, { width: "100%", height: i, children: /* @__PURE__ */ e(
|
|
1431
|
+
Ue,
|
|
1202
1432
|
{
|
|
1203
1433
|
data: m,
|
|
1204
1434
|
nameKey: n,
|
|
1205
|
-
dataKey:
|
|
1435
|
+
dataKey: r,
|
|
1206
1436
|
type: "flat",
|
|
1207
1437
|
aspectRatio: 1.6,
|
|
1208
|
-
content: /* @__PURE__ */ e(
|
|
1438
|
+
content: /* @__PURE__ */ e(gt, { format: c, activeIndex: d }),
|
|
1209
1439
|
isAnimationActive: !1,
|
|
1210
|
-
|
|
1211
|
-
|
|
1440
|
+
onMouseEnter: (v) => b(v.depth ? v.index ?? null : null),
|
|
1441
|
+
onMouseLeave: () => b(null),
|
|
1442
|
+
children: a !== !1 && /* @__PURE__ */ e(
|
|
1443
|
+
z,
|
|
1212
1444
|
{
|
|
1213
1445
|
content: /* @__PURE__ */ e(
|
|
1214
|
-
|
|
1446
|
+
j,
|
|
1215
1447
|
{
|
|
1216
1448
|
format: c,
|
|
1217
|
-
renderer:
|
|
1449
|
+
renderer: a
|
|
1218
1450
|
}
|
|
1219
1451
|
),
|
|
1220
1452
|
isAnimationActive: !1
|
|
@@ -1224,98 +1456,100 @@ const at = R.forwardRef(
|
|
|
1224
1456
|
) }) });
|
|
1225
1457
|
}
|
|
1226
1458
|
);
|
|
1227
|
-
|
|
1228
|
-
const
|
|
1229
|
-
const
|
|
1230
|
-
return `M ${t},${n + i} L ${t},${n +
|
|
1459
|
+
Nt.displayName = "TreemapChart";
|
|
1460
|
+
const le = "var(--color-chart-1)", wt = "var(--chart-track)", K = 24, At = 44, he = 0.55, xe = 4, ve = (t, n, r, i, o) => {
|
|
1461
|
+
const a = Math.min(o, r / 2, i);
|
|
1462
|
+
return `M ${t},${n + i} L ${t},${n + a} Q ${t},${n} ${t + a},${n} L ${t + r - a},${n} Q ${t + r},${n} ${t + r},${n + a} L ${t + r},${n + i} Z`;
|
|
1231
1463
|
};
|
|
1232
|
-
function
|
|
1233
|
-
const t =
|
|
1234
|
-
return
|
|
1464
|
+
function Ct() {
|
|
1465
|
+
const t = C.useRef(null), [n, r] = C.useState(0);
|
|
1466
|
+
return C.useLayoutEffect(() => {
|
|
1235
1467
|
const i = t.current;
|
|
1236
1468
|
if (!i) return;
|
|
1237
|
-
|
|
1238
|
-
const o = new ResizeObserver((
|
|
1239
|
-
var
|
|
1240
|
-
const l = ((
|
|
1241
|
-
|
|
1469
|
+
r(i.getBoundingClientRect().width);
|
|
1470
|
+
const o = new ResizeObserver((a) => {
|
|
1471
|
+
var h;
|
|
1472
|
+
const l = ((h = a[0]) == null ? void 0 : h.contentRect.width) ?? 0;
|
|
1473
|
+
r((c) => Math.abs(c - l) > 0.5 ? l : c);
|
|
1242
1474
|
});
|
|
1243
1475
|
return o.observe(i), () => o.disconnect();
|
|
1244
1476
|
}, []), { ref: t, width: n };
|
|
1245
1477
|
}
|
|
1246
|
-
const
|
|
1478
|
+
const Mt = C.forwardRef(
|
|
1247
1479
|
({
|
|
1248
1480
|
data: t,
|
|
1249
1481
|
nameKey: n,
|
|
1250
|
-
valueKey:
|
|
1251
|
-
height: i =
|
|
1482
|
+
valueKey: r,
|
|
1483
|
+
height: i = P,
|
|
1252
1484
|
formatValue: o,
|
|
1253
|
-
label:
|
|
1485
|
+
label: a,
|
|
1254
1486
|
tooltip: l,
|
|
1255
|
-
className:
|
|
1487
|
+
className: h
|
|
1256
1488
|
}, c) => {
|
|
1257
|
-
var
|
|
1258
|
-
const m = o ??
|
|
1259
|
-
var
|
|
1260
|
-
const
|
|
1489
|
+
var R;
|
|
1490
|
+
const m = o ?? _, { ref: d, width: b } = Ct(), [v, f] = C.useState(null), p = Number(((R = t[0]) == null ? void 0 : R[r]) ?? 0), M = t.length, y = Math.max(0, i - K - At), x = K + y, u = M > 0 ? b / (M + (M - 1) * he) : 0, g = u * he, S = t.map((s, O) => {
|
|
1491
|
+
var F;
|
|
1492
|
+
const A = Number(s[r]), I = Number(((F = t[O - 1]) == null ? void 0 : F[r]) ?? A), L = p ? A / p * 100 : 0, E = I ? A / I * 100 : 0, N = p && A > 0 ? Math.max(2, A / p * y) : 0;
|
|
1261
1493
|
return {
|
|
1262
|
-
datum:
|
|
1263
|
-
index:
|
|
1264
|
-
name: String(
|
|
1265
|
-
value:
|
|
1266
|
-
conversionFromFirst:
|
|
1267
|
-
conversionFromPrevious:
|
|
1268
|
-
dropOffFromPrevious:
|
|
1269
|
-
x:
|
|
1270
|
-
y:
|
|
1271
|
-
width:
|
|
1272
|
-
height:
|
|
1494
|
+
datum: s,
|
|
1495
|
+
index: O,
|
|
1496
|
+
name: String(s[n]),
|
|
1497
|
+
value: A,
|
|
1498
|
+
conversionFromFirst: L,
|
|
1499
|
+
conversionFromPrevious: E,
|
|
1500
|
+
dropOffFromPrevious: O === 0 ? 0 : 100 - E,
|
|
1501
|
+
x: O * (u + g),
|
|
1502
|
+
y: x - N,
|
|
1503
|
+
width: u,
|
|
1504
|
+
height: N,
|
|
1273
1505
|
formatValue: m
|
|
1274
1506
|
};
|
|
1275
|
-
}),
|
|
1276
|
-
return /* @__PURE__ */ e("div", { ref: c, className:
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
const
|
|
1507
|
+
}), $ = v != null ? S[v] : void 0;
|
|
1508
|
+
return /* @__PURE__ */ e("div", { ref: c, className: D("relative w-full font-sans", h), children: /* @__PURE__ */ w("div", { ref: d, className: "relative w-full", style: { height: i }, children: [
|
|
1509
|
+
b > 0 && M > 0 && /* @__PURE__ */ w("svg", { width: b, height: i, className: "block", children: [
|
|
1510
|
+
S.slice(1).map((s) => {
|
|
1511
|
+
const O = S[s.index - 1];
|
|
1280
1512
|
return /* @__PURE__ */ e(
|
|
1281
1513
|
"path",
|
|
1282
1514
|
{
|
|
1283
|
-
d: `M ${
|
|
1284
|
-
fill:
|
|
1515
|
+
d: `M ${O.x + O.width},${O.y} L ${s.x},${s.y} L ${s.x},${x} L ${O.x + O.width},${x} Z`,
|
|
1516
|
+
fill: le,
|
|
1285
1517
|
opacity: 0.14
|
|
1286
1518
|
},
|
|
1287
|
-
`connector-${
|
|
1519
|
+
`connector-${s.index}`
|
|
1288
1520
|
);
|
|
1289
1521
|
}),
|
|
1290
|
-
|
|
1522
|
+
S.map((s) => /* @__PURE__ */ w(
|
|
1291
1523
|
"g",
|
|
1292
1524
|
{
|
|
1293
1525
|
role: "img",
|
|
1294
|
-
"aria-label": `${
|
|
1526
|
+
"aria-label": `${s.name}: ${m(s.value)} (${Math.round(s.conversionFromFirst)}% of ${S[0].name})`,
|
|
1295
1527
|
children: [
|
|
1296
1528
|
/* @__PURE__ */ e(
|
|
1297
1529
|
"path",
|
|
1298
1530
|
{
|
|
1299
|
-
d:
|
|
1300
|
-
fill:
|
|
1531
|
+
d: ve(s.x, K, s.width, y, xe),
|
|
1532
|
+
fill: wt
|
|
1301
1533
|
}
|
|
1302
1534
|
),
|
|
1303
|
-
|
|
1535
|
+
s.height > 0 && /* @__PURE__ */ e(
|
|
1304
1536
|
"path",
|
|
1305
1537
|
{
|
|
1306
|
-
d:
|
|
1307
|
-
fill:
|
|
1538
|
+
d: ve(s.x, s.y, s.width, s.height, xe),
|
|
1539
|
+
fill: le,
|
|
1540
|
+
className: W,
|
|
1541
|
+
opacity: X(s.index, v)
|
|
1308
1542
|
}
|
|
1309
1543
|
),
|
|
1310
|
-
|
|
1544
|
+
a !== !1 && (a ? a(s) : /* @__PURE__ */ w(
|
|
1311
1545
|
"text",
|
|
1312
1546
|
{
|
|
1313
|
-
x:
|
|
1314
|
-
y:
|
|
1547
|
+
x: s.x,
|
|
1548
|
+
y: s.y - 8,
|
|
1315
1549
|
textAnchor: "start",
|
|
1316
1550
|
className: "fill-secondary text-xs font-normal tabular-nums",
|
|
1317
1551
|
children: [
|
|
1318
|
-
Math.round(
|
|
1552
|
+
Math.round(s.conversionFromFirst),
|
|
1319
1553
|
"%"
|
|
1320
1554
|
]
|
|
1321
1555
|
}
|
|
@@ -1323,68 +1557,68 @@ const st = R.forwardRef(
|
|
|
1323
1557
|
/* @__PURE__ */ e(
|
|
1324
1558
|
"text",
|
|
1325
1559
|
{
|
|
1326
|
-
x:
|
|
1327
|
-
y:
|
|
1560
|
+
x: s.x,
|
|
1561
|
+
y: x + 18,
|
|
1328
1562
|
textAnchor: "start",
|
|
1329
1563
|
className: "fill-primary text-xs font-normal",
|
|
1330
|
-
children:
|
|
1564
|
+
children: s.name
|
|
1331
1565
|
}
|
|
1332
1566
|
),
|
|
1333
1567
|
/* @__PURE__ */ e(
|
|
1334
1568
|
"text",
|
|
1335
1569
|
{
|
|
1336
|
-
x:
|
|
1337
|
-
y:
|
|
1570
|
+
x: s.x,
|
|
1571
|
+
y: x + 34,
|
|
1338
1572
|
textAnchor: "start",
|
|
1339
1573
|
className: "fill-tertiary text-xs tabular-nums",
|
|
1340
|
-
children: m(
|
|
1574
|
+
children: m(s.value)
|
|
1341
1575
|
}
|
|
1342
1576
|
),
|
|
1343
1577
|
/* @__PURE__ */ e(
|
|
1344
1578
|
"rect",
|
|
1345
1579
|
{
|
|
1346
|
-
x:
|
|
1347
|
-
y:
|
|
1348
|
-
width:
|
|
1349
|
-
height:
|
|
1580
|
+
x: s.x,
|
|
1581
|
+
y: K,
|
|
1582
|
+
width: s.index === M - 1 ? u : u + g,
|
|
1583
|
+
height: y,
|
|
1350
1584
|
fill: "transparent",
|
|
1351
|
-
onMouseEnter: () => f(
|
|
1585
|
+
onMouseEnter: () => f(s.index),
|
|
1352
1586
|
onMouseLeave: () => f(null)
|
|
1353
1587
|
}
|
|
1354
1588
|
)
|
|
1355
1589
|
]
|
|
1356
1590
|
},
|
|
1357
|
-
`${
|
|
1591
|
+
`${s.name}-${s.index}`
|
|
1358
1592
|
))
|
|
1359
1593
|
] }),
|
|
1360
|
-
l !== !1 &&
|
|
1594
|
+
l !== !1 && $ && /* @__PURE__ */ e(
|
|
1361
1595
|
"div",
|
|
1362
1596
|
{
|
|
1363
1597
|
className: "pointer-events-none absolute z-10 -translate-x-1/2 -translate-y-full",
|
|
1364
|
-
style: { left:
|
|
1598
|
+
style: { left: $.x + $.width / 2, top: $.y - 10 },
|
|
1365
1599
|
children: l ? l({
|
|
1366
1600
|
active: !0,
|
|
1367
|
-
label:
|
|
1601
|
+
label: $.name,
|
|
1368
1602
|
items: [
|
|
1369
1603
|
{
|
|
1370
|
-
key:
|
|
1371
|
-
name:
|
|
1372
|
-
value:
|
|
1373
|
-
color:
|
|
1374
|
-
datum:
|
|
1604
|
+
key: $.name,
|
|
1605
|
+
name: $.name,
|
|
1606
|
+
value: $.value,
|
|
1607
|
+
color: le,
|
|
1608
|
+
datum: $.datum
|
|
1375
1609
|
}
|
|
1376
1610
|
],
|
|
1377
1611
|
formatValue: m
|
|
1378
|
-
}) : /* @__PURE__ */
|
|
1379
|
-
/* @__PURE__ */ e("div", { className: "text-xs font-normal tracking-wide uppercase text-background/60", children:
|
|
1380
|
-
/* @__PURE__ */ e("div", { className: "font-normal tabular-nums", children: m(
|
|
1381
|
-
/* @__PURE__ */
|
|
1382
|
-
Math.round(
|
|
1612
|
+
}) : /* @__PURE__ */ w("div", { className: "rounded-md bg-foreground px-2.5 py-1.5 text-xs whitespace-nowrap text-background", children: [
|
|
1613
|
+
/* @__PURE__ */ e("div", { className: "text-xs font-normal tracking-wide uppercase text-background/60", children: $.name }),
|
|
1614
|
+
/* @__PURE__ */ e("div", { className: "font-normal tabular-nums", children: m($.value) }),
|
|
1615
|
+
/* @__PURE__ */ w("div", { className: "text-background/70 tabular-nums", children: [
|
|
1616
|
+
Math.round($.conversionFromFirst),
|
|
1383
1617
|
"% of ",
|
|
1384
|
-
|
|
1385
|
-
|
|
1618
|
+
S[0].name,
|
|
1619
|
+
$.index > 0 && /* @__PURE__ */ w(oe, { children: [
|
|
1386
1620
|
" · −",
|
|
1387
|
-
Math.round(
|
|
1621
|
+
Math.round($.dropOffFromPrevious),
|
|
1388
1622
|
"% step"
|
|
1389
1623
|
] })
|
|
1390
1624
|
] })
|
|
@@ -1394,18 +1628,18 @@ const st = R.forwardRef(
|
|
|
1394
1628
|
] }) });
|
|
1395
1629
|
}
|
|
1396
1630
|
);
|
|
1397
|
-
|
|
1631
|
+
Mt.displayName = "FunnelChart";
|
|
1398
1632
|
export {
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1633
|
+
ut as AreaChart,
|
|
1634
|
+
mt as BarChart,
|
|
1635
|
+
Oe as ComboChart,
|
|
1636
|
+
ft as ComposedChart,
|
|
1637
|
+
Mt as FunnelChart,
|
|
1638
|
+
dt as LineChart,
|
|
1639
|
+
P as MIN_HEIGHT,
|
|
1640
|
+
xt as PieChart,
|
|
1641
|
+
vt as RadarChart,
|
|
1642
|
+
bt as RadialBarChart,
|
|
1643
|
+
ht as ScatterChart,
|
|
1644
|
+
Nt as TreemapChart
|
|
1411
1645
|
};
|