@tradecanvas/commons 1.56.0 → 1.57.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.js CHANGED
@@ -198,11 +198,11 @@ function u(e) {
198
198
  }
199
199
  //#endregion
200
200
  //#region src/types/news.ts
201
- var d = 300, f = 1e3, p = (e, t) => {
201
+ var d = 300, ee = 1e3, f = (e, t) => {
202
202
  if (typeof e != "string") return;
203
203
  let n = e.trim();
204
204
  return n ? n.slice(0, t) : void 0;
205
- }, ee = (e) => {
205
+ }, te = (e) => {
206
206
  if (typeof e == "string") try {
207
207
  let t = new URL(e);
208
208
  return t.protocol === "https:" || t.protocol === "http:" ? t.href : void 0;
@@ -210,47 +210,47 @@ var d = 300, f = 1e3, p = (e, t) => {
210
210
  return;
211
211
  }
212
212
  };
213
- function te(e, t = 20) {
213
+ function ne(e, t = 20) {
214
214
  if (!Array.isArray(e)) return [];
215
215
  let n = [];
216
216
  for (let t of e) {
217
217
  if (!t || typeof t != "object") continue;
218
- let e = t, r = p(e.title, d);
218
+ let e = t, r = f(e.title, d);
219
219
  if (!r || typeof e.time != "number" || !Number.isFinite(e.time)) continue;
220
220
  let i = {
221
221
  title: r,
222
222
  time: e.time
223
- }, a = ee(e.url);
223
+ }, a = te(e.url);
224
224
  a && (i.url = a);
225
- let o = p(e.source, d);
225
+ let o = f(e.source, d);
226
226
  o && (i.source = o);
227
- let s = p(e.summary, f);
227
+ let s = f(e.summary, ee);
228
228
  s && (i.summary = s);
229
- let c = p(e.id, d);
229
+ let c = f(e.id, d);
230
230
  c && (i.id = c), n.push(i);
231
231
  }
232
232
  return n.sort((e, t) => t.time - e.time).slice(0, Math.max(0, t));
233
233
  }
234
234
  //#endregion
235
235
  //#region src/utils/math.ts
236
- function ne(e, t, n) {
236
+ function re(e, t, n) {
237
237
  return Math.max(t, Math.min(n, e));
238
238
  }
239
- function re(e, t, n) {
239
+ function ie(e, t, n) {
240
240
  return e + (t - e) * n;
241
241
  }
242
- function ie(e, t, n) {
242
+ function ae(e, t, n) {
243
243
  return e === t ? 0 : (n - e) / (t - e);
244
244
  }
245
- function ae(e, t) {
245
+ function oe(e, t) {
246
246
  return Math.round(e / t) * t;
247
247
  }
248
- function oe(e, t) {
248
+ function p(e, t) {
249
249
  let n = Math.floor(Math.log10(e)), r = e / 10 ** n, i;
250
250
  return i = t ? r < 1.5 ? 1 : r < 3 ? 2 : r < 7 ? 5 : 10 : r <= 1 ? 1 : r <= 2 ? 2 : r <= 5 ? 5 : 10, i * 10 ** n;
251
251
  }
252
252
  function se(e, t, n) {
253
- return oe(oe(t - e, !1) / (n - 1), !0);
253
+ return p(p(t - e, !1) / (n - 1), !0);
254
254
  }
255
255
  //#endregion
256
256
  //#region src/utils/data.ts
@@ -432,7 +432,7 @@ function Me(e) {
432
432
  second: "numeric"
433
433
  }), Ae.set(e, t)), t;
434
434
  }
435
- function b(e) {
435
+ function Ne(e) {
436
436
  if (!e) return !1;
437
437
  try {
438
438
  return Me(e), !0;
@@ -440,15 +440,15 @@ function b(e) {
440
440
  return !1;
441
441
  }
442
442
  }
443
- function x(e, t) {
443
+ function b(e, t) {
444
444
  if (!Number.isFinite(t) || ke.has(e)) return 0;
445
445
  let n = je.get(e);
446
446
  n || (n = /* @__PURE__ */ new Map(), je.set(e, n));
447
447
  let r = Math.floor(t / De), i = n.get(r);
448
- return i || (i = Ne(e, r * De), n.size >= Oe && n.clear(), n.set(r, i)), t < i.change ? i.before : i.after;
448
+ return i || (i = Pe(e, r * De), n.size >= Oe && n.clear(), n.set(r, i)), t < i.change ? i.before : i.after;
449
449
  }
450
- function Ne(e, t) {
451
- let n = Pe(e, t), r = t + De - v, i = Pe(e, r);
450
+ function Pe(e, t) {
451
+ let n = Fe(e, t), r = t + De - v, i = Fe(e, r);
452
452
  if (i === n) return {
453
453
  before: n,
454
454
  change: Infinity,
@@ -457,7 +457,7 @@ function Ne(e, t) {
457
457
  let a = t;
458
458
  for (; r - a > v;) {
459
459
  let t = a + Math.floor((r - a) / v / 2) * v;
460
- Pe(e, t) === n ? a = t : r = t;
460
+ Fe(e, t) === n ? a = t : r = t;
461
461
  }
462
462
  return {
463
463
  before: n,
@@ -465,7 +465,7 @@ function Ne(e, t) {
465
465
  after: i
466
466
  };
467
467
  }
468
- function Pe(e, t) {
468
+ function Fe(e, t) {
469
469
  let n = Math.floor(t / v), r = `${e}|${n}`, i = y.get(r);
470
470
  if (i !== void 0) return i;
471
471
  let a = n * v, o = 1970, s = 1, c = 1, l = 0, u = 0, d = 0;
@@ -492,24 +492,24 @@ function Pe(e, t) {
492
492
  break;
493
493
  }
494
494
  }
495
- let f = Math.round((Date.UTC(o, s - 1, c, l, u, d) - a) / _);
496
- return y.size >= Ee && y.clear(), y.set(r, f), f;
495
+ let ee = Math.round((Date.UTC(o, s - 1, c, l, u, d) - a) / _);
496
+ return y.size >= Ee && y.clear(), y.set(r, ee), ee;
497
497
  }
498
- function S(e) {
498
+ function x(e) {
499
499
  return e === 0 || typeof e == "string" && ke.has(e);
500
500
  }
501
- function C(e, t) {
502
- return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : x(e, t);
501
+ function S(e, t) {
502
+ return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : b(e, t);
503
503
  }
504
- function Fe(e, t) {
505
- let n = e - C(t, e - Te) * _;
506
- if (n + C(t, n) * _ === e) return n;
507
- let r = e - C(t, e + Te) * _;
508
- return r + C(t, r) * _ === e ? r : n;
509
- }
510
- var Ie = /* @__PURE__ */ new Map();
511
- function Le(e, t, n) {
512
- let r = `${e}|${JSON.stringify(t)}|${n === null ? "local" : typeof n == "number" ? `fixed:${n}` : n}`, i = Ie.get(r);
504
+ function Ie(e, t) {
505
+ let n = e - S(t, e - Te) * _;
506
+ if (n + S(t, n) * _ === e) return n;
507
+ let r = e - S(t, e + Te) * _;
508
+ return r + S(t, r) * _ === e ? r : n;
509
+ }
510
+ var Le = /* @__PURE__ */ new Map();
511
+ function Re(e, t, n) {
512
+ let r = `${e}|${JSON.stringify(t)}|${n === null ? "local" : typeof n == "number" ? `fixed:${n}` : n}`, i = Le.get(r);
513
513
  if (i) return i;
514
514
  let a = n === null ? void 0 : typeof n == "number" ? "UTC" : n, o;
515
515
  try {
@@ -524,11 +524,11 @@ function Le(e, t, n) {
524
524
  });
525
525
  }
526
526
  let s = typeof n == "number" ? n * _ : 0;
527
- return i = (e) => o.format(new Date(e + s)), Ie.set(r, i), i;
527
+ return i = (e) => o.format(new Date(e + s)), Le.set(r, i), i;
528
528
  }
529
529
  //#endregion
530
530
  //#region src/utils/time.ts
531
- var Re = {
531
+ var ze = {
532
532
  "1s": 1e3,
533
533
  "5s": 5e3,
534
534
  "15s": 15e3,
@@ -555,16 +555,16 @@ var Re = {
555
555
  "3M": 7776e6,
556
556
  "6M": 15552e6,
557
557
  "12M": 31536e6
558
- }, w = {
558
+ }, C = {
559
559
  s: 1e3,
560
560
  m: 6e4,
561
561
  h: 36e5,
562
562
  d: 864e5,
563
563
  w: 6048e5,
564
564
  M: 2592e6
565
- }, ze = /^([1-9]\d*)([smhdwM])$/;
566
- function T(e) {
567
- let t = ze.exec(e);
565
+ }, Be = /^([1-9]\d*)([smhdwM])$/;
566
+ function w(e) {
567
+ let t = Be.exec(e);
568
568
  if (!t) return null;
569
569
  let n = Number(t[1]);
570
570
  return Number.isSafeInteger(n) ? {
@@ -572,24 +572,24 @@ function T(e) {
572
572
  unit: t[2]
573
573
  } : null;
574
574
  }
575
- var Be = 1e6;
576
- function Ve(e) {
575
+ var Ve = 1e6;
576
+ function He(e) {
577
577
  let t = /^([1-9]\d*)T$/.exec(e);
578
578
  if (!t) return null;
579
579
  let n = Number(t[1]);
580
- return Number.isSafeInteger(n) && n <= Be ? n : null;
580
+ return Number.isSafeInteger(n) && n <= Ve ? n : null;
581
581
  }
582
- function He(e) {
583
- return T(e) !== null;
582
+ function Ue(e) {
583
+ return w(e) !== null;
584
584
  }
585
- function E(e) {
586
- let t = Re[e];
585
+ function T(e) {
586
+ let t = ze[e];
587
587
  if (t !== void 0) return t;
588
- let n = T(e);
589
- return n ? n.count * w[n.unit] : NaN;
588
+ let n = w(e);
589
+ return n ? n.count * C[n.unit] : NaN;
590
590
  }
591
- function Ue(e, t) {
592
- let n = new Date(e), r = E(t);
591
+ function We(e, t) {
592
+ let n = new Date(e), r = T(t);
593
593
  return r >= 864e5 ? n.toLocaleDateString(void 0, {
594
594
  month: "short",
595
595
  day: "numeric"
@@ -602,11 +602,11 @@ function Ue(e, t) {
602
602
  second: "2-digit"
603
603
  });
604
604
  }
605
- function We(e, t) {
606
- let n = E(t);
605
+ function Ge(e, t) {
606
+ let n = T(t);
607
607
  return Math.floor(e / n) * n;
608
608
  }
609
- function Ge(e, t) {
609
+ function Ke(e, t) {
610
610
  if (t === null) {
611
611
  let t = new Date(e);
612
612
  return {
@@ -617,7 +617,7 @@ function Ge(e, t) {
617
617
  minutes: t.getMinutes()
618
618
  };
619
619
  }
620
- let n = new Date(e + C(t, e) * 6e4);
620
+ let n = new Date(e + S(t, e) * 6e4);
621
621
  return {
622
622
  year: n.getUTCFullYear(),
623
623
  month: n.getUTCMonth() + 1,
@@ -626,11 +626,11 @@ function Ge(e, t) {
626
626
  minutes: n.getUTCMinutes()
627
627
  };
628
628
  }
629
- function Ke(e) {
629
+ function qe(e) {
630
630
  return e.hours === 0 && e.minutes === 0;
631
631
  }
632
- var qe = 20 * 36e5;
633
- function Je(e) {
632
+ var Je = 20 * 36e5;
633
+ function Ye(e) {
634
634
  let t = Math.min(e.length, 64);
635
635
  if (t < 2) return;
636
636
  let n = le(e), r = Infinity;
@@ -638,110 +638,110 @@ function Je(e) {
638
638
  let t = Math.abs(e[i].time - e[i - 1].time) * n;
639
639
  t > 0 && t < r && (r = t);
640
640
  }
641
- return r === Infinity ? void 0 : r >= qe;
641
+ return r === Infinity ? void 0 : r >= Je;
642
642
  }
643
- function Ye(e, t = Date.now()) {
644
- let n = C(e, t), r = n >= 0 ? "+" : "-", i = Math.abs(n), a = Math.floor(i / 60), o = i % 60;
643
+ function Xe(e, t = Date.now()) {
644
+ let n = S(e, t), r = n >= 0 ? "+" : "-", i = Math.abs(n), a = Math.floor(i / 60), o = i % 60;
645
645
  return o === 0 ? `UTC${r}${a}` : `UTC${r}${a}:${String(o).padStart(2, "0")}`;
646
646
  }
647
- var Xe = Date.UTC(1970, 0, 5), Ze = w.m, D = w.d, Qe = 24, $e = {
647
+ var Ze = Date.UTC(1970, 0, 5), Qe = C.m, E = C.d, $e = 24, et = {
648
648
  count: 1,
649
649
  unit: "m"
650
- }, et = 256, O = /* @__PURE__ */ new Map();
651
- function tt(e) {
652
- let t = O.get(e);
653
- return t || (t = T(e) ?? $e, O.size >= et && O.clear(), O.set(e, t)), t;
650
+ }, tt = 256, D = /* @__PURE__ */ new Map();
651
+ function nt(e) {
652
+ let t = D.get(e);
653
+ return t || (t = w(e) ?? et, D.size >= tt && D.clear(), D.set(e, t)), t;
654
654
  }
655
- function nt({ unit: e }) {
655
+ function rt({ unit: e }) {
656
656
  return e === "d" || e === "w" || e === "M";
657
657
  }
658
- function rt(e) {
659
- return e.unit === "h" ? e.count > 1 && Qe % e.count === 0 : nt(e);
660
- }
661
658
  function it(e) {
662
- return rt(tt(e));
659
+ return e.unit === "h" ? e.count > 1 && $e % e.count === 0 : rt(e);
663
660
  }
664
661
  function at(e) {
665
- return nt(tt(e));
662
+ return it(nt(e));
666
663
  }
667
664
  function ot(e) {
668
- return e !== void 0 && !S(e);
665
+ return rt(nt(e));
669
666
  }
670
- function st(e, t, n = 1) {
671
- let r = tt(t), i = typeof n == "number" ? n : n.weekStartsOn ?? 1, a = typeof n == "number" ? void 0 : n.timeZone;
672
- return !ot(a) || !rt(r) || typeof n == "object" && n.dates && e % D === 0 ? ct(e, r, i) : Fe(ct(e + C(a, e) * Ze, r, i), a);
667
+ function st(e) {
668
+ return e !== void 0 && !x(e);
673
669
  }
674
- function ct(e, { count: t, unit: n }, r) {
670
+ function ct(e, t, n = 1) {
671
+ let r = nt(t), i = typeof n == "number" ? n : n.weekStartsOn ?? 1, a = typeof n == "number" ? void 0 : n.timeZone;
672
+ return !st(a) || !it(r) || typeof n == "object" && n.dates && e % E === 0 ? lt(e, r, i) : Ie(lt(e + S(a, e) * Qe, r, i), a);
673
+ }
674
+ function lt(e, { count: t, unit: n }, r) {
675
675
  if (n === "s" || n === "m" || n === "h" || n === "d") {
676
- let r = t * w[n];
676
+ let r = t * C[n];
677
677
  return Math.floor(e / r) * r;
678
678
  }
679
679
  let i = new Date(e);
680
680
  if (n === "w") {
681
681
  let e = (i.getUTCDay() - r + 7) % 7, n = Date.UTC(i.getUTCFullYear(), i.getUTCMonth(), i.getUTCDate() - e);
682
682
  if (t <= 1) return n;
683
- let a = Math.floor((n - Xe) / (7 * D));
684
- return Xe + Math.floor(a / t) * t * 7 * D;
683
+ let a = Math.floor((n - Ze) / (7 * E));
684
+ return Ze + Math.floor(a / t) * t * 7 * E;
685
685
  }
686
686
  let a = i.getUTCFullYear() * 12 + i.getUTCMonth(), o = Math.floor(a / t) * t;
687
687
  return Date.UTC(Math.floor(o / 12), o % 12, 1);
688
688
  }
689
- function lt(e, t, n) {
690
- return e % D === 0 ? 0 : n && st(e, "1d", { timeZone: n }) === e ? n : t;
691
- }
692
689
  function ut(e, t, n) {
693
- return Ge(e, lt(e, t, n));
690
+ return e % E === 0 ? 0 : n && ct(e, "1d", { timeZone: n }) === e ? n : t;
691
+ }
692
+ function dt(e, t, n) {
693
+ return Ke(e, ut(e, t, n));
694
694
  }
695
695
  //#endregion
696
696
  //#region src/utils/precision.ts
697
- var dt = 64, k = /* @__PURE__ */ new Map();
698
- function ft(e, t) {
699
- let n = `${e}|${t}`, r = k.get(n);
700
- return r || (k.size >= dt && k.clear(), r = new Intl.NumberFormat(e, {
697
+ var ft = 64, O = /* @__PURE__ */ new Map();
698
+ function pt(e, t) {
699
+ let n = `${e}|${t}`, r = O.get(n);
700
+ return r || (O.size >= ft && O.clear(), r = new Intl.NumberFormat(e, {
701
701
  minimumFractionDigits: t,
702
702
  maximumFractionDigits: t
703
- }), k.set(n, r)), r;
703
+ }), O.set(n, r)), r;
704
704
  }
705
- function pt(e, t, n) {
706
- return t.formatPrice ? t.formatPrice(e) : A(e, n ?? t.pricePrecision ?? mt(t.priceRange.min, t.priceRange.max), t.numberLocale ?? "en-US");
705
+ function mt(e, t, n) {
706
+ return t.formatPrice ? t.formatPrice(e) : k(e, n ?? t.pricePrecision ?? ht(t.priceRange.min, t.priceRange.max), t.numberLocale ?? "en-US");
707
707
  }
708
- function A(e, t = 2, n = "en-US") {
709
- return ft(n, t).format(e);
708
+ function k(e, t = 2, n = "en-US") {
709
+ return pt(n, t).format(e);
710
710
  }
711
- function mt(e, t) {
711
+ function ht(e, t) {
712
712
  if (!(t > e) || !Number.isFinite(e) || !Number.isFinite(t)) return 2;
713
713
  let n = se(e, t, 8);
714
714
  return n > 0 && n < 1 ? Math.ceil(-Math.log10(n)) + 1 : 2;
715
715
  }
716
- var ht = 2;
717
- function gt(e, t, n, r = 2, i = "en-US") {
716
+ var gt = 2;
717
+ function _t(e, t, n, r = 2, i = "en-US") {
718
718
  if ((t === "percentage" || t === "indexedTo100") && n && n !== 0) {
719
719
  if (t === "percentage") {
720
- let t = (e / n - 1) * 100, r = A(Math.abs(t), ht, i);
721
- return `${r === A(0, ht, i) ? "" : t > 0 ? "+" : "-"}${r}%`;
720
+ let t = (e / n - 1) * 100, r = k(Math.abs(t), gt, i);
721
+ return `${r === k(0, gt, i) ? "" : t > 0 ? "+" : "-"}${r}%`;
722
722
  }
723
- return A(e / n * 100, 2, i);
723
+ return k(e / n * 100, 2, i);
724
724
  }
725
- return A(e, r, i);
725
+ return k(e, r, i);
726
726
  }
727
- function _t(e, t, n = 1) {
727
+ function vt(e, t, n = 1) {
728
728
  let r = Number.isInteger(n) && n > 1 ? n : 1;
729
729
  if (!Number.isFinite(e) || !Number.isInteger(t) || t < 2) return String(e);
730
730
  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)) : "";
731
731
  return `${e < 0 && a > 0 ? "-" : ""}${o}'${String(c).padStart(l, "0")}${u}`;
732
732
  }
733
- function vt(e) {
733
+ function yt(e) {
734
734
  if (!Number.isInteger(e.denominator) || e.denominator < 2) return null;
735
735
  let t = Number.isInteger(e.subDenominator) && (e.subDenominator ?? 0) > 1 ? e.subDenominator : 1;
736
736
  return 1 / (e.denominator * t);
737
737
  }
738
- function yt(e) {
739
- return e ? typeof e == "function" ? e : vt(e) === null ? null : (t) => _t(t, e.denominator, e.subDenominator) : null;
740
- }
741
738
  function bt(e) {
742
- 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);
739
+ return e ? typeof e == "function" ? e : yt(e) === null ? null : (t) => vt(t, e.denominator, e.subDenominator) : null;
743
740
  }
744
741
  function xt(e) {
742
+ 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);
743
+ }
744
+ function St(e) {
745
745
  let t = 0;
746
746
  for (let n of e) {
747
747
  let e = n.toString(), r = e.indexOf(".");
@@ -751,7 +751,7 @@ function xt(e) {
751
751
  }
752
752
  //#endregion
753
753
  //#region src/utils/priceSource.ts
754
- var St = [
754
+ var Ct = [
755
755
  "close",
756
756
  "open",
757
757
  "high",
@@ -761,10 +761,10 @@ var St = [
761
761
  "ohlc4",
762
762
  "hlcc4"
763
763
  ];
764
- function Ct(e) {
765
- return typeof e == "string" && St.includes(e);
764
+ function wt(e) {
765
+ return typeof e == "string" && Ct.includes(e);
766
766
  }
767
- function wt(e, t) {
767
+ function Tt(e, t) {
768
768
  switch (t) {
769
769
  case "open": return e.open;
770
770
  case "high": return e.high;
@@ -776,13 +776,13 @@ function wt(e, t) {
776
776
  default: return e.close;
777
777
  }
778
778
  }
779
- var Tt = /^ind:([^:]+):(.+)$/;
780
- function Et(e, t) {
779
+ var Et = /^ind:([^:]+):(.+)$/;
780
+ function Dt(e, t) {
781
781
  return `ind:${e}:${t}`;
782
782
  }
783
- function Dt(e) {
783
+ function Ot(e) {
784
784
  if (typeof e != "string") return null;
785
- let t = Tt.exec(e);
785
+ let t = Et.exec(e);
786
786
  return t ? {
787
787
  instanceId: t[1],
788
788
  key: t[2]
@@ -790,11 +790,11 @@ function Dt(e) {
790
790
  }
791
791
  //#endregion
792
792
  //#region src/utils/resample.ts
793
- var Ot = 864e5, kt = 6e4;
794
- function At(e, t, n = 1) {
795
- let r = jt(e, t, n), i = [], a = null;
793
+ var kt = 864e5, At = 6e4;
794
+ function jt(e, t, n = 1) {
795
+ let r = Mt(e, t, n), i = [], a = null;
796
796
  for (let n of e) {
797
- let e = st(n.time, t, r);
797
+ let e = ct(n.time, t, r);
798
798
  a === null || e !== a.time ? (a = {
799
799
  time: e,
800
800
  open: n.open,
@@ -806,30 +806,30 @@ function At(e, t, n = 1) {
806
806
  }
807
807
  return i;
808
808
  }
809
- function jt(e, t, n) {
810
- return typeof n == "number" || n.timeZone === void 0 || n.dates !== void 0 || S(n.timeZone) || !it(t) ? n : {
809
+ function Mt(e, t, n) {
810
+ return typeof n == "number" || n.timeZone === void 0 || n.dates !== void 0 || x(n.timeZone) || !at(t) ? n : {
811
811
  ...n,
812
- dates: Je(e) === !0
812
+ dates: Ye(e) === !0
813
813
  };
814
814
  }
815
- var Mt = (e) => e === "s" || e === "m" || e === "h" || e === "d";
815
+ var A = (e) => e === "s" || e === "m" || e === "h" || e === "d";
816
816
  function Nt(e, t) {
817
- let n = T(e), r = T(t);
817
+ let n = w(e), r = w(t);
818
818
  if (!n || !r) return !1;
819
- let i = E(e);
820
- return n.unit === "d" && n.count > 1 ? !1 : Mt(r.unit) ? Mt(n.unit) && E(t) % i === 0 : n.unit === r.unit ? r.count % n.count === 0 : Mt(n.unit) && Ot % i === 0;
819
+ let i = T(e);
820
+ return n.unit === "d" && n.count > 1 ? !1 : A(r.unit) ? A(n.unit) && T(t) % i === 0 : n.unit === r.unit ? r.count % n.count === 0 : A(n.unit) && kt % i === 0;
821
821
  }
822
822
  function Pt(e, t) {
823
- let n = E(e);
824
- if (!(n < Ot)) return !0;
823
+ let n = T(e);
824
+ if (!(n < kt)) return !0;
825
825
  let r = (/* @__PURE__ */ new Date()).getUTCFullYear();
826
- return [Date.UTC(r, 0, 1), Date.UTC(r, 6, 1)].every((e) => C(t, e) * kt % n === 0);
826
+ return [Date.UTC(r, 0, 1), Date.UTC(r, 6, 1)].every((e) => S(t, e) * At % n === 0);
827
827
  }
828
828
  function Ft(e, t, n = {}) {
829
- let { timeZone: r } = n, i = r !== void 0 && !S(r) && it(e) ? r : void 0, a = null, o = 0;
829
+ let { timeZone: r } = n, i = r !== void 0 && !x(r) && at(e) ? r : void 0, a = null, o = 0;
830
830
  for (let n of t) {
831
831
  if (!Nt(n, e) || i !== void 0 && !Pt(n, i)) continue;
832
- let t = E(n);
832
+ let t = T(n);
833
833
  t > o && (a = n, o = t);
834
834
  }
835
835
  return a;
@@ -886,11 +886,11 @@ function Vt(e, t) {
886
886
  days: Array.isArray(e.days) ? e.days : null
887
887
  }];
888
888
  });
889
- if (!n || !b(n) || r.length === 0 || !Number.isFinite(t)) return {
889
+ if (!n || !Ne(n) || r.length === 0 || !Number.isFinite(t)) return {
890
890
  state: "always",
891
891
  next: null
892
892
  };
893
- let i = x(n, t) * N, a = Math.floor((t + i) / M) * M, o = (e) => e - x(n, e - x(n, e - i) * N) * N, s = [];
893
+ let i = b(n, t) * N, a = Math.floor((t + i) / M) * M, o = (e) => e - b(n, e - b(n, e - i) * N) * N, s = [];
894
894
  for (let e = -1; e <= Bt; e++) {
895
895
  let t = a + e * M, n = (Math.floor(t / M) + 4) % 7;
896
896
  for (let e of r) {
@@ -1699,7 +1699,17 @@ function q(e, t = 2, n) {
1699
1699
  function ur(e) {
1700
1700
  return q(e, 0, "vi");
1701
1701
  }
1702
- function dr(e, t) {
1702
+ var dr = [
1703
+ [0xe8d4a51000, "조"],
1704
+ [1e8, "억"],
1705
+ [1e4, "만"]
1706
+ ];
1707
+ function fr(e, t) {
1708
+ let n = t ?? K;
1709
+ if (/^ko([-_]|$)/i.test(n)) {
1710
+ for (let [t, r] of dr) if (Math.round(e / t * 100) >= 100) return q(e / t, 2, n) + r;
1711
+ return q(e, 0, n);
1712
+ }
1703
1713
  return e >= 1e9 ? q(e / 1e9, 2, t ?? K) + "B" : e >= 1e6 ? q(e / 1e6, 2, t ?? K) + "M" : e >= 1e3 ? q(e / 1e3, 2, t ?? K) + "K" : q(e, 0, t ?? K);
1704
1714
  }
1705
1715
  //#endregion
@@ -1711,7 +1721,14 @@ var J = {
1711
1721
  ceiling: "#D946EF",
1712
1722
  floor: "#06B6D4",
1713
1723
  reference: "#EAB308"
1714
- }, Y = "Asia/Ho_Chi_Minh", fr = [
1724
+ }, Y = "Asia/Ho_Chi_Minh", pr = {
1725
+ up: "#E8313F",
1726
+ down: "#2F6FEB",
1727
+ unchanged: "#8B8F99",
1728
+ ceiling: "#C2121F",
1729
+ floor: "#1E4FC2",
1730
+ reference: "#8B8F99"
1731
+ }, mr = "Asia/Seoul", hr = [
1715
1732
  {
1716
1733
  name: "ATO",
1717
1734
  startTime: "09:00",
@@ -1742,7 +1759,7 @@ var J = {
1742
1759
  endTime: "14:45",
1743
1760
  type: "preClose"
1744
1761
  }
1745
- ], pr = [
1762
+ ], gr = [
1746
1763
  {
1747
1764
  name: "Phiên 1",
1748
1765
  startTime: "09:15",
@@ -1773,7 +1790,7 @@ var J = {
1773
1790
  endTime: "15:00",
1774
1791
  type: "postClose"
1775
1792
  }
1776
- ], mr = [
1793
+ ], _r = [
1777
1794
  {
1778
1795
  name: "Phiên 1",
1779
1796
  startTime: "09:15",
@@ -1792,7 +1809,7 @@ var J = {
1792
1809
  endTime: "14:30",
1793
1810
  type: "continuous"
1794
1811
  }
1795
- ], hr = [
1812
+ ], vr = [
1796
1813
  {
1797
1814
  name: "ATO",
1798
1815
  startTime: "08:45",
@@ -1823,7 +1840,147 @@ var J = {
1823
1840
  endTime: "14:45",
1824
1841
  type: "preClose"
1825
1842
  }
1826
- ], gr = {
1843
+ ], yr = [
1844
+ {
1845
+ name: "장전 동시호가",
1846
+ startTime: "08:30",
1847
+ endTime: "09:00",
1848
+ type: "preOpen"
1849
+ },
1850
+ {
1851
+ name: "정규장",
1852
+ startTime: "09:00",
1853
+ endTime: "15:20",
1854
+ type: "continuous"
1855
+ },
1856
+ {
1857
+ name: "장마감 동시호가",
1858
+ startTime: "15:20",
1859
+ endTime: "15:30",
1860
+ type: "preClose"
1861
+ },
1862
+ {
1863
+ name: "장후 시간외",
1864
+ startTime: "15:40",
1865
+ endTime: "16:00",
1866
+ type: "postClose"
1867
+ },
1868
+ {
1869
+ name: "애프터마켓",
1870
+ startTime: "16:00",
1871
+ endTime: "20:00",
1872
+ type: "postClose"
1873
+ }
1874
+ ], br = [
1875
+ {
1876
+ name: "프리마켓",
1877
+ startTime: "08:00",
1878
+ endTime: "08:50",
1879
+ type: "preOpen"
1880
+ },
1881
+ {
1882
+ name: "메인마켓",
1883
+ startTime: "09:00",
1884
+ endTime: "15:20",
1885
+ type: "continuous"
1886
+ },
1887
+ {
1888
+ name: "애프터마켓",
1889
+ startTime: "15:40",
1890
+ endTime: "20:00",
1891
+ type: "postClose"
1892
+ }
1893
+ ], xr = [
1894
+ {
1895
+ from: 0,
1896
+ step: 1
1897
+ },
1898
+ {
1899
+ from: 2e3,
1900
+ step: 5
1901
+ },
1902
+ {
1903
+ from: 5e3,
1904
+ step: 10
1905
+ },
1906
+ {
1907
+ from: 2e4,
1908
+ step: 50
1909
+ },
1910
+ {
1911
+ from: 5e4,
1912
+ step: 100
1913
+ },
1914
+ {
1915
+ from: 2e5,
1916
+ step: 500
1917
+ },
1918
+ {
1919
+ from: 5e5,
1920
+ step: 1e3
1921
+ }
1922
+ ], Sr = [
1923
+ {
1924
+ from: 0,
1925
+ step: 1e-8
1926
+ },
1927
+ {
1928
+ from: 1e-5,
1929
+ step: 1e-7
1930
+ },
1931
+ {
1932
+ from: 1e-4,
1933
+ step: 1e-6
1934
+ },
1935
+ {
1936
+ from: .001,
1937
+ step: 1e-5
1938
+ },
1939
+ {
1940
+ from: .01,
1941
+ step: 1e-4
1942
+ },
1943
+ {
1944
+ from: .1,
1945
+ step: .001
1946
+ },
1947
+ {
1948
+ from: 1,
1949
+ step: .01
1950
+ },
1951
+ {
1952
+ from: 10,
1953
+ step: .1
1954
+ },
1955
+ {
1956
+ from: 100,
1957
+ step: 1
1958
+ },
1959
+ {
1960
+ from: 5e3,
1961
+ step: 5
1962
+ },
1963
+ {
1964
+ from: 1e4,
1965
+ step: 10
1966
+ },
1967
+ {
1968
+ from: 5e4,
1969
+ step: 50
1970
+ },
1971
+ {
1972
+ from: 1e5,
1973
+ step: 100
1974
+ },
1975
+ {
1976
+ from: 5e5,
1977
+ step: 500
1978
+ },
1979
+ {
1980
+ from: 1e6,
1981
+ step: 1e3
1982
+ }
1983
+ ], Cr = {
1827
1984
  type: "stock",
1828
1985
  exchange: "HOSE",
1829
1986
  currency: "VND",
@@ -1850,12 +2007,12 @@ var J = {
1850
2007
  ceilingPercent: 7,
1851
2008
  floorPercent: 7
1852
2009
  },
1853
- sessions: fr,
2010
+ sessions: hr,
1854
2011
  colorScheme: J
1855
- }, _r = {
1856
- ...gr,
2012
+ }, wr = {
2013
+ ...Cr,
1857
2014
  priceSteps: void 0
1858
- }, vr = {
2015
+ }, Tr = {
1859
2016
  type: "stock",
1860
2017
  exchange: "HNX",
1861
2018
  currency: "VND",
@@ -1868,9 +2025,9 @@ var J = {
1868
2025
  ceilingPercent: 10,
1869
2026
  floorPercent: 10
1870
2027
  },
1871
- sessions: pr,
2028
+ sessions: gr,
1872
2029
  colorScheme: J
1873
- }, yr = {
2030
+ }, Er = {
1874
2031
  type: "stock",
1875
2032
  exchange: "UPCOM",
1876
2033
  currency: "VND",
@@ -1883,9 +2040,9 @@ var J = {
1883
2040
  ceilingPercent: 15,
1884
2041
  floorPercent: 15
1885
2042
  },
1886
- sessions: mr,
2043
+ sessions: _r,
1887
2044
  colorScheme: J
1888
- }, br = {
2045
+ }, Dr = {
1889
2046
  type: "futures",
1890
2047
  exchange: "HNX",
1891
2048
  currency: "VND",
@@ -1899,14 +2056,44 @@ var J = {
1899
2056
  ceilingPercent: 7,
1900
2057
  floorPercent: 7
1901
2058
  },
1902
- sessions: hr,
2059
+ sessions: vr,
1903
2060
  colorScheme: J
1904
- }, xr = {
2061
+ }, Or = {
2062
+ type: "stock",
2063
+ exchange: "KRX",
2064
+ currency: "KRW",
2065
+ pricePrecision: 0,
2066
+ volumeUnit: 1,
2067
+ priceStep: 1,
2068
+ priceSteps: xr,
2069
+ timeZone: mr,
2070
+ priceLimits: {
2071
+ enabled: !0,
2072
+ ceilingPercent: 30,
2073
+ floorPercent: 30,
2074
+ roundMove: !0
2075
+ },
2076
+ sessions: yr,
2077
+ colorScheme: pr
2078
+ }, kr = {
2079
+ ...Or,
2080
+ exchange: "NXT",
2081
+ sessions: br
2082
+ }, Ar = {
2083
+ type: "crypto",
2084
+ exchange: "UPBIT",
2085
+ currency: "KRW",
2086
+ priceStep: 1e-8,
2087
+ priceSteps: Sr,
2088
+ timeZone: mr,
2089
+ priceLimits: { enabled: !1 },
2090
+ colorScheme: pr
2091
+ }, jr = {
1905
2092
  type: "crypto",
1906
2093
  currency: "USDT",
1907
2094
  pricePrecision: 2,
1908
2095
  priceLimits: { enabled: !1 }
1909
- }, Sr = {
2096
+ }, Mr = {
1910
2097
  type: "stock",
1911
2098
  exchange: "NYSE",
1912
2099
  currency: "USD",
@@ -1935,35 +2122,38 @@ var J = {
1935
2122
  }
1936
2123
  ]
1937
2124
  };
1938
- function Cr(e) {
2125
+ function Nr(e) {
2126
+ return Pr(e, J);
2127
+ }
2128
+ function Pr(e, t) {
1939
2129
  return {
1940
2130
  ...e,
1941
- candleUp: J.up,
1942
- candleDown: J.down,
1943
- candleUpWick: J.up,
1944
- candleDownWick: J.down
2131
+ candleUp: t.up,
2132
+ candleDown: t.down,
2133
+ candleUpWick: t.up,
2134
+ candleDownWick: t.down
1945
2135
  };
1946
2136
  }
1947
2137
  var X = 1e-9;
1948
- function wr(e, t) {
2138
+ function Fr(e, t) {
1949
2139
  let n = t.priceStep;
1950
2140
  for (let r of t.priceSteps ?? []) e + X >= r.from && (n = r.step);
1951
2141
  return n !== void 0 && n > 0 ? n : void 0;
1952
2142
  }
1953
- function Tr(e, t) {
2143
+ function Ir(e, t) {
1954
2144
  let n = t.priceStep;
1955
2145
  for (let r of t.priceSteps ?? []) e - X > r.from && (n = r.step);
1956
2146
  return n !== void 0 && n > 0 ? n : void 0;
1957
2147
  }
1958
2148
  function Z(e, t, n = "nearest") {
1959
- let r = wr(e, t);
2149
+ let r = Fr(e, t);
1960
2150
  if (r === void 0 || !Number.isFinite(e)) return e;
1961
2151
  let i = e / r, a = n === "down" ? Math.floor(i + X) : n === "up" ? Math.ceil(i - X) : Math.round(i);
1962
2152
  return Number((a * r).toFixed(Rt(r)));
1963
2153
  }
1964
- function Er(e, t) {
2154
+ function Lr(e, t) {
1965
2155
  if (!t.priceLimits?.enabled || !t.priceLimits.ceilingPercent) return null;
1966
- 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 = wr(i, t);
2156
+ 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 = Fr(i, t);
1967
2157
  if (s === void 0) return {
1968
2158
  ceiling: a,
1969
2159
  floor: o,
@@ -1975,15 +2165,23 @@ function Er(e, t) {
1975
2165
  floor: i,
1976
2166
  reference: i
1977
2167
  };
1978
- let l = Z(a, t, "down"), u = Z(o, t, "up");
1979
- return l <= i && (l = c), u >= i && (u = Z(i - (Tr(i, t) ?? s), t)), u <= 0 && (u = i), {
2168
+ let l, u;
2169
+ if (t.priceLimits.roundMove) {
2170
+ let e = {
2171
+ ...t,
2172
+ priceStep: s,
2173
+ priceSteps: void 0
2174
+ };
2175
+ l = Z(i + Z(i * n, e, "down"), t, "down"), u = Z(i - Z(i * r, e, "down"), t, "down");
2176
+ } else l = Z(a, t, "down"), u = Z(o, t, "up");
2177
+ return l <= i && (l = c), u >= i && (u = Z(i - (Ir(i, t) ?? s), t)), u <= 0 && (u = i), {
1980
2178
  ceiling: l,
1981
2179
  floor: u,
1982
2180
  reference: i
1983
2181
  };
1984
2182
  }
1985
2183
  var Q = (e, t) => Math.round(e * t * 1e9) / 1e9;
1986
- function Dr(e, t) {
2184
+ function Rr(e, t) {
1987
2185
  let n = Math.round(Math.log10(t));
1988
2186
  return {
1989
2187
  ...e,
@@ -1999,11 +2197,11 @@ function Dr(e, t) {
1999
2197
  }
2000
2198
  };
2001
2199
  }
2002
- var Or = 6e4, kr = 864e5;
2003
- function Ar(e, t) {
2200
+ var zr = 6e4, Br = 864e5;
2201
+ function Vr(e, t) {
2004
2202
  let n, r;
2005
2203
  if (t) {
2006
- let i = new Date(e + x(t, e) * Or);
2204
+ let i = new Date(e + b(t, e) * zr);
2007
2205
  n = i.getUTCHours(), r = i.getUTCMinutes();
2008
2206
  } else {
2009
2207
  let t = new Date(e);
@@ -2011,31 +2209,31 @@ function Ar(e, t) {
2011
2209
  }
2012
2210
  return `${String(n).padStart(2, "0")}:${String(r).padStart(2, "0")}`;
2013
2211
  }
2014
- function jr(e, t = Date.now(), n) {
2015
- if (n !== void 0 && !b(n)) return null;
2016
- let r = Ar(t, n);
2212
+ function Hr(e, t = Date.now(), n) {
2213
+ if (n !== void 0 && !Ne(n)) return null;
2214
+ let r = Vr(t, n);
2017
2215
  for (let t of e) if (r >= t.startTime && r < t.endTime) return t;
2018
2216
  return null;
2019
2217
  }
2020
- var $ = (e) => String(e).padStart(2, "0"), Mr = (e) => {
2218
+ var $ = (e) => String(e).padStart(2, "0"), Ur = (e) => {
2021
2219
  let t = new Date(e);
2022
2220
  return `${t.getUTCFullYear()}-${$(t.getUTCMonth() + 1)}-${$(t.getUTCDate())}`;
2023
- }, Nr = 4, Pr = 7 * 36e5;
2024
- function Fr(e, t, n) {
2025
- let r = Date.UTC(e, t - 1, 1), i = 1 + (Nr - new Date(r).getUTCDay() + 7) % 7, a = Date.UTC(e, t - 1, i + 14), o = (e) => {
2221
+ }, Wr = 4, Gr = 7 * 36e5;
2222
+ function Kr(e, t, n) {
2223
+ let r = Date.UTC(e, t - 1, 1), i = 1 + (Wr - new Date(r).getUTCDay() + 7) % 7, a = Date.UTC(e, t - 1, i + 14), o = (e) => {
2026
2224
  let t = new Date(e).getUTCDay();
2027
- return t === 0 || t === 6 || (n?.(Mr(e)) ?? !1);
2225
+ return t === 0 || t === 6 || (n?.(Ur(e)) ?? !1);
2028
2226
  };
2029
- for (; o(a);) a -= kr;
2030
- return Mr(a);
2227
+ for (; o(a);) a -= Br;
2228
+ return Ur(a);
2031
2229
  }
2032
- function Ir(e, t) {
2033
- let n = Mr(e + Pr), r = (e, n) => ({
2230
+ function qr(e, t) {
2231
+ let n = Ur(e + Gr), r = (e, n) => ({
2034
2232
  symbol: `VN30F${$(e % 100)}${$(n)}`,
2035
2233
  year: e,
2036
2234
  month: n,
2037
- lastTradingDay: Fr(e, n, t)
2038
- }), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e + Pr), o = r(a.getUTCFullYear(), a.getUTCMonth() + 1);
2235
+ lastTradingDay: Kr(e, n, t)
2236
+ }), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e + Gr), o = r(a.getUTCFullYear(), a.getUTCMonth() + 1);
2039
2237
  n > o.lastTradingDay && (o = i(o));
2040
2238
  let s = [o, i(o)], c = i(s[1]);
2041
2239
  for (; s.length < 4;) c.month % 3 == 0 && s.push(c), c = i(c);
@@ -2043,7 +2241,7 @@ function Ir(e, t) {
2043
2241
  }
2044
2242
  //#endregion
2045
2243
  //#region src/icons/iconSet.ts
2046
- var Lr = {
2244
+ var Jr = {
2047
2245
  cursor: { d: "M6 3.5L18.5 12.5L12.6 13.6L9.7 19.4z" },
2048
2246
  trendingUp: { d: "M3 17L9 11L13 14.5L21 6.5M15 6.5H21V12.5" },
2049
2247
  trendingDown: { d: "M3 7L9 13L13 9.5L21 17.5M15 17.5H21V11.5" },
@@ -2177,7 +2375,7 @@ var Lr = {
2177
2375
  ]
2178
2376
  ] },
2179
2377
  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" }
2180
- }, Rr = {
2378
+ }, Yr = {
2181
2379
  trendLine: {
2182
2380
  d: "M5 18L19 6",
2183
2381
  dots: [[5, 18], [19, 6]]
@@ -2530,7 +2728,7 @@ var Lr = {
2530
2728
  ],
2531
2729
  dash: "M12 3V21"
2532
2730
  }
2533
- }, zr = {
2731
+ }, Xr = {
2534
2732
  candlestick: {
2535
2733
  d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19",
2536
2734
  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"]
@@ -2597,21 +2795,21 @@ var Lr = {
2597
2795
  "M16 4.5h3v6h-3z"
2598
2796
  ]
2599
2797
  }
2600
- }, Br = 1.75, Vr = .22, Hr = /* @__PURE__ */ new WeakMap();
2601
- function Ur(e) {
2602
- let t = Hr.get(e);
2798
+ }, Zr = 1.75, Qr = .22, $r = /* @__PURE__ */ new WeakMap();
2799
+ function ei(e) {
2800
+ let t = $r.get(e);
2603
2801
  if (t) return t;
2604
2802
  let n = "";
2605
- e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${Vr}" stroke="none"/>`);
2803
+ e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${Qr}" stroke="none"/>`);
2606
2804
  for (let t of e.fills ?? []) n += `<path d="${t}" fill="currentColor" stroke="none"/>`;
2607
2805
  e.d && (n += `<path d="${e.d}"/>`), e.dash && (n += `<path d="${e.dash}" stroke-dasharray="2 2.5"/>`);
2608
- for (let [t, r, i = Br] of e.dots ?? []) n += `<circle cx="${t}" cy="${r}" r="${i}" fill="currentColor" stroke="none"/>`;
2609
- return Hr.set(e, n), n;
2806
+ for (let [t, r, i = Zr] of e.dots ?? []) n += `<circle cx="${t}" cy="${r}" r="${i}" fill="currentColor" stroke="none"/>`;
2807
+ return $r.set(e, n), n;
2610
2808
  }
2611
- function Wr(e, t) {
2612
- 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">${Ur(e)}</svg>`;
2809
+ function ti(e, t) {
2810
+ 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">${ei(e)}</svg>`;
2613
2811
  }
2614
2812
  //#endregion
2615
- export { t as CHART_STYLE_KEYS, zr as CHART_TYPE_ICONS, bn as DARK_PRICE_LIMITS, B as DARK_TERMINAL, Cn as DARK_THEME, Yn as DEFAULT_BAR_SPACING, Jn as DEFAULT_BAR_WIDTH, Un as DEFAULT_CHART_OPTIONS, n as DEFAULT_DRAWING_STYLE, cn as DEFAULT_FONT_FAMILY, $n as DEFAULT_PANEL_HEIGHT, o as DEFAULT_RECONNECT, i as DEFAULT_SIGNAL_STYLE, s as DEFAULT_STREAM_CONFIG, qn as DEFAULT_TIMEFRAME_FAVORITES, a as DEFAULT_TRADE_ZONE_STYLE, r as DEFAULT_TRADING_CONFIG, Rr as DRAWING_TOOL_ICONS, tr as FIBONACCI, pr as HNX_SESSIONS, fr as HOSE_SESSIONS, Br as ICON_DOT_RADIUS, Vr as ICON_SOFT_OPACITY, xn as LIGHT_PRICE_LIMITS, wn as LIGHT_THEME, e as LayerType, xr as MARKET_CRYPTO, vr as MARKET_HNX, gr as MARKET_HOSE, _r as MARKET_HOSE_ETF, Sr as MARKET_NYSE, yr as MARKET_UPCOM, br as MARKET_VN30F, Qn as MIN_PANEL_HEIGHT, ce as MS_TIME_THRESHOLD, er as PHI, Xn as PRICE_AXIS_WIDTH, St as PRICE_SOURCES, ln as SANS_FONT_FAMILY, I as TC_PALETTE, Sn as TC_SERIES_COLORS, Wn as TIMEFRAMES_CRYPTO, Kn as TIMEFRAMES_FOREX, Gn as TIMEFRAMES_STOCK, Zn as TIME_AXIS_HEIGHT, Lr as UI_ICONS, mr as UPCOM_SESSIONS, hr as VN30F_SESSIONS, J as VN_COLORS, dn as VOLUME_ALPHA, We as alignToTimeframe, mt as autoPricePrecision, ut as barDateParts, lt as barDateZone, le as barTimeUnit, Je as barsAreDaily, Hn as chartStyleValue, ne as clamp, Er as computePriceLimits, ge as computePriceRange, se as computeTickStep, g as contrastRatio, Cr as createVNTheme, xt as detectPrecision, Yt as drawingOption, W as en, pe as findBarIndex, he as fitPriceRange, _t as formatFraction, q as formatNumber, A as formatPrice, gt as formatPriceScaleLabel, Ue as formatTimestamp, ur as formatVND, bt as formatVolume, dr as formatVolumeLoc, vt as fractionTick, jr as getCurrentSession, or as getLocale, lr as getLocaleStrings, ve as hexToRgba, Wr as iconSvg, Et as indicatorSource, we as inkOn, ie as inverseLerp, Ke as isDateOnly, Ct as isPriceSource, He as isTimeFrame, S as isUtcTimeZone, b as isValidTimeZone, re as lerp, be as lerpColor, Ln as lineDash, Vt as marketStatus, _e as mergeBar, oe as niceNumber, de as normalizeBar, ue as normalizeBarTime, C as offsetAt, me as padPriceRange, Dt as parseIndicatorSource, T as parseTimeframe, nr as phiStep, Ft as pickBaseTimeframe, yt as priceFormatterFor, wr as priceStepAt, pt as priceTagText, Lt as rankSymbols, Nn as readChartStyleOverrides, sn as readChartTypeOptions, In as readIndicatorPlotStyles, te as readNews, Pn as readPaneStyle, l as readQuote, Ce as readableOn, cr as registerLocale, At as resampleBars, zn as resolveChartTheme, Xt as resolveDrawingOptions, V as resolveVolumeColors, Z as roundToPriceStep, ae as roundToStep, qt as sanitizeDrawingOptions, an as sanitizeDrawingStyle, Dr as scaleMarketPrices, j as sessionMinute, ar as setLocale, fe as sliceVisibleData, wt as sourcePrice, Rt as stepDecimals, zt as symbolTimeZone, sr as t, Ve as tickBarCount, Ge as timeParts, st as timeframeBucketStart, it as timeframeFollowsDays, at as timeframeSpansDays, E as timeframeToMs, Ye as tzLabel, rr as vi, Ir as vn30fContracts, Fr as vn30fLastTradingDay, L as volumeColor, Fe as wallToUtc, m as withAlpha, x as zoneOffsetMinutes, Le as zonedDateFormatter };
2813
+ export { t as CHART_STYLE_KEYS, Xr as CHART_TYPE_ICONS, bn as DARK_PRICE_LIMITS, B as DARK_TERMINAL, Cn as DARK_THEME, Yn as DEFAULT_BAR_SPACING, Jn as DEFAULT_BAR_WIDTH, Un as DEFAULT_CHART_OPTIONS, n as DEFAULT_DRAWING_STYLE, cn as DEFAULT_FONT_FAMILY, $n as DEFAULT_PANEL_HEIGHT, o as DEFAULT_RECONNECT, i as DEFAULT_SIGNAL_STYLE, s as DEFAULT_STREAM_CONFIG, qn as DEFAULT_TIMEFRAME_FAVORITES, a as DEFAULT_TRADE_ZONE_STYLE, r as DEFAULT_TRADING_CONFIG, Yr as DRAWING_TOOL_ICONS, tr as FIBONACCI, gr as HNX_SESSIONS, hr as HOSE_SESSIONS, Zr as ICON_DOT_RADIUS, Qr as ICON_SOFT_OPACITY, yr as KRX_SESSIONS, pr as KR_COLORS, xn as LIGHT_PRICE_LIMITS, wn as LIGHT_THEME, e as LayerType, jr as MARKET_CRYPTO, Tr as MARKET_HNX, Cr as MARKET_HOSE, wr as MARKET_HOSE_ETF, Or as MARKET_KRX, kr as MARKET_NXT, Mr as MARKET_NYSE, Ar as MARKET_UPBIT_KRW, Er as MARKET_UPCOM, Dr as MARKET_VN30F, Qn as MIN_PANEL_HEIGHT, ce as MS_TIME_THRESHOLD, br as NXT_SESSIONS, er as PHI, Xn as PRICE_AXIS_WIDTH, Ct as PRICE_SOURCES, ln as SANS_FONT_FAMILY, I as TC_PALETTE, Sn as TC_SERIES_COLORS, Wn as TIMEFRAMES_CRYPTO, Kn as TIMEFRAMES_FOREX, Gn as TIMEFRAMES_STOCK, Zn as TIME_AXIS_HEIGHT, Jr as UI_ICONS, _r as UPCOM_SESSIONS, vr as VN30F_SESSIONS, J as VN_COLORS, dn as VOLUME_ALPHA, Ge as alignToTimeframe, ht as autoPricePrecision, dt as barDateParts, ut as barDateZone, le as barTimeUnit, Ye as barsAreDaily, Hn as chartStyleValue, re as clamp, Lr as computePriceLimits, ge as computePriceRange, se as computeTickStep, g as contrastRatio, Pr as createMarketTheme, Nr as createVNTheme, St as detectPrecision, Yt as drawingOption, W as en, pe as findBarIndex, he as fitPriceRange, vt as formatFraction, q as formatNumber, k as formatPrice, _t as formatPriceScaleLabel, We as formatTimestamp, ur as formatVND, xt as formatVolume, fr as formatVolumeLoc, yt as fractionTick, Hr as getCurrentSession, or as getLocale, lr as getLocaleStrings, ve as hexToRgba, ti as iconSvg, Dt as indicatorSource, we as inkOn, ae as inverseLerp, qe as isDateOnly, wt as isPriceSource, Ue as isTimeFrame, x as isUtcTimeZone, Ne as isValidTimeZone, ie as lerp, be as lerpColor, Ln as lineDash, Vt as marketStatus, _e as mergeBar, p as niceNumber, de as normalizeBar, ue as normalizeBarTime, S as offsetAt, me as padPriceRange, Ot as parseIndicatorSource, w as parseTimeframe, nr as phiStep, Ft as pickBaseTimeframe, bt as priceFormatterFor, Fr as priceStepAt, mt as priceTagText, Lt as rankSymbols, Nn as readChartStyleOverrides, sn as readChartTypeOptions, In as readIndicatorPlotStyles, ne as readNews, Pn as readPaneStyle, l as readQuote, Ce as readableOn, cr as registerLocale, jt as resampleBars, zn as resolveChartTheme, Xt as resolveDrawingOptions, V as resolveVolumeColors, Z as roundToPriceStep, oe as roundToStep, qt as sanitizeDrawingOptions, an as sanitizeDrawingStyle, Rr as scaleMarketPrices, j as sessionMinute, ar as setLocale, fe as sliceVisibleData, Tt as sourcePrice, Rt as stepDecimals, zt as symbolTimeZone, sr as t, He as tickBarCount, Ke as timeParts, ct as timeframeBucketStart, at as timeframeFollowsDays, ot as timeframeSpansDays, T as timeframeToMs, Xe as tzLabel, rr as vi, qr as vn30fContracts, Kr as vn30fLastTradingDay, L as volumeColor, Ie as wallToUtc, m as withAlpha, b as zoneOffsetMinutes, Re as zonedDateFormatter };
2616
2814
 
2617
2815
  //# sourceMappingURL=index.js.map