@tradecanvas/commons 1.56.0 → 1.59.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/i18n/index.d.ts +3 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +453 -251
- package/dist/index.js.map +1 -1
- package/dist/market/index.d.ts +1 -1
- package/dist/market/index.d.ts.map +1 -1
- package/dist/market/presets.d.ts +30 -0
- package/dist/market/presets.d.ts.map +1 -1
- package/dist/market/types.d.ts +8 -1
- package/dist/market/types.d.ts.map +1 -1
- package/package.json +1 -1
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,
|
|
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
|
-
},
|
|
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,61 +210,61 @@ var d = 300, f = 1e3, p = (e, t) => {
|
|
|
210
210
|
return;
|
|
211
211
|
}
|
|
212
212
|
};
|
|
213
|
-
function
|
|
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 =
|
|
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 =
|
|
223
|
+
}, a = te(e.url);
|
|
224
224
|
a && (i.url = a);
|
|
225
|
-
let o =
|
|
225
|
+
let o = f(e.source, d);
|
|
226
226
|
o && (i.source = o);
|
|
227
|
-
let s =
|
|
227
|
+
let s = f(e.summary, ee);
|
|
228
228
|
s && (i.summary = s);
|
|
229
|
-
let c =
|
|
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
|
|
236
|
+
function re(e, t, n) {
|
|
237
237
|
return Math.max(t, Math.min(n, e));
|
|
238
238
|
}
|
|
239
|
-
function
|
|
239
|
+
function ie(e, t, n) {
|
|
240
240
|
return e + (t - e) * n;
|
|
241
241
|
}
|
|
242
|
-
function
|
|
242
|
+
function ae(e, t, n) {
|
|
243
243
|
return e === t ? 0 : (n - e) / (t - e);
|
|
244
244
|
}
|
|
245
|
-
function
|
|
245
|
+
function oe(e, t) {
|
|
246
246
|
return Math.round(e / t) * t;
|
|
247
247
|
}
|
|
248
|
-
function
|
|
248
|
+
function se(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
|
-
function
|
|
253
|
-
return
|
|
252
|
+
function ce(e, t, n) {
|
|
253
|
+
return se(se(t - e, !1) / (n - 1), !0);
|
|
254
254
|
}
|
|
255
255
|
//#endregion
|
|
256
256
|
//#region src/utils/data.ts
|
|
257
|
-
var
|
|
258
|
-
function
|
|
257
|
+
var le = 1e11;
|
|
258
|
+
function ue(e) {
|
|
259
259
|
let t = e.length > 0 ? e[e.length - 1].time : NaN;
|
|
260
260
|
return Number.isFinite(t) ? Math.abs(t) >= 1e11 ? 1 : 1e3 : 1;
|
|
261
261
|
}
|
|
262
|
-
function
|
|
262
|
+
function de(e, t) {
|
|
263
263
|
return t === void 0 ? Math.abs(e) >= 1e11 ? e : e * 1e3 : e * t;
|
|
264
264
|
}
|
|
265
|
-
function
|
|
265
|
+
function fe(e) {
|
|
266
266
|
return {
|
|
267
|
-
time:
|
|
267
|
+
time: de(e.time ?? e.t ?? 0),
|
|
268
268
|
open: e.open ?? e.o ?? 0,
|
|
269
269
|
high: e.high ?? e.h ?? 0,
|
|
270
270
|
low: e.low ?? e.l ?? 0,
|
|
@@ -272,11 +272,11 @@ function de(e) {
|
|
|
272
272
|
volume: e.volume ?? e.v ?? 0
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
|
-
function
|
|
275
|
+
function pe(e, t, n) {
|
|
276
276
|
let r = Math.max(0, t), i = Math.min(e.length, n + 1);
|
|
277
277
|
return e.slice(r, i);
|
|
278
278
|
}
|
|
279
|
-
function
|
|
279
|
+
function me(e, t) {
|
|
280
280
|
let n = 0, r = e.length - 1;
|
|
281
281
|
for (; n <= r;) {
|
|
282
282
|
let i = n + r >>> 1;
|
|
@@ -286,7 +286,7 @@ function pe(e, t) {
|
|
|
286
286
|
}
|
|
287
287
|
return n;
|
|
288
288
|
}
|
|
289
|
-
function
|
|
289
|
+
function he(e, t, n, r = !1) {
|
|
290
290
|
let i = r && e > 0 && t > 0 ? Math.log(t / e) : NaN;
|
|
291
291
|
if (Number.isFinite(i)) {
|
|
292
292
|
let r = i || Math.log(1 + 2 * n), a = Math.exp(r * n);
|
|
@@ -301,7 +301,7 @@ function me(e, t, n, r = !1) {
|
|
|
301
301
|
max: t + a * n
|
|
302
302
|
};
|
|
303
303
|
}
|
|
304
|
-
function
|
|
304
|
+
function ge(e, t, n, r = !1) {
|
|
305
305
|
let i = Math.max(1 - n.top - n.bottom, 2 ** -52), a = r && e > 0 && t > 0 ? Math.log(t / e) : NaN;
|
|
306
306
|
if (Number.isFinite(a)) {
|
|
307
307
|
let r = (a || Math.log(1.01)) / i;
|
|
@@ -316,7 +316,7 @@ function he(e, t, n, r = !1) {
|
|
|
316
316
|
max: t + o * n.top
|
|
317
317
|
};
|
|
318
318
|
}
|
|
319
|
-
function
|
|
319
|
+
function _e(e, t, n, r = .05, i = !1) {
|
|
320
320
|
if (e.length === 0) return {
|
|
321
321
|
min: 0,
|
|
322
322
|
max: 1
|
|
@@ -326,9 +326,9 @@ function ge(e, t, n, r = .05, i = !1) {
|
|
|
326
326
|
return s === Infinity ? {
|
|
327
327
|
min: 0,
|
|
328
328
|
max: 1
|
|
329
|
-
} :
|
|
329
|
+
} : he(s, c, r, i);
|
|
330
330
|
}
|
|
331
|
-
function
|
|
331
|
+
function ve(e, t) {
|
|
332
332
|
return {
|
|
333
333
|
...e,
|
|
334
334
|
high: Math.max(e.high, t.price),
|
|
@@ -339,18 +339,18 @@ function _e(e, t) {
|
|
|
339
339
|
}
|
|
340
340
|
//#endregion
|
|
341
341
|
//#region src/utils/color.ts
|
|
342
|
-
function
|
|
342
|
+
function ye(e, t = 1) {
|
|
343
343
|
let n = e.slice(1);
|
|
344
344
|
return (n.length === 3 || n.length === 4) && (n = [...n.slice(0, 3)].map((e) => e + e).join("")), `rgba(${parseInt(n.slice(0, 2), 16)}, ${parseInt(n.slice(2, 4), 16)}, ${parseInt(n.slice(4, 6), 16)}, ${t})`;
|
|
345
345
|
}
|
|
346
|
-
function
|
|
346
|
+
function p(e, t) {
|
|
347
347
|
let n = e.trim();
|
|
348
|
-
if (/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(n)) return
|
|
348
|
+
if (/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(n)) return ye(n, t);
|
|
349
349
|
let r = n.match(/^rgba?\(\s*(\d+(?:\.\d+)?)[\s,]+(\d+(?:\.\d+)?)[\s,]+(\d+(?:\.\d+)?)/i);
|
|
350
350
|
return r ? `rgba(${r[1]}, ${r[2]}, ${r[3]}, ${t})` : e;
|
|
351
351
|
}
|
|
352
|
-
var
|
|
353
|
-
function
|
|
352
|
+
var be = 3;
|
|
353
|
+
function xe(e) {
|
|
354
354
|
let t = e.trim(), n = /^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.exec(t);
|
|
355
355
|
if (n) {
|
|
356
356
|
let e = n[1];
|
|
@@ -373,14 +373,14 @@ function h(e) {
|
|
|
373
373
|
a: Math.min(1, Math.max(0, i))
|
|
374
374
|
};
|
|
375
375
|
}
|
|
376
|
-
function
|
|
377
|
-
let r =
|
|
376
|
+
function Se(e, t, n) {
|
|
377
|
+
let r = xe(e), i = xe(t);
|
|
378
378
|
if (!r || !i) return n < .5 ? e : t;
|
|
379
379
|
let a = r.a + (i.a - r.a) * n, o = (e, t) => a === 0 ? 0 : Math.round((e * r.a + (t * i.a - e * r.a) * n) / a), s = `${o(r.r, i.r)},${o(r.g, i.g)},${o(r.b, i.b)}`;
|
|
380
|
-
return a >= 1 ? `rgb(${s})` : `rgba(${s},${Number(a.toFixed(
|
|
380
|
+
return a >= 1 ? `rgb(${s})` : `rgba(${s},${Number(a.toFixed(be))})`;
|
|
381
381
|
}
|
|
382
|
-
function
|
|
383
|
-
let t =
|
|
382
|
+
function Ce(e) {
|
|
383
|
+
let t = xe(e);
|
|
384
384
|
if (!t) return null;
|
|
385
385
|
let n = (e) => {
|
|
386
386
|
let t = e / 255;
|
|
@@ -388,26 +388,26 @@ function xe(e) {
|
|
|
388
388
|
};
|
|
389
389
|
return .2126 * n(t.r) + .7152 * n(t.g) + .0722 * n(t.b);
|
|
390
390
|
}
|
|
391
|
-
function
|
|
392
|
-
let n =
|
|
391
|
+
function m(e, t) {
|
|
392
|
+
let n = Ce(e), r = Ce(t);
|
|
393
393
|
return n === null || r === null ? null : (Math.max(n, r) + .05) / (Math.min(n, r) + .05);
|
|
394
394
|
}
|
|
395
|
-
var
|
|
396
|
-
function
|
|
397
|
-
let i =
|
|
395
|
+
var we = 20;
|
|
396
|
+
function Te(e, t, n, r) {
|
|
397
|
+
let i = m(e, t);
|
|
398
398
|
if (i === null || i >= r) return e;
|
|
399
|
-
for (let i = 1; i <=
|
|
400
|
-
let a =
|
|
401
|
-
if ((
|
|
399
|
+
for (let i = 1; i <= we; i++) {
|
|
400
|
+
let a = Se(e, n, i / we);
|
|
401
|
+
if ((m(a, t) ?? 0) >= r) return a;
|
|
402
402
|
}
|
|
403
403
|
return n;
|
|
404
404
|
}
|
|
405
|
-
function
|
|
406
|
-
return (
|
|
405
|
+
function Ee(e, t, n) {
|
|
406
|
+
return (m(e, t) ?? 0) >= (m(e, n) ?? 0) ? t : n;
|
|
407
407
|
}
|
|
408
408
|
//#endregion
|
|
409
409
|
//#region src/utils/timezone.ts
|
|
410
|
-
var
|
|
410
|
+
var h = 6e4, De = 1440 * h, g = 15 * h, Oe = 8192, ke = 7 * De, Ae = 4096, je = new Set([
|
|
411
411
|
"UTC",
|
|
412
412
|
"Etc/UTC",
|
|
413
413
|
"GMT",
|
|
@@ -418,9 +418,9 @@ var _ = 6e4, Te = 1440 * _, v = 15 * _, Ee = 8192, De = 7 * Te, Oe = 4096, ke =
|
|
|
418
418
|
"Etc/Universal",
|
|
419
419
|
"Zulu",
|
|
420
420
|
"Etc/Zulu"
|
|
421
|
-
]),
|
|
422
|
-
function
|
|
423
|
-
let t =
|
|
421
|
+
]), Me = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), Ne = /* @__PURE__ */ new Map();
|
|
422
|
+
function Pe(e) {
|
|
423
|
+
let t = Me.get(e);
|
|
424
424
|
return t || (t = new Intl.DateTimeFormat("en-US", {
|
|
425
425
|
timeZone: e,
|
|
426
426
|
hourCycle: "h23",
|
|
@@ -430,34 +430,34 @@ function Me(e) {
|
|
|
430
430
|
hour: "numeric",
|
|
431
431
|
minute: "numeric",
|
|
432
432
|
second: "numeric"
|
|
433
|
-
}),
|
|
433
|
+
}), Me.set(e, t)), t;
|
|
434
434
|
}
|
|
435
|
-
function
|
|
435
|
+
function v(e) {
|
|
436
436
|
if (!e) return !1;
|
|
437
437
|
try {
|
|
438
|
-
return
|
|
438
|
+
return Pe(e), !0;
|
|
439
439
|
} catch {
|
|
440
440
|
return !1;
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
|
-
function
|
|
444
|
-
if (!Number.isFinite(t) ||
|
|
445
|
-
let n =
|
|
446
|
-
n || (n = /* @__PURE__ */ new Map(),
|
|
447
|
-
let r = Math.floor(t /
|
|
448
|
-
return i || (i =
|
|
443
|
+
function y(e, t) {
|
|
444
|
+
if (!Number.isFinite(t) || je.has(e)) return 0;
|
|
445
|
+
let n = Ne.get(e);
|
|
446
|
+
n || (n = /* @__PURE__ */ new Map(), Ne.set(e, n));
|
|
447
|
+
let r = Math.floor(t / ke), i = n.get(r);
|
|
448
|
+
return i || (i = Fe(e, r * ke), n.size >= Ae && n.clear(), n.set(r, i)), t < i.change ? i.before : i.after;
|
|
449
449
|
}
|
|
450
|
-
function
|
|
451
|
-
let n =
|
|
450
|
+
function Fe(e, t) {
|
|
451
|
+
let n = b(e, t), r = t + ke - g, i = b(e, r);
|
|
452
452
|
if (i === n) return {
|
|
453
453
|
before: n,
|
|
454
454
|
change: Infinity,
|
|
455
455
|
after: i
|
|
456
456
|
};
|
|
457
457
|
let a = t;
|
|
458
|
-
for (; r - a >
|
|
459
|
-
let t = a + Math.floor((r - a) /
|
|
460
|
-
|
|
458
|
+
for (; r - a > g;) {
|
|
459
|
+
let t = a + Math.floor((r - a) / g / 2) * g;
|
|
460
|
+
b(e, t) === n ? a = t : r = t;
|
|
461
461
|
}
|
|
462
462
|
return {
|
|
463
463
|
before: n,
|
|
@@ -465,11 +465,11 @@ function Ne(e, t) {
|
|
|
465
465
|
after: i
|
|
466
466
|
};
|
|
467
467
|
}
|
|
468
|
-
function
|
|
469
|
-
let n = Math.floor(t /
|
|
468
|
+
function b(e, t) {
|
|
469
|
+
let n = Math.floor(t / g), r = `${e}|${n}`, i = _.get(r);
|
|
470
470
|
if (i !== void 0) return i;
|
|
471
|
-
let a = n *
|
|
472
|
-
for (let t of
|
|
471
|
+
let a = n * g, o = 1970, s = 1, c = 1, l = 0, u = 0, d = 0;
|
|
472
|
+
for (let t of Pe(e).formatToParts(new Date(a))) {
|
|
473
473
|
let e = Number(t.value);
|
|
474
474
|
switch (t.type) {
|
|
475
475
|
case "year":
|
|
@@ -492,24 +492,24 @@ function Pe(e, t) {
|
|
|
492
492
|
break;
|
|
493
493
|
}
|
|
494
494
|
}
|
|
495
|
-
let
|
|
496
|
-
return
|
|
495
|
+
let ee = Math.round((Date.UTC(o, s - 1, c, l, u, d) - a) / h);
|
|
496
|
+
return _.size >= Oe && _.clear(), _.set(r, ee), ee;
|
|
497
497
|
}
|
|
498
|
-
function
|
|
499
|
-
return e === 0 || typeof e == "string" &&
|
|
498
|
+
function x(e) {
|
|
499
|
+
return e === 0 || typeof e == "string" && je.has(e);
|
|
500
500
|
}
|
|
501
|
-
function
|
|
502
|
-
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e :
|
|
501
|
+
function S(e, t) {
|
|
502
|
+
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : y(e, t);
|
|
503
503
|
}
|
|
504
|
-
function
|
|
505
|
-
let n = e -
|
|
506
|
-
if (n +
|
|
507
|
-
let r = e -
|
|
508
|
-
return r +
|
|
509
|
-
}
|
|
510
|
-
var
|
|
511
|
-
function
|
|
512
|
-
let r = `${e}|${JSON.stringify(t)}|${n === null ? "local" : typeof n == "number" ? `fixed:${n}` : n}`, i =
|
|
504
|
+
function Ie(e, t) {
|
|
505
|
+
let n = e - S(t, e - De) * h;
|
|
506
|
+
if (n + S(t, n) * h === e) return n;
|
|
507
|
+
let r = e - S(t, e + De) * h;
|
|
508
|
+
return r + S(t, r) * h === 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 {
|
|
@@ -523,12 +523,12 @@ function Le(e, t, n) {
|
|
|
523
523
|
timeZone: a
|
|
524
524
|
});
|
|
525
525
|
}
|
|
526
|
-
let s = typeof n == "number" ? n *
|
|
527
|
-
return i = (e) => o.format(new Date(e + s)),
|
|
526
|
+
let s = typeof n == "number" ? n * h : 0;
|
|
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
|
|
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
|
-
},
|
|
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
|
-
},
|
|
566
|
-
function
|
|
567
|
-
let t =
|
|
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
|
|
576
|
-
function
|
|
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 <=
|
|
580
|
+
return Number.isSafeInteger(n) && n <= Ve ? n : null;
|
|
581
581
|
}
|
|
582
|
-
function
|
|
583
|
-
return
|
|
582
|
+
function Ue(e) {
|
|
583
|
+
return w(e) !== null;
|
|
584
584
|
}
|
|
585
|
-
function
|
|
586
|
-
let t =
|
|
585
|
+
function T(e) {
|
|
586
|
+
let t = ze[e];
|
|
587
587
|
if (t !== void 0) return t;
|
|
588
|
-
let n =
|
|
589
|
-
return n ? n.count *
|
|
588
|
+
let n = w(e);
|
|
589
|
+
return n ? n.count * C[n.unit] : NaN;
|
|
590
590
|
}
|
|
591
|
-
function
|
|
592
|
-
let n = new Date(e), r =
|
|
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
|
|
606
|
-
let n =
|
|
605
|
+
function Ge(e, t) {
|
|
606
|
+
let n = T(t);
|
|
607
607
|
return Math.floor(e / n) * n;
|
|
608
608
|
}
|
|
609
|
-
function
|
|
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 +
|
|
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,71 +626,71 @@ function Ge(e, t) {
|
|
|
626
626
|
minutes: n.getUTCMinutes()
|
|
627
627
|
};
|
|
628
628
|
}
|
|
629
|
-
function
|
|
629
|
+
function qe(e) {
|
|
630
630
|
return e.hours === 0 && e.minutes === 0;
|
|
631
631
|
}
|
|
632
|
-
var
|
|
633
|
-
function
|
|
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
|
-
let n =
|
|
636
|
+
let n = ue(e), r = Infinity;
|
|
637
637
|
for (let i = 1; i < t; i++) {
|
|
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 >=
|
|
641
|
+
return r === Infinity ? void 0 : r >= Je;
|
|
642
642
|
}
|
|
643
|
-
function
|
|
644
|
-
let n =
|
|
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
|
|
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
|
-
},
|
|
651
|
-
function
|
|
652
|
-
let t =
|
|
653
|
-
return t || (t =
|
|
650
|
+
}, tt = 256, D = /* @__PURE__ */ new Map();
|
|
651
|
+
function O(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
655
|
function nt({ unit: e }) {
|
|
656
656
|
return e === "d" || e === "w" || e === "M";
|
|
657
657
|
}
|
|
658
658
|
function rt(e) {
|
|
659
|
-
return e.unit === "h" ? e.count > 1 &&
|
|
659
|
+
return e.unit === "h" ? e.count > 1 && $e % e.count === 0 : nt(e);
|
|
660
660
|
}
|
|
661
661
|
function it(e) {
|
|
662
|
-
return rt(
|
|
662
|
+
return rt(O(e));
|
|
663
663
|
}
|
|
664
664
|
function at(e) {
|
|
665
|
-
return nt(
|
|
665
|
+
return nt(O(e));
|
|
666
666
|
}
|
|
667
667
|
function ot(e) {
|
|
668
|
-
return e !== void 0 && !
|
|
668
|
+
return e !== void 0 && !x(e);
|
|
669
669
|
}
|
|
670
670
|
function st(e, t, n = 1) {
|
|
671
|
-
let r =
|
|
672
|
-
return !ot(a) || !rt(r) || typeof n == "object" && n.dates && e %
|
|
671
|
+
let r = O(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 % E === 0 ? ct(e, r, i) : Ie(ct(e + S(a, e) * Qe, r, i), a);
|
|
673
673
|
}
|
|
674
674
|
function ct(e, { count: t, unit: n }, r) {
|
|
675
675
|
if (n === "s" || n === "m" || n === "h" || n === "d") {
|
|
676
|
-
let r = t *
|
|
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 -
|
|
684
|
-
return
|
|
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
689
|
function lt(e, t, n) {
|
|
690
|
-
return e %
|
|
690
|
+
return e % E === 0 ? 0 : n && st(e, "1d", { timeZone: n }) === e ? n : t;
|
|
691
691
|
}
|
|
692
692
|
function ut(e, t, n) {
|
|
693
|
-
return
|
|
693
|
+
return Ke(e, lt(e, t, n));
|
|
694
694
|
}
|
|
695
695
|
//#endregion
|
|
696
696
|
//#region src/utils/precision.ts
|
|
@@ -710,7 +710,7 @@ function A(e, t = 2, n = "en-US") {
|
|
|
710
710
|
}
|
|
711
711
|
function mt(e, t) {
|
|
712
712
|
if (!(t > e) || !Number.isFinite(e) || !Number.isFinite(t)) return 2;
|
|
713
|
-
let n =
|
|
713
|
+
let n = ce(e, t, 8);
|
|
714
714
|
return n > 0 && n < 1 ? Math.ceil(-Math.log10(n)) + 1 : 2;
|
|
715
715
|
}
|
|
716
716
|
var ht = 2;
|
|
@@ -807,29 +807,29 @@ function At(e, t, n = 1) {
|
|
|
807
807
|
return i;
|
|
808
808
|
}
|
|
809
809
|
function jt(e, t, n) {
|
|
810
|
-
return typeof n == "number" || n.timeZone === void 0 || n.dates !== void 0 ||
|
|
810
|
+
return typeof n == "number" || n.timeZone === void 0 || n.dates !== void 0 || x(n.timeZone) || !it(t) ? n : {
|
|
811
811
|
...n,
|
|
812
|
-
dates:
|
|
812
|
+
dates: Ye(e) === !0
|
|
813
813
|
};
|
|
814
814
|
}
|
|
815
815
|
var Mt = (e) => e === "s" || e === "m" || e === "h" || e === "d";
|
|
816
816
|
function Nt(e, t) {
|
|
817
|
-
let n =
|
|
817
|
+
let n = w(e), r = w(t);
|
|
818
818
|
if (!n || !r) return !1;
|
|
819
|
-
let i =
|
|
820
|
-
return n.unit === "d" && n.count > 1 ? !1 : Mt(r.unit) ? Mt(n.unit) &&
|
|
819
|
+
let i = T(e);
|
|
820
|
+
return n.unit === "d" && n.count > 1 ? !1 : Mt(r.unit) ? Mt(n.unit) && T(t) % i === 0 : n.unit === r.unit ? r.count % n.count === 0 : Mt(n.unit) && Ot % i === 0;
|
|
821
821
|
}
|
|
822
822
|
function Pt(e, t) {
|
|
823
|
-
let n =
|
|
823
|
+
let n = T(e);
|
|
824
824
|
if (!(n < Ot)) return !0;
|
|
825
825
|
let r = (/* @__PURE__ */ new Date()).getUTCFullYear();
|
|
826
|
-
return [Date.UTC(r, 0, 1), Date.UTC(r, 6, 1)].every((e) =>
|
|
826
|
+
return [Date.UTC(r, 0, 1), Date.UTC(r, 6, 1)].every((e) => S(t, e) * kt % n === 0);
|
|
827
827
|
}
|
|
828
828
|
function Ft(e, t, n = {}) {
|
|
829
|
-
let { timeZone: r } = n, i = r !== void 0 && !
|
|
829
|
+
let { timeZone: r } = n, i = r !== void 0 && !x(r) && it(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 =
|
|
832
|
+
let t = T(n);
|
|
833
833
|
t > o && (a = n, o = t);
|
|
834
834
|
}
|
|
835
835
|
return a;
|
|
@@ -868,7 +868,7 @@ function Rt(e) {
|
|
|
868
868
|
function zt(e) {
|
|
869
869
|
return e?.timeZone ?? e?.timezone;
|
|
870
870
|
}
|
|
871
|
-
function
|
|
871
|
+
function Bt(e) {
|
|
872
872
|
let t = /^(\d{1,2}):(\d{2})$/.exec(e.trim());
|
|
873
873
|
if (!t) return null;
|
|
874
874
|
let n = Number(t[1]), r = Number(t[2]);
|
|
@@ -876,26 +876,26 @@ function j(e) {
|
|
|
876
876
|
}
|
|
877
877
|
//#endregion
|
|
878
878
|
//#region src/utils/marketStatus.ts
|
|
879
|
-
var
|
|
880
|
-
function
|
|
879
|
+
var j = 864e5, M = 6e4, Vt = 8;
|
|
880
|
+
function Ht(e, t) {
|
|
881
881
|
let n = zt(e), r = (e?.sessions ?? []).flatMap((e) => {
|
|
882
|
-
let t =
|
|
882
|
+
let t = Bt(e.start), n = Bt(e.end);
|
|
883
883
|
return t === null || n === null || t === n ? [] : [{
|
|
884
884
|
start: t,
|
|
885
885
|
end: n,
|
|
886
886
|
days: Array.isArray(e.days) ? e.days : null
|
|
887
887
|
}];
|
|
888
888
|
});
|
|
889
|
-
if (!n || !
|
|
889
|
+
if (!n || !v(n) || r.length === 0 || !Number.isFinite(t)) return {
|
|
890
890
|
state: "always",
|
|
891
891
|
next: null
|
|
892
892
|
};
|
|
893
|
-
let i =
|
|
894
|
-
for (let e = -1; e <=
|
|
895
|
-
let t = a + e *
|
|
893
|
+
let i = y(n, t) * M, a = Math.floor((t + i) / j) * j, o = (e) => e - y(n, e - y(n, e - i) * M) * M, s = [];
|
|
894
|
+
for (let e = -1; e <= Vt; e++) {
|
|
895
|
+
let t = a + e * j, n = (Math.floor(t / j) + 4) % 7;
|
|
896
896
|
for (let e of r) {
|
|
897
897
|
if (e.days && !e.days.includes(n)) continue;
|
|
898
|
-
let r = t + e.start *
|
|
898
|
+
let r = t + e.start * M, i = (e.end > e.start ? t : t + j) + e.end * M;
|
|
899
899
|
s.push([o(r), o(i)]);
|
|
900
900
|
}
|
|
901
901
|
}
|
|
@@ -918,15 +918,15 @@ function Vt(e, t) {
|
|
|
918
918
|
}
|
|
919
919
|
//#endregion
|
|
920
920
|
//#region src/utils/drawingOptions.ts
|
|
921
|
-
var
|
|
922
|
-
function
|
|
921
|
+
var Ut = 48, Wt = 2e3, Gt = 1e4;
|
|
922
|
+
function Kt(e) {
|
|
923
923
|
if (!Array.isArray(e)) return;
|
|
924
924
|
let t = [];
|
|
925
925
|
for (let n of e) {
|
|
926
|
-
if (t.length >=
|
|
926
|
+
if (t.length >= Ut) break;
|
|
927
927
|
if (typeof n != "object" || !n) continue;
|
|
928
928
|
let { value: e, visible: r, color: i } = n;
|
|
929
|
-
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) >
|
|
929
|
+
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) > Gt || r !== void 0 && typeof r != "boolean") continue;
|
|
930
930
|
let a = {
|
|
931
931
|
value: e,
|
|
932
932
|
visible: r ?? !0
|
|
@@ -935,98 +935,98 @@ function Gt(e) {
|
|
|
935
935
|
}
|
|
936
936
|
return t;
|
|
937
937
|
}
|
|
938
|
-
function
|
|
938
|
+
function qt(e, t) {
|
|
939
939
|
switch (e.kind) {
|
|
940
940
|
case "boolean": return typeof t == "boolean" ? t : void 0;
|
|
941
941
|
case "number": return typeof t != "number" || !Number.isFinite(t) ? void 0 : Math.min(e.max ?? Infinity, Math.max(e.min ?? -Infinity, t));
|
|
942
942
|
case "choice": return typeof t == "string" && e.choices.some((e) => e.value === t) ? t : void 0;
|
|
943
|
-
case "levels": return
|
|
944
|
-
case "text": return typeof t == "string" ? t.slice(0,
|
|
943
|
+
case "levels": return Kt(t);
|
|
944
|
+
case "text": return typeof t == "string" ? t.slice(0, Wt) : void 0;
|
|
945
945
|
}
|
|
946
946
|
}
|
|
947
|
-
function
|
|
947
|
+
function Jt(e, t) {
|
|
948
948
|
if (!e || typeof t != "object" || !t) return {};
|
|
949
949
|
let n = {};
|
|
950
950
|
for (let [r, i] of Object.entries(t)) {
|
|
951
951
|
let t = e[r];
|
|
952
952
|
if (!t) continue;
|
|
953
|
-
let a =
|
|
953
|
+
let a = qt(t, i);
|
|
954
954
|
a !== void 0 && (n[r] = a);
|
|
955
955
|
}
|
|
956
956
|
return n;
|
|
957
957
|
}
|
|
958
|
-
function
|
|
958
|
+
function Yt(e) {
|
|
959
959
|
return Array.isArray(e) ? e.map((e) => ({ ...e })) : e;
|
|
960
960
|
}
|
|
961
|
-
function
|
|
961
|
+
function Xt(e, t, n) {
|
|
962
962
|
let r = e?.[n];
|
|
963
|
-
return r ?
|
|
963
|
+
return r ? Yt((t && n in t ? qt(r, t[n]) : void 0) ?? r.default) : t?.[n];
|
|
964
964
|
}
|
|
965
|
-
function
|
|
965
|
+
function Zt(e, t) {
|
|
966
966
|
let n = {};
|
|
967
|
-
for (let r of Object.keys(e ?? {})) n[r] =
|
|
967
|
+
for (let r of Object.keys(e ?? {})) n[r] = Xt(e, t, r);
|
|
968
968
|
return n;
|
|
969
969
|
}
|
|
970
970
|
//#endregion
|
|
971
971
|
//#region src/utils/drawingStyle.ts
|
|
972
|
-
var
|
|
972
|
+
var Qt = [
|
|
973
973
|
"solid",
|
|
974
974
|
"dashed",
|
|
975
975
|
"dotted"
|
|
976
|
-
],
|
|
977
|
-
function
|
|
976
|
+
], $t = 64, en = 2e3, tn = 20, nn = 200;
|
|
977
|
+
function rn(e, t, n) {
|
|
978
978
|
return typeof e == "number" && Number.isFinite(e) ? Math.min(n, Math.max(t, e)) : void 0;
|
|
979
979
|
}
|
|
980
|
-
function rn(e) {
|
|
981
|
-
return typeof e == "string" && e.length > 0 && e.length <= Qt ? e : void 0;
|
|
982
|
-
}
|
|
983
980
|
function an(e) {
|
|
981
|
+
return typeof e == "string" && e.length > 0 && e.length <= $t ? e : void 0;
|
|
982
|
+
}
|
|
983
|
+
function on(e) {
|
|
984
984
|
if (typeof e != "object" || !e) return {};
|
|
985
|
-
let t = e, n = {}, r =
|
|
985
|
+
let t = e, n = {}, r = an(t.color);
|
|
986
986
|
r !== void 0 && (n.color = r);
|
|
987
|
-
let i =
|
|
988
|
-
i !== void 0 && (n.lineWidth = i),
|
|
989
|
-
let a =
|
|
987
|
+
let i = rn(t.lineWidth, .5, tn);
|
|
988
|
+
i !== void 0 && (n.lineWidth = i), Qt.includes(t.lineStyle) && (n.lineStyle = t.lineStyle);
|
|
989
|
+
let a = an(t.fillColor);
|
|
990
990
|
a !== void 0 && (n.fillColor = a);
|
|
991
|
-
let o =
|
|
991
|
+
let o = rn(t.fillOpacity, 0, 1);
|
|
992
992
|
o !== void 0 && (n.fillOpacity = o);
|
|
993
|
-
let s =
|
|
994
|
-
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0,
|
|
993
|
+
let s = rn(t.fontSize, 6, nn);
|
|
994
|
+
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0, en)), n;
|
|
995
995
|
}
|
|
996
996
|
//#endregion
|
|
997
997
|
//#region src/utils/chartTypeOptions.ts
|
|
998
|
-
var
|
|
998
|
+
var N = (e) => typeof e == "number" && Number.isFinite(e) && e > 0, P = (e, t, n) => typeof e == "number" && Number.isInteger(e) && e >= t && e <= n, F = (e) => typeof e == "object" && !!e && !Array.isArray(e);
|
|
999
999
|
function sn(e) {
|
|
1000
1000
|
if (!F(e)) return {};
|
|
1001
1001
|
let t = {};
|
|
1002
1002
|
if (F(e.renko)) {
|
|
1003
1003
|
let { boxSize: n, atrPeriod: r } = e.renko;
|
|
1004
1004
|
t.renko = {
|
|
1005
|
-
...
|
|
1006
|
-
...
|
|
1005
|
+
...N(n) || n === "atr" ? { boxSize: n } : {},
|
|
1006
|
+
...P(r, 1, 500) ? { atrPeriod: r } : {}
|
|
1007
1007
|
};
|
|
1008
1008
|
}
|
|
1009
1009
|
if (F(e.lineBreak)) {
|
|
1010
1010
|
let { lines: n } = e.lineBreak;
|
|
1011
|
-
t.lineBreak =
|
|
1011
|
+
t.lineBreak = P(n, 1, 10) ? { lines: n } : {};
|
|
1012
1012
|
}
|
|
1013
1013
|
if (F(e.kagi)) {
|
|
1014
1014
|
let { reversal: n, reversalType: r } = e.kagi;
|
|
1015
1015
|
t.kagi = {
|
|
1016
|
-
...
|
|
1016
|
+
...N(n) ? { reversal: n } : {},
|
|
1017
1017
|
...r === "percent" || r === "price" ? { reversalType: r } : {}
|
|
1018
1018
|
};
|
|
1019
1019
|
}
|
|
1020
1020
|
if (F(e.pointAndFigure)) {
|
|
1021
1021
|
let { boxSize: n, reversal: r } = e.pointAndFigure;
|
|
1022
1022
|
t.pointAndFigure = {
|
|
1023
|
-
...
|
|
1024
|
-
...
|
|
1023
|
+
...N(n) || n === "auto" ? { boxSize: n } : {},
|
|
1024
|
+
...P(r, 1, 10) ? { reversal: r } : {}
|
|
1025
1025
|
};
|
|
1026
1026
|
}
|
|
1027
1027
|
if (F(e.rangeBars)) {
|
|
1028
1028
|
let { range: n } = e.rangeBars;
|
|
1029
|
-
t.rangeBars =
|
|
1029
|
+
t.rangeBars = N(n) || n === "auto" ? { range: n } : {};
|
|
1030
1030
|
}
|
|
1031
1031
|
return t;
|
|
1032
1032
|
}
|
|
@@ -1050,7 +1050,7 @@ var cn = "'Cascadia Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace",
|
|
|
1050
1050
|
ink: "#131416"
|
|
1051
1051
|
}, dn = .22;
|
|
1052
1052
|
function L(e) {
|
|
1053
|
-
return
|
|
1053
|
+
return p(e, dn);
|
|
1054
1054
|
}
|
|
1055
1055
|
var fn = "#fbfaf6", R = "#1b1d21", pn = "#131416", z = "#e6e3dc", mn = "#1f7a5c", hn = "#b8423f", gn = "#4fae8a", _n = "#e2706b", vn = "#6a6966", yn = "#8d8a84", bn = {
|
|
1056
1056
|
ceiling: "#FF00FF",
|
|
@@ -1078,10 +1078,10 @@ var fn = "#fbfaf6", R = "#1b1d21", pn = "#131416", z = "#e6e3dc", mn = "#1f7a5c"
|
|
|
1078
1078
|
candleUpWick: gn,
|
|
1079
1079
|
candleDownWick: _n,
|
|
1080
1080
|
lineColor: z,
|
|
1081
|
-
areaTopColor:
|
|
1082
|
-
areaBottomColor:
|
|
1083
|
-
volumeUp:
|
|
1084
|
-
volumeDown:
|
|
1081
|
+
areaTopColor: p(z, .14),
|
|
1082
|
+
areaBottomColor: p(z, 0),
|
|
1083
|
+
volumeUp: p(z, .14),
|
|
1084
|
+
volumeDown: p(z, .08),
|
|
1085
1085
|
axisLine: "#2a2b2f",
|
|
1086
1086
|
axisLabel: "#a9a6a0",
|
|
1087
1087
|
axisLabelBackground: "#232427",
|
|
@@ -1099,10 +1099,10 @@ var fn = "#fbfaf6", R = "#1b1d21", pn = "#131416", z = "#e6e3dc", mn = "#1f7a5c"
|
|
|
1099
1099
|
candleUpWick: mn,
|
|
1100
1100
|
candleDownWick: hn,
|
|
1101
1101
|
lineColor: R,
|
|
1102
|
-
areaTopColor:
|
|
1103
|
-
areaBottomColor:
|
|
1104
|
-
volumeUp:
|
|
1105
|
-
volumeDown:
|
|
1102
|
+
areaTopColor: p(R, .12),
|
|
1103
|
+
areaBottomColor: p(R, 0),
|
|
1104
|
+
volumeUp: p(R, .13),
|
|
1105
|
+
volumeDown: p(R, .08),
|
|
1106
1106
|
axisLine: "#cfcac0",
|
|
1107
1107
|
axisLabel: "#4a4e57",
|
|
1108
1108
|
axisLabelBackground: "#eeebe3",
|
|
@@ -1699,7 +1699,21 @@ function q(e, t = 2, n) {
|
|
|
1699
1699
|
function ur(e) {
|
|
1700
1700
|
return q(e, 0, "vi");
|
|
1701
1701
|
}
|
|
1702
|
-
|
|
1702
|
+
var dr = [
|
|
1703
|
+
[0xe8d4a51000, "조"],
|
|
1704
|
+
[1e8, "억"],
|
|
1705
|
+
[1e4, "만"]
|
|
1706
|
+
];
|
|
1707
|
+
function fr(e) {
|
|
1708
|
+
return /^ko([-_]|$)/i.test(e);
|
|
1709
|
+
}
|
|
1710
|
+
function pr(e, t) {
|
|
1711
|
+
let n = t ?? K;
|
|
1712
|
+
if (!Number.isFinite(e)) return String(e);
|
|
1713
|
+
if (fr(n)) {
|
|
1714
|
+
for (let [t, r] of dr) if (Math.round(e / t * 100) >= 100) return q(e / t, 2, n) + r;
|
|
1715
|
+
return q(e, 0, n);
|
|
1716
|
+
}
|
|
1703
1717
|
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
1718
|
}
|
|
1705
1719
|
//#endregion
|
|
@@ -1711,7 +1725,14 @@ var J = {
|
|
|
1711
1725
|
ceiling: "#D946EF",
|
|
1712
1726
|
floor: "#06B6D4",
|
|
1713
1727
|
reference: "#EAB308"
|
|
1714
|
-
}, Y = "Asia/Ho_Chi_Minh",
|
|
1728
|
+
}, Y = "Asia/Ho_Chi_Minh", mr = {
|
|
1729
|
+
up: "#E8313F",
|
|
1730
|
+
down: "#2F6FEB",
|
|
1731
|
+
unchanged: "#8B8F99",
|
|
1732
|
+
ceiling: "#C2121F",
|
|
1733
|
+
floor: "#1E4FC2",
|
|
1734
|
+
reference: "#8B8F99"
|
|
1735
|
+
}, hr = "Asia/Seoul", gr = [
|
|
1715
1736
|
{
|
|
1716
1737
|
name: "ATO",
|
|
1717
1738
|
startTime: "09:00",
|
|
@@ -1742,7 +1763,7 @@ var J = {
|
|
|
1742
1763
|
endTime: "14:45",
|
|
1743
1764
|
type: "preClose"
|
|
1744
1765
|
}
|
|
1745
|
-
],
|
|
1766
|
+
], _r = [
|
|
1746
1767
|
{
|
|
1747
1768
|
name: "Phiên 1",
|
|
1748
1769
|
startTime: "09:15",
|
|
@@ -1773,7 +1794,7 @@ var J = {
|
|
|
1773
1794
|
endTime: "15:00",
|
|
1774
1795
|
type: "postClose"
|
|
1775
1796
|
}
|
|
1776
|
-
],
|
|
1797
|
+
], vr = [
|
|
1777
1798
|
{
|
|
1778
1799
|
name: "Phiên 1",
|
|
1779
1800
|
startTime: "09:15",
|
|
@@ -1792,7 +1813,7 @@ var J = {
|
|
|
1792
1813
|
endTime: "14:30",
|
|
1793
1814
|
type: "continuous"
|
|
1794
1815
|
}
|
|
1795
|
-
],
|
|
1816
|
+
], yr = [
|
|
1796
1817
|
{
|
|
1797
1818
|
name: "ATO",
|
|
1798
1819
|
startTime: "08:45",
|
|
@@ -1823,7 +1844,147 @@ var J = {
|
|
|
1823
1844
|
endTime: "14:45",
|
|
1824
1845
|
type: "preClose"
|
|
1825
1846
|
}
|
|
1826
|
-
],
|
|
1847
|
+
], br = [
|
|
1848
|
+
{
|
|
1849
|
+
name: "장전 동시호가",
|
|
1850
|
+
startTime: "08:30",
|
|
1851
|
+
endTime: "09:00",
|
|
1852
|
+
type: "preOpen"
|
|
1853
|
+
},
|
|
1854
|
+
{
|
|
1855
|
+
name: "정규장",
|
|
1856
|
+
startTime: "09:00",
|
|
1857
|
+
endTime: "15:20",
|
|
1858
|
+
type: "continuous"
|
|
1859
|
+
},
|
|
1860
|
+
{
|
|
1861
|
+
name: "장마감 동시호가",
|
|
1862
|
+
startTime: "15:20",
|
|
1863
|
+
endTime: "15:30",
|
|
1864
|
+
type: "preClose"
|
|
1865
|
+
},
|
|
1866
|
+
{
|
|
1867
|
+
name: "장후 시간외",
|
|
1868
|
+
startTime: "15:40",
|
|
1869
|
+
endTime: "16:00",
|
|
1870
|
+
type: "postClose"
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
name: "애프터마켓",
|
|
1874
|
+
startTime: "16:00",
|
|
1875
|
+
endTime: "20:00",
|
|
1876
|
+
type: "postClose"
|
|
1877
|
+
}
|
|
1878
|
+
], xr = [
|
|
1879
|
+
{
|
|
1880
|
+
name: "프리마켓",
|
|
1881
|
+
startTime: "08:00",
|
|
1882
|
+
endTime: "08:50",
|
|
1883
|
+
type: "preOpen"
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
name: "메인마켓",
|
|
1887
|
+
startTime: "09:00",
|
|
1888
|
+
endTime: "15:20",
|
|
1889
|
+
type: "continuous"
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
name: "애프터마켓",
|
|
1893
|
+
startTime: "15:40",
|
|
1894
|
+
endTime: "20:00",
|
|
1895
|
+
type: "postClose"
|
|
1896
|
+
}
|
|
1897
|
+
], Sr = [
|
|
1898
|
+
{
|
|
1899
|
+
from: 0,
|
|
1900
|
+
step: 1
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
from: 2e3,
|
|
1904
|
+
step: 5
|
|
1905
|
+
},
|
|
1906
|
+
{
|
|
1907
|
+
from: 5e3,
|
|
1908
|
+
step: 10
|
|
1909
|
+
},
|
|
1910
|
+
{
|
|
1911
|
+
from: 2e4,
|
|
1912
|
+
step: 50
|
|
1913
|
+
},
|
|
1914
|
+
{
|
|
1915
|
+
from: 5e4,
|
|
1916
|
+
step: 100
|
|
1917
|
+
},
|
|
1918
|
+
{
|
|
1919
|
+
from: 2e5,
|
|
1920
|
+
step: 500
|
|
1921
|
+
},
|
|
1922
|
+
{
|
|
1923
|
+
from: 5e5,
|
|
1924
|
+
step: 1e3
|
|
1925
|
+
}
|
|
1926
|
+
], Cr = [
|
|
1927
|
+
{
|
|
1928
|
+
from: 0,
|
|
1929
|
+
step: 1e-8
|
|
1930
|
+
},
|
|
1931
|
+
{
|
|
1932
|
+
from: 1e-5,
|
|
1933
|
+
step: 1e-7
|
|
1934
|
+
},
|
|
1935
|
+
{
|
|
1936
|
+
from: 1e-4,
|
|
1937
|
+
step: 1e-6
|
|
1938
|
+
},
|
|
1939
|
+
{
|
|
1940
|
+
from: .001,
|
|
1941
|
+
step: 1e-5
|
|
1942
|
+
},
|
|
1943
|
+
{
|
|
1944
|
+
from: .01,
|
|
1945
|
+
step: 1e-4
|
|
1946
|
+
},
|
|
1947
|
+
{
|
|
1948
|
+
from: .1,
|
|
1949
|
+
step: .001
|
|
1950
|
+
},
|
|
1951
|
+
{
|
|
1952
|
+
from: 1,
|
|
1953
|
+
step: .01
|
|
1954
|
+
},
|
|
1955
|
+
{
|
|
1956
|
+
from: 10,
|
|
1957
|
+
step: .1
|
|
1958
|
+
},
|
|
1959
|
+
{
|
|
1960
|
+
from: 100,
|
|
1961
|
+
step: 1
|
|
1962
|
+
},
|
|
1963
|
+
{
|
|
1964
|
+
from: 5e3,
|
|
1965
|
+
step: 5
|
|
1966
|
+
},
|
|
1967
|
+
{
|
|
1968
|
+
from: 1e4,
|
|
1969
|
+
step: 10
|
|
1970
|
+
},
|
|
1971
|
+
{
|
|
1972
|
+
from: 5e4,
|
|
1973
|
+
step: 50
|
|
1974
|
+
},
|
|
1975
|
+
{
|
|
1976
|
+
from: 1e5,
|
|
1977
|
+
step: 100
|
|
1978
|
+
},
|
|
1979
|
+
{
|
|
1980
|
+
from: 5e5,
|
|
1981
|
+
step: 500
|
|
1982
|
+
},
|
|
1983
|
+
{
|
|
1984
|
+
from: 1e6,
|
|
1985
|
+
step: 1e3
|
|
1986
|
+
}
|
|
1987
|
+
], wr = {
|
|
1827
1988
|
type: "stock",
|
|
1828
1989
|
exchange: "HOSE",
|
|
1829
1990
|
currency: "VND",
|
|
@@ -1850,12 +2011,12 @@ var J = {
|
|
|
1850
2011
|
ceilingPercent: 7,
|
|
1851
2012
|
floorPercent: 7
|
|
1852
2013
|
},
|
|
1853
|
-
sessions:
|
|
2014
|
+
sessions: gr,
|
|
1854
2015
|
colorScheme: J
|
|
1855
|
-
},
|
|
1856
|
-
...
|
|
2016
|
+
}, Tr = {
|
|
2017
|
+
...wr,
|
|
1857
2018
|
priceSteps: void 0
|
|
1858
|
-
},
|
|
2019
|
+
}, Er = {
|
|
1859
2020
|
type: "stock",
|
|
1860
2021
|
exchange: "HNX",
|
|
1861
2022
|
currency: "VND",
|
|
@@ -1868,9 +2029,9 @@ var J = {
|
|
|
1868
2029
|
ceilingPercent: 10,
|
|
1869
2030
|
floorPercent: 10
|
|
1870
2031
|
},
|
|
1871
|
-
sessions:
|
|
2032
|
+
sessions: _r,
|
|
1872
2033
|
colorScheme: J
|
|
1873
|
-
},
|
|
2034
|
+
}, Dr = {
|
|
1874
2035
|
type: "stock",
|
|
1875
2036
|
exchange: "UPCOM",
|
|
1876
2037
|
currency: "VND",
|
|
@@ -1883,9 +2044,9 @@ var J = {
|
|
|
1883
2044
|
ceilingPercent: 15,
|
|
1884
2045
|
floorPercent: 15
|
|
1885
2046
|
},
|
|
1886
|
-
sessions:
|
|
2047
|
+
sessions: vr,
|
|
1887
2048
|
colorScheme: J
|
|
1888
|
-
},
|
|
2049
|
+
}, Or = {
|
|
1889
2050
|
type: "futures",
|
|
1890
2051
|
exchange: "HNX",
|
|
1891
2052
|
currency: "VND",
|
|
@@ -1899,14 +2060,44 @@ var J = {
|
|
|
1899
2060
|
ceilingPercent: 7,
|
|
1900
2061
|
floorPercent: 7
|
|
1901
2062
|
},
|
|
1902
|
-
sessions:
|
|
2063
|
+
sessions: yr,
|
|
1903
2064
|
colorScheme: J
|
|
1904
|
-
},
|
|
2065
|
+
}, kr = {
|
|
2066
|
+
type: "stock",
|
|
2067
|
+
exchange: "KRX",
|
|
2068
|
+
currency: "KRW",
|
|
2069
|
+
pricePrecision: 0,
|
|
2070
|
+
volumeUnit: 1,
|
|
2071
|
+
priceStep: 1,
|
|
2072
|
+
priceSteps: Sr,
|
|
2073
|
+
timeZone: hr,
|
|
2074
|
+
priceLimits: {
|
|
2075
|
+
enabled: !0,
|
|
2076
|
+
ceilingPercent: 30,
|
|
2077
|
+
floorPercent: 30,
|
|
2078
|
+
roundMove: !0
|
|
2079
|
+
},
|
|
2080
|
+
sessions: br,
|
|
2081
|
+
colorScheme: mr
|
|
2082
|
+
}, Ar = {
|
|
2083
|
+
...kr,
|
|
2084
|
+
exchange: "NXT",
|
|
2085
|
+
sessions: xr
|
|
2086
|
+
}, jr = {
|
|
2087
|
+
type: "crypto",
|
|
2088
|
+
exchange: "UPBIT",
|
|
2089
|
+
currency: "KRW",
|
|
2090
|
+
priceStep: 1e-8,
|
|
2091
|
+
priceSteps: Cr,
|
|
2092
|
+
timeZone: hr,
|
|
2093
|
+
priceLimits: { enabled: !1 },
|
|
2094
|
+
colorScheme: mr
|
|
2095
|
+
}, Mr = {
|
|
1905
2096
|
type: "crypto",
|
|
1906
2097
|
currency: "USDT",
|
|
1907
2098
|
pricePrecision: 2,
|
|
1908
2099
|
priceLimits: { enabled: !1 }
|
|
1909
|
-
},
|
|
2100
|
+
}, Nr = {
|
|
1910
2101
|
type: "stock",
|
|
1911
2102
|
exchange: "NYSE",
|
|
1912
2103
|
currency: "USD",
|
|
@@ -1935,35 +2126,38 @@ var J = {
|
|
|
1935
2126
|
}
|
|
1936
2127
|
]
|
|
1937
2128
|
};
|
|
1938
|
-
function
|
|
2129
|
+
function Pr(e) {
|
|
2130
|
+
return Fr(e, J);
|
|
2131
|
+
}
|
|
2132
|
+
function Fr(e, t) {
|
|
1939
2133
|
return {
|
|
1940
2134
|
...e,
|
|
1941
|
-
candleUp:
|
|
1942
|
-
candleDown:
|
|
1943
|
-
candleUpWick:
|
|
1944
|
-
candleDownWick:
|
|
2135
|
+
candleUp: t.up,
|
|
2136
|
+
candleDown: t.down,
|
|
2137
|
+
candleUpWick: t.up,
|
|
2138
|
+
candleDownWick: t.down
|
|
1945
2139
|
};
|
|
1946
2140
|
}
|
|
1947
2141
|
var X = 1e-9;
|
|
1948
|
-
function
|
|
2142
|
+
function Ir(e, t) {
|
|
1949
2143
|
let n = t.priceStep;
|
|
1950
2144
|
for (let r of t.priceSteps ?? []) e + X >= r.from && (n = r.step);
|
|
1951
2145
|
return n !== void 0 && n > 0 ? n : void 0;
|
|
1952
2146
|
}
|
|
1953
|
-
function
|
|
2147
|
+
function Lr(e, t) {
|
|
1954
2148
|
let n = t.priceStep;
|
|
1955
2149
|
for (let r of t.priceSteps ?? []) e - X > r.from && (n = r.step);
|
|
1956
2150
|
return n !== void 0 && n > 0 ? n : void 0;
|
|
1957
2151
|
}
|
|
1958
2152
|
function Z(e, t, n = "nearest") {
|
|
1959
|
-
let r =
|
|
2153
|
+
let r = Ir(e, t);
|
|
1960
2154
|
if (r === void 0 || !Number.isFinite(e)) return e;
|
|
1961
2155
|
let i = e / r, a = n === "down" ? Math.floor(i + X) : n === "up" ? Math.ceil(i - X) : Math.round(i);
|
|
1962
2156
|
return Number((a * r).toFixed(Rt(r)));
|
|
1963
2157
|
}
|
|
1964
|
-
function
|
|
2158
|
+
function Rr(e, t) {
|
|
1965
2159
|
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 =
|
|
2160
|
+
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 = Ir(i, t);
|
|
1967
2161
|
if (s === void 0) return {
|
|
1968
2162
|
ceiling: a,
|
|
1969
2163
|
floor: o,
|
|
@@ -1975,15 +2169,23 @@ function Er(e, t) {
|
|
|
1975
2169
|
floor: i,
|
|
1976
2170
|
reference: i
|
|
1977
2171
|
};
|
|
1978
|
-
let l
|
|
1979
|
-
|
|
2172
|
+
let l, u;
|
|
2173
|
+
if (t.priceLimits.roundMove) {
|
|
2174
|
+
let e = {
|
|
2175
|
+
...t,
|
|
2176
|
+
priceStep: s,
|
|
2177
|
+
priceSteps: void 0
|
|
2178
|
+
};
|
|
2179
|
+
l = Z(i + Z(i * n, e, "down"), t, "down"), u = Z(i - Z(i * r, e, "down"), t, "down");
|
|
2180
|
+
} else l = Z(a, t, "down"), u = Z(o, t, "up");
|
|
2181
|
+
return l <= i && (l = c), u >= i && (u = Z(i - (Lr(i, t) ?? s), t)), u <= 0 && (u = i), {
|
|
1980
2182
|
ceiling: l,
|
|
1981
2183
|
floor: u,
|
|
1982
2184
|
reference: i
|
|
1983
2185
|
};
|
|
1984
2186
|
}
|
|
1985
2187
|
var Q = (e, t) => Math.round(e * t * 1e9) / 1e9;
|
|
1986
|
-
function
|
|
2188
|
+
function zr(e, t) {
|
|
1987
2189
|
let n = Math.round(Math.log10(t));
|
|
1988
2190
|
return {
|
|
1989
2191
|
...e,
|
|
@@ -1999,11 +2201,11 @@ function Dr(e, t) {
|
|
|
1999
2201
|
}
|
|
2000
2202
|
};
|
|
2001
2203
|
}
|
|
2002
|
-
var
|
|
2003
|
-
function
|
|
2204
|
+
var Br = 6e4, Vr = 864e5;
|
|
2205
|
+
function Hr(e, t) {
|
|
2004
2206
|
let n, r;
|
|
2005
2207
|
if (t) {
|
|
2006
|
-
let i = new Date(e +
|
|
2208
|
+
let i = new Date(e + y(t, e) * Br);
|
|
2007
2209
|
n = i.getUTCHours(), r = i.getUTCMinutes();
|
|
2008
2210
|
} else {
|
|
2009
2211
|
let t = new Date(e);
|
|
@@ -2011,31 +2213,31 @@ function Ar(e, t) {
|
|
|
2011
2213
|
}
|
|
2012
2214
|
return `${String(n).padStart(2, "0")}:${String(r).padStart(2, "0")}`;
|
|
2013
2215
|
}
|
|
2014
|
-
function
|
|
2015
|
-
if (n !== void 0 && !
|
|
2016
|
-
let r =
|
|
2216
|
+
function Ur(e, t = Date.now(), n) {
|
|
2217
|
+
if (n !== void 0 && !v(n)) return null;
|
|
2218
|
+
let r = Hr(t, n);
|
|
2017
2219
|
for (let t of e) if (r >= t.startTime && r < t.endTime) return t;
|
|
2018
2220
|
return null;
|
|
2019
2221
|
}
|
|
2020
|
-
var $ = (e) => String(e).padStart(2, "0"),
|
|
2222
|
+
var $ = (e) => String(e).padStart(2, "0"), Wr = (e) => {
|
|
2021
2223
|
let t = new Date(e);
|
|
2022
2224
|
return `${t.getUTCFullYear()}-${$(t.getUTCMonth() + 1)}-${$(t.getUTCDate())}`;
|
|
2023
|
-
},
|
|
2024
|
-
function
|
|
2025
|
-
let r = Date.UTC(e, t - 1, 1), i = 1 + (
|
|
2225
|
+
}, Gr = 4, Kr = 7 * 36e5;
|
|
2226
|
+
function qr(e, t, n) {
|
|
2227
|
+
let r = Date.UTC(e, t - 1, 1), i = 1 + (Gr - new Date(r).getUTCDay() + 7) % 7, a = Date.UTC(e, t - 1, i + 14), o = (e) => {
|
|
2026
2228
|
let t = new Date(e).getUTCDay();
|
|
2027
|
-
return t === 0 || t === 6 || (n?.(
|
|
2229
|
+
return t === 0 || t === 6 || (n?.(Wr(e)) ?? !1);
|
|
2028
2230
|
};
|
|
2029
|
-
for (; o(a);) a -=
|
|
2030
|
-
return
|
|
2231
|
+
for (; o(a);) a -= Vr;
|
|
2232
|
+
return Wr(a);
|
|
2031
2233
|
}
|
|
2032
|
-
function
|
|
2033
|
-
let n =
|
|
2234
|
+
function Jr(e, t) {
|
|
2235
|
+
let n = Wr(e + Kr), r = (e, n) => ({
|
|
2034
2236
|
symbol: `VN30F${$(e % 100)}${$(n)}`,
|
|
2035
2237
|
year: e,
|
|
2036
2238
|
month: n,
|
|
2037
|
-
lastTradingDay:
|
|
2038
|
-
}), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e +
|
|
2239
|
+
lastTradingDay: qr(e, n, t)
|
|
2240
|
+
}), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e + Kr), o = r(a.getUTCFullYear(), a.getUTCMonth() + 1);
|
|
2039
2241
|
n > o.lastTradingDay && (o = i(o));
|
|
2040
2242
|
let s = [o, i(o)], c = i(s[1]);
|
|
2041
2243
|
for (; s.length < 4;) c.month % 3 == 0 && s.push(c), c = i(c);
|
|
@@ -2043,7 +2245,7 @@ function Ir(e, t) {
|
|
|
2043
2245
|
}
|
|
2044
2246
|
//#endregion
|
|
2045
2247
|
//#region src/icons/iconSet.ts
|
|
2046
|
-
var
|
|
2248
|
+
var Yr = {
|
|
2047
2249
|
cursor: { d: "M6 3.5L18.5 12.5L12.6 13.6L9.7 19.4z" },
|
|
2048
2250
|
trendingUp: { d: "M3 17L9 11L13 14.5L21 6.5M15 6.5H21V12.5" },
|
|
2049
2251
|
trendingDown: { d: "M3 7L9 13L13 9.5L21 17.5M15 17.5H21V11.5" },
|
|
@@ -2177,7 +2379,7 @@ var Lr = {
|
|
|
2177
2379
|
]
|
|
2178
2380
|
] },
|
|
2179
2381
|
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
|
-
},
|
|
2382
|
+
}, Xr = {
|
|
2181
2383
|
trendLine: {
|
|
2182
2384
|
d: "M5 18L19 6",
|
|
2183
2385
|
dots: [[5, 18], [19, 6]]
|
|
@@ -2530,7 +2732,7 @@ var Lr = {
|
|
|
2530
2732
|
],
|
|
2531
2733
|
dash: "M12 3V21"
|
|
2532
2734
|
}
|
|
2533
|
-
},
|
|
2735
|
+
}, Zr = {
|
|
2534
2736
|
candlestick: {
|
|
2535
2737
|
d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19",
|
|
2536
2738
|
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 +2799,21 @@ var Lr = {
|
|
|
2597
2799
|
"M16 4.5h3v6h-3z"
|
|
2598
2800
|
]
|
|
2599
2801
|
}
|
|
2600
|
-
},
|
|
2601
|
-
function
|
|
2602
|
-
let t =
|
|
2802
|
+
}, Qr = 1.75, $r = .22, ei = /* @__PURE__ */ new WeakMap();
|
|
2803
|
+
function ti(e) {
|
|
2804
|
+
let t = ei.get(e);
|
|
2603
2805
|
if (t) return t;
|
|
2604
2806
|
let n = "";
|
|
2605
|
-
e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${
|
|
2807
|
+
e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${$r}" stroke="none"/>`);
|
|
2606
2808
|
for (let t of e.fills ?? []) n += `<path d="${t}" fill="currentColor" stroke="none"/>`;
|
|
2607
2809
|
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 =
|
|
2609
|
-
return
|
|
2810
|
+
for (let [t, r, i = Qr] of e.dots ?? []) n += `<circle cx="${t}" cy="${r}" r="${i}" fill="currentColor" stroke="none"/>`;
|
|
2811
|
+
return ei.set(e, n), n;
|
|
2610
2812
|
}
|
|
2611
|
-
function
|
|
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">${
|
|
2813
|
+
function ni(e, t) {
|
|
2814
|
+
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">${ti(e)}</svg>`;
|
|
2613
2815
|
}
|
|
2614
2816
|
//#endregion
|
|
2615
|
-
export { t as CHART_STYLE_KEYS,
|
|
2817
|
+
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, Xr as DRAWING_TOOL_ICONS, tr as FIBONACCI, _r as HNX_SESSIONS, gr as HOSE_SESSIONS, Qr as ICON_DOT_RADIUS, $r as ICON_SOFT_OPACITY, br as KRX_SESSIONS, mr as KR_COLORS, xn as LIGHT_PRICE_LIMITS, wn as LIGHT_THEME, e as LayerType, Mr as MARKET_CRYPTO, Er as MARKET_HNX, wr as MARKET_HOSE, Tr as MARKET_HOSE_ETF, kr as MARKET_KRX, Ar as MARKET_NXT, Nr as MARKET_NYSE, jr as MARKET_UPBIT_KRW, Dr as MARKET_UPCOM, Or as MARKET_VN30F, Qn as MIN_PANEL_HEIGHT, le as MS_TIME_THRESHOLD, xr as NXT_SESSIONS, 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, Yr as UI_ICONS, vr as UPCOM_SESSIONS, yr as VN30F_SESSIONS, J as VN_COLORS, dn as VOLUME_ALPHA, Ge as alignToTimeframe, mt as autoPricePrecision, ut as barDateParts, lt as barDateZone, ue as barTimeUnit, Ye as barsAreDaily, Hn as chartStyleValue, re as clamp, Rr as computePriceLimits, _e as computePriceRange, ce as computeTickStep, m as contrastRatio, Fr as createMarketTheme, Pr as createVNTheme, xt as detectPrecision, Xt as drawingOption, W as en, me as findBarIndex, ge as fitPriceRange, _t as formatFraction, q as formatNumber, A as formatPrice, gt as formatPriceScaleLabel, We as formatTimestamp, ur as formatVND, bt as formatVolume, pr as formatVolumeLoc, vt as fractionTick, Ur as getCurrentSession, or as getLocale, lr as getLocaleStrings, ye as hexToRgba, ni as iconSvg, Et as indicatorSource, Ee as inkOn, ae as inverseLerp, qe as isDateOnly, Ct as isPriceSource, Ue as isTimeFrame, x as isUtcTimeZone, v as isValidTimeZone, ie as lerp, Se as lerpColor, Ln as lineDash, Ht as marketStatus, ve as mergeBar, se as niceNumber, fe as normalizeBar, de as normalizeBarTime, S as offsetAt, he as padPriceRange, Dt as parseIndicatorSource, w as parseTimeframe, nr as phiStep, Ft as pickBaseTimeframe, yt as priceFormatterFor, Ir as priceStepAt, pt as priceTagText, Lt as rankSymbols, Nn as readChartStyleOverrides, sn as readChartTypeOptions, In as readIndicatorPlotStyles, ne as readNews, Pn as readPaneStyle, l as readQuote, Te as readableOn, cr as registerLocale, At as resampleBars, zn as resolveChartTheme, Zt as resolveDrawingOptions, V as resolveVolumeColors, Z as roundToPriceStep, oe as roundToStep, Jt as sanitizeDrawingOptions, on as sanitizeDrawingStyle, zr as scaleMarketPrices, Bt as sessionMinute, ar as setLocale, pe as sliceVisibleData, wt as sourcePrice, Rt as stepDecimals, zt as symbolTimeZone, sr as t, He as tickBarCount, Ke as timeParts, st as timeframeBucketStart, it as timeframeFollowsDays, at as timeframeSpansDays, T as timeframeToMs, Xe as tzLabel, fr as usesKoreanUnits, rr as vi, Jr as vn30fContracts, qr as vn30fLastTradingDay, L as volumeColor, Ie as wallToUtc, p as withAlpha, y as zoneOffsetMinutes, Re as zonedDateFormatter };
|
|
2616
2818
|
|
|
2617
2819
|
//# sourceMappingURL=index.js.map
|