@tradecanvas/commons 1.25.0 → 1.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/icons/iconSet.d.ts +28 -0
- package/dist/icons/iconSet.d.ts.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +790 -237
- package/dist/index.js.map +1 -1
- package/dist/types/chart.d.ts +15 -4
- package/dist/types/chart.d.ts.map +1 -1
- package/dist/utils/data.d.ts +12 -1
- package/dist/utils/data.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -199,11 +199,11 @@ function u(e) {
|
|
|
199
199
|
}
|
|
200
200
|
//#endregion
|
|
201
201
|
//#region src/types/news.ts
|
|
202
|
-
var d = 300,
|
|
202
|
+
var d = 300, f = 1e3, p = (e, t) => {
|
|
203
203
|
if (typeof e != "string") return;
|
|
204
204
|
let n = e.trim();
|
|
205
205
|
return n ? n.slice(0, t) : void 0;
|
|
206
|
-
},
|
|
206
|
+
}, ee = (e) => {
|
|
207
207
|
if (typeof e == "string") try {
|
|
208
208
|
let t = new URL(e);
|
|
209
209
|
return t.protocol === "https:" || t.protocol === "http:" ? t.href : void 0;
|
|
@@ -211,61 +211,61 @@ var d = 300, ee = 1e3, f = (e, t) => {
|
|
|
211
211
|
return;
|
|
212
212
|
}
|
|
213
213
|
};
|
|
214
|
-
function
|
|
214
|
+
function te(e, t = 20) {
|
|
215
215
|
if (!Array.isArray(e)) return [];
|
|
216
216
|
let n = [];
|
|
217
217
|
for (let t of e) {
|
|
218
218
|
if (!t || typeof t != "object") continue;
|
|
219
|
-
let e = t, r =
|
|
219
|
+
let e = t, r = p(e.title, d);
|
|
220
220
|
if (!r || typeof e.time != "number" || !Number.isFinite(e.time)) continue;
|
|
221
221
|
let i = {
|
|
222
222
|
title: r,
|
|
223
223
|
time: e.time
|
|
224
|
-
}, a =
|
|
224
|
+
}, a = ee(e.url);
|
|
225
225
|
a && (i.url = a);
|
|
226
|
-
let o =
|
|
226
|
+
let o = p(e.source, d);
|
|
227
227
|
o && (i.source = o);
|
|
228
|
-
let s =
|
|
228
|
+
let s = p(e.summary, f);
|
|
229
229
|
s && (i.summary = s);
|
|
230
|
-
let c =
|
|
230
|
+
let c = p(e.id, d);
|
|
231
231
|
c && (i.id = c), n.push(i);
|
|
232
232
|
}
|
|
233
233
|
return n.sort((e, t) => t.time - e.time).slice(0, Math.max(0, t));
|
|
234
234
|
}
|
|
235
235
|
//#endregion
|
|
236
236
|
//#region src/utils/math.ts
|
|
237
|
-
function
|
|
237
|
+
function ne(e, t, n) {
|
|
238
238
|
return Math.max(t, Math.min(n, e));
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function re(e, t, n) {
|
|
241
241
|
return e + (t - e) * n;
|
|
242
242
|
}
|
|
243
|
-
function
|
|
243
|
+
function ie(e, t, n) {
|
|
244
244
|
return e === t ? 0 : (n - e) / (t - e);
|
|
245
245
|
}
|
|
246
|
-
function
|
|
246
|
+
function ae(e, t) {
|
|
247
247
|
return Math.round(e / t) * t;
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function m(e, t) {
|
|
250
250
|
let n = Math.floor(Math.log10(e)), r = e / 10 ** n, i;
|
|
251
251
|
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;
|
|
252
252
|
}
|
|
253
|
-
function
|
|
254
|
-
return
|
|
253
|
+
function oe(e, t, n) {
|
|
254
|
+
return m(m(t - e, !1) / (n - 1), !0);
|
|
255
255
|
}
|
|
256
256
|
//#endregion
|
|
257
257
|
//#region src/utils/data.ts
|
|
258
|
-
var
|
|
259
|
-
function
|
|
258
|
+
var se = 1e11;
|
|
259
|
+
function ce(e) {
|
|
260
260
|
let t = e.length > 0 ? e[e.length - 1].time : NaN;
|
|
261
261
|
return Number.isFinite(t) ? Math.abs(t) >= 1e11 ? 1 : 1e3 : 1;
|
|
262
262
|
}
|
|
263
|
-
function
|
|
263
|
+
function le(e, t) {
|
|
264
264
|
return t === void 0 ? Math.abs(e) >= 1e11 ? e : e * 1e3 : e * t;
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function ue(e) {
|
|
267
267
|
return {
|
|
268
|
-
time:
|
|
268
|
+
time: le(e.time ?? e.t ?? 0),
|
|
269
269
|
open: e.open ?? e.o ?? 0,
|
|
270
270
|
high: e.high ?? e.h ?? 0,
|
|
271
271
|
low: e.low ?? e.l ?? 0,
|
|
@@ -273,11 +273,11 @@ function fe(e) {
|
|
|
273
273
|
volume: e.volume ?? e.v ?? 0
|
|
274
274
|
};
|
|
275
275
|
}
|
|
276
|
-
function
|
|
276
|
+
function de(e, t, n) {
|
|
277
277
|
let r = Math.max(0, t), i = Math.min(e.length, n + 1);
|
|
278
278
|
return e.slice(r, i);
|
|
279
279
|
}
|
|
280
|
-
function
|
|
280
|
+
function fe(e, t) {
|
|
281
281
|
let n = 0, r = e.length - 1;
|
|
282
282
|
for (; n <= r;) {
|
|
283
283
|
let i = n + r >>> 1;
|
|
@@ -287,24 +287,34 @@ function me(e, t) {
|
|
|
287
287
|
}
|
|
288
288
|
return n;
|
|
289
289
|
}
|
|
290
|
-
function
|
|
290
|
+
function pe(e, t, n, r = !1) {
|
|
291
|
+
let i = r && e > 0 && t > 0 ? Math.log(t / e) : NaN;
|
|
292
|
+
if (Number.isFinite(i)) {
|
|
293
|
+
let r = i || Math.log(1 + 2 * n), a = Math.exp(r * n);
|
|
294
|
+
return {
|
|
295
|
+
min: e / a,
|
|
296
|
+
max: t * a
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
let a = t - e || 1;
|
|
300
|
+
return {
|
|
301
|
+
min: e - a * n,
|
|
302
|
+
max: t + a * n
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
function me(e, t, n, r = .05, i = !1) {
|
|
291
306
|
if (e.length === 0) return {
|
|
292
307
|
min: 0,
|
|
293
308
|
max: 1
|
|
294
309
|
};
|
|
295
|
-
let
|
|
296
|
-
for (let t =
|
|
297
|
-
|
|
310
|
+
let a = Math.max(0, t), o = Math.min(e.length - 1, n), s = Infinity, c = -Infinity;
|
|
311
|
+
for (let t = a; t <= o; t++) e[t].low < s && (s = e[t].low), e[t].high > c && (c = e[t].high);
|
|
312
|
+
return s === Infinity ? {
|
|
298
313
|
min: 0,
|
|
299
314
|
max: 1
|
|
300
|
-
};
|
|
301
|
-
let c = s - o || 1;
|
|
302
|
-
return {
|
|
303
|
-
min: o - c * r,
|
|
304
|
-
max: s + c * r
|
|
305
|
-
};
|
|
315
|
+
} : pe(s, c, r, i);
|
|
306
316
|
}
|
|
307
|
-
function
|
|
317
|
+
function he(e, t) {
|
|
308
318
|
return {
|
|
309
319
|
...e,
|
|
310
320
|
high: Math.max(e.high, t.price),
|
|
@@ -316,17 +326,17 @@ function ge(e, t) {
|
|
|
316
326
|
}
|
|
317
327
|
//#endregion
|
|
318
328
|
//#region src/utils/color.ts
|
|
319
|
-
function
|
|
329
|
+
function ge(e, t = 1) {
|
|
320
330
|
let n = e.slice(1);
|
|
321
331
|
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})`;
|
|
322
332
|
}
|
|
323
|
-
function
|
|
333
|
+
function _e(e, t) {
|
|
324
334
|
let n = e.trim();
|
|
325
|
-
if (/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(n)) return
|
|
335
|
+
if (/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(n)) return ge(n, t);
|
|
326
336
|
let r = n.match(/^rgba?\(\s*(\d+(?:\.\d+)?)[\s,]+(\d+(?:\.\d+)?)[\s,]+(\d+(?:\.\d+)?)/i);
|
|
327
337
|
return r ? `rgba(${r[1]}, ${r[2]}, ${r[3]}, ${t})` : e;
|
|
328
338
|
}
|
|
329
|
-
function
|
|
339
|
+
function ve(e, t, n) {
|
|
330
340
|
let r = (e) => (e = e.replace("#", ""), e.length === 3 && (e = e[0] + e[0] + e[1] + e[1] + e[2] + e[2]), {
|
|
331
341
|
r: parseInt(e.slice(0, 2), 16),
|
|
332
342
|
g: parseInt(e.slice(2, 4), 16),
|
|
@@ -336,7 +346,7 @@ function ye(e, t, n) {
|
|
|
336
346
|
}
|
|
337
347
|
//#endregion
|
|
338
348
|
//#region src/utils/timezone.ts
|
|
339
|
-
var
|
|
349
|
+
var h = 6e4, g = 1440 * h, _ = 15 * h, ye = 8192, be = 7 * g, xe = 4096, Se = new Set([
|
|
340
350
|
"UTC",
|
|
341
351
|
"Etc/UTC",
|
|
342
352
|
"GMT",
|
|
@@ -347,7 +357,7 @@ var p = 6e4, m = 1440 * p, h = 15 * p, be = 8192, g = 7 * m, xe = 4096, Se = new
|
|
|
347
357
|
"Etc/Universal",
|
|
348
358
|
"Zulu",
|
|
349
359
|
"Etc/Zulu"
|
|
350
|
-
]), Ce = /* @__PURE__ */ new Map(),
|
|
360
|
+
]), Ce = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), we = /* @__PURE__ */ new Map();
|
|
351
361
|
function Te(e) {
|
|
352
362
|
let t = Ce.get(e);
|
|
353
363
|
return t || (t = new Intl.DateTimeFormat("en-US", {
|
|
@@ -369,24 +379,24 @@ function Ee(e) {
|
|
|
369
379
|
return !1;
|
|
370
380
|
}
|
|
371
381
|
}
|
|
372
|
-
function
|
|
382
|
+
function y(e, t) {
|
|
373
383
|
if (!Number.isFinite(t) || Se.has(e)) return 0;
|
|
374
384
|
let n = we.get(e);
|
|
375
385
|
n || (n = /* @__PURE__ */ new Map(), we.set(e, n));
|
|
376
|
-
let r = Math.floor(t /
|
|
377
|
-
return i || (i = De(e, r *
|
|
386
|
+
let r = Math.floor(t / be), i = n.get(r);
|
|
387
|
+
return i || (i = De(e, r * be), n.size >= xe && n.clear(), n.set(r, i)), t < i.change ? i.before : i.after;
|
|
378
388
|
}
|
|
379
389
|
function De(e, t) {
|
|
380
|
-
let n =
|
|
390
|
+
let n = b(e, t), r = t + be - _, i = b(e, r);
|
|
381
391
|
if (i === n) return {
|
|
382
392
|
before: n,
|
|
383
393
|
change: Infinity,
|
|
384
394
|
after: i
|
|
385
395
|
};
|
|
386
396
|
let a = t;
|
|
387
|
-
for (; r - a >
|
|
388
|
-
let t = a + Math.floor((r - a) /
|
|
389
|
-
|
|
397
|
+
for (; r - a > _;) {
|
|
398
|
+
let t = a + Math.floor((r - a) / _ / 2) * _;
|
|
399
|
+
b(e, t) === n ? a = t : r = t;
|
|
390
400
|
}
|
|
391
401
|
return {
|
|
392
402
|
before: n,
|
|
@@ -394,10 +404,10 @@ function De(e, t) {
|
|
|
394
404
|
after: i
|
|
395
405
|
};
|
|
396
406
|
}
|
|
397
|
-
function
|
|
398
|
-
let n = Math.floor(t /
|
|
407
|
+
function b(e, t) {
|
|
408
|
+
let n = Math.floor(t / _), r = `${e}|${n}`, i = v.get(r);
|
|
399
409
|
if (i !== void 0) return i;
|
|
400
|
-
let a = n *
|
|
410
|
+
let a = n * _, o = 1970, s = 1, c = 1, l = 0, u = 0, d = 0;
|
|
401
411
|
for (let t of Te(e).formatToParts(new Date(a))) {
|
|
402
412
|
let e = Number(t.value);
|
|
403
413
|
switch (t.type) {
|
|
@@ -421,21 +431,21 @@ function Oe(e, t) {
|
|
|
421
431
|
break;
|
|
422
432
|
}
|
|
423
433
|
}
|
|
424
|
-
let
|
|
425
|
-
return
|
|
426
|
-
}
|
|
427
|
-
function y(e, t) {
|
|
428
|
-
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : v(e, t);
|
|
434
|
+
let f = Math.round((Date.UTC(o, s - 1, c, l, u, d) - a) / h);
|
|
435
|
+
return v.size >= ye && v.clear(), v.set(r, f), f;
|
|
429
436
|
}
|
|
430
|
-
function
|
|
431
|
-
|
|
432
|
-
if (n + y(t, n) * p === e) return n;
|
|
433
|
-
let r = e - y(t, e + m) * p;
|
|
434
|
-
return r + y(t, r) * p === e ? r : n;
|
|
437
|
+
function x(e, t) {
|
|
438
|
+
return e === null ? -new Date(t).getTimezoneOffset() : typeof e == "number" ? e : y(e, t);
|
|
435
439
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
440
|
+
function Oe(e, t) {
|
|
441
|
+
let n = e - x(t, e - g) * h;
|
|
442
|
+
if (n + x(t, n) * h === e) return n;
|
|
443
|
+
let r = e - x(t, e + g) * h;
|
|
444
|
+
return r + x(t, r) * h === e ? r : n;
|
|
445
|
+
}
|
|
446
|
+
var ke = /* @__PURE__ */ new Map();
|
|
447
|
+
function Ae(e, t, n) {
|
|
448
|
+
let r = `${e}|${JSON.stringify(t)}|${n === null ? "local" : typeof n == "number" ? `fixed:${n}` : n}`, i = ke.get(r);
|
|
439
449
|
if (i) return i;
|
|
440
450
|
let a = n === null ? void 0 : typeof n == "number" ? "UTC" : n, o;
|
|
441
451
|
try {
|
|
@@ -449,12 +459,12 @@ function je(e, t, n) {
|
|
|
449
459
|
timeZone: a
|
|
450
460
|
});
|
|
451
461
|
}
|
|
452
|
-
let s = typeof n == "number" ? n *
|
|
453
|
-
return i = (e) => o.format(new Date(e + s)),
|
|
462
|
+
let s = typeof n == "number" ? n * h : 0;
|
|
463
|
+
return i = (e) => o.format(new Date(e + s)), ke.set(r, i), i;
|
|
454
464
|
}
|
|
455
465
|
//#endregion
|
|
456
466
|
//#region src/utils/time.ts
|
|
457
|
-
var
|
|
467
|
+
var je = {
|
|
458
468
|
"1s": 1e3,
|
|
459
469
|
"5s": 5e3,
|
|
460
470
|
"15s": 15e3,
|
|
@@ -481,7 +491,7 @@ var Me = {
|
|
|
481
491
|
"3M": 7776e6,
|
|
482
492
|
"6M": 15552e6,
|
|
483
493
|
"12M": 31536e6
|
|
484
|
-
},
|
|
494
|
+
}, Me = {
|
|
485
495
|
s: 1e3,
|
|
486
496
|
m: 6e4,
|
|
487
497
|
h: 36e5,
|
|
@@ -489,7 +499,7 @@ var Me = {
|
|
|
489
499
|
w: 6048e5,
|
|
490
500
|
M: 2592e6
|
|
491
501
|
}, Ne = /^([1-9]\d*)([smhdwM])$/;
|
|
492
|
-
function
|
|
502
|
+
function S(e) {
|
|
493
503
|
let t = Ne.exec(e);
|
|
494
504
|
if (!t) return null;
|
|
495
505
|
let n = Number(t[1]);
|
|
@@ -506,16 +516,16 @@ function Fe(e) {
|
|
|
506
516
|
return Number.isSafeInteger(n) && n <= Pe ? n : null;
|
|
507
517
|
}
|
|
508
518
|
function Ie(e) {
|
|
509
|
-
return
|
|
519
|
+
return S(e) !== null;
|
|
510
520
|
}
|
|
511
|
-
function
|
|
512
|
-
let t =
|
|
521
|
+
function C(e) {
|
|
522
|
+
let t = je[e];
|
|
513
523
|
if (t !== void 0) return t;
|
|
514
|
-
let n =
|
|
515
|
-
return n ? n.count *
|
|
524
|
+
let n = S(e);
|
|
525
|
+
return n ? n.count * Me[n.unit] : NaN;
|
|
516
526
|
}
|
|
517
527
|
function Le(e, t) {
|
|
518
|
-
let n = new Date(e), r =
|
|
528
|
+
let n = new Date(e), r = C(t);
|
|
519
529
|
return r >= 864e5 ? n.toLocaleDateString(void 0, {
|
|
520
530
|
month: "short",
|
|
521
531
|
day: "numeric"
|
|
@@ -529,7 +539,7 @@ function Le(e, t) {
|
|
|
529
539
|
});
|
|
530
540
|
}
|
|
531
541
|
function Re(e, t) {
|
|
532
|
-
let n =
|
|
542
|
+
let n = C(t);
|
|
533
543
|
return Math.floor(e / n) * n;
|
|
534
544
|
}
|
|
535
545
|
function ze(e, t) {
|
|
@@ -543,7 +553,7 @@ function ze(e, t) {
|
|
|
543
553
|
minutes: t.getMinutes()
|
|
544
554
|
};
|
|
545
555
|
}
|
|
546
|
-
let n = new Date(e +
|
|
556
|
+
let n = new Date(e + x(t, e) * 6e4);
|
|
547
557
|
return {
|
|
548
558
|
year: n.getUTCFullYear(),
|
|
549
559
|
month: n.getUTCMonth() + 1,
|
|
@@ -559,7 +569,7 @@ var Ve = 20 * 36e5;
|
|
|
559
569
|
function He(e) {
|
|
560
570
|
let t = Math.min(e.length, 64);
|
|
561
571
|
if (t < 2) return;
|
|
562
|
-
let n =
|
|
572
|
+
let n = ce(e), r = Infinity;
|
|
563
573
|
for (let i = 1; i < t; i++) {
|
|
564
574
|
let t = Math.abs(e[i].time - e[i - 1].time) * n;
|
|
565
575
|
t > 0 && t < r && (r = t);
|
|
@@ -567,22 +577,22 @@ function He(e) {
|
|
|
567
577
|
return r === Infinity ? void 0 : r >= Ve;
|
|
568
578
|
}
|
|
569
579
|
function Ue(e, t = Date.now()) {
|
|
570
|
-
let n =
|
|
580
|
+
let n = x(e, t), r = n >= 0 ? "+" : "-", i = Math.abs(n), a = Math.floor(i / 60), o = i % 60;
|
|
571
581
|
return o === 0 ? `UTC${r}${a}` : `UTC${r}${a}:${String(o).padStart(2, "0")}`;
|
|
572
582
|
}
|
|
573
583
|
var We = Date.UTC(1970, 0, 5);
|
|
574
584
|
function Ge(e, t, n = 1) {
|
|
575
|
-
let { count: r, unit: i } =
|
|
585
|
+
let { count: r, unit: i } = S(t) ?? {
|
|
576
586
|
count: 1,
|
|
577
587
|
unit: "m"
|
|
578
588
|
};
|
|
579
589
|
if (i === "s" || i === "m" || i === "h" || i === "d") {
|
|
580
|
-
let t = r *
|
|
590
|
+
let t = r * Me[i];
|
|
581
591
|
return Math.floor(e / t) * t;
|
|
582
592
|
}
|
|
583
593
|
let a = new Date(e);
|
|
584
594
|
if (i === "w") {
|
|
585
|
-
let e =
|
|
595
|
+
let e = Me.d, t = (a.getUTCDay() - n + 7) % 7, i = Date.UTC(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate() - t);
|
|
586
596
|
if (r <= 1) return i;
|
|
587
597
|
let o = Math.floor((i - We) / (7 * e));
|
|
588
598
|
return We + Math.floor(o / r) * r * 7 * e;
|
|
@@ -592,50 +602,50 @@ function Ge(e, t, n = 1) {
|
|
|
592
602
|
}
|
|
593
603
|
//#endregion
|
|
594
604
|
//#region src/utils/precision.ts
|
|
595
|
-
var Ke = 64,
|
|
605
|
+
var Ke = 64, w = /* @__PURE__ */ new Map();
|
|
596
606
|
function qe(e, t) {
|
|
597
|
-
let n = `${e}|${t}`, r =
|
|
598
|
-
return r || (
|
|
607
|
+
let n = `${e}|${t}`, r = w.get(n);
|
|
608
|
+
return r || (w.size >= Ke && w.clear(), r = new Intl.NumberFormat(e, {
|
|
599
609
|
minimumFractionDigits: t,
|
|
600
610
|
maximumFractionDigits: t
|
|
601
|
-
}),
|
|
611
|
+
}), w.set(n, r)), r;
|
|
602
612
|
}
|
|
603
|
-
function
|
|
613
|
+
function Je(e, t = 2, n = "en-US") {
|
|
604
614
|
return qe(n, t).format(e);
|
|
605
615
|
}
|
|
606
|
-
function
|
|
616
|
+
function Ye(e, t) {
|
|
607
617
|
if (!(t > e) || !Number.isFinite(e) || !Number.isFinite(t)) return 2;
|
|
608
|
-
let n =
|
|
618
|
+
let n = oe(e, t, 8);
|
|
609
619
|
return n > 0 && n < 1 ? Math.ceil(-Math.log10(n)) + 1 : 2;
|
|
610
620
|
}
|
|
611
|
-
function
|
|
621
|
+
function Xe(e, t, n, r = 2, i = "en-US") {
|
|
612
622
|
if ((t === "percentage" || t === "indexedTo100") && n && n !== 0) {
|
|
613
623
|
if (t === "percentage") {
|
|
614
624
|
let t = (e / n - 1) * 100;
|
|
615
625
|
return `${t > 0 ? "+" : ""}${t.toFixed(2)}%`;
|
|
616
626
|
}
|
|
617
|
-
return
|
|
627
|
+
return Je(e / n * 100, 2, i);
|
|
618
628
|
}
|
|
619
|
-
return
|
|
629
|
+
return Je(e, r, i);
|
|
620
630
|
}
|
|
621
|
-
function
|
|
631
|
+
function Ze(e, t, n = 1) {
|
|
622
632
|
let r = Number.isInteger(n) && n > 1 ? n : 1;
|
|
623
633
|
if (!Number.isFinite(e) || !Number.isInteger(t) || t < 2) return String(e);
|
|
624
634
|
let i = t * r, a = Math.round(Math.abs(e) * i), o = Math.floor(a / i), s = a - o * i, c = Math.floor(s / r), l = String(t - 1).length, u = r > 1 ? String(Math.floor((s - c * r) / r * 10)) : "";
|
|
625
635
|
return `${e < 0 && a > 0 ? "-" : ""}${o}'${String(c).padStart(l, "0")}${u}`;
|
|
626
636
|
}
|
|
627
|
-
function
|
|
637
|
+
function Qe(e) {
|
|
628
638
|
if (!Number.isInteger(e.denominator) || e.denominator < 2) return null;
|
|
629
639
|
let t = Number.isInteger(e.subDenominator) && (e.subDenominator ?? 0) > 1 ? e.subDenominator : 1;
|
|
630
640
|
return 1 / (e.denominator * t);
|
|
631
641
|
}
|
|
632
|
-
function Qe(e) {
|
|
633
|
-
return e ? typeof e == "function" ? e : Ze(e) === null ? null : (t) => Xe(t, e.denominator, e.subDenominator) : null;
|
|
634
|
-
}
|
|
635
642
|
function $e(e) {
|
|
636
|
-
return e
|
|
643
|
+
return e ? typeof e == "function" ? e : Qe(e) === null ? null : (t) => Ze(t, e.denominator, e.subDenominator) : null;
|
|
637
644
|
}
|
|
638
645
|
function et(e) {
|
|
646
|
+
return e >= 1e9 ? (e / 1e9).toFixed(2) + "B" : e >= 1e6 ? (e / 1e6).toFixed(2) + "M" : e >= 1e3 ? (e / 1e3).toFixed(2) + "K" : e.toFixed(0);
|
|
647
|
+
}
|
|
648
|
+
function tt(e) {
|
|
639
649
|
let t = 0;
|
|
640
650
|
for (let n of e) {
|
|
641
651
|
let e = n.toString(), r = e.indexOf(".");
|
|
@@ -645,7 +655,7 @@ function et(e) {
|
|
|
645
655
|
}
|
|
646
656
|
//#endregion
|
|
647
657
|
//#region src/utils/priceSource.ts
|
|
648
|
-
var
|
|
658
|
+
var nt = [
|
|
649
659
|
"close",
|
|
650
660
|
"open",
|
|
651
661
|
"high",
|
|
@@ -655,10 +665,10 @@ var tt = [
|
|
|
655
665
|
"ohlc4",
|
|
656
666
|
"hlcc4"
|
|
657
667
|
];
|
|
658
|
-
function
|
|
659
|
-
return typeof e == "string" &&
|
|
668
|
+
function rt(e) {
|
|
669
|
+
return typeof e == "string" && nt.includes(e);
|
|
660
670
|
}
|
|
661
|
-
function
|
|
671
|
+
function it(e, t) {
|
|
662
672
|
switch (t) {
|
|
663
673
|
case "open": return e.open;
|
|
664
674
|
case "high": return e.high;
|
|
@@ -670,13 +680,13 @@ function rt(e, t) {
|
|
|
670
680
|
default: return e.close;
|
|
671
681
|
}
|
|
672
682
|
}
|
|
673
|
-
var
|
|
674
|
-
function
|
|
683
|
+
var at = /^ind:([^:]+):(.+)$/;
|
|
684
|
+
function ot(e, t) {
|
|
675
685
|
return `ind:${e}:${t}`;
|
|
676
686
|
}
|
|
677
|
-
function
|
|
687
|
+
function st(e) {
|
|
678
688
|
if (typeof e != "string") return null;
|
|
679
|
-
let t =
|
|
689
|
+
let t = at.exec(e);
|
|
680
690
|
return t ? {
|
|
681
691
|
instanceId: t[1],
|
|
682
692
|
key: t[2]
|
|
@@ -684,8 +694,8 @@ function ot(e) {
|
|
|
684
694
|
}
|
|
685
695
|
//#endregion
|
|
686
696
|
//#region src/utils/resample.ts
|
|
687
|
-
var
|
|
688
|
-
function
|
|
697
|
+
var ct = 864e5;
|
|
698
|
+
function lt(e, t, n = 1) {
|
|
689
699
|
let r = [], i = null;
|
|
690
700
|
for (let a of e) {
|
|
691
701
|
let e = Ge(a.time, t, n);
|
|
@@ -701,36 +711,36 @@ function ct(e, t, n = 1) {
|
|
|
701
711
|
return r;
|
|
702
712
|
}
|
|
703
713
|
var T = (e) => e === "s" || e === "m" || e === "h" || e === "d";
|
|
704
|
-
function
|
|
705
|
-
let n =
|
|
714
|
+
function ut(e, t) {
|
|
715
|
+
let n = S(e), r = S(t);
|
|
706
716
|
if (!n || !r) return !1;
|
|
707
|
-
let i =
|
|
708
|
-
return n.unit === "d" && n.count > 1 ? !1 : T(r.unit) ? T(n.unit) &&
|
|
717
|
+
let i = C(e);
|
|
718
|
+
return n.unit === "d" && n.count > 1 ? !1 : T(r.unit) ? T(n.unit) && C(t) % i === 0 : n.unit === r.unit ? r.count % n.count === 0 : T(n.unit) && ct % i === 0;
|
|
709
719
|
}
|
|
710
|
-
function
|
|
720
|
+
function dt(e, t) {
|
|
711
721
|
let n = null, r = 0;
|
|
712
722
|
for (let i of t) {
|
|
713
|
-
if (!
|
|
714
|
-
let t =
|
|
723
|
+
if (!ut(i, e)) continue;
|
|
724
|
+
let t = C(i);
|
|
715
725
|
t > r && (n = i, r = t);
|
|
716
726
|
}
|
|
717
727
|
return n;
|
|
718
728
|
}
|
|
719
729
|
//#endregion
|
|
720
730
|
//#region src/utils/symbols.ts
|
|
721
|
-
function
|
|
731
|
+
function ft(e, t) {
|
|
722
732
|
if (!e) return 0;
|
|
723
733
|
if (e === t) return 1e3;
|
|
724
734
|
if (e.startsWith(t)) return 600 - Math.min(100, e.length - t.length);
|
|
725
735
|
let n = e.indexOf(t);
|
|
726
736
|
return n >= 0 ? 300 - Math.min(100, n) : 0;
|
|
727
737
|
}
|
|
728
|
-
function
|
|
738
|
+
function pt(e, t, n = 50, r) {
|
|
729
739
|
let i = t.trim().toUpperCase();
|
|
730
740
|
if (!i) return e.slice(0, n);
|
|
731
741
|
let a = [];
|
|
732
742
|
for (let t of e) {
|
|
733
|
-
let e = Math.max(
|
|
743
|
+
let e = Math.max(ft(t.symbol.toUpperCase(), i), ft((t.description ?? "").toUpperCase(), i) * .8);
|
|
734
744
|
e > 0 && a.push({
|
|
735
745
|
info: t,
|
|
736
746
|
score: e + (r?.(t) ?? 0)
|
|
@@ -738,7 +748,7 @@ function ft(e, t, n = 50, r) {
|
|
|
738
748
|
}
|
|
739
749
|
return a.sort((e, t) => t.score - e.score || e.info.symbol.localeCompare(t.info.symbol)), a.slice(0, n).map((e) => e.info);
|
|
740
750
|
}
|
|
741
|
-
function
|
|
751
|
+
function mt(e) {
|
|
742
752
|
let t = typeof e == "number" ? e : Number(e);
|
|
743
753
|
if (!Number.isFinite(t) || t <= 0) return 0;
|
|
744
754
|
for (let e = 0; e <= 12; e++) {
|
|
@@ -755,8 +765,8 @@ function E(e) {
|
|
|
755
765
|
}
|
|
756
766
|
//#endregion
|
|
757
767
|
//#region src/utils/marketStatus.ts
|
|
758
|
-
var D = 864e5, O = 6e4,
|
|
759
|
-
function
|
|
768
|
+
var D = 864e5, O = 6e4, ht = 8;
|
|
769
|
+
function gt(e, t) {
|
|
760
770
|
let n = e?.timezone, r = (e?.sessions ?? []).flatMap((e) => {
|
|
761
771
|
let t = E(e.start), n = E(e.end);
|
|
762
772
|
return t === null || n === null || t === n ? [] : [{
|
|
@@ -769,8 +779,8 @@ function ht(e, t) {
|
|
|
769
779
|
state: "always",
|
|
770
780
|
next: null
|
|
771
781
|
};
|
|
772
|
-
let i =
|
|
773
|
-
for (let e = -1; e <=
|
|
782
|
+
let i = y(n, t) * O, a = Math.floor((t + i) / D) * D, o = (e) => e - y(n, e - y(n, e - i) * O) * O, s = [];
|
|
783
|
+
for (let e = -1; e <= ht; e++) {
|
|
774
784
|
let t = a + e * D, n = (Math.floor(t / D) + 4) % 7;
|
|
775
785
|
for (let e of r) {
|
|
776
786
|
if (e.days && !e.days.includes(n)) continue;
|
|
@@ -797,15 +807,15 @@ function ht(e, t) {
|
|
|
797
807
|
}
|
|
798
808
|
//#endregion
|
|
799
809
|
//#region src/utils/drawingOptions.ts
|
|
800
|
-
var
|
|
801
|
-
function
|
|
810
|
+
var _t = 48, vt = 2e3, yt = 1e4;
|
|
811
|
+
function bt(e) {
|
|
802
812
|
if (!Array.isArray(e)) return;
|
|
803
813
|
let t = [];
|
|
804
814
|
for (let n of e) {
|
|
805
|
-
if (t.length >=
|
|
815
|
+
if (t.length >= _t) break;
|
|
806
816
|
if (typeof n != "object" || !n) continue;
|
|
807
817
|
let { value: e, visible: r, color: i } = n;
|
|
808
|
-
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) >
|
|
818
|
+
if (typeof e != "number" || !Number.isFinite(e) || Math.abs(e) > yt || r !== void 0 && typeof r != "boolean") continue;
|
|
809
819
|
let a = {
|
|
810
820
|
value: e,
|
|
811
821
|
visible: r ?? !0
|
|
@@ -814,68 +824,68 @@ function yt(e) {
|
|
|
814
824
|
}
|
|
815
825
|
return t;
|
|
816
826
|
}
|
|
817
|
-
function
|
|
827
|
+
function xt(e, t) {
|
|
818
828
|
switch (e.kind) {
|
|
819
829
|
case "boolean": return typeof t == "boolean" ? t : void 0;
|
|
820
830
|
case "number": return typeof t != "number" || !Number.isFinite(t) ? void 0 : Math.min(e.max ?? Infinity, Math.max(e.min ?? -Infinity, t));
|
|
821
831
|
case "choice": return typeof t == "string" && e.choices.some((e) => e.value === t) ? t : void 0;
|
|
822
|
-
case "levels": return
|
|
823
|
-
case "text": return typeof t == "string" ? t.slice(0,
|
|
832
|
+
case "levels": return bt(t);
|
|
833
|
+
case "text": return typeof t == "string" ? t.slice(0, vt) : void 0;
|
|
824
834
|
}
|
|
825
835
|
}
|
|
826
|
-
function
|
|
836
|
+
function St(e, t) {
|
|
827
837
|
if (!e || typeof t != "object" || !t) return {};
|
|
828
838
|
let n = {};
|
|
829
839
|
for (let [r, i] of Object.entries(t)) {
|
|
830
840
|
let t = e[r];
|
|
831
841
|
if (!t) continue;
|
|
832
|
-
let a =
|
|
842
|
+
let a = xt(t, i);
|
|
833
843
|
a !== void 0 && (n[r] = a);
|
|
834
844
|
}
|
|
835
845
|
return n;
|
|
836
846
|
}
|
|
837
|
-
function
|
|
847
|
+
function Ct(e) {
|
|
838
848
|
return Array.isArray(e) ? e.map((e) => ({ ...e })) : e;
|
|
839
849
|
}
|
|
840
|
-
function
|
|
850
|
+
function wt(e, t, n) {
|
|
841
851
|
let r = e?.[n];
|
|
842
|
-
return r ?
|
|
852
|
+
return r ? Ct((t && n in t ? xt(r, t[n]) : void 0) ?? r.default) : t?.[n];
|
|
843
853
|
}
|
|
844
|
-
function
|
|
854
|
+
function Tt(e, t) {
|
|
845
855
|
let n = {};
|
|
846
|
-
for (let r of Object.keys(e ?? {})) n[r] =
|
|
856
|
+
for (let r of Object.keys(e ?? {})) n[r] = wt(e, t, r);
|
|
847
857
|
return n;
|
|
848
858
|
}
|
|
849
859
|
//#endregion
|
|
850
860
|
//#region src/utils/drawingStyle.ts
|
|
851
|
-
var
|
|
861
|
+
var Et = [
|
|
852
862
|
"solid",
|
|
853
863
|
"dashed",
|
|
854
864
|
"dotted"
|
|
855
|
-
],
|
|
865
|
+
], Dt = 64, Ot = 2e3, kt = 20, At = 200;
|
|
856
866
|
function k(e, t, n) {
|
|
857
867
|
return typeof e == "number" && Number.isFinite(e) ? Math.min(n, Math.max(t, e)) : void 0;
|
|
858
868
|
}
|
|
859
|
-
function At(e) {
|
|
860
|
-
return typeof e == "string" && e.length > 0 && e.length <= Et ? e : void 0;
|
|
861
|
-
}
|
|
862
869
|
function jt(e) {
|
|
870
|
+
return typeof e == "string" && e.length > 0 && e.length <= Dt ? e : void 0;
|
|
871
|
+
}
|
|
872
|
+
function Mt(e) {
|
|
863
873
|
if (typeof e != "object" || !e) return {};
|
|
864
|
-
let t = e, n = {}, r =
|
|
874
|
+
let t = e, n = {}, r = jt(t.color);
|
|
865
875
|
r !== void 0 && (n.color = r);
|
|
866
|
-
let i = k(t.lineWidth, .5,
|
|
867
|
-
i !== void 0 && (n.lineWidth = i),
|
|
868
|
-
let a =
|
|
876
|
+
let i = k(t.lineWidth, .5, kt);
|
|
877
|
+
i !== void 0 && (n.lineWidth = i), Et.includes(t.lineStyle) && (n.lineStyle = t.lineStyle);
|
|
878
|
+
let a = jt(t.fillColor);
|
|
869
879
|
a !== void 0 && (n.fillColor = a);
|
|
870
880
|
let o = k(t.fillOpacity, 0, 1);
|
|
871
881
|
o !== void 0 && (n.fillOpacity = o);
|
|
872
|
-
let s = k(t.fontSize, 6,
|
|
873
|
-
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0,
|
|
882
|
+
let s = k(t.fontSize, 6, At);
|
|
883
|
+
return s !== void 0 && (n.fontSize = s), typeof t.text == "string" && (n.text = t.text.slice(0, Ot)), n;
|
|
874
884
|
}
|
|
875
885
|
//#endregion
|
|
876
886
|
//#region src/utils/chartTypeOptions.ts
|
|
877
887
|
var A = (e) => typeof e == "number" && Number.isFinite(e) && e > 0, j = (e, t, n) => typeof e == "number" && Number.isInteger(e) && e >= t && e <= n, M = (e) => typeof e == "object" && !!e && !Array.isArray(e);
|
|
878
|
-
function
|
|
888
|
+
function Nt(e) {
|
|
879
889
|
if (!M(e)) return {};
|
|
880
890
|
let t = {};
|
|
881
891
|
if (M(e.renko)) {
|
|
@@ -911,8 +921,8 @@ function Mt(e) {
|
|
|
911
921
|
}
|
|
912
922
|
//#endregion
|
|
913
923
|
//#region src/constants/themes.ts
|
|
914
|
-
var
|
|
915
|
-
family:
|
|
924
|
+
var Pt = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif", Ft = {
|
|
925
|
+
family: Pt,
|
|
916
926
|
sizeSmall: 10,
|
|
917
927
|
sizeMedium: 12,
|
|
918
928
|
sizeLarge: 14
|
|
@@ -927,11 +937,11 @@ var Nt = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif",
|
|
|
927
937
|
rose: "#e25592",
|
|
928
938
|
neutral: "#7d8696",
|
|
929
939
|
ink: "#0c1016"
|
|
930
|
-
},
|
|
940
|
+
}, It = .22;
|
|
931
941
|
function P(e) {
|
|
932
|
-
return
|
|
942
|
+
return _e(e, It);
|
|
933
943
|
}
|
|
934
|
-
var F = "#2eb88a", I = "#e85a67",
|
|
944
|
+
var F = "#2eb88a", I = "#e85a67", Lt = [
|
|
935
945
|
N.blue,
|
|
936
946
|
N.ochre,
|
|
937
947
|
N.violet,
|
|
@@ -956,7 +966,7 @@ var F = "#2eb88a", I = "#e85a67", It = [
|
|
|
956
966
|
axisLine: "#1f2630",
|
|
957
967
|
axisLabel: "#9aa3b2",
|
|
958
968
|
axisLabelBackground: "#1f2630",
|
|
959
|
-
font:
|
|
969
|
+
font: Ft
|
|
960
970
|
}, R = {
|
|
961
971
|
name: "light",
|
|
962
972
|
background: "#ffffff",
|
|
@@ -976,7 +986,7 @@ var F = "#2eb88a", I = "#e85a67", It = [
|
|
|
976
986
|
axisLine: "#dde1e7",
|
|
977
987
|
axisLabel: "#5b6472",
|
|
978
988
|
axisLabelBackground: "#eef0f3",
|
|
979
|
-
font:
|
|
989
|
+
font: Ft
|
|
980
990
|
}, z = {
|
|
981
991
|
name: "terminal",
|
|
982
992
|
background: "#0E0E0E",
|
|
@@ -1002,7 +1012,7 @@ var F = "#2eb88a", I = "#e85a67", It = [
|
|
|
1002
1012
|
sizeMedium: 12,
|
|
1003
1013
|
sizeLarge: 14
|
|
1004
1014
|
}
|
|
1005
|
-
},
|
|
1015
|
+
}, Rt = new Set([
|
|
1006
1016
|
L.volumeUp,
|
|
1007
1017
|
L.volumeDown,
|
|
1008
1018
|
R.volumeUp,
|
|
@@ -1012,7 +1022,7 @@ var F = "#2eb88a", I = "#e85a67", It = [
|
|
|
1012
1022
|
]);
|
|
1013
1023
|
function B(e) {
|
|
1014
1024
|
let t = (e, t) => {
|
|
1015
|
-
if (!
|
|
1025
|
+
if (!Rt.has(e)) return e;
|
|
1016
1026
|
let n = P(t);
|
|
1017
1027
|
return n === t ? e : n;
|
|
1018
1028
|
};
|
|
@@ -1023,42 +1033,42 @@ function B(e) {
|
|
|
1023
1033
|
}
|
|
1024
1034
|
//#endregion
|
|
1025
1035
|
//#region src/utils/chartStyle.ts
|
|
1026
|
-
var
|
|
1036
|
+
var zt = [
|
|
1027
1037
|
"solid",
|
|
1028
1038
|
"dashed",
|
|
1029
1039
|
"dotted"
|
|
1030
|
-
],
|
|
1040
|
+
], Bt = 20, Vt = 64, Ht = 2, Ut = [
|
|
1031
1041
|
/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,
|
|
1032
1042
|
/^[a-z]{3,30}$/i,
|
|
1033
1043
|
/^(?:rgba?|hsla?|hwb|lab|lch|oklab|oklch|color)\([0-9a-z.,%/\s-]*\)$/i
|
|
1034
1044
|
];
|
|
1035
1045
|
function V(e) {
|
|
1036
|
-
return typeof e == "string" && e.length <=
|
|
1046
|
+
return typeof e == "string" && e.length <= Vt && Ut.some((t) => t.test(e.trim()));
|
|
1037
1047
|
}
|
|
1038
|
-
function
|
|
1048
|
+
function Wt(e, t) {
|
|
1039
1049
|
switch (e) {
|
|
1040
1050
|
case "color": return V(t);
|
|
1041
|
-
case "lineStyle": return
|
|
1042
|
-
case "width": return typeof t == "number" && Number.isFinite(t) && t > 0 && t <=
|
|
1051
|
+
case "lineStyle": return zt.includes(t);
|
|
1052
|
+
case "width": return typeof t == "number" && Number.isFinite(t) && t > 0 && t <= Bt;
|
|
1043
1053
|
case "boolean": return typeof t == "boolean";
|
|
1044
1054
|
}
|
|
1045
1055
|
}
|
|
1046
|
-
function
|
|
1056
|
+
function Gt(e) {
|
|
1047
1057
|
return Object.prototype.hasOwnProperty.call(t, e);
|
|
1048
1058
|
}
|
|
1049
|
-
function
|
|
1059
|
+
function Kt(e) {
|
|
1050
1060
|
let n = {}, r = [];
|
|
1051
1061
|
if (typeof e != "object" || !e || Array.isArray(e)) return {
|
|
1052
1062
|
overrides: {},
|
|
1053
1063
|
rejected: r
|
|
1054
1064
|
};
|
|
1055
|
-
for (let [i, a] of Object.entries(e))
|
|
1065
|
+
for (let [i, a] of Object.entries(e)) Gt(i) ? a === null ? n[i] = null : Wt(t[i], a) ? n[i] = a : r.push(i) : r.push(i);
|
|
1056
1066
|
return {
|
|
1057
1067
|
overrides: n,
|
|
1058
1068
|
rejected: r
|
|
1059
1069
|
};
|
|
1060
1070
|
}
|
|
1061
|
-
function
|
|
1071
|
+
function qt(e) {
|
|
1062
1072
|
if (typeof e != "object" || !e || Array.isArray(e)) return null;
|
|
1063
1073
|
let { background: t, separator: n } = e, r = {
|
|
1064
1074
|
...V(t) ? { background: t } : {},
|
|
@@ -1066,24 +1076,24 @@ function Kt(e) {
|
|
|
1066
1076
|
};
|
|
1067
1077
|
return Object.keys(r).length > 0 ? r : null;
|
|
1068
1078
|
}
|
|
1069
|
-
var
|
|
1070
|
-
function
|
|
1079
|
+
var Jt = /^[A-Za-z0-9_]{1,32}$/;
|
|
1080
|
+
function Yt(e) {
|
|
1071
1081
|
if (typeof e != "object" || !e || Array.isArray(e)) return;
|
|
1072
1082
|
let t = {};
|
|
1073
1083
|
for (let [n, r] of Object.entries(e)) {
|
|
1074
|
-
if (!
|
|
1084
|
+
if (!Jt.test(n) || typeof r != "object" || !r) continue;
|
|
1075
1085
|
let { lineStyle: e, visible: i } = r, a = {
|
|
1076
|
-
...
|
|
1086
|
+
...zt.includes(e) ? { lineStyle: e } : {},
|
|
1077
1087
|
...typeof i == "boolean" ? { visible: i } : {}
|
|
1078
1088
|
};
|
|
1079
1089
|
Object.keys(a).length > 0 && (t[n] = a);
|
|
1080
1090
|
}
|
|
1081
1091
|
return Object.keys(t).length > 0 ? t : void 0;
|
|
1082
1092
|
}
|
|
1083
|
-
function
|
|
1093
|
+
function Xt(e, t, n = 1) {
|
|
1084
1094
|
return e === "solid" ? [] : e === "dotted" ? [n, n * 2] : [...t];
|
|
1085
1095
|
}
|
|
1086
|
-
function
|
|
1096
|
+
function Zt(e, t, n) {
|
|
1087
1097
|
let r = (e) => t(`series.${n}.${e}`), i = r("upColor") ?? t("series.candlestick.upColor"), a = r("downColor") ?? t("series.candlestick.downColor"), o = i ?? e.candleUp, s = a ?? e.candleDown;
|
|
1088
1098
|
return {
|
|
1089
1099
|
up: o,
|
|
@@ -1091,7 +1101,7 @@ function Xt(e, t, n) {
|
|
|
1091
1101
|
wickUp: r("wickUpColor") ?? t("series.candlestick.wickUpColor") ?? (i === void 0 ? e.candleUpWick : o),
|
|
1092
1102
|
wickDown: r("wickDownColor") ?? t("series.candlestick.wickDownColor") ?? (a === void 0 ? e.candleDownWick : s),
|
|
1093
1103
|
line: r("color") ?? r("lineColor") ?? t("series.line.color") ?? e.lineColor,
|
|
1094
|
-
lineWidth: r("lineWidth") ?? t("series.line.lineWidth") ??
|
|
1104
|
+
lineWidth: r("lineWidth") ?? t("series.line.lineWidth") ?? Ht,
|
|
1095
1105
|
top: r("topColor") ?? t("series.area.topColor") ?? e.areaTopColor,
|
|
1096
1106
|
bottom: r("bottomColor") ?? t("series.area.bottomColor") ?? e.areaBottomColor
|
|
1097
1107
|
};
|
|
@@ -1104,8 +1114,8 @@ function H(e, t, n) {
|
|
|
1104
1114
|
width: e(`${t}.width`) ?? n.width
|
|
1105
1115
|
};
|
|
1106
1116
|
}
|
|
1107
|
-
function
|
|
1108
|
-
let { style: r, ...i } = e, a = n, o = (e) => a[e], s =
|
|
1117
|
+
function Qt(e, t, n) {
|
|
1118
|
+
let { style: r, ...i } = e, a = n, o = (e) => a[e], s = Zt(i, o, t), c = o("background.color") ?? i.background, l = (e, t) => o(e) ?? t, u = (e) => o(e) ?? null, d = {
|
|
1109
1119
|
panes: {
|
|
1110
1120
|
background: l("panes.background", c),
|
|
1111
1121
|
separator: l("panes.separatorColor", i.axisLine),
|
|
@@ -1204,7 +1214,7 @@ function Zt(e, t, n) {
|
|
|
1204
1214
|
style: d
|
|
1205
1215
|
};
|
|
1206
1216
|
}
|
|
1207
|
-
var
|
|
1217
|
+
var $t = {
|
|
1208
1218
|
"background.color": (e) => e.background,
|
|
1209
1219
|
"panes.background": (e, t) => t.panes.background,
|
|
1210
1220
|
"panes.separatorColor": (e, t) => t.panes.separator,
|
|
@@ -1241,16 +1251,16 @@ var Qt = {
|
|
|
1241
1251
|
"tradeZones.lossColor": (e, t) => t.tradeZones.loss,
|
|
1242
1252
|
"tradeZones.activeColor": (e, t) => t.tradeZones.active,
|
|
1243
1253
|
"drawings.handleColor": (e, t) => t.drawings.handle
|
|
1244
|
-
},
|
|
1254
|
+
}, en = {
|
|
1245
1255
|
visible: "visible",
|
|
1246
1256
|
color: "color",
|
|
1247
1257
|
style: "style",
|
|
1248
1258
|
width: "width"
|
|
1249
1259
|
};
|
|
1250
|
-
function
|
|
1260
|
+
function tn(e, t, n, r = "candlestick") {
|
|
1251
1261
|
let i = n.split(".");
|
|
1252
1262
|
if (i[0] === "series") {
|
|
1253
|
-
let n =
|
|
1263
|
+
let n = Zt(e, (e) => t[e], i[1]);
|
|
1254
1264
|
switch (i[2]) {
|
|
1255
1265
|
case "upColor": return n.up;
|
|
1256
1266
|
case "downColor": return n.down;
|
|
@@ -1263,12 +1273,12 @@ function en(e, t, n, r = "candlestick") {
|
|
|
1263
1273
|
case "bottomColor": return n.bottom;
|
|
1264
1274
|
}
|
|
1265
1275
|
}
|
|
1266
|
-
let a =
|
|
1267
|
-
return i[0] === "grid" || i[0] === "crosshair" && (i[1] === "horizontal" || i[1] === "vertical") ? (i[0] === "grid" ? o.grid : o.crosshair)[i[1]][
|
|
1276
|
+
let a = Qt(e, r, t), o = a.style;
|
|
1277
|
+
return i[0] === "grid" || i[0] === "crosshair" && (i[1] === "horizontal" || i[1] === "vertical") ? (i[0] === "grid" ? o.grid : o.crosshair)[i[1]][en[i[2]]] : $t[n]?.(a, o) ?? null;
|
|
1268
1278
|
}
|
|
1269
1279
|
//#endregion
|
|
1270
1280
|
//#region src/constants/defaults.ts
|
|
1271
|
-
var
|
|
1281
|
+
var nn = {
|
|
1272
1282
|
autoScale: !0,
|
|
1273
1283
|
rightMargin: 5,
|
|
1274
1284
|
minBarSpacing: 2,
|
|
@@ -1279,7 +1289,7 @@ var tn = {
|
|
|
1279
1289
|
vLineStyle: "solid"
|
|
1280
1290
|
},
|
|
1281
1291
|
crosshair: { mode: "magnet" }
|
|
1282
|
-
},
|
|
1292
|
+
}, rn = [
|
|
1283
1293
|
"1s",
|
|
1284
1294
|
"1m",
|
|
1285
1295
|
"3m",
|
|
@@ -1296,7 +1306,7 @@ var tn = {
|
|
|
1296
1306
|
"3d",
|
|
1297
1307
|
"1w",
|
|
1298
1308
|
"1M"
|
|
1299
|
-
],
|
|
1309
|
+
], an = [
|
|
1300
1310
|
"1m",
|
|
1301
1311
|
"5m",
|
|
1302
1312
|
"15m",
|
|
@@ -1310,7 +1320,7 @@ var tn = {
|
|
|
1310
1320
|
"3M",
|
|
1311
1321
|
"6M",
|
|
1312
1322
|
"12M"
|
|
1313
|
-
],
|
|
1323
|
+
], on = [
|
|
1314
1324
|
"1m",
|
|
1315
1325
|
"5m",
|
|
1316
1326
|
"15m",
|
|
@@ -1320,7 +1330,7 @@ var tn = {
|
|
|
1320
1330
|
"1d",
|
|
1321
1331
|
"1w",
|
|
1322
1332
|
"1M"
|
|
1323
|
-
],
|
|
1333
|
+
], sn = [
|
|
1324
1334
|
"1m",
|
|
1325
1335
|
"5m",
|
|
1326
1336
|
"15m",
|
|
@@ -1328,7 +1338,7 @@ var tn = {
|
|
|
1328
1338
|
"4h",
|
|
1329
1339
|
"1d",
|
|
1330
1340
|
"1w"
|
|
1331
|
-
],
|
|
1341
|
+
], cn = 8, ln = 2, un = 70, dn = 30, fn = 60, pn = 120, U = {
|
|
1332
1342
|
candlestick: "Candlestick",
|
|
1333
1343
|
line: "Line",
|
|
1334
1344
|
area: "Area",
|
|
@@ -1431,7 +1441,7 @@ var tn = {
|
|
|
1431
1441
|
error: "Error",
|
|
1432
1442
|
numberDecimalSeparator: ".",
|
|
1433
1443
|
numberGroupSeparator: ","
|
|
1434
|
-
},
|
|
1444
|
+
}, mn = {
|
|
1435
1445
|
candlestick: "Nến",
|
|
1436
1446
|
line: "Đường",
|
|
1437
1447
|
area: "Vùng",
|
|
@@ -1534,20 +1544,20 @@ var tn = {
|
|
|
1534
1544
|
error: "Lỗi",
|
|
1535
1545
|
numberDecimalSeparator: ",",
|
|
1536
1546
|
numberGroupSeparator: "."
|
|
1537
|
-
}, W = new Map([["en", U], ["vi",
|
|
1538
|
-
function
|
|
1539
|
-
G = e,
|
|
1547
|
+
}, W = new Map([["en", U], ["vi", mn]]), G = "en", hn = U;
|
|
1548
|
+
function gn(e) {
|
|
1549
|
+
G = e, hn = W.get(e) ?? U;
|
|
1540
1550
|
}
|
|
1541
|
-
function
|
|
1551
|
+
function _n() {
|
|
1542
1552
|
return G;
|
|
1543
1553
|
}
|
|
1544
|
-
function
|
|
1545
|
-
return
|
|
1554
|
+
function vn(e) {
|
|
1555
|
+
return hn[e] ?? U[e] ?? e;
|
|
1546
1556
|
}
|
|
1547
|
-
function
|
|
1557
|
+
function yn(e, t) {
|
|
1548
1558
|
W.set(e, t);
|
|
1549
1559
|
}
|
|
1550
|
-
function
|
|
1560
|
+
function bn(e) {
|
|
1551
1561
|
return W.get(e ?? G) ?? U;
|
|
1552
1562
|
}
|
|
1553
1563
|
function K(e, t = 2, n) {
|
|
@@ -1555,10 +1565,10 @@ function K(e, t = 2, n) {
|
|
|
1555
1565
|
for (let e = l.length - 1, t = 0; e >= 0; e--, t++) t > 0 && t % 3 == 0 && (u = a + u), u = l[e] + u;
|
|
1556
1566
|
return c && (u = "-" + u), s ? u + i + s : u;
|
|
1557
1567
|
}
|
|
1558
|
-
function
|
|
1568
|
+
function xn(e) {
|
|
1559
1569
|
return K(e, 0, "vi");
|
|
1560
1570
|
}
|
|
1561
|
-
function
|
|
1571
|
+
function Sn(e, t) {
|
|
1562
1572
|
return e >= 1e9 ? K(e / 1e9, 2, t ?? G) + "B" : e >= 1e6 ? K(e / 1e6, 2, t ?? G) + "M" : e >= 1e3 ? K(e / 1e3, 2, t ?? G) + "K" : K(e, 0, t ?? G);
|
|
1563
1573
|
}
|
|
1564
1574
|
//#endregion
|
|
@@ -1570,7 +1580,7 @@ var q = {
|
|
|
1570
1580
|
ceiling: "#D946EF",
|
|
1571
1581
|
floor: "#06B6D4",
|
|
1572
1582
|
reference: "#EAB308"
|
|
1573
|
-
}, J = "Asia/Ho_Chi_Minh",
|
|
1583
|
+
}, J = "Asia/Ho_Chi_Minh", Cn = [
|
|
1574
1584
|
{
|
|
1575
1585
|
name: "ATO",
|
|
1576
1586
|
startTime: "09:00",
|
|
@@ -1601,7 +1611,7 @@ var q = {
|
|
|
1601
1611
|
endTime: "14:45",
|
|
1602
1612
|
type: "preClose"
|
|
1603
1613
|
}
|
|
1604
|
-
],
|
|
1614
|
+
], wn = [
|
|
1605
1615
|
{
|
|
1606
1616
|
name: "Phiên 1",
|
|
1607
1617
|
startTime: "09:15",
|
|
@@ -1632,7 +1642,7 @@ var q = {
|
|
|
1632
1642
|
endTime: "15:00",
|
|
1633
1643
|
type: "postClose"
|
|
1634
1644
|
}
|
|
1635
|
-
],
|
|
1645
|
+
], Tn = [
|
|
1636
1646
|
{
|
|
1637
1647
|
name: "Phiên 1",
|
|
1638
1648
|
startTime: "09:15",
|
|
@@ -1651,7 +1661,7 @@ var q = {
|
|
|
1651
1661
|
endTime: "14:30",
|
|
1652
1662
|
type: "continuous"
|
|
1653
1663
|
}
|
|
1654
|
-
],
|
|
1664
|
+
], En = [
|
|
1655
1665
|
{
|
|
1656
1666
|
name: "ATO",
|
|
1657
1667
|
startTime: "08:45",
|
|
@@ -1682,7 +1692,7 @@ var q = {
|
|
|
1682
1692
|
endTime: "14:45",
|
|
1683
1693
|
type: "preClose"
|
|
1684
1694
|
}
|
|
1685
|
-
],
|
|
1695
|
+
], Dn = {
|
|
1686
1696
|
type: "stock",
|
|
1687
1697
|
exchange: "HOSE",
|
|
1688
1698
|
currency: "VND",
|
|
@@ -1709,12 +1719,12 @@ var q = {
|
|
|
1709
1719
|
ceilingPercent: 7,
|
|
1710
1720
|
floorPercent: 7
|
|
1711
1721
|
},
|
|
1712
|
-
sessions:
|
|
1722
|
+
sessions: Cn,
|
|
1713
1723
|
colorScheme: q
|
|
1714
|
-
}, Dn = {
|
|
1715
|
-
...En,
|
|
1716
|
-
priceSteps: void 0
|
|
1717
1724
|
}, On = {
|
|
1725
|
+
...Dn,
|
|
1726
|
+
priceSteps: void 0
|
|
1727
|
+
}, kn = {
|
|
1718
1728
|
type: "stock",
|
|
1719
1729
|
exchange: "HNX",
|
|
1720
1730
|
currency: "VND",
|
|
@@ -1727,9 +1737,9 @@ var q = {
|
|
|
1727
1737
|
ceilingPercent: 10,
|
|
1728
1738
|
floorPercent: 10
|
|
1729
1739
|
},
|
|
1730
|
-
sessions:
|
|
1740
|
+
sessions: wn,
|
|
1731
1741
|
colorScheme: q
|
|
1732
|
-
},
|
|
1742
|
+
}, An = {
|
|
1733
1743
|
type: "stock",
|
|
1734
1744
|
exchange: "UPCOM",
|
|
1735
1745
|
currency: "VND",
|
|
@@ -1742,9 +1752,9 @@ var q = {
|
|
|
1742
1752
|
ceilingPercent: 15,
|
|
1743
1753
|
floorPercent: 15
|
|
1744
1754
|
},
|
|
1745
|
-
sessions:
|
|
1755
|
+
sessions: Tn,
|
|
1746
1756
|
colorScheme: q
|
|
1747
|
-
},
|
|
1757
|
+
}, jn = {
|
|
1748
1758
|
type: "futures",
|
|
1749
1759
|
exchange: "HNX",
|
|
1750
1760
|
currency: "VND",
|
|
@@ -1758,14 +1768,14 @@ var q = {
|
|
|
1758
1768
|
ceilingPercent: 7,
|
|
1759
1769
|
floorPercent: 7
|
|
1760
1770
|
},
|
|
1761
|
-
sessions:
|
|
1771
|
+
sessions: En,
|
|
1762
1772
|
colorScheme: q
|
|
1763
|
-
},
|
|
1773
|
+
}, Mn = {
|
|
1764
1774
|
type: "crypto",
|
|
1765
1775
|
currency: "USDT",
|
|
1766
1776
|
pricePrecision: 2,
|
|
1767
1777
|
priceLimits: { enabled: !1 }
|
|
1768
|
-
},
|
|
1778
|
+
}, Nn = {
|
|
1769
1779
|
type: "stock",
|
|
1770
1780
|
exchange: "NYSE",
|
|
1771
1781
|
currency: "USD",
|
|
@@ -1794,7 +1804,7 @@ var q = {
|
|
|
1794
1804
|
}
|
|
1795
1805
|
]
|
|
1796
1806
|
};
|
|
1797
|
-
function
|
|
1807
|
+
function Pn(e) {
|
|
1798
1808
|
return {
|
|
1799
1809
|
...e,
|
|
1800
1810
|
candleUp: q.up,
|
|
@@ -1806,25 +1816,25 @@ function Nn(e) {
|
|
|
1806
1816
|
};
|
|
1807
1817
|
}
|
|
1808
1818
|
var Y = 1e-9;
|
|
1809
|
-
function
|
|
1819
|
+
function Fn(e, t) {
|
|
1810
1820
|
let n = t.priceStep;
|
|
1811
1821
|
for (let r of t.priceSteps ?? []) e + Y >= r.from && (n = r.step);
|
|
1812
1822
|
return n !== void 0 && n > 0 ? n : void 0;
|
|
1813
1823
|
}
|
|
1814
|
-
function
|
|
1824
|
+
function In(e, t) {
|
|
1815
1825
|
let n = t.priceStep;
|
|
1816
1826
|
for (let r of t.priceSteps ?? []) e - Y > r.from && (n = r.step);
|
|
1817
1827
|
return n !== void 0 && n > 0 ? n : void 0;
|
|
1818
1828
|
}
|
|
1819
1829
|
function X(e, t, n = "nearest") {
|
|
1820
|
-
let r =
|
|
1830
|
+
let r = Fn(e, t);
|
|
1821
1831
|
if (r === void 0 || !Number.isFinite(e)) return e;
|
|
1822
1832
|
let i = e / r, a = n === "down" ? Math.floor(i + Y) : n === "up" ? Math.ceil(i - Y) : Math.round(i);
|
|
1823
|
-
return Number((a * r).toFixed(
|
|
1833
|
+
return Number((a * r).toFixed(mt(r)));
|
|
1824
1834
|
}
|
|
1825
|
-
function
|
|
1835
|
+
function Ln(e, t) {
|
|
1826
1836
|
if (!t.priceLimits?.enabled || !t.priceLimits.ceilingPercent) return null;
|
|
1827
|
-
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 =
|
|
1837
|
+
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 = Fn(i, t);
|
|
1828
1838
|
if (s === void 0) return {
|
|
1829
1839
|
ceiling: a,
|
|
1830
1840
|
floor: o,
|
|
@@ -1837,14 +1847,14 @@ function In(e, t) {
|
|
|
1837
1847
|
reference: i
|
|
1838
1848
|
};
|
|
1839
1849
|
let l = X(a, t, "down"), u = X(o, t, "up");
|
|
1840
|
-
return l <= i && (l = c), u >= i && (u = X(i - (
|
|
1850
|
+
return l <= i && (l = c), u >= i && (u = X(i - (In(i, t) ?? s), t)), u <= 0 && (u = i), {
|
|
1841
1851
|
ceiling: l,
|
|
1842
1852
|
floor: u,
|
|
1843
1853
|
reference: i
|
|
1844
1854
|
};
|
|
1845
1855
|
}
|
|
1846
1856
|
var Z = (e, t) => Math.round(e * t * 1e9) / 1e9;
|
|
1847
|
-
function
|
|
1857
|
+
function Rn(e, t) {
|
|
1848
1858
|
let n = Math.round(Math.log10(t));
|
|
1849
1859
|
return {
|
|
1850
1860
|
...e,
|
|
@@ -1860,11 +1870,11 @@ function Ln(e, t) {
|
|
|
1860
1870
|
}
|
|
1861
1871
|
};
|
|
1862
1872
|
}
|
|
1863
|
-
var
|
|
1864
|
-
function
|
|
1873
|
+
var zn = 6e4, Bn = 864e5;
|
|
1874
|
+
function Vn(e, t) {
|
|
1865
1875
|
let n, r;
|
|
1866
1876
|
if (t) {
|
|
1867
|
-
let i = new Date(e +
|
|
1877
|
+
let i = new Date(e + y(t, e) * zn);
|
|
1868
1878
|
n = i.getUTCHours(), r = i.getUTCMinutes();
|
|
1869
1879
|
} else {
|
|
1870
1880
|
let t = new Date(e);
|
|
@@ -1872,37 +1882,580 @@ function Bn(e, t) {
|
|
|
1872
1882
|
}
|
|
1873
1883
|
return `${String(n).padStart(2, "0")}:${String(r).padStart(2, "0")}`;
|
|
1874
1884
|
}
|
|
1875
|
-
function
|
|
1885
|
+
function Hn(e, t = Date.now(), n) {
|
|
1876
1886
|
if (n !== void 0 && !Ee(n)) return null;
|
|
1877
|
-
let r =
|
|
1887
|
+
let r = Vn(t, n);
|
|
1878
1888
|
for (let t of e) if (r >= t.startTime && r < t.endTime) return t;
|
|
1879
1889
|
return null;
|
|
1880
1890
|
}
|
|
1881
1891
|
var Q = (e) => String(e).padStart(2, "0"), $ = (e) => {
|
|
1882
1892
|
let t = new Date(e);
|
|
1883
1893
|
return `${t.getUTCFullYear()}-${Q(t.getUTCMonth() + 1)}-${Q(t.getUTCDate())}`;
|
|
1884
|
-
},
|
|
1885
|
-
function
|
|
1886
|
-
let r = Date.UTC(e, t - 1, 1), i = 1 + (
|
|
1894
|
+
}, Un = 4, Wn = 7 * 36e5;
|
|
1895
|
+
function Gn(e, t, n) {
|
|
1896
|
+
let r = Date.UTC(e, t - 1, 1), i = 1 + (Un - new Date(r).getUTCDay() + 7) % 7, a = Date.UTC(e, t - 1, i + 14), o = (e) => {
|
|
1887
1897
|
let t = new Date(e).getUTCDay();
|
|
1888
1898
|
return t === 0 || t === 6 || (n?.($(e)) ?? !1);
|
|
1889
1899
|
};
|
|
1890
|
-
for (; o(a);) a -=
|
|
1900
|
+
for (; o(a);) a -= Bn;
|
|
1891
1901
|
return $(a);
|
|
1892
1902
|
}
|
|
1893
|
-
function
|
|
1894
|
-
let n = $(e +
|
|
1903
|
+
function Kn(e, t) {
|
|
1904
|
+
let n = $(e + Wn), r = (e, n) => ({
|
|
1895
1905
|
symbol: `VN30F${Q(e % 100)}${Q(n)}`,
|
|
1896
1906
|
year: e,
|
|
1897
1907
|
month: n,
|
|
1898
|
-
lastTradingDay:
|
|
1899
|
-
}), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e +
|
|
1908
|
+
lastTradingDay: Gn(e, n, t)
|
|
1909
|
+
}), i = (e) => e.month === 12 ? r(e.year + 1, 1) : r(e.year, e.month + 1), a = new Date(e + Wn), o = r(a.getUTCFullYear(), a.getUTCMonth() + 1);
|
|
1900
1910
|
n > o.lastTradingDay && (o = i(o));
|
|
1901
1911
|
let s = [o, i(o)], c = i(s[1]);
|
|
1902
1912
|
for (; s.length < 4;) c.month % 3 == 0 && s.push(c), c = i(c);
|
|
1903
1913
|
return s;
|
|
1904
1914
|
}
|
|
1905
1915
|
//#endregion
|
|
1906
|
-
|
|
1916
|
+
//#region src/icons/iconSet.ts
|
|
1917
|
+
var qn = {
|
|
1918
|
+
cursor: { d: "M6 3.5L18.5 12.5L12.6 13.6L9.7 19.4z" },
|
|
1919
|
+
trendingUp: { d: "M3 17L9 11L13 14.5L21 6.5M15 6.5H21V12.5" },
|
|
1920
|
+
trendingDown: { d: "M3 7L9 13L13 9.5L21 17.5M15 17.5H21V11.5" },
|
|
1921
|
+
minus: { d: "M5 12H19" },
|
|
1922
|
+
plus: { d: "M12 5V19M5 12H19" },
|
|
1923
|
+
penLine: { d: "M14.5 5.5L18.5 9.5M4 20L5 15.5L15.8 4.7a2 2 0 0 1 2.83 0l.67.67a2 2 0 0 1 0 2.83L8.5 19z" },
|
|
1924
|
+
zigzag: { d: "M3 17L8 9L13 15L21 6" },
|
|
1925
|
+
hash: { d: "M5 9H19M5 15H19M10 4L8.5 20M15.5 4L14 20" },
|
|
1926
|
+
square: { d: "M6.5 4.5h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2h-11a2 2 0 0 1-2-2v-11a2 2 0 0 1 2-2z" },
|
|
1927
|
+
gitBranch: { d: "M6 3V15M18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM18 9a9 9 0 0 1-9 9" },
|
|
1928
|
+
ruler: { d: "M3.5 16.5L16.5 3.5L20.5 7.5L7.5 20.5zM6.5 13.5L8 15M9.5 10.5L11.5 12.5M12.5 7.5L14 9" },
|
|
1929
|
+
type: { d: "M6 6V4.5H18V6M12 4.5V19.5M9.5 19.5H14.5" },
|
|
1930
|
+
magnet: { d: "M6 4V11a6 6 0 0 0 12 0V4M6 4h3.5v7a2.5 2.5 0 0 0 5 0V4H18M6 8h3.5M14.5 8H18" },
|
|
1931
|
+
magnetStrong: {
|
|
1932
|
+
d: "M6 4V11a6 6 0 0 0 12 0V4M6 4h3.5v7a2.5 2.5 0 0 0 5 0V4H18",
|
|
1933
|
+
fills: ["M6 4h3.5v4H6z", "M14.5 4H18v4h-3.5z"]
|
|
1934
|
+
},
|
|
1935
|
+
eraser: { d: "M8.5 19.5L3.9 14.9a1.5 1.5 0 0 1 0-2.1l8.5-8.5a1.5 1.5 0 0 1 2.1 0l5.2 5.2a1.5 1.5 0 0 1 0 2.1L12 19.5zM8 9l7 7M12 19.5H20" },
|
|
1936
|
+
zoomIn: { d: "M16.5 10.5a6 6 0 1 1-12 0 6 6 0 0 1 12 0zM15 15L20.5 20.5M10.5 7.5V13.5M7.5 10.5H13.5" },
|
|
1937
|
+
undo: { d: "M9 14L4 9L9 4M4 9H14.5a5.5 5.5 0 0 1 0 11H11" },
|
|
1938
|
+
redo: { d: "M15 14L20 9L15 4M20 9H9.5a5.5 5.5 0 0 0 0 11H13" },
|
|
1939
|
+
trash: { d: "M4 7H20M9.5 7V4.5h5V7M6.5 7l.8 12.2A1.5 1.5 0 0 0 8.8 20.6h6.4a1.5 1.5 0 0 0 1.5-1.4L17.5 7M10 11v6M14 11v6" },
|
|
1940
|
+
camera: { d: "M4.5 7.5h3L9 5h6l1.5 2.5h3A1.5 1.5 0 0 1 21 9v9.5a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 3 18.5V9a1.5 1.5 0 0 1 1.5-1.5zM15.5 13.5a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0z" },
|
|
1941
|
+
settings: { d: "M4 7H14M18 7H20M4 17H8M12 17H20M18 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM12 17a2 2 0 1 1-4 0 2 2 0 0 1 4 0z" },
|
|
1942
|
+
moon: { d: "M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z" },
|
|
1943
|
+
sun: { d: "M16 12a4 4 0 1 1-8 0 4 4 0 0 1 8 0zM12 2.5v2M12 19.5v2M4.6 4.6l1.4 1.4M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4L6 18M18 6l1.4-1.4" },
|
|
1944
|
+
chevronDown: { d: "M6 9L12 15L18 9" },
|
|
1945
|
+
chevronUp: { d: "M6 15L12 9L18 15" },
|
|
1946
|
+
barChart: { d: "M5 20V13M12 20V5M19 20V10" },
|
|
1947
|
+
x: { d: "M6 6L18 18M18 6L6 18" },
|
|
1948
|
+
play: { d: "M7 4.5v15L19.5 12z" },
|
|
1949
|
+
pause: { d: "M8 5V19M16 5V19" },
|
|
1950
|
+
stop: { d: "M7.5 6h9A1.5 1.5 0 0 1 18 7.5v9a1.5 1.5 0 0 1-1.5 1.5h-9A1.5 1.5 0 0 1 6 16.5v-9A1.5 1.5 0 0 1 7.5 6z" },
|
|
1951
|
+
receipt: { d: "M6 3.5h12v17l-2-1.25-2 1.25-2-1.25-2 1.25-2-1.25-2 1.25zM9 8h6M9 12h6M9 16h3" },
|
|
1952
|
+
bell: { d: "M6 16.5V11a6 6 0 0 1 12 0v5.5l1.5 2H4.5zM10 20.5a2.2 2.2 0 0 0 4 0" },
|
|
1953
|
+
layers: { d: "M12 3.5L21 8.5L12 13.5L3 8.5zM3 12.5L12 17.5L21 12.5M3 16.5L12 21.5L21 16.5" },
|
|
1954
|
+
eye: { d: "M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12zM15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0z" },
|
|
1955
|
+
eyeOff: { d: "M4 4L20 20M9.9 5.8A9.6 9.6 0 0 1 12 5.5c6 0 9.5 6.5 9.5 6.5a16 16 0 0 1-2.3 3.1M6.6 7.1C3.9 8.9 2.5 12 2.5 12S6 18.5 12 18.5a9.3 9.3 0 0 0 4.7-1.3M10 10.1a3 3 0 0 0 4 4" },
|
|
1956
|
+
lock: { d: "M7 10.5h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zM8 10.5V7.5a4 4 0 0 1 8 0v3" },
|
|
1957
|
+
unlock: { d: "M7 10.5h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2zM8 10.5V7.5a4 4 0 0 1 7.7-1.5" },
|
|
1958
|
+
palette: {
|
|
1959
|
+
d: "M12 3.5a8.5 8.5 0 0 0 0 17c1.1 0 1.6-.8 1.6-1.6 0-.5-.2-.9-.5-1.2a1.6 1.6 0 0 1 1.2-2.7h1.9a4.3 4.3 0 0 0 4.3-4.3C20.5 6.9 16.7 3.5 12 3.5z",
|
|
1960
|
+
dots: [
|
|
1961
|
+
[
|
|
1962
|
+
7.5,
|
|
1963
|
+
11.5,
|
|
1964
|
+
1.25
|
|
1965
|
+
],
|
|
1966
|
+
[
|
|
1967
|
+
9.5,
|
|
1968
|
+
7.75,
|
|
1969
|
+
1.25
|
|
1970
|
+
],
|
|
1971
|
+
[
|
|
1972
|
+
14,
|
|
1973
|
+
7.25,
|
|
1974
|
+
1.25
|
|
1975
|
+
]
|
|
1976
|
+
]
|
|
1977
|
+
},
|
|
1978
|
+
check: { d: "M5 12.5L10 17.5L19 7" },
|
|
1979
|
+
maximize: { d: "M8 4H5a1 1 0 0 0-1 1v3M16 4h3a1 1 0 0 1 1 1v3M20 16v3a1 1 0 0 1-1 1h-3M8 20H5a1 1 0 0 1-1-1v-3" },
|
|
1980
|
+
minimize: { d: "M4 8h3a1 1 0 0 0 1-1V4M16 4v3a1 1 0 0 0 1 1h3M20 16h-3a1 1 0 0 0-1 1v3M8 20v-3a1 1 0 0 0-1-1H4" },
|
|
1981
|
+
repeat: { d: "M17 3.5L20.5 7L17 10.5M3.5 11.5V10a3 3 0 0 1 3-3h14M7 20.5L3.5 17L7 13.5M20.5 12.5V14a3 3 0 0 1-3 3h-14" },
|
|
1982
|
+
info: {
|
|
1983
|
+
d: "M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zM12 11V16.5",
|
|
1984
|
+
dots: [[
|
|
1985
|
+
12,
|
|
1986
|
+
7.75,
|
|
1987
|
+
1.25
|
|
1988
|
+
]]
|
|
1989
|
+
},
|
|
1990
|
+
chevronLeft: { d: "M15 5L8 12L15 19" },
|
|
1991
|
+
chevronRight: { d: "M9 5L16 12L9 19" },
|
|
1992
|
+
reset: { d: "M4.5 12a7.5 7.5 0 1 0 2.2-5.3M4.5 4v4.5H9" },
|
|
1993
|
+
calendar: { d: "M5.5 5h13a2 2 0 0 1 2 2v11.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2zM3.5 10H20.5M8 3V7M16 3V7" },
|
|
1994
|
+
star: { d: "M12 3.5L14.6 9L20.5 9.6L16 13.6L17.3 19.5L12 16.5L6.7 19.5L8 13.6L3.5 9.6L9.4 9z" },
|
|
1995
|
+
pin: { d: "M8 3.5h8M9.5 3.5v5.5L5.5 14h13l-4-5v-5.5M12 14v6.5" },
|
|
1996
|
+
search: { d: "M16.5 10.5a6 6 0 1 1-12 0 6 6 0 0 1 12 0zM15 15L20.5 20.5" },
|
|
1997
|
+
enter: { d: "M19 5v6.5a3 3 0 0 1-3 3H5.5M9.5 10L5 14.5L9.5 19" },
|
|
1998
|
+
stepBack: { d: "M6 5v14M18.5 5.5v13L8.5 12z" },
|
|
1999
|
+
stepForward: { d: "M18 5v14M5.5 5.5v13l10-6.5z" },
|
|
2000
|
+
ladder: { d: "M4 6H11M13 6H17M6 10H11M13 10H20M8 14H11M13 14H15M5 18H11M13 18H19" },
|
|
2001
|
+
save: { d: "M5.5 3.5h10.5l4.5 4.5v10.5a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2v-13a2 2 0 0 1 2-2zM8 3.5v5h7v-5M7.5 20.5v-6h9v6" },
|
|
2002
|
+
folder: { d: "M3.5 7a2 2 0 0 1 2-2h4l2 2.5h7a2 2 0 0 1 2 2V17a2 2 0 0 1-2 2h-13a2 2 0 0 1-2-2z" },
|
|
2003
|
+
link: { d: "M10 14a4 4 0 0 0 5.66 0l3-3a4 4 0 0 0-5.66-5.66l-1.2 1.2M14 10a4 4 0 0 0-5.66 0l-3 3a4 4 0 0 0 5.66 5.66l1.2-1.2" },
|
|
2004
|
+
arrowUp: { d: "M12 19V5M6 11L12 5L18 11" },
|
|
2005
|
+
arrowDown: { d: "M12 5V19M6 13L12 19L18 13" },
|
|
2006
|
+
more: { dots: [
|
|
2007
|
+
[
|
|
2008
|
+
6,
|
|
2009
|
+
12,
|
|
2010
|
+
1.6
|
|
2011
|
+
],
|
|
2012
|
+
[
|
|
2013
|
+
12,
|
|
2014
|
+
12,
|
|
2015
|
+
1.6
|
|
2016
|
+
],
|
|
2017
|
+
[
|
|
2018
|
+
18,
|
|
2019
|
+
12,
|
|
2020
|
+
1.6
|
|
2021
|
+
]
|
|
2022
|
+
] },
|
|
2023
|
+
layoutGrid: { d: "M5 4.5h4.5a.5.5 0 0 1 .5.5v4.5a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5zM14.5 4.5H19a.5.5 0 0 1 .5.5v4.5a.5.5 0 0 1-.5.5h-4.5a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5zM5 14h4.5a.5.5 0 0 1 .5.5V19a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5v-4.5A.5.5 0 0 1 5 14zM14.5 14H19a.5.5 0 0 1 .5.5V19a.5.5 0 0 1-.5.5h-4.5a.5.5 0 0 1-.5-.5v-4.5a.5.5 0 0 1 .5-.5z" }
|
|
2024
|
+
}, Jn = {
|
|
2025
|
+
trendLine: {
|
|
2026
|
+
d: "M5 18L19 6",
|
|
2027
|
+
dots: [[5, 18], [19, 6]]
|
|
2028
|
+
},
|
|
2029
|
+
ray: {
|
|
2030
|
+
d: "M5 17L21 5M17.5 4.81L21 5L20.2 8.41",
|
|
2031
|
+
dots: [[5, 17], [11, 12.5]]
|
|
2032
|
+
},
|
|
2033
|
+
extendedLine: {
|
|
2034
|
+
d: "M3 18.5L21 5M17.5 4.81L21 5L20.2 8.41M6.5 18.69L3 18.5L3.8 15.09",
|
|
2035
|
+
dots: [[9, 14], [15, 9.5]]
|
|
2036
|
+
},
|
|
2037
|
+
infoLine: {
|
|
2038
|
+
d: "M5 20L19 10M4.5 3.5h9a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zM6.5 6.5h5",
|
|
2039
|
+
dots: [[5, 20], [19, 10]]
|
|
2040
|
+
},
|
|
2041
|
+
trendAngle: {
|
|
2042
|
+
d: "M5 18L19 7M5 18H20M11 18A6 6 0 0 0 9.71 14.29",
|
|
2043
|
+
dots: [[5, 18], [19, 7]]
|
|
2044
|
+
},
|
|
2045
|
+
horizontalLine: {
|
|
2046
|
+
d: "M3 12H21",
|
|
2047
|
+
dots: [[12, 12]]
|
|
2048
|
+
},
|
|
2049
|
+
horizontalRay: {
|
|
2050
|
+
d: "M7 12H21M18.5 9.5L21 12L18.5 14.5",
|
|
2051
|
+
dots: [[7, 12]]
|
|
2052
|
+
},
|
|
2053
|
+
verticalLine: {
|
|
2054
|
+
d: "M12 3V21",
|
|
2055
|
+
dots: [[12, 12]]
|
|
2056
|
+
},
|
|
2057
|
+
crossLine: {
|
|
2058
|
+
d: "M3 12H21M12 3V21",
|
|
2059
|
+
dots: [[12, 12]]
|
|
2060
|
+
},
|
|
2061
|
+
parallelChannel: {
|
|
2062
|
+
d: "M3 15L15 5M9 19L21 9",
|
|
2063
|
+
dots: [
|
|
2064
|
+
[3, 15],
|
|
2065
|
+
[15, 5],
|
|
2066
|
+
[9, 19]
|
|
2067
|
+
]
|
|
2068
|
+
},
|
|
2069
|
+
regressionChannel: {
|
|
2070
|
+
d: "M3 12L21 4M3 20L21 12",
|
|
2071
|
+
dash: "M3 16L21 8",
|
|
2072
|
+
dots: [[3, 16], [21, 8]]
|
|
2073
|
+
},
|
|
2074
|
+
fibRetracement: {
|
|
2075
|
+
d: "M3 4H21M3 9H21M3 13H21M3 20H21",
|
|
2076
|
+
dots: [[5, 20], [19, 4]]
|
|
2077
|
+
},
|
|
2078
|
+
fibExtension: {
|
|
2079
|
+
d: "M3 20L8 10L12 16M14 4H21M14 8H21M14 12H21",
|
|
2080
|
+
dots: [
|
|
2081
|
+
[3, 20],
|
|
2082
|
+
[8, 10],
|
|
2083
|
+
[12, 16]
|
|
2084
|
+
]
|
|
2085
|
+
},
|
|
2086
|
+
fibChannel: {
|
|
2087
|
+
d: "M3 9L21 3M3 13L21 7M3 16L21 10M3 21L21 15",
|
|
2088
|
+
dots: [
|
|
2089
|
+
[3, 21],
|
|
2090
|
+
[21, 15],
|
|
2091
|
+
[3, 9]
|
|
2092
|
+
]
|
|
2093
|
+
},
|
|
2094
|
+
fibTimeZones: {
|
|
2095
|
+
d: "M3 4V20M6 4V20M9.5 4V20M14 4V20M20.5 4V20",
|
|
2096
|
+
dots: [[3, 20], [6, 20]]
|
|
2097
|
+
},
|
|
2098
|
+
fibSpeedResistanceFan: {
|
|
2099
|
+
d: "M4 20L20 4M4 20L20 11M4 20L20 16M4 20L11 4",
|
|
2100
|
+
dash: "M4 4H20V20",
|
|
2101
|
+
dots: [[4, 20], [20, 4]]
|
|
2102
|
+
},
|
|
2103
|
+
rectangle: {
|
|
2104
|
+
d: "M5.5 6h13A1.5 1.5 0 0 1 20 7.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 16.5v-9A1.5 1.5 0 0 1 5.5 6z",
|
|
2105
|
+
dots: [[4, 6], [20, 18]]
|
|
2106
|
+
},
|
|
2107
|
+
circle: {
|
|
2108
|
+
d: "M19.5 12a7.5 7.5 0 1 1-15 0 7.5 7.5 0 0 1 15 0z",
|
|
2109
|
+
dots: [[12, 12], [19.5, 12]]
|
|
2110
|
+
},
|
|
2111
|
+
ellipse: {
|
|
2112
|
+
d: "M20.5 12c0 3-3.8 5.5-8.5 5.5S3.5 15 3.5 12 7.3 6.5 12 6.5s8.5 2.5 8.5 5.5z",
|
|
2113
|
+
dots: [[3.5, 12], [20.5, 12]]
|
|
2114
|
+
},
|
|
2115
|
+
triangle: {
|
|
2116
|
+
d: "M12 4.5L20 19H4z",
|
|
2117
|
+
dots: [
|
|
2118
|
+
[12, 4.5],
|
|
2119
|
+
[20, 19],
|
|
2120
|
+
[4, 19]
|
|
2121
|
+
]
|
|
2122
|
+
},
|
|
2123
|
+
pitchfork: {
|
|
2124
|
+
d: "M4 20L16.75 3M7 9L11.5 3M13 15L21 4.33M7 9L13 15",
|
|
2125
|
+
dots: [
|
|
2126
|
+
[4, 20],
|
|
2127
|
+
[7, 9],
|
|
2128
|
+
[13, 15]
|
|
2129
|
+
]
|
|
2130
|
+
},
|
|
2131
|
+
schiffPitchfork: {
|
|
2132
|
+
d: "M4 14.5L21 7.42M7 9L21 3.17M13 15L21 11.67M7 9L13 15",
|
|
2133
|
+
dash: "M4 20V14.5",
|
|
2134
|
+
dots: [
|
|
2135
|
+
[4, 14.5],
|
|
2136
|
+
[7, 9],
|
|
2137
|
+
[13, 15]
|
|
2138
|
+
]
|
|
2139
|
+
},
|
|
2140
|
+
modifiedSchiffPitchfork: {
|
|
2141
|
+
d: "M5.5 14.5L21 5.89M7 9L17.8 3M13 15L21 10.56M7 9L13 15",
|
|
2142
|
+
dash: "M4 20L5.5 14.5",
|
|
2143
|
+
dots: [
|
|
2144
|
+
[5.5, 14.5],
|
|
2145
|
+
[7, 9],
|
|
2146
|
+
[13, 15]
|
|
2147
|
+
]
|
|
2148
|
+
},
|
|
2149
|
+
gannFan: {
|
|
2150
|
+
d: "M4 20L20 4M4 20L20 12M4 20L12 4M4 20L20 16.5M4 20L7.5 4",
|
|
2151
|
+
dots: [[4, 20], [20, 4]]
|
|
2152
|
+
},
|
|
2153
|
+
gannBox: {
|
|
2154
|
+
d: "M4 4H20V20H4zM4 20L20 4M4 4L20 20M12 4V20",
|
|
2155
|
+
dots: [[4, 20], [20, 4]]
|
|
2156
|
+
},
|
|
2157
|
+
cyclicLines: {
|
|
2158
|
+
d: "M4 4V20M9 4V20M14 4V20M19 4V20",
|
|
2159
|
+
dots: [[4, 20], [9, 20]]
|
|
2160
|
+
},
|
|
2161
|
+
xabcdPattern: {
|
|
2162
|
+
d: "M3 18L7 6L11 13L15 8L21 19",
|
|
2163
|
+
dash: "M3 18L11 13L21 19",
|
|
2164
|
+
dots: [
|
|
2165
|
+
[3, 18],
|
|
2166
|
+
[7, 6],
|
|
2167
|
+
[11, 13],
|
|
2168
|
+
[15, 8],
|
|
2169
|
+
[21, 19]
|
|
2170
|
+
]
|
|
2171
|
+
},
|
|
2172
|
+
abcdPattern: {
|
|
2173
|
+
d: "M4 19L9 8L13 14L20 4",
|
|
2174
|
+
dots: [
|
|
2175
|
+
[4, 19],
|
|
2176
|
+
[9, 8],
|
|
2177
|
+
[13, 14],
|
|
2178
|
+
[20, 4]
|
|
2179
|
+
]
|
|
2180
|
+
},
|
|
2181
|
+
headAndShoulders: {
|
|
2182
|
+
d: "M3 19L6 11L8.5 15L12 5L15.5 15L18 11L21 19",
|
|
2183
|
+
dash: "M4.5 15H19.5",
|
|
2184
|
+
dots: [
|
|
2185
|
+
[6, 11],
|
|
2186
|
+
[12, 5],
|
|
2187
|
+
[18, 11]
|
|
2188
|
+
]
|
|
2189
|
+
},
|
|
2190
|
+
elliottWave: {
|
|
2191
|
+
d: "M3 19L6 13L8.5 16L14 6L16 10L21 4",
|
|
2192
|
+
dots: [[3, 19], [21, 4]]
|
|
2193
|
+
},
|
|
2194
|
+
priceRange: { d: "M5 4H19M5 20H19M12 6.5V17.5M9 9.5L12 6.5L15 9.5M9 14.5L12 17.5L15 14.5" },
|
|
2195
|
+
dateRange: { d: "M4 5V19M20 5V19M6.5 12H17.5M9.5 9L6.5 12L9.5 15M14.5 9L17.5 12L14.5 15" },
|
|
2196
|
+
dateAndPriceRange: {
|
|
2197
|
+
d: "M6 18V4M3 7L6 4L9 7M6 18H20M17 15L20 18L17 21",
|
|
2198
|
+
dash: "M6 4H20V18"
|
|
2199
|
+
},
|
|
2200
|
+
measure: { d: "M3.5 16.5L16.5 3.5L20.5 7.5L7.5 20.5zM6.5 13.5L8 15M9.5 10.5L11.5 12.5M12.5 7.5L14 9" },
|
|
2201
|
+
text: { d: "M6 6V4.5H18V6M12 4.5V19.5M9.5 19.5H14.5" },
|
|
2202
|
+
priceLabel: { d: "M9 5H19a1.5 1.5 0 0 1 1.5 1.5v11A1.5 1.5 0 0 1 19 19H9L3.5 12zM11 12H17" },
|
|
2203
|
+
arrow: { d: "M5 19L19 5M10 5H19V14" },
|
|
2204
|
+
riskReward: {
|
|
2205
|
+
d: "M5 12V4H19V12M3 12H21",
|
|
2206
|
+
dash: "M5 12V18H19V12",
|
|
2207
|
+
dots: [[5, 12]]
|
|
2208
|
+
},
|
|
2209
|
+
anchoredVWAP: {
|
|
2210
|
+
d: "M4 18C9 17 12 10 20 7M4 20.5V18",
|
|
2211
|
+
dots: [[4, 18]]
|
|
2212
|
+
},
|
|
2213
|
+
volumeProfileRange: {
|
|
2214
|
+
d: "M6 7H12M6 10.5H17M6 14H15M6 17.5H10",
|
|
2215
|
+
dash: "M3.5 4V20M20.5 4V20",
|
|
2216
|
+
dots: [[3.5, 20], [20.5, 20]]
|
|
2217
|
+
},
|
|
2218
|
+
note: { d: "M5.5 4.5h13v9l-5 5h-8zM13.5 18.5v-5h5M8.5 8.5h7M8.5 11.5h4" },
|
|
2219
|
+
callout: {
|
|
2220
|
+
d: "M10.5 4h9a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zM12 12L5 19M12.5 8h5",
|
|
2221
|
+
dots: [[5, 19]]
|
|
2222
|
+
},
|
|
2223
|
+
flag: {
|
|
2224
|
+
d: "M6 21V4M6 4.5h11l-2.5 3.75L17 12H6",
|
|
2225
|
+
soft: "M6 4.5h11l-2.5 3.75L17 12H6z",
|
|
2226
|
+
dots: [[6, 21]]
|
|
2227
|
+
},
|
|
2228
|
+
arrowMark: { d: "M12 4L18 11H14.5V20H9.5V11H6z" },
|
|
2229
|
+
icon: { d: "M12 3.5l2.6 5.3 5.9.85-4.25 4.15 1 5.85L12 16.9l-5.25 2.75 1-5.85L3.5 9.65l5.9-.85z" },
|
|
2230
|
+
brush: { d: "M3.5 17c2.5 0 3-5 6-5s2.5 5 5.5 5 3.5-6 5.5-9" },
|
|
2231
|
+
highlighter: { d: "M14.5 4.5l5 5L11 18H6v-5zM12 7l5 5M4 21h8" },
|
|
2232
|
+
path: {
|
|
2233
|
+
d: "M4 18L9 10L14 14L20 6M16.2 6.6L20 6L19.6 9.8",
|
|
2234
|
+
dots: [
|
|
2235
|
+
[4, 18],
|
|
2236
|
+
[9, 10],
|
|
2237
|
+
[14, 14]
|
|
2238
|
+
]
|
|
2239
|
+
},
|
|
2240
|
+
polyline: {
|
|
2241
|
+
d: "M5 17L8 6L16 4L20 14L12 20z",
|
|
2242
|
+
soft: "M5 17L8 6L16 4L20 14L12 20z",
|
|
2243
|
+
dots: [
|
|
2244
|
+
[5, 17],
|
|
2245
|
+
[8, 6],
|
|
2246
|
+
[16, 4],
|
|
2247
|
+
[20, 14],
|
|
2248
|
+
[12, 20]
|
|
2249
|
+
]
|
|
2250
|
+
},
|
|
2251
|
+
curve: {
|
|
2252
|
+
d: "M4 18C8 4 16 4 20 18",
|
|
2253
|
+
dots: [
|
|
2254
|
+
[4, 18],
|
|
2255
|
+
[20, 18],
|
|
2256
|
+
[12, 7.5]
|
|
2257
|
+
]
|
|
2258
|
+
},
|
|
2259
|
+
arc: {
|
|
2260
|
+
d: "M4 17a8 8 0 0 1 16 0",
|
|
2261
|
+
dots: [
|
|
2262
|
+
[4, 17],
|
|
2263
|
+
[20, 17],
|
|
2264
|
+
[12, 9]
|
|
2265
|
+
]
|
|
2266
|
+
},
|
|
2267
|
+
fibCircles: {
|
|
2268
|
+
d: "M14 12a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM16.5 12a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0zM20 12a8 8 0 1 1-16 0 8 8 0 0 1 16 0z",
|
|
2269
|
+
dots: [[12, 12], [20, 12]]
|
|
2270
|
+
},
|
|
2271
|
+
fibSpiral: {
|
|
2272
|
+
d: "M12 12a1.5 1.5 0 0 1 1.5 1.5 3 3 0 0 1-3 3A4.5 4.5 0 0 1 6 12a6 6 0 0 1 6-6 8 8 0 0 1 8 8",
|
|
2273
|
+
dots: [[12, 12]]
|
|
2274
|
+
},
|
|
2275
|
+
fibArcs: {
|
|
2276
|
+
d: "M10 20a6 6 0 0 0-6-6M14 20a10 10 0 0 0-10-10M18 20a14 14 0 0 0-14-14",
|
|
2277
|
+
dash: "M4 20L18 6",
|
|
2278
|
+
dots: [[4, 20], [18, 6]]
|
|
2279
|
+
},
|
|
2280
|
+
fibWedge: {
|
|
2281
|
+
d: "M4 19L20 7M4 19L20 16M10.4 14.2A8 8 0 0 1 11.86 17.53M14.4 11.2A13 13 0 0 1 16.78 16.6",
|
|
2282
|
+
dots: [
|
|
2283
|
+
[4, 19],
|
|
2284
|
+
[20, 7],
|
|
2285
|
+
[20, 16]
|
|
2286
|
+
]
|
|
2287
|
+
},
|
|
2288
|
+
pitchfan: {
|
|
2289
|
+
d: "M4 20L14 4M4 20L20 14M4 20L17 9",
|
|
2290
|
+
dash: "M14 4L20 14",
|
|
2291
|
+
dots: [
|
|
2292
|
+
[4, 20],
|
|
2293
|
+
[14, 4],
|
|
2294
|
+
[20, 14]
|
|
2295
|
+
]
|
|
2296
|
+
},
|
|
2297
|
+
gannSquare: {
|
|
2298
|
+
d: "M4 4H20V20H4zM4 20L20 4M4 12H20M12 4V20M4 12a8 8 0 0 1 8 8",
|
|
2299
|
+
dots: [[4, 20], [20, 4]]
|
|
2300
|
+
},
|
|
2301
|
+
elliottImpulse: {
|
|
2302
|
+
d: "M3 19L7 12L10 15L15 5L17.5 9L21 3",
|
|
2303
|
+
dots: [[3, 19], [21, 3]]
|
|
2304
|
+
},
|
|
2305
|
+
elliottCorrection: {
|
|
2306
|
+
d: "M4 5L10 17L14 11L20 20",
|
|
2307
|
+
dots: [[4, 5], [20, 20]]
|
|
2308
|
+
},
|
|
2309
|
+
elliottTriangle: {
|
|
2310
|
+
d: "M3 6L7 17L11 9L15 15L18 11L21 13",
|
|
2311
|
+
dots: [[3, 6], [21, 13]]
|
|
2312
|
+
},
|
|
2313
|
+
elliottDoubleCombo: {
|
|
2314
|
+
d: "M4 5L9 14L13 9L20 19",
|
|
2315
|
+
dots: [
|
|
2316
|
+
[4, 5],
|
|
2317
|
+
[9, 14],
|
|
2318
|
+
[13, 9],
|
|
2319
|
+
[20, 19]
|
|
2320
|
+
]
|
|
2321
|
+
},
|
|
2322
|
+
elliottTripleCombo: {
|
|
2323
|
+
d: "M3 5L7 13L10 9L14 16L17 12L21 20",
|
|
2324
|
+
dots: [[3, 5], [21, 20]]
|
|
2325
|
+
},
|
|
2326
|
+
threeDrives: {
|
|
2327
|
+
d: "M3 20L7 12L9.5 15L14 7L16.5 10L21 3",
|
|
2328
|
+
dash: "M7 12L14 7L21 3",
|
|
2329
|
+
dots: [
|
|
2330
|
+
[7, 12],
|
|
2331
|
+
[14, 7],
|
|
2332
|
+
[21, 3]
|
|
2333
|
+
]
|
|
2334
|
+
},
|
|
2335
|
+
cypherPattern: {
|
|
2336
|
+
d: "M3 19L7 9L10 14L15 5L20 16",
|
|
2337
|
+
dash: "M3 19L10 14L20 16",
|
|
2338
|
+
dots: [
|
|
2339
|
+
[3, 19],
|
|
2340
|
+
[7, 9],
|
|
2341
|
+
[10, 14],
|
|
2342
|
+
[15, 5],
|
|
2343
|
+
[20, 16]
|
|
2344
|
+
]
|
|
2345
|
+
},
|
|
2346
|
+
timeCycles: {
|
|
2347
|
+
d: "M3 18a4.5 4.5 0 0 1 9 0a4.5 4.5 0 0 1 9 0",
|
|
2348
|
+
dots: [[3, 18], [12, 18]]
|
|
2349
|
+
},
|
|
2350
|
+
sineLine: {
|
|
2351
|
+
d: "M3 12C5 5 7.5 5 9 12S13 19 15 12 19.5 5 21 12",
|
|
2352
|
+
dots: [[6, 6.75], [12, 17.25]]
|
|
2353
|
+
},
|
|
2354
|
+
forecast: {
|
|
2355
|
+
d: "M4 18L15.2 7.8M19.5 6a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0z",
|
|
2356
|
+
dots: [[4, 18]]
|
|
2357
|
+
},
|
|
2358
|
+
projection: {
|
|
2359
|
+
d: "M12 19L18 11M15.2 11.3L18 11L17.8 13.8",
|
|
2360
|
+
dash: "M3 17L9 9",
|
|
2361
|
+
dots: [
|
|
2362
|
+
[3, 17],
|
|
2363
|
+
[9, 9],
|
|
2364
|
+
[12, 19]
|
|
2365
|
+
]
|
|
2366
|
+
},
|
|
2367
|
+
barsPattern: {
|
|
2368
|
+
d: "M5 6V14M9 9V18M15 4V12M19 7V16",
|
|
2369
|
+
fills: [
|
|
2370
|
+
"M4 8h2v4H4z",
|
|
2371
|
+
"M8 11h2v5H8z",
|
|
2372
|
+
"M14 6h2v4h-2z",
|
|
2373
|
+
"M18 9h2v5h-2z"
|
|
2374
|
+
],
|
|
2375
|
+
dash: "M12 3V21"
|
|
2376
|
+
}
|
|
2377
|
+
}, Yn = {
|
|
2378
|
+
candlestick: {
|
|
2379
|
+
d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19",
|
|
2380
|
+
fills: ["M6.5 7h3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1z", "M14.5 8.5h3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z"]
|
|
2381
|
+
},
|
|
2382
|
+
hollowCandle: { d: "M8 3.5V7M8 16V20.5M16 5V8.5M16 15.5V19M6.5 7h3a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zM14.5 8.5h3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1z" },
|
|
2383
|
+
heikinAshi: {
|
|
2384
|
+
d: "M5.5 9.5V12M5.5 18V20M12 5.5V8M12 14V16M18.5 3V4.5M18.5 10.5V12.5",
|
|
2385
|
+
fills: [
|
|
2386
|
+
"M4 12h3a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5v-5A.5.5 0 0 1 4 12z",
|
|
2387
|
+
"M10.5 8h3a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-5a.5.5 0 0 1 .5-.5z",
|
|
2388
|
+
"M17 4.5h3a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V5a.5.5 0 0 1 .5-.5z"
|
|
2389
|
+
]
|
|
2390
|
+
},
|
|
2391
|
+
bar: { d: "M8 4V20M5 8H8M8 16H11M16 6V18M13 15H16M16 9H19" },
|
|
2392
|
+
volumeCandles: {
|
|
2393
|
+
d: "M6.5 5V8M6.5 16V19M15.5 3.5V6M15.5 16V20",
|
|
2394
|
+
fills: ["M5.5 8h2a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1-.5-.5v-7a.5.5 0 0 1 .5-.5z", "M11.5 6h8a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5z"]
|
|
2395
|
+
},
|
|
2396
|
+
equivolume: { d: "M4.5 10h2a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1zM10 6h5a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zM18.5 4h1a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z" },
|
|
2397
|
+
line: { d: "M3 17L8 11L12 14L21 5" },
|
|
2398
|
+
area: {
|
|
2399
|
+
d: "M3 17L8 11L12 14L21 5",
|
|
2400
|
+
soft: "M3 17L8 11L12 14L21 5V20H3z"
|
|
2401
|
+
},
|
|
2402
|
+
baseline: {
|
|
2403
|
+
d: "M3 16L7 9L11 14L15 7L21 15",
|
|
2404
|
+
dash: "M3 12H21"
|
|
2405
|
+
},
|
|
2406
|
+
hlcArea: {
|
|
2407
|
+
d: "M3 9L8 6L13 9L21 4M3 15L8 13L13 16L21 11",
|
|
2408
|
+
dash: "M3 12L8 9.5L13 12.5L21 7.5",
|
|
2409
|
+
soft: "M3 9L8 6L13 9L21 4V11L13 16L8 13L3 15z"
|
|
2410
|
+
},
|
|
2411
|
+
stepLine: { d: "M3 18H8V12H12V15H16V7H21" },
|
|
2412
|
+
lineWithMarkers: {
|
|
2413
|
+
d: "M4 17L9 10L14 14L20 6",
|
|
2414
|
+
dots: [
|
|
2415
|
+
[4, 17],
|
|
2416
|
+
[9, 10],
|
|
2417
|
+
[14, 14],
|
|
2418
|
+
[20, 6]
|
|
2419
|
+
]
|
|
2420
|
+
},
|
|
2421
|
+
hiLo: {
|
|
2422
|
+
d: "M6 7V17M12 4V14M18 9V20",
|
|
2423
|
+
fills: [
|
|
2424
|
+
"M5 7h2v10H5z",
|
|
2425
|
+
"M11 4h2v10h-2z",
|
|
2426
|
+
"M17 9h2v11h-2z"
|
|
2427
|
+
]
|
|
2428
|
+
},
|
|
2429
|
+
renko: { d: "M3.5 15.5h4v4h-4zM7.5 11.5h4v4h-4zM11.5 7.5h4v4h-4zM15.5 11.5h4v4h-4z" },
|
|
2430
|
+
lineBreak: {
|
|
2431
|
+
d: "M4 14h4v5H4zM8 10h4v4H8zM16 9h4v8h-4z",
|
|
2432
|
+
fills: ["M12 5h4v5h-4z"]
|
|
2433
|
+
},
|
|
2434
|
+
kagi: { d: "M4 19V11H9V16H14V5H20V13" },
|
|
2435
|
+
pointAndFigure: { d: "M5.5 5.5l3 3M8.5 5.5l-3 3M5.5 10.5l3 3M8.5 10.5l-3 3M5.5 15.5l3 3M8.5 15.5l-3 3M14.5 9a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0M14.5 14a1.5 1.5 0 1 0 3 0a1.5 1.5 0 1 0-3 0" },
|
|
2436
|
+
rangeBars: {
|
|
2437
|
+
d: "M6.5 11V12M6.5 18V19M12 7V8M12 14V15M17.5 3.5V4.5M17.5 10.5V11.5",
|
|
2438
|
+
fills: [
|
|
2439
|
+
"M5 12h3v6H5z",
|
|
2440
|
+
"M10.5 8h3v6h-3z",
|
|
2441
|
+
"M16 4.5h3v6h-3z"
|
|
2442
|
+
]
|
|
2443
|
+
}
|
|
2444
|
+
}, Xn = 1.75, Zn = .22, Qn = /* @__PURE__ */ new WeakMap();
|
|
2445
|
+
function $n(e) {
|
|
2446
|
+
let t = Qn.get(e);
|
|
2447
|
+
if (t) return t;
|
|
2448
|
+
let n = "";
|
|
2449
|
+
e.soft && (n += `<path d="${e.soft}" fill="currentColor" fill-opacity="${Zn}" stroke="none"/>`);
|
|
2450
|
+
for (let t of e.fills ?? []) n += `<path d="${t}" fill="currentColor" stroke="none"/>`;
|
|
2451
|
+
e.d && (n += `<path d="${e.d}"/>`), e.dash && (n += `<path d="${e.dash}" stroke-dasharray="2 2.5"/>`);
|
|
2452
|
+
for (let [t, r, i = Xn] of e.dots ?? []) n += `<circle cx="${t}" cy="${r}" r="${i}" fill="currentColor" stroke="none"/>`;
|
|
2453
|
+
return Qn.set(e, n), n;
|
|
2454
|
+
}
|
|
2455
|
+
function er(e, t) {
|
|
2456
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">${$n(e)}</svg>`;
|
|
2457
|
+
}
|
|
2458
|
+
//#endregion
|
|
2459
|
+
export { t as CHART_STYLE_KEYS, Yn as CHART_TYPE_ICONS, z as DARK_TERMINAL, L as DARK_THEME, ln as DEFAULT_BAR_SPACING, cn as DEFAULT_BAR_WIDTH, nn as DEFAULT_CHART_OPTIONS, n as DEFAULT_DRAWING_STYLE, Pt as DEFAULT_FONT_FAMILY, pn as DEFAULT_PANEL_HEIGHT, o as DEFAULT_RECONNECT, i as DEFAULT_SIGNAL_STYLE, s as DEFAULT_STREAM_CONFIG, sn as DEFAULT_TIMEFRAME_FAVORITES, a as DEFAULT_TRADE_ZONE_STYLE, r as DEFAULT_TRADING_CONFIG, Jn as DRAWING_TOOL_ICONS, wn as HNX_SESSIONS, Cn as HOSE_SESSIONS, Xn as ICON_DOT_RADIUS, Zn as ICON_SOFT_OPACITY, R as LIGHT_THEME, e as LayerType, Mn as MARKET_CRYPTO, kn as MARKET_HNX, Dn as MARKET_HOSE, On as MARKET_HOSE_ETF, Nn as MARKET_NYSE, An as MARKET_UPCOM, jn as MARKET_VN30F, fn as MIN_PANEL_HEIGHT, se as MS_TIME_THRESHOLD, un as PRICE_AXIS_WIDTH, nt as PRICE_SOURCES, N as TC_PALETTE, Lt as TC_SERIES_COLORS, rn as TIMEFRAMES_CRYPTO, on as TIMEFRAMES_FOREX, an as TIMEFRAMES_STOCK, dn as TIME_AXIS_HEIGHT, qn as UI_ICONS, Tn as UPCOM_SESSIONS, En as VN30F_SESSIONS, q as VN_COLORS, It as VOLUME_ALPHA, Re as alignToTimeframe, Ye as autoPricePrecision, ce as barTimeUnit, He as barsAreDaily, tn as chartStyleValue, ne as clamp, Ln as computePriceLimits, me as computePriceRange, oe as computeTickStep, Pn as createVNTheme, tt as detectPrecision, wt as drawingOption, U as en, fe as findBarIndex, Ze as formatFraction, K as formatNumber, Je as formatPrice, Xe as formatPriceScaleLabel, Le as formatTimestamp, xn as formatVND, et as formatVolume, Sn as formatVolumeLoc, Qe as fractionTick, Hn as getCurrentSession, _n as getLocale, bn as getLocaleStrings, ge as hexToRgba, er as iconSvg, ot as indicatorSource, ie as inverseLerp, Be as isDateOnly, rt as isPriceSource, Ie as isTimeFrame, Ee as isValidTimeZone, re as lerp, ve as lerpColor, Xt as lineDash, gt as marketStatus, he as mergeBar, m as niceNumber, ue as normalizeBar, le as normalizeBarTime, x as offsetAt, pe as padPriceRange, st as parseIndicatorSource, S as parseTimeframe, dt as pickBaseTimeframe, $e as priceFormatterFor, Fn as priceStepAt, pt as rankSymbols, Kt as readChartStyleOverrides, Nt as readChartTypeOptions, Yt as readIndicatorPlotStyles, te as readNews, qt as readPaneStyle, l as readQuote, yn as registerLocale, lt as resampleBars, Qt as resolveChartTheme, Tt as resolveDrawingOptions, B as resolveVolumeColors, X as roundToPriceStep, ae as roundToStep, St as sanitizeDrawingOptions, Mt as sanitizeDrawingStyle, Rn as scaleMarketPrices, E as sessionMinute, gn as setLocale, de as sliceVisibleData, it as sourcePrice, mt as stepDecimals, vn as t, Fe as tickBarCount, ze as timeParts, Ge as timeframeBucketStart, C as timeframeToMs, Ue as tzLabel, mn as vi, Kn as vn30fContracts, Gn as vn30fLastTradingDay, P as volumeColor, Oe as wallToUtc, _e as withAlpha, y as zoneOffsetMinutes, Ae as zonedDateFormatter };
|
|
1907
2460
|
|
|
1908
2461
|
//# sourceMappingURL=index.js.map
|