@wick-charts/vue 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +554 -132
- package/dist/index.js +143 -152
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { inject as xe, defineComponent as Z, ref as tt, onMounted as q, onUnmounted as et, watch as st, createCommentVNode as K, shallowRef as
|
|
1
|
+
import { inject as xe, defineComponent as Z, ref as tt, onMounted as q, onUnmounted as et, watch as st, createCommentVNode as K, shallowRef as le, provide as he, computed as P, openBlock as R, createElementBlock as T, normalizeStyle as z, renderSlot as Oe, unref as W, Fragment as O, createElementVNode as _, toDisplayString as I, renderList as ct, createVNode as $e } from "vue";
|
|
2
2
|
var Xe = Object.defineProperty, Ce = (r) => {
|
|
3
3
|
throw TypeError(r);
|
|
4
|
-
}, He = (r, t, e) => t in r ? Xe(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, x = (r, t, e) => He(r, typeof t != "symbol" ? t + "" : t, e),
|
|
4
|
+
}, He = (r, t, e) => t in r ? Xe(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, x = (r, t, e) => He(r, typeof t != "symbol" ? t + "" : t, e), jt = (r, t, e) => t.has(r) || Ce("Cannot " + e), h = (r, t, e) => (jt(r, t, "read from private field"), e ? e.call(r) : t.get(r)), A = (r, t, e) => t.has(r) ? Ce("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(r) : t.set(r, e), M = (r, t, e, o) => (jt(r, t, "write to private field"), t.set(r, e), e), It = (r, t, e) => (jt(r, t, "access private method"), e), ce = (r, t, e, o) => ({
|
|
5
5
|
set _(i) {
|
|
6
6
|
M(r, t, i);
|
|
7
7
|
},
|
|
@@ -29,13 +29,13 @@ class Pt {
|
|
|
29
29
|
this.listeners.clear();
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
function
|
|
32
|
+
function de(r, t, e) {
|
|
33
33
|
const o = document.createElement("canvas");
|
|
34
34
|
return o.style.position = "absolute", o.style.inset = "0", o.style.width = "100%", o.style.height = "100%", o.style.display = "block", o.style.zIndex = String(t), r.appendChild(o), o;
|
|
35
35
|
}
|
|
36
36
|
class Ge extends Pt {
|
|
37
37
|
constructor(t) {
|
|
38
|
-
super(), x(this, "mainCanvas"), x(this, "mainCtx"), x(this, "overlayCanvas"), x(this, "overlayCtx"), x(this, "resizeObserver"), x(this, "_size"), x(this, "supportsDevicePixelContentBox", !1), this.mainCanvas =
|
|
38
|
+
super(), x(this, "mainCanvas"), x(this, "mainCtx"), x(this, "overlayCanvas"), x(this, "overlayCtx"), x(this, "resizeObserver"), x(this, "_size"), x(this, "supportsDevicePixelContentBox", !1), this.mainCanvas = de(t, 0), this.overlayCanvas = de(t, 1), this.mainCtx = this.mainCanvas.getContext("2d", { alpha: !0 }), this.overlayCtx = this.overlayCanvas.getContext("2d", { alpha: !0 });
|
|
39
39
|
const e = window.devicePixelRatio || 1;
|
|
40
40
|
this._size = {
|
|
41
41
|
media: { width: 0, height: 0 },
|
|
@@ -146,10 +146,10 @@ function Je(r, t, e, o, i) {
|
|
|
146
146
|
}
|
|
147
147
|
a.stroke(), a.setLineDash([]);
|
|
148
148
|
}
|
|
149
|
-
function
|
|
149
|
+
function ue(r, t, e) {
|
|
150
150
|
return r + (t - r) * e;
|
|
151
151
|
}
|
|
152
|
-
function
|
|
152
|
+
function Ht(r, t, e) {
|
|
153
153
|
let o = 0, i = r.length - 1;
|
|
154
154
|
for (; o <= i; ) {
|
|
155
155
|
const a = o + i >>> 1, s = e(r[a]);
|
|
@@ -159,7 +159,7 @@ function Xt(r, t, e) {
|
|
|
159
159
|
}
|
|
160
160
|
return o;
|
|
161
161
|
}
|
|
162
|
-
class
|
|
162
|
+
class Kt extends Pt {
|
|
163
163
|
constructor() {
|
|
164
164
|
super(...arguments), x(this, "data", []), x(this, "_visible", !0), x(this, "cachedRange", null), x(this, "cachedResult", []);
|
|
165
165
|
}
|
|
@@ -194,7 +194,7 @@ class jt extends Pt {
|
|
|
194
194
|
getVisibleData(t, e) {
|
|
195
195
|
if (this.data.length === 0) return [];
|
|
196
196
|
if (this.cachedRange && this.cachedRange.from === t && this.cachedRange.to === e) return this.cachedResult;
|
|
197
|
-
const o = Math.max(0,
|
|
197
|
+
const o = Math.max(0, Ht(this.data, t, (a) => a.time) - 1), i = Math.min(this.data.length, Ht(this.data, e, (a) => a.time) + 1);
|
|
198
198
|
return this.cachedResult = this.data.slice(o, i), this.cachedRange = { from: t, to: e }, this.cachedResult;
|
|
199
199
|
}
|
|
200
200
|
first() {
|
|
@@ -211,7 +211,7 @@ class jt extends Pt {
|
|
|
211
211
|
}
|
|
212
212
|
findNearest(t, e) {
|
|
213
213
|
if (this.data.length === 0) return null;
|
|
214
|
-
const o =
|
|
214
|
+
const o = Ht(this.data, t, (s) => s.time);
|
|
215
215
|
let i = null, a = e;
|
|
216
216
|
for (let s = Math.max(0, o - 1); s <= Math.min(this.data.length - 1, o + 1); s++) {
|
|
217
217
|
const n = Math.abs(this.data[s].time - t);
|
|
@@ -304,7 +304,7 @@ class Qe extends Pt {
|
|
|
304
304
|
this.canvas.removeEventListener("wheel", this.onWheel), this.canvas.removeEventListener("mousedown", this.onMouseDown), this.canvas.removeEventListener("mousemove", this.onMouseMove), this.canvas.removeEventListener("mouseup", this.onMouseUp), this.canvas.removeEventListener("mouseleave", this.onMouseLeave), this.canvas.removeEventListener("dblclick", this.onDblClick), this.canvas.removeEventListener("touchstart", this.onTouchStart), this.canvas.removeEventListener("touchmove", this.onTouchMove), this.canvas.removeEventListener("touchend", this.onTouchEnd), this.removeAllListeners();
|
|
305
305
|
}
|
|
306
306
|
}
|
|
307
|
-
class
|
|
307
|
+
class fe {
|
|
308
308
|
constructor(t) {
|
|
309
309
|
x(this, "dirty", !1), x(this, "rafId", null), x(this, "callback"), x(this, "render", (e) => {
|
|
310
310
|
this.dirty = !1, this.rafId = null, this.callback(e);
|
|
@@ -318,14 +318,14 @@ class ue {
|
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
const xt = 6e4, vt = 36e5, ft = 864e5;
|
|
321
|
-
function
|
|
321
|
+
function Yt(r) {
|
|
322
322
|
return r instanceof Date ? r.getTime() : r;
|
|
323
323
|
}
|
|
324
324
|
function Ze(r) {
|
|
325
|
-
return r.length === 0 ||
|
|
325
|
+
return r.length === 0 || !r.some((t) => t.time instanceof Date) ? r : r.map((t) => ({ ...t, time: Yt(t.time) }));
|
|
326
326
|
}
|
|
327
327
|
function to(r) {
|
|
328
|
-
return r.length === 0 ||
|
|
328
|
+
return r.length === 0 || !r.some((t) => t.time instanceof Date) ? r : r.map((t) => ({ ...t, time: Yt(t.time) }));
|
|
329
329
|
}
|
|
330
330
|
function eo(r) {
|
|
331
331
|
if (r.length < 2) return ft;
|
|
@@ -334,7 +334,7 @@ function eo(r) {
|
|
|
334
334
|
t.push(r[e] - r[e - 1]);
|
|
335
335
|
return t.sort((e, o) => e - o), t[Math.floor(t.length / 2)];
|
|
336
336
|
}
|
|
337
|
-
function
|
|
337
|
+
function Ut(r, t) {
|
|
338
338
|
const e = new Date(r);
|
|
339
339
|
return t >= ft ? e.toLocaleDateString("en-US", { month: "short", day: "numeric" }) : t >= vt ? e.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", hour12: !1 }) : e.toLocaleTimeString("en-US", {
|
|
340
340
|
hour: "2-digit",
|
|
@@ -396,7 +396,7 @@ class ao {
|
|
|
396
396
|
return this.width;
|
|
397
397
|
}
|
|
398
398
|
}
|
|
399
|
-
const
|
|
399
|
+
const Gt = [
|
|
400
400
|
1e-4,
|
|
401
401
|
2e-4,
|
|
402
402
|
5e-4,
|
|
@@ -449,8 +449,8 @@ class so {
|
|
|
449
449
|
niceTickValues() {
|
|
450
450
|
if (this.max <= this.min) return [];
|
|
451
451
|
const t = (this.max - this.min) / this.height * 50;
|
|
452
|
-
let e =
|
|
453
|
-
for (const a of
|
|
452
|
+
let e = Gt[Gt.length - 1];
|
|
453
|
+
for (const a of Gt)
|
|
454
454
|
if (a >= t) {
|
|
455
455
|
e = a;
|
|
456
456
|
break;
|
|
@@ -479,7 +479,7 @@ const ro = {
|
|
|
479
479
|
};
|
|
480
480
|
class nt {
|
|
481
481
|
constructor(t, e) {
|
|
482
|
-
x(this, "stores"), x(this, "options"), this.stores = Array.from({ length: t }, () => new
|
|
482
|
+
x(this, "stores"), x(this, "options"), this.stores = Array.from({ length: t }, () => new Kt()), this.options = { ...ro, ...e };
|
|
483
483
|
}
|
|
484
484
|
/** For chart compatibility — returns first store */
|
|
485
485
|
get store() {
|
|
@@ -595,25 +595,25 @@ class nt {
|
|
|
595
595
|
const f = i.timeToBitmapX(g);
|
|
596
596
|
let y = 0, F = 0;
|
|
597
597
|
for (let k = 0; k < C; k++) {
|
|
598
|
-
const
|
|
599
|
-
|
|
598
|
+
const D = p[k];
|
|
599
|
+
D > 0 ? y += D : F += D;
|
|
600
600
|
}
|
|
601
601
|
if (e) {
|
|
602
|
-
let k = 0,
|
|
602
|
+
let k = 0, D = 0;
|
|
603
603
|
for (const L of p)
|
|
604
|
-
L > 0 ? k += L :
|
|
604
|
+
L > 0 ? k += L : D += L;
|
|
605
605
|
if (m > 0 && k > 0) {
|
|
606
606
|
const L = y / k * 100, N = (y + m) / k * 100, $ = a.valueToBitmapY(N), Q = a.valueToBitmapY(L), G = Math.max(1, Q - $);
|
|
607
607
|
this.fillBar(n, f - u, $, d, G, w);
|
|
608
|
-
} else if (m < 0 &&
|
|
609
|
-
const L = F /
|
|
608
|
+
} else if (m < 0 && D < 0) {
|
|
609
|
+
const L = F / D * -100, N = (F + m) / D * -100, $ = a.valueToBitmapY(L), Q = a.valueToBitmapY(N), G = Math.max(1, Q - $);
|
|
610
610
|
n.fillStyle = w, n.fillRect(f - u, $, d, G);
|
|
611
611
|
}
|
|
612
612
|
} else if (m > 0) {
|
|
613
|
-
const k = a.valueToBitmapY(y + m),
|
|
613
|
+
const k = a.valueToBitmapY(y + m), D = a.valueToBitmapY(y), L = Math.max(1, D - k);
|
|
614
614
|
this.fillBar(n, f - u, k, d, L, w);
|
|
615
615
|
} else {
|
|
616
|
-
const k = a.valueToBitmapY(F),
|
|
616
|
+
const k = a.valueToBitmapY(F), D = a.valueToBitmapY(F + m), L = Math.max(1, D - k);
|
|
617
617
|
n.fillStyle = w, n.fillRect(f - u, k, d, L);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
@@ -674,7 +674,7 @@ function lo(r, t, e, o) {
|
|
|
674
674
|
return i.push(r[r.length - 1]), i;
|
|
675
675
|
}
|
|
676
676
|
const ge = /* @__PURE__ */ new Map(), me = /* @__PURE__ */ new Map(), be = /* @__PURE__ */ new Map();
|
|
677
|
-
function
|
|
677
|
+
function qt(r) {
|
|
678
678
|
return [parseInt(r.slice(1, 3), 16), parseInt(r.slice(3, 5), 16), parseInt(r.slice(5, 7), 16)];
|
|
679
679
|
}
|
|
680
680
|
function we(r, t, e) {
|
|
@@ -686,14 +686,14 @@ function Mt(r, t) {
|
|
|
686
686
|
const e = r + t;
|
|
687
687
|
let o = ge.get(e);
|
|
688
688
|
if (o) return o;
|
|
689
|
-
const [i, a, s] =
|
|
689
|
+
const [i, a, s] = qt(r);
|
|
690
690
|
return o = `rgba(${i}, ${a}, ${s}, ${t})`, ge.set(e, o), o;
|
|
691
691
|
}
|
|
692
692
|
function ho(r, t) {
|
|
693
693
|
const e = r + t;
|
|
694
694
|
let o = me.get(e);
|
|
695
695
|
if (o) return o;
|
|
696
|
-
const [i, a, s] =
|
|
696
|
+
const [i, a, s] = qt(r);
|
|
697
697
|
return o = we(
|
|
698
698
|
Math.min(255, Math.round(i + (255 - i) * t)),
|
|
699
699
|
Math.min(255, Math.round(a + (255 - a) * t)),
|
|
@@ -704,7 +704,7 @@ function co(r, t) {
|
|
|
704
704
|
const e = r + t;
|
|
705
705
|
let o = be.get(e);
|
|
706
706
|
if (o) return o;
|
|
707
|
-
const [i, a, s] =
|
|
707
|
+
const [i, a, s] = qt(r);
|
|
708
708
|
return o = we(
|
|
709
709
|
Math.max(0, Math.round(i * (1 - t))),
|
|
710
710
|
Math.max(0, Math.round(a * (1 - t))),
|
|
@@ -718,7 +718,7 @@ const uo = {
|
|
|
718
718
|
wickDownColor: "#ef5350",
|
|
719
719
|
bodyWidthRatio: 0.6
|
|
720
720
|
};
|
|
721
|
-
class
|
|
721
|
+
class Nt {
|
|
722
722
|
constructor(t, e) {
|
|
723
723
|
x(this, "store"), x(this, "options"), this.store = t, this.options = { ...uo, ...e };
|
|
724
724
|
}
|
|
@@ -800,7 +800,7 @@ const fo = {
|
|
|
800
800
|
};
|
|
801
801
|
class j {
|
|
802
802
|
constructor(t, e) {
|
|
803
|
-
x(this, "stores"), x(this, "options"), x(this, "areaGradientCache", /* @__PURE__ */ new Map()), this.stores = Array.from({ length: t }, () => new
|
|
803
|
+
x(this, "stores"), x(this, "options"), x(this, "areaGradientCache", /* @__PURE__ */ new Map()), this.stores = Array.from({ length: t }, () => new Kt()), this.options = { ...fo, ...e };
|
|
804
804
|
}
|
|
805
805
|
get store() {
|
|
806
806
|
return this.stores[0];
|
|
@@ -931,13 +931,7 @@ class j {
|
|
|
931
931
|
const s = this.stores[a].last();
|
|
932
932
|
if (!s) continue;
|
|
933
933
|
const n = this.options.colors[a % this.options.colors.length];
|
|
934
|
-
this.drawPulse(
|
|
935
|
-
t,
|
|
936
|
-
e.timeToBitmapX(s.time),
|
|
937
|
-
o.valueToBitmapY(s.value),
|
|
938
|
-
n,
|
|
939
|
-
i
|
|
940
|
-
);
|
|
934
|
+
this.drawPulse(t, e.timeToBitmapX(s.time), o.valueToBitmapY(s.value), n, i);
|
|
941
935
|
}
|
|
942
936
|
}
|
|
943
937
|
drawPulse(t, e, o, i, a) {
|
|
@@ -1010,18 +1004,18 @@ class bt {
|
|
|
1010
1004
|
if (this.data.length === 0) return;
|
|
1011
1005
|
const { scope: e, theme: o } = t, { context: i, bitmapSize: a, horizontalPixelRatio: s } = e, n = performance.now(), l = this.lastRenderTime ? (n - this.lastRenderTime) / 1e3 : 0;
|
|
1012
1006
|
this.lastRenderTime = n;
|
|
1013
|
-
const c = this.data.reduce((k,
|
|
1007
|
+
const c = this.data.reduce((k, D) => k + D.value, 0);
|
|
1014
1008
|
if (c <= 0) return;
|
|
1015
1009
|
const d = 10;
|
|
1016
1010
|
for (; this.sliceOffsets.length < this.data.length; ) this.sliceOffsets.push(0);
|
|
1017
1011
|
for (let k = 0; k < this.data.length; k++) {
|
|
1018
|
-
const
|
|
1019
|
-
this.sliceOffsets[k] = bo(this.sliceOffsets[k],
|
|
1012
|
+
const D = k === this.hoverIndex ? 1 : 0;
|
|
1013
|
+
this.sliceOffsets[k] = bo(this.sliceOffsets[k], D, d * l);
|
|
1020
1014
|
}
|
|
1021
1015
|
const u = this.options.colors ?? o.seriesColors, b = a.width / 2, v = a.height / 2, C = Math.min(a.width, a.height) / 2 * 0.85, w = C * this.options.innerRadiusRatio, g = this.options.padAngle, { strokeColor: p, strokeWidth: m } = this.options, f = 8 * s;
|
|
1022
1016
|
let y = -Math.PI / 2;
|
|
1023
1017
|
for (let k = 0; k < this.data.length; k++) {
|
|
1024
|
-
const
|
|
1018
|
+
const D = this.data[k], L = D.value / c * Wt, N = y + g / 2, $ = y + L - g / 2, Q = y + L / 2, G = D.color ?? u[k % u.length], pt = this.sliceOffsets[k] * f, J = Math.cos(Q) * pt, Ft = Math.sin(Q) * pt, gt = b + J, mt = v + Ft;
|
|
1025
1019
|
i.beginPath(), i.arc(gt, mt, C, N, $), w > 0 ? i.arc(gt, mt, w, $, N, !0) : i.lineTo(gt, mt), i.closePath();
|
|
1026
1020
|
const X = i.createRadialGradient(gt, mt, w || 0, gt, mt, C);
|
|
1027
1021
|
X.addColorStop(0, mo(G, 0.15)), X.addColorStop(1, G), i.fillStyle = X, this.sliceOffsets[k] > 0.01 && (i.shadowColor = "rgba(0,0,0,0.25)", i.shadowBlur = 12 * s * this.sliceOffsets[k], i.shadowOffsetX = J * 0.3, i.shadowOffsetY = Ft * 0.3), i.fill(), i.shadowColor = "transparent", i.shadowBlur = 0, i.shadowOffsetX = 0, i.shadowOffsetY = 0, m > 0 && p !== "transparent" && (i.strokeStyle = p, i.lineWidth = m, i.stroke()), y += L;
|
|
@@ -1030,10 +1024,10 @@ class bt {
|
|
|
1030
1024
|
const F = w > 0 ? (C + w) / 2 : C * 0.65;
|
|
1031
1025
|
i.textAlign = "center", i.textBaseline = "middle", i.font = `${11 * s}px ${o.typography.fontFamily}`;
|
|
1032
1026
|
for (let k = 0; k < this.data.length; k++) {
|
|
1033
|
-
const
|
|
1027
|
+
const D = this.data[k], L = D.value / c * Wt;
|
|
1034
1028
|
if (L > 0.3) {
|
|
1035
|
-
const N = y + L / 2, $ = this.sliceOffsets[k] * f, Q = b + Math.cos(N) * (F + $), G = v + Math.sin(N) * (F + $), pt =
|
|
1036
|
-
i.fillStyle = go(pt) ? "#000000" : "#ffffff", i.fillText(
|
|
1029
|
+
const N = y + L / 2, $ = this.sliceOffsets[k] * f, Q = b + Math.cos(N) * (F + $), G = v + Math.sin(N) * (F + $), pt = D.color ?? u[k % u.length];
|
|
1030
|
+
i.fillStyle = go(pt) ? "#000000" : "#ffffff", i.fillText(D.label, Q, G);
|
|
1037
1031
|
}
|
|
1038
1032
|
y += L;
|
|
1039
1033
|
}
|
|
@@ -1173,7 +1167,7 @@ class vo extends Pt {
|
|
|
1173
1167
|
/** Called by the render loop before each frame. Returns true if still animating. */
|
|
1174
1168
|
tick(t) {
|
|
1175
1169
|
if (!this._animating) return !1;
|
|
1176
|
-
const e = t - this.animStartTime, o = Math.min(1, e / this.animDuration), i = 1 - (1 - o) ** 3, a =
|
|
1170
|
+
const e = t - this.animStartTime, o = Math.min(1, e / this.animDuration), i = 1 - (1 - o) ** 3, a = ue(this.animFrom.from, this.animTo.from, i), s = ue(this.animFrom.to, this.animTo.to, i);
|
|
1177
1171
|
return s > a && this.applyRange(a, s), o >= 1 && (this._animating = !1), this._animating;
|
|
1178
1172
|
}
|
|
1179
1173
|
/** Set the Y-axis range. Adds pixel-based padding unless a side has a fixed (explicit) bound. */
|
|
@@ -1223,13 +1217,13 @@ class vo extends Pt {
|
|
|
1223
1217
|
}
|
|
1224
1218
|
}
|
|
1225
1219
|
let yo = 0;
|
|
1226
|
-
var E,
|
|
1220
|
+
var E, B, U, Ct, _t, S, V, Dt, ot, ht, H, lt, Jt, wt, ut, Bt, yt, kt, zt, Vt, it, at, St;
|
|
1227
1221
|
class xo extends Pt {
|
|
1228
1222
|
constructor(t, e) {
|
|
1229
1223
|
var o, i, a;
|
|
1230
|
-
super(), A(this, kt), A(this, E), A(this,
|
|
1224
|
+
super(), A(this, kt), A(this, E), A(this, B), A(this, U), A(this, Ct), x(this, "timeScale"), x(this, "yScale"), A(this, _t), A(this, S, []), A(this, V), A(this, Dt), A(this, ot, 6e4), A(this, ht, null), A(this, H, {}), A(this, lt, null), A(this, Jt, !1), A(this, wt, {}), A(this, ut, 0), A(this, Bt, !1), A(this, yt, !1), A(this, Vt, 0), A(this, it, 0), A(this, at, 0), A(this, St, !1), e != null && e.axis && (M(this, wt, e.axis), M(this, H, { min: (o = e.axis.y) == null ? void 0 : o.min, max: (i = e.axis.y) == null ? void 0 : i.max })), M(this, V, (e == null ? void 0 : e.theme) ?? ke), M(this, Dt, (e == null ? void 0 : e.grid) !== !1), M(this, E, new Ge(t)), M(this, B, new vo({ padding: e == null ? void 0 : e.padding })), this.timeScale = new ao(), this.yScale = new so(), M(this, U, new fe(() => this.renderMain())), M(this, Ct, new fe(() => this.renderOverlay()));
|
|
1231
1225
|
const s = (e == null ? void 0 : e.interactive) !== !1;
|
|
1232
|
-
M(this, _t, s ? new Qe(h(this, E).canvas, h(this,
|
|
1226
|
+
M(this, _t, s ? new Qe(h(this, E).canvas, h(this, B), this.timeScale, this.yScale) : null), h(this, B).on("change", () => {
|
|
1233
1227
|
this.syncScales(), h(this, U).markDirty(), this.emit("viewportChange");
|
|
1234
1228
|
}), h(this, E).on("resize", () => {
|
|
1235
1229
|
this.updateScales(!0), this.renderMain(), this.emit("viewportChange");
|
|
@@ -1247,7 +1241,7 @@ class xo extends Pt {
|
|
|
1247
1241
|
}
|
|
1248
1242
|
/** Add a candlestick (OHLC) series and return its unique ID. */
|
|
1249
1243
|
addCandlestickSeries(t) {
|
|
1250
|
-
const e = new
|
|
1244
|
+
const e = new Kt(), o = new Nt(e, {
|
|
1251
1245
|
upColor: h(this, V).candlestick.upColor,
|
|
1252
1246
|
downColor: h(this, V).candlestick.downColor,
|
|
1253
1247
|
wickUpColor: h(this, V).candlestick.wickUpColor,
|
|
@@ -1341,20 +1335,20 @@ class xo extends Pt {
|
|
|
1341
1335
|
appendData(t, e) {
|
|
1342
1336
|
const o = h(this, S).find((a) => a.id === t);
|
|
1343
1337
|
if (!(o != null && o.store)) return;
|
|
1344
|
-
const i = { ...e, time:
|
|
1338
|
+
const i = { ...e, time: Yt(e.time) };
|
|
1345
1339
|
o.store.append(i);
|
|
1346
1340
|
}
|
|
1347
1341
|
/** Update the last data point of a series in place (e.g. live candle update). */
|
|
1348
1342
|
updateData(t, e) {
|
|
1349
1343
|
const o = h(this, S).find((a) => a.id === t);
|
|
1350
1344
|
if (!(o != null && o.store)) return;
|
|
1351
|
-
const i = { ...e, time:
|
|
1345
|
+
const i = { ...e, time: Yt(e.time) };
|
|
1352
1346
|
o.store.updateLast(i);
|
|
1353
1347
|
}
|
|
1354
1348
|
/** Update visual options (color, width, etc.) for an existing series. */
|
|
1355
1349
|
updateSeriesOptions(t, e) {
|
|
1356
1350
|
const o = h(this, S).find((i) => i.id === t);
|
|
1357
|
-
o && ((o.renderer instanceof
|
|
1351
|
+
o && ((o.renderer instanceof Nt || o.renderer instanceof j || o.renderer instanceof nt || o.renderer instanceof bt) && o.renderer.updateOptions(e), "label" in e && typeof e.label == "string" && (o.label = e.label), h(this, U).markDirty());
|
|
1358
1352
|
}
|
|
1359
1353
|
/**
|
|
1360
1354
|
* Batch multiple updates: suppress recomputes until `fn` returns.
|
|
@@ -1370,11 +1364,11 @@ class xo extends Pt {
|
|
|
1370
1364
|
}
|
|
1371
1365
|
/** @deprecated Use {@link batch} instead. */
|
|
1372
1366
|
beginUpdate() {
|
|
1373
|
-
|
|
1367
|
+
ce(this, ut)._++;
|
|
1374
1368
|
}
|
|
1375
1369
|
/** @deprecated Use {@link batch} instead. */
|
|
1376
1370
|
endUpdate() {
|
|
1377
|
-
--
|
|
1371
|
+
--ce(this, ut)._ <= 0 && (M(this, ut, 0), h(this, Bt) ? (M(this, Bt, !1), M(this, yt, !1), this.onDataChanged()) : h(this, yt) && (M(this, yt, !1), this.updateYRange(!0), h(this, U).markDirty()));
|
|
1378
1372
|
}
|
|
1379
1373
|
/** Show or hide a series. Hidden series are not rendered and excluded from Y-range. */
|
|
1380
1374
|
setSeriesVisible(t, e) {
|
|
@@ -1420,13 +1414,13 @@ class xo extends Pt {
|
|
|
1420
1414
|
const { first: t, last: e } = this.getDataBounds();
|
|
1421
1415
|
if (t === void 0 || e === void 0) return;
|
|
1422
1416
|
const o = h(this, E).size.media.width - this.yAxisWidth;
|
|
1423
|
-
h(this,
|
|
1417
|
+
h(this, B).fitToData(t, e, o, !0);
|
|
1424
1418
|
}
|
|
1425
1419
|
getVisibleRange() {
|
|
1426
|
-
return h(this,
|
|
1420
|
+
return h(this, B).visibleRange;
|
|
1427
1421
|
}
|
|
1428
1422
|
getYRange() {
|
|
1429
|
-
return h(this,
|
|
1423
|
+
return h(this, B).yRange;
|
|
1430
1424
|
}
|
|
1431
1425
|
getCrosshairPosition() {
|
|
1432
1426
|
return h(this, ht);
|
|
@@ -1437,7 +1431,7 @@ class xo extends Pt {
|
|
|
1437
1431
|
if (!(e != null && e.store)) return null;
|
|
1438
1432
|
const o = e.store.last();
|
|
1439
1433
|
if (!o) return null;
|
|
1440
|
-
const i = (l) => "close" in l ? l.close : l.value, { from: a, to: s } = h(this,
|
|
1434
|
+
const i = (l) => "close" in l ? l.close : l.value, { from: a, to: s } = h(this, B).visibleRange;
|
|
1441
1435
|
if (o.time >= a && o.time <= s)
|
|
1442
1436
|
return { value: i(o), isLive: !0 };
|
|
1443
1437
|
const n = e.store.getVisibleData(a, s);
|
|
@@ -1550,7 +1544,7 @@ class xo extends Pt {
|
|
|
1550
1544
|
const e = h(this, V).line.color;
|
|
1551
1545
|
M(this, V, t);
|
|
1552
1546
|
for (const o of h(this, S))
|
|
1553
|
-
o.renderer instanceof
|
|
1547
|
+
o.renderer instanceof Nt ? o.renderer.updateOptions({
|
|
1554
1548
|
upColor: t.candlestick.upColor,
|
|
1555
1549
|
downColor: t.candlestick.downColor,
|
|
1556
1550
|
wickUpColor: t.candlestick.wickUpColor,
|
|
@@ -1590,21 +1584,21 @@ class xo extends Pt {
|
|
|
1590
1584
|
}
|
|
1591
1585
|
/** Update viewport padding at runtime. Refits the visible range to current data bounds. */
|
|
1592
1586
|
setPadding(t) {
|
|
1593
|
-
h(this,
|
|
1587
|
+
h(this, B).setPadding(t);
|
|
1594
1588
|
const { first: e, last: o } = this.getDataBounds();
|
|
1595
1589
|
if (e !== void 0 && o !== void 0) {
|
|
1596
1590
|
const i = h(this, E).size.media.width - this.yAxisWidth;
|
|
1597
|
-
h(this,
|
|
1591
|
+
h(this, B).fitToData(e, o, i, !1);
|
|
1598
1592
|
}
|
|
1599
1593
|
this.syncScales(), h(this, U).markDirty();
|
|
1600
1594
|
}
|
|
1601
1595
|
/** Show or hide the background grid. Takes effect on the next render frame. */
|
|
1602
1596
|
setGrid(t) {
|
|
1603
|
-
M(this,
|
|
1597
|
+
M(this, Dt, t), h(this, U).markDirty();
|
|
1604
1598
|
}
|
|
1605
1599
|
/** Notify chart that a YLabel is present (affects right padding). */
|
|
1606
1600
|
setYLabel(t) {
|
|
1607
|
-
M(this,
|
|
1601
|
+
M(this, Jt, t), this.updateViewportPadding();
|
|
1608
1602
|
}
|
|
1609
1603
|
updatePieHover(t) {
|
|
1610
1604
|
const e = h(this, E).size;
|
|
@@ -1624,7 +1618,7 @@ class xo extends Pt {
|
|
|
1624
1618
|
/** Tear down the chart: cancel animations, remove listeners, and detach the canvas. */
|
|
1625
1619
|
destroy() {
|
|
1626
1620
|
var t;
|
|
1627
|
-
h(this,
|
|
1621
|
+
h(this, B).destroy(), h(this, U).destroy(), h(this, Ct).destroy(), (t = h(this, _t)) == null || t.destroy(), h(this, E).destroy(), this.removeAllListeners();
|
|
1628
1622
|
}
|
|
1629
1623
|
/** Compute the earliest and latest timestamps across all series. */
|
|
1630
1624
|
getDataBounds() {
|
|
@@ -1638,12 +1632,12 @@ class xo extends Pt {
|
|
|
1638
1632
|
}
|
|
1639
1633
|
onDataChanged() {
|
|
1640
1634
|
if (h(this, ut) > 0) {
|
|
1641
|
-
M(this,
|
|
1635
|
+
M(this, Bt, !0);
|
|
1642
1636
|
return;
|
|
1643
1637
|
}
|
|
1644
1638
|
this.updateDataInterval();
|
|
1645
1639
|
const { first: t, last: e } = this.getDataBounds();
|
|
1646
|
-
t !== void 0 && h(this,
|
|
1640
|
+
t !== void 0 && h(this, B).setDataStart(t), e !== void 0 && h(this, B).setDataEnd(e);
|
|
1647
1641
|
let o = 0;
|
|
1648
1642
|
for (const a of h(this, S))
|
|
1649
1643
|
if (a.renderer instanceof j || a.renderer instanceof nt)
|
|
@@ -1651,14 +1645,14 @@ class xo extends Pt {
|
|
|
1651
1645
|
else a.store && (o += a.store.length);
|
|
1652
1646
|
const i = o - h(this, Vt) > 5;
|
|
1653
1647
|
if (M(this, Vt, o), t !== void 0 && e !== void 0) {
|
|
1654
|
-
const { from: a, to: s } = h(this,
|
|
1655
|
-
n ? h(this,
|
|
1648
|
+
const { from: a, to: s } = h(this, B).visibleRange, n = a === 0 && s === 0, l = h(this, E).size.media.width - this.yAxisWidth;
|
|
1649
|
+
n ? h(this, B).fitToData(t, e, l, !1) : i && h(this, B).autoScroll ? h(this, B).fitToData(t, e, l, !0) : !i && this.isLastPointVisible() && h(this, B).scrollToEnd(e, l);
|
|
1656
1650
|
}
|
|
1657
1651
|
this.updateYRange(i), this.syncScales(), h(this, U).markDirty(), this.emit("dataUpdate");
|
|
1658
1652
|
}
|
|
1659
1653
|
/** Check whether the last data point of any series falls within the visible time range. */
|
|
1660
1654
|
isLastPointVisible() {
|
|
1661
|
-
const { from: t, to: e } = h(this,
|
|
1655
|
+
const { from: t, to: e } = h(this, B).visibleRange;
|
|
1662
1656
|
for (const o of h(this, S)) {
|
|
1663
1657
|
if (!o.visible || !o.store) continue;
|
|
1664
1658
|
const i = o.store.last();
|
|
@@ -1672,14 +1666,14 @@ class xo extends Pt {
|
|
|
1672
1666
|
const e = t.store.getAll();
|
|
1673
1667
|
if (e.length >= 2) {
|
|
1674
1668
|
const o = e.slice(0, 20).map((i) => i.time);
|
|
1675
|
-
M(this, ot, eo(o)), h(this,
|
|
1669
|
+
M(this, ot, eo(o)), h(this, B).setDataInterval(h(this, ot));
|
|
1676
1670
|
break;
|
|
1677
1671
|
}
|
|
1678
1672
|
}
|
|
1679
1673
|
}
|
|
1680
1674
|
updateYRange(t = !1) {
|
|
1681
1675
|
let e = 1 / 0, o = -1 / 0;
|
|
1682
|
-
const i = h(this,
|
|
1676
|
+
const i = h(this, B).visibleRange;
|
|
1683
1677
|
let a = h(this, H).min !== void 0 && h(this, H).min !== "auto" && typeof h(this, H).min != "number" || h(this, H).max !== void 0 && h(this, H).max !== "auto" && typeof h(this, H).max != "number" ? [] : null;
|
|
1684
1678
|
for (const c of h(this, S)) {
|
|
1685
1679
|
if (!c.visible) continue;
|
|
@@ -1713,7 +1707,7 @@ class xo extends Pt {
|
|
|
1713
1707
|
(Math.abs(h(this, it) - e) > c || Math.abs(h(this, at) - o) > c) && h(this, U).markDirty();
|
|
1714
1708
|
}
|
|
1715
1709
|
const s = h(this, H).min !== void 0 && h(this, H).min !== "auto", n = h(this, H).max !== void 0 && h(this, H).max !== "auto", l = h(this, E).size.media.height - this.xAxisHeight;
|
|
1716
|
-
h(this,
|
|
1710
|
+
h(this, B).setYRange(h(this, it), h(this, at), l, s, n);
|
|
1717
1711
|
}
|
|
1718
1712
|
/** Resolve an {@link AxisBound} to a concrete numeric value. */
|
|
1719
1713
|
resolveBound(t, e, o, i, a) {
|
|
@@ -1736,21 +1730,21 @@ class xo extends Pt {
|
|
|
1736
1730
|
const t = h(this, E).size;
|
|
1737
1731
|
if (t.media.width === 0 || t.media.height === 0) return;
|
|
1738
1732
|
const e = t.media.width - this.yAxisWidth, o = t.media.height - this.xAxisHeight;
|
|
1739
|
-
this.timeScale.update(h(this,
|
|
1733
|
+
this.timeScale.update(h(this, B).visibleRange, e, t.horizontalPixelRatio), this.yScale.update(h(this, B).yRange, o, t.verticalPixelRatio);
|
|
1740
1734
|
}
|
|
1741
1735
|
updateScales(t = !1) {
|
|
1742
1736
|
const e = h(this, E).size;
|
|
1743
1737
|
if (e.media.width === 0 || e.media.height === 0) return;
|
|
1744
1738
|
const o = e.media.width - this.yAxisWidth, i = e.media.height - this.xAxisHeight;
|
|
1745
|
-
this.timeScale.update(h(this,
|
|
1739
|
+
this.timeScale.update(h(this, B).visibleRange, o, e.horizontalPixelRatio), this.yScale.update(h(this, B).yRange, i, e.verticalPixelRatio), this.updateYRange(t), this.yScale.update(h(this, B).yRange, i, e.verticalPixelRatio);
|
|
1746
1740
|
}
|
|
1747
1741
|
/** Expensive: background, grid, all series. Only on data/viewport/resize change. */
|
|
1748
1742
|
renderMain() {
|
|
1749
1743
|
const t = h(this, E).size;
|
|
1750
1744
|
if (!(t.media.width === 0 || t.media.height === 0)) {
|
|
1751
|
-
h(this,
|
|
1745
|
+
h(this, B).tick(performance.now()) && h(this, U).markDirty(), this.updateScales(), h(this, E).useMainLayer((e) => {
|
|
1752
1746
|
const { context: o, bitmapSize: i } = e, a = (t.media.width - this.yAxisWidth) * t.horizontalPixelRatio, s = (t.media.height - this.xAxisHeight) * t.verticalPixelRatio;
|
|
1753
|
-
o.clearRect(0, 0, i.width, i.height), o.save(), o.beginPath(), o.rect(0, 0, a, s), o.clip(), h(this,
|
|
1747
|
+
o.clearRect(0, 0, i.width, i.height), o.save(), o.beginPath(), o.rect(0, 0, a, s), o.clip(), h(this, Dt) && Je(e, this.timeScale, this.yScale, h(this, V), h(this, ot));
|
|
1754
1748
|
for (const n of h(this, S))
|
|
1755
1749
|
n.visible && n.renderer.render({
|
|
1756
1750
|
scope: e,
|
|
@@ -1838,7 +1832,7 @@ class xo extends Pt {
|
|
|
1838
1832
|
}
|
|
1839
1833
|
}
|
|
1840
1834
|
}
|
|
1841
|
-
E = /* @__PURE__ */ new WeakMap(),
|
|
1835
|
+
E = /* @__PURE__ */ new WeakMap(), B = /* @__PURE__ */ new WeakMap(), U = /* @__PURE__ */ new WeakMap(), Ct = /* @__PURE__ */ new WeakMap(), _t = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap(), V = /* @__PURE__ */ new WeakMap(), Dt = /* @__PURE__ */ new WeakMap(), ot = /* @__PURE__ */ new WeakMap(), ht = /* @__PURE__ */ new WeakMap(), H = /* @__PURE__ */ new WeakMap(), lt = /* @__PURE__ */ new WeakMap(), Jt = /* @__PURE__ */ new WeakMap(), wt = /* @__PURE__ */ new WeakMap(), ut = /* @__PURE__ */ new WeakMap(), Bt = /* @__PURE__ */ new WeakMap(), yt = /* @__PURE__ */ new WeakMap(), kt = /* @__PURE__ */ new WeakSet(), /**
|
|
1842
1836
|
* Return a series ID: use the provided hint if it's non-empty and not already taken,
|
|
1843
1837
|
* otherwise generate a new auto ID. Auto-generated IDs never collide with each other
|
|
1844
1838
|
* or with user-provided IDs because they use a monotonically increasing counter.
|
|
@@ -1913,8 +1907,8 @@ function Co(r) {
|
|
|
1913
1907
|
return parseInt(r.slice(1, 3), 16) * 0.299 + parseInt(r.slice(3, 5), 16) * 0.587 + parseInt(r.slice(5, 7), 16) * 0.114 < 128;
|
|
1914
1908
|
}
|
|
1915
1909
|
function Y(r) {
|
|
1916
|
-
var t, e, o, i, a, s, n, l, c, d, u, b, v, C, w, g, p, m, f, y, F, k,
|
|
1917
|
-
const { background: J, name: Ft = "Custom", description: gt, fontUrl: mt = null } = r, X = Co(J), ze = X ? "#d1d4dc" : "#24292f", Pe = X ? "#787b86" : "#8b949e",
|
|
1910
|
+
var t, e, o, i, a, s, n, l, c, d, u, b, v, C, w, g, p, m, f, y, F, k, D, L, N, $, Q, G, pt;
|
|
1911
|
+
const { background: J, name: Ft = "Custom", description: gt, fontUrl: mt = null } = r, X = Co(J), ze = X ? "#d1d4dc" : "#24292f", Pe = X ? "#787b86" : "#8b949e", ae = X ? "#26a69a" : "#2da44e", se = X ? "#ef5350" : "#cf222e", Fe = X ? "#2962ff" : "#0969da", Le = X ? "rgba(42,46,57,0.6)" : "rgba(200,200,200,0.5)", Ie = X ? "rgba(150,150,150,0.5)" : "rgba(170,170,170,0.3)", re = X ? At(J, 0.1) : ve(J, 0.05), We = X ? Tt(J, 0.92) : Tt(J, 0.95), Ae = X ? Tt(At(J, 0.15), 0.6) : "rgba(200,200,200,0.5)", Ve = $t, Xt = ((t = r.candlestick) == null ? void 0 : t.upColor) ?? ae, Lt = ((e = r.candlestick) == null ? void 0 : e.downColor) ?? se, Rt = ((o = r.line) == null ? void 0 : o.color) ?? Fe, ne = ((i = r.tooltip) == null ? void 0 : i.textColor) ?? ze, Ye = ((a = r.axis) == null ? void 0 : a.textColor) ?? Pe, Ue = ((s = r.typography) == null ? void 0 : s.fontFamily) ?? Ve, Ee = {
|
|
1918
1912
|
background: J,
|
|
1919
1913
|
chartGradient: r.chartGradient ?? (X ? [At(J, 0.04), ve(J, 0.06)] : [At(J, 0.06), J]),
|
|
1920
1914
|
typography: {
|
|
@@ -1929,9 +1923,9 @@ function Y(r) {
|
|
|
1929
1923
|
style: ((v = r.grid) == null ? void 0 : v.style) ?? "dashed"
|
|
1930
1924
|
},
|
|
1931
1925
|
candlestick: {
|
|
1932
|
-
upColor:
|
|
1926
|
+
upColor: Xt,
|
|
1933
1927
|
downColor: Lt,
|
|
1934
|
-
wickUpColor: ((C = r.candlestick) == null ? void 0 : C.wickUpColor) ??
|
|
1928
|
+
wickUpColor: ((C = r.candlestick) == null ? void 0 : C.wickUpColor) ?? Xt,
|
|
1935
1929
|
wickDownColor: ((w = r.candlestick) == null ? void 0 : w.wickDownColor) ?? Lt
|
|
1936
1930
|
},
|
|
1937
1931
|
line: {
|
|
@@ -1940,26 +1934,26 @@ function Y(r) {
|
|
|
1940
1934
|
areaTopColor: ((p = r.line) == null ? void 0 : p.areaTopColor) ?? Tt(Rt, 0.08),
|
|
1941
1935
|
areaBottomColor: ((m = r.line) == null ? void 0 : m.areaBottomColor) ?? Tt(Rt, 0.01)
|
|
1942
1936
|
},
|
|
1943
|
-
seriesColors: r.seriesColors ?? [Rt,
|
|
1937
|
+
seriesColors: r.seriesColors ?? [Rt, ae, se],
|
|
1944
1938
|
bands: {
|
|
1945
1939
|
upper: ((f = r.bands) == null ? void 0 : f.upper) ?? Rt,
|
|
1946
1940
|
lower: ((y = r.bands) == null ? void 0 : y.lower) ?? Lt
|
|
1947
1941
|
},
|
|
1948
1942
|
crosshair: {
|
|
1949
1943
|
color: ((F = r.crosshair) == null ? void 0 : F.color) ?? Ie,
|
|
1950
|
-
labelBackground: ((k = r.crosshair) == null ? void 0 : k.labelBackground) ??
|
|
1951
|
-
labelTextColor: ((
|
|
1944
|
+
labelBackground: ((k = r.crosshair) == null ? void 0 : k.labelBackground) ?? re,
|
|
1945
|
+
labelTextColor: ((D = r.crosshair) == null ? void 0 : D.labelTextColor) ?? ne
|
|
1952
1946
|
},
|
|
1953
1947
|
axis: { textColor: Ye },
|
|
1954
1948
|
yLabel: {
|
|
1955
|
-
upBackground: ((L = r.yLabel) == null ? void 0 : L.upBackground) ??
|
|
1949
|
+
upBackground: ((L = r.yLabel) == null ? void 0 : L.upBackground) ?? Xt,
|
|
1956
1950
|
downBackground: ((N = r.yLabel) == null ? void 0 : N.downBackground) ?? Lt,
|
|
1957
|
-
neutralBackground: (($ = r.yLabel) == null ? void 0 : $.neutralBackground) ??
|
|
1951
|
+
neutralBackground: (($ = r.yLabel) == null ? void 0 : $.neutralBackground) ?? re,
|
|
1958
1952
|
textColor: ((Q = r.yLabel) == null ? void 0 : Q.textColor) ?? "#ffffff"
|
|
1959
1953
|
},
|
|
1960
1954
|
tooltip: {
|
|
1961
1955
|
background: ((G = r.tooltip) == null ? void 0 : G.background) ?? We,
|
|
1962
|
-
textColor:
|
|
1956
|
+
textColor: ne,
|
|
1963
1957
|
borderColor: ((pt = r.tooltip) == null ? void 0 : pt.borderColor) ?? Ae
|
|
1964
1958
|
}
|
|
1965
1959
|
};
|
|
@@ -1979,7 +1973,7 @@ function ve(r, t) {
|
|
|
1979
1973
|
const e = Math.max(0, Math.round(parseInt(r.slice(1, 3), 16) * (1 - t))), o = Math.max(0, Math.round(parseInt(r.slice(3, 5), 16) * (1 - t))), i = Math.max(0, Math.round(parseInt(r.slice(5, 7), 16) * (1 - t)));
|
|
1980
1974
|
return `#${e.toString(16).padStart(2, "0")}${o.toString(16).padStart(2, "0")}${i.toString(16).padStart(2, "0")}`;
|
|
1981
1975
|
}
|
|
1982
|
-
const
|
|
1976
|
+
const Et = "'JetBrains Mono', 'Fira Code', monospace", Ot = "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap", $t = "'Outfit', -apple-system, BlinkMacSystemFont, sans-serif", Qt = "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600&display=swap", Se = "'Roboto Mono', monospace", Me = "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;600&display=swap", wo = "'IBM Plex Mono', monospace", ko = "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap", Zt = "'Fira Code', monospace", te = "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&display=swap", Re = "'Source Code Pro', monospace", Te = "https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;500;600&display=swap", So = "'Space Mono', monospace", Mo = "https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap", ee = "'Plus Jakarta Sans', sans-serif", oe = "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap", Ro = "'Caveat', 'Comic Sans MS', cursive", To = "https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&display=swap", _o = Y({
|
|
1983
1977
|
name: "Andromeda",
|
|
1984
1978
|
description: "Deep space purples and cosmic blues",
|
|
1985
1979
|
background: "#23262e",
|
|
@@ -2004,7 +1998,7 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2004
1998
|
tooltip: { background: "rgba(35,38,46,0.92)", textColor: "#d5ced9", borderColor: "rgba(50,48,56,0.6)" },
|
|
2005
1999
|
typography: { fontFamily: Se },
|
|
2006
2000
|
fontUrl: Me
|
|
2007
|
-
}),
|
|
2001
|
+
}), Do = Y({
|
|
2008
2002
|
name: "Ayu Mirage",
|
|
2009
2003
|
description: "Warm dark with amber accents",
|
|
2010
2004
|
background: "#1f2430",
|
|
@@ -2027,9 +2021,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2027
2021
|
crosshair: { color: "rgba(92,103,115,0.4)", labelBackground: "#2a3040" },
|
|
2028
2022
|
axis: { textColor: "#5c6773" },
|
|
2029
2023
|
tooltip: { background: "rgba(31,36,48,0.92)", textColor: "#cbccc6", borderColor: "rgba(42,48,60,0.6)" },
|
|
2030
|
-
typography: { fontFamily:
|
|
2031
|
-
fontUrl:
|
|
2032
|
-
}),
|
|
2024
|
+
typography: { fontFamily: $t },
|
|
2025
|
+
fontUrl: Qt
|
|
2026
|
+
}), Bo = Y({
|
|
2033
2027
|
name: "Catppuccin",
|
|
2034
2028
|
description: "Pastel tones on a mocha base",
|
|
2035
2029
|
background: "#1e1e2e",
|
|
@@ -2052,8 +2046,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2052
2046
|
crosshair: { color: "rgba(108,112,134,0.4)", labelBackground: "#313244" },
|
|
2053
2047
|
axis: { textColor: "#6c7086" },
|
|
2054
2048
|
tooltip: { background: "rgba(30,30,46,0.92)", textColor: "#cdd6f4", borderColor: "rgba(49,50,68,0.6)" },
|
|
2055
|
-
typography: { fontFamily:
|
|
2056
|
-
fontUrl:
|
|
2049
|
+
typography: { fontFamily: $t },
|
|
2050
|
+
fontUrl: Qt
|
|
2057
2051
|
}), zo = Y({
|
|
2058
2052
|
name: "Dracula",
|
|
2059
2053
|
description: "Classic dark with vibrant highlights",
|
|
@@ -2077,8 +2071,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2077
2071
|
crosshair: { color: "rgba(98,114,164,0.4)", labelBackground: "#44475a" },
|
|
2078
2072
|
axis: { textColor: "#6272a4" },
|
|
2079
2073
|
tooltip: { background: "rgba(40,42,54,0.92)", textColor: "#f8f8f2", borderColor: "rgba(68,71,90,0.6)" },
|
|
2080
|
-
typography: { fontFamily:
|
|
2081
|
-
fontUrl:
|
|
2074
|
+
typography: { fontFamily: Zt },
|
|
2075
|
+
fontUrl: te
|
|
2082
2076
|
}), Po = Y({
|
|
2083
2077
|
name: "GitHub Light",
|
|
2084
2078
|
description: "Clean and familiar, GitHub-inspired",
|
|
@@ -2128,8 +2122,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2128
2122
|
crosshair: { color: "rgba(146,131,116,0.4)", labelBackground: "#3c3836" },
|
|
2129
2123
|
axis: { textColor: "#928374" },
|
|
2130
2124
|
tooltip: { background: "rgba(40,40,40,0.92)", textColor: "#ebdbb2", borderColor: "rgba(60,56,54,0.6)" },
|
|
2131
|
-
typography: { fontFamily:
|
|
2132
|
-
fontUrl:
|
|
2125
|
+
typography: { fontFamily: Et },
|
|
2126
|
+
fontUrl: Ot
|
|
2133
2127
|
}), Lo = {
|
|
2134
2128
|
name: "Handwritten",
|
|
2135
2129
|
description: "Sketch-style with a personal touch",
|
|
@@ -2242,8 +2236,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2242
2236
|
axis: { textColor: "#9a88a0" },
|
|
2243
2237
|
crosshair: { color: "rgba(150,130,155,0.2)", labelBackground: "#ebe4e8" },
|
|
2244
2238
|
tooltip: { background: "rgba(245,240,244,0.95)", textColor: "#3a3050", borderColor: "rgba(150,130,155,0.25)" },
|
|
2245
|
-
typography: { fontFamily:
|
|
2246
|
-
fontUrl:
|
|
2239
|
+
typography: { fontFamily: ee },
|
|
2240
|
+
fontUrl: oe,
|
|
2247
2241
|
chartGradient: ["#f8f4f7", "#f5f0f4"]
|
|
2248
2242
|
}), Yo = Y({
|
|
2249
2243
|
name: "Love",
|
|
@@ -2269,8 +2263,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2269
2263
|
crosshair: { color: "rgba(180,140,155,0.3)", labelBackground: "#f0dce2" },
|
|
2270
2264
|
axis: { textColor: "#b08898" },
|
|
2271
2265
|
tooltip: { background: "rgba(253,242,244,0.95)", textColor: "#4a3040", borderColor: "rgba(200,160,175,0.35)" },
|
|
2272
|
-
typography: { fontFamily:
|
|
2273
|
-
fontUrl:
|
|
2266
|
+
typography: { fontFamily: $t },
|
|
2267
|
+
fontUrl: Qt
|
|
2274
2268
|
}), Uo = Y({
|
|
2275
2269
|
name: "Material Palenight",
|
|
2276
2270
|
description: "Material Design in moonlit hues",
|
|
@@ -2370,8 +2364,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2370
2364
|
crosshair: { color: "rgba(114,112,114,0.4)", labelBackground: "#403e42" },
|
|
2371
2365
|
axis: { textColor: "#727072" },
|
|
2372
2366
|
tooltip: { background: "rgba(45,42,46,0.92)", textColor: "#fcfcfa", borderColor: "rgba(64,60,62,0.6)" },
|
|
2373
|
-
typography: { fontFamily:
|
|
2374
|
-
fontUrl:
|
|
2367
|
+
typography: { fontFamily: Zt },
|
|
2368
|
+
fontUrl: te
|
|
2375
2369
|
}), Go = Y({
|
|
2376
2370
|
name: "Night Owl",
|
|
2377
2371
|
description: "Crafted for late-night coding",
|
|
@@ -2395,8 +2389,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2395
2389
|
crosshair: { color: "rgba(99,119,119,0.4)", labelBackground: "#1d3b53" },
|
|
2396
2390
|
axis: { textColor: "#495a5a" },
|
|
2397
2391
|
tooltip: { background: "rgba(1,22,39,0.92)", textColor: "#d6deeb", borderColor: "rgba(31,52,72,0.6)" },
|
|
2398
|
-
typography: { fontFamily:
|
|
2399
|
-
fontUrl:
|
|
2392
|
+
typography: { fontFamily: Et },
|
|
2393
|
+
fontUrl: Ot
|
|
2400
2394
|
}), No = Y({
|
|
2401
2395
|
name: "One Dark Pro",
|
|
2402
2396
|
description: "Atom editor's iconic dark palette",
|
|
@@ -2420,8 +2414,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2420
2414
|
crosshair: { color: "rgba(99,110,123,0.4)", labelBackground: "#3e4451" },
|
|
2421
2415
|
axis: { textColor: "#5c6370" },
|
|
2422
2416
|
tooltip: { background: "rgba(40,44,52,0.92)", textColor: "#abb2bf", borderColor: "rgba(59,64,72,0.6)" },
|
|
2423
|
-
typography: { fontFamily:
|
|
2424
|
-
fontUrl:
|
|
2417
|
+
typography: { fontFamily: Et },
|
|
2418
|
+
fontUrl: Ot
|
|
2425
2419
|
}), Jo = Y({
|
|
2426
2420
|
name: "Panda",
|
|
2427
2421
|
description: "Playful neons on charcoal",
|
|
@@ -2445,8 +2439,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2445
2439
|
crosshair: { color: "rgba(117,117,117,0.4)", labelBackground: "#3a3a3c" },
|
|
2446
2440
|
axis: { textColor: "#757575" },
|
|
2447
2441
|
tooltip: { background: "rgba(41,42,43,0.92)", textColor: "#e6e6e6", borderColor: "rgba(58,58,60,0.6)" },
|
|
2448
|
-
typography: { fontFamily:
|
|
2449
|
-
fontUrl:
|
|
2442
|
+
typography: { fontFamily: Zt },
|
|
2443
|
+
fontUrl: te
|
|
2450
2444
|
}), jo = Y({
|
|
2451
2445
|
name: "Peach Cream",
|
|
2452
2446
|
background: "#fef6f0",
|
|
@@ -2469,8 +2463,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2469
2463
|
axis: { textColor: "#b09080" },
|
|
2470
2464
|
crosshair: { color: "rgba(180,140,120,0.2)", labelBackground: "#f0e4d8" },
|
|
2471
2465
|
tooltip: { background: "rgba(254,246,240,0.95)", textColor: "#4a3028", borderColor: "rgba(180,140,120,0.25)" },
|
|
2472
|
-
typography: { fontFamily:
|
|
2473
|
-
fontUrl:
|
|
2466
|
+
typography: { fontFamily: ee },
|
|
2467
|
+
fontUrl: oe,
|
|
2474
2468
|
chartGradient: ["#fff8f2", "#fef6f0"]
|
|
2475
2469
|
}), Ko = Y({
|
|
2476
2470
|
name: "Quiet Light",
|
|
@@ -2495,8 +2489,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2495
2489
|
crosshair: { color: "rgba(170,170,170,0.3)", labelBackground: "#e8e8e8" },
|
|
2496
2490
|
axis: { textColor: "#aaaaaa" },
|
|
2497
2491
|
tooltip: { background: "rgba(245,245,245,0.95)", textColor: "#333333", borderColor: "rgba(200,200,200,0.5)" },
|
|
2498
|
-
typography: { fontFamily:
|
|
2499
|
-
fontUrl:
|
|
2492
|
+
typography: { fontFamily: ee },
|
|
2493
|
+
fontUrl: oe
|
|
2500
2494
|
}), qo = Y({
|
|
2501
2495
|
name: "Rosé Pine Dawn",
|
|
2502
2496
|
description: "Dawn-inspired warm neutrals",
|
|
@@ -2571,8 +2565,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2571
2565
|
crosshair: { color: "rgba(147,161,161,0.3)", labelBackground: "#eee8d5" },
|
|
2572
2566
|
axis: { textColor: "#93a1a1" },
|
|
2573
2567
|
tooltip: { background: "rgba(253,246,227,0.95)", textColor: "#586e75", borderColor: "rgba(238,232,213,0.6)" },
|
|
2574
|
-
typography: { fontFamily:
|
|
2575
|
-
fontUrl:
|
|
2568
|
+
typography: { fontFamily: Et },
|
|
2569
|
+
fontUrl: Ot
|
|
2576
2570
|
}), ye = {
|
|
2577
2571
|
Dracula: zo,
|
|
2578
2572
|
"One Dark Pro": No,
|
|
@@ -2580,8 +2574,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2580
2574
|
"Night Owl": Go,
|
|
2581
2575
|
"Material Palenight": Uo,
|
|
2582
2576
|
Gruvbox: Fo,
|
|
2583
|
-
Catppuccin:
|
|
2584
|
-
"Ayu Mirage":
|
|
2577
|
+
Catppuccin: Bo,
|
|
2578
|
+
"Ayu Mirage": Do,
|
|
2585
2579
|
Panda: Jo,
|
|
2586
2580
|
Andromeda: _o,
|
|
2587
2581
|
Matrix: Ao,
|
|
@@ -2600,7 +2594,7 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2600
2594
|
function ki(r) {
|
|
2601
2595
|
return (ye[r] ?? ye["One Dark Pro"]).theme;
|
|
2602
2596
|
}
|
|
2603
|
-
const _e = Symbol("wick-chart"),
|
|
2597
|
+
const _e = Symbol("wick-chart"), De = Symbol("wick-theme");
|
|
2604
2598
|
function rt() {
|
|
2605
2599
|
const r = xe(_e);
|
|
2606
2600
|
if (!r || !r.value)
|
|
@@ -2608,7 +2602,7 @@ function rt() {
|
|
|
2608
2602
|
return r.value;
|
|
2609
2603
|
}
|
|
2610
2604
|
function ti() {
|
|
2611
|
-
const r = xe(
|
|
2605
|
+
const r = xe(De);
|
|
2612
2606
|
if (!r)
|
|
2613
2607
|
throw new Error("useTheme must be used within <ChartContainer>");
|
|
2614
2608
|
return r;
|
|
@@ -2697,8 +2691,8 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2697
2691
|
axis: {}
|
|
2698
2692
|
},
|
|
2699
2693
|
setup(r) {
|
|
2700
|
-
const t = r, e = tt(), o =
|
|
2701
|
-
|
|
2694
|
+
const t = r, e = tt(), o = le(null), i = le(t.theme);
|
|
2695
|
+
he(_e, o), he(De, i), q(() => {
|
|
2702
2696
|
if (!e.value) return;
|
|
2703
2697
|
const s = {};
|
|
2704
2698
|
t.axis && (s.axis = t.axis), t.theme && (s.theme = t.theme), o.value = new xo(e.value, s);
|
|
@@ -2732,7 +2726,7 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2732
2726
|
], 4));
|
|
2733
2727
|
}
|
|
2734
2728
|
});
|
|
2735
|
-
function
|
|
2729
|
+
function Be(r) {
|
|
2736
2730
|
const t = tt(r.getVisibleRange()), e = () => {
|
|
2737
2731
|
t.value = r.getVisibleRange();
|
|
2738
2732
|
};
|
|
@@ -2762,7 +2756,7 @@ function ii(r, t) {
|
|
|
2762
2756
|
};
|
|
2763
2757
|
return q(() => r.on("dataUpdate", o)), et(() => r.off("dataUpdate", o)), e;
|
|
2764
2758
|
}
|
|
2765
|
-
function
|
|
2759
|
+
function ie(r) {
|
|
2766
2760
|
const t = tt(r.getCrosshairPosition()), e = () => {
|
|
2767
2761
|
t.value = r.getCrosshairPosition();
|
|
2768
2762
|
};
|
|
@@ -2800,7 +2794,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2800
2794
|
{ deep: !0 }
|
|
2801
2795
|
), (s, n) => K("", !0);
|
|
2802
2796
|
}
|
|
2803
|
-
}),
|
|
2797
|
+
}), Di = /* @__PURE__ */ Z({
|
|
2804
2798
|
__name: "PieSeries",
|
|
2805
2799
|
props: {
|
|
2806
2800
|
data: {},
|
|
@@ -2827,10 +2821,10 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2827
2821
|
{ deep: !0 }
|
|
2828
2822
|
), (s, n) => K("", !0);
|
|
2829
2823
|
}
|
|
2830
|
-
}),
|
|
2824
|
+
}), Bi = /* @__PURE__ */ Z({
|
|
2831
2825
|
__name: "Crosshair",
|
|
2832
2826
|
setup(r) {
|
|
2833
|
-
const t = rt(), e =
|
|
2827
|
+
const t = rt(), e = ie(t), o = P(() => t.getTheme()), i = P(() => t.getDataInterval()), a = P(() => ({
|
|
2834
2828
|
background: o.value.crosshair.labelBackground,
|
|
2835
2829
|
color: o.value.crosshair.labelTextColor,
|
|
2836
2830
|
fontSize: o.value.typography.axisFontSize + "px",
|
|
@@ -2858,7 +2852,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2858
2852
|
transform: "translateX(-50%)",
|
|
2859
2853
|
...a.value
|
|
2860
2854
|
})
|
|
2861
|
-
}, I(W(
|
|
2855
|
+
}, I(W(Ut)(W(e).time, i.value)), 5)
|
|
2862
2856
|
], 64)) : K("", !0);
|
|
2863
2857
|
}
|
|
2864
2858
|
}), ai = { style: {
|
|
@@ -2983,7 +2977,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2983
2977
|
seriesId: {}
|
|
2984
2978
|
},
|
|
2985
2979
|
setup(r) {
|
|
2986
|
-
const t = r, e = rt(), o =
|
|
2980
|
+
const t = r, e = rt(), o = ie(e), i = P(() => e.getTheme()), a = P(() => (o.value, e.getPieHoverInfo(t.seriesId))), s = P(() => {
|
|
2987
2981
|
if (!o.value || !a.value) return null;
|
|
2988
2982
|
const n = e.getMediaSize(), l = 160, c = 70, d = 16, u = 16, b = o.value.mediaX + d + l > n.width ? o.value.mediaX - d - l : o.value.mediaX + d, v = o.value.mediaY + u + c > n.height ? o.value.mediaY - u - c : o.value.mediaY + u;
|
|
2989
2983
|
return { left: b, top: v };
|
|
@@ -3032,7 +3026,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3032
3026
|
}), Fi = /* @__PURE__ */ Z({
|
|
3033
3027
|
__name: "TimeAxis",
|
|
3034
3028
|
setup(r) {
|
|
3035
|
-
const t = rt(), e =
|
|
3029
|
+
const t = rt(), e = Be(t), o = /* @__PURE__ */ new Map(), i = P(() => t.getTheme()), a = P(() => {
|
|
3036
3030
|
e.value;
|
|
3037
3031
|
const s = t.getDataInterval(), { ticks: n, tickInterval: l } = t.timeScale.niceTickValues(s), c = new Set(n), d = performance.now();
|
|
3038
3032
|
for (const u of n)
|
|
@@ -3073,7 +3067,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3073
3067
|
transition: "opacity 0.3s ease",
|
|
3074
3068
|
willChange: "opacity"
|
|
3075
3069
|
})
|
|
3076
|
-
}, I(W(
|
|
3070
|
+
}, I(W(Ut)(l, a.value.tickInterval)), 5))), 128))
|
|
3077
3071
|
], 4));
|
|
3078
3072
|
}
|
|
3079
3073
|
}), gi = {
|
|
@@ -3095,7 +3089,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3095
3089
|
sort: { default: "none" }
|
|
3096
3090
|
},
|
|
3097
3091
|
setup(r) {
|
|
3098
|
-
const t = r, e = rt(), o =
|
|
3092
|
+
const t = r, e = rt(), o = ie(e), i = P(() => t.seriesId ? [t.seriesId] : e.getSeriesIds()), a = P(() => i.value[0] ?? ""), s = tt(
|
|
3099
3093
|
a.value ? e.getLastValue(a.value) : null
|
|
3100
3094
|
), n = () => {
|
|
3101
3095
|
const p = a.value;
|
|
@@ -3141,7 +3135,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3141
3135
|
return d(p, t.sort);
|
|
3142
3136
|
}), C = P(() => v.value.length === 0 ? 0 : v.value[0].data.time), w = P(() => {
|
|
3143
3137
|
if (!o.value || b.value.length === 0) return null;
|
|
3144
|
-
const p = e.getMediaSize(), m = b.value.some((G) => "open" in G.data), f = b.value.filter((G) => !("open" in G.data)).length, y = 160, F = m ? 140 : 40 + f * 22, k = 16,
|
|
3138
|
+
const p = e.getMediaSize(), m = b.value.some((G) => "open" in G.data), f = b.value.filter((G) => !("open" in G.data)).length, y = 160, F = m ? 140 : 40 + f * 22, k = 16, D = 16, L = p.width - e.yAxisWidth, N = p.height - e.xAxisHeight, $ = o.value.mediaX + k + y > L ? o.value.mediaX - k - y : o.value.mediaX + k, Q = o.value.mediaY + D + F > N ? o.value.mediaY - D - F : o.value.mediaY + D;
|
|
3145
3139
|
return { left: $, top: Q };
|
|
3146
3140
|
});
|
|
3147
3141
|
function g(p) {
|
|
@@ -3168,7 +3162,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3168
3162
|
}, [
|
|
3169
3163
|
_("span", {
|
|
3170
3164
|
style: z({ color: l.value.axis.textColor, marginRight: "2px" })
|
|
3171
|
-
}, I(W(
|
|
3165
|
+
}, I(W(Ut)(C.value, c.value)), 5),
|
|
3172
3166
|
(R(!0), T(O, null, ct(v.value, (f) => (R(), T(O, {
|
|
3173
3167
|
key: f.id
|
|
3174
3168
|
}, [
|
|
@@ -3241,7 +3235,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3241
3235
|
borderBottom: "1px solid " + l.value.tooltip.borderColor,
|
|
3242
3236
|
letterSpacing: "0.02em"
|
|
3243
3237
|
})
|
|
3244
|
-
}, I(W(oo)(C.value)) + " " + I(W(
|
|
3238
|
+
}, I(W(oo)(C.value)) + " " + I(W(Ut)(C.value, c.value)), 5),
|
|
3245
3239
|
(R(!0), T(O, null, ct(v.value, (f) => (R(), T(O, {
|
|
3246
3240
|
key: f.id
|
|
3247
3241
|
}, [
|
|
@@ -3291,7 +3285,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3291
3285
|
}), Ii = /* @__PURE__ */ Z({
|
|
3292
3286
|
__name: "YAxis",
|
|
3293
3287
|
setup(r) {
|
|
3294
|
-
const t = rt(), e =
|
|
3288
|
+
const t = rt(), e = Be(t), o = /* @__PURE__ */ new Map(), i = P(() => t.getTheme()), a = P(() => {
|
|
3295
3289
|
e.value;
|
|
3296
3290
|
const s = t.yScale.niceTickValues(), n = new Set(s), l = performance.now();
|
|
3297
3291
|
for (const c of s)
|
|
@@ -3340,13 +3334,10 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3340
3334
|
setup(r) {
|
|
3341
3335
|
const t = r, e = rt(), o = oi(e, t.seriesId), i = ii(e, t.seriesId);
|
|
3342
3336
|
q(() => e.setYLabel(!0)), et(() => e.setYLabel(!1));
|
|
3343
|
-
const a = P(() => e.getTheme()), s = P(() => {
|
|
3344
|
-
const d = o.value;
|
|
3345
|
-
return d === null ? 0 : e.yScale.valueToY(d.value);
|
|
3346
|
-
}), n = P(() => {
|
|
3337
|
+
const a = P(() => e.getTheme()), s = P(() => o.value === null ? 0 : e.yScale.valueToY(o.value.value)), n = P(() => {
|
|
3347
3338
|
if (t.color) return t.color;
|
|
3348
|
-
const d = a.value
|
|
3349
|
-
return i.value === null ||
|
|
3339
|
+
const d = a.value;
|
|
3340
|
+
return i.value === null || o.value === null ? d.yLabel.neutralBackground : o.value.value > i.value ? d.yLabel.upBackground : o.value.value < i.value ? d.yLabel.downBackground : d.yLabel.neutralBackground;
|
|
3350
3341
|
}), l = P(() => {
|
|
3351
3342
|
const d = e.yScale.getRange(), u = d.max - d.min;
|
|
3352
3343
|
return u < 0.1 ? 6 : u < 10 ? 4 : u < 1e3 ? 2 : 0;
|
|
@@ -3401,26 +3392,26 @@ export {
|
|
|
3401
3392
|
Mi as CandlestickSeries,
|
|
3402
3393
|
Ri as ChartContainer,
|
|
3403
3394
|
xo as ChartInstance,
|
|
3404
|
-
|
|
3395
|
+
Bi as Crosshair,
|
|
3405
3396
|
_i as LineSeries,
|
|
3406
3397
|
ni as NumberFlow,
|
|
3407
3398
|
zi as PieLegend,
|
|
3408
|
-
|
|
3399
|
+
Di as PieSeries,
|
|
3409
3400
|
Pi as PieTooltip,
|
|
3410
3401
|
Fi as TimeAxis,
|
|
3411
3402
|
Li as Tooltip,
|
|
3412
3403
|
Ii as YAxis,
|
|
3413
3404
|
Wi as YLabel,
|
|
3414
3405
|
_o as andromeda,
|
|
3415
|
-
|
|
3406
|
+
Do as ayuMirage,
|
|
3416
3407
|
ki as buildTheme,
|
|
3417
|
-
|
|
3408
|
+
Bo as catppuccin,
|
|
3418
3409
|
Y as createTheme,
|
|
3419
3410
|
ke as darkTheme,
|
|
3420
3411
|
eo as detectInterval,
|
|
3421
3412
|
zo as dracula,
|
|
3422
3413
|
oo as formatDate,
|
|
3423
|
-
|
|
3414
|
+
Ut as formatTime,
|
|
3424
3415
|
Po as githubLight,
|
|
3425
3416
|
Fo as gruvbox,
|
|
3426
3417
|
Lo as handwritten,
|
|
@@ -3433,7 +3424,7 @@ export {
|
|
|
3433
3424
|
Xo as mintBreeze,
|
|
3434
3425
|
Ho as monokaiPro,
|
|
3435
3426
|
Go as nightOwl,
|
|
3436
|
-
|
|
3427
|
+
Yt as normalizeTime,
|
|
3437
3428
|
No as oneDarkPro,
|
|
3438
3429
|
Jo as panda,
|
|
3439
3430
|
jo as peachCream,
|
|
@@ -3443,10 +3434,10 @@ export {
|
|
|
3443
3434
|
Zo as solarizedLight,
|
|
3444
3435
|
ye as themes,
|
|
3445
3436
|
rt as useChartInstance,
|
|
3446
|
-
|
|
3437
|
+
ie as useCrosshairPosition,
|
|
3447
3438
|
oi as useLastYValue,
|
|
3448
3439
|
ii as usePreviousClose,
|
|
3449
3440
|
ti as useTheme,
|
|
3450
|
-
|
|
3441
|
+
Be as useVisibleRange,
|
|
3451
3442
|
Ti as useYRange
|
|
3452
3443
|
};
|