@tradecanvas/commons 1.26.0 → 1.27.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/icons/iconSet.d.ts +28 -0
- package/dist/icons/iconSet.d.ts.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +739 -196
- package/dist/index.js.map +1 -1
- package/dist/types/chart.d.ts +7 -0
- package/dist/types/chart.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -346,7 +346,7 @@ function ve(e, t, n) {
|
|
|
346
346
|
}
|
|
347
347
|
//#endregion
|
|
348
348
|
//#region src/utils/timezone.ts
|
|
349
|
-
var h = 6e4,
|
|
349
|
+
var h = 6e4, g = 1440 * h, _ = 15 * h, ye = 8192, be = 7 * g, xe = 4096, Se = new Set([
|
|
350
350
|
"UTC",
|
|
351
351
|
"Etc/UTC",
|
|
352
352
|
"GMT",
|
|
@@ -357,9 +357,9 @@ var h = 6e4, ye = 1440 * h, g = 15 * h, be = 8192, xe = 7 * ye, Se = 4096, Ce =
|
|
|
357
357
|
"Etc/Universal",
|
|
358
358
|
"Zulu",
|
|
359
359
|
"Etc/Zulu"
|
|
360
|
-
]),
|
|
361
|
-
function
|
|
362
|
-
let t =
|
|
360
|
+
]), Ce = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), we = /* @__PURE__ */ new Map();
|
|
361
|
+
function Te(e) {
|
|
362
|
+
let t = Ce.get(e);
|
|
363
363
|
return t || (t = new Intl.DateTimeFormat("en-US", {
|
|
364
364
|
timeZone: e,
|
|
365
365
|
hourCycle: "h23",
|
|
@@ -369,33 +369,33 @@ function Ee(e) {
|
|
|
369
369
|
hour: "numeric",
|
|
370
370
|
minute: "numeric",
|
|
371
371
|
second: "numeric"
|
|
372
|
-
}),
|
|
372
|
+
}), Ce.set(e, t)), t;
|
|
373
373
|
}
|
|
374
|
-
function
|
|
374
|
+
function Ee(e) {
|
|
375
375
|
if (!e) return !1;
|
|
376
376
|
try {
|
|
377
|
-
return
|
|
377
|
+
return Te(e), !0;
|
|
378
378
|
} catch {
|
|
379
379
|
return !1;
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
function y(e, t) {
|
|
383
|
-
if (!Number.isFinite(t) ||
|
|
384
|
-
let n =
|
|
385
|
-
n || (n = /* @__PURE__ */ new Map(),
|
|
386
|
-
let r = Math.floor(t /
|
|
387
|
-
return i || (i = De(e, r *
|
|
383
|
+
if (!Number.isFinite(t) || Se.has(e)) return 0;
|
|
384
|
+
let n = we.get(e);
|
|
385
|
+
n || (n = /* @__PURE__ */ new Map(), we.set(e, n));
|
|
386
|
+
let r = Math.floor(t / be), i = n.get(r);
|
|
387
|
+
return i || (i = De(e, r * be), n.size >= xe && n.clear(), n.set(r, i)), t < i.change ? i.before : i.after;
|
|
388
388
|
}
|
|
389
389
|
function De(e, t) {
|
|
390
|
-
let n = b(e, t), r = t +
|
|
390
|
+
let n = b(e, t), r = t + be - _, i = b(e, r);
|
|
391
391
|
if (i === n) return {
|
|
392
392
|
before: n,
|
|
393
393
|
change: Infinity,
|
|
394
394
|
after: i
|
|
395
395
|
};
|
|
396
396
|
let a = t;
|
|
397
|
-
for (; r - a >
|
|
398
|
-
let t = a + Math.floor((r - a) /
|
|
397
|
+
for (; r - a > _;) {
|
|
398
|
+
let t = a + Math.floor((r - a) / _ / 2) * _;
|
|
399
399
|
b(e, t) === n ? a = t : r = t;
|
|
400
400
|
}
|
|
401
401
|
return {
|
|
@@ -405,10 +405,10 @@ function De(e, t) {
|
|
|
405
405
|
};
|
|
406
406
|
}
|
|
407
407
|
function b(e, t) {
|
|
408
|
-
let n = Math.floor(t /
|
|
408
|
+
let n = Math.floor(t / _), r = `${e}|${n}`, i = v.get(r);
|
|
409
409
|
if (i !== void 0) return i;
|
|
410
|
-
let a = n *
|
|
411
|
-
for (let t of
|
|
410
|
+
let a = n * _, o = 1970, s = 1, c = 1, l = 0, u = 0, d = 0;
|
|
411
|
+
for (let t of Te(e).formatToParts(new Date(a))) {
|
|
412
412
|
let e = Number(t.value);
|
|
413
413
|
switch (t.type) {
|
|
414
414
|
case "year":
|
|
@@ -432,15 +432,15 @@ function b(e, t) {
|
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
434
|
let f = Math.round((Date.UTC(o, s - 1, c, l, u, d) - a) / h);
|
|
435
|
-
return
|
|
435
|
+
return v.size >= ye && v.clear(), v.set(r, f), f;
|
|
436
436
|
}
|
|
437
437
|
function x(e, t) {
|
|
438
438
|
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : y(e, t);
|
|
439
439
|
}
|
|
440
440
|
function Oe(e, t) {
|
|
441
|
-
let n = e - x(t, e -
|
|
441
|
+
let n = e - x(t, e - g) * h;
|
|
442
442
|
if (n + x(t, n) * h === e) return n;
|
|
443
|
-
let r = e - x(t, e +
|
|
443
|
+
let r = e - x(t, e + g) * h;
|
|
444
444
|
return r + x(t, r) * h === e ? r : n;
|
|
445
445
|
}
|
|
446
446
|
var ke = /* @__PURE__ */ new Map();
|
|
@@ -491,16 +491,16 @@ var je = {
|
|
|
491
491
|
"3M": 7776e6,
|
|
492
492
|
"6M": 15552e6,
|
|
493
493
|
"12M": 31536e6
|
|
494
|
-
},
|
|
494
|
+
}, Me = {
|
|
495
495
|
s: 1e3,
|
|
496
496
|
m: 6e4,
|
|
497
497
|
h: 36e5,
|
|
498
498
|
d: 864e5,
|
|
499
499
|
w: 6048e5,
|
|
500
500
|
M: 2592e6
|
|
501
|
-
},
|
|
502
|
-
function
|
|
503
|
-
let t =
|
|
501
|
+
}, Ne = /^([1-9]\d*)([smhdwM])$/;
|
|
502
|
+
function S(e) {
|
|
503
|
+
let t = Ne.exec(e);
|
|
504
504
|
if (!t) return null;
|
|
505
505
|
let n = Number(t[1]);
|
|
506
506
|
return Number.isSafeInteger(n) ? {
|
|
@@ -508,24 +508,24 @@ function C(e) {
|
|
|
508
508
|
unit: t[2]
|
|
509
509
|
} : null;
|
|
510
510
|
}
|
|
511
|
-
var
|
|
512
|
-
function
|
|
511
|
+
var Pe = 1e6;
|
|
512
|
+
function Fe(e) {
|
|
513
513
|
let t = /^([1-9]\d*)T$/.exec(e);
|
|
514
514
|
if (!t) return null;
|
|
515
515
|
let n = Number(t[1]);
|
|
516
|
-
return Number.isSafeInteger(n) && n <=
|
|
516
|
+
return Number.isSafeInteger(n) && n <= Pe ? n : null;
|
|
517
517
|
}
|
|
518
|
-
function
|
|
519
|
-
return
|
|
518
|
+
function Ie(e) {
|
|
519
|
+
return S(e) !== null;
|
|
520
520
|
}
|
|
521
|
-
function
|
|
521
|
+
function C(e) {
|
|
522
522
|
let t = je[e];
|
|
523
523
|
if (t !== void 0) return t;
|
|
524
|
-
let n =
|
|
525
|
-
return n ? n.count *
|
|
524
|
+
let n = S(e);
|
|
525
|
+
return n ? n.count * Me[n.unit] : NaN;
|
|
526
526
|
}
|
|
527
|
-
function
|
|
528
|
-
let n = new Date(e), r =
|
|
527
|
+
function Le(e, t) {
|
|
528
|
+
let n = new Date(e), r = C(t);
|
|
529
529
|
return r >= 864e5 ? n.toLocaleDateString(void 0, {
|
|
530
530
|
month: "short",
|
|
531
531
|
day: "numeric"
|
|
@@ -538,11 +538,11 @@ function Ie(e, t) {
|
|
|
538
538
|
second: "2-digit"
|
|
539
539
|
});
|
|
540
540
|
}
|
|
541
|
-
function
|
|
542
|
-
let n =
|
|
541
|
+
function Re(e, t) {
|
|
542
|
+
let n = C(t);
|
|
543
543
|
return Math.floor(e / n) * n;
|
|
544
544
|
}
|
|
545
|
-
function
|
|
545
|
+
function ze(e, t) {
|
|
546
546
|
if (t === null) {
|
|
547
547
|
let t = new Date(e);
|
|
548
548
|
return {
|
|
@@ -562,11 +562,11 @@ function Re(e, t) {
|
|
|
562
562
|
minutes: n.getUTCMinutes()
|
|
563
563
|
};
|
|
564
564
|
}
|
|
565
|
-
function
|
|
565
|
+
function Be(e) {
|
|
566
566
|
return e.hours === 0 && e.minutes === 0;
|
|
567
567
|
}
|
|
568
|
-
var
|
|
569
|
-
function
|
|
568
|
+
var Ve = 20 * 36e5;
|
|
569
|
+
function He(e) {
|
|
570
570
|
let t = Math.min(e.length, 64);
|
|
571
571
|
if (t < 2) return;
|
|
572
572
|
let n = ce(e), r = Infinity;
|
|
@@ -574,78 +574,78 @@ function Ve(e) {
|
|
|
574
574
|
let t = Math.abs(e[i].time - e[i - 1].time) * n;
|
|
575
575
|
t > 0 && t < r && (r = t);
|
|
576
576
|
}
|
|
577
|
-
return r === Infinity ? void 0 : r >=
|
|
577
|
+
return r === Infinity ? void 0 : r >= Ve;
|
|
578
578
|
}
|
|
579
|
-
function
|
|
579
|
+
function Ue(e, t = Date.now()) {
|
|
580
580
|
let n = x(e, t), r = n >= 0 ? "+" : "-", i = Math.abs(n), a = Math.floor(i / 60), o = i % 60;
|
|
581
581
|
return o === 0 ? `UTC${r}${a}` : `UTC${r}${a}:${String(o).padStart(2, "0")}`;
|
|
582
582
|
}
|
|
583
|
-
var
|
|
584
|
-
function
|
|
585
|
-
let { count: r, unit: i } =
|
|
583
|
+
var We = Date.UTC(1970, 0, 5);
|
|
584
|
+
function Ge(e, t, n = 1) {
|
|
585
|
+
let { count: r, unit: i } = S(t) ?? {
|
|
586
586
|
count: 1,
|
|
587
587
|
unit: "m"
|
|
588
588
|
};
|
|
589
589
|
if (i === "s" || i === "m" || i === "h" || i === "d") {
|
|
590
|
-
let t = r *
|
|
590
|
+
let t = r * Me[i];
|
|
591
591
|
return Math.floor(e / t) * t;
|
|
592
592
|
}
|
|
593
593
|
let a = new Date(e);
|
|
594
594
|
if (i === "w") {
|
|
595
|
-
let e =
|
|
595
|
+
let e = Me.d, t = (a.getUTCDay() - n + 7) % 7, i = Date.UTC(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate() - t);
|
|
596
596
|
if (r <= 1) return i;
|
|
597
|
-
let o = Math.floor((i -
|
|
598
|
-
return
|
|
597
|
+
let o = Math.floor((i - We) / (7 * e));
|
|
598
|
+
return We + Math.floor(o / r) * r * 7 * e;
|
|
599
599
|
}
|
|
600
600
|
let o = a.getUTCFullYear() * 12 + a.getUTCMonth(), s = Math.floor(o / r) * r;
|
|
601
601
|
return Date.UTC(Math.floor(s / 12), s % 12, 1);
|
|
602
602
|
}
|
|
603
603
|
//#endregion
|
|
604
604
|
//#region src/utils/precision.ts
|
|
605
|
-
var
|
|
606
|
-
function
|
|
607
|
-
let n = `${e}|${t}`, r =
|
|
608
|
-
return r || (
|
|
605
|
+
var Ke = 64, w = /* @__PURE__ */ new Map();
|
|
606
|
+
function qe(e, t) {
|
|
607
|
+
let n = `${e}|${t}`, r = w.get(n);
|
|
608
|
+
return r || (w.size >= Ke && w.clear(), r = new Intl.NumberFormat(e, {
|
|
609
609
|
minimumFractionDigits: t,
|
|
610
610
|
maximumFractionDigits: t
|
|
611
|
-
}),
|
|
611
|
+
}), w.set(n, r)), r;
|
|
612
612
|
}
|
|
613
|
-
function
|
|
614
|
-
return
|
|
613
|
+
function Je(e, t = 2, n = "en-US") {
|
|
614
|
+
return qe(n, t).format(e);
|
|
615
615
|
}
|
|
616
|
-
function
|
|
616
|
+
function Ye(e, t) {
|
|
617
617
|
if (!(t > e) || !Number.isFinite(e) || !Number.isFinite(t)) return 2;
|
|
618
618
|
let n = oe(e, t, 8);
|
|
619
619
|
return n > 0 && n < 1 ? Math.ceil(-Math.log10(n)) + 1 : 2;
|
|
620
620
|
}
|
|
621
|
-
function
|
|
621
|
+
function Xe(e, t, n, r = 2, i = "en-US") {
|
|
622
622
|
if ((t === "percentage" || t === "indexedTo100") && n && n !== 0) {
|
|
623
623
|
if (t === "percentage") {
|
|
624
624
|
let t = (e / n - 1) * 100;
|
|
625
625
|
return `${t > 0 ? "+" : ""}${t.toFixed(2)}%`;
|
|
626
626
|
}
|
|
627
|
-
return
|
|
627
|
+
return Je(e / n * 100, 2, i);
|
|
628
628
|
}
|
|
629
|
-
return
|
|
629
|
+
return Je(e, r, i);
|
|
630
630
|
}
|
|
631
|
-
function
|
|
631
|
+
function Ze(e, t, n = 1) {
|
|
632
632
|
let r = Number.isInteger(n) && n > 1 ? n : 1;
|
|
633
633
|
if (!Number.isFinite(e) || !Number.isInteger(t) || t < 2) return String(e);
|
|
634
634
|
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)) : "";
|
|
635
635
|
return `${e < 0 && a > 0 ? "-" : ""}${o}'${String(c).padStart(l, "0")}${u}`;
|
|
636
636
|
}
|
|
637
|
-
function
|
|
637
|
+
function Qe(e) {
|
|
638
638
|
if (!Number.isInteger(e.denominator) || e.denominator < 2) return null;
|
|
639
639
|
let t = Number.isInteger(e.subDenominator) && (e.subDenominator ?? 0) > 1 ? e.subDenominator : 1;
|
|
640
640
|
return 1 / (e.denominator * t);
|
|
641
641
|
}
|
|
642
|
-
function
|
|
643
|
-
return e ? typeof e == "function" ? e :
|
|
642
|
+
function $e(e) {
|
|
643
|
+
return e ? typeof e == "function" ? e : Qe(e) === null ? null : (t) => Ze(t, e.denominator, e.subDenominator) : null;
|
|
644
644
|
}
|
|
645
|
-
function
|
|
645
|
+
function et(e) {
|
|
646
646
|
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);
|
|
647
647
|
}
|
|
648
|
-
function
|
|
648
|
+
function tt(e) {
|
|
649
649
|
let t = 0;
|
|
650
650
|
for (let n of e) {
|
|
651
651
|
let e = n.toString(), r = e.indexOf(".");
|
|
@@ -655,7 +655,7 @@ function $e(e) {
|
|
|
655
655
|
}
|
|
656
656
|
//#endregion
|
|
657
657
|
//#region src/utils/priceSource.ts
|
|
658
|
-
var
|
|
658
|
+
var nt = [
|
|
659
659
|
"close",
|
|
660
660
|
"open",
|
|
661
661
|
"high",
|
|
@@ -665,10 +665,10 @@ var et = [
|
|
|
665
665
|
"ohlc4",
|
|
666
666
|
"hlcc4"
|
|
667
667
|
];
|
|
668
|
-
function
|
|
669
|
-
return typeof e == "string" &&
|
|
668
|
+
function rt(e) {
|
|
669
|
+
return typeof e == "string" && nt.includes(e);
|
|
670
670
|
}
|
|
671
|
-
function
|
|
671
|
+
function it(e, t) {
|
|
672
672
|
switch (t) {
|
|
673
673
|
case "open": return e.open;
|
|
674
674
|
case "high": return e.high;
|
|
@@ -680,13 +680,13 @@ function nt(e, t) {
|
|
|
680
680
|
default: return e.close;
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
|
-
var
|
|
684
|
-
function
|
|
683
|
+
var at = /^ind:([^:]+):(.+)$/;
|
|
684
|
+
function ot(e, t) {
|
|
685
685
|
return `ind:${e}:${t}`;
|
|
686
686
|
}
|
|
687
|
-
function
|
|
687
|
+
function st(e) {
|
|
688
688
|
if (typeof e != "string") return null;
|
|
689
|
-
let t =
|
|
689
|
+
let t = at.exec(e);
|
|
690
690
|
return t ? {
|
|
691
691
|
instanceId: t[1],
|
|
692
692
|
key: t[2]
|
|
@@ -694,11 +694,11 @@ function at(e) {
|
|
|
694
694
|
}
|
|
695
695
|
//#endregion
|
|
696
696
|
//#region src/utils/resample.ts
|
|
697
|
-
var
|
|
698
|
-
function
|
|
697
|
+
var ct = 864e5;
|
|
698
|
+
function lt(e, t, n = 1) {
|
|
699
699
|
let r = [], i = null;
|
|
700
700
|
for (let a of e) {
|
|
701
|
-
let e =
|
|
701
|
+
let e = Ge(a.time, t, n);
|
|
702
702
|
i === null || e !== i.time ? (i = {
|
|
703
703
|
time: e,
|
|
704
704
|
open: a.open,
|
|
@@ -710,37 +710,37 @@ function st(e, t, n = 1) {
|
|
|
710
710
|
}
|
|
711
711
|
return r;
|
|
712
712
|
}
|
|
713
|
-
var
|
|
714
|
-
function
|
|
715
|
-
let n =
|
|
713
|
+
var T = (e) => e === "s" || e === "m" || e === "h" || e === "d";
|
|
714
|
+
function ut(e, t) {
|
|
715
|
+
let n = S(e), r = S(t);
|
|
716
716
|
if (!n || !r) return !1;
|
|
717
|
-
let i =
|
|
718
|
-
return n.unit === "d" && n.count > 1 ? !1 :
|
|
717
|
+
let i = C(e);
|
|
718
|
+
return n.unit === "d" && n.count > 1 ? !1 : T(r.unit) ? T(n.unit) && C(t) % i === 0 : n.unit === r.unit ? r.count % n.count === 0 : T(n.unit) && ct % i === 0;
|
|
719
719
|
}
|
|
720
|
-
function
|
|
720
|
+
function dt(e, t) {
|
|
721
721
|
let n = null, r = 0;
|
|
722
722
|
for (let i of t) {
|
|
723
|
-
if (!
|
|
724
|
-
let t =
|
|
723
|
+
if (!ut(i, e)) continue;
|
|
724
|
+
let t = C(i);
|
|
725
725
|
t > r && (n = i, r = t);
|
|
726
726
|
}
|
|
727
727
|
return n;
|
|
728
728
|
}
|
|
729
729
|
//#endregion
|
|
730
730
|
//#region src/utils/symbols.ts
|
|
731
|
-
function
|
|
731
|
+
function ft(e, t) {
|
|
732
732
|
if (!e) return 0;
|
|
733
733
|
if (e === t) return 1e3;
|
|
734
734
|
if (e.startsWith(t)) return 600 - Math.min(100, e.length - t.length);
|
|
735
735
|
let n = e.indexOf(t);
|
|
736
736
|
return n >= 0 ? 300 - Math.min(100, n) : 0;
|
|
737
737
|
}
|
|
738
|
-
function
|
|
738
|
+
function pt(e, t, n = 50, r) {
|
|
739
739
|
let i = t.trim().toUpperCase();
|
|
740
740
|
if (!i) return e.slice(0, n);
|
|
741
741
|
let a = [];
|
|
742
742
|
for (let t of e) {
|
|
743
|
-
let e = Math.max(
|
|
743
|
+
let e = Math.max(ft(t.symbol.toUpperCase(), i), ft((t.description ?? "").toUpperCase(), i) * .8);
|
|
744
744
|
e > 0 && a.push({
|
|
745
745
|
info: t,
|
|
746
746
|
score: e + (r?.(t) ?? 0)
|
|
@@ -748,7 +748,7 @@ function dt(e, t, n = 50, r) {
|
|
|
748
748
|
}
|
|
749
749
|
return a.sort((e, t) => t.score - e.score || e.info.symbol.localeCompare(t.info.symbol)), a.slice(0, n).map((e) => e.info);
|
|
750
750
|
}
|
|
751
|
-
function
|
|
751
|
+
function mt(e) {
|
|
752
752
|
let t = typeof e == "number" ? e : Number(e);
|
|
753
753
|
if (!Number.isFinite(t) || t <= 0) return 0;
|
|
754
754
|
for (let e = 0; e <= 12; e++) {
|
|
@@ -757,7 +757,7 @@ function ft(e) {
|
|
|
757
757
|
}
|
|
758
758
|
return 12;
|
|
759
759
|
}
|
|
760
|
-
function
|
|
760
|
+
function E(e) {
|
|
761
761
|
let t = /^(\d{1,2}):(\d{2})$/.exec(e.trim());
|
|
762
762
|
if (!t) return null;
|
|
763
763
|
let n = Number(t[1]), r = Number(t[2]);
|
|
@@ -765,26 +765,26 @@ function O(e) {
|
|
|
765
765
|
}
|
|
766
766
|
//#endregion
|
|
767
767
|
//#region src/utils/marketStatus.ts
|
|
768
|
-
var
|
|
769
|
-
function
|
|
768
|
+
var D = 864e5, O = 6e4, ht = 8;
|
|
769
|
+
function gt(e, t) {
|
|
770
770
|
let n = e?.timezone, r = (e?.sessions ?? []).flatMap((e) => {
|
|
771
|
-
let t =
|
|
771
|
+
let t = E(e.start), n = E(e.end);
|
|
772
772
|
return t === null || n === null || t === n ? [] : [{
|
|
773
773
|
start: t,
|
|
774
774
|
end: n,
|
|
775
775
|
days: Array.isArray(e.days) ? e.days : null
|
|
776
776
|
}];
|
|
777
777
|
});
|
|
778
|
-
if (!n || !
|
|
778
|
+
if (!n || !Ee(n) || r.length === 0 || !Number.isFinite(t)) return {
|
|
779
779
|
state: "always",
|
|
780
780
|
next: null
|
|
781
781
|
};
|
|
782
|
-
let i = y(n, t) *
|
|
783
|
-
for (let e = -1; e <=
|
|
784
|
-
let t = a + e *
|
|
782
|
+
let i = y(n, t) * O, a = Math.floor((t + i) / D) * D, o = (e) => e - y(n, e - y(n, e - i) * O) * O, s = [];
|
|
783
|
+
for (let e = -1; e <= ht; e++) {
|
|
784
|
+
let t = a + e * D, n = (Math.floor(t / D) + 4) % 7;
|
|
785
785
|
for (let e of r) {
|
|
786
786
|
if (e.days && !e.days.includes(n)) continue;
|
|
787
|
-
let r = t + e.start *
|
|
787
|
+
let r = t + e.start * O, i = (e.end > e.start ? t : t + D) + e.end * O;
|
|
788
788
|
s.push([o(r), o(i)]);
|
|
789
789
|
}
|
|
790
790
|
}
|
|
@@ -807,15 +807,15 @@ function mt(e, t) {
|
|
|
807
807
|
}
|
|
808
808
|
//#endregion
|
|
809
809
|
//#region src/utils/drawingOptions.ts
|
|
810
|
-
var
|
|
811
|
-
function
|
|
810
|
+
var _t = 48, vt = 2e3, yt = 1e4;
|
|
811
|
+
function bt(e) {
|
|
812
812
|
if (!Array.isArray(e)) return;
|
|
813
813
|
let t = [];
|
|
814
814
|
for (let n of e) {
|
|
815
|
-
if (t.length >=
|
|
815
|
+
if (t.length >= _t) break;
|
|
816
816
|
if (typeof n != "object" || !n) continue;
|
|
817
817
|
let { value: e, visible: r, color: i } = n;
|
|
818
|
-
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) >
|
|
818
|
+
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) > yt || r !== void 0 && typeof r != "boolean") continue;
|
|
819
819
|
let a = {
|
|
820
820
|
value: e,
|
|
821
821
|
visible: r ?? !0
|
|
@@ -824,109 +824,109 @@ function vt(e) {
|
|
|
824
824
|
}
|
|
825
825
|
return t;
|
|
826
826
|
}
|
|
827
|
-
function
|
|
827
|
+
function xt(e, t) {
|
|
828
828
|
switch (e.kind) {
|
|
829
829
|
case "boolean": return typeof t == "boolean" ? t : void 0;
|
|
830
830
|
case "number": return typeof t != "number" || !Number.isFinite(t) ? void 0 : Math.min(e.max ?? Infinity, Math.max(e.min ?? -Infinity, t));
|
|
831
831
|
case "choice": return typeof t == "string" && e.choices.some((e) => e.value === t) ? t : void 0;
|
|
832
|
-
case "levels": return
|
|
833
|
-
case "text": return typeof t == "string" ? t.slice(0,
|
|
832
|
+
case "levels": return bt(t);
|
|
833
|
+
case "text": return typeof t == "string" ? t.slice(0, vt) : void 0;
|
|
834
834
|
}
|
|
835
835
|
}
|
|
836
|
-
function
|
|
836
|
+
function St(e, t) {
|
|
837
837
|
if (!e || typeof t != "object" || !t) return {};
|
|
838
838
|
let n = {};
|
|
839
839
|
for (let [r, i] of Object.entries(t)) {
|
|
840
840
|
let t = e[r];
|
|
841
841
|
if (!t) continue;
|
|
842
|
-
let a =
|
|
842
|
+
let a = xt(t, i);
|
|
843
843
|
a !== void 0 && (n[r] = a);
|
|
844
844
|
}
|
|
845
845
|
return n;
|
|
846
846
|
}
|
|
847
|
-
function
|
|
847
|
+
function Ct(e) {
|
|
848
848
|
return Array.isArray(e) ? e.map((e) => ({ ...e })) : e;
|
|
849
849
|
}
|
|
850
|
-
function
|
|
850
|
+
function wt(e, t, n) {
|
|
851
851
|
let r = e?.[n];
|
|
852
|
-
return r ?
|
|
852
|
+
return r ? Ct((t && n in t ? xt(r, t[n]) : void 0) ?? r.default) : t?.[n];
|
|
853
853
|
}
|
|
854
|
-
function
|
|
854
|
+
function Tt(e, t) {
|
|
855
855
|
let n = {};
|
|
856
|
-
for (let r of Object.keys(e ?? {})) n[r] =
|
|
856
|
+
for (let r of Object.keys(e ?? {})) n[r] = wt(e, t, r);
|
|
857
857
|
return n;
|
|
858
858
|
}
|
|
859
859
|
//#endregion
|
|
860
860
|
//#region src/utils/drawingStyle.ts
|
|
861
|
-
var
|
|
861
|
+
var Et = [
|
|
862
862
|
"solid",
|
|
863
863
|
"dashed",
|
|
864
864
|
"dotted"
|
|
865
|
-
],
|
|
866
|
-
function
|
|
865
|
+
], Dt = 64, Ot = 2e3, kt = 20, At = 200;
|
|
866
|
+
function k(e, t, n) {
|
|
867
867
|
return typeof e == "number" && Number.isFinite(e) ? Math.min(n, Math.max(t, e)) : void 0;
|
|
868
868
|
}
|
|
869
|
-
function
|
|
870
|
-
return typeof e == "string" && e.length > 0 && e.length <=
|
|
869
|
+
function jt(e) {
|
|
870
|
+
return typeof e == "string" && e.length > 0 && e.length <= Dt ? e : void 0;
|
|
871
871
|
}
|
|
872
|
-
function
|
|
872
|
+
function Mt(e) {
|
|
873
873
|
if (typeof e != "object" || !e) return {};
|
|
874
|
-
let t = e, n = {}, r =
|
|
874
|
+
let t = e, n = {}, r = jt(t.color);
|
|
875
875
|
r !== void 0 && (n.color = r);
|
|
876
|
-
let i =
|
|
877
|
-
i !== void 0 && (n.lineWidth = i),
|
|
878
|
-
let a =
|
|
876
|
+
let i = k(t.lineWidth, .5, kt);
|
|
877
|
+
i !== void 0 && (n.lineWidth = i), Et.includes(t.lineStyle) && (n.lineStyle = t.lineStyle);
|
|
878
|
+
let a = jt(t.fillColor);
|
|
879
879
|
a !== void 0 && (n.fillColor = a);
|
|
880
|
-
let o =
|
|
880
|
+
let o = k(t.fillOpacity, 0, 1);
|
|
881
881
|
o !== void 0 && (n.fillOpacity = o);
|
|
882
|
-
let s =
|
|
883
|
-
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0,
|
|
882
|
+
let s = k(t.fontSize, 6, At);
|
|
883
|
+
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0, Ot)), n;
|
|
884
884
|
}
|
|
885
885
|
//#endregion
|
|
886
886
|
//#region src/utils/chartTypeOptions.ts
|
|
887
|
-
var
|
|
888
|
-
function
|
|
889
|
-
if (!
|
|
887
|
+
var A = (e) => typeof e == "number" && Number.isFinite(e) && e > 0, j = (e, t, n) => typeof e == "number" && Number.isInteger(e) && e >= t && e <= n, M = (e) => typeof e == "object" && !!e && !Array.isArray(e);
|
|
888
|
+
function Nt(e) {
|
|
889
|
+
if (!M(e)) return {};
|
|
890
890
|
let t = {};
|
|
891
|
-
if (
|
|
891
|
+
if (M(e.renko)) {
|
|
892
892
|
let { boxSize: n, atrPeriod: r } = e.renko;
|
|
893
893
|
t.renko = {
|
|
894
|
-
...
|
|
895
|
-
...
|
|
894
|
+
...A(n) || n === "atr" ? { boxSize: n } : {},
|
|
895
|
+
...j(r, 1, 500) ? { atrPeriod: r } : {}
|
|
896
896
|
};
|
|
897
897
|
}
|
|
898
|
-
if (
|
|
898
|
+
if (M(e.lineBreak)) {
|
|
899
899
|
let { lines: n } = e.lineBreak;
|
|
900
|
-
t.lineBreak =
|
|
900
|
+
t.lineBreak = j(n, 1, 10) ? { lines: n } : {};
|
|
901
901
|
}
|
|
902
|
-
if (
|
|
902
|
+
if (M(e.kagi)) {
|
|
903
903
|
let { reversal: n, reversalType: r } = e.kagi;
|
|
904
904
|
t.kagi = {
|
|
905
|
-
...
|
|
905
|
+
...A(n) ? { reversal: n } : {},
|
|
906
906
|
...r === "percent" || r === "price" ? { reversalType: r } : {}
|
|
907
907
|
};
|
|
908
908
|
}
|
|
909
|
-
if (
|
|
909
|
+
if (M(e.pointAndFigure)) {
|
|
910
910
|
let { boxSize: n, reversal: r } = e.pointAndFigure;
|
|
911
911
|
t.pointAndFigure = {
|
|
912
|
-
...
|
|
913
|
-
...
|
|
912
|
+
...A(n) || n === "auto" ? { boxSize: n } : {},
|
|
913
|
+
...j(r, 1, 10) ? { reversal: r } : {}
|
|
914
914
|
};
|
|
915
915
|
}
|
|
916
|
-
if (
|
|
916
|
+
if (M(e.rangeBars)) {
|
|
917
917
|
let { range: n } = e.rangeBars;
|
|
918
|
-
t.rangeBars =
|
|
918
|
+
t.rangeBars = A(n) || n === "auto" ? { range: n } : {};
|
|
919
919
|
}
|
|
920
920
|
return t;
|
|
921
921
|
}
|
|
922
922
|
//#endregion
|
|
923
923
|
//#region src/constants/themes.ts
|
|
924
|
-
var
|
|
925
|
-
family:
|
|
924
|
+
var Pt = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif", Ft = {
|
|
925
|
+
family: Pt,
|
|
926
926
|
sizeSmall: 10,
|
|
927
927
|
sizeMedium: 12,
|
|
928
928
|
sizeLarge: 14
|
|
929
|
-
},
|
|
929
|
+
}, N = {
|
|
930
930
|
amber: "#f2a93b",
|
|
931
931
|
up: "#1fa874",
|
|
932
932
|
down: "#e8505b",
|
|
@@ -937,37 +937,37 @@ var Mt = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif",
|
|
|
937
937
|
rose: "#e25592",
|
|
938
938
|
neutral: "#7d8696",
|
|
939
939
|
ink: "#0c1016"
|
|
940
|
-
},
|
|
941
|
-
function
|
|
942
|
-
return _e(e,
|
|
943
|
-
}
|
|
944
|
-
var
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
],
|
|
940
|
+
}, It = .22;
|
|
941
|
+
function P(e) {
|
|
942
|
+
return _e(e, It);
|
|
943
|
+
}
|
|
944
|
+
var F = "#2eb88a", I = "#e85a67", Lt = [
|
|
945
|
+
N.blue,
|
|
946
|
+
N.ochre,
|
|
947
|
+
N.violet,
|
|
948
|
+
N.cyan,
|
|
949
|
+
N.rose
|
|
950
|
+
], L = {
|
|
951
951
|
name: "dark",
|
|
952
|
-
background:
|
|
952
|
+
background: N.ink,
|
|
953
953
|
text: "#d9dde4",
|
|
954
954
|
textSecondary: "#7d8696",
|
|
955
955
|
grid: "#161b23",
|
|
956
956
|
crosshair: "#8a93a3",
|
|
957
|
-
candleUp:
|
|
958
|
-
candleDown:
|
|
959
|
-
candleUpWick:
|
|
960
|
-
candleDownWick:
|
|
961
|
-
lineColor:
|
|
957
|
+
candleUp: F,
|
|
958
|
+
candleDown: I,
|
|
959
|
+
candleUpWick: F,
|
|
960
|
+
candleDownWick: I,
|
|
961
|
+
lineColor: N.amber,
|
|
962
962
|
areaTopColor: "rgba(242, 169, 59, 0.32)",
|
|
963
963
|
areaBottomColor: "rgba(242, 169, 59, 0.0)",
|
|
964
|
-
volumeUp:
|
|
965
|
-
volumeDown: I
|
|
964
|
+
volumeUp: P(F),
|
|
965
|
+
volumeDown: P(I),
|
|
966
966
|
axisLine: "#1f2630",
|
|
967
967
|
axisLabel: "#9aa3b2",
|
|
968
968
|
axisLabelBackground: "#1f2630",
|
|
969
|
-
font:
|
|
970
|
-
},
|
|
969
|
+
font: Ft
|
|
970
|
+
}, R = {
|
|
971
971
|
name: "light",
|
|
972
972
|
background: "#ffffff",
|
|
973
973
|
text: "#0f131a",
|
|
@@ -981,13 +981,13 @@ var L = "#2eb88a", R = "#e85a67", Ft = [
|
|
|
981
981
|
lineColor: "#c77a0a",
|
|
982
982
|
areaTopColor: "rgba(199, 122, 10, 0.24)",
|
|
983
983
|
areaBottomColor: "rgba(199, 122, 10, 0.0)",
|
|
984
|
-
volumeUp:
|
|
985
|
-
volumeDown:
|
|
984
|
+
volumeUp: P("#16a36a"),
|
|
985
|
+
volumeDown: P("#d9414f"),
|
|
986
986
|
axisLine: "#dde1e7",
|
|
987
987
|
axisLabel: "#5b6472",
|
|
988
988
|
axisLabelBackground: "#eef0f3",
|
|
989
|
-
font:
|
|
990
|
-
},
|
|
989
|
+
font: Ft
|
|
990
|
+
}, z = {
|
|
991
991
|
name: "terminal",
|
|
992
992
|
background: "#0E0E0E",
|
|
993
993
|
text: "#C0C0C0",
|
|
@@ -1012,18 +1012,18 @@ var L = "#2eb88a", R = "#e85a67", Ft = [
|
|
|
1012
1012
|
sizeMedium: 12,
|
|
1013
1013
|
sizeLarge: 14
|
|
1014
1014
|
}
|
|
1015
|
-
},
|
|
1015
|
+
}, Rt = new Set([
|
|
1016
|
+
L.volumeUp,
|
|
1017
|
+
L.volumeDown,
|
|
1018
|
+
R.volumeUp,
|
|
1019
|
+
R.volumeDown,
|
|
1016
1020
|
z.volumeUp,
|
|
1017
|
-
z.volumeDown
|
|
1018
|
-
B.volumeUp,
|
|
1019
|
-
B.volumeDown,
|
|
1020
|
-
V.volumeUp,
|
|
1021
|
-
V.volumeDown
|
|
1021
|
+
z.volumeDown
|
|
1022
1022
|
]);
|
|
1023
|
-
function
|
|
1023
|
+
function B(e) {
|
|
1024
1024
|
let t = (e, t) => {
|
|
1025
|
-
if (!
|
|
1026
|
-
let n =
|
|
1025
|
+
if (!Rt.has(e)) return e;
|
|
1026
|
+
let n = P(t);
|
|
1027
1027
|
return n === t ? e : n;
|
|
1028
1028
|
};
|
|
1029
1029
|
return {
|
|
@@ -1033,23 +1033,23 @@ function Lt(e) {
|
|
|
1033
1033
|
}
|
|
1034
1034
|
//#endregion
|
|
1035
1035
|
//#region src/utils/chartStyle.ts
|
|
1036
|
-
var
|
|
1036
|
+
var zt = [
|
|
1037
1037
|
"solid",
|
|
1038
1038
|
"dashed",
|
|
1039
1039
|
"dotted"
|
|
1040
|
-
],
|
|
1040
|
+
], Bt = 20, Vt = 64, Ht = 2, Ut = [
|
|
1041
1041
|
/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,
|
|
1042
1042
|
/^[a-z]{3,30}$/i,
|
|
1043
1043
|
/^(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color)\([0-9a-z.,%/\s-]*\)$/i
|
|
1044
1044
|
];
|
|
1045
|
-
function
|
|
1046
|
-
return typeof e == "string" && e.length <=
|
|
1045
|
+
function V(e) {
|
|
1046
|
+
return typeof e == "string" && e.length <= Vt && Ut.some((t) => t.test(e.trim()));
|
|
1047
1047
|
}
|
|
1048
1048
|
function Wt(e, t) {
|
|
1049
1049
|
switch (e) {
|
|
1050
|
-
case "color": return
|
|
1051
|
-
case "lineStyle": return
|
|
1052
|
-
case "width": return typeof t == "number" && Number.isFinite(t) && t > 0 && t <=
|
|
1050
|
+
case "color": return V(t);
|
|
1051
|
+
case "lineStyle": return zt.includes(t);
|
|
1052
|
+
case "width": return typeof t == "number" && Number.isFinite(t) && t > 0 && t <= Bt;
|
|
1053
1053
|
case "boolean": return typeof t == "boolean";
|
|
1054
1054
|
}
|
|
1055
1055
|
}
|
|
@@ -1071,8 +1071,8 @@ function Kt(e) {
|
|
|
1071
1071
|
function qt(e) {
|
|
1072
1072
|
if (typeof e != "object" || !e || Array.isArray(e)) return null;
|
|
1073
1073
|
let { background: t, separator: n } = e, r = {
|
|
1074
|
-
...
|
|
1075
|
-
...
|
|
1074
|
+
...V(t) ? { background: t } : {},
|
|
1075
|
+
...V(n) ? { separator: n } : {}
|
|
1076
1076
|
};
|
|
1077
1077
|
return Object.keys(r).length > 0 ? r : null;
|
|
1078
1078
|
}
|
|
@@ -1083,7 +1083,7 @@ function Yt(e) {
|
|
|
1083
1083
|
for (let [n, r] of Object.entries(e)) {
|
|
1084
1084
|
if (!Jt.test(n) || typeof r != "object" || !r) continue;
|
|
1085
1085
|
let { lineStyle: e, visible: i } = r, a = {
|
|
1086
|
-
...
|
|
1086
|
+
...zt.includes(e) ? { lineStyle: e } : {},
|
|
1087
1087
|
...typeof i == "boolean" ? { visible: i } : {}
|
|
1088
1088
|
};
|
|
1089
1089
|
Object.keys(a).length > 0 && (t[n] = a);
|
|
@@ -1101,7 +1101,7 @@ function Zt(e, t, n) {
|
|
|
1101
1101
|
wickUp: r("wickUpColor") ?? t("series.candlestick.wickUpColor") ?? (i === void 0 ? e.candleUpWick : o),
|
|
1102
1102
|
wickDown: r("wickDownColor") ?? t("series.candlestick.wickDownColor") ?? (a === void 0 ? e.candleDownWick : s),
|
|
1103
1103
|
line: r("color") ?? r("lineColor") ?? t("series.line.color") ?? e.lineColor,
|
|
1104
|
-
lineWidth: r("lineWidth") ?? t("series.line.lineWidth") ??
|
|
1104
|
+
lineWidth: r("lineWidth") ?? t("series.line.lineWidth") ?? Ht,
|
|
1105
1105
|
top: r("topColor") ?? t("series.area.topColor") ?? e.areaTopColor,
|
|
1106
1106
|
bottom: r("bottomColor") ?? t("series.area.bottomColor") ?? e.areaBottomColor
|
|
1107
1107
|
};
|
|
@@ -1233,8 +1233,8 @@ var $t = {
|
|
|
1233
1233
|
"lastPrice.downColor": (e, t) => t.lastPrice.down,
|
|
1234
1234
|
"lastPrice.style": (e, t) => t.lastPrice.style,
|
|
1235
1235
|
"lastPrice.width": (e, t) => t.lastPrice.width,
|
|
1236
|
-
"volume.upColor": (e) =>
|
|
1237
|
-
"volume.downColor": (e) =>
|
|
1236
|
+
"volume.upColor": (e) => B(e).up,
|
|
1237
|
+
"volume.downColor": (e) => B(e).down,
|
|
1238
1238
|
"sessionBreaks.color": (e, t) => t.sessionBreaks.color,
|
|
1239
1239
|
"sessionBreaks.style": (e, t) => t.sessionBreaks.style,
|
|
1240
1240
|
"sessionBreaks.width": (e, t) => t.sessionBreaks.width,
|
|
@@ -1811,8 +1811,8 @@ function Pn(e) {
|
|
|
1811
1811
|
candleDown: q.down,
|
|
1812
1812
|
candleUpWick: q.up,
|
|
1813
1813
|
candleDownWick: q.down,
|
|
1814
|
-
volumeUp:
|
|
1815
|
-
volumeDown:
|
|
1814
|
+
volumeUp: P(q.up),
|
|
1815
|
+
volumeDown: P(q.down)
|
|
1816
1816
|
};
|
|
1817
1817
|
}
|
|
1818
1818
|
var Y = 1e-9;
|
|
@@ -1830,7 +1830,7 @@ function X(e, t, n = "nearest") {
|
|
|
1830
1830
|
let r = Fn(e, t);
|
|
1831
1831
|
if (r === void 0 || !Number.isFinite(e)) return e;
|
|
1832
1832
|
let i = e / r, a = n === "down" ? Math.floor(i + Y) : n === "up" ? Math.ceil(i - Y) : Math.round(i);
|
|
1833
|
-
return Number((a * r).toFixed(
|
|
1833
|
+
return Number((a * r).toFixed(mt(r)));
|
|
1834
1834
|
}
|
|
1835
1835
|
function Ln(e, t) {
|
|
1836
1836
|
if (!t.priceLimits?.enabled || !t.priceLimits.ceilingPercent) return null;
|
|
@@ -1883,7 +1883,7 @@ function Vn(e, t) {
|
|
|
1883
1883
|
return `${String(n).padStart(2, "0")}:${String(r).padStart(2, "0")}`;
|
|
1884
1884
|
}
|
|
1885
1885
|
function Hn(e, t = Date.now(), n) {
|
|
1886
|
-
if (n !== void 0 && !
|
|
1886
|
+
if (n !== void 0 && !Ee(n)) return null;
|
|
1887
1887
|
let r = Vn(t, n);
|
|
1888
1888
|
for (let t of e) if (r >= t.startTime && r < t.endTime) return t;
|
|
1889
1889
|
return null;
|
|
@@ -1913,6 +1913,549 @@ function Kn(e, t) {
|
|
|
1913
1913
|
return s;
|
|
1914
1914
|
}
|
|
1915
1915
|
//#endregion
|
|
1916
|
-
|
|
1916
|
+
//#region src/icons/iconSet.ts
|
|
1917
|
+
var qn = {
|
|
1918
|
+
cursor: { d: "M6 3.5L18.5 12.5L12.6 13.6L9.7 19.4z" },
|
|
1919
|
+
trendingUp: { d: "M3 17L9 11L13 14.5L21 6.5M15 6.5H21V12.5" },
|
|
1920
|
+
trendingDown: { d: "M3 7L9 13L13 9.5L21 17.5M15 17.5H21V11.5" },
|
|
1921
|
+
minus: { d: "M5 12H19" },
|
|
1922
|
+
plus: { d: "M12 5V19M5 12H19" },
|
|
1923
|
+
penLine: { d: "M14.5 5.5L18.5 9.5M4 20L5 15.5L15.8 4.7a2 2 0 0 1 2.83 0l.67.67a2 2 0 0 1 0 2.83L8.5 19z" },
|
|
1924
|
+
zigzag: { d: "M3 17L8 9L13 15L21 6" },
|
|
1925
|
+
hash: { d: "M5 9H19M5 15H19M10 4L8.5 20M15.5 4L14 20" },
|
|
1926
|
+
square: { d: "M6.5 4.5h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-11a2 2 0 0 1-2-2v-11a2 2 0 0 1 2-2z" },
|
|
1927
|
+
gitBranch: { d: "M6 3V15M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM18 9a9 9 0 0 1-9 9" },
|
|
1928
|
+
ruler: { d: "M3.5 16.5L16.5 3.5L20.5 7.5L7.5 20.5zM6.5 13.5L8 15M9.5 10.5L11.5 12.5M12.5 7.5L14 9" },
|
|
1929
|
+
type: { d: "M6 6V4.5H18V6M12 4.5V19.5M9.5 19.5H14.5" },
|
|
1930
|
+
magnet: { d: "M6 4V11a6 6 0 0 0 12 0V4M6 4h3.5v7a2.5 2.5 0 0 0 5 0V4H18M6 8h3.5M14.5 8H18" },
|
|
1931
|
+
magnetStrong: {
|
|
1932
|
+
d: "M6 4V11a6 6 0 0 0 12 0V4M6 4h3.5v7a2.5 2.5 0 0 0 5 0V4H18",
|
|
1933
|
+
fills: ["M6 4h3.5v4H6z", "M14.5 4H18v4h-3.5z"]
|
|
1934
|
+
},
|
|
1935
|
+
eraser: { d: "M8.5 19.5L3.9 14.9a1.5 1.5 0 0 1 0-2.1l8.5-8.5a1.5 1.5 0 0 1 2.1 0l5.2 5.2a1.5 1.5 0 0 1 0 2.1L12 19.5zM8 9l7 7M12 19.5H20" },
|
|
1936
|
+
zoomIn: { d: "M16.5 10.5a6 6 0 1 1-12 0 6 6 0 0 1 12 0zM15 15L20.5 20.5M10.5 7.5V13.5M7.5 10.5H13.5" },
|
|
1937
|
+
undo: { d: "M9 14L4 9L9 4M4 9H14.5a5.5 5.5 0 0 1 0 11H11" },
|
|
1938
|
+
redo: { d: "M15 14L20 9L15 4M20 9H9.5a5.5 5.5 0 0 0 0 11H13" },
|
|
1939
|
+
trash: { d: "M4 7H20M9.5 7V4.5h5V7M6.5 7l.8 12.2A1.5 1.5 0 0 0 8.8 20.6h6.4a1.5 1.5 0 0 0 1.5-1.4L17.5 7M10 11v6M14 11v6" },
|
|
1940
|
+
camera: { d: "M4.5 7.5h3L9 5h6l1.5 2.5h3A1.5 1.5 0 0 1 21 9v9.5a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 3 18.5V9a1.5 1.5 0 0 1 1.5-1.5zM15.5 13.5a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0z" },
|
|
1941
|
+
settings: { d: "M4 7H14M18 7H20M4 17H8M12 17H20M18 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM12 17a2 2 0 1 1-4 0 2 2 0 0 1 4 0z" },
|
|
1942
|
+
moon: { d: "M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z" },
|
|
1943
|
+
sun: { d: "M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0zM12 2.5v2M12 19.5v2M4.6 4.6l1.4 1.4M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4L6 18M18 6l1.4-1.4" },
|
|
1944
|
+
chevronDown: { d: "M6 9L12 15L18 9" },
|
|
1945
|
+
chevronUp: { d: "M6 15L12 9L18 15" },
|
|
1946
|
+
barChart: { d: "M5 20V13M12 20V5M19 20V10" },
|
|
1947
|
+
x: { d: "M6 6L18 18M18 6L6 18" },
|
|
1948
|
+
play: { d: "M7 4.5v15L19.5 12z" },
|
|
1949
|
+
pause: { d: "M8 5V19M16 5V19" },
|
|
1950
|
+
stop: { d: "M7.5 6h9A1.5 1.5 0 0 1 18 7.5v9a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 16.5v-9A1.5 1.5 0 0 1 7.5 6z" },
|
|
1951
|
+
receipt: { d: "M6 3.5h12v17l-2-1.25-2 1.25-2-1.25-2 1.25-2-1.25-2 1.25zM9 8h6M9 12h6M9 16h3" },
|
|
1952
|
+
bell: { d: "M6 16.5V11a6 6 0 0 1 12 0v5.5l1.5 2H4.5zM10 20.5a2.2 2.2 0 0 0 4 0" },
|
|
1953
|
+
layers: { d: "M12 3.5L21 8.5L12 13.5L3 8.5zM3 12.5L12 17.5L21 12.5M3 16.5L12 21.5L21 16.5" },
|
|
1954
|
+
eye: { d: "M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12zM15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0z" },
|
|
1955
|
+
eyeOff: { d: "M4 4L20 20M9.9 5.8A9.6 9.6 0 0 1 12 5.5c6 0 9.5 6.5 9.5 6.5a16 16 0 0 1-2.3 3.1M6.6 7.1C3.9 8.9 2.5 12 2.5 12S6 18.5 12 18.5a9.3 9.3 0 0 0 4.7-1.3M10 10.1a3 3 0 0 0 4 4" },
|
|
1956
|
+
lock: { d: "M7 10.5h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zM8 10.5V7.5a4 4 0 0 1 8 0v3" },
|
|
1957
|
+
unlock: { d: "M7 10.5h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zM8 10.5V7.5a4 4 0 0 1 7.7-1.5" },
|
|
1958
|
+
palette: {
|
|
1959
|
+
d: "M12 3.5a8.5 8.5 0 0 0 0 17c1.1 0 1.6-.8 1.6-1.6 0-.5-.2-.9-.5-1.2a1.6 1.6 0 0 1 1.2-2.7h1.9a4.3 4.3 0 0 0 4.3-4.3C20.5 6.9 16.7 3.5 12 3.5z",
|
|
1960
|
+
dots: [
|
|
1961
|
+
[
|
|
1962
|
+
7.5,
|
|
1963
|
+
11.5,
|
|
1964
|
+
1.25
|
|
1965
|
+
],
|
|
1966
|
+
[
|
|
1967
|
+
9.5,
|
|
1968
|
+
7.75,
|
|
1969
|
+
1.25
|
|
1970
|
+
],
|
|
1971
|
+
[
|
|
1972
|
+
14,
|
|
1973
|
+
7.25,
|
|
1974
|
+
1.25
|
|
1975
|
+
]
|
|
1976
|
+
]
|
|
1977
|
+
},
|
|
1978
|
+
check: { d: "M5 12.5L10 17.5L19 7" },
|
|
1979
|
+
maximize: { d: "M8 4H5a1 1 0 0 0-1 1v3M16 4h3a1 1 0 0 1 1 1v3M20 16v3a1 1 0 0 1-1 1h-3M8 20H5a1 1 0 0 1-1-1v-3" },
|
|
1980
|
+
minimize: { d: "M4 8h3a1 1 0 0 0 1-1V4M16 4v3a1 1 0 0 0 1 1h3M20 16h-3a1 1 0 0 0-1 1v3M8 20v-3a1 1 0 0 0-1-1H4" },
|
|
1981
|
+
repeat: { d: "M17 3.5L20.5 7L17 10.5M3.5 11.5V10a3 3 0 0 1 3-3h14M7 20.5L3.5 17L7 13.5M20.5 12.5V14a3 3 0 0 1-3 3h-14" },
|
|
1982
|
+
info: {
|
|
1983
|
+
d: "M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zM12 11V16.5",
|
|
1984
|
+
dots: [[
|
|
1985
|
+
12,
|
|
1986
|
+
7.75,
|
|
1987
|
+
1.25
|
|
1988
|
+
]]
|
|
1989
|
+
},
|
|
1990
|
+
chevronLeft: { d: "M15 5L8 12L15 19" },
|
|
1991
|
+
chevronRight: { d: "M9 5L16 12L9 19" },
|
|
1992
|
+
reset: { d: "M4.5 12a7.5 7.5 0 1 0 2.2-5.3M4.5 4v4.5H9" },
|
|
1993
|
+
calendar: { d: "M5.5 5h13a2 2 0 0 1 2 2v11.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2zM3.5 10H20.5M8 3V7M16 3V7" },
|
|
1994
|
+
star: { d: "M12 3.5L14.6 9L20.5 9.6L16 13.6L17.3 19.5L12 16.5L6.7 19.5L8 13.6L3.5 9.6L9.4 9z" },
|
|
1995
|
+
pin: { d: "M8 3.5h8M9.5 3.5v5.5L5.5 14h13l-4-5v-5.5M12 14v6.5" },
|
|
1996
|
+
search: { d: "M16.5 10.5a6 6 0 1 1-12 0 6 6 0 0 1 12 0zM15 15L20.5 20.5" },
|
|
1997
|
+
enter: { d: "M19 5v6.5a3 3 0 0 1-3 3H5.5M9.5 10L5 14.5L9.5 19" },
|
|
1998
|
+
stepBack: { d: "M6 5v14M18.5 5.5v13L8.5 12z" },
|
|
1999
|
+
stepForward: { d: "M18 5v14M5.5 5.5v13l10-6.5z" },
|
|
2000
|
+
ladder: { d: "M4 6H11M13 6H17M6 10H11M13 10H20M8 14H11M13 14H15M5 18H11M13 18H19" },
|
|
2001
|
+
save: { d: "M5.5 3.5h10.5l4.5 4.5v10.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2zM8 3.5v5h7v-5M7.5 20.5v-6h9v6" },
|
|
2002
|
+
folder: { d: "M3.5 7a2 2 0 0 1 2-2h4l2 2.5h7a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z" },
|
|
2003
|
+
link: { d: "M10 14a4 4 0 0 0 5.66 0l3-3a4 4 0 0 0-5.66-5.66l-1.2 1.2M14 10a4 4 0 0 0-5.66 0l-3 3a4 4 0 0 0 5.66 5.66l1.2-1.2" },
|
|
2004
|
+
arrowUp: { d: "M12 19V5M6 11L12 5L18 11" },
|
|
2005
|
+
arrowDown: { d: "M12 5V19M6 13L12 19L18 13" },
|
|
2006
|
+
more: { dots: [
|
|
2007
|
+
[
|
|
2008
|
+
6,
|
|
2009
|
+
12,
|
|
2010
|
+
1.6
|
|
2011
|
+
],
|
|
2012
|
+
[
|
|
2013
|
+
12,
|
|
2014
|
+
12,
|
|
2015
|
+
1.6
|
|
2016
|
+
],
|
|
2017
|
+
[
|
|
2018
|
+
18,
|
|
2019
|
+
12,
|
|
2020
|
+
1.6
|
|
2021
|
+
]
|
|
2022
|
+
] },
|
|
2023
|
+
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" }
|
|
2024
|
+
}, Jn = {
|
|
2025
|
+
trendLine: {
|
|
2026
|
+
d: "M5 18L19 6",
|
|
2027
|
+
dots: [[5, 18], [19, 6]]
|
|
2028
|
+
},
|
|
2029
|
+
ray: {
|
|
2030
|
+
d: "M5 17L21 5M17.5 4.81L21 5L20.2 8.41",
|
|
2031
|
+
dots: [[5, 17], [11, 12.5]]
|
|
2032
|
+
},
|
|
2033
|
+
extendedLine: {
|
|
2034
|
+
d: "M3 18.5L21 5M17.5 4.81L21 5L20.2 8.41M6.5 18.69L3 18.5L3.8 15.09",
|
|
2035
|
+
dots: [[9, 14], [15, 9.5]]
|
|
2036
|
+
},
|
|
2037
|
+
infoLine: {
|
|
2038
|
+
d: "M5 20L19 10M4.5 3.5h9a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zM6.5 6.5h5",
|
|
2039
|
+
dots: [[5, 20], [19, 10]]
|
|
2040
|
+
},
|
|
2041
|
+
trendAngle: {
|
|
2042
|
+
d: "M5 18L19 7M5 18H20M11 18A6 6 0 0 0 9.71 14.29",
|
|
2043
|
+
dots: [[5, 18], [19, 7]]
|
|
2044
|
+
},
|
|
2045
|
+
horizontalLine: {
|
|
2046
|
+
d: "M3 12H21",
|
|
2047
|
+
dots: [[12, 12]]
|
|
2048
|
+
},
|
|
2049
|
+
horizontalRay: {
|
|
2050
|
+
d: "M7 12H21M18.5 9.5L21 12L18.5 14.5",
|
|
2051
|
+
dots: [[7, 12]]
|
|
2052
|
+
},
|
|
2053
|
+
verticalLine: {
|
|
2054
|
+
d: "M12 3V21",
|
|
2055
|
+
dots: [[12, 12]]
|
|
2056
|
+
},
|
|
2057
|
+
crossLine: {
|
|
2058
|
+
d: "M3 12H21M12 3V21",
|
|
2059
|
+
dots: [[12, 12]]
|
|
2060
|
+
},
|
|
2061
|
+
parallelChannel: {
|
|
2062
|
+
d: "M3 15L15 5M9 19L21 9",
|
|
2063
|
+
dots: [
|
|
2064
|
+
[3, 15],
|
|
2065
|
+
[15, 5],
|
|
2066
|
+
[9, 19]
|
|
2067
|
+
]
|
|
2068
|
+
},
|
|
2069
|
+
regressionChannel: {
|
|
2070
|
+
d: "M3 12L21 4M3 20L21 12",
|
|
2071
|
+
dash: "M3 16L21 8",
|
|
2072
|
+
dots: [[3, 16], [21, 8]]
|
|
2073
|
+
},
|
|
2074
|
+
fibRetracement: {
|
|
2075
|
+
d: "M3 4H21M3 9H21M3 13H21M3 20H21",
|
|
2076
|
+
dots: [[5, 20], [19, 4]]
|
|
2077
|
+
},
|
|
2078
|
+
fibExtension: {
|
|
2079
|
+
d: "M3 20L8 10L12 16M14 4H21M14 8H21M14 12H21",
|
|
2080
|
+
dots: [
|
|
2081
|
+
[3, 20],
|
|
2082
|
+
[8, 10],
|
|
2083
|
+
[12, 16]
|
|
2084
|
+
]
|
|
2085
|
+
},
|
|
2086
|
+
fibChannel: {
|
|
2087
|
+
d: "M3 9L21 3M3 13L21 7M3 16L21 10M3 21L21 15",
|
|
2088
|
+
dots: [
|
|
2089
|
+
[3, 21],
|
|
2090
|
+
[21, 15],
|
|
2091
|
+
[3, 9]
|
|
2092
|
+
]
|
|
2093
|
+
},
|
|
2094
|
+
fibTimeZones: {
|
|
2095
|
+
d: "M3 4V20M6 4V20M9.5 4V20M14 4V20M20.5 4V20",
|
|
2096
|
+
dots: [[3, 20], [6, 20]]
|
|
2097
|
+
},
|
|
2098
|
+
fibSpeedResistanceFan: {
|
|
2099
|
+
d: "M4 20L20 4M4 20L20 11M4 20L20 16M4 20L11 4",
|
|
2100
|
+
dash: "M4 4H20V20",
|
|
2101
|
+
dots: [[4, 20], [20, 4]]
|
|
2102
|
+
},
|
|
2103
|
+
rectangle: {
|
|
2104
|
+
d: "M5.5 6h13A1.5 1.5 0 0 1 20 7.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 16.5v-9A1.5 1.5 0 0 1 5.5 6z",
|
|
2105
|
+
dots: [[4, 6], [20, 18]]
|
|
2106
|
+
},
|
|
2107
|
+
circle: {
|
|
2108
|
+
d: "M19.5 12a7.5 7.5 0 1 1-15 0 7.5 7.5 0 0 1 15 0z",
|
|
2109
|
+
dots: [[12, 12], [19.5, 12]]
|
|
2110
|
+
},
|
|
2111
|
+
ellipse: {
|
|
2112
|
+
d: "M20.5 12c0 3-3.8 5.5-8.5 5.5S3.5 15 3.5 12 7.3 6.5 12 6.5s8.5 2.5 8.5 5.5z",
|
|
2113
|
+
dots: [[3.5, 12], [20.5, 12]]
|
|
2114
|
+
},
|
|
2115
|
+
triangle: {
|
|
2116
|
+
d: "M12 4.5L20 19H4z",
|
|
2117
|
+
dots: [
|
|
2118
|
+
[12, 4.5],
|
|
2119
|
+
[20, 19],
|
|
2120
|
+
[4, 19]
|
|
2121
|
+
]
|
|
2122
|
+
},
|
|
2123
|
+
pitchfork: {
|
|
2124
|
+
d: "M4 20L16.75 3M7 9L11.5 3M13 15L21 4.33M7 9L13 15",
|
|
2125
|
+
dots: [
|
|
2126
|
+
[4, 20],
|
|
2127
|
+
[7, 9],
|
|
2128
|
+
[13, 15]
|
|
2129
|
+
]
|
|
2130
|
+
},
|
|
2131
|
+
schiffPitchfork: {
|
|
2132
|
+
d: "M4 14.5L21 7.42M7 9L21 3.17M13 15L21 11.67M7 9L13 15",
|
|
2133
|
+
dash: "M4 20V14.5",
|
|
2134
|
+
dots: [
|
|
2135
|
+
[4, 14.5],
|
|
2136
|
+
[7, 9],
|
|
2137
|
+
[13, 15]
|
|
2138
|
+
]
|
|
2139
|
+
},
|
|
2140
|
+
modifiedSchiffPitchfork: {
|
|
2141
|
+
d: "M5.5 14.5L21 5.89M7 9L17.8 3M13 15L21 10.56M7 9L13 15",
|
|
2142
|
+
dash: "M4 20L5.5 14.5",
|
|
2143
|
+
dots: [
|
|
2144
|
+
[5.5, 14.5],
|
|
2145
|
+
[7, 9],
|
|
2146
|
+
[13, 15]
|
|
2147
|
+
]
|
|
2148
|
+
},
|
|
2149
|
+
gannFan: {
|
|
2150
|
+
d: "M4 20L20 4M4 20L20 12M4 20L12 4M4 20L20 16.5M4 20L7.5 4",
|
|
2151
|
+
dots: [[4, 20], [20, 4]]
|
|
2152
|
+
},
|
|
2153
|
+
gannBox: {
|
|
2154
|
+
d: "M4 4H20V20H4zM4 20L20 4M4 4L20 20M12 4V20",
|
|
2155
|
+
dots: [[4, 20], [20, 4]]
|
|
2156
|
+
},
|
|
2157
|
+
cyclicLines: {
|
|
2158
|
+
d: "M4 4V20M9 4V20M14 4V20M19 4V20",
|
|
2159
|
+
dots: [[4, 20], [9, 20]]
|
|
2160
|
+
},
|
|
2161
|
+
xabcdPattern: {
|
|
2162
|
+
d: "M3 18L7 6L11 13L15 8L21 19",
|
|
2163
|
+
dash: "M3 18L11 13L21 19",
|
|
2164
|
+
dots: [
|
|
2165
|
+
[3, 18],
|
|
2166
|
+
[7, 6],
|
|
2167
|
+
[11, 13],
|
|
2168
|
+
[15, 8],
|
|
2169
|
+
[21, 19]
|
|
2170
|
+
]
|
|
2171
|
+
},
|
|
2172
|
+
abcdPattern: {
|
|
2173
|
+
d: "M4 19L9 8L13 14L20 4",
|
|
2174
|
+
dots: [
|
|
2175
|
+
[4, 19],
|
|
2176
|
+
[9, 8],
|
|
2177
|
+
[13, 14],
|
|
2178
|
+
[20, 4]
|
|
2179
|
+
]
|
|
2180
|
+
},
|
|
2181
|
+
headAndShoulders: {
|
|
2182
|
+
d: "M3 19L6 11L8.5 15L12 5L15.5 15L18 11L21 19",
|
|
2183
|
+
dash: "M4.5 15H19.5",
|
|
2184
|
+
dots: [
|
|
2185
|
+
[6, 11],
|
|
2186
|
+
[12, 5],
|
|
2187
|
+
[18, 11]
|
|
2188
|
+
]
|
|
2189
|
+
},
|
|
2190
|
+
elliottWave: {
|
|
2191
|
+
d: "M3 19L6 13L8.5 16L14 6L16 10L21 4",
|
|
2192
|
+
dots: [[3, 19], [21, 4]]
|
|
2193
|
+
},
|
|
2194
|
+
priceRange: { d: "M5 4H19M5 20H19M12 6.5V17.5M9 9.5L12 6.5L15 9.5M9 14.5L12 17.5L15 14.5" },
|
|
2195
|
+
dateRange: { d: "M4 5V19M20 5V19M6.5 12H17.5M9.5 9L6.5 12L9.5 15M14.5 9L17.5 12L14.5 15" },
|
|
2196
|
+
dateAndPriceRange: {
|
|
2197
|
+
d: "M6 18V4M3 7L6 4L9 7M6 18H20M17 15L20 18L17 21",
|
|
2198
|
+
dash: "M6 4H20V18"
|
|
2199
|
+
},
|
|
2200
|
+
measure: { d: "M3.5 16.5L16.5 3.5L20.5 7.5L7.5 20.5zM6.5 13.5L8 15M9.5 10.5L11.5 12.5M12.5 7.5L14 9" },
|
|
2201
|
+
text: { d: "M6 6V4.5H18V6M12 4.5V19.5M9.5 19.5H14.5" },
|
|
2202
|
+
priceLabel: { d: "M9 5H19a1.5 1.5 0 0 1 1.5 1.5v11A1.5 1.5 0 0 1 19 19H9L3.5 12zM11 12H17" },
|
|
2203
|
+
arrow: { d: "M5 19L19 5M10 5H19V14" },
|
|
2204
|
+
riskReward: {
|
|
2205
|
+
d: "M5 12V4H19V12M3 12H21",
|
|
2206
|
+
dash: "M5 12V18H19V12",
|
|
2207
|
+
dots: [[5, 12]]
|
|
2208
|
+
},
|
|
2209
|
+
anchoredVWAP: {
|
|
2210
|
+
d: "M4 18C9 17 12 10 20 7M4 20.5V18",
|
|
2211
|
+
dots: [[4, 18]]
|
|
2212
|
+
},
|
|
2213
|
+
volumeProfileRange: {
|
|
2214
|
+
d: "M6 7H12M6 10.5H17M6 14H15M6 17.5H10",
|
|
2215
|
+
dash: "M3.5 4V20M20.5 4V20",
|
|
2216
|
+
dots: [[3.5, 20], [20.5, 20]]
|
|
2217
|
+
},
|
|
2218
|
+
note: { d: "M5.5 4.5h13v9l-5 5h-8zM13.5 18.5v-5h5M8.5 8.5h7M8.5 11.5h4" },
|
|
2219
|
+
callout: {
|
|
2220
|
+
d: "M10.5 4h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM12 12L5 19M12.5 8h5",
|
|
2221
|
+
dots: [[5, 19]]
|
|
2222
|
+
},
|
|
2223
|
+
flag: {
|
|
2224
|
+
d: "M6 21V4M6 4.5h11l-2.5 3.75L17 12H6",
|
|
2225
|
+
soft: "M6 4.5h11l-2.5 3.75L17 12H6z",
|
|
2226
|
+
dots: [[6, 21]]
|
|
2227
|
+
},
|
|
2228
|
+
arrowMark: { d: "M12 4L18 11H14.5V20H9.5V11H6z" },
|
|
2229
|
+
icon: { d: "M12 3.5l2.6 5.3 5.9.85-4.25 4.15 1 5.85L12 16.9l-5.25 2.75 1-5.85L3.5 9.65l5.9-.85z" },
|
|
2230
|
+
brush: { d: "M3.5 17c2.5 0 3-5 6-5s2.5 5 5.5 5 3.5-6 5.5-9" },
|
|
2231
|
+
highlighter: { d: "M14.5 4.5l5 5L11 18H6v-5zM12 7l5 5M4 21h8" },
|
|
2232
|
+
path: {
|
|
2233
|
+
d: "M4 18L9 10L14 14L20 6M16.2 6.6L20 6L19.6 9.8",
|
|
2234
|
+
dots: [
|
|
2235
|
+
[4, 18],
|
|
2236
|
+
[9, 10],
|
|
2237
|
+
[14, 14]
|
|
2238
|
+
]
|
|
2239
|
+
},
|
|
2240
|
+
polyline: {
|
|
2241
|
+
d: "M5 17L8 6L16 4L20 14L12 20z",
|
|
2242
|
+
soft: "M5 17L8 6L16 4L20 14L12 20z",
|
|
2243
|
+
dots: [
|
|
2244
|
+
[5, 17],
|
|
2245
|
+
[8, 6],
|
|
2246
|
+
[16, 4],
|
|
2247
|
+
[20, 14],
|
|
2248
|
+
[12, 20]
|
|
2249
|
+
]
|
|
2250
|
+
},
|
|
2251
|
+
curve: {
|
|
2252
|
+
d: "M4 18C8 4 16 4 20 18",
|
|
2253
|
+
dots: [
|
|
2254
|
+
[4, 18],
|
|
2255
|
+
[20, 18],
|
|
2256
|
+
[12, 7.5]
|
|
2257
|
+
]
|
|
2258
|
+
},
|
|
2259
|
+
arc: {
|
|
2260
|
+
d: "M4 17a8 8 0 0 1 16 0",
|
|
2261
|
+
dots: [
|
|
2262
|
+
[4, 17],
|
|
2263
|
+
[20, 17],
|
|
2264
|
+
[12, 9]
|
|
2265
|
+
]
|
|
2266
|
+
},
|
|
2267
|
+
fibCircles: {
|
|
2268
|
+
d: "M14 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM16.5 12a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0zM20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z",
|
|
2269
|
+
dots: [[12, 12], [20, 12]]
|
|
2270
|
+
},
|
|
2271
|
+
fibSpiral: {
|
|
2272
|
+
d: "M12 12a1.5 1.5 0 0 1 1.5 1.5 3 3 0 0 1-3 3A4.5 4.5 0 0 1 6 12a6 6 0 0 1 6-6 8 8 0 0 1 8 8",
|
|
2273
|
+
dots: [[12, 12]]
|
|
2274
|
+
},
|
|
2275
|
+
fibArcs: {
|
|
2276
|
+
d: "M10 20a6 6 0 0 0-6-6M14 20a10 10 0 0 0-10-10M18 20a14 14 0 0 0-14-14",
|
|
2277
|
+
dash: "M4 20L18 6",
|
|
2278
|
+
dots: [[4, 20], [18, 6]]
|
|
2279
|
+
},
|
|
2280
|
+
fibWedge: {
|
|
2281
|
+
d: "M4 19L20 7M4 19L20 16M10.4 14.2A8 8 0 0 1 11.86 17.53M14.4 11.2A13 13 0 0 1 16.78 16.6",
|
|
2282
|
+
dots: [
|
|
2283
|
+
[4, 19],
|
|
2284
|
+
[20, 7],
|
|
2285
|
+
[20, 16]
|
|
2286
|
+
]
|
|
2287
|
+
},
|
|
2288
|
+
pitchfan: {
|
|
2289
|
+
d: "M4 20L14 4M4 20L20 14M4 20L17 9",
|
|
2290
|
+
dash: "M14 4L20 14",
|
|
2291
|
+
dots: [
|
|
2292
|
+
[4, 20],
|
|
2293
|
+
[14, 4],
|
|
2294
|
+
[20, 14]
|
|
2295
|
+
]
|
|
2296
|
+
},
|
|
2297
|
+
gannSquare: {
|
|
2298
|
+
d: "M4 4H20V20H4zM4 20L20 4M4 12H20M12 4V20M4 12a8 8 0 0 1 8 8",
|
|
2299
|
+
dots: [[4, 20], [20, 4]]
|
|
2300
|
+
},
|
|
2301
|
+
elliottImpulse: {
|
|
2302
|
+
d: "M3 19L7 12L10 15L15 5L17.5 9L21 3",
|
|
2303
|
+
dots: [[3, 19], [21, 3]]
|
|
2304
|
+
},
|
|
2305
|
+
elliottCorrection: {
|
|
2306
|
+
d: "M4 5L10 17L14 11L20 20",
|
|
2307
|
+
dots: [[4, 5], [20, 20]]
|
|
2308
|
+
},
|
|
2309
|
+
elliottTriangle: {
|
|
2310
|
+
d: "M3 6L7 17L11 9L15 15L18 11L21 13",
|
|
2311
|
+
dots: [[3, 6], [21, 13]]
|
|
2312
|
+
},
|
|
2313
|
+
elliottDoubleCombo: {
|
|
2314
|
+
d: "M4 5L9 14L13 9L20 19",
|
|
2315
|
+
dots: [
|
|
2316
|
+
[4, 5],
|
|
2317
|
+
[9, 14],
|
|
2318
|
+
[13, 9],
|
|
2319
|
+
[20, 19]
|
|
2320
|
+
]
|
|
2321
|
+
},
|
|
2322
|
+
elliottTripleCombo: {
|
|
2323
|
+
d: "M3 5L7 13L10 9L14 16L17 12L21 20",
|
|
2324
|
+
dots: [[3, 5], [21, 20]]
|
|
2325
|
+
},
|
|
2326
|
+
threeDrives: {
|
|
2327
|
+
d: "M3 20L7 12L9.5 15L14 7L16.5 10L21 3",
|
|
2328
|
+
dash: "M7 12L14 7L21 3",
|
|
2329
|
+
dots: [
|
|
2330
|
+
[7, 12],
|
|
2331
|
+
[14, 7],
|
|
2332
|
+
[21, 3]
|
|
2333
|
+
]
|
|
2334
|
+
},
|
|
2335
|
+
cypherPattern: {
|
|
2336
|
+
d: "M3 19L7 9L10 14L15 5L20 16",
|
|
2337
|
+
dash: "M3 19L10 14L20 16",
|
|
2338
|
+
dots: [
|
|
2339
|
+
[3, 19],
|
|
2340
|
+
[7, 9],
|
|
2341
|
+
[10, 14],
|
|
2342
|
+
[15, 5],
|
|
2343
|
+
[20, 16]
|
|
2344
|
+
]
|
|
2345
|
+
},
|
|
2346
|
+
timeCycles: {
|
|
2347
|
+
d: "M3 18a4.5 4.5 0 0 1 9 0a4.5 4.5 0 0 1 9 0",
|
|
2348
|
+
dots: [[3, 18], [12, 18]]
|
|
2349
|
+
},
|
|
2350
|
+
sineLine: {
|
|
2351
|
+
d: "M3 12C5 5 7.5 5 9 12S13 19 15 12 19.5 5 21 12",
|
|
2352
|
+
dots: [[6, 6.75], [12, 17.25]]
|
|
2353
|
+
},
|
|
2354
|
+
forecast: {
|
|
2355
|
+
d: "M4 18L15.2 7.8M19.5 6a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0z",
|
|
2356
|
+
dots: [[4, 18]]
|
|
2357
|
+
},
|
|
2358
|
+
projection: {
|
|
2359
|
+
d: "M12 19L18 11M15.2 11.3L18 11L17.8 13.8",
|
|
2360
|
+
dash: "M3 17L9 9",
|
|
2361
|
+
dots: [
|
|
2362
|
+
[3, 17],
|
|
2363
|
+
[9, 9],
|
|
2364
|
+
[12, 19]
|
|
2365
|
+
]
|
|
2366
|
+
},
|
|
2367
|
+
barsPattern: {
|
|
2368
|
+
d: "M5 6V14M9 9V18M15 4V12M19 7V16",
|
|
2369
|
+
fills: [
|
|
2370
|
+
"M4 8h2v4H4z",
|
|
2371
|
+
"M8 11h2v5H8z",
|
|
2372
|
+
"M14 6h2v4h-2z",
|
|
2373
|
+
"M18 9h2v5h-2z"
|
|
2374
|
+
],
|
|
2375
|
+
dash: "M12 3V21"
|
|
2376
|
+
}
|
|
2377
|
+
}, Yn = {
|
|
2378
|
+
candlestick: {
|
|
2379
|
+
d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19",
|
|
2380
|
+
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"]
|
|
2381
|
+
},
|
|
2382
|
+
hollowCandle: { d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19M6.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-1zM14.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" },
|
|
2383
|
+
heikinAshi: {
|
|
2384
|
+
d: "M5.5 9.5V12M5.5 18V20M12 5.5V8M12 14V16M18.5 3V4.5M18.5 10.5V12.5",
|
|
2385
|
+
fills: [
|
|
2386
|
+
"M4 12h3a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5v-5A.5.5 0 0 1 4 12z",
|
|
2387
|
+
"M10.5 8h3a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-5a.5.5 0 0 1 .5-.5z",
|
|
2388
|
+
"M17 4.5h3a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5z"
|
|
2389
|
+
]
|
|
2390
|
+
},
|
|
2391
|
+
bar: { d: "M8 4V20M5 8H8M8 16H11M16 6V18M13 15H16M16 9H19" },
|
|
2392
|
+
volumeCandles: {
|
|
2393
|
+
d: "M6.5 5V8M6.5 16V19M15.5 3.5V6M15.5 16V20",
|
|
2394
|
+
fills: ["M5.5 8h2a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1-.5-.5v-7a.5.5 0 0 1 .5-.5z", "M11.5 6h8a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5z"]
|
|
2395
|
+
},
|
|
2396
|
+
equivolume: { d: "M4.5 10h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM10 6h5a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zM18.5 4h1a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z" },
|
|
2397
|
+
line: { d: "M3 17L8 11L12 14L21 5" },
|
|
2398
|
+
area: {
|
|
2399
|
+
d: "M3 17L8 11L12 14L21 5",
|
|
2400
|
+
soft: "M3 17L8 11L12 14L21 5V20H3z"
|
|
2401
|
+
},
|
|
2402
|
+
baseline: {
|
|
2403
|
+
d: "M3 16L7 9L11 14L15 7L21 15",
|
|
2404
|
+
dash: "M3 12H21"
|
|
2405
|
+
},
|
|
2406
|
+
hlcArea: {
|
|
2407
|
+
d: "M3 9L8 6L13 9L21 4M3 15L8 13L13 16L21 11",
|
|
2408
|
+
dash: "M3 12L8 9.5L13 12.5L21 7.5",
|
|
2409
|
+
soft: "M3 9L8 6L13 9L21 4V11L13 16L8 13L3 15z"
|
|
2410
|
+
},
|
|
2411
|
+
stepLine: { d: "M3 18H8V12H12V15H16V7H21" },
|
|
2412
|
+
lineWithMarkers: {
|
|
2413
|
+
d: "M4 17L9 10L14 14L20 6",
|
|
2414
|
+
dots: [
|
|
2415
|
+
[4, 17],
|
|
2416
|
+
[9, 10],
|
|
2417
|
+
[14, 14],
|
|
2418
|
+
[20, 6]
|
|
2419
|
+
]
|
|
2420
|
+
},
|
|
2421
|
+
hiLo: {
|
|
2422
|
+
d: "M6 7V17M12 4V14M18 9V20",
|
|
2423
|
+
fills: [
|
|
2424
|
+
"M5 7h2v10H5z",
|
|
2425
|
+
"M11 4h2v10h-2z",
|
|
2426
|
+
"M17 9h2v11h-2z"
|
|
2427
|
+
]
|
|
2428
|
+
},
|
|
2429
|
+
renko: { d: "M3.5 15.5h4v4h-4zM7.5 11.5h4v4h-4zM11.5 7.5h4v4h-4zM15.5 11.5h4v4h-4z" },
|
|
2430
|
+
lineBreak: {
|
|
2431
|
+
d: "M4 14h4v5H4zM8 10h4v4H8zM16 9h4v8h-4z",
|
|
2432
|
+
fills: ["M12 5h4v5h-4z"]
|
|
2433
|
+
},
|
|
2434
|
+
kagi: { d: "M4 19V11H9V16H14V5H20V13" },
|
|
2435
|
+
pointAndFigure: { d: "M5.5 5.5l3 3M8.5 5.5l-3 3M5.5 10.5l3 3M8.5 10.5l-3 3M5.5 15.5l3 3M8.5 15.5l-3 3M14.5 9a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0M14.5 14a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0" },
|
|
2436
|
+
rangeBars: {
|
|
2437
|
+
d: "M6.5 11V12M6.5 18V19M12 7V8M12 14V15M17.5 3.5V4.5M17.5 10.5V11.5",
|
|
2438
|
+
fills: [
|
|
2439
|
+
"M5 12h3v6H5z",
|
|
2440
|
+
"M10.5 8h3v6h-3z",
|
|
2441
|
+
"M16 4.5h3v6h-3z"
|
|
2442
|
+
]
|
|
2443
|
+
}
|
|
2444
|
+
}, Xn = 1.75, Zn = .22, Qn = /* @__PURE__ */ new WeakMap();
|
|
2445
|
+
function $n(e) {
|
|
2446
|
+
let t = Qn.get(e);
|
|
2447
|
+
if (t) return t;
|
|
2448
|
+
let n = "";
|
|
2449
|
+
e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${Zn}" stroke="none"/>`);
|
|
2450
|
+
for (let t of e.fills ?? []) n += `<path d="${t}" fill="currentColor" stroke="none"/>`;
|
|
2451
|
+
e.d && (n += `<path d="${e.d}"/>`), e.dash && (n += `<path d="${e.dash}" stroke-dasharray="2 2.5"/>`);
|
|
2452
|
+
for (let [t, r, i = Xn] of e.dots ?? []) n += `<circle cx="${t}" cy="${r}" r="${i}" fill="currentColor" stroke="none"/>`;
|
|
2453
|
+
return Qn.set(e, n), n;
|
|
2454
|
+
}
|
|
2455
|
+
function er(e, t) {
|
|
2456
|
+
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">${$n(e)}</svg>`;
|
|
2457
|
+
}
|
|
2458
|
+
//#endregion
|
|
2459
|
+
export { t as CHART_STYLE_KEYS, Yn as CHART_TYPE_ICONS, z as DARK_TERMINAL, L as DARK_THEME, ln as DEFAULT_BAR_SPACING, cn as DEFAULT_BAR_WIDTH, nn as DEFAULT_CHART_OPTIONS, n as DEFAULT_DRAWING_STYLE, Pt as DEFAULT_FONT_FAMILY, pn as DEFAULT_PANEL_HEIGHT, o as DEFAULT_RECONNECT, i as DEFAULT_SIGNAL_STYLE, s as DEFAULT_STREAM_CONFIG, sn as DEFAULT_TIMEFRAME_FAVORITES, a as DEFAULT_TRADE_ZONE_STYLE, r as DEFAULT_TRADING_CONFIG, Jn as DRAWING_TOOL_ICONS, wn as HNX_SESSIONS, Cn as HOSE_SESSIONS, Xn as ICON_DOT_RADIUS, Zn as ICON_SOFT_OPACITY, R as LIGHT_THEME, e as LayerType, Mn as MARKET_CRYPTO, kn as MARKET_HNX, Dn as MARKET_HOSE, On as MARKET_HOSE_ETF, Nn as MARKET_NYSE, An as MARKET_UPCOM, jn as MARKET_VN30F, fn as MIN_PANEL_HEIGHT, se as MS_TIME_THRESHOLD, un as PRICE_AXIS_WIDTH, nt as PRICE_SOURCES, N as TC_PALETTE, Lt as TC_SERIES_COLORS, rn as TIMEFRAMES_CRYPTO, on as TIMEFRAMES_FOREX, an as TIMEFRAMES_STOCK, dn as TIME_AXIS_HEIGHT, qn as UI_ICONS, Tn as UPCOM_SESSIONS, En as VN30F_SESSIONS, q as VN_COLORS, It as VOLUME_ALPHA, Re as alignToTimeframe, Ye as autoPricePrecision, ce as barTimeUnit, He as barsAreDaily, tn as chartStyleValue, ne as clamp, Ln as computePriceLimits, me as computePriceRange, oe as computeTickStep, Pn as createVNTheme, tt as detectPrecision, wt as drawingOption, U as en, fe as findBarIndex, Ze as formatFraction, K as formatNumber, Je as formatPrice, Xe as formatPriceScaleLabel, Le as formatTimestamp, xn as formatVND, et as formatVolume, Sn as formatVolumeLoc, Qe as fractionTick, Hn as getCurrentSession, _n as getLocale, bn as getLocaleStrings, ge as hexToRgba, er as iconSvg, ot as indicatorSource, ie as inverseLerp, Be as isDateOnly, rt as isPriceSource, Ie as isTimeFrame, Ee as isValidTimeZone, re as lerp, ve as lerpColor, Xt as lineDash, gt as marketStatus, he as mergeBar, m as niceNumber, ue as normalizeBar, le as normalizeBarTime, x as offsetAt, pe as padPriceRange, st as parseIndicatorSource, S as parseTimeframe, dt as pickBaseTimeframe, $e as priceFormatterFor, Fn as priceStepAt, pt as rankSymbols, Kt as readChartStyleOverrides, Nt as readChartTypeOptions, Yt as readIndicatorPlotStyles, te as readNews, qt as readPaneStyle, l as readQuote, yn as registerLocale, lt as resampleBars, Qt as resolveChartTheme, Tt as resolveDrawingOptions, B as resolveVolumeColors, X as roundToPriceStep, ae as roundToStep, St as sanitizeDrawingOptions, Mt as sanitizeDrawingStyle, Rn as scaleMarketPrices, E as sessionMinute, gn as setLocale, de as sliceVisibleData, it as sourcePrice, mt as stepDecimals, vn as t, Fe as tickBarCount, ze as timeParts, Ge as timeframeBucketStart, C as timeframeToMs, Ue as tzLabel, mn as vi, Kn as vn30fContracts, Gn as vn30fLastTradingDay, P as volumeColor, Oe as wallToUtc, _e as withAlpha, y as zoneOffsetMinutes, Ae as zonedDateFormatter };
|
|
1917
2460
|
|
|
1918
2461
|
//# sourceMappingURL=index.js.map
|