@wick-charts/vue 0.1.0 → 0.1.1
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 +0 -3
- package/dist/index.js +511 -507
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { inject as
|
|
2
|
-
var
|
|
1
|
+
import { inject as Ce, defineComponent as Q, ref as Z, onMounted as K, onUnmounted as tt, watch as st, createCommentVNode as j, shallowRef as le, provide as he, computed as P, openBlock as R, createElementBlock as T, normalizeStyle as z, renderSlot as $e, unref as W, Fragment as O, createElementVNode as _, toDisplayString as L, renderList as ct, createVNode as Xe } from "vue";
|
|
2
|
+
var He = Object.defineProperty, we = (r) => {
|
|
3
3
|
throw TypeError(r);
|
|
4
|
-
},
|
|
4
|
+
}, Ge = (r, t, e) => t in r ? He(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, x = (r, t, e) => Ge(r, typeof t != "symbol" ? t + "" : t, e), jt = (r, t, e) => t.has(r) || we("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) ? we("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), Wt = (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
|
},
|
|
@@ -9,7 +9,7 @@ var Xe = Object.defineProperty, Ce = (r) => {
|
|
|
9
9
|
return h(r, t, o);
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
class
|
|
12
|
+
class Ft {
|
|
13
13
|
constructor() {
|
|
14
14
|
x(this, "listeners", /* @__PURE__ */ new Map());
|
|
15
15
|
}
|
|
@@ -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
|
-
class
|
|
36
|
+
class Ne extends Ft {
|
|
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 },
|
|
@@ -122,13 +122,13 @@ class Ge extends Pt {
|
|
|
122
122
|
this.resizeObserver.disconnect(), this.mainCanvas.remove(), this.overlayCanvas.remove(), this.removeAllListeners();
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function Je(r, t, e, o) {
|
|
126
126
|
const { context: i, bitmapSize: a, horizontalPixelRatio: s } = r;
|
|
127
127
|
i.strokeStyle = o.crosshair.color, i.lineWidth = 1, i.setLineDash([4 * s, 4 * s]);
|
|
128
128
|
const n = Math.round(t) + 0.5, l = Math.round(e) + 0.5;
|
|
129
129
|
i.beginPath(), i.moveTo(n, 0), i.lineTo(n, a.height), i.moveTo(0, l), i.lineTo(a.width, l), i.stroke(), i.setLineDash([]);
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function je(r, t, e, o, i) {
|
|
132
132
|
const { context: a, bitmapSize: s, horizontalPixelRatio: n, verticalPixelRatio: l } = r;
|
|
133
133
|
a.strokeStyle = o.grid.color, a.lineWidth = 1, o.grid.style === "dashed" ? a.setLineDash([4 * n, 4 * n]) : o.grid.style === "dotted" && a.setLineDash([1 * n, 3 * n]);
|
|
134
134
|
const c = e.niceTickValues();
|
|
@@ -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 Ft {
|
|
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);
|
|
@@ -220,7 +220,7 @@ class jt extends Pt {
|
|
|
220
220
|
return i;
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
class
|
|
223
|
+
class Ke {
|
|
224
224
|
constructor(t, e, o) {
|
|
225
225
|
x(this, "dragging", !1), x(this, "lastX", 0), this.viewport = t, this.timeScale = e, this.canvas = o;
|
|
226
226
|
}
|
|
@@ -241,20 +241,20 @@ class je {
|
|
|
241
241
|
return this.dragging;
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
|
-
class
|
|
244
|
+
class qe {
|
|
245
245
|
constructor(t, e) {
|
|
246
246
|
this.viewport = t, this.timeScale = e;
|
|
247
247
|
}
|
|
248
248
|
handleWheel(t) {
|
|
249
249
|
t.preventDefault();
|
|
250
|
-
const e =
|
|
250
|
+
const e = Qe(t.deltaY, t.deltaMode), o = Math.exp(e * 5e-3), i = this.timeScale.getMediaWidth(), a = Math.min(t.offsetX, i), s = this.timeScale.xToTime(a);
|
|
251
251
|
this.viewport.zoomAt(s, o);
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
|
-
function
|
|
254
|
+
function Qe(r, t) {
|
|
255
255
|
return t === WheelEvent.DOM_DELTA_LINE ? r * 8 : t === WheelEvent.DOM_DELTA_PAGE ? r * 24 : r;
|
|
256
256
|
}
|
|
257
|
-
class
|
|
257
|
+
class Ze extends Ft {
|
|
258
258
|
constructor(t, e, o, i) {
|
|
259
259
|
super(), x(this, "zoom"), x(this, "pan"), x(this, "canvas"), x(this, "timeScale"), x(this, "yScale"), x(this, "viewport"), x(this, "onWheel", (a) => {
|
|
260
260
|
this.zoom.handleWheel(a);
|
|
@@ -289,7 +289,7 @@ class Qe extends Pt {
|
|
|
289
289
|
}
|
|
290
290
|
}), x(this, "onTouchEnd", (a) => {
|
|
291
291
|
a.touches.length === 0 && (this.pan.handleMouseUp(), this.touchCount = 0, this.lastTouchDist = 0);
|
|
292
|
-
}), this.canvas = t, this.viewport = e, this.timeScale = o, this.yScale = i, this.zoom = new
|
|
292
|
+
}), this.canvas = t, this.viewport = e, this.timeScale = o, this.yScale = i, this.zoom = new qe(e, o), this.pan = new Ke(e, o, t), t.style.cursor = "crosshair", t.style.touchAction = "none", t.addEventListener("wheel", this.onWheel, { passive: !1 }), t.addEventListener("mousedown", this.onMouseDown), t.addEventListener("mousemove", this.onMouseMove), t.addEventListener("mouseup", this.onMouseUp), t.addEventListener("mouseleave", this.onMouseLeave), t.addEventListener("dblclick", this.onDblClick), t.addEventListener("touchstart", this.onTouchStart, { passive: !1 }), t.addEventListener("touchmove", this.onTouchMove, { passive: !1 }), t.addEventListener("touchend", this.onTouchEnd);
|
|
293
293
|
}
|
|
294
294
|
emitCrosshair(t, e) {
|
|
295
295
|
const o = this.timeScale.xToTime(t), i = this.yScale.yToValue(e);
|
|
@@ -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,23 +318,23 @@ class ue {
|
|
|
318
318
|
}
|
|
319
319
|
}
|
|
320
320
|
const xt = 6e4, vt = 36e5, ft = 864e5;
|
|
321
|
-
function
|
|
321
|
+
function pe(r) {
|
|
322
322
|
return r instanceof Date ? r.getTime() : r;
|
|
323
323
|
}
|
|
324
|
-
function Ze(r) {
|
|
325
|
-
return r.length === 0 || typeof r[0].time == "number" ? r : r.map((t) => ({ ...t, time: t.time.getTime() }));
|
|
326
|
-
}
|
|
327
324
|
function to(r) {
|
|
328
325
|
return r.length === 0 || typeof r[0].time == "number" ? r : r.map((t) => ({ ...t, time: t.time.getTime() }));
|
|
329
326
|
}
|
|
330
327
|
function eo(r) {
|
|
328
|
+
return r.length === 0 || typeof r[0].time == "number" ? r : r.map((t) => ({ ...t, time: t.time.getTime() }));
|
|
329
|
+
}
|
|
330
|
+
function oo(r) {
|
|
331
331
|
if (r.length < 2) return ft;
|
|
332
332
|
const t = [];
|
|
333
333
|
for (let e = 1; e < Math.min(r.length, 20); e++)
|
|
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",
|
|
@@ -343,14 +343,14 @@ function Yt(r, t) {
|
|
|
343
343
|
hour12: !1
|
|
344
344
|
});
|
|
345
345
|
}
|
|
346
|
-
function
|
|
346
|
+
function io(r) {
|
|
347
347
|
return new Date(r).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
|
|
348
348
|
}
|
|
349
|
-
function
|
|
349
|
+
function ao(r) {
|
|
350
350
|
const t = [1e3, 5e3, 1e4, 15e3, 3e4], e = [xt, 5 * xt, 10 * xt, 15 * xt, 30 * xt], o = [vt, 2 * vt, 4 * vt, 6 * vt, 12 * vt], i = [ft, 7 * ft, 30 * ft, 90 * ft, 365 * ft];
|
|
351
351
|
return r < xt ? [...t, ...e, ...o, ...i] : r < vt ? [...e, ...o, ...i] : r < ft ? [...o, ...i] : i;
|
|
352
352
|
}
|
|
353
|
-
class
|
|
353
|
+
class so {
|
|
354
354
|
constructor() {
|
|
355
355
|
x(this, "from", 0), x(this, "to", 0), x(this, "width", 1), x(this, "pixelRatio", 1);
|
|
356
356
|
}
|
|
@@ -377,7 +377,7 @@ class ao {
|
|
|
377
377
|
}
|
|
378
378
|
niceTickValues(t) {
|
|
379
379
|
if (this.to <= this.from) return { ticks: [], tickInterval: 0 };
|
|
380
|
-
const e =
|
|
380
|
+
const e = ao(t), o = (this.to - this.from) / this.width * 80;
|
|
381
381
|
let i = e[e.length - 1];
|
|
382
382
|
for (const n of e)
|
|
383
383
|
if (n >= o) {
|
|
@@ -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,
|
|
@@ -425,7 +425,7 @@ const Ht = [
|
|
|
425
425
|
2e4,
|
|
426
426
|
5e4
|
|
427
427
|
];
|
|
428
|
-
class
|
|
428
|
+
class ro {
|
|
429
429
|
constructor() {
|
|
430
430
|
x(this, "min", 0), x(this, "max", 0), x(this, "height", 1), x(this, "pixelRatio", 1);
|
|
431
431
|
}
|
|
@@ -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;
|
|
@@ -472,14 +472,14 @@ class so {
|
|
|
472
472
|
return e < 0.01 ? t.toFixed(6) : e < 0.1 ? t.toFixed(4) : e < 10 ? t.toFixed(2) : e < 1e3 ? t.toFixed(1) : t.toFixed(0);
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
|
-
const
|
|
475
|
+
const no = {
|
|
476
476
|
colors: ["#26a69a", "#ef5350"],
|
|
477
477
|
barWidthRatio: 0.6,
|
|
478
478
|
stacking: "off"
|
|
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 = { ...no, ...e };
|
|
483
483
|
}
|
|
484
484
|
/** For chart compatibility — returns first store */
|
|
485
485
|
get store() {
|
|
@@ -595,26 +595,26 @@ 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,
|
|
603
|
-
for (const
|
|
604
|
-
|
|
602
|
+
let k = 0, D = 0;
|
|
603
|
+
for (const I of p)
|
|
604
|
+
I > 0 ? k += I : D += I;
|
|
605
605
|
if (m > 0 && k > 0) {
|
|
606
|
-
const
|
|
607
|
-
this.fillBar(n, f - u, $, d,
|
|
608
|
-
} else if (m < 0 &&
|
|
609
|
-
const
|
|
610
|
-
n.fillStyle = w, n.fillRect(f - u, $, d,
|
|
606
|
+
const I = y / k * 100, G = (y + m) / k * 100, $ = a.valueToBitmapY(G), q = a.valueToBitmapY(I), H = Math.max(1, q - $);
|
|
607
|
+
this.fillBar(n, f - u, $, d, H, w);
|
|
608
|
+
} else if (m < 0 && D < 0) {
|
|
609
|
+
const I = F / D * -100, G = (F + m) / D * -100, $ = a.valueToBitmapY(I), q = a.valueToBitmapY(G), H = Math.max(1, q - $);
|
|
610
|
+
n.fillStyle = w, n.fillRect(f - u, $, d, H);
|
|
611
611
|
}
|
|
612
612
|
} else if (m > 0) {
|
|
613
|
-
const k = a.valueToBitmapY(y + m),
|
|
614
|
-
this.fillBar(n, f - u, k, d,
|
|
613
|
+
const k = a.valueToBitmapY(y + m), D = a.valueToBitmapY(y), I = Math.max(1, D - k);
|
|
614
|
+
this.fillBar(n, f - u, k, d, I, w);
|
|
615
615
|
} else {
|
|
616
|
-
const k = a.valueToBitmapY(F),
|
|
617
|
-
n.fillStyle = w, n.fillRect(f - u, k, d,
|
|
616
|
+
const k = a.valueToBitmapY(F), D = a.valueToBitmapY(F + m), I = Math.max(1, D - k);
|
|
617
|
+
n.fillStyle = w, n.fillRect(f - u, k, d, I);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
620
620
|
}
|
|
@@ -623,15 +623,15 @@ class nt {
|
|
|
623
623
|
t.fillStyle = s, t.fillRect(e, o, i, a);
|
|
624
624
|
}
|
|
625
625
|
}
|
|
626
|
-
function
|
|
627
|
-
return r.length <= t ? r :
|
|
626
|
+
function ge(r, t) {
|
|
627
|
+
return r.length <= t ? r : ho(
|
|
628
628
|
r,
|
|
629
629
|
t,
|
|
630
630
|
(e) => e.time,
|
|
631
631
|
(e) => e.value
|
|
632
632
|
);
|
|
633
633
|
}
|
|
634
|
-
function
|
|
634
|
+
function lo(r, t) {
|
|
635
635
|
if (r.length <= t) return r;
|
|
636
636
|
const e = Math.ceil(r.length / t), o = [];
|
|
637
637
|
for (let i = 0; i < r.length; i += e) {
|
|
@@ -650,7 +650,7 @@ function no(r, t) {
|
|
|
650
650
|
}
|
|
651
651
|
return o;
|
|
652
652
|
}
|
|
653
|
-
function
|
|
653
|
+
function ho(r, t, e, o) {
|
|
654
654
|
if (t >= r.length || t < 3) return r;
|
|
655
655
|
const i = [r[0]], a = (r.length - 2) / (t - 2);
|
|
656
656
|
let s = 0;
|
|
@@ -673,54 +673,54 @@ function lo(r, t, e, o) {
|
|
|
673
673
|
}
|
|
674
674
|
return i.push(r[r.length - 1]), i;
|
|
675
675
|
}
|
|
676
|
-
const
|
|
677
|
-
function
|
|
676
|
+
const me = /* @__PURE__ */ new Map(), be = /* @__PURE__ */ new Map(), ve = /* @__PURE__ */ new Map();
|
|
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
|
-
function
|
|
680
|
+
function ke(r, t, e) {
|
|
681
681
|
return `#${r.toString(16).padStart(2, "0")}${t.toString(16).padStart(2, "0")}${e.toString(16).padStart(2, "0")}`;
|
|
682
682
|
}
|
|
683
683
|
function Mt(r, t) {
|
|
684
684
|
if (r.startsWith("rgba")) return r.replace(/[\d.]+\)\s*$/, `${t})`);
|
|
685
685
|
if (r.startsWith("rgb(")) return r.replace(/^rgb\((.*)\)$/i, `rgba($1, ${t})`);
|
|
686
686
|
const e = r + t;
|
|
687
|
-
let o =
|
|
687
|
+
let o = me.get(e);
|
|
688
688
|
if (o) return o;
|
|
689
|
-
const [i, a, s] =
|
|
690
|
-
return o = `rgba(${i}, ${a}, ${s}, ${t})`,
|
|
689
|
+
const [i, a, s] = qt(r);
|
|
690
|
+
return o = `rgba(${i}, ${a}, ${s}, ${t})`, me.set(e, o), o;
|
|
691
691
|
}
|
|
692
|
-
function
|
|
692
|
+
function co(r, t) {
|
|
693
693
|
const e = r + t;
|
|
694
|
-
let o =
|
|
694
|
+
let o = be.get(e);
|
|
695
695
|
if (o) return o;
|
|
696
|
-
const [i, a, s] =
|
|
697
|
-
return o =
|
|
696
|
+
const [i, a, s] = qt(r);
|
|
697
|
+
return o = ke(
|
|
698
698
|
Math.min(255, Math.round(i + (255 - i) * t)),
|
|
699
699
|
Math.min(255, Math.round(a + (255 - a) * t)),
|
|
700
700
|
Math.min(255, Math.round(s + (255 - s) * t))
|
|
701
|
-
),
|
|
701
|
+
), be.set(e, o), o;
|
|
702
702
|
}
|
|
703
|
-
function
|
|
703
|
+
function uo(r, t) {
|
|
704
704
|
const e = r + t;
|
|
705
|
-
let o =
|
|
705
|
+
let o = ve.get(e);
|
|
706
706
|
if (o) return o;
|
|
707
|
-
const [i, a, s] =
|
|
708
|
-
return o =
|
|
707
|
+
const [i, a, s] = qt(r);
|
|
708
|
+
return o = ke(
|
|
709
709
|
Math.max(0, Math.round(i * (1 - t))),
|
|
710
710
|
Math.max(0, Math.round(a * (1 - t))),
|
|
711
711
|
Math.max(0, Math.round(s * (1 - t)))
|
|
712
|
-
),
|
|
712
|
+
), ve.set(e, o), o;
|
|
713
713
|
}
|
|
714
|
-
const
|
|
714
|
+
const fo = {
|
|
715
715
|
upColor: "#26a69a",
|
|
716
716
|
downColor: "#ef5350",
|
|
717
717
|
wickUpColor: "#26a69a",
|
|
718
718
|
wickDownColor: "#ef5350",
|
|
719
719
|
bodyWidthRatio: 0.6
|
|
720
720
|
};
|
|
721
|
-
class
|
|
721
|
+
class Nt {
|
|
722
722
|
constructor(t, e) {
|
|
723
|
-
x(this, "store"), x(this, "options"), this.store = t, this.options = { ...
|
|
723
|
+
x(this, "store"), x(this, "options"), this.store = t, this.options = { ...fo, ...e };
|
|
724
724
|
}
|
|
725
725
|
updateOptions(t) {
|
|
726
726
|
this.options = { ...this.options, ...t };
|
|
@@ -732,7 +732,7 @@ class Gt {
|
|
|
732
732
|
const { scope: e, timeScale: o, yScale: i, dataInterval: a } = t, { context: s, horizontalPixelRatio: n } = e, l = o.getRange();
|
|
733
733
|
let c = this.store.getVisibleData(l.from, l.to);
|
|
734
734
|
const d = e.mediaSize.width;
|
|
735
|
-
if (c.length > d * 2 && (c =
|
|
735
|
+
if (c.length > d * 2 && (c = lo(c, Math.round(d * 1.5))), c.length === 0) return;
|
|
736
736
|
const u = o.barWidthBitmap(a), b = Math.max(1, Math.round(u * this.options.bodyWidthRatio) - 2), v = Math.floor(b / 2), C = Math.max(1, Math.round(n)), w = Math.round(i.getMediaHeight() * e.verticalPixelRatio);
|
|
737
737
|
this.drawVolume(s, c, o, w, u, a);
|
|
738
738
|
const g = [], p = [];
|
|
@@ -779,7 +779,7 @@ class Gt {
|
|
|
779
779
|
const C = o.timeToBitmapX(v.time), w = i.valueToBitmapY(v.high), g = i.valueToBitmapY(v.low), p = C - Math.floor(n / 2);
|
|
780
780
|
t.fillRect(p, w, n, g - w);
|
|
781
781
|
}
|
|
782
|
-
const d = this.options.candleGradient !== !1, u = d ?
|
|
782
|
+
const d = this.options.candleGradient !== !1, u = d ? co(l, 0.2) : l, b = d ? uo(l, 0.15) : l;
|
|
783
783
|
d || (t.fillStyle = l);
|
|
784
784
|
for (const v of e) {
|
|
785
785
|
const C = o.timeToBitmapX(v.time), w = i.valueToBitmapY(v.open), g = i.valueToBitmapY(v.close), p = Math.min(w, g), m = Math.max(1, Math.abs(g - w));
|
|
@@ -791,16 +791,16 @@ class Gt {
|
|
|
791
791
|
}
|
|
792
792
|
}
|
|
793
793
|
}
|
|
794
|
-
const
|
|
794
|
+
const po = {
|
|
795
795
|
colors: ["#2962FF"],
|
|
796
796
|
lineWidth: 1,
|
|
797
797
|
areaFill: !0,
|
|
798
798
|
pulse: !0,
|
|
799
799
|
stacking: "off"
|
|
800
800
|
};
|
|
801
|
-
class
|
|
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 = { ...po, ...e };
|
|
804
804
|
}
|
|
805
805
|
get store() {
|
|
806
806
|
return this.stores[0];
|
|
@@ -859,7 +859,7 @@ class j {
|
|
|
859
859
|
if (!this.stores[d].isVisible()) continue;
|
|
860
860
|
let u = this.stores[d].getVisibleData(s.from, s.to);
|
|
861
861
|
const b = e.mediaSize.width;
|
|
862
|
-
if (u.length > b * 2 && (u =
|
|
862
|
+
if (u.length > b * 2 && (u = ge(u, Math.round(b * 1.5))), u.length < 2) continue;
|
|
863
863
|
const v = this.options.colors[d % this.options.colors.length];
|
|
864
864
|
a.beginPath(), a.moveTo(o.timeToBitmapX(u[0].time), i.valueToBitmapY(u[0].value));
|
|
865
865
|
for (let C = 1; C < u.length; C++)
|
|
@@ -877,7 +877,7 @@ class j {
|
|
|
877
877
|
renderStacked(t, e) {
|
|
878
878
|
const { scope: o, timeScale: i, yScale: a } = t, { context: s } = o, n = i.getRange(), { verticalPixelRatio: l } = o, c = Math.max(1, Math.round(this.options.lineWidth * l)), d = o.mediaSize.width, u = this.stores.map((g) => {
|
|
879
879
|
let p = g.getVisibleData(n.from, n.to);
|
|
880
|
-
return p.length > d * 2 && (p =
|
|
880
|
+
return p.length > d * 2 && (p = ge(p, Math.round(d * 1.5))), p;
|
|
881
881
|
}), b = /* @__PURE__ */ new Set();
|
|
882
882
|
for (const g of u)
|
|
883
883
|
for (const p of g) b.add(p.time);
|
|
@@ -945,28 +945,28 @@ class j {
|
|
|
945
945
|
t.beginPath(), t.arc(e, o, l, 0, Math.PI * 2), t.fillStyle = Mt(i, n * 0.3), t.fill(), t.beginPath(), t.arc(e, o, s, 0, Math.PI * 2), t.fillStyle = i, t.fill();
|
|
946
946
|
}
|
|
947
947
|
}
|
|
948
|
-
const
|
|
948
|
+
const go = {
|
|
949
949
|
innerRadiusRatio: 0,
|
|
950
950
|
padAngle: 0.02,
|
|
951
951
|
strokeColor: "transparent",
|
|
952
952
|
strokeWidth: 0
|
|
953
|
-
},
|
|
954
|
-
function
|
|
953
|
+
}, At = Math.PI * 2;
|
|
954
|
+
function mo(r) {
|
|
955
955
|
if (!r.startsWith("#")) return !1;
|
|
956
956
|
const t = parseInt(r.slice(1, 3), 16), e = parseInt(r.slice(3, 5), 16), o = parseInt(r.slice(5, 7), 16);
|
|
957
957
|
return t * 0.299 + e * 0.587 + o * 0.114 > 150;
|
|
958
958
|
}
|
|
959
|
-
function
|
|
959
|
+
function bo(r, t) {
|
|
960
960
|
if (!r.startsWith("#")) return r;
|
|
961
961
|
const e = Math.min(255, parseInt(r.slice(1, 3), 16) + Math.round(255 * t)), o = Math.min(255, parseInt(r.slice(3, 5), 16) + Math.round(255 * t)), i = Math.min(255, parseInt(r.slice(5, 7), 16) + Math.round(255 * t));
|
|
962
962
|
return `#${e.toString(16).padStart(2, "0")}${o.toString(16).padStart(2, "0")}${i.toString(16).padStart(2, "0")}`;
|
|
963
963
|
}
|
|
964
|
-
function
|
|
964
|
+
function vo(r, t, e) {
|
|
965
965
|
return r + (t - r) * Math.min(1, e);
|
|
966
966
|
}
|
|
967
967
|
class bt {
|
|
968
968
|
constructor(t) {
|
|
969
|
-
x(this, "data", []), x(this, "options"), x(this, "hoverIndex", -1), x(this, "sliceOffsets", []), x(this, "lastRenderTime", 0), this.options = { ...
|
|
969
|
+
x(this, "data", []), x(this, "options"), x(this, "hoverIndex", -1), x(this, "sliceOffsets", []), x(this, "lastRenderTime", 0), this.options = { ...go, ...t };
|
|
970
970
|
}
|
|
971
971
|
getData() {
|
|
972
972
|
return this.data;
|
|
@@ -989,10 +989,10 @@ class bt {
|
|
|
989
989
|
const s = o / 2, n = i / 2, l = Math.min(o, i) / 2 * 0.85, c = l * this.options.innerRadiusRatio, d = t - s, u = e - n, b = Math.sqrt(d * d + u * u);
|
|
990
990
|
if (b > l || b < c) return -1;
|
|
991
991
|
let v = Math.atan2(u, d) + Math.PI / 2;
|
|
992
|
-
v < 0 && (v +=
|
|
992
|
+
v < 0 && (v += At);
|
|
993
993
|
let C = 0;
|
|
994
994
|
for (let w = 0; w < this.data.length; w++) {
|
|
995
|
-
const g = this.data[w].value / a *
|
|
995
|
+
const g = this.data[w].value / a * At;
|
|
996
996
|
if (v >= C && v < C + g) return w;
|
|
997
997
|
C += g;
|
|
998
998
|
}
|
|
@@ -1010,36 +1010,36 @@ class bt {
|
|
|
1010
1010
|
if (this.data.length === 0) return;
|
|
1011
1011
|
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
1012
|
this.lastRenderTime = n;
|
|
1013
|
-
const c = this.data.reduce((k,
|
|
1013
|
+
const c = this.data.reduce((k, D) => k + D.value, 0);
|
|
1014
1014
|
if (c <= 0) return;
|
|
1015
1015
|
const d = 10;
|
|
1016
1016
|
for (; this.sliceOffsets.length < this.data.length; ) this.sliceOffsets.push(0);
|
|
1017
1017
|
for (let k = 0; k < this.data.length; k++) {
|
|
1018
|
-
const
|
|
1019
|
-
this.sliceOffsets[k] =
|
|
1018
|
+
const D = k === this.hoverIndex ? 1 : 0;
|
|
1019
|
+
this.sliceOffsets[k] = vo(this.sliceOffsets[k], D, d * l);
|
|
1020
1020
|
}
|
|
1021
1021
|
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
1022
|
let y = -Math.PI / 2;
|
|
1023
1023
|
for (let k = 0; k < this.data.length; k++) {
|
|
1024
|
-
const
|
|
1025
|
-
i.beginPath(), i.arc(gt, mt, C,
|
|
1026
|
-
const
|
|
1027
|
-
|
|
1024
|
+
const D = this.data[k], I = D.value / c * At, G = y + g / 2, $ = y + I - g / 2, q = y + I / 2, H = D.color ?? u[k % u.length], pt = this.sliceOffsets[k] * f, N = Math.cos(q) * pt, It = Math.sin(q) * pt, gt = b + N, mt = v + It;
|
|
1025
|
+
i.beginPath(), i.arc(gt, mt, C, G, $), w > 0 ? i.arc(gt, mt, w, $, G, !0) : i.lineTo(gt, mt), i.closePath();
|
|
1026
|
+
const Rt = i.createRadialGradient(gt, mt, w || 0, gt, mt, C);
|
|
1027
|
+
Rt.addColorStop(0, bo(H, 0.15)), Rt.addColorStop(1, H), i.fillStyle = Rt, this.sliceOffsets[k] > 0.01 && (i.shadowColor = "rgba(0,0,0,0.25)", i.shadowBlur = 12 * s * this.sliceOffsets[k], i.shadowOffsetX = N * 0.3, i.shadowOffsetY = It * 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 += I;
|
|
1028
1028
|
}
|
|
1029
1029
|
y = -Math.PI / 2;
|
|
1030
1030
|
const F = w > 0 ? (C + w) / 2 : C * 0.65;
|
|
1031
1031
|
i.textAlign = "center", i.textBaseline = "middle", i.font = `${11 * s}px ${o.typography.fontFamily}`;
|
|
1032
1032
|
for (let k = 0; k < this.data.length; k++) {
|
|
1033
|
-
const
|
|
1034
|
-
if (
|
|
1035
|
-
const
|
|
1036
|
-
i.fillStyle =
|
|
1033
|
+
const D = this.data[k], I = D.value / c * At;
|
|
1034
|
+
if (I > 0.3) {
|
|
1035
|
+
const G = y + I / 2, $ = this.sliceOffsets[k] * f, q = b + Math.cos(G) * (F + $), H = v + Math.sin(G) * (F + $), pt = D.color ?? u[k % u.length];
|
|
1036
|
+
i.fillStyle = mo(pt) ? "#000000" : "#ffffff", i.fillText(D.label, q, H);
|
|
1037
1037
|
}
|
|
1038
|
-
y +=
|
|
1038
|
+
y += I;
|
|
1039
1039
|
}
|
|
1040
1040
|
}
|
|
1041
1041
|
}
|
|
1042
|
-
const
|
|
1042
|
+
const Se = {
|
|
1043
1043
|
background: "#131722",
|
|
1044
1044
|
chartGradient: ["#1a1f2e", "#101318"],
|
|
1045
1045
|
typography: {
|
|
@@ -1104,7 +1104,7 @@ const ke = {
|
|
|
1104
1104
|
right: { intervals: 3 },
|
|
1105
1105
|
left: { intervals: 0 }
|
|
1106
1106
|
};
|
|
1107
|
-
class
|
|
1107
|
+
class yo extends Ft {
|
|
1108
1108
|
constructor({ padding: t } = {}) {
|
|
1109
1109
|
super(), x(this, "_visibleRange", { from: 0, to: 0 }), x(this, "_yRange", { min: 0, max: 0 }), x(this, "_autoScroll", !0), x(this, "padding"), x(this, "dataInterval", 6e4), x(this, "_dataStart", null), x(this, "_dataEnd", null), x(this, "_animating", !1), x(this, "animStartTime", 0), x(this, "animDuration", 0), x(this, "animFrom", { from: 0, to: 0 }), x(this, "animTo", { from: 0, to: 0 }), this.padding = {
|
|
1110
1110
|
top: (t == null ? void 0 : t.top) ?? dt.top,
|
|
@@ -1173,7 +1173,7 @@ class vo extends Pt {
|
|
|
1173
1173
|
/** Called by the render loop before each frame. Returns true if still animating. */
|
|
1174
1174
|
tick(t) {
|
|
1175
1175
|
if (!this._animating) return !1;
|
|
1176
|
-
const e = t - this.animStartTime, o = Math.min(1, e / this.animDuration), i = 1 - (1 - o) ** 3, a =
|
|
1176
|
+
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
1177
|
return s > a && this.applyRange(a, s), o >= 1 && (this._animating = !1), this._animating;
|
|
1178
1178
|
}
|
|
1179
1179
|
/** Set the Y-axis range. Adds pixel-based padding unless a side has a fixed (explicit) bound. */
|
|
@@ -1222,18 +1222,18 @@ class vo extends Pt {
|
|
|
1222
1222
|
this.cancelAnimation(), this.removeAllListeners();
|
|
1223
1223
|
}
|
|
1224
1224
|
}
|
|
1225
|
-
let
|
|
1226
|
-
var E,
|
|
1227
|
-
class
|
|
1225
|
+
let xo = 0;
|
|
1226
|
+
var E, B, U, Ct, Dt, S, V, Bt, ot, ht, X, lt, Jt, wt, ut, zt, yt, kt, Pt, Yt, it, at, St;
|
|
1227
|
+
class Co extends Ft {
|
|
1228
1228
|
constructor(t, e) {
|
|
1229
1229
|
var o, i, a;
|
|
1230
|
-
super(), A(this, kt), A(this, E), A(this,
|
|
1230
|
+
super(), A(this, kt), A(this, E), A(this, B), A(this, U), A(this, Ct), x(this, "timeScale"), x(this, "yScale"), A(this, Dt), A(this, S, []), A(this, V), A(this, Bt), A(this, ot, 6e4), A(this, ht, null), A(this, X, {}), A(this, lt, null), A(this, Jt, !1), A(this, wt, {}), A(this, ut, 0), A(this, zt, !1), A(this, yt, !1), A(this, Yt, 0), A(this, it, 0), A(this, at, 0), A(this, St, !1), e != null && e.axis && (M(this, wt, e.axis), M(this, X, { 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) ?? Se), M(this, Bt, (e == null ? void 0 : e.grid) !== !1), M(this, E, new Ne(t)), M(this, B, new yo({ padding: e == null ? void 0 : e.padding })), this.timeScale = new so(), this.yScale = new ro(), M(this, U, new fe(() => this.renderMain())), M(this, Ct, new fe(() => this.renderOverlay()));
|
|
1231
1231
|
const s = (e == null ? void 0 : e.interactive) !== !1;
|
|
1232
|
-
M(this,
|
|
1232
|
+
M(this, Dt, s ? new Ze(h(this, E).canvas, h(this, B), this.timeScale, this.yScale) : null), h(this, B).on("change", () => {
|
|
1233
1233
|
this.syncScales(), h(this, U).markDirty(), this.emit("viewportChange");
|
|
1234
1234
|
}), h(this, E).on("resize", () => {
|
|
1235
1235
|
this.updateScales(!0), this.renderMain(), this.emit("viewportChange");
|
|
1236
|
-
}), (a = h(this,
|
|
1236
|
+
}), (a = h(this, Dt)) == null || a.on("crosshairMove", (n) => {
|
|
1237
1237
|
M(this, ht, n), h(this, Ct).markDirty(), this.emit("crosshairMove", n), this.updatePieHover(n);
|
|
1238
1238
|
});
|
|
1239
1239
|
}
|
|
@@ -1247,14 +1247,14 @@ class xo extends Pt {
|
|
|
1247
1247
|
}
|
|
1248
1248
|
/** Add a candlestick (OHLC) series and return its unique ID. */
|
|
1249
1249
|
addCandlestickSeries(t) {
|
|
1250
|
-
const e = new
|
|
1250
|
+
const e = new Kt(), o = new Nt(e, {
|
|
1251
1251
|
upColor: h(this, V).candlestick.upColor,
|
|
1252
1252
|
downColor: h(this, V).candlestick.downColor,
|
|
1253
1253
|
wickUpColor: h(this, V).candlestick.wickUpColor,
|
|
1254
1254
|
wickDownColor: h(this, V).candlestick.wickDownColor,
|
|
1255
1255
|
bodyWidthRatio: 0.6,
|
|
1256
1256
|
...t
|
|
1257
|
-
}), i =
|
|
1257
|
+
}), i = Wt(this, kt, Pt).call(this, t == null ? void 0 : t.id);
|
|
1258
1258
|
return e.on("update", () => {
|
|
1259
1259
|
this.onDataChanged();
|
|
1260
1260
|
}), h(this, S).push({ id: i, renderer: o, store: e, visible: !0 }), M(this, lt, null), this.updateViewportPadding(), this.emit("seriesChange"), i;
|
|
@@ -1267,12 +1267,12 @@ class xo extends Pt {
|
|
|
1267
1267
|
const { layers: n, ...l } = t ?? {};
|
|
1268
1268
|
o = n ?? 1, i = l;
|
|
1269
1269
|
}
|
|
1270
|
-
const a = new
|
|
1270
|
+
const a = new J(o, {
|
|
1271
1271
|
colors: o === 1 ? [h(this, V).line.color] : h(this, V).seriesColors.slice(0, o),
|
|
1272
1272
|
lineWidth: h(this, V).line.width,
|
|
1273
1273
|
areaFill: !0,
|
|
1274
1274
|
...i
|
|
1275
|
-
}), s =
|
|
1275
|
+
}), s = Wt(this, kt, Pt).call(this, i == null ? void 0 : i.id);
|
|
1276
1276
|
for (const n of a.stores)
|
|
1277
1277
|
n.on("update", () => this.onDataChanged());
|
|
1278
1278
|
return h(this, S).push({ id: s, label: i == null ? void 0 : i.label, renderer: a, store: a.stores[0], visible: !0 }), M(this, lt, null), this.updateViewportPadding(), this.emit("seriesChange"), s;
|
|
@@ -1280,7 +1280,7 @@ class xo extends Pt {
|
|
|
1280
1280
|
/** Set data for a specific layer within a line series. */
|
|
1281
1281
|
setLineLayerData(t, e, o) {
|
|
1282
1282
|
const i = h(this, S).find((s) => s.id === t);
|
|
1283
|
-
if (!i || !(i.renderer instanceof
|
|
1283
|
+
if (!i || !(i.renderer instanceof J)) return;
|
|
1284
1284
|
const a = i.renderer.stores[e];
|
|
1285
1285
|
a && a.setData(o);
|
|
1286
1286
|
}
|
|
@@ -1296,7 +1296,7 @@ class xo extends Pt {
|
|
|
1296
1296
|
colors: h(this, V).seriesColors.slice(0, o),
|
|
1297
1297
|
barWidthRatio: 0.6,
|
|
1298
1298
|
...i
|
|
1299
|
-
}), s =
|
|
1299
|
+
}), s = Wt(this, kt, Pt).call(this, i == null ? void 0 : i.id);
|
|
1300
1300
|
for (const n of a.stores)
|
|
1301
1301
|
n.on("update", () => this.onDataChanged());
|
|
1302
1302
|
return h(this, S).push({ id: s, label: i == null ? void 0 : i.label, renderer: a, store: a.stores[0], visible: !0 }), M(this, lt, null), this.updateViewportPadding(), this.emit("seriesChange"), s;
|
|
@@ -1310,7 +1310,7 @@ class xo extends Pt {
|
|
|
1310
1310
|
}
|
|
1311
1311
|
/** Add a pie/donut series. Set `innerRadiusRatio > 0` for donut. */
|
|
1312
1312
|
addPieSeries(t) {
|
|
1313
|
-
const e = new bt(t), o =
|
|
1313
|
+
const e = new bt(t), o = Wt(this, kt, Pt).call(this, t == null ? void 0 : t.id);
|
|
1314
1314
|
return h(this, S).push({ id: o, label: t == null ? void 0 : t.label, renderer: e, store: null, visible: !0 }), M(this, lt, null), this.updateViewportPadding(), this.emit("seriesChange"), o;
|
|
1315
1315
|
}
|
|
1316
1316
|
/** Set data for a pie/donut series. */
|
|
@@ -1323,7 +1323,7 @@ class xo extends Pt {
|
|
|
1323
1323
|
const e = h(this, S).findIndex((o) => o.id === t);
|
|
1324
1324
|
if (e >= 0) {
|
|
1325
1325
|
const { renderer: o, store: i } = h(this, S)[e];
|
|
1326
|
-
if (o instanceof
|
|
1326
|
+
if (o instanceof J || o instanceof nt)
|
|
1327
1327
|
for (const a of o.stores) a.removeAllListeners();
|
|
1328
1328
|
else
|
|
1329
1329
|
i == null || i.removeAllListeners();
|
|
@@ -1334,27 +1334,27 @@ class xo extends Pt {
|
|
|
1334
1334
|
setSeriesData(t, e) {
|
|
1335
1335
|
const o = h(this, S).find((a) => a.id === t);
|
|
1336
1336
|
if (!(o != null && o.store)) return;
|
|
1337
|
-
const i = e.length > 0 && "open" in e[0] ?
|
|
1337
|
+
const i = e.length > 0 && "open" in e[0] ? to(e) : eo(e);
|
|
1338
1338
|
o.store.setData(i);
|
|
1339
1339
|
}
|
|
1340
1340
|
/** Append a new data point to the end of a series (real-time tick). */
|
|
1341
1341
|
appendData(t, e) {
|
|
1342
1342
|
const o = h(this, S).find((a) => a.id === t);
|
|
1343
1343
|
if (!(o != null && o.store)) return;
|
|
1344
|
-
const i = { ...e, time:
|
|
1344
|
+
const i = { ...e, time: pe(e.time) };
|
|
1345
1345
|
o.store.append(i);
|
|
1346
1346
|
}
|
|
1347
1347
|
/** Update the last data point of a series in place (e.g. live candle update). */
|
|
1348
1348
|
updateData(t, e) {
|
|
1349
1349
|
const o = h(this, S).find((a) => a.id === t);
|
|
1350
1350
|
if (!(o != null && o.store)) return;
|
|
1351
|
-
const i = { ...e, time:
|
|
1351
|
+
const i = { ...e, time: pe(e.time) };
|
|
1352
1352
|
o.store.updateLast(i);
|
|
1353
1353
|
}
|
|
1354
1354
|
/** Update visual options (color, width, etc.) for an existing series. */
|
|
1355
1355
|
updateSeriesOptions(t, e) {
|
|
1356
1356
|
const o = h(this, S).find((i) => i.id === t);
|
|
1357
|
-
o && ((o.renderer instanceof
|
|
1357
|
+
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
1358
|
}
|
|
1359
1359
|
/**
|
|
1360
1360
|
* Batch multiple updates: suppress recomputes until `fn` returns.
|
|
@@ -1370,11 +1370,11 @@ class xo extends Pt {
|
|
|
1370
1370
|
}
|
|
1371
1371
|
/** @deprecated Use {@link batch} instead. */
|
|
1372
1372
|
beginUpdate() {
|
|
1373
|
-
|
|
1373
|
+
ce(this, ut)._++;
|
|
1374
1374
|
}
|
|
1375
1375
|
/** @deprecated Use {@link batch} instead. */
|
|
1376
1376
|
endUpdate() {
|
|
1377
|
-
--
|
|
1377
|
+
--ce(this, ut)._ <= 0 && (M(this, ut, 0), h(this, zt) ? (M(this, zt, !1), M(this, yt, !1), this.onDataChanged()) : h(this, yt) && (M(this, yt, !1), this.updateYRange(!0), h(this, U).markDirty()));
|
|
1378
1378
|
}
|
|
1379
1379
|
/** Show or hide a series. Hidden series are not rendered and excluded from Y-range. */
|
|
1380
1380
|
setSeriesVisible(t, e) {
|
|
@@ -1396,7 +1396,7 @@ class xo extends Pt {
|
|
|
1396
1396
|
const i = h(this, S).find((s) => s.id === t);
|
|
1397
1397
|
if (!i) return;
|
|
1398
1398
|
const a = i.renderer;
|
|
1399
|
-
if (a instanceof nt || a instanceof
|
|
1399
|
+
if (a instanceof nt || a instanceof J) {
|
|
1400
1400
|
const s = a.stores[e];
|
|
1401
1401
|
if (s) {
|
|
1402
1402
|
if (s.isVisible() === o) return;
|
|
@@ -1413,20 +1413,20 @@ class xo extends Pt {
|
|
|
1413
1413
|
const i = h(this, S).find((s) => s.id === t);
|
|
1414
1414
|
if (!i) return !0;
|
|
1415
1415
|
const a = i.renderer;
|
|
1416
|
-
return a instanceof nt || a instanceof
|
|
1416
|
+
return a instanceof nt || a instanceof J ? ((o = a.stores[e]) == null ? void 0 : o.isVisible()) ?? !0 : !0;
|
|
1417
1417
|
}
|
|
1418
1418
|
/** Auto-fit the viewport to show all data across every series. */
|
|
1419
1419
|
fitContent() {
|
|
1420
1420
|
const { first: t, last: e } = this.getDataBounds();
|
|
1421
1421
|
if (t === void 0 || e === void 0) return;
|
|
1422
1422
|
const o = h(this, E).size.media.width - this.yAxisWidth;
|
|
1423
|
-
h(this,
|
|
1423
|
+
h(this, B).fitToData(t, e, o, !0);
|
|
1424
1424
|
}
|
|
1425
1425
|
getVisibleRange() {
|
|
1426
|
-
return h(this,
|
|
1426
|
+
return h(this, B).visibleRange;
|
|
1427
1427
|
}
|
|
1428
1428
|
getYRange() {
|
|
1429
|
-
return h(this,
|
|
1429
|
+
return h(this, B).yRange;
|
|
1430
1430
|
}
|
|
1431
1431
|
getCrosshairPosition() {
|
|
1432
1432
|
return h(this, ht);
|
|
@@ -1437,7 +1437,7 @@ class xo extends Pt {
|
|
|
1437
1437
|
if (!(e != null && e.store)) return null;
|
|
1438
1438
|
const o = e.store.last();
|
|
1439
1439
|
if (!o) return null;
|
|
1440
|
-
const i = (l) => "close" in l ? l.close : l.value, { from: a, to: s } = h(this,
|
|
1440
|
+
const i = (l) => "close" in l ? l.close : l.value, { from: a, to: s } = h(this, B).visibleRange;
|
|
1441
1441
|
if (o.time >= a && o.time <= s)
|
|
1442
1442
|
return { value: i(o), isLive: !0 };
|
|
1443
1443
|
const n = e.store.getVisibleData(a, s);
|
|
@@ -1474,7 +1474,7 @@ class xo extends Pt {
|
|
|
1474
1474
|
const o = h(this, S).find((n) => n.id === t);
|
|
1475
1475
|
if (!o || !o.visible) return null;
|
|
1476
1476
|
const i = o.renderer;
|
|
1477
|
-
if (!(i instanceof nt) && !(i instanceof
|
|
1477
|
+
if (!(i instanceof nt) && !(i instanceof J) || i.stores.length <= 1) return null;
|
|
1478
1478
|
const a = i.getColors(), s = [];
|
|
1479
1479
|
for (let n = 0; n < i.stores.length; n++) {
|
|
1480
1480
|
if (!i.stores[n].isVisible()) continue;
|
|
@@ -1509,7 +1509,7 @@ class xo extends Pt {
|
|
|
1509
1509
|
const e = h(this, S).find((a) => a.id === t);
|
|
1510
1510
|
if (!e) return null;
|
|
1511
1511
|
const o = e.renderer;
|
|
1512
|
-
if (!(o instanceof nt) && !(o instanceof
|
|
1512
|
+
if (!(o instanceof nt) && !(o instanceof J)) return null;
|
|
1513
1513
|
const i = o.getColors();
|
|
1514
1514
|
return o.stores.map((a, s) => ({
|
|
1515
1515
|
color: i[s % i.length]
|
|
@@ -1550,14 +1550,14 @@ class xo extends Pt {
|
|
|
1550
1550
|
const e = h(this, V).line.color;
|
|
1551
1551
|
M(this, V, t);
|
|
1552
1552
|
for (const o of h(this, S))
|
|
1553
|
-
o.renderer instanceof
|
|
1553
|
+
o.renderer instanceof Nt ? o.renderer.updateOptions({
|
|
1554
1554
|
upColor: t.candlestick.upColor,
|
|
1555
1555
|
downColor: t.candlestick.downColor,
|
|
1556
1556
|
wickUpColor: t.candlestick.wickUpColor,
|
|
1557
1557
|
wickDownColor: t.candlestick.wickDownColor
|
|
1558
1558
|
}) : o.renderer instanceof nt ? o.renderer.updateOptions({
|
|
1559
1559
|
colors: t.seriesColors.slice(0, o.renderer.stores.length)
|
|
1560
|
-
}) : o.renderer instanceof
|
|
1560
|
+
}) : o.renderer instanceof J && (o.renderer.stores.length === 1 ? o.renderer.getColor() === e && o.renderer.updateOptions({ colors: [t.line.color] }) : o.renderer.updateOptions({
|
|
1561
1561
|
colors: t.seriesColors.slice(0, o.renderer.stores.length)
|
|
1562
1562
|
}));
|
|
1563
1563
|
h(this, U).markDirty();
|
|
@@ -1571,7 +1571,7 @@ class xo extends Pt {
|
|
|
1571
1571
|
const i = this.yAxisWidth, a = this.xAxisHeight;
|
|
1572
1572
|
M(this, wt, t);
|
|
1573
1573
|
const s = { min: (e = t.y) == null ? void 0 : e.min, max: (o = t.y) == null ? void 0 : o.max };
|
|
1574
|
-
M(this,
|
|
1574
|
+
M(this, X, s), M(this, St, !1), this.updateYRange(!0), (this.yAxisWidth !== i || this.xAxisHeight !== a) && this.updateScales(!0), h(this, U).markDirty();
|
|
1575
1575
|
}
|
|
1576
1576
|
getMediaSize() {
|
|
1577
1577
|
return h(this, E).size.media;
|
|
@@ -1590,11 +1590,11 @@ class xo extends Pt {
|
|
|
1590
1590
|
}
|
|
1591
1591
|
/** Update viewport padding at runtime. Refits the visible range to current data bounds. */
|
|
1592
1592
|
setPadding(t) {
|
|
1593
|
-
h(this,
|
|
1593
|
+
h(this, B).setPadding(t);
|
|
1594
1594
|
const { first: e, last: o } = this.getDataBounds();
|
|
1595
1595
|
if (e !== void 0 && o !== void 0) {
|
|
1596
1596
|
const i = h(this, E).size.media.width - this.yAxisWidth;
|
|
1597
|
-
h(this,
|
|
1597
|
+
h(this, B).fitToData(e, o, i, !1);
|
|
1598
1598
|
}
|
|
1599
1599
|
this.syncScales(), h(this, U).markDirty();
|
|
1600
1600
|
}
|
|
@@ -1604,7 +1604,7 @@ class xo extends Pt {
|
|
|
1604
1604
|
}
|
|
1605
1605
|
/** Notify chart that a YLabel is present (affects right padding). */
|
|
1606
1606
|
setYLabel(t) {
|
|
1607
|
-
M(this,
|
|
1607
|
+
M(this, Jt, t), this.updateViewportPadding();
|
|
1608
1608
|
}
|
|
1609
1609
|
updatePieHover(t) {
|
|
1610
1610
|
const e = h(this, E).size;
|
|
@@ -1624,7 +1624,7 @@ class xo extends Pt {
|
|
|
1624
1624
|
/** Tear down the chart: cancel animations, remove listeners, and detach the canvas. */
|
|
1625
1625
|
destroy() {
|
|
1626
1626
|
var t;
|
|
1627
|
-
h(this,
|
|
1627
|
+
h(this, B).destroy(), h(this, U).destroy(), h(this, Ct).destroy(), (t = h(this, Dt)) == null || t.destroy(), h(this, E).destroy(), this.removeAllListeners();
|
|
1628
1628
|
}
|
|
1629
1629
|
/** Compute the earliest and latest timestamps across all series. */
|
|
1630
1630
|
getDataBounds() {
|
|
@@ -1638,27 +1638,27 @@ class xo extends Pt {
|
|
|
1638
1638
|
}
|
|
1639
1639
|
onDataChanged() {
|
|
1640
1640
|
if (h(this, ut) > 0) {
|
|
1641
|
-
M(this,
|
|
1641
|
+
M(this, zt, !0);
|
|
1642
1642
|
return;
|
|
1643
1643
|
}
|
|
1644
1644
|
this.updateDataInterval();
|
|
1645
1645
|
const { first: t, last: e } = this.getDataBounds();
|
|
1646
|
-
t !== void 0 && h(this,
|
|
1646
|
+
t !== void 0 && h(this, B).setDataStart(t), e !== void 0 && h(this, B).setDataEnd(e);
|
|
1647
1647
|
let o = 0;
|
|
1648
1648
|
for (const a of h(this, S))
|
|
1649
|
-
if (a.renderer instanceof
|
|
1649
|
+
if (a.renderer instanceof J || a.renderer instanceof nt)
|
|
1650
1650
|
for (const s of a.renderer.stores) o += s.length;
|
|
1651
1651
|
else a.store && (o += a.store.length);
|
|
1652
|
-
const i = o - h(this,
|
|
1653
|
-
if (M(this,
|
|
1654
|
-
const { from: a, to: s } = h(this,
|
|
1655
|
-
n ? h(this,
|
|
1652
|
+
const i = o - h(this, Yt) > 5;
|
|
1653
|
+
if (M(this, Yt, o), t !== void 0 && e !== void 0) {
|
|
1654
|
+
const { from: a, to: s } = h(this, B).visibleRange, n = a === 0 && s === 0, l = h(this, E).size.media.width - this.yAxisWidth;
|
|
1655
|
+
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
1656
|
}
|
|
1657
1657
|
this.updateYRange(i), this.syncScales(), h(this, U).markDirty(), this.emit("dataUpdate");
|
|
1658
1658
|
}
|
|
1659
1659
|
/** Check whether the last data point of any series falls within the visible time range. */
|
|
1660
1660
|
isLastPointVisible() {
|
|
1661
|
-
const { from: t, to: e } = h(this,
|
|
1661
|
+
const { from: t, to: e } = h(this, B).visibleRange;
|
|
1662
1662
|
for (const o of h(this, S)) {
|
|
1663
1663
|
if (!o.visible || !o.store) continue;
|
|
1664
1664
|
const i = o.store.last();
|
|
@@ -1672,15 +1672,15 @@ class xo extends Pt {
|
|
|
1672
1672
|
const e = t.store.getAll();
|
|
1673
1673
|
if (e.length >= 2) {
|
|
1674
1674
|
const o = e.slice(0, 20).map((i) => i.time);
|
|
1675
|
-
M(this, ot,
|
|
1675
|
+
M(this, ot, oo(o)), h(this, B).setDataInterval(h(this, ot));
|
|
1676
1676
|
break;
|
|
1677
1677
|
}
|
|
1678
1678
|
}
|
|
1679
1679
|
}
|
|
1680
1680
|
updateYRange(t = !1) {
|
|
1681
1681
|
let e = 1 / 0, o = -1 / 0;
|
|
1682
|
-
const i = h(this,
|
|
1683
|
-
let a = h(this,
|
|
1682
|
+
const i = h(this, B).visibleRange;
|
|
1683
|
+
let a = h(this, X).min !== void 0 && h(this, X).min !== "auto" && typeof h(this, X).min != "number" || h(this, X).max !== void 0 && h(this, X).max !== "auto" && typeof h(this, X).max != "number" ? [] : null;
|
|
1684
1684
|
for (const c of h(this, S)) {
|
|
1685
1685
|
if (!c.visible) continue;
|
|
1686
1686
|
if (c.renderer.getValueRange) {
|
|
@@ -1705,15 +1705,15 @@ class xo extends Pt {
|
|
|
1705
1705
|
M(this, St, !1);
|
|
1706
1706
|
return;
|
|
1707
1707
|
}
|
|
1708
|
-
if (e = this.resolveBound(h(this,
|
|
1708
|
+
if (e = this.resolveBound(h(this, X).min, e, o, a ?? [], "min"), o = this.resolveBound(h(this, X).max, o, e, a ?? [], "max"), !h(this, St) || t)
|
|
1709
1709
|
M(this, it, e), M(this, at, o), M(this, St, !0);
|
|
1710
1710
|
else {
|
|
1711
1711
|
M(this, it, h(this, it) + (e - h(this, it)) * 0.2), M(this, at, h(this, at) + (o - h(this, at)) * 0.2), e < h(this, it) && M(this, it, e), o > h(this, at) && M(this, at, o);
|
|
1712
1712
|
const c = Math.max(Math.abs(h(this, at) - h(this, it)) * 1e-4, 1e-3);
|
|
1713
1713
|
(Math.abs(h(this, it) - e) > c || Math.abs(h(this, at) - o) > c) && h(this, U).markDirty();
|
|
1714
1714
|
}
|
|
1715
|
-
const s = h(this,
|
|
1716
|
-
h(this,
|
|
1715
|
+
const s = h(this, X).min !== void 0 && h(this, X).min !== "auto", n = h(this, X).max !== void 0 && h(this, X).max !== "auto", l = h(this, E).size.media.height - this.xAxisHeight;
|
|
1716
|
+
h(this, B).setYRange(h(this, it), h(this, at), l, s, n);
|
|
1717
1717
|
}
|
|
1718
1718
|
/** Resolve an {@link AxisBound} to a concrete numeric value. */
|
|
1719
1719
|
resolveBound(t, e, o, i, a) {
|
|
@@ -1736,21 +1736,21 @@ class xo extends Pt {
|
|
|
1736
1736
|
const t = h(this, E).size;
|
|
1737
1737
|
if (t.media.width === 0 || t.media.height === 0) return;
|
|
1738
1738
|
const e = t.media.width - this.yAxisWidth, o = t.media.height - this.xAxisHeight;
|
|
1739
|
-
this.timeScale.update(h(this,
|
|
1739
|
+
this.timeScale.update(h(this, B).visibleRange, e, t.horizontalPixelRatio), this.yScale.update(h(this, B).yRange, o, t.verticalPixelRatio);
|
|
1740
1740
|
}
|
|
1741
1741
|
updateScales(t = !1) {
|
|
1742
1742
|
const e = h(this, E).size;
|
|
1743
1743
|
if (e.media.width === 0 || e.media.height === 0) return;
|
|
1744
1744
|
const o = e.media.width - this.yAxisWidth, i = e.media.height - this.xAxisHeight;
|
|
1745
|
-
this.timeScale.update(h(this,
|
|
1745
|
+
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
1746
|
}
|
|
1747
1747
|
/** Expensive: background, grid, all series. Only on data/viewport/resize change. */
|
|
1748
1748
|
renderMain() {
|
|
1749
1749
|
const t = h(this, E).size;
|
|
1750
1750
|
if (!(t.media.width === 0 || t.media.height === 0)) {
|
|
1751
|
-
h(this,
|
|
1751
|
+
h(this, B).tick(performance.now()) && h(this, U).markDirty(), this.updateScales(), h(this, E).useMainLayer((e) => {
|
|
1752
1752
|
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, Bt) &&
|
|
1753
|
+
o.clearRect(0, 0, i.width, i.height), o.save(), o.beginPath(), o.rect(0, 0, a, s), o.clip(), h(this, Bt) && je(e, this.timeScale, this.yScale, h(this, V), h(this, ot));
|
|
1754
1754
|
for (const n of h(this, S))
|
|
1755
1755
|
n.visible && n.renderer.render({
|
|
1756
1756
|
scope: e,
|
|
@@ -1775,7 +1775,7 @@ class xo extends Pt {
|
|
|
1775
1775
|
if (t.media.width === 0 || t.media.height === 0) return;
|
|
1776
1776
|
let e = !1;
|
|
1777
1777
|
for (const o of h(this, S))
|
|
1778
|
-
if (o.visible && o.renderer instanceof
|
|
1778
|
+
if (o.visible && o.renderer instanceof J && o.renderer.hasPulse) {
|
|
1779
1779
|
e = !0;
|
|
1780
1780
|
break;
|
|
1781
1781
|
}
|
|
@@ -1784,9 +1784,9 @@ class xo extends Pt {
|
|
|
1784
1784
|
const i = (t.media.width - this.yAxisWidth) * t.horizontalPixelRatio, a = (t.media.height - this.xAxisHeight) * t.verticalPixelRatio;
|
|
1785
1785
|
if (o.context.save(), o.context.beginPath(), o.context.rect(0, 0, i, a), o.context.clip(), h(this, ht)) {
|
|
1786
1786
|
const s = h(this, ht).mediaX * t.horizontalPixelRatio, n = h(this, ht).mediaY * t.verticalPixelRatio;
|
|
1787
|
-
|
|
1787
|
+
Je(o, s, n, h(this, V));
|
|
1788
1788
|
for (const l of h(this, S))
|
|
1789
|
-
if (l.visible && l.renderer instanceof
|
|
1789
|
+
if (l.visible && l.renderer instanceof J) {
|
|
1790
1790
|
const c = l.renderer, d = c.getColors(), u = c.getStacking(), b = 4 * t.horizontalPixelRatio, v = [], C = [];
|
|
1791
1791
|
for (let g = 0; g < c.stores.length; g++) {
|
|
1792
1792
|
const p = c.stores[g].findNearest(h(this, ht).time, h(this, ot));
|
|
@@ -1813,7 +1813,7 @@ class xo extends Pt {
|
|
|
1813
1813
|
}
|
|
1814
1814
|
}
|
|
1815
1815
|
for (const s of h(this, S))
|
|
1816
|
-
s.visible && s.renderer instanceof
|
|
1816
|
+
s.visible && s.renderer instanceof J && s.renderer.hasPulse && s.renderer.drawPulseOverlay(
|
|
1817
1817
|
o.context,
|
|
1818
1818
|
this.timeScale,
|
|
1819
1819
|
this.yScale,
|
|
@@ -1824,7 +1824,7 @@ class xo extends Pt {
|
|
|
1824
1824
|
const { from: o, to: i } = this.timeScale.getRange();
|
|
1825
1825
|
let a = !1;
|
|
1826
1826
|
for (const s of h(this, S))
|
|
1827
|
-
if (!(!s.visible || !(s.renderer instanceof
|
|
1827
|
+
if (!(!s.visible || !(s.renderer instanceof J) || !s.renderer.hasPulse)) {
|
|
1828
1828
|
for (const n of s.renderer.stores) {
|
|
1829
1829
|
const l = n.last();
|
|
1830
1830
|
if (l && l.time >= o && l.time <= i) {
|
|
@@ -1838,21 +1838,21 @@ class xo extends Pt {
|
|
|
1838
1838
|
}
|
|
1839
1839
|
}
|
|
1840
1840
|
}
|
|
1841
|
-
E = /* @__PURE__ */ new WeakMap(),
|
|
1841
|
+
E = /* @__PURE__ */ new WeakMap(), B = /* @__PURE__ */ new WeakMap(), U = /* @__PURE__ */ new WeakMap(), Ct = /* @__PURE__ */ new WeakMap(), Dt = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap(), V = /* @__PURE__ */ new WeakMap(), Bt = /* @__PURE__ */ new WeakMap(), ot = /* @__PURE__ */ new WeakMap(), ht = /* @__PURE__ */ new WeakMap(), X = /* @__PURE__ */ new WeakMap(), lt = /* @__PURE__ */ new WeakMap(), Jt = /* @__PURE__ */ new WeakMap(), wt = /* @__PURE__ */ new WeakMap(), ut = /* @__PURE__ */ new WeakMap(), zt = /* @__PURE__ */ new WeakMap(), yt = /* @__PURE__ */ new WeakMap(), kt = /* @__PURE__ */ new WeakSet(), /**
|
|
1842
1842
|
* Return a series ID: use the provided hint if it's non-empty and not already taken,
|
|
1843
1843
|
* otherwise generate a new auto ID. Auto-generated IDs never collide with each other
|
|
1844
1844
|
* or with user-provided IDs because they use a monotonically increasing counter.
|
|
1845
1845
|
*/
|
|
1846
|
-
|
|
1846
|
+
Pt = function(r) {
|
|
1847
1847
|
if (r && !h(this, S).some((e) => e.id === r))
|
|
1848
1848
|
return r;
|
|
1849
1849
|
let t;
|
|
1850
1850
|
do
|
|
1851
|
-
t = `series_${++
|
|
1851
|
+
t = `series_${++xo}`;
|
|
1852
1852
|
while (h(this, S).some((e) => e.id === t));
|
|
1853
1853
|
return t;
|
|
1854
|
-
},
|
|
1855
|
-
const
|
|
1854
|
+
}, Yt = /* @__PURE__ */ new WeakMap(), it = /* @__PURE__ */ new WeakMap(), at = /* @__PURE__ */ new WeakMap(), St = /* @__PURE__ */ new WeakMap();
|
|
1855
|
+
const ki = {
|
|
1856
1856
|
background: "#ffffff",
|
|
1857
1857
|
chartGradient: ["#ffffff", "#f5f6f8"],
|
|
1858
1858
|
typography: {
|
|
@@ -1909,77 +1909,83 @@ const wi = {
|
|
|
1909
1909
|
borderColor: "rgba(0, 0, 0, 0.1)"
|
|
1910
1910
|
}
|
|
1911
1911
|
};
|
|
1912
|
-
function
|
|
1912
|
+
function wo(r) {
|
|
1913
1913
|
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
1914
|
}
|
|
1915
1915
|
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:
|
|
1918
|
-
|
|
1919
|
-
|
|
1916
|
+
var t, e, o, i, a, s, n, l, c, d, u, b, v, C, w, g, p, m, f, y, F, k, D, I, G, $, q, H, pt;
|
|
1917
|
+
const { background: N, name: It = "Custom", description: gt, fontUrl: mt = null, backgroundImage: Rt, backgroundSize: Pe } = r, et = wo(N), Fe = et ? "#d1d4dc" : "#24292f", Ie = et ? "#787b86" : "#8b949e", ae = et ? "#26a69a" : "#2da44e", se = et ? "#ef5350" : "#cf222e", Le = et ? "#2962ff" : "#0969da", We = et ? "rgba(42,46,57,0.6)" : "rgba(200,200,200,0.5)", Ae = et ? "rgba(150,150,150,0.5)" : "rgba(170,170,170,0.3)", re = et ? Vt(N, 0.1) : ye(N, 0.05), Ve = et ? _t(N, 0.92) : _t(N, 0.95), Ye = et ? _t(Vt(N, 0.15), 0.6) : "rgba(200,200,200,0.5)", Ue = $t, Xt = ((t = r.candlestick) == null ? void 0 : t.upColor) ?? ae, Lt = ((e = r.candlestick) == null ? void 0 : e.downColor) ?? se, Tt = ((o = r.line) == null ? void 0 : o.color) ?? Le, ne = ((i = r.tooltip) == null ? void 0 : i.textColor) ?? Fe, Ee = ((a = r.axis) == null ? void 0 : a.textColor) ?? Ie, Oe = ((s = r.typography) == null ? void 0 : s.fontFamily) ?? Ue;
|
|
1918
|
+
return {
|
|
1919
|
+
name: It,
|
|
1920
|
+
description: gt,
|
|
1921
|
+
dark: et,
|
|
1922
|
+
fontUrl: mt,
|
|
1923
|
+
backgroundImage: Rt,
|
|
1924
|
+
backgroundSize: Pe,
|
|
1925
|
+
background: N,
|
|
1926
|
+
chartGradient: r.chartGradient ?? (et ? [Vt(N, 0.04), ye(N, 0.06)] : [Vt(N, 0.06), N]),
|
|
1920
1927
|
typography: {
|
|
1921
|
-
fontFamily:
|
|
1928
|
+
fontFamily: Oe,
|
|
1922
1929
|
fontSize: ((n = r.typography) == null ? void 0 : n.fontSize) ?? 12,
|
|
1923
1930
|
axisFontSize: ((l = r.typography) == null ? void 0 : l.axisFontSize) ?? 10,
|
|
1924
1931
|
yFontSize: ((c = r.typography) == null ? void 0 : c.yFontSize) ?? 11,
|
|
1925
1932
|
tooltipFontSize: ((d = r.typography) == null ? void 0 : d.tooltipFontSize) ?? ((u = r.typography) == null ? void 0 : u.fontSize) ?? 12
|
|
1926
1933
|
},
|
|
1927
1934
|
grid: {
|
|
1928
|
-
color: ((b = r.grid) == null ? void 0 : b.color) ??
|
|
1935
|
+
color: ((b = r.grid) == null ? void 0 : b.color) ?? We,
|
|
1929
1936
|
style: ((v = r.grid) == null ? void 0 : v.style) ?? "dashed"
|
|
1930
1937
|
},
|
|
1931
1938
|
candlestick: {
|
|
1932
|
-
upColor:
|
|
1939
|
+
upColor: Xt,
|
|
1933
1940
|
downColor: Lt,
|
|
1934
|
-
wickUpColor: ((C = r.candlestick) == null ? void 0 : C.wickUpColor) ??
|
|
1941
|
+
wickUpColor: ((C = r.candlestick) == null ? void 0 : C.wickUpColor) ?? Xt,
|
|
1935
1942
|
wickDownColor: ((w = r.candlestick) == null ? void 0 : w.wickDownColor) ?? Lt
|
|
1936
1943
|
},
|
|
1937
1944
|
line: {
|
|
1938
|
-
color:
|
|
1945
|
+
color: Tt,
|
|
1939
1946
|
width: ((g = r.line) == null ? void 0 : g.width) ?? 1,
|
|
1940
|
-
areaTopColor: ((p = r.line) == null ? void 0 : p.areaTopColor) ?? Tt
|
|
1941
|
-
areaBottomColor: ((m = r.line) == null ? void 0 : m.areaBottomColor) ?? Tt
|
|
1947
|
+
areaTopColor: ((p = r.line) == null ? void 0 : p.areaTopColor) ?? _t(Tt, 0.08),
|
|
1948
|
+
areaBottomColor: ((m = r.line) == null ? void 0 : m.areaBottomColor) ?? _t(Tt, 0.01)
|
|
1942
1949
|
},
|
|
1943
|
-
seriesColors: r.seriesColors ?? [
|
|
1950
|
+
seriesColors: r.seriesColors ?? [Tt, ae, se],
|
|
1944
1951
|
bands: {
|
|
1945
|
-
upper: ((f = r.bands) == null ? void 0 : f.upper) ??
|
|
1952
|
+
upper: ((f = r.bands) == null ? void 0 : f.upper) ?? Tt,
|
|
1946
1953
|
lower: ((y = r.bands) == null ? void 0 : y.lower) ?? Lt
|
|
1947
1954
|
},
|
|
1948
1955
|
crosshair: {
|
|
1949
|
-
color: ((F = r.crosshair) == null ? void 0 : F.color) ??
|
|
1950
|
-
labelBackground: ((k = r.crosshair) == null ? void 0 : k.labelBackground) ??
|
|
1951
|
-
labelTextColor: ((
|
|
1956
|
+
color: ((F = r.crosshair) == null ? void 0 : F.color) ?? Ae,
|
|
1957
|
+
labelBackground: ((k = r.crosshair) == null ? void 0 : k.labelBackground) ?? re,
|
|
1958
|
+
labelTextColor: ((D = r.crosshair) == null ? void 0 : D.labelTextColor) ?? ne
|
|
1952
1959
|
},
|
|
1953
|
-
axis: { textColor:
|
|
1960
|
+
axis: { textColor: Ee },
|
|
1954
1961
|
yLabel: {
|
|
1955
|
-
upBackground: ((
|
|
1956
|
-
downBackground: ((
|
|
1957
|
-
neutralBackground: (($ = r.yLabel) == null ? void 0 : $.neutralBackground) ??
|
|
1958
|
-
textColor: ((
|
|
1962
|
+
upBackground: ((I = r.yLabel) == null ? void 0 : I.upBackground) ?? Xt,
|
|
1963
|
+
downBackground: ((G = r.yLabel) == null ? void 0 : G.downBackground) ?? Lt,
|
|
1964
|
+
neutralBackground: (($ = r.yLabel) == null ? void 0 : $.neutralBackground) ?? re,
|
|
1965
|
+
textColor: ((q = r.yLabel) == null ? void 0 : q.textColor) ?? "#ffffff"
|
|
1959
1966
|
},
|
|
1960
1967
|
tooltip: {
|
|
1961
|
-
background: ((
|
|
1962
|
-
textColor:
|
|
1963
|
-
borderColor: ((pt = r.tooltip) == null ? void 0 : pt.borderColor) ??
|
|
1968
|
+
background: ((H = r.tooltip) == null ? void 0 : H.background) ?? Ve,
|
|
1969
|
+
textColor: ne,
|
|
1970
|
+
borderColor: ((pt = r.tooltip) == null ? void 0 : pt.borderColor) ?? Ye
|
|
1964
1971
|
}
|
|
1965
1972
|
};
|
|
1966
|
-
return { name: Ft, description: gt, fontUrl: mt, dark: X, theme: Ee };
|
|
1967
1973
|
}
|
|
1968
|
-
function
|
|
1974
|
+
function _t(r, t) {
|
|
1969
1975
|
const e = parseInt(r.slice(1, 3), 16), o = parseInt(r.slice(3, 5), 16), i = parseInt(r.slice(5, 7), 16);
|
|
1970
1976
|
return `rgba(${e}, ${o}, ${i}, ${t})`;
|
|
1971
1977
|
}
|
|
1972
|
-
function
|
|
1978
|
+
function Vt(r, t) {
|
|
1973
1979
|
if (!r.startsWith("#")) return r;
|
|
1974
1980
|
const e = Math.min(255, Math.round(parseInt(r.slice(1, 3), 16) + 255 * t)), o = Math.min(255, Math.round(parseInt(r.slice(3, 5), 16) + 255 * t)), i = Math.min(255, Math.round(parseInt(r.slice(5, 7), 16) + 255 * t));
|
|
1975
1981
|
return `#${e.toString(16).padStart(2, "0")}${o.toString(16).padStart(2, "0")}${i.toString(16).padStart(2, "0")}`;
|
|
1976
1982
|
}
|
|
1977
|
-
function
|
|
1983
|
+
function ye(r, t) {
|
|
1978
1984
|
if (!r.startsWith("#")) return r;
|
|
1979
1985
|
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
1986
|
return `#${e.toString(16).padStart(2, "0")}${o.toString(16).padStart(2, "0")}${i.toString(16).padStart(2, "0")}`;
|
|
1981
1987
|
}
|
|
1982
|
-
const
|
|
1988
|
+
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", Me = "'Roboto Mono', monospace", Re = "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;600&display=swap", ko = "'IBM Plex Mono', monospace", So = "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", Te = "'Source Code Pro', monospace", _e = "https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@400;500;600&display=swap", Mo = "'Space Mono', monospace", Ro = "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", To = "'Caveat', 'Comic Sans MS', cursive", _o = "https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&display=swap", Do = Y({
|
|
1983
1989
|
name: "Andromeda",
|
|
1984
1990
|
description: "Deep space purples and cosmic blues",
|
|
1985
1991
|
background: "#23262e",
|
|
@@ -2002,8 +2008,8 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2002
2008
|
crosshair: { color: "rgba(102,94,110,0.4)", labelBackground: "#2e3038" },
|
|
2003
2009
|
axis: { textColor: "#665e6e" },
|
|
2004
2010
|
tooltip: { background: "rgba(35,38,46,0.92)", textColor: "#d5ced9", borderColor: "rgba(50,48,56,0.6)" },
|
|
2005
|
-
typography: { fontFamily:
|
|
2006
|
-
fontUrl:
|
|
2011
|
+
typography: { fontFamily: Me },
|
|
2012
|
+
fontUrl: Re
|
|
2007
2013
|
}), Bo = Y({
|
|
2008
2014
|
name: "Ayu Mirage",
|
|
2009
2015
|
description: "Warm dark with amber accents",
|
|
@@ -2027,9 +2033,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2027
2033
|
crosshair: { color: "rgba(92,103,115,0.4)", labelBackground: "#2a3040" },
|
|
2028
2034
|
axis: { textColor: "#5c6773" },
|
|
2029
2035
|
tooltip: { background: "rgba(31,36,48,0.92)", textColor: "#cbccc6", borderColor: "rgba(42,48,60,0.6)" },
|
|
2030
|
-
typography: { fontFamily:
|
|
2031
|
-
fontUrl:
|
|
2032
|
-
}),
|
|
2036
|
+
typography: { fontFamily: $t },
|
|
2037
|
+
fontUrl: Qt
|
|
2038
|
+
}), zo = Y({
|
|
2033
2039
|
name: "Catppuccin",
|
|
2034
2040
|
description: "Pastel tones on a mocha base",
|
|
2035
2041
|
background: "#1e1e2e",
|
|
@@ -2052,9 +2058,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2052
2058
|
crosshair: { color: "rgba(108,112,134,0.4)", labelBackground: "#313244" },
|
|
2053
2059
|
axis: { textColor: "#6c7086" },
|
|
2054
2060
|
tooltip: { background: "rgba(30,30,46,0.92)", textColor: "#cdd6f4", borderColor: "rgba(49,50,68,0.6)" },
|
|
2055
|
-
typography: { fontFamily:
|
|
2056
|
-
fontUrl:
|
|
2057
|
-
}),
|
|
2061
|
+
typography: { fontFamily: $t },
|
|
2062
|
+
fontUrl: Qt
|
|
2063
|
+
}), Po = Y({
|
|
2058
2064
|
name: "Dracula",
|
|
2059
2065
|
description: "Classic dark with vibrant highlights",
|
|
2060
2066
|
background: "#282a36",
|
|
@@ -2077,9 +2083,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2077
2083
|
crosshair: { color: "rgba(98,114,164,0.4)", labelBackground: "#44475a" },
|
|
2078
2084
|
axis: { textColor: "#6272a4" },
|
|
2079
2085
|
tooltip: { background: "rgba(40,42,54,0.92)", textColor: "#f8f8f2", borderColor: "rgba(68,71,90,0.6)" },
|
|
2080
|
-
typography: { fontFamily:
|
|
2081
|
-
fontUrl:
|
|
2082
|
-
}),
|
|
2086
|
+
typography: { fontFamily: Zt },
|
|
2087
|
+
fontUrl: te
|
|
2088
|
+
}), Fo = Y({
|
|
2083
2089
|
name: "GitHub Light",
|
|
2084
2090
|
description: "Clean and familiar, GitHub-inspired",
|
|
2085
2091
|
background: "#fafbfc",
|
|
@@ -2103,9 +2109,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2103
2109
|
crosshair: { color: "rgba(208,215,222,0.3)", labelBackground: "#f0f3f6" },
|
|
2104
2110
|
axis: { textColor: "#8b949e" },
|
|
2105
2111
|
tooltip: { background: "rgba(250,251,252,0.95)", textColor: "#24292f", borderColor: "rgba(216,222,228,0.5)" },
|
|
2106
|
-
typography: { fontFamily:
|
|
2107
|
-
fontUrl:
|
|
2108
|
-
}),
|
|
2112
|
+
typography: { fontFamily: ko },
|
|
2113
|
+
fontUrl: So
|
|
2114
|
+
}), Io = Y({
|
|
2109
2115
|
name: "Gruvbox",
|
|
2110
2116
|
description: "Retro warm with earthy tones",
|
|
2111
2117
|
background: "#282828",
|
|
@@ -2128,74 +2134,72 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2128
2134
|
crosshair: { color: "rgba(146,131,116,0.4)", labelBackground: "#3c3836" },
|
|
2129
2135
|
axis: { textColor: "#928374" },
|
|
2130
2136
|
tooltip: { background: "rgba(40,40,40,0.92)", textColor: "#ebdbb2", borderColor: "rgba(60,56,54,0.6)" },
|
|
2131
|
-
typography: { fontFamily:
|
|
2132
|
-
fontUrl:
|
|
2137
|
+
typography: { fontFamily: Et },
|
|
2138
|
+
fontUrl: Ot
|
|
2133
2139
|
}), Lo = {
|
|
2134
2140
|
name: "Handwritten",
|
|
2135
2141
|
description: "Sketch-style with a personal touch",
|
|
2136
|
-
fontUrl:
|
|
2142
|
+
fontUrl: _o,
|
|
2137
2143
|
dark: !1,
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
borderColor: "rgba(180,170,150,0.4)"
|
|
2196
|
-
}
|
|
2144
|
+
background: "#fdf5e6",
|
|
2145
|
+
chartGradient: ["#fef6e3", "#fdf5e6"],
|
|
2146
|
+
typography: {
|
|
2147
|
+
fontFamily: To,
|
|
2148
|
+
fontSize: 18,
|
|
2149
|
+
axisFontSize: 13,
|
|
2150
|
+
yFontSize: 15,
|
|
2151
|
+
tooltipFontSize: 14
|
|
2152
|
+
},
|
|
2153
|
+
grid: {
|
|
2154
|
+
color: "rgba(180,170,150,0.3)",
|
|
2155
|
+
style: "dashed"
|
|
2156
|
+
},
|
|
2157
|
+
candlestick: {
|
|
2158
|
+
upColor: "#7a9a5e",
|
|
2159
|
+
downColor: "#b07060",
|
|
2160
|
+
wickUpColor: "#7a9a5e",
|
|
2161
|
+
wickDownColor: "#b07060"
|
|
2162
|
+
},
|
|
2163
|
+
line: {
|
|
2164
|
+
color: "#6a8fa0",
|
|
2165
|
+
width: 1,
|
|
2166
|
+
areaTopColor: "rgba(106,143,160,0.08)",
|
|
2167
|
+
areaBottomColor: "rgba(106,143,160,0.01)"
|
|
2168
|
+
},
|
|
2169
|
+
seriesColors: [
|
|
2170
|
+
"#6a8fa0",
|
|
2171
|
+
"#c09050",
|
|
2172
|
+
"#7a9a5e",
|
|
2173
|
+
"#8a7098",
|
|
2174
|
+
"#b07060",
|
|
2175
|
+
"#a09030",
|
|
2176
|
+
"#508878",
|
|
2177
|
+
"#a06878",
|
|
2178
|
+
"#6888a0",
|
|
2179
|
+
"#8870a0"
|
|
2180
|
+
],
|
|
2181
|
+
bands: {
|
|
2182
|
+
upper: "#6888a0",
|
|
2183
|
+
lower: "#a06878"
|
|
2184
|
+
},
|
|
2185
|
+
crosshair: {
|
|
2186
|
+
color: "rgba(160,152,128,0.3)",
|
|
2187
|
+
labelBackground: "#f5edd8",
|
|
2188
|
+
labelTextColor: "#5c5040"
|
|
2189
|
+
},
|
|
2190
|
+
axis: { textColor: "#a09880" },
|
|
2191
|
+
yLabel: {
|
|
2192
|
+
upBackground: "#7a9a5e",
|
|
2193
|
+
downBackground: "#b07060",
|
|
2194
|
+
neutralBackground: "#e8dcc8",
|
|
2195
|
+
textColor: "#fdf5e6"
|
|
2196
|
+
},
|
|
2197
|
+
tooltip: {
|
|
2198
|
+
background: "rgba(253,245,230,0.95)",
|
|
2199
|
+
textColor: "#5c5040",
|
|
2200
|
+
borderColor: "rgba(180,170,150,0.4)"
|
|
2197
2201
|
}
|
|
2198
|
-
},
|
|
2202
|
+
}, Wo = "'Silkscreen', cursive", Ao = "https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&display=swap", Vo = Y({
|
|
2199
2203
|
name: "Matrix",
|
|
2200
2204
|
background: "#000000",
|
|
2201
2205
|
candlestick: { upColor: "#00ff41", downColor: "#00802a" },
|
|
@@ -2217,10 +2221,10 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2217
2221
|
axis: { textColor: "#00cc33" },
|
|
2218
2222
|
crosshair: { color: "rgba(0,255,65,0.3)", labelBackground: "#0a1a0a" },
|
|
2219
2223
|
tooltip: { background: "rgba(0,10,0,0.95)", textColor: "#00ff41", borderColor: "rgba(0,255,65,0.2)" },
|
|
2220
|
-
typography: { fontFamily:
|
|
2221
|
-
fontUrl:
|
|
2224
|
+
typography: { fontFamily: Wo },
|
|
2225
|
+
fontUrl: Ao,
|
|
2222
2226
|
chartGradient: ["#010a01", "#000000"]
|
|
2223
|
-
}),
|
|
2227
|
+
}), Yo = Y({
|
|
2224
2228
|
name: "Lavender Mist",
|
|
2225
2229
|
background: "#f5f0f4",
|
|
2226
2230
|
candlestick: { upColor: "#6b8e5e", downColor: "#b85468" },
|
|
@@ -2242,10 +2246,10 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2242
2246
|
axis: { textColor: "#9a88a0" },
|
|
2243
2247
|
crosshair: { color: "rgba(150,130,155,0.2)", labelBackground: "#ebe4e8" },
|
|
2244
2248
|
tooltip: { background: "rgba(245,240,244,0.95)", textColor: "#3a3050", borderColor: "rgba(150,130,155,0.25)" },
|
|
2245
|
-
typography: { fontFamily:
|
|
2246
|
-
fontUrl:
|
|
2249
|
+
typography: { fontFamily: ee },
|
|
2250
|
+
fontUrl: oe,
|
|
2247
2251
|
chartGradient: ["#f8f4f7", "#f5f0f4"]
|
|
2248
|
-
}),
|
|
2252
|
+
}), Uo = Y({
|
|
2249
2253
|
name: "Love",
|
|
2250
2254
|
description: "Soft romantic pinks and roses",
|
|
2251
2255
|
background: "#fef7f8",
|
|
@@ -2269,9 +2273,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2269
2273
|
crosshair: { color: "rgba(180,140,155,0.3)", labelBackground: "#f0dce2" },
|
|
2270
2274
|
axis: { textColor: "#b08898" },
|
|
2271
2275
|
tooltip: { background: "rgba(253,242,244,0.95)", textColor: "#4a3040", borderColor: "rgba(200,160,175,0.35)" },
|
|
2272
|
-
typography: { fontFamily:
|
|
2273
|
-
fontUrl:
|
|
2274
|
-
}),
|
|
2276
|
+
typography: { fontFamily: $t },
|
|
2277
|
+
fontUrl: Qt
|
|
2278
|
+
}), Eo = Y({
|
|
2275
2279
|
name: "Material Palenight",
|
|
2276
2280
|
description: "Material Design in moonlit hues",
|
|
2277
2281
|
background: "#292d3e",
|
|
@@ -2294,9 +2298,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2294
2298
|
crosshair: { color: "rgba(103,110,149,0.4)", labelBackground: "#34324a" },
|
|
2295
2299
|
axis: { textColor: "#676e95" },
|
|
2296
2300
|
tooltip: { background: "rgba(41,45,62,0.92)", textColor: "#a6accd", borderColor: "rgba(55,59,75,0.6)" },
|
|
2297
|
-
typography: { fontFamily:
|
|
2298
|
-
fontUrl:
|
|
2299
|
-
}),
|
|
2301
|
+
typography: { fontFamily: Me },
|
|
2302
|
+
fontUrl: Re
|
|
2303
|
+
}), Oo = "'Silkscreen', cursive", $o = "https://fonts.googleapis.com/css2?family=Silkscreen:wght@400;700&display=swap", Xo = Y({
|
|
2300
2304
|
name: "Monochrome",
|
|
2301
2305
|
description: "Pure black and white, pixel font",
|
|
2302
2306
|
background: "#ffffff",
|
|
@@ -2320,9 +2324,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2320
2324
|
crosshair: { color: "rgba(0,0,0,0.08)", labelBackground: "#f0f0f0" },
|
|
2321
2325
|
axis: { textColor: "#b0b0b0" },
|
|
2322
2326
|
tooltip: { background: "rgba(255,255,255,0.97)", textColor: "#222222", borderColor: "rgba(0,0,0,0.08)" },
|
|
2323
|
-
typography: { fontFamily:
|
|
2324
|
-
fontUrl:
|
|
2325
|
-
}),
|
|
2327
|
+
typography: { fontFamily: Oo, tooltipFontSize: 9 },
|
|
2328
|
+
fontUrl: $o
|
|
2329
|
+
}), Ho = Y({
|
|
2326
2330
|
name: "Mint Breeze",
|
|
2327
2331
|
background: "#f6f5ee",
|
|
2328
2332
|
candlestick: { upColor: "#2e9070", downColor: "#d04848" },
|
|
@@ -2344,10 +2348,10 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2344
2348
|
axis: { textColor: "#80a098" },
|
|
2345
2349
|
crosshair: { color: "rgba(120,140,120,0.18)", labelBackground: "#ece8de" },
|
|
2346
2350
|
tooltip: { background: "rgba(246,245,238,0.95)", textColor: "#2a3530", borderColor: "rgba(130,140,115,0.2)" },
|
|
2347
|
-
typography: { fontFamily:
|
|
2348
|
-
fontUrl:
|
|
2351
|
+
typography: { fontFamily: Mo },
|
|
2352
|
+
fontUrl: Ro,
|
|
2349
2353
|
chartGradient: ["#f8f7f0", "#f6f5ee"]
|
|
2350
|
-
}),
|
|
2354
|
+
}), Go = Y({
|
|
2351
2355
|
name: "Monokai Pro",
|
|
2352
2356
|
description: "Bold syntax colors on dark gray",
|
|
2353
2357
|
background: "#2d2a2e",
|
|
@@ -2370,9 +2374,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2370
2374
|
crosshair: { color: "rgba(114,112,114,0.4)", labelBackground: "#403e42" },
|
|
2371
2375
|
axis: { textColor: "#727072" },
|
|
2372
2376
|
tooltip: { background: "rgba(45,42,46,0.92)", textColor: "#fcfcfa", borderColor: "rgba(64,60,62,0.6)" },
|
|
2373
|
-
typography: { fontFamily:
|
|
2374
|
-
fontUrl:
|
|
2375
|
-
}),
|
|
2377
|
+
typography: { fontFamily: Zt },
|
|
2378
|
+
fontUrl: te
|
|
2379
|
+
}), No = Y({
|
|
2376
2380
|
name: "Night Owl",
|
|
2377
2381
|
description: "Crafted for late-night coding",
|
|
2378
2382
|
background: "#011627",
|
|
@@ -2395,9 +2399,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2395
2399
|
crosshair: { color: "rgba(99,119,119,0.4)", labelBackground: "#1d3b53" },
|
|
2396
2400
|
axis: { textColor: "#495a5a" },
|
|
2397
2401
|
tooltip: { background: "rgba(1,22,39,0.92)", textColor: "#d6deeb", borderColor: "rgba(31,52,72,0.6)" },
|
|
2398
|
-
typography: { fontFamily:
|
|
2399
|
-
fontUrl:
|
|
2400
|
-
}),
|
|
2402
|
+
typography: { fontFamily: Et },
|
|
2403
|
+
fontUrl: Ot
|
|
2404
|
+
}), Jo = Y({
|
|
2401
2405
|
name: "One Dark Pro",
|
|
2402
2406
|
description: "Atom editor's iconic dark palette",
|
|
2403
2407
|
background: "#282c34",
|
|
@@ -2420,9 +2424,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2420
2424
|
crosshair: { color: "rgba(99,110,123,0.4)", labelBackground: "#3e4451" },
|
|
2421
2425
|
axis: { textColor: "#5c6370" },
|
|
2422
2426
|
tooltip: { background: "rgba(40,44,52,0.92)", textColor: "#abb2bf", borderColor: "rgba(59,64,72,0.6)" },
|
|
2423
|
-
typography: { fontFamily:
|
|
2424
|
-
fontUrl:
|
|
2425
|
-
}),
|
|
2427
|
+
typography: { fontFamily: Et },
|
|
2428
|
+
fontUrl: Ot
|
|
2429
|
+
}), jo = Y({
|
|
2426
2430
|
name: "Panda",
|
|
2427
2431
|
description: "Playful neons on charcoal",
|
|
2428
2432
|
background: "#292a2b",
|
|
@@ -2445,9 +2449,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2445
2449
|
crosshair: { color: "rgba(117,117,117,0.4)", labelBackground: "#3a3a3c" },
|
|
2446
2450
|
axis: { textColor: "#757575" },
|
|
2447
2451
|
tooltip: { background: "rgba(41,42,43,0.92)", textColor: "#e6e6e6", borderColor: "rgba(58,58,60,0.6)" },
|
|
2448
|
-
typography: { fontFamily:
|
|
2449
|
-
fontUrl:
|
|
2450
|
-
}),
|
|
2452
|
+
typography: { fontFamily: Zt },
|
|
2453
|
+
fontUrl: te
|
|
2454
|
+
}), Ko = Y({
|
|
2451
2455
|
name: "Peach Cream",
|
|
2452
2456
|
background: "#fef6f0",
|
|
2453
2457
|
candlestick: { upColor: "#5a9a68", downColor: "#d06848" },
|
|
@@ -2469,10 +2473,10 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2469
2473
|
axis: { textColor: "#b09080" },
|
|
2470
2474
|
crosshair: { color: "rgba(180,140,120,0.2)", labelBackground: "#f0e4d8" },
|
|
2471
2475
|
tooltip: { background: "rgba(254,246,240,0.95)", textColor: "#4a3028", borderColor: "rgba(180,140,120,0.25)" },
|
|
2472
|
-
typography: { fontFamily:
|
|
2473
|
-
fontUrl:
|
|
2476
|
+
typography: { fontFamily: ee },
|
|
2477
|
+
fontUrl: oe,
|
|
2474
2478
|
chartGradient: ["#fff8f2", "#fef6f0"]
|
|
2475
|
-
}),
|
|
2479
|
+
}), qo = Y({
|
|
2476
2480
|
name: "Quiet Light",
|
|
2477
2481
|
description: "Subdued and easy on the eyes",
|
|
2478
2482
|
background: "#f5f5f5",
|
|
@@ -2495,9 +2499,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2495
2499
|
crosshair: { color: "rgba(170,170,170,0.3)", labelBackground: "#e8e8e8" },
|
|
2496
2500
|
axis: { textColor: "#aaaaaa" },
|
|
2497
2501
|
tooltip: { background: "rgba(245,245,245,0.95)", textColor: "#333333", borderColor: "rgba(200,200,200,0.5)" },
|
|
2498
|
-
typography: { fontFamily:
|
|
2499
|
-
fontUrl:
|
|
2500
|
-
}),
|
|
2502
|
+
typography: { fontFamily: ee },
|
|
2503
|
+
fontUrl: oe
|
|
2504
|
+
}), Qo = Y({
|
|
2501
2505
|
name: "Rosé Pine Dawn",
|
|
2502
2506
|
description: "Dawn-inspired warm neutrals",
|
|
2503
2507
|
background: "#faf4ed",
|
|
@@ -2520,9 +2524,9 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2520
2524
|
crosshair: { color: "rgba(152,147,165,0.3)", labelBackground: "#f2e9e1" },
|
|
2521
2525
|
axis: { textColor: "#9893a5" },
|
|
2522
2526
|
tooltip: { background: "rgba(250,244,237,0.95)", textColor: "#575279", borderColor: "rgba(152,147,165,0.3)" },
|
|
2523
|
-
typography: { fontFamily:
|
|
2524
|
-
fontUrl:
|
|
2525
|
-
}),
|
|
2527
|
+
typography: { fontFamily: Te },
|
|
2528
|
+
fontUrl: _e
|
|
2529
|
+
}), Zo = Y({
|
|
2526
2530
|
name: "Sand Dune",
|
|
2527
2531
|
background: "#f4f0e8",
|
|
2528
2532
|
candlestick: { upColor: "#5a8a50", downColor: "#b85040" },
|
|
@@ -2544,10 +2548,10 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2544
2548
|
axis: { textColor: "#9a8a70" },
|
|
2545
2549
|
crosshair: { color: "rgba(150,130,100,0.2)", labelBackground: "#e8e0d0" },
|
|
2546
2550
|
tooltip: { background: "rgba(244,240,232,0.95)", textColor: "#3a3020", borderColor: "rgba(150,130,100,0.3)" },
|
|
2547
|
-
typography: { fontFamily:
|
|
2548
|
-
fontUrl:
|
|
2551
|
+
typography: { fontFamily: Te },
|
|
2552
|
+
fontUrl: _e,
|
|
2549
2553
|
chartGradient: ["#f8f4ec", "#f4f0e8"]
|
|
2550
|
-
}),
|
|
2554
|
+
}), ti = Y({
|
|
2551
2555
|
name: "Solarized Light",
|
|
2552
2556
|
description: "Ethan Schoonover's precision palette",
|
|
2553
2557
|
background: "#fdf6e3",
|
|
@@ -2571,49 +2575,49 @@ const Ut = "'JetBrains Mono', 'Fira Code', monospace", Et = "https://fonts.googl
|
|
|
2571
2575
|
crosshair: { color: "rgba(147,161,161,0.3)", labelBackground: "#eee8d5" },
|
|
2572
2576
|
axis: { textColor: "#93a1a1" },
|
|
2573
2577
|
tooltip: { background: "rgba(253,246,227,0.95)", textColor: "#586e75", borderColor: "rgba(238,232,213,0.6)" },
|
|
2574
|
-
typography: { fontFamily:
|
|
2575
|
-
fontUrl:
|
|
2576
|
-
}),
|
|
2577
|
-
Dracula:
|
|
2578
|
-
"One Dark Pro":
|
|
2579
|
-
"Monokai Pro":
|
|
2580
|
-
"Night Owl":
|
|
2581
|
-
"Material Palenight":
|
|
2582
|
-
Gruvbox:
|
|
2583
|
-
Catppuccin:
|
|
2578
|
+
typography: { fontFamily: Et },
|
|
2579
|
+
fontUrl: Ot
|
|
2580
|
+
}), xe = {
|
|
2581
|
+
Dracula: Po,
|
|
2582
|
+
"One Dark Pro": Jo,
|
|
2583
|
+
"Monokai Pro": Go,
|
|
2584
|
+
"Night Owl": No,
|
|
2585
|
+
"Material Palenight": Eo,
|
|
2586
|
+
Gruvbox: Io,
|
|
2587
|
+
Catppuccin: zo,
|
|
2584
2588
|
"Ayu Mirage": Bo,
|
|
2585
|
-
Panda:
|
|
2586
|
-
Andromeda:
|
|
2587
|
-
Matrix:
|
|
2589
|
+
Panda: jo,
|
|
2590
|
+
Andromeda: Do,
|
|
2591
|
+
Matrix: Vo,
|
|
2588
2592
|
Handwritten: Lo,
|
|
2589
|
-
"GitHub Light":
|
|
2590
|
-
"Solarized Light":
|
|
2591
|
-
"Rosé Pine Dawn":
|
|
2592
|
-
"Quiet Light":
|
|
2593
|
-
"Lavender Mist":
|
|
2594
|
-
"Mint Breeze":
|
|
2595
|
-
"Sand Dune":
|
|
2596
|
-
"Peach Cream":
|
|
2597
|
-
Monochrome:
|
|
2598
|
-
Love:
|
|
2593
|
+
"GitHub Light": Fo,
|
|
2594
|
+
"Solarized Light": ti,
|
|
2595
|
+
"Rosé Pine Dawn": Qo,
|
|
2596
|
+
"Quiet Light": qo,
|
|
2597
|
+
"Lavender Mist": Yo,
|
|
2598
|
+
"Mint Breeze": Ho,
|
|
2599
|
+
"Sand Dune": Zo,
|
|
2600
|
+
"Peach Cream": Ko,
|
|
2601
|
+
Monochrome: Xo,
|
|
2602
|
+
Love: Uo
|
|
2599
2603
|
};
|
|
2600
|
-
function
|
|
2601
|
-
return
|
|
2604
|
+
function Si(r) {
|
|
2605
|
+
return xe[r] ?? xe["One Dark Pro"];
|
|
2602
2606
|
}
|
|
2603
|
-
const
|
|
2607
|
+
const De = Symbol("wick-chart"), Be = Symbol("wick-theme");
|
|
2604
2608
|
function rt() {
|
|
2605
|
-
const r =
|
|
2609
|
+
const r = Ce(De);
|
|
2606
2610
|
if (!r || !r.value)
|
|
2607
2611
|
throw new Error("useChartInstance must be used within <ChartContainer>");
|
|
2608
2612
|
return r.value;
|
|
2609
2613
|
}
|
|
2610
|
-
function
|
|
2611
|
-
const r =
|
|
2614
|
+
function ei() {
|
|
2615
|
+
const r = Ce(Be);
|
|
2612
2616
|
if (!r)
|
|
2613
2617
|
throw new Error("useTheme must be used within <ChartContainer>");
|
|
2614
2618
|
return r;
|
|
2615
2619
|
}
|
|
2616
|
-
const
|
|
2620
|
+
const Mi = /* @__PURE__ */ Q({
|
|
2617
2621
|
__name: "BarSeries",
|
|
2618
2622
|
props: {
|
|
2619
2623
|
data: {},
|
|
@@ -2622,12 +2626,12 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2622
2626
|
},
|
|
2623
2627
|
emits: ["seriesId"],
|
|
2624
2628
|
setup(r, { emit: t }) {
|
|
2625
|
-
const e = r, o = t, i = rt(), a =
|
|
2626
|
-
return
|
|
2629
|
+
const e = r, o = t, i = rt(), a = Z(null);
|
|
2630
|
+
return K(() => {
|
|
2627
2631
|
var n;
|
|
2628
2632
|
const s = i.addBarSeries({ ...e.options, label: e.label ?? ((n = e.options) == null ? void 0 : n.label), layers: e.data.length });
|
|
2629
2633
|
a.value = s, o("seriesId", s);
|
|
2630
|
-
}),
|
|
2634
|
+
}), tt(() => {
|
|
2631
2635
|
a.value && i.removeSeries(a.value);
|
|
2632
2636
|
}), st(
|
|
2633
2637
|
() => e.data,
|
|
@@ -2643,9 +2647,9 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2643
2647
|
a.value && s && i.updateSeriesOptions(a.value, s);
|
|
2644
2648
|
},
|
|
2645
2649
|
{ deep: !0 }
|
|
2646
|
-
), (s, n) =>
|
|
2650
|
+
), (s, n) => j("", !0);
|
|
2647
2651
|
}
|
|
2648
|
-
}),
|
|
2652
|
+
}), Ri = /* @__PURE__ */ Q({
|
|
2649
2653
|
__name: "CandlestickSeries",
|
|
2650
2654
|
props: {
|
|
2651
2655
|
data: {},
|
|
@@ -2653,12 +2657,12 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2653
2657
|
},
|
|
2654
2658
|
emits: ["seriesId"],
|
|
2655
2659
|
setup(r, { emit: t }) {
|
|
2656
|
-
const e = r, o = t, i = rt(), a =
|
|
2660
|
+
const e = r, o = t, i = rt(), a = Z(null);
|
|
2657
2661
|
let s = 0;
|
|
2658
|
-
return
|
|
2662
|
+
return K(() => {
|
|
2659
2663
|
const n = i.addCandlestickSeries(e.options);
|
|
2660
2664
|
a.value = n, o("seriesId", n);
|
|
2661
|
-
}),
|
|
2665
|
+
}), tt(() => {
|
|
2662
2666
|
a.value && i.removeSeries(a.value);
|
|
2663
2667
|
}), st(
|
|
2664
2668
|
() => e.data,
|
|
@@ -2685,24 +2689,24 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2685
2689
|
a.value && n && i.updateSeriesOptions(a.value, n);
|
|
2686
2690
|
},
|
|
2687
2691
|
{ deep: !0 }
|
|
2688
|
-
), (n, l) =>
|
|
2692
|
+
), (n, l) => j("", !0);
|
|
2689
2693
|
}
|
|
2690
|
-
}),
|
|
2694
|
+
}), oi = {
|
|
2691
2695
|
key: 0,
|
|
2692
2696
|
style: { position: "absolute", inset: "0", "pointer-events": "none", "z-index": "2" }
|
|
2693
|
-
},
|
|
2697
|
+
}, Ti = /* @__PURE__ */ Q({
|
|
2694
2698
|
__name: "ChartContainer",
|
|
2695
2699
|
props: {
|
|
2696
|
-
theme: { default: () =>
|
|
2700
|
+
theme: { default: () => Se },
|
|
2697
2701
|
axis: {}
|
|
2698
2702
|
},
|
|
2699
2703
|
setup(r) {
|
|
2700
|
-
const t = r, e =
|
|
2701
|
-
|
|
2704
|
+
const t = r, e = Z(), o = le(null), i = le(t.theme);
|
|
2705
|
+
he(De, o), he(Be, i), K(() => {
|
|
2702
2706
|
if (!e.value) return;
|
|
2703
2707
|
const s = {};
|
|
2704
|
-
t.axis && (s.axis = t.axis), t.theme && (s.theme = t.theme), o.value = new
|
|
2705
|
-
}),
|
|
2708
|
+
t.axis && (s.axis = t.axis), t.theme && (s.theme = t.theme), o.value = new Co(e.value, s);
|
|
2709
|
+
}), tt(() => {
|
|
2706
2710
|
var s;
|
|
2707
2711
|
(s = o.value) == null || s.destroy(), o.value = null;
|
|
2708
2712
|
}), st(
|
|
@@ -2726,49 +2730,49 @@ const Si = /* @__PURE__ */ Z({
|
|
|
2726
2730
|
ref: e,
|
|
2727
2731
|
style: z(a.value)
|
|
2728
2732
|
}, [
|
|
2729
|
-
o.value ? (R(), T("div",
|
|
2730
|
-
|
|
2731
|
-
])) :
|
|
2733
|
+
o.value ? (R(), T("div", oi, [
|
|
2734
|
+
$e(s.$slots, "default")
|
|
2735
|
+
])) : j("", !0)
|
|
2732
2736
|
], 4));
|
|
2733
2737
|
}
|
|
2734
2738
|
});
|
|
2735
|
-
function
|
|
2736
|
-
const t =
|
|
2739
|
+
function ze(r) {
|
|
2740
|
+
const t = Z(r.getVisibleRange()), e = () => {
|
|
2737
2741
|
t.value = r.getVisibleRange();
|
|
2738
2742
|
};
|
|
2739
|
-
return
|
|
2743
|
+
return K(() => r.on("viewportChange", e)), tt(() => r.off("viewportChange", e)), t;
|
|
2740
2744
|
}
|
|
2741
|
-
function
|
|
2742
|
-
const t =
|
|
2745
|
+
function _i(r) {
|
|
2746
|
+
const t = Z(r.getYRange()), e = () => {
|
|
2743
2747
|
t.value = r.getYRange();
|
|
2744
2748
|
};
|
|
2745
|
-
return
|
|
2749
|
+
return K(() => r.on("viewportChange", e)), tt(() => r.off("viewportChange", e)), t;
|
|
2746
2750
|
}
|
|
2747
|
-
function
|
|
2748
|
-
const e =
|
|
2751
|
+
function ii(r, t) {
|
|
2752
|
+
const e = Z(r.getLastValue(t)), o = () => {
|
|
2749
2753
|
var a, s;
|
|
2750
2754
|
const i = r.getLastValue(t);
|
|
2751
2755
|
((a = e.value) == null ? void 0 : a.value) === (i == null ? void 0 : i.value) && ((s = e.value) == null ? void 0 : s.isLive) === (i == null ? void 0 : i.isLive) || (e.value = i);
|
|
2752
2756
|
};
|
|
2753
|
-
return
|
|
2757
|
+
return K(() => {
|
|
2754
2758
|
r.on("dataUpdate", o), r.on("viewportChange", o);
|
|
2755
|
-
}),
|
|
2759
|
+
}), tt(() => {
|
|
2756
2760
|
r.off("dataUpdate", o), r.off("viewportChange", o);
|
|
2757
2761
|
}), e;
|
|
2758
2762
|
}
|
|
2759
|
-
function
|
|
2760
|
-
const e =
|
|
2763
|
+
function ai(r, t) {
|
|
2764
|
+
const e = Z(r.getPreviousClose(t)), o = () => {
|
|
2761
2765
|
e.value = r.getPreviousClose(t);
|
|
2762
2766
|
};
|
|
2763
|
-
return
|
|
2767
|
+
return K(() => r.on("dataUpdate", o)), tt(() => r.off("dataUpdate", o)), e;
|
|
2764
2768
|
}
|
|
2765
|
-
function
|
|
2766
|
-
const t =
|
|
2769
|
+
function ie(r) {
|
|
2770
|
+
const t = Z(r.getCrosshairPosition()), e = () => {
|
|
2767
2771
|
t.value = r.getCrosshairPosition();
|
|
2768
2772
|
};
|
|
2769
|
-
return
|
|
2773
|
+
return K(() => r.on("crosshairMove", e)), tt(() => r.off("crosshairMove", e)), t;
|
|
2770
2774
|
}
|
|
2771
|
-
const
|
|
2775
|
+
const Di = /* @__PURE__ */ Q({
|
|
2772
2776
|
__name: "LineSeries",
|
|
2773
2777
|
props: {
|
|
2774
2778
|
data: {},
|
|
@@ -2777,12 +2781,12 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2777
2781
|
},
|
|
2778
2782
|
emits: ["seriesId"],
|
|
2779
2783
|
setup(r, { emit: t }) {
|
|
2780
|
-
const e = r, o = t, i = rt(), a =
|
|
2781
|
-
return
|
|
2784
|
+
const e = r, o = t, i = rt(), a = Z(null);
|
|
2785
|
+
return K(() => {
|
|
2782
2786
|
var n;
|
|
2783
2787
|
const s = i.addLineSeries({ ...e.options, label: e.label ?? ((n = e.options) == null ? void 0 : n.label), layers: e.data.length });
|
|
2784
2788
|
a.value = s, o("seriesId", s);
|
|
2785
|
-
}),
|
|
2789
|
+
}), tt(() => {
|
|
2786
2790
|
a.value && i.removeSeries(a.value);
|
|
2787
2791
|
}), st(
|
|
2788
2792
|
() => e.data,
|
|
@@ -2798,9 +2802,9 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2798
2802
|
a.value && s && i.updateSeriesOptions(a.value, s);
|
|
2799
2803
|
},
|
|
2800
2804
|
{ deep: !0 }
|
|
2801
|
-
), (s, n) =>
|
|
2805
|
+
), (s, n) => j("", !0);
|
|
2802
2806
|
}
|
|
2803
|
-
}), Bi = /* @__PURE__ */
|
|
2807
|
+
}), Bi = /* @__PURE__ */ Q({
|
|
2804
2808
|
__name: "PieSeries",
|
|
2805
2809
|
props: {
|
|
2806
2810
|
data: {},
|
|
@@ -2808,11 +2812,11 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2808
2812
|
},
|
|
2809
2813
|
emits: ["seriesId"],
|
|
2810
2814
|
setup(r, { emit: t }) {
|
|
2811
|
-
const e = r, o = t, i = rt(), a =
|
|
2812
|
-
return
|
|
2815
|
+
const e = r, o = t, i = rt(), a = Z(null);
|
|
2816
|
+
return K(() => {
|
|
2813
2817
|
const s = i.addPieSeries(e.options);
|
|
2814
2818
|
a.value = s, o("seriesId", s);
|
|
2815
|
-
}),
|
|
2819
|
+
}), tt(() => {
|
|
2816
2820
|
a.value && i.removeSeries(a.value);
|
|
2817
2821
|
}), st(
|
|
2818
2822
|
() => e.data,
|
|
@@ -2825,12 +2829,12 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2825
2829
|
a.value && s && i.updateSeriesOptions(a.value, s);
|
|
2826
2830
|
},
|
|
2827
2831
|
{ deep: !0 }
|
|
2828
|
-
), (s, n) =>
|
|
2832
|
+
), (s, n) => j("", !0);
|
|
2829
2833
|
}
|
|
2830
|
-
}),
|
|
2834
|
+
}), zi = /* @__PURE__ */ Q({
|
|
2831
2835
|
__name: "Crosshair",
|
|
2832
2836
|
setup(r) {
|
|
2833
|
-
const t = rt(), e =
|
|
2837
|
+
const t = rt(), e = ie(t), o = P(() => t.getTheme()), i = P(() => t.getDataInterval()), a = P(() => ({
|
|
2834
2838
|
background: o.value.crosshair.labelBackground,
|
|
2835
2839
|
color: o.value.crosshair.labelTextColor,
|
|
2836
2840
|
fontSize: o.value.typography.axisFontSize + "px",
|
|
@@ -2849,7 +2853,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2849
2853
|
transform: "translateY(-50%)",
|
|
2850
2854
|
...a.value
|
|
2851
2855
|
})
|
|
2852
|
-
},
|
|
2856
|
+
}, L(W(t).yScale.formatY(W(e).y)), 5),
|
|
2853
2857
|
_("div", {
|
|
2854
2858
|
style: z({
|
|
2855
2859
|
position: "absolute",
|
|
@@ -2858,14 +2862,14 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2858
2862
|
transform: "translateX(-50%)",
|
|
2859
2863
|
...a.value
|
|
2860
2864
|
})
|
|
2861
|
-
},
|
|
2862
|
-
], 64)) :
|
|
2865
|
+
}, L(W(Ut)(W(e).time, i.value)), 5)
|
|
2866
|
+
], 64)) : j("", !0);
|
|
2863
2867
|
}
|
|
2864
|
-
}),
|
|
2868
|
+
}), si = { style: {
|
|
2865
2869
|
display: "inline-flex",
|
|
2866
2870
|
fontVariantNumeric: "tabular-nums",
|
|
2867
2871
|
lineHeight: 1.2
|
|
2868
|
-
} },
|
|
2872
|
+
} }, ri = {
|
|
2869
2873
|
key: 0,
|
|
2870
2874
|
style: {
|
|
2871
2875
|
display: "inline-block",
|
|
@@ -2873,10 +2877,10 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2873
2877
|
overflow: "hidden",
|
|
2874
2878
|
position: "relative"
|
|
2875
2879
|
}
|
|
2876
|
-
},
|
|
2880
|
+
}, ni = {
|
|
2877
2881
|
key: 1,
|
|
2878
2882
|
style: { display: "inline-block" }
|
|
2879
|
-
},
|
|
2883
|
+
}, li = /* @__PURE__ */ Q({
|
|
2880
2884
|
__name: "NumberFlow",
|
|
2881
2885
|
props: {
|
|
2882
2886
|
value: {},
|
|
@@ -2885,8 +2889,8 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2885
2889
|
spinDuration: { default: 350 }
|
|
2886
2890
|
},
|
|
2887
2891
|
setup(r) {
|
|
2888
|
-
const t = r, e =
|
|
2889
|
-
|
|
2892
|
+
const t = r, e = Z(!1);
|
|
2893
|
+
K(() => {
|
|
2890
2894
|
e.value = !0;
|
|
2891
2895
|
});
|
|
2892
2896
|
const o = P(() => new Intl.NumberFormat(t.locale, t.format)), i = P(() => {
|
|
@@ -2895,9 +2899,9 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2895
2899
|
l >= "0" && l <= "9" ? n.push({ type: "digit", value: l }) : n.push({ type: "symbol", value: l });
|
|
2896
2900
|
return n;
|
|
2897
2901
|
}), a = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
|
|
2898
|
-
return (s, n) => (R(), T("span",
|
|
2902
|
+
return (s, n) => (R(), T("span", si, [
|
|
2899
2903
|
(R(!0), T(O, null, ct(i.value, (l, c) => (R(), T(O, { key: c }, [
|
|
2900
|
-
l.type === "digit" ? (R(), T("span",
|
|
2904
|
+
l.type === "digit" ? (R(), T("span", ri, [
|
|
2901
2905
|
_("span", {
|
|
2902
2906
|
style: z({
|
|
2903
2907
|
display: "flex",
|
|
@@ -2914,28 +2918,28 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2914
2918
|
justifyContent: "center",
|
|
2915
2919
|
height: "1.2em"
|
|
2916
2920
|
}
|
|
2917
|
-
},
|
|
2921
|
+
}, L(d), 1)), 64))
|
|
2918
2922
|
], 4)
|
|
2919
|
-
])) : (R(), T("span",
|
|
2923
|
+
])) : (R(), T("span", ni, L(l.value), 1))
|
|
2920
2924
|
], 64))), 128))
|
|
2921
2925
|
]));
|
|
2922
2926
|
}
|
|
2923
|
-
}),
|
|
2927
|
+
}), hi = { style: { flex: 1, opacity: 0.8 } }, ci = {
|
|
2924
2928
|
key: 0,
|
|
2925
2929
|
style: { fontWeight: 600, fontVariantNumeric: "tabular-nums" }
|
|
2926
|
-
},
|
|
2930
|
+
}, Pi = /* @__PURE__ */ Q({
|
|
2927
2931
|
__name: "PieLegend",
|
|
2928
2932
|
props: {
|
|
2929
2933
|
seriesId: {},
|
|
2930
2934
|
format: { default: "value" }
|
|
2931
2935
|
},
|
|
2932
2936
|
setup(r) {
|
|
2933
|
-
const t = r, e = rt(), o =
|
|
2937
|
+
const t = r, e = rt(), o = ei(), i = Z(0), a = () => {
|
|
2934
2938
|
i.value++;
|
|
2935
2939
|
};
|
|
2936
|
-
|
|
2940
|
+
K(() => {
|
|
2937
2941
|
e.on("dataUpdate", a);
|
|
2938
|
-
}),
|
|
2942
|
+
}), tt(() => {
|
|
2939
2943
|
e.off("dataUpdate", a);
|
|
2940
2944
|
});
|
|
2941
2945
|
const s = P(() => o.value), n = P(() => (i.value, e.getPieSlices(t.seriesId) ?? []));
|
|
@@ -2962,8 +2966,8 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2962
2966
|
_("span", {
|
|
2963
2967
|
style: z({ width: "10px", height: "10px", borderRadius: "50%", background: u.color, flexShrink: 0 })
|
|
2964
2968
|
}, null, 4),
|
|
2965
|
-
_("span",
|
|
2966
|
-
r.format === "value" ? (R(), T("span",
|
|
2969
|
+
_("span", hi, L(u.label), 1),
|
|
2970
|
+
r.format === "value" ? (R(), T("span", ci, L(l(u.value)), 1)) : j("", !0),
|
|
2967
2971
|
_("span", {
|
|
2968
2972
|
style: z({
|
|
2969
2973
|
opacity: r.format === "percent" ? 1 : 0.5,
|
|
@@ -2973,17 +2977,17 @@ const _i = /* @__PURE__ */ Z({
|
|
|
2973
2977
|
minWidth: "40px",
|
|
2974
2978
|
textAlign: "right"
|
|
2975
2979
|
})
|
|
2976
|
-
},
|
|
2980
|
+
}, L(u.percent.toFixed(1)) + "% ", 5)
|
|
2977
2981
|
]))), 128))
|
|
2978
|
-
], 4)) :
|
|
2982
|
+
], 4)) : j("", !0);
|
|
2979
2983
|
}
|
|
2980
|
-
}),
|
|
2984
|
+
}), di = { style: { display: "flex", alignItems: "center", gap: "8px" } }, ui = { style: { fontWeight: 600 } }, fi = { style: { display: "flex", justifyContent: "space-between", gap: "16px" } }, pi = { style: { opacity: 0.6 } }, gi = { style: { fontWeight: 600 } }, Fi = /* @__PURE__ */ Q({
|
|
2981
2985
|
__name: "PieTooltip",
|
|
2982
2986
|
props: {
|
|
2983
2987
|
seriesId: {}
|
|
2984
2988
|
},
|
|
2985
2989
|
setup(r) {
|
|
2986
|
-
const t = r, e = rt(), o =
|
|
2990
|
+
const t = r, e = rt(), o = ie(e), i = P(() => e.getTheme()), a = P(() => (o.value, e.getPieHoverInfo(t.seriesId))), s = P(() => {
|
|
2987
2991
|
if (!o.value || !a.value) return null;
|
|
2988
2992
|
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
2993
|
return { left: b, top: v };
|
|
@@ -3011,7 +3015,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3011
3015
|
gap: "6px"
|
|
3012
3016
|
})
|
|
3013
3017
|
}, [
|
|
3014
|
-
_("div",
|
|
3018
|
+
_("div", di, [
|
|
3015
3019
|
_("span", {
|
|
3016
3020
|
style: z({
|
|
3017
3021
|
width: "10px",
|
|
@@ -3021,18 +3025,18 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3021
3025
|
flexShrink: 0
|
|
3022
3026
|
})
|
|
3023
3027
|
}, null, 4),
|
|
3024
|
-
_("span",
|
|
3028
|
+
_("span", ui, L(a.value.label), 1)
|
|
3025
3029
|
]),
|
|
3026
|
-
_("div",
|
|
3027
|
-
_("span",
|
|
3028
|
-
_("span",
|
|
3030
|
+
_("div", fi, [
|
|
3031
|
+
_("span", pi, L(a.value.value.toLocaleString()), 1),
|
|
3032
|
+
_("span", gi, L(a.value.percent.toFixed(1)) + "%", 1)
|
|
3029
3033
|
])
|
|
3030
|
-
], 4)) :
|
|
3034
|
+
], 4)) : j("", !0);
|
|
3031
3035
|
}
|
|
3032
|
-
}),
|
|
3036
|
+
}), Ii = /* @__PURE__ */ Q({
|
|
3033
3037
|
__name: "TimeAxis",
|
|
3034
3038
|
setup(r) {
|
|
3035
|
-
const t = rt(), e =
|
|
3039
|
+
const t = rt(), e = ze(t), o = /* @__PURE__ */ new Map(), i = P(() => t.getTheme()), a = P(() => {
|
|
3036
3040
|
e.value;
|
|
3037
3041
|
const s = t.getDataInterval(), { ticks: n, tickInterval: l } = t.timeScale.niceTickValues(s), c = new Set(n), d = performance.now();
|
|
3038
3042
|
for (const u of n)
|
|
@@ -3073,35 +3077,35 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3073
3077
|
transition: "opacity 0.3s ease",
|
|
3074
3078
|
willChange: "opacity"
|
|
3075
3079
|
})
|
|
3076
|
-
},
|
|
3080
|
+
}, L(W(Ut)(l, a.value.tickInterval)), 5))), 128))
|
|
3077
3081
|
], 4));
|
|
3078
3082
|
}
|
|
3079
|
-
}),
|
|
3083
|
+
}), mi = {
|
|
3080
3084
|
key: 0,
|
|
3081
3085
|
style: { display: "inline-flex", alignItems: "center", gap: "4px" }
|
|
3082
|
-
},
|
|
3086
|
+
}, bi = {
|
|
3083
3087
|
key: 1,
|
|
3084
3088
|
style: { display: "inline-flex", alignItems: "center", gap: "3px" }
|
|
3085
|
-
},
|
|
3089
|
+
}, vi = {
|
|
3086
3090
|
key: 0,
|
|
3087
3091
|
style: { display: "grid", gridTemplateColumns: "auto 1fr", gap: "4px 12px" }
|
|
3088
|
-
},
|
|
3092
|
+
}, yi = { style: { opacity: 0.5 } }, xi = {
|
|
3089
3093
|
key: 1,
|
|
3090
3094
|
style: { display: "flex", alignItems: "center", gap: "8px", padding: "2px 0" }
|
|
3091
|
-
},
|
|
3095
|
+
}, Ci = { style: { opacity: 0.6, flex: "1" } }, Li = /* @__PURE__ */ Q({
|
|
3092
3096
|
__name: "Tooltip",
|
|
3093
3097
|
props: {
|
|
3094
3098
|
seriesId: {},
|
|
3095
3099
|
sort: { default: "none" }
|
|
3096
3100
|
},
|
|
3097
3101
|
setup(r) {
|
|
3098
|
-
const t = r, e = rt(), o =
|
|
3102
|
+
const t = r, e = rt(), o = ie(e), i = P(() => t.seriesId ? [t.seriesId] : e.getSeriesIds()), a = P(() => i.value[0] ?? ""), s = Z(
|
|
3099
3103
|
a.value ? e.getLastValue(a.value) : null
|
|
3100
3104
|
), n = () => {
|
|
3101
3105
|
const p = a.value;
|
|
3102
3106
|
s.value = p ? e.getLastValue(p) : null;
|
|
3103
3107
|
};
|
|
3104
|
-
|
|
3108
|
+
K(() => e.on("dataUpdate", n)), tt(() => e.off("dataUpdate", n)), st(a, () => n());
|
|
3105
3109
|
const l = P(() => e.getTheme()), c = P(() => e.getDataInterval());
|
|
3106
3110
|
function d(p, m) {
|
|
3107
3111
|
return m === "none" || p.length <= 1 ? p : [...p].sort((f, y) => {
|
|
@@ -3141,8 +3145,8 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3141
3145
|
return d(p, t.sort);
|
|
3142
3146
|
}), C = P(() => v.value.length === 0 ? 0 : v.value[0].data.time), w = P(() => {
|
|
3143
3147
|
if (!o.value || b.value.length === 0) return null;
|
|
3144
|
-
const p = e.getMediaSize(), m = b.value.some((
|
|
3145
|
-
return { left: $, top:
|
|
3148
|
+
const p = e.getMediaSize(), m = b.value.some((H) => "open" in H.data), f = b.value.filter((H) => !("open" in H.data)).length, y = 160, F = m ? 140 : 40 + f * 22, k = 16, D = 16, I = p.width - e.yAxisWidth, G = p.height - e.xAxisHeight, $ = o.value.mediaX + k + y > I ? o.value.mediaX - k - y : o.value.mediaX + k, q = o.value.mediaY + D + F > G ? o.value.mediaY - D - F : o.value.mediaY + D;
|
|
3149
|
+
return { left: $, top: q };
|
|
3146
3150
|
});
|
|
3147
3151
|
function g(p) {
|
|
3148
3152
|
return "open" in p;
|
|
@@ -3168,22 +3172,22 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3168
3172
|
}, [
|
|
3169
3173
|
_("span", {
|
|
3170
3174
|
style: z({ color: l.value.axis.textColor, marginRight: "2px" })
|
|
3171
|
-
},
|
|
3175
|
+
}, L(W(Ut)(C.value, c.value)), 5),
|
|
3172
3176
|
(R(!0), T(O, null, ct(v.value, (f) => (R(), T(O, {
|
|
3173
3177
|
key: f.id
|
|
3174
3178
|
}, [
|
|
3175
|
-
g(f.data) ? (R(), T("span",
|
|
3179
|
+
g(f.data) ? (R(), T("span", mi, [
|
|
3176
3180
|
(R(), T(O, null, ct(["O", "H", "L", "C"], (y) => (R(), T(O, { key: y }, [
|
|
3177
3181
|
_("span", {
|
|
3178
3182
|
style: z({ color: l.value.axis.textColor, opacity: 0.5, marginLeft: "5px" })
|
|
3179
|
-
},
|
|
3183
|
+
}, L(y), 5),
|
|
3180
3184
|
_("span", {
|
|
3181
3185
|
style: z({
|
|
3182
3186
|
color: f.data.close >= f.data.open ? l.value.candlestick.upColor : l.value.candlestick.downColor,
|
|
3183
3187
|
fontWeight: 500,
|
|
3184
3188
|
marginLeft: "2px"
|
|
3185
3189
|
})
|
|
3186
|
-
},
|
|
3190
|
+
}, L({ O: f.data.open, H: f.data.high, L: f.data.low, C: f.data.close }[y].toFixed(2)), 5)
|
|
3187
3191
|
], 64))), 64)),
|
|
3188
3192
|
f.data.volume != null ? (R(), T(O, { key: 0 }, [
|
|
3189
3193
|
_("span", {
|
|
@@ -3191,9 +3195,9 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3191
3195
|
}, "V", 4),
|
|
3192
3196
|
_("span", {
|
|
3193
3197
|
style: z({ color: l.value.axis.textColor, fontWeight: 500, marginLeft: "2px" })
|
|
3194
|
-
},
|
|
3195
|
-
], 64)) :
|
|
3196
|
-
])) : (R(), T("span",
|
|
3198
|
+
}, L(u(f.data.volume)), 5)
|
|
3199
|
+
], 64)) : j("", !0)
|
|
3200
|
+
])) : (R(), T("span", bi, [
|
|
3197
3201
|
_("span", {
|
|
3198
3202
|
style: z({
|
|
3199
3203
|
width: "6px",
|
|
@@ -3205,7 +3209,7 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3205
3209
|
}, null, 4),
|
|
3206
3210
|
_("span", {
|
|
3207
3211
|
style: z({ color: f.color, fontWeight: 500 })
|
|
3208
|
-
},
|
|
3212
|
+
}, L(f.data.value.toFixed(2)), 5)
|
|
3209
3213
|
]))
|
|
3210
3214
|
], 64))), 128))
|
|
3211
3215
|
], 4),
|
|
@@ -3241,11 +3245,11 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3241
3245
|
borderBottom: "1px solid " + l.value.tooltip.borderColor,
|
|
3242
3246
|
letterSpacing: "0.02em"
|
|
3243
3247
|
})
|
|
3244
|
-
},
|
|
3248
|
+
}, L(W(io)(C.value)) + " " + L(W(Ut)(C.value, c.value)), 5),
|
|
3245
3249
|
(R(!0), T(O, null, ct(v.value, (f) => (R(), T(O, {
|
|
3246
3250
|
key: f.id
|
|
3247
3251
|
}, [
|
|
3248
|
-
g(f.data) ? (R(), T("div",
|
|
3252
|
+
g(f.data) ? (R(), T("div", vi, [
|
|
3249
3253
|
(R(!0), T(O, null, ct([
|
|
3250
3254
|
{ label: "Open", val: f.data.open },
|
|
3251
3255
|
{ label: "High", val: f.data.high },
|
|
@@ -3254,22 +3258,22 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3254
3258
|
], (y) => (R(), T(O, {
|
|
3255
3259
|
key: y.label
|
|
3256
3260
|
}, [
|
|
3257
|
-
_("span",
|
|
3261
|
+
_("span", yi, L(y.label), 1),
|
|
3258
3262
|
_("span", {
|
|
3259
3263
|
style: z({
|
|
3260
3264
|
fontWeight: 600,
|
|
3261
3265
|
color: f.data.close >= f.data.open ? l.value.candlestick.upColor : l.value.candlestick.downColor,
|
|
3262
3266
|
textAlign: "right"
|
|
3263
3267
|
})
|
|
3264
|
-
},
|
|
3268
|
+
}, L(y.val.toFixed(2)), 5)
|
|
3265
3269
|
], 64))), 128)),
|
|
3266
3270
|
f.data.volume != null ? (R(), T(O, { key: 0 }, [
|
|
3267
3271
|
m[0] || (m[0] = _("span", { style: { opacity: 0.5 } }, "Volume", -1)),
|
|
3268
3272
|
_("span", {
|
|
3269
3273
|
style: z({ fontWeight: 600, color: l.value.tooltip.textColor, textAlign: "right" })
|
|
3270
|
-
},
|
|
3271
|
-
], 64)) :
|
|
3272
|
-
])) : (R(), T("div",
|
|
3274
|
+
}, L(u(f.data.volume)), 5)
|
|
3275
|
+
], 64)) : j("", !0)
|
|
3276
|
+
])) : (R(), T("div", xi, [
|
|
3273
3277
|
_("span", {
|
|
3274
3278
|
style: z({
|
|
3275
3279
|
width: "8px",
|
|
@@ -3279,19 +3283,19 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3279
3283
|
flexShrink: 0
|
|
3280
3284
|
})
|
|
3281
3285
|
}, null, 4),
|
|
3282
|
-
_("span",
|
|
3286
|
+
_("span", Ci, L(f.label ?? "Value"), 1),
|
|
3283
3287
|
_("span", {
|
|
3284
3288
|
style: z({ fontWeight: 600, color: f.color })
|
|
3285
|
-
},
|
|
3289
|
+
}, L(f.data.value.toFixed(2)), 5)
|
|
3286
3290
|
]))
|
|
3287
3291
|
], 64))), 128))
|
|
3288
|
-
], 4)) :
|
|
3289
|
-
], 64)) :
|
|
3292
|
+
], 4)) : j("", !0)
|
|
3293
|
+
], 64)) : j("", !0);
|
|
3290
3294
|
}
|
|
3291
|
-
}),
|
|
3295
|
+
}), Wi = /* @__PURE__ */ Q({
|
|
3292
3296
|
__name: "YAxis",
|
|
3293
3297
|
setup(r) {
|
|
3294
|
-
const t = rt(), e =
|
|
3298
|
+
const t = rt(), e = ze(t), o = /* @__PURE__ */ new Map(), i = P(() => t.getTheme()), a = P(() => {
|
|
3295
3299
|
e.value;
|
|
3296
3300
|
const s = t.yScale.niceTickValues(), n = new Set(s), l = performance.now();
|
|
3297
3301
|
for (const c of s)
|
|
@@ -3328,18 +3332,18 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3328
3332
|
transition: "opacity 0.3s ease",
|
|
3329
3333
|
willChange: "opacity"
|
|
3330
3334
|
})
|
|
3331
|
-
},
|
|
3335
|
+
}, L(W(t).yScale.formatY(l)), 5))), 128))
|
|
3332
3336
|
], 4));
|
|
3333
3337
|
}
|
|
3334
|
-
}),
|
|
3338
|
+
}), Ai = /* @__PURE__ */ Q({
|
|
3335
3339
|
__name: "YLabel",
|
|
3336
3340
|
props: {
|
|
3337
3341
|
seriesId: {},
|
|
3338
3342
|
color: {}
|
|
3339
3343
|
},
|
|
3340
3344
|
setup(r) {
|
|
3341
|
-
const t = r, e = rt(), o =
|
|
3342
|
-
|
|
3345
|
+
const t = r, e = rt(), o = ii(e, t.seriesId), i = ai(e, t.seriesId);
|
|
3346
|
+
K(() => e.setYLabel(!0)), tt(() => e.setYLabel(!1));
|
|
3343
3347
|
const a = P(() => e.getTheme()), s = P(() => {
|
|
3344
3348
|
const d = o.value;
|
|
3345
3349
|
return d === null ? 0 : e.yScale.valueToY(d.value);
|
|
@@ -3387,66 +3391,66 @@ const _i = /* @__PURE__ */ Z({
|
|
|
3387
3391
|
transition: "background-color 0.3s ease"
|
|
3388
3392
|
})
|
|
3389
3393
|
}, [
|
|
3390
|
-
|
|
3394
|
+
Xe(li, {
|
|
3391
3395
|
value: W(o).value,
|
|
3392
3396
|
format: c.value,
|
|
3393
3397
|
"spin-duration": 350
|
|
3394
3398
|
}, null, 8, ["value", "format"])
|
|
3395
3399
|
], 4)
|
|
3396
|
-
], 64)) :
|
|
3400
|
+
], 64)) : j("", !0);
|
|
3397
3401
|
}
|
|
3398
3402
|
});
|
|
3399
3403
|
export {
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3404
|
+
Mi as BarSeries,
|
|
3405
|
+
Ri as CandlestickSeries,
|
|
3406
|
+
Ti as ChartContainer,
|
|
3407
|
+
Co as ChartInstance,
|
|
3408
|
+
zi as Crosshair,
|
|
3409
|
+
Di as LineSeries,
|
|
3410
|
+
li as NumberFlow,
|
|
3411
|
+
Pi as PieLegend,
|
|
3408
3412
|
Bi as PieSeries,
|
|
3409
|
-
|
|
3410
|
-
|
|
3413
|
+
Fi as PieTooltip,
|
|
3414
|
+
Ii as TimeAxis,
|
|
3411
3415
|
Li as Tooltip,
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3416
|
+
Wi as YAxis,
|
|
3417
|
+
Ai as YLabel,
|
|
3418
|
+
Do as andromeda,
|
|
3415
3419
|
Bo as ayuMirage,
|
|
3416
|
-
|
|
3417
|
-
|
|
3420
|
+
Si as buildTheme,
|
|
3421
|
+
zo as catppuccin,
|
|
3418
3422
|
Y as createTheme,
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3423
|
+
Se as darkTheme,
|
|
3424
|
+
oo as detectInterval,
|
|
3425
|
+
Po as dracula,
|
|
3426
|
+
io as formatDate,
|
|
3427
|
+
Ut as formatTime,
|
|
3428
|
+
Fo as githubLight,
|
|
3429
|
+
Io as gruvbox,
|
|
3426
3430
|
Lo as handwritten,
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3431
|
+
Vo as highContrast,
|
|
3432
|
+
Yo as lavenderMist,
|
|
3433
|
+
Uo as lightPink,
|
|
3434
|
+
ki as lightTheme,
|
|
3435
|
+
Eo as materialPalenight,
|
|
3436
|
+
Xo as minimalLight,
|
|
3437
|
+
Ho as mintBreeze,
|
|
3438
|
+
Go as monokaiPro,
|
|
3439
|
+
No as nightOwl,
|
|
3440
|
+
pe as normalizeTime,
|
|
3441
|
+
Jo as oneDarkPro,
|
|
3442
|
+
jo as panda,
|
|
3443
|
+
Ko as peachCream,
|
|
3444
|
+
qo as quietLight,
|
|
3445
|
+
Qo as rosePineDawn,
|
|
3446
|
+
Zo as sandDune,
|
|
3447
|
+
ti as solarizedLight,
|
|
3448
|
+
xe as themes,
|
|
3445
3449
|
rt as useChartInstance,
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3450
|
+
ie as useCrosshairPosition,
|
|
3451
|
+
ii as useLastYValue,
|
|
3452
|
+
ai as usePreviousClose,
|
|
3453
|
+
ei as useTheme,
|
|
3454
|
+
ze as useVisibleRange,
|
|
3455
|
+
_i as useYRange
|
|
3452
3456
|
};
|