@canplot/react 0.1.10 → 0.1.11
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/dist/canplot.cjs +4 -4
- package/dist/canplot.cjs.map +1 -1
- package/dist/canplot.mjs +669 -682
- package/dist/canplot.mjs.map +1 -1
- package/dist/helpers.d.ts +0 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/interactions/positioning.d.ts +1 -1
- package/dist/interactions/positioning.d.ts.map +1 -1
- package/dist/interactions/types.d.ts +12 -8
- package/dist/interactions/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/canplot.mjs
CHANGED
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import Z, { createContext as vt, useContext as J, useRef as
|
|
3
|
-
import { createStore as bt, useStore as
|
|
4
|
-
const j = (t, s, e) => Math.min(Math.max(t, s), e),
|
|
1
|
+
import { jsxs as lt, jsx as _, Fragment as _t } from "react/jsx-runtime";
|
|
2
|
+
import Z, { createContext as vt, useContext as J, useRef as L, useLayoutEffect as N, useEffect as wt, version as Rt, forwardRef as At, useMemo as Q, useState as V, useId as Ut } from "react";
|
|
3
|
+
import { createStore as bt, useStore as St } from "zustand";
|
|
4
|
+
const j = (t, s, e) => Math.min(Math.max(t, s), e), le = (t) => t.reduce((s, e) => s + (e ?? 0), 0), ue = (t, s) => {
|
|
5
5
|
let e = 0;
|
|
6
|
-
for (let
|
|
7
|
-
Math.abs(t[
|
|
6
|
+
for (let o = 0; o < t.length; o++)
|
|
7
|
+
Math.abs(t[o] - s) < Math.abs(t[e] - s) && (e = o);
|
|
8
8
|
return e;
|
|
9
|
-
},
|
|
10
|
-
const { min:
|
|
11
|
-
return s /
|
|
12
|
-
},
|
|
13
|
-
const e = t.scales.find((
|
|
9
|
+
}, Lt = (t, s, e, o) => {
|
|
10
|
+
const { min: n, max: i, origin: a } = I(t, e), r = o === "canvas" ? t.chartAreaCanvasPX : t.chartAreaCSS, d = (a === "x" ? r.width : r.height) / (i - n);
|
|
11
|
+
return s / d;
|
|
12
|
+
}, I = (t, s) => {
|
|
13
|
+
const e = t.scales.find((o) => o.id === s);
|
|
14
14
|
if (!e)
|
|
15
15
|
throw new Error(`Scale ${s} not found`);
|
|
16
16
|
return e;
|
|
17
|
-
},
|
|
17
|
+
}, R = (t, s) => {
|
|
18
18
|
const e = window.devicePixelRatio || 1;
|
|
19
19
|
t.lineCap = s?.lineCap ?? "butt", t.lineDashOffset = e * (s?.lineDashOffset ?? 0), t.lineJoin = s?.lineJoin ?? "miter", t.lineWidth = e * (s?.lineWidth ?? 1), t.miterLimit = e * (s?.miterLimit ?? 10), t.strokeStyle = s?.strokeStyle ?? "black", t.fillStyle = s?.fillStyle ?? t.strokeStyle, t.font = s?.font ?? `${10 * e}px sans-serif`, t.textAlign = s?.textAlign ?? "start", t.direction = s?.direction ?? "inherit", t.textBaseline = s?.textBaseline ?? "alphabetic", t.fontKerning = s?.fontKerning ?? "auto";
|
|
20
|
-
},
|
|
21
|
-
const
|
|
22
|
-
return s *
|
|
23
|
-
}, H = (t, s, e,
|
|
24
|
-
const { min:
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
}, ut = (t, s, e, o) => {
|
|
21
|
+
const n = o === "canvas" ? t.chartAreaCanvasPX : t.chartAreaCSS, { min: i, max: a, origin: r } = I(t, e), d = (r === "x" ? n.width : n.height) / (a - i);
|
|
22
|
+
return s * d;
|
|
23
|
+
}, H = (t, s, e, o) => {
|
|
24
|
+
const { min: n, origin: i } = I(t, e), a = o === "canvas" ? t.chartAreaCanvasPX : t.chartAreaCSS, r = ut(t, s - n, e, o);
|
|
25
|
+
return i === "x" ? j(
|
|
26
|
+
a.x + r,
|
|
27
|
+
a.x - 10 * a.width,
|
|
28
|
+
a.x + 11 * a.width
|
|
29
29
|
) : j(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
a.y + a.height - r,
|
|
31
|
+
a.y - 10 * a.height,
|
|
32
|
+
a.y + 11 * a.height
|
|
33
33
|
);
|
|
34
|
-
},
|
|
35
|
-
const { min:
|
|
36
|
-
return j(s,
|
|
34
|
+
}, de = (t, s, e) => {
|
|
35
|
+
const { min: o, max: n } = I(t, e);
|
|
36
|
+
return j(s, o, n);
|
|
37
37
|
}, O = (t, s, e) => {
|
|
38
|
-
const
|
|
39
|
-
return j(s,
|
|
38
|
+
const o = e === "canvas" ? t.chartAreaCanvasPX : t.chartAreaCSS;
|
|
39
|
+
return j(s, o.x, o.x + o.width);
|
|
40
40
|
}, $ = (t, s, e) => {
|
|
41
|
-
const
|
|
42
|
-
return j(s,
|
|
43
|
-
},
|
|
44
|
-
const { min:
|
|
45
|
-
return s >=
|
|
46
|
-
},
|
|
47
|
-
const { min:
|
|
48
|
-
return
|
|
49
|
-
},
|
|
41
|
+
const o = e === "canvas" ? t.chartAreaCanvasPX : t.chartAreaCSS;
|
|
42
|
+
return j(s, o.y, o.y + o.height);
|
|
43
|
+
}, rt = (t, s, e) => {
|
|
44
|
+
const { min: o, max: n } = I(t, e);
|
|
45
|
+
return s >= o && s <= n;
|
|
46
|
+
}, D = (t, s, e, o) => {
|
|
47
|
+
const { min: n, max: i, origin: a } = I(t, e), r = o === "canvas" ? t.chartAreaCanvasPX : t.chartAreaCSS, d = a === "x" ? (s - r.x) / r.width : (r.height - s + r.y) / r.height;
|
|
48
|
+
return n + d * (i - n);
|
|
49
|
+
}, Dt = (t) => {
|
|
50
50
|
const { ctx: s, scales: e } = t;
|
|
51
|
-
for (const
|
|
52
|
-
if (!
|
|
51
|
+
for (const o of e) {
|
|
52
|
+
if (!o.axis) continue;
|
|
53
53
|
s.save(), R(s, {
|
|
54
54
|
strokeStyle: "black",
|
|
55
55
|
fillStyle: "black",
|
|
56
56
|
lineWidth: 1,
|
|
57
|
-
...
|
|
57
|
+
...o.axis.style
|
|
58
58
|
});
|
|
59
|
-
const
|
|
60
|
-
if (
|
|
61
|
-
if (
|
|
62
|
-
s.beginPath(), s.moveTo(
|
|
63
|
-
else if (
|
|
64
|
-
const
|
|
65
|
-
s.beginPath(), s.moveTo(
|
|
59
|
+
const n = o.axis.canvasRect;
|
|
60
|
+
if (o.origin === "x") {
|
|
61
|
+
if (o.axis.position === "bottom")
|
|
62
|
+
s.beginPath(), s.moveTo(n.x, n.y), s.lineTo(n.x + n.width, n.y), s.stroke();
|
|
63
|
+
else if (o.axis.position === "top") {
|
|
64
|
+
const i = n.y + n.height;
|
|
65
|
+
s.beginPath(), s.moveTo(n.x, i), s.lineTo(n.x + n.width, i), s.stroke();
|
|
66
66
|
}
|
|
67
|
-
} else if (
|
|
68
|
-
const
|
|
69
|
-
s.beginPath(), s.moveTo(
|
|
70
|
-
} else
|
|
67
|
+
} else if (o.axis.position === "left") {
|
|
68
|
+
const i = n.x + n.width;
|
|
69
|
+
s.beginPath(), s.moveTo(i, n.y), s.lineTo(i, n.y + n.height), s.stroke();
|
|
70
|
+
} else o.axis.position === "right" && (s.beginPath(), s.moveTo(n.x, n.y), s.lineTo(n.x, n.y + n.height), s.stroke());
|
|
71
71
|
s.restore();
|
|
72
72
|
}
|
|
73
73
|
}, It = () => bt((t, s) => {
|
|
74
74
|
const e = () => {
|
|
75
|
-
const
|
|
76
|
-
if (!
|
|
77
|
-
return
|
|
75
|
+
const o = s()._frame;
|
|
76
|
+
if (!o) throw new Error("No frame set in frame store");
|
|
77
|
+
return o;
|
|
78
78
|
};
|
|
79
79
|
return {
|
|
80
80
|
_frame: null,
|
|
81
81
|
getFrame: e,
|
|
82
82
|
getCtx: () => e().ctx,
|
|
83
|
-
clampXPosToChartArea: (
|
|
84
|
-
clampYPosToChartArea: (
|
|
85
|
-
valToPos: (
|
|
86
|
-
valToPxDistance: (
|
|
83
|
+
clampXPosToChartArea: (o, n) => O(e(), o, n ?? "canvas"),
|
|
84
|
+
clampYPosToChartArea: (o, n) => $(e(), o, n ?? "canvas"),
|
|
85
|
+
valToPos: (o, n, i) => H(e(), o, n, i ?? "canvas"),
|
|
86
|
+
valToPxDistance: (o, n, i) => ut(
|
|
87
87
|
e(),
|
|
88
|
-
c,
|
|
89
88
|
o,
|
|
90
|
-
n
|
|
89
|
+
n,
|
|
90
|
+
i ?? "canvas"
|
|
91
91
|
),
|
|
92
|
-
valFits: (
|
|
93
|
-
getScale: (
|
|
92
|
+
valFits: (o, n) => rt(e(), o, n),
|
|
93
|
+
getScale: (o) => I(e(), o)
|
|
94
94
|
};
|
|
95
|
-
}),
|
|
95
|
+
}), Xt = () => bt((t) => ({
|
|
96
96
|
notify: () => {
|
|
97
97
|
t((s) => ({ version: s.version + 1 }));
|
|
98
98
|
},
|
|
99
99
|
version: 0
|
|
100
|
-
})),
|
|
101
|
-
const e = J(
|
|
102
|
-
if (!e || !
|
|
100
|
+
})), dt = vt(null), Ct = vt(null), Y = (t, s) => {
|
|
101
|
+
const e = J(dt), o = J(Ct);
|
|
102
|
+
if (!e || !o)
|
|
103
103
|
throw new Error("useFrame must be used within a CanPlot component");
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
const n = L(t);
|
|
105
|
+
n.current = t, N(() => {
|
|
106
|
+
n.current(e.getState()), e.subscribe((i) => {
|
|
107
|
+
i._frame && n.current(i);
|
|
108
108
|
});
|
|
109
109
|
}, [e]), wt(() => {
|
|
110
|
-
|
|
111
|
-
}, [
|
|
112
|
-
},
|
|
113
|
-
const s = J(
|
|
110
|
+
o.getState().notify();
|
|
111
|
+
}, [o, ...s]);
|
|
112
|
+
}, ht = (t) => {
|
|
113
|
+
const s = J(dt);
|
|
114
114
|
if (!s)
|
|
115
115
|
throw new Error("useFrame must be used within a CanPlot component");
|
|
116
|
-
return
|
|
116
|
+
return St(
|
|
117
117
|
s,
|
|
118
118
|
t ?? ((e) => e.getFrame())
|
|
119
119
|
);
|
|
120
120
|
};
|
|
121
|
-
function
|
|
121
|
+
function Kt(t) {
|
|
122
122
|
return (s) => {
|
|
123
|
-
for (const e of t)
|
|
123
|
+
for (const e of t) at(e, s);
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
|
-
function
|
|
126
|
+
function Ft(t) {
|
|
127
127
|
return (s) => {
|
|
128
128
|
const e = [];
|
|
129
|
-
for (const
|
|
130
|
-
const
|
|
131
|
-
e.push(
|
|
129
|
+
for (const o of t) {
|
|
130
|
+
const n = at(o, s), i = typeof n == "function";
|
|
131
|
+
e.push(i ? n : () => at(o, null));
|
|
132
132
|
}
|
|
133
133
|
return () => {
|
|
134
|
-
for (const
|
|
134
|
+
for (const o of e) o();
|
|
135
135
|
};
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
|
-
function
|
|
138
|
+
function at(t, s) {
|
|
139
139
|
if (typeof t == "function")
|
|
140
140
|
return t(s);
|
|
141
141
|
t && (t.current = s);
|
|
142
142
|
}
|
|
143
|
-
var
|
|
144
|
-
const
|
|
145
|
-
const
|
|
143
|
+
var zt = parseInt(Rt.split(".")[0], 10) >= 19 ? Ft : Kt;
|
|
144
|
+
const he = At(({ configuration: t, children: s, style: e, className: o }, n) => {
|
|
145
|
+
const i = L(null), a = L(null), r = Ot(a), d = Q(It, []), u = Q(Xt, []);
|
|
146
146
|
N(() => {
|
|
147
147
|
d.setState({
|
|
148
|
-
_frame:
|
|
148
|
+
_frame: $t(t, r, i.current)
|
|
149
149
|
});
|
|
150
|
-
}, [t, r,
|
|
151
|
-
p._frame &&
|
|
150
|
+
}, [t, r, i, d]), N(() => d.subscribe((p) => {
|
|
151
|
+
p._frame && Bt(p._frame);
|
|
152
152
|
}), [d]), N(() => {
|
|
153
153
|
let p = !1;
|
|
154
154
|
return u.subscribe(() => {
|
|
@@ -159,12 +159,12 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
159
159
|
}));
|
|
160
160
|
});
|
|
161
161
|
}, [u, d]);
|
|
162
|
-
const
|
|
163
|
-
return /* @__PURE__ */
|
|
162
|
+
const l = window.devicePixelRatio || 1;
|
|
163
|
+
return /* @__PURE__ */ lt(
|
|
164
164
|
"div",
|
|
165
165
|
{
|
|
166
|
-
ref:
|
|
167
|
-
className:
|
|
166
|
+
ref: zt([n, a]),
|
|
167
|
+
className: o,
|
|
168
168
|
style: {
|
|
169
169
|
position: "relative",
|
|
170
170
|
overflow: "hidden",
|
|
@@ -172,12 +172,12 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
172
172
|
},
|
|
173
173
|
"data-canplotroot": !0,
|
|
174
174
|
children: [
|
|
175
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ _(
|
|
176
176
|
"canvas",
|
|
177
177
|
{
|
|
178
|
-
ref:
|
|
179
|
-
width: r.width *
|
|
180
|
-
height: r.height *
|
|
178
|
+
ref: i,
|
|
179
|
+
width: r.width * l,
|
|
180
|
+
height: r.height * l,
|
|
181
181
|
style: {
|
|
182
182
|
inset: 0,
|
|
183
183
|
position: "absolute",
|
|
@@ -186,8 +186,8 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
),
|
|
189
|
-
/* @__PURE__ */
|
|
190
|
-
|
|
189
|
+
/* @__PURE__ */ _(
|
|
190
|
+
Yt,
|
|
191
191
|
{
|
|
192
192
|
frameStore: d,
|
|
193
193
|
updateRequestStore: u,
|
|
@@ -197,70 +197,70 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
197
197
|
]
|
|
198
198
|
}
|
|
199
199
|
);
|
|
200
|
-
}),
|
|
200
|
+
}), Yt = ({ frameStore: t, updateRequestStore: s, children: e }) => St(t, (n) => !!n._frame) ? /* @__PURE__ */ _(Ct.Provider, { value: s, children: /* @__PURE__ */ _(dt.Provider, { value: t, children: e }) }) : null, Ot = (t) => {
|
|
201
201
|
const [s, e] = V({
|
|
202
202
|
width: 0,
|
|
203
203
|
height: 0
|
|
204
|
-
}), [
|
|
205
|
-
for (const
|
|
206
|
-
const
|
|
204
|
+
}), [o] = V(() => new ResizeObserver((n) => {
|
|
205
|
+
for (const i of n) {
|
|
206
|
+
const a = Math.round(i.contentRect.width), r = Math.round(i.contentRect.height);
|
|
207
207
|
e(
|
|
208
|
-
(d) => d.width !==
|
|
208
|
+
(d) => d.width !== a || d.height !== r ? { ...d, width: a, height: r } : d
|
|
209
209
|
);
|
|
210
210
|
}
|
|
211
211
|
}));
|
|
212
212
|
return N(() => {
|
|
213
213
|
if (!t.current) return;
|
|
214
|
-
const
|
|
214
|
+
const n = t.current.clientWidth, i = t.current.clientHeight;
|
|
215
215
|
return e(
|
|
216
|
-
(
|
|
217
|
-
),
|
|
218
|
-
}, [
|
|
219
|
-
},
|
|
220
|
-
const
|
|
221
|
-
if (!
|
|
222
|
-
const
|
|
216
|
+
(a) => a.width !== n || a.height !== i ? { ...a, width: n, height: i } : a
|
|
217
|
+
), o.observe(t.current, { box: "border-box" }), () => o.disconnect();
|
|
218
|
+
}, [o, t]), s;
|
|
219
|
+
}, $t = (t, s, e) => {
|
|
220
|
+
const o = e?.getContext("2d");
|
|
221
|
+
if (!o) return null;
|
|
222
|
+
const n = window.devicePixelRatio || 1;
|
|
223
223
|
if (s.width === 0 || s.height === 0)
|
|
224
224
|
return null;
|
|
225
|
-
const
|
|
225
|
+
const i = {
|
|
226
226
|
x: t.padding.left,
|
|
227
227
|
y: t.padding.top,
|
|
228
228
|
width: s.width - t.padding.left - t.padding.right,
|
|
229
229
|
height: s.height - t.padding.top - t.padding.bottom
|
|
230
230
|
};
|
|
231
231
|
for (const m of t.scales)
|
|
232
|
-
m.axis && (m.origin === "x" ? (m.axis.position === "bottom" || m.axis.position === "top") && (
|
|
232
|
+
m.axis && (m.origin === "x" ? (m.axis.position === "bottom" || m.axis.position === "top") && (i.height = Math.max(
|
|
233
233
|
0,
|
|
234
|
-
|
|
235
|
-
), m.axis.position === "top" && (
|
|
236
|
-
const
|
|
237
|
-
x:
|
|
238
|
-
y:
|
|
239
|
-
width:
|
|
240
|
-
height:
|
|
234
|
+
i.height - m.axis.size
|
|
235
|
+
), m.axis.position === "top" && (i.y += m.axis.size)) : (m.axis.position === "left" || m.axis.position === "right") && (i.width = Math.max(0, i.width - m.axis.size), m.axis.position === "left" && (i.x += m.axis.size)));
|
|
236
|
+
const a = {
|
|
237
|
+
x: i.x * n,
|
|
238
|
+
y: i.y * n,
|
|
239
|
+
width: i.width * n,
|
|
240
|
+
height: i.height * n
|
|
241
241
|
}, r = [];
|
|
242
|
-
let d = t.padding.left *
|
|
242
|
+
let d = t.padding.left * n, u = o.canvas.width - t.padding.right * n, l = o.canvas.height - t.padding.bottom * n, p = t.padding.top * n;
|
|
243
243
|
for (const m of t.scales) {
|
|
244
244
|
if (!m.axis) {
|
|
245
245
|
r.push({ ...m, axis: null });
|
|
246
246
|
continue;
|
|
247
247
|
}
|
|
248
|
-
let
|
|
248
|
+
let c;
|
|
249
249
|
if (m.origin === "x")
|
|
250
250
|
switch (m.axis.position) {
|
|
251
251
|
case "bottom":
|
|
252
|
-
|
|
253
|
-
x:
|
|
254
|
-
y:
|
|
255
|
-
width:
|
|
252
|
+
l -= m.axis.size * n, c = {
|
|
253
|
+
x: i.x,
|
|
254
|
+
y: l / n,
|
|
255
|
+
width: i.width,
|
|
256
256
|
height: m.axis.size
|
|
257
257
|
};
|
|
258
258
|
break;
|
|
259
259
|
case "top":
|
|
260
|
-
p += m.axis.size *
|
|
261
|
-
x:
|
|
262
|
-
y: p /
|
|
263
|
-
width:
|
|
260
|
+
p += m.axis.size * n, c = {
|
|
261
|
+
x: i.x,
|
|
262
|
+
y: p / n - m.axis.size,
|
|
263
|
+
width: i.width,
|
|
264
264
|
height: m.axis.size
|
|
265
265
|
};
|
|
266
266
|
break;
|
|
@@ -271,19 +271,19 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
271
271
|
else
|
|
272
272
|
switch (m.axis.position) {
|
|
273
273
|
case "left":
|
|
274
|
-
d += m.axis.size *
|
|
275
|
-
x: d /
|
|
276
|
-
y:
|
|
274
|
+
d += m.axis.size * n, c = {
|
|
275
|
+
x: d / n - m.axis.size,
|
|
276
|
+
y: i.y,
|
|
277
277
|
width: m.axis.size,
|
|
278
|
-
height:
|
|
278
|
+
height: i.height
|
|
279
279
|
};
|
|
280
280
|
break;
|
|
281
281
|
case "right":
|
|
282
|
-
u -= m.axis.size *
|
|
283
|
-
x: u /
|
|
284
|
-
y:
|
|
282
|
+
u -= m.axis.size * n, c = {
|
|
283
|
+
x: u / n,
|
|
284
|
+
y: i.y,
|
|
285
285
|
width: m.axis.size,
|
|
286
|
-
height:
|
|
286
|
+
height: i.height
|
|
287
287
|
};
|
|
288
288
|
break;
|
|
289
289
|
case "top":
|
|
@@ -291,202 +291,202 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
291
291
|
throw new Error("Invalid axis position for y origin");
|
|
292
292
|
}
|
|
293
293
|
const h = {
|
|
294
|
-
x:
|
|
295
|
-
y:
|
|
296
|
-
width:
|
|
297
|
-
height:
|
|
294
|
+
x: c.x * n,
|
|
295
|
+
y: c.y * n,
|
|
296
|
+
width: c.width * n,
|
|
297
|
+
height: c.height * n
|
|
298
298
|
};
|
|
299
299
|
r.push({
|
|
300
300
|
...m,
|
|
301
301
|
axis: {
|
|
302
302
|
...m.axis,
|
|
303
|
-
cssRect:
|
|
303
|
+
cssRect: c,
|
|
304
304
|
canvasRect: h
|
|
305
305
|
}
|
|
306
306
|
});
|
|
307
307
|
}
|
|
308
308
|
return {
|
|
309
|
-
ctx:
|
|
310
|
-
dpr:
|
|
309
|
+
ctx: o,
|
|
310
|
+
dpr: n,
|
|
311
311
|
padding: t.padding,
|
|
312
312
|
scales: r,
|
|
313
|
-
chartAreaCSS:
|
|
314
|
-
chartAreaCanvasPX:
|
|
313
|
+
chartAreaCSS: i,
|
|
314
|
+
chartAreaCanvasPX: a
|
|
315
315
|
};
|
|
316
|
-
},
|
|
317
|
-
t.ctx.clearRect(0, 0, t.ctx.canvas.width, t.ctx.canvas.height),
|
|
318
|
-
},
|
|
319
|
-
({ getCtx:
|
|
320
|
-
const d =
|
|
321
|
-
d.save(), d.beginPath(), R(d,
|
|
316
|
+
}, Bt = (t) => {
|
|
317
|
+
t.ctx.clearRect(0, 0, t.ctx.canvas.width, t.ctx.canvas.height), Dt(t);
|
|
318
|
+
}, fe = ({ data: t, xScaleId: s, yScaleId: e, style: o }) => (Y(
|
|
319
|
+
({ getCtx: n, clampXPosToChartArea: i, clampYPosToChartArea: a, valToPos: r }) => {
|
|
320
|
+
const d = n();
|
|
321
|
+
d.save(), d.beginPath(), R(d, o);
|
|
322
322
|
for (const u of t) {
|
|
323
|
-
const
|
|
324
|
-
d.lineTo(
|
|
323
|
+
const l = i(r(u.x, s)), p = a(r(u.y, e));
|
|
324
|
+
d.lineTo(l, p);
|
|
325
325
|
}
|
|
326
326
|
d.stroke(), d.restore();
|
|
327
327
|
},
|
|
328
|
-
[t, s, e,
|
|
329
|
-
), null),
|
|
330
|
-
const d =
|
|
331
|
-
d.save(), d.beginPath(), R(d,
|
|
328
|
+
[t, s, e, o]
|
|
329
|
+
), null), me = ({ data: t, xScaleId: s, yScaleId: e, radius: o = 5, style: n }) => (Y(({ getCtx: i, valToPos: a, valFits: r }) => {
|
|
330
|
+
const d = i();
|
|
331
|
+
d.save(), d.beginPath(), R(d, n);
|
|
332
332
|
for (const u of t) {
|
|
333
333
|
if (!r(u.x, s) || !r(u.y, e))
|
|
334
334
|
continue;
|
|
335
|
-
const
|
|
336
|
-
d.moveTo(
|
|
335
|
+
const l = a(u.x, s), p = a(u.y, e);
|
|
336
|
+
d.moveTo(l + o, p), d.arc(l, p, o, 0, Math.PI * 2);
|
|
337
337
|
}
|
|
338
338
|
d.stroke(), d.fill(), d.restore();
|
|
339
|
-
}, [t, s, e,
|
|
339
|
+
}, [t, s, e, o, n]), null), pe = ({
|
|
340
340
|
data: t,
|
|
341
341
|
xScaleId: s,
|
|
342
342
|
yScaleId: e,
|
|
343
|
-
style:
|
|
344
|
-
barWidth:
|
|
345
|
-
xPositionOffset:
|
|
346
|
-
radius:
|
|
343
|
+
style: o,
|
|
344
|
+
barWidth: n,
|
|
345
|
+
xPositionOffset: i,
|
|
346
|
+
radius: a
|
|
347
347
|
}) => (Y(
|
|
348
348
|
({
|
|
349
349
|
getCtx: r,
|
|
350
350
|
valToPxDistance: d,
|
|
351
351
|
valToPos: u,
|
|
352
|
-
clampXPosToChartArea:
|
|
352
|
+
clampXPosToChartArea: l,
|
|
353
353
|
clampYPosToChartArea: p
|
|
354
354
|
}) => {
|
|
355
355
|
if (t.length === 0) return;
|
|
356
356
|
const f = r();
|
|
357
|
-
f.save(), R(f,
|
|
358
|
-
const m = d(
|
|
357
|
+
f.save(), R(f, o);
|
|
358
|
+
const m = d(n, s);
|
|
359
359
|
f.beginPath();
|
|
360
|
-
for (const
|
|
361
|
-
const y = u(
|
|
362
|
-
|
|
363
|
-
g,
|
|
360
|
+
for (const c of t) {
|
|
361
|
+
const y = u(c.x, s) - m / 2 + i * m, x = p(u(0, e)), w = p(u(c.y, e)), g = x - w, v = l(y), T = l(y + m) - v;
|
|
362
|
+
a ? f.roundRect(
|
|
364
363
|
v,
|
|
364
|
+
w,
|
|
365
365
|
T,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
) : f.rect(
|
|
366
|
+
g,
|
|
367
|
+
a
|
|
368
|
+
) : f.rect(v, w, T, g);
|
|
369
369
|
}
|
|
370
|
-
f.closePath(), f.fill(),
|
|
370
|
+
f.closePath(), f.fill(), o?.strokeStyle && f.stroke(), f.restore();
|
|
371
371
|
},
|
|
372
|
-
[t, s, e,
|
|
373
|
-
), null),
|
|
372
|
+
[t, s, e, o, n, i, a]
|
|
373
|
+
), null), ye = ({ data: t, xScaleId: s, yScaleId: e, style: o }) => (Y(({ getCtx: n, clampXPosToChartArea: i, clampYPosToChartArea: a, valToPos: r }) => {
|
|
374
374
|
const d = [];
|
|
375
|
-
for (const
|
|
376
|
-
const p =
|
|
375
|
+
for (const l of t) {
|
|
376
|
+
const p = i(r(l.x, s)), f = a(r(l.y[0], e)), m = a(r(l.y[1], e));
|
|
377
377
|
d.push({ x: p, y: f }), d.unshift({ x: p, y: m });
|
|
378
378
|
}
|
|
379
|
-
const u =
|
|
379
|
+
const u = n();
|
|
380
380
|
if (d.length > 0) {
|
|
381
|
-
u.save(), u.beginPath(), R(u,
|
|
382
|
-
for (const
|
|
383
|
-
u.lineTo(
|
|
381
|
+
u.save(), u.beginPath(), R(u, o), u.moveTo(d[0].x, d[0].y);
|
|
382
|
+
for (const l of d)
|
|
383
|
+
u.lineTo(l.x, l.y);
|
|
384
384
|
u.closePath(), u.fill(), u.restore();
|
|
385
385
|
}
|
|
386
|
-
}, [t, s, e,
|
|
387
|
-
({ getCtx:
|
|
388
|
-
const u = [],
|
|
389
|
-
for (const
|
|
390
|
-
const h =
|
|
386
|
+
}, [t, s, e, o]), null), xe = ({ data: t, stroked: s, xScaleId: e, yScaleId: o, style: n }) => (Y(
|
|
387
|
+
({ getCtx: i, clampXPosToChartArea: a, clampYPosToChartArea: r, valToPos: d }) => {
|
|
388
|
+
const u = [], l = i();
|
|
389
|
+
for (const c of t) {
|
|
390
|
+
const h = a(d(c.x, e)), y = r(d(c.y, o));
|
|
391
391
|
u.push({ x: h, y });
|
|
392
392
|
}
|
|
393
393
|
const p = u.at(0), f = u.at(-1);
|
|
394
394
|
if (!p || !f)
|
|
395
395
|
return;
|
|
396
|
-
const m = r(d(0,
|
|
397
|
-
|
|
398
|
-
for (const
|
|
399
|
-
|
|
400
|
-
if (
|
|
401
|
-
|
|
402
|
-
for (const
|
|
403
|
-
|
|
404
|
-
|
|
396
|
+
const m = r(d(0, o));
|
|
397
|
+
l.save(), l.beginPath(), R(l, n), l.moveTo(p.x, m);
|
|
398
|
+
for (const c of u)
|
|
399
|
+
l.lineTo(c.x, c.y);
|
|
400
|
+
if (l.lineTo(f.x, m), l.closePath(), l.fill(), s) {
|
|
401
|
+
l.beginPath(), l.moveTo(p.x, p.y);
|
|
402
|
+
for (const c of u)
|
|
403
|
+
l.lineTo(c.x, c.y);
|
|
404
|
+
l.stroke();
|
|
405
405
|
}
|
|
406
|
-
|
|
406
|
+
l.restore();
|
|
407
407
|
},
|
|
408
|
-
[t, s, e,
|
|
409
|
-
), null),
|
|
408
|
+
[t, s, e, o, n]
|
|
409
|
+
), null), ge = (t, s) => ht(
|
|
410
410
|
({
|
|
411
411
|
clampXPosToChartArea: e,
|
|
412
|
-
clampYPosToChartArea:
|
|
413
|
-
getScale:
|
|
414
|
-
valToPos:
|
|
415
|
-
valFits:
|
|
412
|
+
clampYPosToChartArea: o,
|
|
413
|
+
getScale: n,
|
|
414
|
+
valToPos: i,
|
|
415
|
+
valFits: a
|
|
416
416
|
}) => {
|
|
417
417
|
const r = {};
|
|
418
418
|
for (const d in t) {
|
|
419
419
|
const u = t[d];
|
|
420
420
|
switch (u.exceeding) {
|
|
421
421
|
case "discard": {
|
|
422
|
-
if (
|
|
423
|
-
const
|
|
424
|
-
r[d] =
|
|
422
|
+
if (a(u.value, u.scaleId)) {
|
|
423
|
+
const l = i(u.value, u.scaleId, s);
|
|
424
|
+
r[d] = l;
|
|
425
425
|
}
|
|
426
426
|
break;
|
|
427
427
|
}
|
|
428
428
|
case "clamp": {
|
|
429
|
-
const
|
|
430
|
-
r[d] =
|
|
429
|
+
const l = i(u.value, u.scaleId, s);
|
|
430
|
+
r[d] = n(u.scaleId)?.origin === "x" ? e(l, s) : o(l, s);
|
|
431
431
|
break;
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
435
|
return r;
|
|
436
436
|
}
|
|
437
|
-
),
|
|
438
|
-
({ getCtx:
|
|
439
|
-
const
|
|
437
|
+
), ve = ({ scaleId: t, tickStyle: s, labelStyle: e, labelGap: o, tickSize: n, ticks: i }) => (Y(
|
|
438
|
+
({ getCtx: a, valToPos: r, getScale: d, getFrame: u }) => {
|
|
439
|
+
const l = a(), p = d(t);
|
|
440
440
|
if (!p || !p.axis || p.origin !== "x") return;
|
|
441
|
-
const f = p.axis, m = f.position === "top" ? f.canvasRect.y + f.canvasRect.height : f.canvasRect.y,
|
|
442
|
-
|
|
441
|
+
const f = p.axis, m = f.position === "top" ? f.canvasRect.y + f.canvasRect.height : f.canvasRect.y, c = window.devicePixelRatio || 1, h = m, y = (n ?? 6) * c, x = f.position === "top" ? m - y : m + y, w = (o ?? 12) * c;
|
|
442
|
+
l.save(), l.fontKerning = "auto", R(l, {
|
|
443
443
|
...s
|
|
444
|
-
}),
|
|
445
|
-
const
|
|
446
|
-
for (const { value:
|
|
447
|
-
const T = r(
|
|
448
|
-
|
|
444
|
+
}), l.beginPath();
|
|
445
|
+
const g = Array.isArray(i) ? i : i({ ...p, axis: f }, u());
|
|
446
|
+
for (const { value: v } of g) {
|
|
447
|
+
const T = r(v, t, "canvas");
|
|
448
|
+
l.moveTo(T, h), l.lineTo(T, x);
|
|
449
449
|
}
|
|
450
|
-
|
|
450
|
+
l.stroke(), l.restore(), l.save(), R(l, {
|
|
451
451
|
textBaseline: f.position === "top" ? "bottom" : "top",
|
|
452
452
|
textAlign: "center",
|
|
453
453
|
...s,
|
|
454
454
|
...e
|
|
455
455
|
});
|
|
456
|
-
for (const { value:
|
|
457
|
-
const
|
|
456
|
+
for (const { value: v, label: T } of g) {
|
|
457
|
+
const b = r(v, t, "canvas"), C = T.split(`
|
|
458
458
|
`);
|
|
459
459
|
for (let k = 0; k < C.length; k++)
|
|
460
|
-
|
|
460
|
+
l.fillText(C[k], b, x + c * 2 + k * w);
|
|
461
461
|
}
|
|
462
|
-
|
|
462
|
+
l.restore();
|
|
463
463
|
},
|
|
464
|
-
[
|
|
465
|
-
), null),
|
|
466
|
-
({ getCtx:
|
|
467
|
-
const
|
|
464
|
+
[i, t, s, e]
|
|
465
|
+
), null), we = ({ scaleId: t, tickStyle: s, labelStyle: e, labelGap: o, tickSize: n, ticks: i }) => (Y(
|
|
466
|
+
({ getCtx: a, valToPos: r, getScale: d, getFrame: u }) => {
|
|
467
|
+
const l = a(), p = d(t);
|
|
468
468
|
if (!p || !p.axis || p.origin !== "y") return;
|
|
469
|
-
const f = p.axis, m = f.position === "left" ? f.canvasRect.x + f.canvasRect.width : f.canvasRect.x,
|
|
470
|
-
|
|
471
|
-
for (const { value:
|
|
472
|
-
const
|
|
473
|
-
|
|
469
|
+
const f = p.axis, m = f.position === "left" ? f.canvasRect.x + f.canvasRect.width : f.canvasRect.x, c = m, h = n ?? 6, y = f.position === "left" ? m - h : m + h, x = o ?? 12, w = Array.isArray(i) ? i : i({ ...p, axis: f }, u());
|
|
470
|
+
l.save(), l.fontKerning = "auto", R(l, { ...s }), l.beginPath();
|
|
471
|
+
for (const { value: g } of w) {
|
|
472
|
+
const v = r(g, t, "canvas");
|
|
473
|
+
l.moveTo(c, v), l.lineTo(y, v);
|
|
474
474
|
}
|
|
475
|
-
|
|
475
|
+
l.stroke(), l.restore(), l.save(), R(l, {
|
|
476
476
|
textBaseline: "middle",
|
|
477
477
|
textAlign: f.position === "left" ? "right" : "left",
|
|
478
478
|
...s,
|
|
479
479
|
...e
|
|
480
480
|
});
|
|
481
|
-
for (const { value:
|
|
482
|
-
const T = r(
|
|
481
|
+
for (const { value: g, label: v } of w) {
|
|
482
|
+
const T = r(g, t, "canvas"), b = v.split(`
|
|
483
483
|
`);
|
|
484
|
-
for (let C = 0; C <
|
|
485
|
-
|
|
484
|
+
for (let C = 0; C < b.length; C++)
|
|
485
|
+
l.fillText(` ${b[C]} `, y, T + C * x);
|
|
486
486
|
}
|
|
487
|
-
|
|
487
|
+
l.restore();
|
|
488
488
|
},
|
|
489
|
-
[
|
|
489
|
+
[i, t, s, e]
|
|
490
490
|
), null), E = () => {
|
|
491
491
|
const t = [];
|
|
492
492
|
return {
|
|
@@ -494,15 +494,15 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
494
494
|
syncKey: s,
|
|
495
495
|
callback: e
|
|
496
496
|
}), () => {
|
|
497
|
-
const
|
|
498
|
-
|
|
497
|
+
const o = t.findIndex((n) => n.callback === e);
|
|
498
|
+
o !== -1 && t.splice(o, 1);
|
|
499
499
|
}),
|
|
500
500
|
dispatchEvent: (s, e) => {
|
|
501
|
-
for (const
|
|
502
|
-
|
|
501
|
+
for (const o of t)
|
|
502
|
+
o.syncKey === s && o.callback(s, e);
|
|
503
503
|
}
|
|
504
504
|
};
|
|
505
|
-
},
|
|
505
|
+
}, S = {
|
|
506
506
|
dblclick: E(),
|
|
507
507
|
click: E(),
|
|
508
508
|
contextmenu: E(),
|
|
@@ -521,36 +521,36 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
521
521
|
sync_pressandwheel: E(),
|
|
522
522
|
sync_contextmenu: E()
|
|
523
523
|
}, M = (t, s, e) => {
|
|
524
|
-
const
|
|
525
|
-
|
|
524
|
+
const o = Z.useRef(e);
|
|
525
|
+
o.current = e, Z.useEffect(() => S[t].addEventListener(
|
|
526
526
|
s,
|
|
527
|
-
(
|
|
528
|
-
|
|
527
|
+
(i, a) => {
|
|
528
|
+
o.current(a, i);
|
|
529
529
|
}
|
|
530
|
-
), [s, t,
|
|
531
|
-
},
|
|
532
|
-
const e = Z.useContext(
|
|
530
|
+
), [s, t, o]);
|
|
531
|
+
}, ft = Z.createContext(""), mt = (t, s) => {
|
|
532
|
+
const e = Z.useContext(ft);
|
|
533
533
|
return M(t, e, s);
|
|
534
|
-
},
|
|
534
|
+
}, Nt = (t, s, e, o, n) => {
|
|
535
535
|
if (!s) return;
|
|
536
|
-
const
|
|
537
|
-
if (!
|
|
536
|
+
const i = o ?? e.scales.find((p) => p.origin === "x")?.id, a = n ?? e.scales.find((p) => p.origin === "y")?.id;
|
|
537
|
+
if (!i || !a)
|
|
538
538
|
return;
|
|
539
539
|
const r = t.clientX - s.left, d = {
|
|
540
|
-
scaleId:
|
|
541
|
-
value:
|
|
542
|
-
}, u = t.clientY - s.top,
|
|
543
|
-
scaleId:
|
|
544
|
-
value:
|
|
540
|
+
scaleId: i,
|
|
541
|
+
value: D(e, r, i, "css")
|
|
542
|
+
}, u = t.clientY - s.top, l = {
|
|
543
|
+
scaleId: a,
|
|
544
|
+
value: D(e, u, a, "css")
|
|
545
545
|
};
|
|
546
|
-
return { pointerSyncPosition: { x: d, y:
|
|
546
|
+
return { pointerSyncPosition: { x: d, y: l }, cssX: r, cssY: u };
|
|
547
547
|
}, z = (t, s) => {
|
|
548
548
|
const e = t.x ? H(
|
|
549
549
|
s,
|
|
550
550
|
t.x.value,
|
|
551
551
|
t.x.scaleId,
|
|
552
552
|
"css"
|
|
553
|
-
) : 0,
|
|
553
|
+
) : 0, o = t.y ? H(
|
|
554
554
|
s,
|
|
555
555
|
t.y.value,
|
|
556
556
|
t.y.scaleId,
|
|
@@ -558,46 +558,33 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
558
558
|
) : 0;
|
|
559
559
|
return {
|
|
560
560
|
cssX: e,
|
|
561
|
-
cssY:
|
|
561
|
+
cssY: o,
|
|
562
562
|
scaled: Object.fromEntries(
|
|
563
|
-
s.scales.map((
|
|
564
|
-
const
|
|
565
|
-
return [
|
|
563
|
+
s.scales.map((n) => {
|
|
564
|
+
const i = n.origin === "y" ? o : e;
|
|
565
|
+
return [n.id, D(s, i, n.id, "css")];
|
|
566
566
|
})
|
|
567
567
|
)
|
|
568
568
|
};
|
|
569
|
-
},
|
|
570
|
-
|
|
571
|
-
const l = t === "x" ? e.chartAreaCSS.x : e.chartAreaCSS.y, r = t === "x" ? e.chartAreaCSS.x + e.chartAreaCSS.width : e.chartAreaCSS.y + e.chartAreaCSS.height;
|
|
572
|
-
return {
|
|
573
|
-
fromCSS: l,
|
|
574
|
-
toCSS: r,
|
|
575
|
-
scaled: e.scales.flatMap((d) => {
|
|
576
|
-
if (d.origin !== t)
|
|
577
|
-
return [];
|
|
578
|
-
const { min: u, max: a } = _(e, d.id);
|
|
579
|
-
return [{ scaleId: d.id, from: u, to: a }];
|
|
580
|
-
})
|
|
581
|
-
};
|
|
582
|
-
}
|
|
583
|
-
const c = H(
|
|
569
|
+
}, xt = (t, s, e) => {
|
|
570
|
+
const o = H(
|
|
584
571
|
e,
|
|
585
572
|
s.from,
|
|
586
573
|
s.scaleId,
|
|
587
574
|
"css"
|
|
588
|
-
),
|
|
575
|
+
), n = H(
|
|
589
576
|
e,
|
|
590
577
|
s.to,
|
|
591
578
|
s.scaleId,
|
|
592
579
|
"css"
|
|
593
|
-
),
|
|
594
|
-
(
|
|
595
|
-
if (
|
|
580
|
+
), i = e.scales.flatMap(
|
|
581
|
+
(a) => {
|
|
582
|
+
if (a.origin !== t)
|
|
596
583
|
return [];
|
|
597
|
-
const r =
|
|
584
|
+
const r = D(e, o, a.id, "css"), d = D(e, n, a.id, "css");
|
|
598
585
|
return [
|
|
599
586
|
{
|
|
600
|
-
scaleId:
|
|
587
|
+
scaleId: a.id,
|
|
601
588
|
from: r,
|
|
602
589
|
to: d
|
|
603
590
|
}
|
|
@@ -605,70 +592,70 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
605
592
|
}
|
|
606
593
|
);
|
|
607
594
|
return {
|
|
608
|
-
fromCSS:
|
|
609
|
-
toCSS:
|
|
610
|
-
scaled:
|
|
595
|
+
fromCSS: o,
|
|
596
|
+
toCSS: n,
|
|
597
|
+
scaled: i
|
|
611
598
|
};
|
|
612
|
-
},
|
|
599
|
+
}, be = ({
|
|
613
600
|
id: t,
|
|
614
601
|
onClick: s,
|
|
615
602
|
onDblClick: e,
|
|
616
|
-
onMouseMove:
|
|
617
|
-
onMouseDown:
|
|
618
|
-
onMouseUp:
|
|
619
|
-
onDocumentMouseUp:
|
|
603
|
+
onMouseMove: o,
|
|
604
|
+
onMouseDown: n,
|
|
605
|
+
onMouseUp: i,
|
|
606
|
+
onDocumentMouseUp: a,
|
|
620
607
|
onSpanSelect: r,
|
|
621
608
|
onContextMenu: d,
|
|
622
609
|
className: u,
|
|
623
|
-
style:
|
|
610
|
+
style: l,
|
|
624
611
|
sync: p,
|
|
625
612
|
children: f
|
|
626
613
|
}) => {
|
|
627
|
-
const m =
|
|
628
|
-
return M("dblclick",
|
|
614
|
+
const m = Ut(), c = t || m;
|
|
615
|
+
return M("dblclick", c, (h) => {
|
|
629
616
|
e?.(h);
|
|
630
|
-
}), M("click",
|
|
617
|
+
}), M("click", c, (h) => {
|
|
631
618
|
s?.(h);
|
|
632
|
-
}), M("move",
|
|
633
|
-
c?.(h);
|
|
634
|
-
}), M("mousedown", i, (h) => {
|
|
619
|
+
}), M("move", c, (h) => {
|
|
635
620
|
o?.(h);
|
|
636
|
-
}), M("
|
|
621
|
+
}), M("mousedown", c, (h) => {
|
|
637
622
|
n?.(h);
|
|
638
|
-
}), M("
|
|
639
|
-
|
|
640
|
-
}), M("
|
|
623
|
+
}), M("mouseup", c, (h) => {
|
|
624
|
+
i?.(h);
|
|
625
|
+
}), M("documentmouseup", c, (h) => {
|
|
626
|
+
a?.(h);
|
|
627
|
+
}), M("spanselect", c, (h) => {
|
|
641
628
|
r?.(h);
|
|
642
|
-
}), M("contextmenu",
|
|
629
|
+
}), M("contextmenu", c, (h) => {
|
|
643
630
|
d?.(h);
|
|
644
|
-
}), /* @__PURE__ */
|
|
645
|
-
/* @__PURE__ */
|
|
646
|
-
|
|
631
|
+
}), /* @__PURE__ */ lt(ft.Provider, { value: c, children: [
|
|
632
|
+
/* @__PURE__ */ _(
|
|
633
|
+
Vt,
|
|
647
634
|
{
|
|
648
635
|
className: u,
|
|
649
|
-
style:
|
|
636
|
+
style: l,
|
|
650
637
|
sync: p
|
|
651
638
|
}
|
|
652
639
|
),
|
|
653
640
|
f
|
|
654
641
|
] });
|
|
655
|
-
},
|
|
656
|
-
const
|
|
657
|
-
|
|
658
|
-
const
|
|
659
|
-
const
|
|
660
|
-
if (
|
|
661
|
-
if (
|
|
642
|
+
}, Vt = ({ className: t, style: s, sync: e }) => {
|
|
643
|
+
const o = L(null), n = ht(), i = L(n);
|
|
644
|
+
i.current = n;
|
|
645
|
+
const a = J(ft), r = e?.key || a, d = L(null), u = L(null), l = L(null), p = () => {
|
|
646
|
+
const c = o.current?.parentElement;
|
|
647
|
+
if (c) {
|
|
648
|
+
if (c.dataset.canplotroot === void 0)
|
|
662
649
|
throw new Error(
|
|
663
650
|
"ChartAreaInteractions must be used within a CanPlot component"
|
|
664
651
|
);
|
|
665
|
-
return
|
|
652
|
+
return c.getBoundingClientRect();
|
|
666
653
|
}
|
|
667
|
-
}, f = (
|
|
668
|
-
const y =
|
|
669
|
-
|
|
654
|
+
}, f = (c, h) => {
|
|
655
|
+
const y = Nt(
|
|
656
|
+
c,
|
|
670
657
|
p(),
|
|
671
|
-
|
|
658
|
+
i.current,
|
|
672
659
|
e?.xViaScaleId,
|
|
673
660
|
e?.yViaScaleId
|
|
674
661
|
);
|
|
@@ -676,312 +663,314 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
676
663
|
y.pointerSyncPosition,
|
|
677
664
|
{ cssX: y.cssX, cssY: y.cssY },
|
|
678
665
|
{
|
|
679
|
-
ctrlKey:
|
|
680
|
-
altKey:
|
|
681
|
-
shiftKey:
|
|
682
|
-
metaKey:
|
|
666
|
+
ctrlKey: c.ctrlKey,
|
|
667
|
+
altKey: c.altKey,
|
|
668
|
+
shiftKey: c.shiftKey,
|
|
669
|
+
metaKey: c.metaKey
|
|
683
670
|
}
|
|
684
671
|
);
|
|
685
|
-
}, m =
|
|
672
|
+
}, m = L(f);
|
|
686
673
|
return m.current = f, wt(() => {
|
|
687
|
-
const
|
|
688
|
-
const
|
|
689
|
-
|
|
690
|
-
...
|
|
674
|
+
const c = (g) => {
|
|
675
|
+
const v = u.current;
|
|
676
|
+
v && S.sync_spanselect.dispatchEvent(r, {
|
|
677
|
+
...v,
|
|
691
678
|
completed: !0
|
|
692
|
-
}),
|
|
693
|
-
frame:
|
|
679
|
+
}), S.documentmouseup.dispatchEvent(r, {
|
|
680
|
+
frame: i.current,
|
|
694
681
|
keys: {
|
|
695
|
-
ctrlKey:
|
|
696
|
-
altKey:
|
|
697
|
-
shiftKey:
|
|
698
|
-
metaKey:
|
|
682
|
+
ctrlKey: g.ctrlKey,
|
|
683
|
+
altKey: g.altKey,
|
|
684
|
+
shiftKey: g.shiftKey,
|
|
685
|
+
metaKey: g.metaKey
|
|
699
686
|
}
|
|
700
687
|
});
|
|
701
|
-
}, h = (
|
|
702
|
-
const
|
|
703
|
-
ctrlKey:
|
|
704
|
-
altKey:
|
|
705
|
-
shiftKey:
|
|
706
|
-
metaKey:
|
|
707
|
-
}, T =
|
|
708
|
-
if (T && Object.entries(
|
|
688
|
+
}, h = (g) => {
|
|
689
|
+
const v = {
|
|
690
|
+
ctrlKey: g.ctrlKey,
|
|
691
|
+
altKey: g.altKey,
|
|
692
|
+
shiftKey: g.shiftKey,
|
|
693
|
+
metaKey: g.metaKey
|
|
694
|
+
}, T = l.current;
|
|
695
|
+
if (T && Object.entries(v).some(
|
|
709
696
|
([C, k]) => T.keys[C] !== k
|
|
710
697
|
)) {
|
|
711
|
-
const C = { ...T, keys:
|
|
712
|
-
|
|
698
|
+
const C = { ...T, keys: v };
|
|
699
|
+
l.current = C, S.sync_move.dispatchEvent(r, C);
|
|
713
700
|
}
|
|
714
|
-
const
|
|
715
|
-
if (
|
|
716
|
-
([C, k]) =>
|
|
701
|
+
const b = u.current;
|
|
702
|
+
if (b && Object.entries(v).some(
|
|
703
|
+
([C, k]) => b.keys[C] !== k
|
|
717
704
|
)) {
|
|
718
|
-
|
|
719
|
-
const C = { ...
|
|
720
|
-
u.current = C,
|
|
705
|
+
g.stopPropagation(), g.preventDefault();
|
|
706
|
+
const C = { ...b, keys: v };
|
|
707
|
+
u.current = C, S.sync_spanselect.dispatchEvent(
|
|
721
708
|
r,
|
|
722
709
|
C
|
|
723
710
|
);
|
|
724
711
|
}
|
|
725
|
-
}, y = (
|
|
712
|
+
}, y = (g) => {
|
|
726
713
|
m.current(
|
|
727
|
-
|
|
728
|
-
(
|
|
714
|
+
g,
|
|
715
|
+
(v, { cssX: T, cssY: b }, C) => {
|
|
729
716
|
const k = d.current;
|
|
730
|
-
if (!k || !
|
|
731
|
-
const
|
|
717
|
+
if (!k || !v.x || !v.y) return;
|
|
718
|
+
const A = i.current, P = k.xRangeCss.start, B = T, F = k.yRangeCss.start, st = b, nt = I(A, v.x.scaleId), ot = I(A, v.y.scaleId);
|
|
732
719
|
d.current = {
|
|
733
720
|
xRangeCss: { start: P, end: B },
|
|
734
|
-
yRangeCss: { start: F, end:
|
|
721
|
+
yRangeCss: { start: F, end: st }
|
|
735
722
|
};
|
|
736
|
-
let
|
|
737
|
-
const it = Math.abs(F -
|
|
738
|
-
it < 10 &&
|
|
739
|
-
const
|
|
740
|
-
scaleId:
|
|
741
|
-
from:
|
|
742
|
-
|
|
743
|
-
O(
|
|
744
|
-
|
|
723
|
+
let U = "below_threshold";
|
|
724
|
+
const it = Math.abs(F - st), ct = Math.abs(P - B);
|
|
725
|
+
it < 10 && ct < 10 ? U = "below_threshold" : it > 30 && ct > 30 ? U = "box" : it > ct ? U = "y" : U = "x";
|
|
726
|
+
const Mt = U === "x" || U === "box" ? {
|
|
727
|
+
scaleId: nt.id,
|
|
728
|
+
from: D(
|
|
729
|
+
A,
|
|
730
|
+
O(i.current, P, "css"),
|
|
731
|
+
nt.id,
|
|
745
732
|
"css"
|
|
746
733
|
),
|
|
747
|
-
to:
|
|
748
|
-
|
|
749
|
-
O(
|
|
750
|
-
|
|
734
|
+
to: D(
|
|
735
|
+
A,
|
|
736
|
+
O(i.current, B, "css"),
|
|
737
|
+
nt.id,
|
|
751
738
|
"css"
|
|
752
739
|
)
|
|
753
|
-
} : void 0,
|
|
754
|
-
scaleId:
|
|
755
|
-
from:
|
|
756
|
-
|
|
757
|
-
$(
|
|
758
|
-
|
|
740
|
+
} : void 0, Pt = U === "y" || U === "box" ? {
|
|
741
|
+
scaleId: ot.id,
|
|
742
|
+
from: D(
|
|
743
|
+
A,
|
|
744
|
+
$(i.current, F, "css"),
|
|
745
|
+
ot.id,
|
|
759
746
|
"css"
|
|
760
747
|
),
|
|
761
|
-
to:
|
|
762
|
-
|
|
763
|
-
$(
|
|
764
|
-
|
|
748
|
+
to: D(
|
|
749
|
+
A,
|
|
750
|
+
$(i.current, st, "css"),
|
|
751
|
+
ot.id,
|
|
765
752
|
"css"
|
|
766
753
|
)
|
|
767
|
-
} : void 0,
|
|
768
|
-
mode:
|
|
769
|
-
xRange:
|
|
770
|
-
yRange:
|
|
754
|
+
} : void 0, yt = {
|
|
755
|
+
mode: U,
|
|
756
|
+
xRange: Mt,
|
|
757
|
+
yRange: Pt,
|
|
771
758
|
completed: !1,
|
|
772
759
|
keys: C
|
|
773
760
|
};
|
|
774
|
-
u.current =
|
|
761
|
+
u.current = yt, S.sync_spanselect.dispatchEvent(
|
|
775
762
|
r,
|
|
776
|
-
|
|
763
|
+
yt
|
|
777
764
|
);
|
|
778
765
|
}
|
|
779
766
|
);
|
|
780
|
-
}, x = (
|
|
781
|
-
m.current(
|
|
782
|
-
if (Object.values(
|
|
783
|
-
|
|
784
|
-
const k = Math.abs(
|
|
785
|
-
|
|
786
|
-
positions:
|
|
787
|
-
keys:
|
|
788
|
-
deltaX:
|
|
789
|
-
deltaY:
|
|
767
|
+
}, x = (g) => {
|
|
768
|
+
m.current(g, (v, T, b) => {
|
|
769
|
+
if (Object.values(b).some((k) => k)) {
|
|
770
|
+
g.preventDefault();
|
|
771
|
+
const k = Math.abs(g.deltaY) > Math.abs(g.deltaX) ? g.deltaY : g.deltaX;
|
|
772
|
+
S.sync_pressandwheel.dispatchEvent(r, {
|
|
773
|
+
positions: v,
|
|
774
|
+
keys: b,
|
|
775
|
+
deltaX: g.deltaX,
|
|
776
|
+
deltaY: g.deltaY,
|
|
790
777
|
deltaAbs: k
|
|
791
778
|
});
|
|
792
779
|
}
|
|
793
780
|
});
|
|
794
781
|
};
|
|
795
|
-
document.addEventListener("mouseup",
|
|
796
|
-
const
|
|
797
|
-
return
|
|
782
|
+
document.addEventListener("mouseup", c), document.addEventListener("keydown", h), document.addEventListener("keyup", h), document.addEventListener("mousemove", y);
|
|
783
|
+
const w = o.current;
|
|
784
|
+
return w?.addEventListener("wheel", x, {
|
|
798
785
|
passive: !1
|
|
799
786
|
}), () => {
|
|
800
|
-
document.removeEventListener("mouseup",
|
|
787
|
+
document.removeEventListener("mouseup", c), document.removeEventListener("keydown", h), document.removeEventListener("keyup", h), document.removeEventListener("mousemove", y), w?.removeEventListener("wheel", x);
|
|
801
788
|
};
|
|
802
|
-
}, [
|
|
789
|
+
}, [i, r, m]), M("sync_dblclick", r, (c) => {
|
|
803
790
|
const h = z(
|
|
804
|
-
|
|
805
|
-
|
|
791
|
+
c.positions,
|
|
792
|
+
i.current
|
|
806
793
|
);
|
|
807
|
-
h &&
|
|
808
|
-
frame:
|
|
794
|
+
h && S.dblclick.dispatchEvent(a, {
|
|
795
|
+
frame: i.current,
|
|
809
796
|
pointer: h,
|
|
810
|
-
keys:
|
|
797
|
+
keys: c.keys
|
|
811
798
|
});
|
|
812
|
-
}), M("sync_click", r, (
|
|
799
|
+
}), M("sync_click", r, (c) => {
|
|
813
800
|
const h = z(
|
|
814
|
-
|
|
815
|
-
|
|
801
|
+
c.positions,
|
|
802
|
+
i.current
|
|
816
803
|
);
|
|
817
|
-
h &&
|
|
818
|
-
frame:
|
|
804
|
+
h && S.click.dispatchEvent(a, {
|
|
805
|
+
frame: i.current,
|
|
819
806
|
pointer: h,
|
|
820
|
-
keys:
|
|
807
|
+
keys: c.keys
|
|
821
808
|
});
|
|
822
|
-
}), M("sync_contextmenu", r, (
|
|
809
|
+
}), M("sync_contextmenu", r, (c) => {
|
|
823
810
|
const h = z(
|
|
824
|
-
|
|
825
|
-
|
|
811
|
+
c.positions,
|
|
812
|
+
i.current
|
|
826
813
|
);
|
|
827
|
-
h &&
|
|
828
|
-
frame:
|
|
814
|
+
h && S.contextmenu.dispatchEvent(a, {
|
|
815
|
+
frame: i.current,
|
|
829
816
|
pointer: h,
|
|
830
|
-
keys:
|
|
817
|
+
keys: c.keys
|
|
831
818
|
});
|
|
832
|
-
}), M("sync_move", r, (
|
|
833
|
-
const h =
|
|
834
|
-
|
|
835
|
-
|
|
819
|
+
}), M("sync_move", r, (c) => {
|
|
820
|
+
const h = c.positions ? z(
|
|
821
|
+
c.positions,
|
|
822
|
+
i.current
|
|
836
823
|
) : null;
|
|
837
|
-
|
|
838
|
-
frame:
|
|
824
|
+
l.current = c, S.move.dispatchEvent(a, {
|
|
825
|
+
frame: i.current,
|
|
839
826
|
pointer: h ?? null,
|
|
840
|
-
keys:
|
|
827
|
+
keys: c.keys
|
|
841
828
|
});
|
|
842
|
-
}), M("sync_mousedown", r, (
|
|
829
|
+
}), M("sync_mousedown", r, (c) => {
|
|
843
830
|
const h = z(
|
|
844
|
-
|
|
845
|
-
|
|
831
|
+
c.positions,
|
|
832
|
+
i.current
|
|
846
833
|
);
|
|
847
|
-
h &&
|
|
848
|
-
frame:
|
|
834
|
+
h && S.mousedown.dispatchEvent(a, {
|
|
835
|
+
frame: i.current,
|
|
849
836
|
pointer: h,
|
|
850
|
-
keys:
|
|
837
|
+
keys: c.keys
|
|
851
838
|
});
|
|
852
|
-
}), M("sync_mouseup", r, (
|
|
839
|
+
}), M("sync_mouseup", r, (c) => {
|
|
853
840
|
const h = z(
|
|
854
|
-
|
|
855
|
-
|
|
841
|
+
c.positions,
|
|
842
|
+
i.current
|
|
856
843
|
);
|
|
857
|
-
h &&
|
|
858
|
-
frame:
|
|
844
|
+
h && S.mouseup.dispatchEvent(a, {
|
|
845
|
+
frame: i.current,
|
|
859
846
|
pointer: h,
|
|
860
|
-
keys:
|
|
847
|
+
keys: c.keys
|
|
861
848
|
});
|
|
862
849
|
}), M(
|
|
863
850
|
"sync_pressandwheel",
|
|
864
851
|
r,
|
|
865
|
-
(
|
|
852
|
+
(c) => {
|
|
866
853
|
const h = z(
|
|
867
|
-
|
|
868
|
-
|
|
854
|
+
c.positions,
|
|
855
|
+
i.current
|
|
869
856
|
);
|
|
870
|
-
h &&
|
|
871
|
-
frame:
|
|
857
|
+
h && S.pressandwheel.dispatchEvent(a, {
|
|
858
|
+
frame: i.current,
|
|
872
859
|
pointer: h,
|
|
873
|
-
keys:
|
|
874
|
-
deltaX:
|
|
875
|
-
deltaY:
|
|
876
|
-
deltaAbs:
|
|
860
|
+
keys: c.keys,
|
|
861
|
+
deltaX: c.deltaX,
|
|
862
|
+
deltaY: c.deltaY,
|
|
863
|
+
deltaAbs: c.deltaAbs
|
|
877
864
|
});
|
|
878
865
|
}
|
|
879
|
-
), M("sync_spanselect", r, (
|
|
880
|
-
const h =
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
866
|
+
), M("sync_spanselect", r, (c) => {
|
|
867
|
+
const h = c.xRange && xt("x", c.xRange, i.current), y = c.yRange && xt("y", c.yRange, i.current), x = h?.scaled, w = y?.scaled;
|
|
868
|
+
c.completed && (d.current = null), S.spanselect.dispatchEvent(a, {
|
|
869
|
+
mode: c.mode,
|
|
870
|
+
frame: i.current,
|
|
871
|
+
completed: c.completed,
|
|
872
|
+
x: {
|
|
873
|
+
css: h && {
|
|
874
|
+
from: h.fromCSS,
|
|
875
|
+
to: h.toCSS
|
|
876
|
+
},
|
|
877
|
+
scaled: x ?? []
|
|
878
|
+
},
|
|
879
|
+
y: {
|
|
880
|
+
css: y && {
|
|
881
|
+
from: y.fromCSS,
|
|
882
|
+
to: y.toCSS
|
|
883
|
+
},
|
|
884
|
+
scaled: w ?? []
|
|
885
|
+
},
|
|
886
|
+
keys: c.keys
|
|
898
887
|
});
|
|
899
|
-
}), /* @__PURE__ */
|
|
888
|
+
}), /* @__PURE__ */ _(
|
|
900
889
|
"div",
|
|
901
890
|
{
|
|
902
|
-
ref:
|
|
891
|
+
ref: o,
|
|
903
892
|
id: "interactions",
|
|
904
893
|
className: t,
|
|
905
894
|
style: {
|
|
906
895
|
position: "absolute",
|
|
907
|
-
left:
|
|
908
|
-
top:
|
|
909
|
-
width:
|
|
910
|
-
height:
|
|
896
|
+
left: n.chartAreaCSS.x,
|
|
897
|
+
top: n.chartAreaCSS.y,
|
|
898
|
+
width: n.chartAreaCSS.width,
|
|
899
|
+
height: n.chartAreaCSS.height,
|
|
911
900
|
zIndex: 25,
|
|
912
901
|
...s
|
|
913
902
|
},
|
|
914
|
-
onDragStart: (
|
|
915
|
-
|
|
903
|
+
onDragStart: (c) => {
|
|
904
|
+
c.preventDefault();
|
|
916
905
|
},
|
|
917
|
-
onClick: (
|
|
918
|
-
f(
|
|
919
|
-
|
|
906
|
+
onClick: (c) => {
|
|
907
|
+
f(c, (h, y, x) => {
|
|
908
|
+
S.sync_click.dispatchEvent(r, {
|
|
920
909
|
positions: h,
|
|
921
910
|
keys: x
|
|
922
911
|
});
|
|
923
912
|
});
|
|
924
913
|
},
|
|
925
|
-
onMouseLeave: (
|
|
926
|
-
f(
|
|
927
|
-
|
|
914
|
+
onMouseLeave: (c) => {
|
|
915
|
+
f(c, (h, y, x) => {
|
|
916
|
+
S.sync_move.dispatchEvent(r, {
|
|
928
917
|
positions: null,
|
|
929
918
|
keys: x
|
|
930
919
|
});
|
|
931
920
|
});
|
|
932
921
|
},
|
|
933
|
-
onMouseMove: (
|
|
934
|
-
f(
|
|
935
|
-
|
|
922
|
+
onMouseMove: (c) => {
|
|
923
|
+
f(c, (h, y, x) => {
|
|
924
|
+
S.sync_move.dispatchEvent(r, {
|
|
936
925
|
positions: h,
|
|
937
926
|
keys: x
|
|
938
927
|
});
|
|
939
928
|
});
|
|
940
929
|
},
|
|
941
|
-
onMouseDown: (
|
|
942
|
-
f(
|
|
943
|
-
|
|
930
|
+
onMouseDown: (c) => {
|
|
931
|
+
f(c, (h, { cssX: y, cssY: x }, w) => {
|
|
932
|
+
S.sync_mousedown.dispatchEvent(r, {
|
|
944
933
|
positions: h,
|
|
945
|
-
keys:
|
|
934
|
+
keys: w
|
|
946
935
|
}), u.current = null, d.current = {
|
|
947
936
|
xRangeCss: { start: y, end: y },
|
|
948
937
|
yRangeCss: { start: x, end: x }
|
|
949
938
|
};
|
|
950
939
|
});
|
|
951
940
|
},
|
|
952
|
-
onMouseUp: (
|
|
953
|
-
f(
|
|
954
|
-
|
|
941
|
+
onMouseUp: (c) => {
|
|
942
|
+
f(c, (h, y, x) => {
|
|
943
|
+
S.sync_mouseup.dispatchEvent(r, {
|
|
955
944
|
positions: h,
|
|
956
945
|
keys: x
|
|
957
946
|
});
|
|
958
|
-
const
|
|
947
|
+
const w = u.current;
|
|
959
948
|
u.current = null;
|
|
960
|
-
const
|
|
961
|
-
if (d.current = null,
|
|
962
|
-
const
|
|
963
|
-
...
|
|
949
|
+
const g = d.current;
|
|
950
|
+
if (d.current = null, g && w) {
|
|
951
|
+
const v = {
|
|
952
|
+
...w,
|
|
964
953
|
keys: x,
|
|
965
954
|
completed: !0
|
|
966
955
|
};
|
|
967
|
-
|
|
956
|
+
S.sync_spanselect.dispatchEvent(
|
|
968
957
|
r,
|
|
969
|
-
|
|
958
|
+
v
|
|
970
959
|
);
|
|
971
960
|
}
|
|
972
961
|
});
|
|
973
962
|
},
|
|
974
|
-
onContextMenu: (
|
|
975
|
-
|
|
976
|
-
|
|
963
|
+
onContextMenu: (c) => {
|
|
964
|
+
c.preventDefault(), f(c, (h, y, x) => {
|
|
965
|
+
S.sync_contextmenu.dispatchEvent(r, {
|
|
977
966
|
positions: h,
|
|
978
967
|
keys: x
|
|
979
968
|
});
|
|
980
969
|
});
|
|
981
970
|
},
|
|
982
|
-
onDoubleClick: (
|
|
983
|
-
f(
|
|
984
|
-
|
|
971
|
+
onDoubleClick: (c) => {
|
|
972
|
+
f(c, (h, y, x) => {
|
|
973
|
+
S.sync_dblclick.dispatchEvent(r, {
|
|
985
974
|
positions: h,
|
|
986
975
|
keys: x
|
|
987
976
|
});
|
|
@@ -989,174 +978,174 @@ const me = Ut(({ configuration: t, children: s, style: e, className: c }, o) =>
|
|
|
989
978
|
}
|
|
990
979
|
}
|
|
991
980
|
);
|
|
992
|
-
},
|
|
993
|
-
const [
|
|
994
|
-
|
|
995
|
-
|
|
981
|
+
}, Se = ({ data: t, renderTooltip: s, xScaleId: e }) => {
|
|
982
|
+
const [o, n] = V(null);
|
|
983
|
+
mt("move", (a) => {
|
|
984
|
+
n(a);
|
|
996
985
|
});
|
|
997
|
-
const
|
|
998
|
-
if (!
|
|
986
|
+
const i = Q(() => {
|
|
987
|
+
if (!o)
|
|
999
988
|
return null;
|
|
1000
|
-
const { frame:
|
|
989
|
+
const { frame: a, pointer: r } = o, d = r?.scaled[e];
|
|
1001
990
|
if (d === void 0)
|
|
1002
991
|
return null;
|
|
1003
992
|
const u = [];
|
|
1004
|
-
let
|
|
993
|
+
let l = d;
|
|
1005
994
|
for (const p of t) {
|
|
1006
995
|
let f = null, m = 1 / 0;
|
|
1007
996
|
for (const [h, y] of p.points.entries()) {
|
|
1008
|
-
if (!
|
|
997
|
+
if (!rt(a, y.x, e) || !rt(a, y.y, p.yScaleId))
|
|
1009
998
|
continue;
|
|
1010
999
|
const x = Math.abs(y.x - d);
|
|
1011
1000
|
x < m && (m = x, f = h);
|
|
1012
1001
|
}
|
|
1013
|
-
const
|
|
1014
|
-
if (!
|
|
1002
|
+
const c = p.points[f ?? -1];
|
|
1003
|
+
if (!c || ut(a, m, e, "css") > 30) {
|
|
1015
1004
|
u.push({ seriesId: p.seriesId, y: null });
|
|
1016
1005
|
continue;
|
|
1017
1006
|
}
|
|
1018
|
-
|
|
1007
|
+
l = c.x, u.push({
|
|
1019
1008
|
seriesId: p.seriesId,
|
|
1020
|
-
y:
|
|
1009
|
+
y: c.y
|
|
1021
1010
|
});
|
|
1022
1011
|
}
|
|
1023
1012
|
return {
|
|
1024
|
-
frame:
|
|
1025
|
-
x:
|
|
1013
|
+
frame: a,
|
|
1014
|
+
x: l,
|
|
1026
1015
|
points: u
|
|
1027
1016
|
};
|
|
1028
|
-
}, [t,
|
|
1029
|
-
return s(
|
|
1030
|
-
},
|
|
1031
|
-
const [
|
|
1032
|
-
if (
|
|
1033
|
-
|
|
1034
|
-
}), !
|
|
1017
|
+
}, [t, o, e]);
|
|
1018
|
+
return s(i);
|
|
1019
|
+
}, Ce = ({ makeXStyle: t, makeXClassName: s, makeYStyle: e, makeYClassName: o }) => {
|
|
1020
|
+
const [n, i] = V(null);
|
|
1021
|
+
if (mt("move", (l) => {
|
|
1022
|
+
i(l);
|
|
1023
|
+
}), !n)
|
|
1035
1024
|
return null;
|
|
1036
|
-
const { frame:
|
|
1037
|
-
return /* @__PURE__ */
|
|
1038
|
-
/* @__PURE__ */
|
|
1025
|
+
const { frame: a, pointer: r } = n, d = O(a, r?.cssX ?? 0, "css"), u = $(a, r?.cssY ?? 0, "css");
|
|
1026
|
+
return /* @__PURE__ */ lt(_t, { children: [
|
|
1027
|
+
/* @__PURE__ */ _(
|
|
1039
1028
|
"div",
|
|
1040
1029
|
{
|
|
1041
1030
|
"data-show": !!r,
|
|
1042
|
-
className: s?.(
|
|
1031
|
+
className: s?.(n),
|
|
1043
1032
|
style: {
|
|
1044
1033
|
position: "absolute",
|
|
1045
1034
|
left: 0,
|
|
1046
|
-
top:
|
|
1047
|
-
height:
|
|
1035
|
+
top: a.chartAreaCSS.y,
|
|
1036
|
+
height: a.chartAreaCSS.height,
|
|
1048
1037
|
borderColor: "red",
|
|
1049
1038
|
borderLeftWidth: "1px",
|
|
1050
1039
|
borderLeftStyle: "solid",
|
|
1051
1040
|
pointerEvents: "none",
|
|
1052
1041
|
opacity: r ? 1 : 0,
|
|
1053
1042
|
transform: `translateX(${d}px)`,
|
|
1054
|
-
...t?.(
|
|
1043
|
+
...t?.(n)
|
|
1055
1044
|
}
|
|
1056
1045
|
}
|
|
1057
1046
|
),
|
|
1058
|
-
/* @__PURE__ */
|
|
1047
|
+
/* @__PURE__ */ _(
|
|
1059
1048
|
"div",
|
|
1060
1049
|
{
|
|
1061
|
-
className:
|
|
1050
|
+
className: o?.(n),
|
|
1062
1051
|
"data-show": !!r,
|
|
1063
1052
|
style: {
|
|
1064
1053
|
position: "absolute",
|
|
1065
1054
|
top: 0,
|
|
1066
1055
|
height: 0,
|
|
1067
1056
|
borderTop: "solid 1px red",
|
|
1068
|
-
left:
|
|
1069
|
-
width:
|
|
1057
|
+
left: a.chartAreaCSS.x,
|
|
1058
|
+
width: a.chartAreaCSS.width,
|
|
1070
1059
|
pointerEvents: "none",
|
|
1071
1060
|
opacity: r ? 1 : 0,
|
|
1072
1061
|
transform: `translateY(${u}px)`,
|
|
1073
|
-
...e?.(
|
|
1062
|
+
...e?.(n)
|
|
1074
1063
|
}
|
|
1075
1064
|
}
|
|
1076
1065
|
)
|
|
1077
1066
|
] });
|
|
1078
|
-
},
|
|
1079
|
-
const [e,
|
|
1080
|
-
|
|
1081
|
-
|
|
1067
|
+
}, Te = ({ makeClassName: t, makeStyle: s }) => {
|
|
1068
|
+
const [e, o] = V(null);
|
|
1069
|
+
mt("spanselect", (i) => {
|
|
1070
|
+
o(i.mode === "below_threshold" || i.completed ? null : i);
|
|
1082
1071
|
});
|
|
1083
|
-
const
|
|
1084
|
-
if (!e)
|
|
1072
|
+
const n = Q(() => {
|
|
1073
|
+
if (!e || e.mode === "below_threshold")
|
|
1085
1074
|
return null;
|
|
1086
|
-
const
|
|
1075
|
+
const i = O(
|
|
1087
1076
|
e.frame,
|
|
1088
|
-
e.x.
|
|
1077
|
+
e.x.css?.from ?? -1 / 0,
|
|
1089
1078
|
"css"
|
|
1090
|
-
),
|
|
1079
|
+
), a = O(
|
|
1091
1080
|
e.frame,
|
|
1092
|
-
e.x.
|
|
1081
|
+
e.x.css?.to ?? 1 / 0,
|
|
1093
1082
|
"css"
|
|
1094
1083
|
), r = $(
|
|
1095
1084
|
e.frame,
|
|
1096
|
-
e.y.
|
|
1085
|
+
e.y.css?.from ?? -1 / 0,
|
|
1097
1086
|
"css"
|
|
1098
1087
|
), d = $(
|
|
1099
1088
|
e.frame,
|
|
1100
|
-
e.y.
|
|
1089
|
+
e.y.css?.to ?? 1 / 0,
|
|
1101
1090
|
"css"
|
|
1102
|
-
), u = Math.min(
|
|
1103
|
-
return { leftPx: u, topPx:
|
|
1091
|
+
), u = Math.min(i, a), l = Math.min(r, d), p = Math.abs(a - i), f = Math.abs(d - r);
|
|
1092
|
+
return { leftPx: u, topPx: l, widthPx: p, heightPx: f };
|
|
1104
1093
|
}, [e]);
|
|
1105
|
-
return /* @__PURE__ */
|
|
1094
|
+
return /* @__PURE__ */ _(
|
|
1106
1095
|
"div",
|
|
1107
1096
|
{
|
|
1108
1097
|
className: e ? t?.(e) : void 0,
|
|
1109
1098
|
style: {
|
|
1110
1099
|
position: "absolute",
|
|
1111
1100
|
visibility: e ? "visible" : "hidden",
|
|
1112
|
-
left: `${
|
|
1113
|
-
top: `${
|
|
1114
|
-
width: `${
|
|
1115
|
-
height: `${
|
|
1101
|
+
left: `${n?.leftPx ?? 0}px`,
|
|
1102
|
+
top: `${n?.topPx ?? 0}px`,
|
|
1103
|
+
width: `${n?.widthPx ?? 0}px`,
|
|
1104
|
+
height: `${n?.heightPx ?? 0}px`,
|
|
1116
1105
|
pointerEvents: "none",
|
|
1117
1106
|
...e ? s?.(e) : void 0
|
|
1118
1107
|
}
|
|
1119
1108
|
}
|
|
1120
1109
|
);
|
|
1121
|
-
},
|
|
1122
|
-
const
|
|
1123
|
-
return
|
|
1110
|
+
}, ke = ({ style: t, children: s, scaleId: e, ...o }) => {
|
|
1111
|
+
const n = ht((i) => i.getScale(e)?.axis);
|
|
1112
|
+
return n ? /* @__PURE__ */ _(
|
|
1124
1113
|
"div",
|
|
1125
1114
|
{
|
|
1126
1115
|
style: {
|
|
1127
1116
|
position: "absolute",
|
|
1128
1117
|
backgroundColor: "#0000ff11",
|
|
1129
|
-
left:
|
|
1130
|
-
top:
|
|
1131
|
-
height:
|
|
1132
|
-
width:
|
|
1118
|
+
left: n.cssRect.x,
|
|
1119
|
+
top: n.cssRect.y,
|
|
1120
|
+
height: n.cssRect.height,
|
|
1121
|
+
width: n.cssRect.width,
|
|
1133
1122
|
...t
|
|
1134
1123
|
},
|
|
1135
|
-
...
|
|
1124
|
+
...o,
|
|
1136
1125
|
children: s
|
|
1137
1126
|
}
|
|
1138
1127
|
) : null;
|
|
1139
|
-
},
|
|
1128
|
+
}, Tt = 60, jt = 30, kt = "UTC", Ht = "en-GB", Ee = ({
|
|
1140
1129
|
space: t,
|
|
1141
1130
|
formatter: s
|
|
1142
|
-
} = {}) => (e,
|
|
1143
|
-
const { min:
|
|
1144
|
-
|
|
1131
|
+
} = {}) => (e, o) => {
|
|
1132
|
+
const { min: n, max: i } = e, a = [], r = window.devicePixelRatio || 1, d = (t ?? (e.origin === "x" ? Tt : jt)) * r, u = Lt(
|
|
1133
|
+
o,
|
|
1145
1134
|
d,
|
|
1146
1135
|
e.id,
|
|
1147
1136
|
"canvas"
|
|
1148
|
-
),
|
|
1149
|
-
let p =
|
|
1150
|
-
for (; p <=
|
|
1151
|
-
|
|
1152
|
-
return (s ??
|
|
1153
|
-
},
|
|
1137
|
+
), l = W.find((f) => f > u) ?? 1;
|
|
1138
|
+
let p = n % l < Number.EPSILON ? n : n + l - n % l;
|
|
1139
|
+
for (; p <= i; )
|
|
1140
|
+
a.push(p), p += l;
|
|
1141
|
+
return (s ?? Wt)(a);
|
|
1142
|
+
}, Wt = (t) => {
|
|
1154
1143
|
const s = Math.max(0, Math.ceil(-Math.log10(t[1] - t[0])));
|
|
1155
1144
|
return t.map((e) => ({ value: e, label: e.toFixed(s) }));
|
|
1156
1145
|
}, W = [];
|
|
1157
1146
|
for (let t = -12; t <= 12; t++)
|
|
1158
1147
|
W.push(1 * 10 ** t), W.push(2 * 10 ** t), W.push(5 * 10 ** t);
|
|
1159
|
-
const
|
|
1148
|
+
const qt = 1, Et = 1e3 * qt, pt = 60 * Et, tt = 60 * pt, et = 24 * tt, Gt = 30 * et, Zt = 365 * et, Jt = [
|
|
1160
1149
|
// second divisors
|
|
1161
1150
|
[1, "milliseconds"],
|
|
1162
1151
|
[2, "milliseconds"],
|
|
@@ -1214,49 +1203,49 @@ const Gt = 1, Mt = 1e3 * Gt, yt = 60 * Mt, tt = 60 * yt, st = 24 * tt, Zt = 30 *
|
|
|
1214
1203
|
case "milliseconds":
|
|
1215
1204
|
return s;
|
|
1216
1205
|
case "seconds":
|
|
1217
|
-
return s *
|
|
1206
|
+
return s * Et;
|
|
1218
1207
|
case "minutes":
|
|
1219
|
-
return s *
|
|
1208
|
+
return s * pt;
|
|
1220
1209
|
case "hours":
|
|
1221
1210
|
return s * tt;
|
|
1222
1211
|
case "days":
|
|
1223
|
-
return s *
|
|
1212
|
+
return s * et;
|
|
1224
1213
|
case "months":
|
|
1225
|
-
return s *
|
|
1214
|
+
return s * Gt;
|
|
1226
1215
|
case "years":
|
|
1227
|
-
return s *
|
|
1216
|
+
return s * Zt;
|
|
1228
1217
|
}
|
|
1229
|
-
},
|
|
1218
|
+
}, Qt = (t, s) => {
|
|
1230
1219
|
const e = new Date(t);
|
|
1231
1220
|
return e.setUTCMilliseconds(e.getUTCMilliseconds() + s), e.getTime();
|
|
1232
|
-
},
|
|
1221
|
+
}, te = (t, s) => {
|
|
1233
1222
|
const e = new Date(t);
|
|
1234
1223
|
return e.setUTCSeconds(e.getUTCSeconds() + s), e.getTime();
|
|
1235
|
-
},
|
|
1224
|
+
}, ee = (t, s) => {
|
|
1236
1225
|
const e = new Date(t);
|
|
1237
1226
|
return e.setUTCMinutes(e.getUTCMinutes() + s), e.getTime();
|
|
1238
|
-
},
|
|
1227
|
+
}, se = (t, s) => {
|
|
1239
1228
|
const e = new Date(t);
|
|
1240
1229
|
return e.setUTCHours(e.getUTCHours() + s), e.getTime();
|
|
1241
|
-
},
|
|
1230
|
+
}, ne = (t, s) => {
|
|
1242
1231
|
const e = new Date(t);
|
|
1243
1232
|
return e.setUTCDate(e.getUTCDate() + s), e.getTime();
|
|
1244
1233
|
}, gt = (t, s) => {
|
|
1245
1234
|
const e = new Date(t);
|
|
1246
1235
|
return e.setUTCMonth(e.getUTCMonth() + s), e.getTime();
|
|
1247
1236
|
}, K = (t, s) => {
|
|
1248
|
-
const [e,
|
|
1249
|
-
switch (
|
|
1237
|
+
const [e, o] = s;
|
|
1238
|
+
switch (o) {
|
|
1250
1239
|
case "milliseconds":
|
|
1251
|
-
return
|
|
1240
|
+
return Qt(t, e);
|
|
1252
1241
|
case "seconds":
|
|
1253
|
-
return
|
|
1242
|
+
return te(t, e);
|
|
1254
1243
|
case "minutes":
|
|
1255
|
-
return
|
|
1244
|
+
return ee(t, e);
|
|
1256
1245
|
case "hours":
|
|
1257
|
-
return
|
|
1246
|
+
return se(t, e);
|
|
1258
1247
|
case "days":
|
|
1259
|
-
return
|
|
1248
|
+
return ne(t, e);
|
|
1260
1249
|
case "months":
|
|
1261
1250
|
return gt(t, e);
|
|
1262
1251
|
case "years":
|
|
@@ -1264,37 +1253,37 @@ const Gt = 1, Mt = 1e3 * Gt, yt = 60 * Mt, tt = 60 * yt, st = 24 * tt, Zt = 30 *
|
|
|
1264
1253
|
}
|
|
1265
1254
|
};
|
|
1266
1255
|
function G(t, s) {
|
|
1267
|
-
const e = new Date(t),
|
|
1268
|
-
return (
|
|
1256
|
+
const e = new Date(t), o = new Date(e.toLocaleString("en-US", { timeZone: s })), n = new Date(e.toLocaleString("en-US", { timeZone: "UTC" }));
|
|
1257
|
+
return (o.getTime() - n.getTime()) / (3600 * 1e3);
|
|
1269
1258
|
}
|
|
1270
|
-
const
|
|
1271
|
-
const [
|
|
1272
|
-
let
|
|
1273
|
-
const
|
|
1274
|
-
|
|
1259
|
+
const oe = (t, s, e = "UTC") => {
|
|
1260
|
+
const [o, n] = s;
|
|
1261
|
+
let i = new Date(t);
|
|
1262
|
+
const a = () => {
|
|
1263
|
+
i.setUTCHours(-G(i, e), 0, 0, 0);
|
|
1275
1264
|
};
|
|
1276
|
-
switch (
|
|
1265
|
+
switch (n) {
|
|
1277
1266
|
case "milliseconds":
|
|
1278
|
-
|
|
1279
|
-
Math.ceil(
|
|
1267
|
+
i.setUTCMilliseconds(
|
|
1268
|
+
Math.ceil(i.getUTCMilliseconds() / o) * o
|
|
1280
1269
|
);
|
|
1281
1270
|
break;
|
|
1282
1271
|
case "seconds":
|
|
1283
|
-
|
|
1284
|
-
Math.ceil(
|
|
1272
|
+
i.setUTCSeconds(
|
|
1273
|
+
Math.ceil(i.getUTCSeconds() / o) * o,
|
|
1285
1274
|
0
|
|
1286
1275
|
);
|
|
1287
1276
|
break;
|
|
1288
1277
|
case "minutes":
|
|
1289
|
-
|
|
1290
|
-
Math.ceil(
|
|
1278
|
+
i.setUTCMinutes(
|
|
1279
|
+
Math.ceil(i.getTime() % tt / pt / o) * o,
|
|
1291
1280
|
0,
|
|
1292
1281
|
0
|
|
1293
1282
|
);
|
|
1294
1283
|
break;
|
|
1295
1284
|
case "hours":
|
|
1296
|
-
|
|
1297
|
-
Math.ceil(
|
|
1285
|
+
i.setUTCHours(
|
|
1286
|
+
Math.ceil(i.getTime() % et / tt / o) * o,
|
|
1298
1287
|
0,
|
|
1299
1288
|
0,
|
|
1300
1289
|
0
|
|
@@ -1303,20 +1292,20 @@ const ce = (t, s, e = "UTC") => {
|
|
|
1303
1292
|
case "days":
|
|
1304
1293
|
case "months":
|
|
1305
1294
|
case "years":
|
|
1306
|
-
|
|
1295
|
+
n === "months" ? i.setUTCDate(1) : n === "years" && i.setUTCMonth(0, 1), a(), i.getTime() < t && (i = new Date(K(i, [1, n])));
|
|
1307
1296
|
break;
|
|
1308
1297
|
}
|
|
1309
|
-
return
|
|
1310
|
-
},
|
|
1311
|
-
timeZone: t =
|
|
1312
|
-
space: s =
|
|
1298
|
+
return i.getTime();
|
|
1299
|
+
}, Me = ({
|
|
1300
|
+
timeZone: t = kt,
|
|
1301
|
+
space: s = Tt,
|
|
1313
1302
|
formatter: e,
|
|
1314
|
-
locale:
|
|
1315
|
-
showTimezone:
|
|
1316
|
-
} = {}) => (
|
|
1317
|
-
const { min: r, max: d } =
|
|
1318
|
-
(
|
|
1319
|
-
) ?? [1, "milliseconds"],
|
|
1303
|
+
locale: o,
|
|
1304
|
+
showTimezone: n
|
|
1305
|
+
} = {}) => (i, a) => {
|
|
1306
|
+
const { min: r, max: d } = i, u = Math.floor(a.chartAreaCanvasPX.width / s) + 1, p = (d - r) / u, [f, m] = Jt.find(
|
|
1307
|
+
(w) => q(w) >= p
|
|
1308
|
+
) ?? [1, "milliseconds"], c = oe(r, [f, m], t), h = G(c, t), y = [c];
|
|
1320
1309
|
let x;
|
|
1321
1310
|
for (; ; ) {
|
|
1322
1311
|
switch (m) {
|
|
@@ -1324,31 +1313,31 @@ const ce = (t, s, e = "UTC") => {
|
|
|
1324
1313
|
case "seconds":
|
|
1325
1314
|
case "minutes":
|
|
1326
1315
|
case "hours": {
|
|
1327
|
-
x = K(
|
|
1316
|
+
x = K(c, [y.length * f, m]);
|
|
1328
1317
|
break;
|
|
1329
1318
|
}
|
|
1330
1319
|
case "days": {
|
|
1331
|
-
const
|
|
1320
|
+
const w = K(c, [
|
|
1332
1321
|
y.length * f,
|
|
1333
1322
|
m
|
|
1334
1323
|
]);
|
|
1335
|
-
x = K(
|
|
1336
|
-
h - G(
|
|
1324
|
+
x = K(w, [
|
|
1325
|
+
h - G(w, t),
|
|
1337
1326
|
"hours"
|
|
1338
1327
|
]);
|
|
1339
1328
|
break;
|
|
1340
1329
|
}
|
|
1341
1330
|
case "months":
|
|
1342
1331
|
case "years": {
|
|
1343
|
-
const
|
|
1344
|
-
K(K(
|
|
1332
|
+
const w = K(
|
|
1333
|
+
K(K(c, [h, "hours"]), [
|
|
1345
1334
|
y.length * f,
|
|
1346
1335
|
m
|
|
1347
1336
|
]),
|
|
1348
1337
|
[-h, "hours"]
|
|
1349
1338
|
);
|
|
1350
|
-
x = K(
|
|
1351
|
-
h - G(
|
|
1339
|
+
x = K(w, [
|
|
1340
|
+
h - G(w, t),
|
|
1352
1341
|
"hours"
|
|
1353
1342
|
]);
|
|
1354
1343
|
break;
|
|
@@ -1359,16 +1348,16 @@ const ce = (t, s, e = "UTC") => {
|
|
|
1359
1348
|
y.push(x);
|
|
1360
1349
|
}
|
|
1361
1350
|
return (e ?? ie({
|
|
1362
|
-
locale:
|
|
1363
|
-
showTimezone:
|
|
1351
|
+
locale: o,
|
|
1352
|
+
showTimezone: n,
|
|
1364
1353
|
timeZone: t
|
|
1365
1354
|
}))(y);
|
|
1366
|
-
},
|
|
1367
|
-
timeZone: t =
|
|
1368
|
-
locale: s =
|
|
1355
|
+
}, X = (t, s, e) => t.find((o) => o.type === e)?.value !== s.find((o) => o.type === e)?.value, ie = ({
|
|
1356
|
+
timeZone: t = kt,
|
|
1357
|
+
locale: s = Ht,
|
|
1369
1358
|
showTimezone: e = !0
|
|
1370
1359
|
}) => {
|
|
1371
|
-
const
|
|
1360
|
+
const o = new Intl.DateTimeFormat(s, {
|
|
1372
1361
|
year: "numeric",
|
|
1373
1362
|
day: "numeric",
|
|
1374
1363
|
month: "short",
|
|
@@ -1380,72 +1369,70 @@ const ce = (t, s, e = "UTC") => {
|
|
|
1380
1369
|
timeZoneName: "short",
|
|
1381
1370
|
timeZone: t
|
|
1382
1371
|
});
|
|
1383
|
-
return (
|
|
1384
|
-
const
|
|
1385
|
-
return
|
|
1386
|
-
const f = p[
|
|
1387
|
-
if (
|
|
1388
|
-
const
|
|
1389
|
-
let
|
|
1372
|
+
return (n) => {
|
|
1373
|
+
const i = n[1] - n[0], a = i < q([1, "days"]), r = i < q([1, "minutes"]), d = i < q([1, "seconds"]);
|
|
1374
|
+
return n.map((u) => ({ value: u, label: o.formatToParts(new Date(u)) })).map((u, l, p) => {
|
|
1375
|
+
const f = p[l - 1], m = l === 0 || X(u.label, f.label, "year"), c = l === 0 || X(u.label, f.label, "day"), h = l === 0 || X(u.label, f.label, "month"), y = l === 0 || X(u.label, f.label, "hour"), x = l === 0 || X(u.label, f.label, "timeZoneName"), w = l === 0 || X(u.label, f.label, "minute"), g = l === 0 || X(u.label, f.label, "second"), v = l === 0 || X(u.label, f.label, "fractionalSecond"), T = [];
|
|
1376
|
+
if (a && (y || w || x || g || v)) {
|
|
1377
|
+
const b = u.label.find((P) => P.type === "hour")?.value, C = u.label.find((P) => P.type === "minute")?.value, k = u.label.find((P) => P.type === "timeZoneName")?.value;
|
|
1378
|
+
let A = "";
|
|
1390
1379
|
if (r) {
|
|
1391
1380
|
const P = u.label.find((F) => F.type === "second")?.value, B = u.label.find(
|
|
1392
1381
|
(F) => F.type === "fractionalSecond"
|
|
1393
1382
|
)?.value;
|
|
1394
|
-
|
|
1383
|
+
A = `:${P}` + (d ? `.${B}` : "");
|
|
1395
1384
|
}
|
|
1396
1385
|
T.push(
|
|
1397
|
-
`${
|
|
1386
|
+
`${b}:${C}${A}` + (e && x ? ` ${k}` : "")
|
|
1398
1387
|
);
|
|
1399
1388
|
}
|
|
1400
|
-
return (
|
|
1389
|
+
return (c || h) && T.push(
|
|
1401
1390
|
[
|
|
1402
|
-
u.label.find((
|
|
1403
|
-
|
|
1391
|
+
u.label.find((b) => b.type === "month")?.value,
|
|
1392
|
+
c && u.label.find((b) => b.type === "day")?.value
|
|
1404
1393
|
].filter(Boolean).join(" ")
|
|
1405
|
-
), m && T.push(u.label.find((
|
|
1394
|
+
), m && T.push(u.label.find((b) => b.type === "year")?.value), {
|
|
1406
1395
|
value: u.value,
|
|
1407
|
-
label: T.filter((
|
|
1396
|
+
label: T.filter((b) => b).join(`
|
|
1408
1397
|
`)
|
|
1409
1398
|
};
|
|
1410
1399
|
});
|
|
1411
1400
|
};
|
|
1412
1401
|
};
|
|
1413
1402
|
export {
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1403
|
+
ye as AreaPlot,
|
|
1404
|
+
ke as AxisOverlay,
|
|
1405
|
+
pe as BarPlot,
|
|
1406
|
+
he as CanPlot,
|
|
1407
|
+
be as ChartAreaInteractions,
|
|
1408
|
+
Ce as Crosshair,
|
|
1409
|
+
fe as LinePlot,
|
|
1410
|
+
me as ScatterPlot,
|
|
1411
|
+
Te as SelectBox,
|
|
1412
|
+
xe as SparklinePlot,
|
|
1413
|
+
Se as TooltipsX,
|
|
1414
|
+
ve as XTicks,
|
|
1415
|
+
we as YTicks,
|
|
1427
1416
|
R as applyStyles,
|
|
1428
1417
|
j as clamp,
|
|
1429
|
-
|
|
1418
|
+
de as clampUnfit,
|
|
1430
1419
|
O as clampXPosToChartArea,
|
|
1431
1420
|
$ as clampYPosToChartArea,
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
he as isYScale,
|
|
1437
|
-
Pe as makeLinearTicks,
|
|
1421
|
+
Wt as defaultNumericalTicksFormatter,
|
|
1422
|
+
ue as findClosestIndex,
|
|
1423
|
+
I as getScale,
|
|
1424
|
+
Ee as makeLinearTicks,
|
|
1438
1425
|
ie as makeTimeTickFormat,
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1426
|
+
Me as makeTimeTicks,
|
|
1427
|
+
D as posToVal,
|
|
1428
|
+
Lt as pxToValDistance,
|
|
1429
|
+
le as sum,
|
|
1443
1430
|
Y as useDrawEffect,
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1431
|
+
ht as useFrameState,
|
|
1432
|
+
mt as useInteractionsEvent,
|
|
1433
|
+
ge as useXPositioned,
|
|
1434
|
+
rt as valFits,
|
|
1448
1435
|
H as valToPos,
|
|
1449
|
-
|
|
1436
|
+
ut as valToPxDistance
|
|
1450
1437
|
};
|
|
1451
1438
|
//# sourceMappingURL=canplot.mjs.map
|