@tradecanvas/commons 1.46.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +282 -279
- package/dist/index.js.map +1 -1
- package/dist/market/presets.d.ts +1 -1
- package/dist/types/chart.d.ts +2 -2
- package/dist/types/realtime.d.ts +3 -3
- package/dist/types/symbol.d.ts +8 -2
- package/dist/types/symbol.d.ts.map +1 -1
- package/dist/utils/symbols.d.ts +2 -0
- package/dist/utils/symbols.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -360,7 +360,7 @@ function ve(e, t, n) {
|
|
|
360
360
|
}
|
|
361
361
|
//#endregion
|
|
362
362
|
//#region src/utils/timezone.ts
|
|
363
|
-
var g = 6e4,
|
|
363
|
+
var g = 6e4, ye = 1440 * g, _ = 15 * g, be = 8192, xe = 7 * ye, Se = 4096, Ce = new Set([
|
|
364
364
|
"UTC",
|
|
365
365
|
"Etc/UTC",
|
|
366
366
|
"GMT",
|
|
@@ -371,9 +371,9 @@ var g = 6e4, _ = 1440 * g, v = 15 * g, ye = 8192, y = 7 * _, be = 4096, xe = new
|
|
|
371
371
|
"Etc/Universal",
|
|
372
372
|
"Zulu",
|
|
373
373
|
"Etc/Zulu"
|
|
374
|
-
]),
|
|
375
|
-
function
|
|
376
|
-
let t =
|
|
374
|
+
]), we = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), Te = /* @__PURE__ */ new Map();
|
|
375
|
+
function Ee(e) {
|
|
376
|
+
let t = we.get(e);
|
|
377
377
|
return t || (t = new Intl.DateTimeFormat("en-US", {
|
|
378
378
|
timeZone: e,
|
|
379
379
|
hourCycle: "h23",
|
|
@@ -383,34 +383,34 @@ function we(e) {
|
|
|
383
383
|
hour: "numeric",
|
|
384
384
|
minute: "numeric",
|
|
385
385
|
second: "numeric"
|
|
386
|
-
}),
|
|
386
|
+
}), we.set(e, t)), t;
|
|
387
387
|
}
|
|
388
|
-
function
|
|
388
|
+
function y(e) {
|
|
389
389
|
if (!e) return !1;
|
|
390
390
|
try {
|
|
391
|
-
return
|
|
391
|
+
return Ee(e), !0;
|
|
392
392
|
} catch {
|
|
393
393
|
return !1;
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
|
-
function
|
|
397
|
-
if (!Number.isFinite(t) ||
|
|
398
|
-
let n =
|
|
399
|
-
n || (n = /* @__PURE__ */ new Map(),
|
|
400
|
-
let r = Math.floor(t /
|
|
401
|
-
return i || (i =
|
|
402
|
-
}
|
|
403
|
-
function
|
|
404
|
-
let n =
|
|
396
|
+
function b(e, t) {
|
|
397
|
+
if (!Number.isFinite(t) || Ce.has(e)) return 0;
|
|
398
|
+
let n = Te.get(e);
|
|
399
|
+
n || (n = /* @__PURE__ */ new Map(), Te.set(e, n));
|
|
400
|
+
let r = Math.floor(t / xe), i = n.get(r);
|
|
401
|
+
return i || (i = De(e, r * xe), n.size >= Se && n.clear(), n.set(r, i)), t < i.change ? i.before : i.after;
|
|
402
|
+
}
|
|
403
|
+
function De(e, t) {
|
|
404
|
+
let n = x(e, t), r = t + xe - _, i = x(e, r);
|
|
405
405
|
if (i === n) return {
|
|
406
406
|
before: n,
|
|
407
407
|
change: Infinity,
|
|
408
408
|
after: i
|
|
409
409
|
};
|
|
410
410
|
let a = t;
|
|
411
|
-
for (; r - a >
|
|
412
|
-
let t = a + Math.floor((r - a) /
|
|
413
|
-
|
|
411
|
+
for (; r - a > _;) {
|
|
412
|
+
let t = a + Math.floor((r - a) / _ / 2) * _;
|
|
413
|
+
x(e, t) === n ? a = t : r = t;
|
|
414
414
|
}
|
|
415
415
|
return {
|
|
416
416
|
before: n,
|
|
@@ -418,11 +418,11 @@ function Te(e, t) {
|
|
|
418
418
|
after: i
|
|
419
419
|
};
|
|
420
420
|
}
|
|
421
|
-
function
|
|
422
|
-
let n = Math.floor(t /
|
|
421
|
+
function x(e, t) {
|
|
422
|
+
let n = Math.floor(t / _), r = `${e}|${n}`, i = v.get(r);
|
|
423
423
|
if (i !== void 0) return i;
|
|
424
|
-
let a = n *
|
|
425
|
-
for (let t of
|
|
424
|
+
let a = n * _, o = 1970, s = 1, c = 1, l = 0, u = 0, d = 0;
|
|
425
|
+
for (let t of Ee(e).formatToParts(new Date(a))) {
|
|
426
426
|
let e = Number(t.value);
|
|
427
427
|
switch (t.type) {
|
|
428
428
|
case "year":
|
|
@@ -446,20 +446,20 @@ function C(e, t) {
|
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
let f = Math.round((Date.UTC(o, s - 1, c, l, u, d) - a) / g);
|
|
449
|
-
return
|
|
449
|
+
return v.size >= be && v.clear(), v.set(r, f), f;
|
|
450
450
|
}
|
|
451
|
-
function
|
|
452
|
-
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e :
|
|
451
|
+
function S(e, t) {
|
|
452
|
+
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : b(e, t);
|
|
453
453
|
}
|
|
454
|
-
function
|
|
455
|
-
let n = e -
|
|
456
|
-
if (n +
|
|
457
|
-
let r = e -
|
|
458
|
-
return r +
|
|
454
|
+
function Oe(e, t) {
|
|
455
|
+
let n = e - S(t, e - ye) * g;
|
|
456
|
+
if (n + S(t, n) * g === e) return n;
|
|
457
|
+
let r = e - S(t, e + ye) * g;
|
|
458
|
+
return r + S(t, r) * g === e ? r : n;
|
|
459
459
|
}
|
|
460
|
-
var
|
|
461
|
-
function
|
|
462
|
-
let r = `${e}|${JSON.stringify(t)}|${n === null ? "local" : typeof n == "number" ? `fixed:${n}` : n}`, i =
|
|
460
|
+
var ke = /* @__PURE__ */ new Map();
|
|
461
|
+
function Ae(e, t, n) {
|
|
462
|
+
let r = `${e}|${JSON.stringify(t)}|${n === null ? "local" : typeof n == "number" ? `fixed:${n}` : n}`, i = ke.get(r);
|
|
463
463
|
if (i) return i;
|
|
464
464
|
let a = n === null ? void 0 : typeof n == "number" ? "UTC" : n, o;
|
|
465
465
|
try {
|
|
@@ -474,11 +474,11 @@ function Oe(e, t, n) {
|
|
|
474
474
|
});
|
|
475
475
|
}
|
|
476
476
|
let s = typeof n == "number" ? n * g : 0;
|
|
477
|
-
return i = (e) => o.format(new Date(e + s)),
|
|
477
|
+
return i = (e) => o.format(new Date(e + s)), ke.set(r, i), i;
|
|
478
478
|
}
|
|
479
479
|
//#endregion
|
|
480
480
|
//#region src/utils/time.ts
|
|
481
|
-
var
|
|
481
|
+
var je = {
|
|
482
482
|
"1s": 1e3,
|
|
483
483
|
"5s": 5e3,
|
|
484
484
|
"15s": 15e3,
|
|
@@ -505,16 +505,16 @@ var ke = {
|
|
|
505
505
|
"3M": 7776e6,
|
|
506
506
|
"6M": 15552e6,
|
|
507
507
|
"12M": 31536e6
|
|
508
|
-
},
|
|
508
|
+
}, C = {
|
|
509
509
|
s: 1e3,
|
|
510
510
|
m: 6e4,
|
|
511
511
|
h: 36e5,
|
|
512
512
|
d: 864e5,
|
|
513
513
|
w: 6048e5,
|
|
514
514
|
M: 2592e6
|
|
515
|
-
},
|
|
516
|
-
function
|
|
517
|
-
let t =
|
|
515
|
+
}, Me = /^([1-9]\d*)([smhdwM])$/;
|
|
516
|
+
function w(e) {
|
|
517
|
+
let t = Me.exec(e);
|
|
518
518
|
if (!t) return null;
|
|
519
519
|
let n = Number(t[1]);
|
|
520
520
|
return Number.isSafeInteger(n) ? {
|
|
@@ -522,24 +522,24 @@ function T(e) {
|
|
|
522
522
|
unit: t[2]
|
|
523
523
|
} : null;
|
|
524
524
|
}
|
|
525
|
-
var
|
|
526
|
-
function
|
|
525
|
+
var Ne = 1e6;
|
|
526
|
+
function Pe(e) {
|
|
527
527
|
let t = /^([1-9]\d*)T$/.exec(e);
|
|
528
528
|
if (!t) return null;
|
|
529
529
|
let n = Number(t[1]);
|
|
530
|
-
return Number.isSafeInteger(n) && n <=
|
|
530
|
+
return Number.isSafeInteger(n) && n <= Ne ? n : null;
|
|
531
531
|
}
|
|
532
|
-
function
|
|
533
|
-
return
|
|
532
|
+
function Fe(e) {
|
|
533
|
+
return w(e) !== null;
|
|
534
534
|
}
|
|
535
|
-
function
|
|
536
|
-
let t =
|
|
535
|
+
function T(e) {
|
|
536
|
+
let t = je[e];
|
|
537
537
|
if (t !== void 0) return t;
|
|
538
|
-
let n =
|
|
539
|
-
return n ? n.count *
|
|
538
|
+
let n = w(e);
|
|
539
|
+
return n ? n.count * C[n.unit] : NaN;
|
|
540
540
|
}
|
|
541
|
-
function
|
|
542
|
-
let n = new Date(e), r =
|
|
541
|
+
function Ie(e, t) {
|
|
542
|
+
let n = new Date(e), r = T(t);
|
|
543
543
|
return r >= 864e5 ? n.toLocaleDateString(void 0, {
|
|
544
544
|
month: "short",
|
|
545
545
|
day: "numeric"
|
|
@@ -552,11 +552,11 @@ function Fe(e, t) {
|
|
|
552
552
|
second: "2-digit"
|
|
553
553
|
});
|
|
554
554
|
}
|
|
555
|
-
function
|
|
556
|
-
let n =
|
|
555
|
+
function Le(e, t) {
|
|
556
|
+
let n = T(t);
|
|
557
557
|
return Math.floor(e / n) * n;
|
|
558
558
|
}
|
|
559
|
-
function
|
|
559
|
+
function Re(e, t) {
|
|
560
560
|
if (t === null) {
|
|
561
561
|
let t = new Date(e);
|
|
562
562
|
return {
|
|
@@ -567,7 +567,7 @@ function Le(e, t) {
|
|
|
567
567
|
minutes: t.getMinutes()
|
|
568
568
|
};
|
|
569
569
|
}
|
|
570
|
-
let n = new Date(e +
|
|
570
|
+
let n = new Date(e + S(t, e) * 6e4);
|
|
571
571
|
return {
|
|
572
572
|
year: n.getUTCFullYear(),
|
|
573
573
|
month: n.getUTCMonth() + 1,
|
|
@@ -576,11 +576,11 @@ function Le(e, t) {
|
|
|
576
576
|
minutes: n.getUTCMinutes()
|
|
577
577
|
};
|
|
578
578
|
}
|
|
579
|
-
function
|
|
579
|
+
function ze(e) {
|
|
580
580
|
return e.hours === 0 && e.minutes === 0;
|
|
581
581
|
}
|
|
582
|
-
var
|
|
583
|
-
function
|
|
582
|
+
var Be = 20 * 36e5;
|
|
583
|
+
function Ve(e) {
|
|
584
584
|
let t = Math.min(e.length, 64);
|
|
585
585
|
if (t < 2) return;
|
|
586
586
|
let n = ce(e), r = Infinity;
|
|
@@ -588,81 +588,81 @@ function Be(e) {
|
|
|
588
588
|
let t = Math.abs(e[i].time - e[i - 1].time) * n;
|
|
589
589
|
t > 0 && t < r && (r = t);
|
|
590
590
|
}
|
|
591
|
-
return r === Infinity ? void 0 : r >=
|
|
591
|
+
return r === Infinity ? void 0 : r >= Be;
|
|
592
592
|
}
|
|
593
|
-
function
|
|
594
|
-
let n =
|
|
593
|
+
function He(e, t = Date.now()) {
|
|
594
|
+
let n = S(e, t), r = n >= 0 ? "+" : "-", i = Math.abs(n), a = Math.floor(i / 60), o = i % 60;
|
|
595
595
|
return o === 0 ? `UTC${r}${a}` : `UTC${r}${a}:${String(o).padStart(2, "0")}`;
|
|
596
596
|
}
|
|
597
|
-
var
|
|
598
|
-
function
|
|
599
|
-
let { count: r, unit: i } =
|
|
597
|
+
var Ue = Date.UTC(1970, 0, 5);
|
|
598
|
+
function We(e, t, n = 1) {
|
|
599
|
+
let { count: r, unit: i } = w(t) ?? {
|
|
600
600
|
count: 1,
|
|
601
601
|
unit: "m"
|
|
602
602
|
};
|
|
603
603
|
if (i === "s" || i === "m" || i === "h" || i === "d") {
|
|
604
|
-
let t = r *
|
|
604
|
+
let t = r * C[i];
|
|
605
605
|
return Math.floor(e / t) * t;
|
|
606
606
|
}
|
|
607
607
|
let a = new Date(e);
|
|
608
608
|
if (i === "w") {
|
|
609
|
-
let e =
|
|
609
|
+
let e = C.d, t = (a.getUTCDay() - n + 7) % 7, i = Date.UTC(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate() - t);
|
|
610
610
|
if (r <= 1) return i;
|
|
611
|
-
let o = Math.floor((i -
|
|
612
|
-
return
|
|
611
|
+
let o = Math.floor((i - Ue) / (7 * e));
|
|
612
|
+
return Ue + Math.floor(o / r) * r * 7 * e;
|
|
613
613
|
}
|
|
614
614
|
let o = a.getUTCFullYear() * 12 + a.getUTCMonth(), s = Math.floor(o / r) * r;
|
|
615
615
|
return Date.UTC(Math.floor(s / 12), s % 12, 1);
|
|
616
616
|
}
|
|
617
617
|
//#endregion
|
|
618
618
|
//#region src/utils/precision.ts
|
|
619
|
-
var
|
|
620
|
-
function
|
|
621
|
-
let n = `${e}|${t}`, r =
|
|
622
|
-
return r || (
|
|
619
|
+
var Ge = 64, E = /* @__PURE__ */ new Map();
|
|
620
|
+
function Ke(e, t) {
|
|
621
|
+
let n = `${e}|${t}`, r = E.get(n);
|
|
622
|
+
return r || (E.size >= Ge && E.clear(), r = new Intl.NumberFormat(e, {
|
|
623
623
|
minimumFractionDigits: t,
|
|
624
624
|
maximumFractionDigits: t
|
|
625
|
-
}),
|
|
625
|
+
}), E.set(n, r)), r;
|
|
626
626
|
}
|
|
627
|
-
function
|
|
628
|
-
return t.formatPrice ? t.formatPrice(e) :
|
|
627
|
+
function qe(e, t, n) {
|
|
628
|
+
return t.formatPrice ? t.formatPrice(e) : D(e, n ?? Je(t.priceRange.min, t.priceRange.max), t.numberLocale ?? "en-US");
|
|
629
629
|
}
|
|
630
|
-
function
|
|
631
|
-
return
|
|
630
|
+
function D(e, t = 2, n = "en-US") {
|
|
631
|
+
return Ke(n, t).format(e);
|
|
632
632
|
}
|
|
633
|
-
function
|
|
633
|
+
function Je(e, t) {
|
|
634
634
|
if (!(t > e) || !Number.isFinite(e) || !Number.isFinite(t)) return 2;
|
|
635
635
|
let n = oe(e, t, 8);
|
|
636
636
|
return n > 0 && n < 1 ? Math.ceil(-Math.log10(n)) + 1 : 2;
|
|
637
637
|
}
|
|
638
|
-
function
|
|
638
|
+
function Ye(e, t, n, r = 2, i = "en-US") {
|
|
639
639
|
if ((t === "percentage" || t === "indexedTo100") && n && n !== 0) {
|
|
640
640
|
if (t === "percentage") {
|
|
641
641
|
let t = (e / n - 1) * 100;
|
|
642
642
|
return `${t > 0 ? "+" : ""}${t.toFixed(2)}%`;
|
|
643
643
|
}
|
|
644
|
-
return
|
|
644
|
+
return D(e / n * 100, 2, i);
|
|
645
645
|
}
|
|
646
|
-
return
|
|
646
|
+
return D(e, r, i);
|
|
647
647
|
}
|
|
648
|
-
function
|
|
648
|
+
function Xe(e, t, n = 1) {
|
|
649
649
|
let r = Number.isInteger(n) && n > 1 ? n : 1;
|
|
650
650
|
if (!Number.isFinite(e) || !Number.isInteger(t) || t < 2) return String(e);
|
|
651
651
|
let i = t * r, a = Math.round(Math.abs(e) * i), o = Math.floor(a / i), s = a - o * i, c = Math.floor(s / r), l = String(t - 1).length, u = r > 1 ? String(Math.floor((s - c * r) / r * 10)) : "";
|
|
652
652
|
return `${e < 0 && a > 0 ? "-" : ""}${o}'${String(c).padStart(l, "0")}${u}`;
|
|
653
653
|
}
|
|
654
|
-
function
|
|
654
|
+
function Ze(e) {
|
|
655
655
|
if (!Number.isInteger(e.denominator) || e.denominator < 2) return null;
|
|
656
656
|
let t = Number.isInteger(e.subDenominator) && (e.subDenominator ?? 0) > 1 ? e.subDenominator : 1;
|
|
657
657
|
return 1 / (e.denominator * t);
|
|
658
658
|
}
|
|
659
|
-
function Ze(e) {
|
|
660
|
-
return e ? typeof e == "function" ? e : Xe(e) === null ? null : (t) => Ye(t, e.denominator, e.subDenominator) : null;
|
|
661
|
-
}
|
|
662
659
|
function Qe(e) {
|
|
663
|
-
return e
|
|
660
|
+
return e ? typeof e == "function" ? e : Ze(e) === null ? null : (t) => Xe(t, e.denominator, e.subDenominator) : null;
|
|
664
661
|
}
|
|
665
662
|
function $e(e) {
|
|
663
|
+
return e >= 1e9 ? (e / 1e9).toFixed(2) + "B" : e >= 1e6 ? (e / 1e6).toFixed(2) + "M" : e >= 1e3 ? (e / 1e3).toFixed(2) + "K" : e.toFixed(0);
|
|
664
|
+
}
|
|
665
|
+
function et(e) {
|
|
666
666
|
let t = 0;
|
|
667
667
|
for (let n of e) {
|
|
668
668
|
let e = n.toString(), r = e.indexOf(".");
|
|
@@ -672,7 +672,7 @@ function $e(e) {
|
|
|
672
672
|
}
|
|
673
673
|
//#endregion
|
|
674
674
|
//#region src/utils/priceSource.ts
|
|
675
|
-
var
|
|
675
|
+
var tt = [
|
|
676
676
|
"close",
|
|
677
677
|
"open",
|
|
678
678
|
"high",
|
|
@@ -682,10 +682,10 @@ var et = [
|
|
|
682
682
|
"ohlc4",
|
|
683
683
|
"hlcc4"
|
|
684
684
|
];
|
|
685
|
-
function
|
|
686
|
-
return typeof e == "string" &&
|
|
685
|
+
function nt(e) {
|
|
686
|
+
return typeof e == "string" && tt.includes(e);
|
|
687
687
|
}
|
|
688
|
-
function
|
|
688
|
+
function rt(e, t) {
|
|
689
689
|
switch (t) {
|
|
690
690
|
case "open": return e.open;
|
|
691
691
|
case "high": return e.high;
|
|
@@ -697,13 +697,13 @@ function nt(e, t) {
|
|
|
697
697
|
default: return e.close;
|
|
698
698
|
}
|
|
699
699
|
}
|
|
700
|
-
var
|
|
701
|
-
function
|
|
700
|
+
var it = /^ind:([^:]+):(.+)$/;
|
|
701
|
+
function at(e, t) {
|
|
702
702
|
return `ind:${e}:${t}`;
|
|
703
703
|
}
|
|
704
|
-
function
|
|
704
|
+
function ot(e) {
|
|
705
705
|
if (typeof e != "string") return null;
|
|
706
|
-
let t =
|
|
706
|
+
let t = it.exec(e);
|
|
707
707
|
return t ? {
|
|
708
708
|
instanceId: t[1],
|
|
709
709
|
key: t[2]
|
|
@@ -711,11 +711,11 @@ function at(e) {
|
|
|
711
711
|
}
|
|
712
712
|
//#endregion
|
|
713
713
|
//#region src/utils/resample.ts
|
|
714
|
-
var
|
|
715
|
-
function
|
|
714
|
+
var st = 864e5;
|
|
715
|
+
function ct(e, t, n = 1) {
|
|
716
716
|
let r = [], i = null;
|
|
717
717
|
for (let a of e) {
|
|
718
|
-
let e =
|
|
718
|
+
let e = We(a.time, t, n);
|
|
719
719
|
i === null || e !== i.time ? (i = {
|
|
720
720
|
time: e,
|
|
721
721
|
open: a.open,
|
|
@@ -727,37 +727,37 @@ function st(e, t, n = 1) {
|
|
|
727
727
|
}
|
|
728
728
|
return r;
|
|
729
729
|
}
|
|
730
|
-
var
|
|
731
|
-
function
|
|
732
|
-
let n =
|
|
730
|
+
var O = (e) => e === "s" || e === "m" || e === "h" || e === "d";
|
|
731
|
+
function lt(e, t) {
|
|
732
|
+
let n = w(e), r = w(t);
|
|
733
733
|
if (!n || !r) return !1;
|
|
734
|
-
let i =
|
|
735
|
-
return n.unit === "d" && n.count > 1 ? !1 :
|
|
734
|
+
let i = T(e);
|
|
735
|
+
return n.unit === "d" && n.count > 1 ? !1 : O(r.unit) ? O(n.unit) && T(t) % i === 0 : n.unit === r.unit ? r.count % n.count === 0 : O(n.unit) && st % i === 0;
|
|
736
736
|
}
|
|
737
|
-
function
|
|
737
|
+
function ut(e, t) {
|
|
738
738
|
let n = null, r = 0;
|
|
739
739
|
for (let i of t) {
|
|
740
|
-
if (!
|
|
741
|
-
let t =
|
|
740
|
+
if (!lt(i, e)) continue;
|
|
741
|
+
let t = T(i);
|
|
742
742
|
t > r && (n = i, r = t);
|
|
743
743
|
}
|
|
744
744
|
return n;
|
|
745
745
|
}
|
|
746
746
|
//#endregion
|
|
747
747
|
//#region src/utils/symbols.ts
|
|
748
|
-
function
|
|
748
|
+
function dt(e, t) {
|
|
749
749
|
if (!e) return 0;
|
|
750
750
|
if (e === t) return 1e3;
|
|
751
751
|
if (e.startsWith(t)) return 600 - Math.min(100, e.length - t.length);
|
|
752
752
|
let n = e.indexOf(t);
|
|
753
753
|
return n >= 0 ? 300 - Math.min(100, n) : 0;
|
|
754
754
|
}
|
|
755
|
-
function
|
|
755
|
+
function ft(e, t, n = 50, r) {
|
|
756
756
|
let i = t.trim().toUpperCase();
|
|
757
757
|
if (!i) return e.slice(0, n);
|
|
758
758
|
let a = [];
|
|
759
759
|
for (let t of e) {
|
|
760
|
-
let e = Math.max(
|
|
760
|
+
let e = Math.max(dt(t.symbol.toUpperCase(), i), dt((t.description ?? "").toUpperCase(), i) * .8);
|
|
761
761
|
e > 0 && a.push({
|
|
762
762
|
info: t,
|
|
763
763
|
score: e + (r?.(t) ?? 0)
|
|
@@ -765,7 +765,7 @@ function dt(e, t, n = 50, r) {
|
|
|
765
765
|
}
|
|
766
766
|
return a.sort((e, t) => t.score - e.score || e.info.symbol.localeCompare(t.info.symbol)), a.slice(0, n).map((e) => e.info);
|
|
767
767
|
}
|
|
768
|
-
function
|
|
768
|
+
function pt(e) {
|
|
769
769
|
let t = typeof e == "number" ? e : Number(e);
|
|
770
770
|
if (!Number.isFinite(t) || t <= 0) return 0;
|
|
771
771
|
for (let e = 0; e <= 12; e++) {
|
|
@@ -774,7 +774,10 @@ function ft(e) {
|
|
|
774
774
|
}
|
|
775
775
|
return 12;
|
|
776
776
|
}
|
|
777
|
-
function
|
|
777
|
+
function mt(e) {
|
|
778
|
+
return e?.timeZone ?? e?.timezone;
|
|
779
|
+
}
|
|
780
|
+
function k(e) {
|
|
778
781
|
let t = /^(\d{1,2}):(\d{2})$/.exec(e.trim());
|
|
779
782
|
if (!t) return null;
|
|
780
783
|
let n = Number(t[1]), r = Number(t[2]);
|
|
@@ -782,26 +785,26 @@ function A(e) {
|
|
|
782
785
|
}
|
|
783
786
|
//#endregion
|
|
784
787
|
//#region src/utils/marketStatus.ts
|
|
785
|
-
var
|
|
786
|
-
function
|
|
787
|
-
let n = e
|
|
788
|
-
let t =
|
|
788
|
+
var A = 864e5, j = 6e4, ht = 8;
|
|
789
|
+
function gt(e, t) {
|
|
790
|
+
let n = mt(e), r = (e?.sessions ?? []).flatMap((e) => {
|
|
791
|
+
let t = k(e.start), n = k(e.end);
|
|
789
792
|
return t === null || n === null || t === n ? [] : [{
|
|
790
793
|
start: t,
|
|
791
794
|
end: n,
|
|
792
795
|
days: Array.isArray(e.days) ? e.days : null
|
|
793
796
|
}];
|
|
794
797
|
});
|
|
795
|
-
if (!n || !
|
|
798
|
+
if (!n || !y(n) || r.length === 0 || !Number.isFinite(t)) return {
|
|
796
799
|
state: "always",
|
|
797
800
|
next: null
|
|
798
801
|
};
|
|
799
|
-
let i =
|
|
800
|
-
for (let e = -1; e <=
|
|
801
|
-
let t = a + e *
|
|
802
|
+
let i = b(n, t) * j, a = Math.floor((t + i) / A) * A, o = (e) => e - b(n, e - b(n, e - i) * j) * j, s = [];
|
|
803
|
+
for (let e = -1; e <= ht; e++) {
|
|
804
|
+
let t = a + e * A, n = (Math.floor(t / A) + 4) % 7;
|
|
802
805
|
for (let e of r) {
|
|
803
806
|
if (e.days && !e.days.includes(n)) continue;
|
|
804
|
-
let r = t + e.start *
|
|
807
|
+
let r = t + e.start * j, i = (e.end > e.start ? t : t + A) + e.end * j;
|
|
805
808
|
s.push([o(r), o(i)]);
|
|
806
809
|
}
|
|
807
810
|
}
|
|
@@ -824,15 +827,15 @@ function mt(e, t) {
|
|
|
824
827
|
}
|
|
825
828
|
//#endregion
|
|
826
829
|
//#region src/utils/drawingOptions.ts
|
|
827
|
-
var
|
|
828
|
-
function
|
|
830
|
+
var _t = 48, vt = 2e3, yt = 1e4;
|
|
831
|
+
function bt(e) {
|
|
829
832
|
if (!Array.isArray(e)) return;
|
|
830
833
|
let t = [];
|
|
831
834
|
for (let n of e) {
|
|
832
|
-
if (t.length >=
|
|
835
|
+
if (t.length >= _t) break;
|
|
833
836
|
if (typeof n != "object" || !n) continue;
|
|
834
837
|
let { value: e, visible: r, color: i } = n;
|
|
835
|
-
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) >
|
|
838
|
+
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) > yt || r !== void 0 && typeof r != "boolean") continue;
|
|
836
839
|
let a = {
|
|
837
840
|
value: e,
|
|
838
841
|
visible: r ?? !0
|
|
@@ -841,68 +844,68 @@ function vt(e) {
|
|
|
841
844
|
}
|
|
842
845
|
return t;
|
|
843
846
|
}
|
|
844
|
-
function
|
|
847
|
+
function xt(e, t) {
|
|
845
848
|
switch (e.kind) {
|
|
846
849
|
case "boolean": return typeof t == "boolean" ? t : void 0;
|
|
847
850
|
case "number": return typeof t != "number" || !Number.isFinite(t) ? void 0 : Math.min(e.max ?? Infinity, Math.max(e.min ?? -Infinity, t));
|
|
848
851
|
case "choice": return typeof t == "string" && e.choices.some((e) => e.value === t) ? t : void 0;
|
|
849
|
-
case "levels": return
|
|
850
|
-
case "text": return typeof t == "string" ? t.slice(0,
|
|
852
|
+
case "levels": return bt(t);
|
|
853
|
+
case "text": return typeof t == "string" ? t.slice(0, vt) : void 0;
|
|
851
854
|
}
|
|
852
855
|
}
|
|
853
|
-
function
|
|
856
|
+
function St(e, t) {
|
|
854
857
|
if (!e || typeof t != "object" || !t) return {};
|
|
855
858
|
let n = {};
|
|
856
859
|
for (let [r, i] of Object.entries(t)) {
|
|
857
860
|
let t = e[r];
|
|
858
861
|
if (!t) continue;
|
|
859
|
-
let a =
|
|
862
|
+
let a = xt(t, i);
|
|
860
863
|
a !== void 0 && (n[r] = a);
|
|
861
864
|
}
|
|
862
865
|
return n;
|
|
863
866
|
}
|
|
864
|
-
function
|
|
867
|
+
function Ct(e) {
|
|
865
868
|
return Array.isArray(e) ? e.map((e) => ({ ...e })) : e;
|
|
866
869
|
}
|
|
867
|
-
function
|
|
870
|
+
function wt(e, t, n) {
|
|
868
871
|
let r = e?.[n];
|
|
869
|
-
return r ?
|
|
872
|
+
return r ? Ct((t && n in t ? xt(r, t[n]) : void 0) ?? r.default) : t?.[n];
|
|
870
873
|
}
|
|
871
|
-
function
|
|
874
|
+
function Tt(e, t) {
|
|
872
875
|
let n = {};
|
|
873
|
-
for (let r of Object.keys(e ?? {})) n[r] =
|
|
876
|
+
for (let r of Object.keys(e ?? {})) n[r] = wt(e, t, r);
|
|
874
877
|
return n;
|
|
875
878
|
}
|
|
876
879
|
//#endregion
|
|
877
880
|
//#region src/utils/drawingStyle.ts
|
|
878
|
-
var
|
|
881
|
+
var Et = [
|
|
879
882
|
"solid",
|
|
880
883
|
"dashed",
|
|
881
884
|
"dotted"
|
|
882
|
-
],
|
|
883
|
-
function
|
|
885
|
+
], Dt = 64, Ot = 2e3, kt = 20, At = 200;
|
|
886
|
+
function M(e, t, n) {
|
|
884
887
|
return typeof e == "number" && Number.isFinite(e) ? Math.min(n, Math.max(t, e)) : void 0;
|
|
885
888
|
}
|
|
886
|
-
function At(e) {
|
|
887
|
-
return typeof e == "string" && e.length > 0 && e.length <= Tt ? e : void 0;
|
|
888
|
-
}
|
|
889
889
|
function jt(e) {
|
|
890
|
+
return typeof e == "string" && e.length > 0 && e.length <= Dt ? e : void 0;
|
|
891
|
+
}
|
|
892
|
+
function Mt(e) {
|
|
890
893
|
if (typeof e != "object" || !e) return {};
|
|
891
|
-
let t = e, n = {}, r =
|
|
894
|
+
let t = e, n = {}, r = jt(t.color);
|
|
892
895
|
r !== void 0 && (n.color = r);
|
|
893
|
-
let i =
|
|
894
|
-
i !== void 0 && (n.lineWidth = i),
|
|
895
|
-
let a =
|
|
896
|
+
let i = M(t.lineWidth, .5, kt);
|
|
897
|
+
i !== void 0 && (n.lineWidth = i), Et.includes(t.lineStyle) && (n.lineStyle = t.lineStyle);
|
|
898
|
+
let a = jt(t.fillColor);
|
|
896
899
|
a !== void 0 && (n.fillColor = a);
|
|
897
|
-
let o =
|
|
900
|
+
let o = M(t.fillOpacity, 0, 1);
|
|
898
901
|
o !== void 0 && (n.fillOpacity = o);
|
|
899
|
-
let s =
|
|
900
|
-
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0,
|
|
902
|
+
let s = M(t.fontSize, 6, At);
|
|
903
|
+
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0, Ot)), n;
|
|
901
904
|
}
|
|
902
905
|
//#endregion
|
|
903
906
|
//#region src/utils/chartTypeOptions.ts
|
|
904
907
|
var N = (e) => typeof e == "number" && Number.isFinite(e) && e > 0, P = (e, t, n) => typeof e == "number" && Number.isInteger(e) && e >= t && e <= n, F = (e) => typeof e == "object" && !!e && !Array.isArray(e);
|
|
905
|
-
function
|
|
908
|
+
function Nt(e) {
|
|
906
909
|
if (!F(e)) return {};
|
|
907
910
|
let t = {};
|
|
908
911
|
if (F(e.renko)) {
|
|
@@ -938,8 +941,8 @@ function Mt(e) {
|
|
|
938
941
|
}
|
|
939
942
|
//#endregion
|
|
940
943
|
//#region src/constants/themes.ts
|
|
941
|
-
var
|
|
942
|
-
family:
|
|
944
|
+
var Pt = "'Cascadia Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace", Ft = {
|
|
945
|
+
family: Pt,
|
|
943
946
|
sizeSmall: 11,
|
|
944
947
|
sizeMedium: 13,
|
|
945
948
|
sizeLarge: 15
|
|
@@ -954,27 +957,27 @@ var Nt = "'Cascadia Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace",
|
|
|
954
957
|
rose: "#e25592",
|
|
955
958
|
neutral: "#7d8696",
|
|
956
959
|
ink: "#131416"
|
|
957
|
-
},
|
|
960
|
+
}, It = .22;
|
|
958
961
|
function L(e) {
|
|
959
|
-
return h(e,
|
|
962
|
+
return h(e, It);
|
|
960
963
|
}
|
|
961
|
-
var
|
|
964
|
+
var Lt = "#fbfaf6", R = "#1b1d21", Rt = "#131416", z = "#e6e3dc", zt = "#1f7a5c", Bt = "#b8423f", Vt = "#4fae8a", Ht = "#e2706b", Ut = "#6a6966", Wt = "#8d8a84", Gt = [
|
|
962
965
|
I.blue,
|
|
963
966
|
I.ochre,
|
|
964
967
|
I.violet,
|
|
965
968
|
I.cyan,
|
|
966
969
|
I.rose
|
|
967
|
-
],
|
|
970
|
+
], Kt = {
|
|
968
971
|
name: "dark",
|
|
969
|
-
background:
|
|
972
|
+
background: Rt,
|
|
970
973
|
text: z,
|
|
971
974
|
textSecondary: "#8d8b86",
|
|
972
975
|
grid: "#1d1e21",
|
|
973
|
-
crosshair:
|
|
974
|
-
candleUp:
|
|
975
|
-
candleDown:
|
|
976
|
-
candleUpWick:
|
|
977
|
-
candleDownWick:
|
|
976
|
+
crosshair: Ut,
|
|
977
|
+
candleUp: Vt,
|
|
978
|
+
candleDown: Ht,
|
|
979
|
+
candleUpWick: Vt,
|
|
980
|
+
candleDownWick: Ht,
|
|
978
981
|
lineColor: z,
|
|
979
982
|
areaTopColor: h(z, .14),
|
|
980
983
|
areaBottomColor: h(z, 0),
|
|
@@ -983,18 +986,18 @@ var It = "#fbfaf6", R = "#1b1d21", Lt = "#131416", z = "#e6e3dc", Rt = "#1f7a5c"
|
|
|
983
986
|
axisLine: "#2a2b2f",
|
|
984
987
|
axisLabel: "#a9a6a0",
|
|
985
988
|
axisLabelBackground: "#232427",
|
|
986
|
-
font:
|
|
987
|
-
},
|
|
989
|
+
font: Ft
|
|
990
|
+
}, qt = {
|
|
988
991
|
name: "light",
|
|
989
|
-
background:
|
|
992
|
+
background: Lt,
|
|
990
993
|
text: R,
|
|
991
994
|
textSecondary: "#6b6f76",
|
|
992
995
|
grid: "#ece8df",
|
|
993
|
-
crosshair:
|
|
994
|
-
candleUp:
|
|
995
|
-
candleDown:
|
|
996
|
-
candleUpWick:
|
|
997
|
-
candleDownWick:
|
|
996
|
+
crosshair: Wt,
|
|
997
|
+
candleUp: zt,
|
|
998
|
+
candleDown: Bt,
|
|
999
|
+
candleUpWick: zt,
|
|
1000
|
+
candleDownWick: Bt,
|
|
998
1001
|
lineColor: R,
|
|
999
1002
|
areaTopColor: h(R, .12),
|
|
1000
1003
|
areaBottomColor: h(R, 0),
|
|
@@ -1003,8 +1006,8 @@ var It = "#fbfaf6", R = "#1b1d21", Lt = "#131416", z = "#e6e3dc", Rt = "#1f7a5c"
|
|
|
1003
1006
|
axisLine: "#cfcac0",
|
|
1004
1007
|
axisLabel: "#4a4e57",
|
|
1005
1008
|
axisLabelBackground: "#eeebe3",
|
|
1006
|
-
font:
|
|
1007
|
-
},
|
|
1009
|
+
font: Ft
|
|
1010
|
+
}, B = {
|
|
1008
1011
|
name: "terminal",
|
|
1009
1012
|
background: "#0E0E0E",
|
|
1010
1013
|
text: "#C0C0C0",
|
|
@@ -1029,8 +1032,8 @@ var It = "#fbfaf6", R = "#1b1d21", Lt = "#131416", z = "#e6e3dc", Rt = "#1f7a5c"
|
|
|
1029
1032
|
sizeMedium: 12,
|
|
1030
1033
|
sizeLarge: 14
|
|
1031
1034
|
}
|
|
1032
|
-
}, Jt = new Set([
|
|
1033
|
-
function
|
|
1035
|
+
}, Jt = new Set([B.volumeUp, B.volumeDown]);
|
|
1036
|
+
function V(e) {
|
|
1034
1037
|
let t = (e, t) => {
|
|
1035
1038
|
if (!Jt.has(e)) return e;
|
|
1036
1039
|
let n = L(t);
|
|
@@ -1052,46 +1055,46 @@ var Yt = [
|
|
|
1052
1055
|
/^[a-z]{3,30}$/i,
|
|
1053
1056
|
/^(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color)\([0-9a-z.,%/\s-]*\)$/i
|
|
1054
1057
|
];
|
|
1055
|
-
function
|
|
1058
|
+
function en(e) {
|
|
1056
1059
|
return typeof e == "string" && e.length <= Zt && $t.some((t) => t.test(e.trim()));
|
|
1057
1060
|
}
|
|
1058
|
-
function
|
|
1061
|
+
function tn(e, t) {
|
|
1059
1062
|
switch (e) {
|
|
1060
|
-
case "color": return
|
|
1063
|
+
case "color": return en(t);
|
|
1061
1064
|
case "lineStyle": return Yt.includes(t);
|
|
1062
1065
|
case "width": return typeof t == "number" && Number.isFinite(t) && t > 0 && t <= Xt;
|
|
1063
1066
|
case "boolean": return typeof t == "boolean";
|
|
1064
1067
|
}
|
|
1065
1068
|
}
|
|
1066
|
-
function
|
|
1069
|
+
function nn(e) {
|
|
1067
1070
|
return Object.prototype.hasOwnProperty.call(t, e);
|
|
1068
1071
|
}
|
|
1069
|
-
function
|
|
1072
|
+
function rn(e) {
|
|
1070
1073
|
let n = {}, r = [];
|
|
1071
1074
|
if (typeof e != "object" || !e || Array.isArray(e)) return {
|
|
1072
1075
|
overrides: {},
|
|
1073
1076
|
rejected: r
|
|
1074
1077
|
};
|
|
1075
|
-
for (let [i, a] of Object.entries(e))
|
|
1078
|
+
for (let [i, a] of Object.entries(e)) nn(i) ? a === null ? n[i] = null : tn(t[i], a) ? n[i] = a : r.push(i) : r.push(i);
|
|
1076
1079
|
return {
|
|
1077
1080
|
overrides: n,
|
|
1078
1081
|
rejected: r
|
|
1079
1082
|
};
|
|
1080
1083
|
}
|
|
1081
|
-
function
|
|
1084
|
+
function an(e) {
|
|
1082
1085
|
if (typeof e != "object" || !e || Array.isArray(e)) return null;
|
|
1083
1086
|
let { background: t, separator: n } = e, r = {
|
|
1084
|
-
...
|
|
1085
|
-
...
|
|
1087
|
+
...en(t) ? { background: t } : {},
|
|
1088
|
+
...en(n) ? { separator: n } : {}
|
|
1086
1089
|
};
|
|
1087
1090
|
return Object.keys(r).length > 0 ? r : null;
|
|
1088
1091
|
}
|
|
1089
|
-
var
|
|
1090
|
-
function
|
|
1092
|
+
var on = /^[A-Za-z0-9_]{1,32}$/;
|
|
1093
|
+
function sn(e) {
|
|
1091
1094
|
if (typeof e != "object" || !e || Array.isArray(e)) return;
|
|
1092
1095
|
let t = {};
|
|
1093
1096
|
for (let [n, r] of Object.entries(e)) {
|
|
1094
|
-
if (!
|
|
1097
|
+
if (!on.test(n) || typeof r != "object" || !r) continue;
|
|
1095
1098
|
let { lineStyle: e, visible: i } = r, a = {
|
|
1096
1099
|
...Yt.includes(e) ? { lineStyle: e } : {},
|
|
1097
1100
|
...typeof i == "boolean" ? { visible: i } : {}
|
|
@@ -1100,10 +1103,10 @@ function on(e) {
|
|
|
1100
1103
|
}
|
|
1101
1104
|
return Object.keys(t).length > 0 ? t : void 0;
|
|
1102
1105
|
}
|
|
1103
|
-
function
|
|
1106
|
+
function cn(e, t, n = 1) {
|
|
1104
1107
|
return e === "solid" ? [] : e === "dotted" ? [n, n * 2] : [...t];
|
|
1105
1108
|
}
|
|
1106
|
-
function
|
|
1109
|
+
function ln(e, t, n) {
|
|
1107
1110
|
let r = (e) => t(`series.${n}.${e}`), i = r("upColor") ?? t("series.candlestick.upColor"), a = r("downColor") ?? t("series.candlestick.downColor"), o = i ?? e.candleUp, s = a ?? e.candleDown;
|
|
1108
1111
|
return {
|
|
1109
1112
|
up: o,
|
|
@@ -1124,8 +1127,8 @@ function H(e, t, n) {
|
|
|
1124
1127
|
width: e(`${t}.width`) ?? n.width
|
|
1125
1128
|
};
|
|
1126
1129
|
}
|
|
1127
|
-
function
|
|
1128
|
-
let { style: r, ...i } = e, a = n, o = (e) => a[e], s =
|
|
1130
|
+
function un(e, t, n) {
|
|
1131
|
+
let { style: r, ...i } = e, a = n, o = (e) => a[e], s = ln(i, o, t), c = o("background.color") ?? i.background, l = (e, t) => o(e) ?? t, u = (e) => o(e) ?? null, d = {
|
|
1129
1132
|
panes: {
|
|
1130
1133
|
background: l("panes.background", c),
|
|
1131
1134
|
separator: l("panes.separatorColor", i.axisLine),
|
|
@@ -1224,7 +1227,7 @@ function ln(e, t, n) {
|
|
|
1224
1227
|
style: d
|
|
1225
1228
|
};
|
|
1226
1229
|
}
|
|
1227
|
-
var
|
|
1230
|
+
var dn = {
|
|
1228
1231
|
"background.color": (e) => e.background,
|
|
1229
1232
|
"panes.background": (e, t) => t.panes.background,
|
|
1230
1233
|
"panes.separatorColor": (e, t) => t.panes.separator,
|
|
@@ -1243,8 +1246,8 @@ var un = {
|
|
|
1243
1246
|
"lastPrice.downColor": (e, t) => t.lastPrice.down,
|
|
1244
1247
|
"lastPrice.style": (e, t) => t.lastPrice.style,
|
|
1245
1248
|
"lastPrice.width": (e, t) => t.lastPrice.width,
|
|
1246
|
-
"volume.upColor": (e) =>
|
|
1247
|
-
"volume.downColor": (e) =>
|
|
1249
|
+
"volume.upColor": (e) => V(e).up,
|
|
1250
|
+
"volume.downColor": (e) => V(e).down,
|
|
1248
1251
|
"sessionBreaks.color": (e, t) => t.sessionBreaks.color,
|
|
1249
1252
|
"sessionBreaks.style": (e, t) => t.sessionBreaks.style,
|
|
1250
1253
|
"sessionBreaks.width": (e, t) => t.sessionBreaks.width,
|
|
@@ -1261,16 +1264,16 @@ var un = {
|
|
|
1261
1264
|
"tradeZones.lossColor": (e, t) => t.tradeZones.loss,
|
|
1262
1265
|
"tradeZones.activeColor": (e, t) => t.tradeZones.active,
|
|
1263
1266
|
"drawings.handleColor": (e, t) => t.drawings.handle
|
|
1264
|
-
},
|
|
1267
|
+
}, fn = {
|
|
1265
1268
|
visible: "visible",
|
|
1266
1269
|
color: "color",
|
|
1267
1270
|
style: "style",
|
|
1268
1271
|
width: "width"
|
|
1269
1272
|
};
|
|
1270
|
-
function
|
|
1273
|
+
function pn(e, t, n, r = "candlestick") {
|
|
1271
1274
|
let i = n.split(".");
|
|
1272
1275
|
if (i[0] === "series") {
|
|
1273
|
-
let n =
|
|
1276
|
+
let n = ln(e, (e) => t[e], i[1]);
|
|
1274
1277
|
switch (i[2]) {
|
|
1275
1278
|
case "upColor": return n.up;
|
|
1276
1279
|
case "downColor": return n.down;
|
|
@@ -1283,12 +1286,12 @@ function fn(e, t, n, r = "candlestick") {
|
|
|
1283
1286
|
case "bottomColor": return n.bottom;
|
|
1284
1287
|
}
|
|
1285
1288
|
}
|
|
1286
|
-
let a =
|
|
1287
|
-
return i[0] === "grid" || i[0] === "crosshair" && (i[1] === "horizontal" || i[1] === "vertical") ? (i[0] === "grid" ? o.grid : o.crosshair)[i[1]][
|
|
1289
|
+
let a = un(e, r, t), o = a.style;
|
|
1290
|
+
return i[0] === "grid" || i[0] === "crosshair" && (i[1] === "horizontal" || i[1] === "vertical") ? (i[0] === "grid" ? o.grid : o.crosshair)[i[1]][fn[i[2]]] : dn[n]?.(a, o) ?? null;
|
|
1288
1291
|
}
|
|
1289
1292
|
//#endregion
|
|
1290
1293
|
//#region src/constants/defaults.ts
|
|
1291
|
-
var
|
|
1294
|
+
var mn = {
|
|
1292
1295
|
autoScale: !0,
|
|
1293
1296
|
rightMargin: 5,
|
|
1294
1297
|
minBarSpacing: 2,
|
|
@@ -1299,7 +1302,7 @@ var pn = {
|
|
|
1299
1302
|
vLineStyle: "solid"
|
|
1300
1303
|
},
|
|
1301
1304
|
crosshair: { mode: "magnet" }
|
|
1302
|
-
},
|
|
1305
|
+
}, hn = [
|
|
1303
1306
|
"1s",
|
|
1304
1307
|
"1m",
|
|
1305
1308
|
"3m",
|
|
@@ -1316,7 +1319,7 @@ var pn = {
|
|
|
1316
1319
|
"3d",
|
|
1317
1320
|
"1w",
|
|
1318
1321
|
"1M"
|
|
1319
|
-
],
|
|
1322
|
+
], gn = [
|
|
1320
1323
|
"1m",
|
|
1321
1324
|
"5m",
|
|
1322
1325
|
"15m",
|
|
@@ -1330,7 +1333,7 @@ var pn = {
|
|
|
1330
1333
|
"3M",
|
|
1331
1334
|
"6M",
|
|
1332
1335
|
"12M"
|
|
1333
|
-
],
|
|
1336
|
+
], _n = [
|
|
1334
1337
|
"1m",
|
|
1335
1338
|
"5m",
|
|
1336
1339
|
"15m",
|
|
@@ -1340,7 +1343,7 @@ var pn = {
|
|
|
1340
1343
|
"1d",
|
|
1341
1344
|
"1w",
|
|
1342
1345
|
"1M"
|
|
1343
|
-
],
|
|
1346
|
+
], vn = [
|
|
1344
1347
|
"1m",
|
|
1345
1348
|
"5m",
|
|
1346
1349
|
"15m",
|
|
@@ -1348,7 +1351,7 @@ var pn = {
|
|
|
1348
1351
|
"4h",
|
|
1349
1352
|
"1d",
|
|
1350
1353
|
"1w"
|
|
1351
|
-
],
|
|
1354
|
+
], yn = 8, bn = 2, xn = 70, Sn = 30, Cn = 60, wn = 120, Tn = (1 + Math.sqrt(5)) / 2, En = [
|
|
1352
1355
|
1,
|
|
1353
1356
|
2,
|
|
1354
1357
|
3,
|
|
@@ -1360,8 +1363,8 @@ var pn = {
|
|
|
1360
1363
|
55,
|
|
1361
1364
|
89
|
|
1362
1365
|
];
|
|
1363
|
-
function
|
|
1364
|
-
return Math.round(e *
|
|
1366
|
+
function Dn(e, t, n = 1) {
|
|
1367
|
+
return Math.round(e * Tn ** (t / n));
|
|
1365
1368
|
}
|
|
1366
1369
|
//#endregion
|
|
1367
1370
|
//#region src/i18n/en.ts
|
|
@@ -1468,7 +1471,7 @@ var U = {
|
|
|
1468
1471
|
error: "Error",
|
|
1469
1472
|
numberDecimalSeparator: ".",
|
|
1470
1473
|
numberGroupSeparator: ","
|
|
1471
|
-
},
|
|
1474
|
+
}, On = {
|
|
1472
1475
|
candlestick: "Nến",
|
|
1473
1476
|
line: "Đường",
|
|
1474
1477
|
area: "Vùng",
|
|
@@ -1571,20 +1574,20 @@ var U = {
|
|
|
1571
1574
|
error: "Lỗi",
|
|
1572
1575
|
numberDecimalSeparator: ",",
|
|
1573
1576
|
numberGroupSeparator: "."
|
|
1574
|
-
}, W = new Map([["en", U], ["vi",
|
|
1575
|
-
function
|
|
1576
|
-
G = e,
|
|
1577
|
+
}, W = new Map([["en", U], ["vi", On]]), G = "en", kn = U;
|
|
1578
|
+
function An(e) {
|
|
1579
|
+
G = e, kn = W.get(e) ?? U;
|
|
1577
1580
|
}
|
|
1578
|
-
function
|
|
1581
|
+
function jn() {
|
|
1579
1582
|
return G;
|
|
1580
1583
|
}
|
|
1581
|
-
function
|
|
1582
|
-
return
|
|
1584
|
+
function Mn(e) {
|
|
1585
|
+
return kn[e] ?? U[e] ?? e;
|
|
1583
1586
|
}
|
|
1584
|
-
function
|
|
1587
|
+
function Nn(e, t) {
|
|
1585
1588
|
W.set(e, t);
|
|
1586
1589
|
}
|
|
1587
|
-
function
|
|
1590
|
+
function Pn(e) {
|
|
1588
1591
|
return W.get(e ?? G) ?? U;
|
|
1589
1592
|
}
|
|
1590
1593
|
function K(e, t = 2, n) {
|
|
@@ -1592,10 +1595,10 @@ function K(e, t = 2, n) {
|
|
|
1592
1595
|
for (let e = l.length - 1, t = 0; e >= 0; e--, t++) t > 0 && t % 3 == 0 && (u = a + u), u = l[e] + u;
|
|
1593
1596
|
return c && (u = "-" + u), s ? u + i + s : u;
|
|
1594
1597
|
}
|
|
1595
|
-
function
|
|
1598
|
+
function Fn(e) {
|
|
1596
1599
|
return K(e, 0, "vi");
|
|
1597
1600
|
}
|
|
1598
|
-
function
|
|
1601
|
+
function In(e, t) {
|
|
1599
1602
|
return e >= 1e9 ? K(e / 1e9, 2, t ?? G) + "B" : e >= 1e6 ? K(e / 1e6, 2, t ?? G) + "M" : e >= 1e3 ? K(e / 1e3, 2, t ?? G) + "K" : K(e, 0, t ?? G);
|
|
1600
1603
|
}
|
|
1601
1604
|
//#endregion
|
|
@@ -1607,7 +1610,7 @@ var q = {
|
|
|
1607
1610
|
ceiling: "#D946EF",
|
|
1608
1611
|
floor: "#06B6D4",
|
|
1609
1612
|
reference: "#EAB308"
|
|
1610
|
-
}, J = "Asia/Ho_Chi_Minh",
|
|
1613
|
+
}, J = "Asia/Ho_Chi_Minh", Ln = [
|
|
1611
1614
|
{
|
|
1612
1615
|
name: "ATO",
|
|
1613
1616
|
startTime: "09:00",
|
|
@@ -1638,7 +1641,7 @@ var q = {
|
|
|
1638
1641
|
endTime: "14:45",
|
|
1639
1642
|
type: "preClose"
|
|
1640
1643
|
}
|
|
1641
|
-
],
|
|
1644
|
+
], Rn = [
|
|
1642
1645
|
{
|
|
1643
1646
|
name: "Phiên 1",
|
|
1644
1647
|
startTime: "09:15",
|
|
@@ -1669,7 +1672,7 @@ var q = {
|
|
|
1669
1672
|
endTime: "15:00",
|
|
1670
1673
|
type: "postClose"
|
|
1671
1674
|
}
|
|
1672
|
-
],
|
|
1675
|
+
], zn = [
|
|
1673
1676
|
{
|
|
1674
1677
|
name: "Phiên 1",
|
|
1675
1678
|
startTime: "09:15",
|
|
@@ -1688,7 +1691,7 @@ var q = {
|
|
|
1688
1691
|
endTime: "14:30",
|
|
1689
1692
|
type: "continuous"
|
|
1690
1693
|
}
|
|
1691
|
-
],
|
|
1694
|
+
], Bn = [
|
|
1692
1695
|
{
|
|
1693
1696
|
name: "ATO",
|
|
1694
1697
|
startTime: "08:45",
|
|
@@ -1719,7 +1722,7 @@ var q = {
|
|
|
1719
1722
|
endTime: "14:45",
|
|
1720
1723
|
type: "preClose"
|
|
1721
1724
|
}
|
|
1722
|
-
],
|
|
1725
|
+
], Vn = {
|
|
1723
1726
|
type: "stock",
|
|
1724
1727
|
exchange: "HOSE",
|
|
1725
1728
|
currency: "VND",
|
|
@@ -1746,12 +1749,12 @@ var q = {
|
|
|
1746
1749
|
ceilingPercent: 7,
|
|
1747
1750
|
floorPercent: 7
|
|
1748
1751
|
},
|
|
1749
|
-
sessions:
|
|
1752
|
+
sessions: Ln,
|
|
1750
1753
|
colorScheme: q
|
|
1751
|
-
}, Vn = {
|
|
1752
|
-
...Bn,
|
|
1753
|
-
priceSteps: void 0
|
|
1754
1754
|
}, Hn = {
|
|
1755
|
+
...Vn,
|
|
1756
|
+
priceSteps: void 0
|
|
1757
|
+
}, Un = {
|
|
1755
1758
|
type: "stock",
|
|
1756
1759
|
exchange: "HNX",
|
|
1757
1760
|
currency: "VND",
|
|
@@ -1764,9 +1767,9 @@ var q = {
|
|
|
1764
1767
|
ceilingPercent: 10,
|
|
1765
1768
|
floorPercent: 10
|
|
1766
1769
|
},
|
|
1767
|
-
sessions:
|
|
1770
|
+
sessions: Rn,
|
|
1768
1771
|
colorScheme: q
|
|
1769
|
-
},
|
|
1772
|
+
}, Wn = {
|
|
1770
1773
|
type: "stock",
|
|
1771
1774
|
exchange: "UPCOM",
|
|
1772
1775
|
currency: "VND",
|
|
@@ -1779,9 +1782,9 @@ var q = {
|
|
|
1779
1782
|
ceilingPercent: 15,
|
|
1780
1783
|
floorPercent: 15
|
|
1781
1784
|
},
|
|
1782
|
-
sessions:
|
|
1785
|
+
sessions: zn,
|
|
1783
1786
|
colorScheme: q
|
|
1784
|
-
},
|
|
1787
|
+
}, Gn = {
|
|
1785
1788
|
type: "futures",
|
|
1786
1789
|
exchange: "HNX",
|
|
1787
1790
|
currency: "VND",
|
|
@@ -1795,14 +1798,14 @@ var q = {
|
|
|
1795
1798
|
ceilingPercent: 7,
|
|
1796
1799
|
floorPercent: 7
|
|
1797
1800
|
},
|
|
1798
|
-
sessions:
|
|
1801
|
+
sessions: Bn,
|
|
1799
1802
|
colorScheme: q
|
|
1800
|
-
},
|
|
1803
|
+
}, Kn = {
|
|
1801
1804
|
type: "crypto",
|
|
1802
1805
|
currency: "USDT",
|
|
1803
1806
|
pricePrecision: 2,
|
|
1804
1807
|
priceLimits: { enabled: !1 }
|
|
1805
|
-
},
|
|
1808
|
+
}, qn = {
|
|
1806
1809
|
type: "stock",
|
|
1807
1810
|
exchange: "NYSE",
|
|
1808
1811
|
currency: "USD",
|
|
@@ -1831,7 +1834,7 @@ var q = {
|
|
|
1831
1834
|
}
|
|
1832
1835
|
]
|
|
1833
1836
|
};
|
|
1834
|
-
function
|
|
1837
|
+
function Jn(e) {
|
|
1835
1838
|
return {
|
|
1836
1839
|
...e,
|
|
1837
1840
|
candleUp: q.up,
|
|
@@ -1841,65 +1844,65 @@ function qn(e) {
|
|
|
1841
1844
|
};
|
|
1842
1845
|
}
|
|
1843
1846
|
var Y = 1e-9;
|
|
1844
|
-
function
|
|
1847
|
+
function Yn(e, t) {
|
|
1845
1848
|
let n = t.priceStep;
|
|
1846
1849
|
for (let r of t.priceSteps ?? []) e + Y >= r.from && (n = r.step);
|
|
1847
1850
|
return n !== void 0 && n > 0 ? n : void 0;
|
|
1848
1851
|
}
|
|
1849
|
-
function
|
|
1852
|
+
function Xn(e, t) {
|
|
1850
1853
|
let n = t.priceStep;
|
|
1851
1854
|
for (let r of t.priceSteps ?? []) e - Y > r.from && (n = r.step);
|
|
1852
1855
|
return n !== void 0 && n > 0 ? n : void 0;
|
|
1853
1856
|
}
|
|
1854
|
-
function
|
|
1855
|
-
let r =
|
|
1857
|
+
function X(e, t, n = "nearest") {
|
|
1858
|
+
let r = Yn(e, t);
|
|
1856
1859
|
if (r === void 0 || !Number.isFinite(e)) return e;
|
|
1857
1860
|
let i = e / r, a = n === "down" ? Math.floor(i + Y) : n === "up" ? Math.ceil(i - Y) : Math.round(i);
|
|
1858
|
-
return Number((a * r).toFixed(
|
|
1861
|
+
return Number((a * r).toFixed(pt(r)));
|
|
1859
1862
|
}
|
|
1860
|
-
function
|
|
1863
|
+
function Zn(e, t) {
|
|
1861
1864
|
if (!t.priceLimits?.enabled || !t.priceLimits.ceilingPercent) return null;
|
|
1862
|
-
let n = t.priceLimits.ceilingPercent / 100, r = (t.priceLimits.floorPercent ?? t.priceLimits.ceilingPercent) / 100, i = e, a = i * (1 + n), o = i * (1 - r), s =
|
|
1865
|
+
let n = t.priceLimits.ceilingPercent / 100, r = (t.priceLimits.floorPercent ?? t.priceLimits.ceilingPercent) / 100, i = e, a = i * (1 + n), o = i * (1 - r), s = Yn(i, t);
|
|
1863
1866
|
if (s === void 0) return {
|
|
1864
1867
|
ceiling: a,
|
|
1865
1868
|
floor: o,
|
|
1866
1869
|
reference: i
|
|
1867
1870
|
};
|
|
1868
|
-
let c =
|
|
1871
|
+
let c = X(i + s, t);
|
|
1869
1872
|
if (Math.abs(i - s) < Y) return {
|
|
1870
1873
|
ceiling: c,
|
|
1871
1874
|
floor: i,
|
|
1872
1875
|
reference: i
|
|
1873
1876
|
};
|
|
1874
|
-
let l =
|
|
1875
|
-
return l <= i && (l = c), u >= i && (u =
|
|
1877
|
+
let l = X(a, t, "down"), u = X(o, t, "up");
|
|
1878
|
+
return l <= i && (l = c), u >= i && (u = X(i - (Xn(i, t) ?? s), t)), u <= 0 && (u = i), {
|
|
1876
1879
|
ceiling: l,
|
|
1877
1880
|
floor: u,
|
|
1878
1881
|
reference: i
|
|
1879
1882
|
};
|
|
1880
1883
|
}
|
|
1881
|
-
var
|
|
1882
|
-
function
|
|
1884
|
+
var Z = (e, t) => Math.round(e * t * 1e9) / 1e9;
|
|
1885
|
+
function Qn(e, t) {
|
|
1883
1886
|
let n = Math.round(Math.log10(t));
|
|
1884
1887
|
return {
|
|
1885
1888
|
...e,
|
|
1886
1889
|
pricePrecision: e.pricePrecision === void 0 ? void 0 : Math.max(0, e.pricePrecision - n),
|
|
1887
|
-
priceStep: e.priceStep === void 0 ? void 0 :
|
|
1890
|
+
priceStep: e.priceStep === void 0 ? void 0 : Z(e.priceStep, t),
|
|
1888
1891
|
priceSteps: e.priceSteps?.map((e) => ({
|
|
1889
|
-
from:
|
|
1890
|
-
step:
|
|
1892
|
+
from: Z(e.from, t),
|
|
1893
|
+
step: Z(e.step, t)
|
|
1891
1894
|
})),
|
|
1892
1895
|
priceLimits: e.priceLimits && {
|
|
1893
1896
|
...e.priceLimits,
|
|
1894
|
-
referencePrice: e.priceLimits.referencePrice === void 0 ? void 0 :
|
|
1897
|
+
referencePrice: e.priceLimits.referencePrice === void 0 ? void 0 : Z(e.priceLimits.referencePrice, t)
|
|
1895
1898
|
}
|
|
1896
1899
|
};
|
|
1897
1900
|
}
|
|
1898
|
-
var
|
|
1899
|
-
function
|
|
1901
|
+
var $n = 6e4, er = 864e5;
|
|
1902
|
+
function tr(e, t) {
|
|
1900
1903
|
let n, r;
|
|
1901
1904
|
if (t) {
|
|
1902
|
-
let i = new Date(e +
|
|
1905
|
+
let i = new Date(e + b(t, e) * $n);
|
|
1903
1906
|
n = i.getUTCHours(), r = i.getUTCMinutes();
|
|
1904
1907
|
} else {
|
|
1905
1908
|
let t = new Date(e);
|
|
@@ -1907,31 +1910,31 @@ function $n(e, t) {
|
|
|
1907
1910
|
}
|
|
1908
1911
|
return `${String(n).padStart(2, "0")}:${String(r).padStart(2, "0")}`;
|
|
1909
1912
|
}
|
|
1910
|
-
function
|
|
1911
|
-
if (n !== void 0 && !
|
|
1912
|
-
let r =
|
|
1913
|
+
function nr(e, t = Date.now(), n) {
|
|
1914
|
+
if (n !== void 0 && !y(n)) return null;
|
|
1915
|
+
let r = tr(t, n);
|
|
1913
1916
|
for (let t of e) if (r >= t.startTime && r < t.endTime) return t;
|
|
1914
1917
|
return null;
|
|
1915
1918
|
}
|
|
1916
|
-
var
|
|
1919
|
+
var Q = (e) => String(e).padStart(2, "0"), $ = (e) => {
|
|
1917
1920
|
let t = new Date(e);
|
|
1918
|
-
return `${t.getUTCFullYear()}-${
|
|
1919
|
-
},
|
|
1920
|
-
function
|
|
1921
|
-
let r = Date.UTC(e, t - 1, 1), i = 1 + (
|
|
1921
|
+
return `${t.getUTCFullYear()}-${Q(t.getUTCMonth() + 1)}-${Q(t.getUTCDate())}`;
|
|
1922
|
+
}, rr = 4, ir = 7 * 36e5;
|
|
1923
|
+
function ar(e, t, n) {
|
|
1924
|
+
let r = Date.UTC(e, t - 1, 1), i = 1 + (rr - new Date(r).getUTCDay() + 7) % 7, a = Date.UTC(e, t - 1, i + 14), o = (e) => {
|
|
1922
1925
|
let t = new Date(e).getUTCDay();
|
|
1923
|
-
return t === 0 || t === 6 || (n?.(
|
|
1926
|
+
return t === 0 || t === 6 || (n?.($(e)) ?? !1);
|
|
1924
1927
|
};
|
|
1925
|
-
for (; o(a);) a -=
|
|
1926
|
-
return
|
|
1928
|
+
for (; o(a);) a -= er;
|
|
1929
|
+
return $(a);
|
|
1927
1930
|
}
|
|
1928
|
-
function
|
|
1929
|
-
let n =
|
|
1930
|
-
symbol: `VN30F${
|
|
1931
|
+
function or(e, t) {
|
|
1932
|
+
let n = $(e + ir), r = (e, n) => ({
|
|
1933
|
+
symbol: `VN30F${Q(e % 100)}${Q(n)}`,
|
|
1931
1934
|
year: e,
|
|
1932
1935
|
month: n,
|
|
1933
|
-
lastTradingDay:
|
|
1934
|
-
}), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e +
|
|
1936
|
+
lastTradingDay: ar(e, n, t)
|
|
1937
|
+
}), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e + ir), o = r(a.getUTCFullYear(), a.getUTCMonth() + 1);
|
|
1935
1938
|
n > o.lastTradingDay && (o = i(o));
|
|
1936
1939
|
let s = [o, i(o)], c = i(s[1]);
|
|
1937
1940
|
for (; s.length < 4;) c.month % 3 == 0 && s.push(c), c = i(c);
|
|
@@ -1939,7 +1942,7 @@ function ar(e, t) {
|
|
|
1939
1942
|
}
|
|
1940
1943
|
//#endregion
|
|
1941
1944
|
//#region src/icons/iconSet.ts
|
|
1942
|
-
var
|
|
1945
|
+
var sr = {
|
|
1943
1946
|
cursor: { d: "M6 3.5L18.5 12.5L12.6 13.6L9.7 19.4z" },
|
|
1944
1947
|
trendingUp: { d: "M3 17L9 11L13 14.5L21 6.5M15 6.5H21V12.5" },
|
|
1945
1948
|
trendingDown: { d: "M3 7L9 13L13 9.5L21 17.5M15 17.5H21V11.5" },
|
|
@@ -2068,7 +2071,7 @@ var or = {
|
|
|
2068
2071
|
]
|
|
2069
2072
|
] },
|
|
2070
2073
|
layoutGrid: { d: "M5 4.5h4.5a.5.5 0 0 1 .5.5v4.5a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5zM14.5 4.5H19a.5.5 0 0 1 .5.5v4.5a.5.5 0 0 1-.5.5h-4.5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5zM5 14h4.5a.5.5 0 0 1 .5.5V19a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5v-4.5A.5.5 0 0 1 5 14zM14.5 14H19a.5.5 0 0 1 .5.5V19a.5.5 0 0 1-.5.5h-4.5a.5.5 0 0 1-.5-.5v-4.5a.5.5 0 0 1 .5-.5z" }
|
|
2071
|
-
},
|
|
2074
|
+
}, cr = {
|
|
2072
2075
|
trendLine: {
|
|
2073
2076
|
d: "M5 18L19 6",
|
|
2074
2077
|
dots: [[5, 18], [19, 6]]
|
|
@@ -2421,7 +2424,7 @@ var or = {
|
|
|
2421
2424
|
],
|
|
2422
2425
|
dash: "M12 3V21"
|
|
2423
2426
|
}
|
|
2424
|
-
},
|
|
2427
|
+
}, lr = {
|
|
2425
2428
|
candlestick: {
|
|
2426
2429
|
d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19",
|
|
2427
2430
|
fills: ["M6.5 7h3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z", "M14.5 8.5h3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z"]
|
|
@@ -2488,21 +2491,21 @@ var or = {
|
|
|
2488
2491
|
"M16 4.5h3v6h-3z"
|
|
2489
2492
|
]
|
|
2490
2493
|
}
|
|
2491
|
-
},
|
|
2492
|
-
function
|
|
2493
|
-
let t =
|
|
2494
|
+
}, ur = 1.75, dr = .22, fr = /* @__PURE__ */ new WeakMap();
|
|
2495
|
+
function pr(e) {
|
|
2496
|
+
let t = fr.get(e);
|
|
2494
2497
|
if (t) return t;
|
|
2495
2498
|
let n = "";
|
|
2496
|
-
e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${
|
|
2499
|
+
e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${dr}" stroke="none"/>`);
|
|
2497
2500
|
for (let t of e.fills ?? []) n += `<path d="${t}" fill="currentColor" stroke="none"/>`;
|
|
2498
2501
|
e.d && (n += `<path d="${e.d}"/>`), e.dash && (n += `<path d="${e.dash}" stroke-dasharray="2 2.5"/>`);
|
|
2499
|
-
for (let [t, r, i =
|
|
2500
|
-
return
|
|
2502
|
+
for (let [t, r, i = ur] of e.dots ?? []) n += `<circle cx="${t}" cy="${r}" r="${i}" fill="currentColor" stroke="none"/>`;
|
|
2503
|
+
return fr.set(e, n), n;
|
|
2501
2504
|
}
|
|
2502
|
-
function
|
|
2503
|
-
return `<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">${
|
|
2505
|
+
function mr(e, t) {
|
|
2506
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">${pr(e)}</svg>`;
|
|
2504
2507
|
}
|
|
2505
2508
|
//#endregion
|
|
2506
|
-
export { t as CHART_STYLE_KEYS,
|
|
2509
|
+
export { t as CHART_STYLE_KEYS, lr as CHART_TYPE_ICONS, B as DARK_TERMINAL, Kt as DARK_THEME, bn as DEFAULT_BAR_SPACING, yn as DEFAULT_BAR_WIDTH, mn as DEFAULT_CHART_OPTIONS, n as DEFAULT_DRAWING_STYLE, Pt as DEFAULT_FONT_FAMILY, wn as DEFAULT_PANEL_HEIGHT, o as DEFAULT_RECONNECT, i as DEFAULT_SIGNAL_STYLE, s as DEFAULT_STREAM_CONFIG, vn as DEFAULT_TIMEFRAME_FAVORITES, a as DEFAULT_TRADE_ZONE_STYLE, r as DEFAULT_TRADING_CONFIG, cr as DRAWING_TOOL_ICONS, En as FIBONACCI, Rn as HNX_SESSIONS, Ln as HOSE_SESSIONS, ur as ICON_DOT_RADIUS, dr as ICON_SOFT_OPACITY, qt as LIGHT_THEME, e as LayerType, Kn as MARKET_CRYPTO, Un as MARKET_HNX, Vn as MARKET_HOSE, Hn as MARKET_HOSE_ETF, qn as MARKET_NYSE, Wn as MARKET_UPCOM, Gn as MARKET_VN30F, Cn as MIN_PANEL_HEIGHT, se as MS_TIME_THRESHOLD, Tn as PHI, xn as PRICE_AXIS_WIDTH, tt as PRICE_SOURCES, I as TC_PALETTE, Gt as TC_SERIES_COLORS, hn as TIMEFRAMES_CRYPTO, _n as TIMEFRAMES_FOREX, gn as TIMEFRAMES_STOCK, Sn as TIME_AXIS_HEIGHT, sr as UI_ICONS, zn as UPCOM_SESSIONS, Bn as VN30F_SESSIONS, q as VN_COLORS, It as VOLUME_ALPHA, Le as alignToTimeframe, Je as autoPricePrecision, ce as barTimeUnit, Ve as barsAreDaily, pn as chartStyleValue, ne as clamp, Zn as computePriceLimits, he as computePriceRange, oe as computeTickStep, Jn as createVNTheme, et as detectPrecision, wt as drawingOption, U as en, fe as findBarIndex, me as fitPriceRange, Xe as formatFraction, K as formatNumber, D as formatPrice, Ye as formatPriceScaleLabel, Ie as formatTimestamp, Fn as formatVND, $e as formatVolume, In as formatVolumeLoc, Ze as fractionTick, nr as getCurrentSession, jn as getLocale, Pn as getLocaleStrings, _e as hexToRgba, mr as iconSvg, at as indicatorSource, ie as inverseLerp, ze as isDateOnly, nt as isPriceSource, Fe as isTimeFrame, y as isValidTimeZone, re as lerp, ve as lerpColor, cn as lineDash, gt as marketStatus, ge as mergeBar, m as niceNumber, ue as normalizeBar, le as normalizeBarTime, S as offsetAt, pe as padPriceRange, ot as parseIndicatorSource, w as parseTimeframe, Dn as phiStep, ut as pickBaseTimeframe, Qe as priceFormatterFor, Yn as priceStepAt, qe as priceTagText, ft as rankSymbols, rn as readChartStyleOverrides, Nt as readChartTypeOptions, sn as readIndicatorPlotStyles, te as readNews, an as readPaneStyle, l as readQuote, Nn as registerLocale, ct as resampleBars, un as resolveChartTheme, Tt as resolveDrawingOptions, V as resolveVolumeColors, X as roundToPriceStep, ae as roundToStep, St as sanitizeDrawingOptions, Mt as sanitizeDrawingStyle, Qn as scaleMarketPrices, k as sessionMinute, An as setLocale, de as sliceVisibleData, rt as sourcePrice, pt as stepDecimals, mt as symbolTimeZone, Mn as t, Pe as tickBarCount, Re as timeParts, We as timeframeBucketStart, T as timeframeToMs, He as tzLabel, On as vi, or as vn30fContracts, ar as vn30fLastTradingDay, L as volumeColor, Oe as wallToUtc, h as withAlpha, b as zoneOffsetMinutes, Ae as zonedDateFormatter };
|
|
2507
2510
|
|
|
2508
2511
|
//# sourceMappingURL=index.js.map
|