@tradecanvas/chart 1.51.0 → 1.52.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/Chart.d.ts +174 -6
- package/dist/Chart.d.ts.map +1 -1
- package/dist/DataManager.d.ts +24 -0
- package/dist/DataManager.d.ts.map +1 -1
- package/dist/{LayoutSession-Qkx1huV-.js → LayoutSession-4SLt8-0u.js} +680 -419
- package/dist/LayoutSession-4SLt8-0u.js.map +1 -0
- package/dist/LayoutSession-BOtFzvMm.cjs +2 -0
- package/dist/LayoutSession-BOtFzvMm.cjs.map +1 -0
- package/dist/SeriesStore.d.ts +31 -0
- package/dist/SeriesStore.d.ts.map +1 -1
- package/dist/charts/ChartTypeStrategy.d.ts +32 -5
- package/dist/charts/ChartTypeStrategy.d.ts.map +1 -1
- package/dist/frameworks/feedBars.d.ts +22 -6
- package/dist/frameworks/feedBars.d.ts.map +1 -1
- package/dist/i18n-BjW5GVrO.cjs +2 -0
- package/dist/i18n-BjW5GVrO.cjs.map +1 -0
- package/dist/{i18n-DFTQ73Cz.js → i18n-C7b-2BJ5.js} +19 -1
- package/dist/i18n-C7b-2BJ5.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +119 -96
- package/dist/index.js.map +1 -1
- package/dist/io/resampleOHLCV.d.ts +10 -4
- package/dist/io/resampleOHLCV.d.ts.map +1 -1
- package/dist/widget/ChartWidget.d.ts +238 -9
- package/dist/widget/ChartWidget.d.ts.map +1 -1
- package/dist/widget/ChartWidgetGrid.d.ts.map +1 -1
- package/dist/widget/WidgetDataWindow.d.ts +7 -0
- package/dist/widget/WidgetDataWindow.d.ts.map +1 -1
- package/dist/widget/WidgetIndicatorLegend.d.ts +21 -3
- package/dist/widget/WidgetIndicatorLegend.d.ts.map +1 -1
- package/dist/widget/WidgetIndicatorSettings.d.ts.map +1 -1
- package/dist/widget/WidgetObjectTree.d.ts +7 -1
- package/dist/widget/WidgetObjectTree.d.ts.map +1 -1
- package/dist/widget/WidgetSettings.d.ts +11 -3
- package/dist/widget/WidgetSettings.d.ts.map +1 -1
- package/dist/widget/chartSettingsStore.d.ts +76 -0
- package/dist/widget/chartSettingsStore.d.ts.map +1 -0
- package/dist/widget/chartTemplates.d.ts.map +1 -1
- package/dist/widget/compareLegend.d.ts +20 -0
- package/dist/widget/compareLegend.d.ts.map +1 -0
- package/dist/widget/index.cjs +103 -28
- package/dist/widget/index.cjs.map +1 -1
- package/dist/widget/index.d.ts +1 -1
- package/dist/widget/index.d.ts.map +1 -1
- package/dist/widget/index.js +2454 -1860
- package/dist/widget/index.js.map +1 -1
- package/dist/widget/indicatorInputWords.d.ts +19 -0
- package/dist/widget/indicatorInputWords.d.ts.map +1 -0
- package/dist/widget/locales/ar.d.ts.map +1 -1
- package/dist/widget/locales/cs.d.ts.map +1 -1
- package/dist/widget/locales/da.d.ts.map +1 -1
- package/dist/widget/locales/de.d.ts.map +1 -1
- package/dist/widget/locales/el.d.ts.map +1 -1
- package/dist/widget/locales/en.d.ts +9 -0
- package/dist/widget/locales/en.d.ts.map +1 -1
- package/dist/widget/locales/es.d.ts.map +1 -1
- package/dist/widget/locales/et.d.ts.map +1 -1
- package/dist/widget/locales/fa.d.ts.map +1 -1
- package/dist/widget/locales/fr.d.ts.map +1 -1
- package/dist/widget/locales/he.d.ts.map +1 -1
- package/dist/widget/locales/hu.d.ts.map +1 -1
- package/dist/widget/locales/id.d.ts.map +1 -1
- package/dist/widget/locales/index.cjs +1 -1
- package/dist/widget/locales/index.cjs.map +1 -1
- package/dist/widget/locales/index.js +253 -1
- package/dist/widget/locales/index.js.map +1 -1
- package/dist/widget/locales/it.d.ts.map +1 -1
- package/dist/widget/locales/ja.d.ts.map +1 -1
- package/dist/widget/locales/ko.d.ts.map +1 -1
- package/dist/widget/locales/ms.d.ts.map +1 -1
- package/dist/widget/locales/nb.d.ts.map +1 -1
- package/dist/widget/locales/nl.d.ts.map +1 -1
- package/dist/widget/locales/pl.d.ts.map +1 -1
- package/dist/widget/locales/pt.d.ts.map +1 -1
- package/dist/widget/locales/ro.d.ts.map +1 -1
- package/dist/widget/locales/ru.d.ts.map +1 -1
- package/dist/widget/locales/sk.d.ts.map +1 -1
- package/dist/widget/locales/sv.d.ts.map +1 -1
- package/dist/widget/locales/th.d.ts.map +1 -1
- package/dist/widget/locales/tr.d.ts.map +1 -1
- package/dist/widget/locales/vi.d.ts.map +1 -1
- package/dist/widget/locales/zh.d.ts.map +1 -1
- package/dist/widget/locales/zhHant.d.ts.map +1 -1
- package/dist/widget/settingsRows.d.ts +12 -3
- package/dist/widget/settingsRows.d.ts.map +1 -1
- package/dist/widget/symbolInfoView.d.ts.map +1 -1
- package/dist/widget/types.d.ts +60 -7
- package/dist/widget/types.d.ts.map +1 -1
- package/dist/widget/widgetCompare.d.ts +18 -0
- package/dist/widget/widgetCompare.d.ts.map +1 -1
- package/dist/widget/widgetLayout.d.ts +13 -1
- package/dist/widget/widgetLayout.d.ts.map +1 -1
- package/dist/widget/widgetSettingsLook.d.ts +3 -1
- package/dist/widget/widgetSettingsLook.d.ts.map +1 -1
- package/dist/widget/widgetShareState.d.ts +8 -0
- package/dist/widget/widgetShareState.d.ts.map +1 -1
- package/dist/widget/widgetTimezones.d.ts +4 -1
- package/dist/widget/widgetTimezones.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/LayoutSession-DuV9kpdQ.cjs +0 -2
- package/dist/LayoutSession-DuV9kpdQ.cjs.map +0 -1
- package/dist/LayoutSession-Qkx1huV-.js.map +0 -1
- package/dist/i18n-Bg_UJSNs.cjs +0 -2
- package/dist/i18n-Bg_UJSNs.cjs.map +0 -1
- package/dist/i18n-DFTQ73Cz.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { C as e, S as t,
|
|
2
|
-
import { CHART_STYLE_KEYS as
|
|
3
|
-
import { AlertManager as
|
|
1
|
+
import { C as e, S as t, T as n, _ as r, a as i, b as a, c as o, d as s, f as c, g as l, h as u, i as ee, l as te, m as ne, n as re, o as ie, p as ae, r as oe, s as se, t as ce, u as le, v as ue, w as d, x as de, y as fe } from "./LayoutSession-4SLt8-0u.js";
|
|
2
|
+
import { CHART_STYLE_KEYS as pe, DARK_TERMINAL as me, DARK_THEME as he, DARK_THEME as ge, DEFAULT_DRAWING_STYLE as _e, DEFAULT_FONT_FAMILY as ve, DEFAULT_RECONNECT as ye, DEFAULT_SIGNAL_STYLE as be, DEFAULT_STREAM_CONFIG as xe, DEFAULT_TIMEFRAME_FAVORITES as Se, DEFAULT_TRADE_ZONE_STYLE as Ce, DEFAULT_TRADING_CONFIG as we, HNX_SESSIONS as Te, HOSE_SESSIONS as Ee, LIGHT_THEME as f, LIGHT_THEME as p, MARKET_CRYPTO as m, MARKET_HNX as h, MARKET_HOSE as g, MARKET_HOSE_ETF as _, MARKET_NYSE as v, MARKET_UPCOM as y, MARKET_VN30F as b, MS_TIME_THRESHOLD as x, PRICE_SOURCES as S, SANS_FONT_FAMILY as C, TC_PALETTE as w, TC_SERIES_COLORS as T, TIMEFRAMES_CRYPTO as E, TIMEFRAMES_FOREX as D, TIMEFRAMES_STOCK as De, UPCOM_SESSIONS as Oe, VN30F_SESSIONS as ke, VN_COLORS as Ae, VOLUME_ALPHA as je, barTimeUnit as Me, barsAreDaily as Ne, computePriceLimits as Pe, createVNTheme as Fe, formatFraction as Ie, formatNumber as Le, formatVND as Re, formatVolumeLoc as ze, fractionTick as Be, getCurrentSession as Ve, getLocale as He, indicatorSource as Ue, isPriceSource as We, isTimeFrame as Ge, isValidTimeZone as Ke, marketStatus as qe, normalizeBar as Je, normalizeBarTime as Ye, offsetAt as Xe, parseIndicatorSource as Ze, parseTimeframe as Qe, pickBaseTimeframe as $e, priceFormatterFor as et, priceStepAt as tt, rankSymbols as nt, readNews as rt, readQuote as it, registerLocale as at, resampleBars as ot, roundToPriceStep as st, scaleMarketPrices as ct, setLocale as lt, sourcePrice as ut, stepDecimals as dt, symbolTimeZone as ft, t as pt, tickBarCount as mt, timeframeBucketStart as ht, timeframeBucketStart as gt, timeframeToMs as _t, vn30fContracts as vt, vn30fLastTradingDay as yt, volumeColor as bt, wallToUtc as xt, zoneOffsetMinutes as St } from "@tradecanvas/commons";
|
|
3
|
+
import { AlertManager as Ct, Animator as wt, BarCountdown as Tt, BaseFinanceChart as O, BinanceAdapter as Et, BybitAdapter as Dt, CANDLE_PATTERNS as Ot, ChartLegend as kt, ChartStateManager as At, CoinbaseAdapter as jt, CompareRenderer as Mt, CrosshairTooltip as Nt, CurrentPriceLine as Pt, DEFAULT_LEGEND_CONFIG as Ft, DEFAULT_MAX_WEBGL_CHARTS as It, DEFAULT_SESSION_HOURS as Lt, DataExporter as Rt, DrawingBase as zt, Easing as Bt, FinanceCrosshair as k, GROUP_HEADER as Vt, INDICATOR_CATEGORIES as Ht, IndicatorBase as Ut, IndicatorValueMap as Wt, KEPT_BUCKETS as Gt, KeyboardHandler as Kt, KrakenAdapter as qt, MAX_ALERT_BARS as Jt, MIN_ALERT_BARS as Yt, MockAdapter as Xt, PaperExecutionAdapter as Zt, PollingAdapter as Qt, RANGE_PRESETS as $t, ReplayManager as en, ResamplingAdapter as tn, ReshapeMemo as nn, Screenshot as rn, SessionBreaks as an, SessionShading as on, SignalMarkerManager as sn, StreamManager as cn, TickAggregator as ln, TickBarAdapter as un, TickBarBuilder as A, TradeZoneManager as dn, UndoRedoManager as fn, VolumeRenderer as pn, Watermark as mn, WebSocketAdapter as hn, barIndexToTime as gn, barIndexToX as _n, barIndexToX as j, canvasMeasure as vn, computeBarLayout as yn, computeCalendarLayout as bn, computeCounterClockLayout as xn, computeDonutLayout as Sn, computeHistogramLayout as Cn, computeMatrixLayout as wn, computeScatterLayout as Tn, correlationMatrix as En, counterClockPhase as Dn, counterClockPhase as On, counterClockPoints as kn, counterClockPoints as An, detectCandlePatterns as jn, formatTooltipTime as Mn, histogramBins as Nn, hitBar as M, hitDay as N, hitMatrixCell as P, hitSlice as F, indicatorCategory as Pn, isPriceLevelAlert as Fn, layoutGroupedTreemap as In, layoutSquarifiedTreemap as Ln, layoutUniformGrid as Rn, lttbDownsample as zn, lttbVisibleIndices as Bn, nearestCounterClockPoint as I, nearestPoint as L, niceScale as Vn, priceToY as Hn, priceToYMapper as Un, priceToYMapper as Wn, rangePresetStart as Gn, renderBarChart as Kn, renderCalendar as qn, renderCounterClock as Jn, renderDepthChart as Yn, renderDonut as Xn, renderEquityCurve as Zn, renderGauge as Qn, renderHeatmap as $n, renderHistogram as er, renderMatrix as tr, renderScatter as nr, renderSparkline as rr, renderWaterfall as ir, servesTimeframe as ar, setMaxWebGLCharts as or, shownCount as sr, timeToX as cr, timestampToBarIndex as lr, timestampToBarIndex as ur, toHeikinAshi as dr, toKagi as fr, toLineBreak as pr, toPointAndFigure as mr, toRangeBars as hr, toRenko as gr, withResampling as _r, withTickBars as vr, xToBarIndex as yr, xToBarIndex as R, xToTime as br, yToPrice as xr, yToPrice as Sr } from "@tradecanvas/core";
|
|
4
4
|
//#region src/frameworks/syncIndicators.ts
|
|
5
|
-
function
|
|
5
|
+
function Cr(e) {
|
|
6
6
|
let { id: t, params: n = {}, position: r = null } = typeof e == "string" ? { id: e } : e;
|
|
7
7
|
return JSON.stringify([
|
|
8
8
|
t,
|
|
@@ -10,9 +10,9 @@ function br(e) {
|
|
|
10
10
|
r
|
|
11
11
|
]);
|
|
12
12
|
}
|
|
13
|
-
function
|
|
13
|
+
function wr(e, t, n) {
|
|
14
14
|
let r = /* @__PURE__ */ new Map(), i = t.map((e) => {
|
|
15
|
-
let t =
|
|
15
|
+
let t = Cr(e), n = r.get(t) ?? 0;
|
|
16
16
|
return r.set(t, n + 1), {
|
|
17
17
|
spec: e,
|
|
18
18
|
key: `${t}#${n}`
|
|
@@ -27,7 +27,7 @@ function xr(e, t, n) {
|
|
|
27
27
|
}
|
|
28
28
|
//#endregion
|
|
29
29
|
//#region src/frameworks/feedBars.ts
|
|
30
|
-
var
|
|
30
|
+
var Tr = 3, z = (e) => ({
|
|
31
31
|
time: e.time,
|
|
32
32
|
open: e.open,
|
|
33
33
|
high: e.high,
|
|
@@ -35,16 +35,36 @@ var R = (e, t) => e === t || e.time === t.time && e.open === t.open && e.high ==
|
|
|
35
35
|
close: e.close,
|
|
36
36
|
volume: e.volume
|
|
37
37
|
}), B = (e) => e.length > 0 ? e[e.length - 1] : null;
|
|
38
|
-
function
|
|
39
|
-
for (let
|
|
38
|
+
function Er(e, t, r) {
|
|
39
|
+
for (let i = 0; i < r; i++) if (!n(e[i], t[i])) return !1;
|
|
40
40
|
return !0;
|
|
41
41
|
}
|
|
42
|
-
function
|
|
42
|
+
function Dr(e, t) {
|
|
43
43
|
if (e.isReplayActive()) return !0;
|
|
44
44
|
let n = B(e.getData());
|
|
45
45
|
return t.inReplay ? n?.time === t.last?.time : n === t.shownBar ? n?.time === t.last?.time || !e.isExtendedHoursVisible() : !1;
|
|
46
46
|
}
|
|
47
|
-
function
|
|
47
|
+
function Or(e, t, r) {
|
|
48
|
+
let i = [];
|
|
49
|
+
for (let a = 0; a < t.length; a++) {
|
|
50
|
+
let o = e[r + a];
|
|
51
|
+
if (!n(o, t[a])) {
|
|
52
|
+
if (o.time !== t[a].time || !d(o)) return null;
|
|
53
|
+
i.push(z(o));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return i;
|
|
57
|
+
}
|
|
58
|
+
function kr(e, t) {
|
|
59
|
+
if (t.length === 0) return !0;
|
|
60
|
+
if (!e.updateBar) return !1;
|
|
61
|
+
for (let n of t) if (!e.updateBar(n)) return !1;
|
|
62
|
+
return !0;
|
|
63
|
+
}
|
|
64
|
+
function Ar(e) {
|
|
65
|
+
return e.slice(Math.max(1, e.length - 1 - 3), -1).map(z);
|
|
66
|
+
}
|
|
67
|
+
function jr(e, t) {
|
|
48
68
|
let n = [];
|
|
49
69
|
for (let r = t; r < e.length; r++) {
|
|
50
70
|
if (!d(e[r]) || !(e[r].time > e[r - 1].time)) return null;
|
|
@@ -52,39 +72,42 @@ function wr(e, t) {
|
|
|
52
72
|
}
|
|
53
73
|
return n;
|
|
54
74
|
}
|
|
55
|
-
function
|
|
56
|
-
let
|
|
57
|
-
if (
|
|
58
|
-
let
|
|
59
|
-
if (
|
|
60
|
-
let
|
|
61
|
-
|
|
75
|
+
function Mr(e, t, r) {
|
|
76
|
+
let i = r.length;
|
|
77
|
+
if (i === 0 || !r.last || !d(r.last) || t.length < i || !Dr(e, r)) return !1;
|
|
78
|
+
let a = r.recent ?? [], o = i - 1 - a.length;
|
|
79
|
+
if (t !== r.source && (r.source.length !== i || !Er(r.source, t, o))) return !1;
|
|
80
|
+
let s = t[i - 1];
|
|
81
|
+
if (s.time !== r.last.time || !d(s)) return !1;
|
|
82
|
+
let c = Or(t, a, o), l = jr(t, i);
|
|
83
|
+
return !c || !l || !kr(e, c) ? !1 : (n(s, r.last) || e.updateLastBar(z(s)), l.length === 1 ? e.appendBar(l[0]) : l.length > 1 && e.appendBars(l), !0);
|
|
62
84
|
}
|
|
63
|
-
function
|
|
64
|
-
(!n || !
|
|
85
|
+
function Nr(e, t, n) {
|
|
86
|
+
(!n || !Mr(e, t, n)) && e.setData(t.map(z));
|
|
65
87
|
let r = t.length > 0 ? z(t[t.length - 1]) : null, i = e.isReplayActive();
|
|
66
88
|
return {
|
|
67
89
|
source: t,
|
|
68
90
|
length: t.length,
|
|
69
91
|
last: r,
|
|
92
|
+
recent: Ar(t),
|
|
70
93
|
shownBar: i ? null : B(e.getData()),
|
|
71
94
|
inReplay: i
|
|
72
95
|
};
|
|
73
96
|
}
|
|
74
97
|
//#endregion
|
|
75
98
|
//#region src/plugins/overlayScale.ts
|
|
76
|
-
function
|
|
77
|
-
let { viewport: t, data: n } = e, r =
|
|
99
|
+
function Pr(e) {
|
|
100
|
+
let { viewport: t, data: n } = e, r = Wn(t), i = n.length - 1, a = Math.max(0, Math.floor(t.visibleRange.from)), o = Math.min(i, Math.ceil(t.visibleRange.to)), s = (e) => n.length > 0 ? ur(e, n) : e;
|
|
78
101
|
return {
|
|
79
|
-
timeToX: (e) =>
|
|
102
|
+
timeToX: (e) => j(s(e), t),
|
|
80
103
|
xToTime: (e) => {
|
|
81
|
-
let r =
|
|
82
|
-
return n.length > 0 ?
|
|
104
|
+
let r = R(e, t);
|
|
105
|
+
return n.length > 0 ? gn(r, n) : r;
|
|
83
106
|
},
|
|
84
|
-
indexToX: (e) =>
|
|
85
|
-
xToIndex: (e) =>
|
|
107
|
+
indexToX: (e) => j(e, t),
|
|
108
|
+
xToIndex: (e) => R(e, t),
|
|
86
109
|
priceToY: r,
|
|
87
|
-
yToPrice: (e) =>
|
|
110
|
+
yToPrice: (e) => Sr(e, t),
|
|
88
111
|
barWidth: t.barWidth,
|
|
89
112
|
visible: o < a ? {
|
|
90
113
|
from: 0,
|
|
@@ -130,7 +153,7 @@ var V = {
|
|
|
130
153
|
cols: 2,
|
|
131
154
|
rows: 3
|
|
132
155
|
}
|
|
133
|
-
},
|
|
156
|
+
}, Fr = class {
|
|
134
157
|
root;
|
|
135
158
|
cells = [];
|
|
136
159
|
layout;
|
|
@@ -151,7 +174,7 @@ var V = {
|
|
|
151
174
|
createCell(e) {
|
|
152
175
|
let t = this.options.cells?.[e] ?? {}, n = document.createElement("div");
|
|
153
176
|
n.style.cssText = "position:relative;overflow:hidden;min-width:0;min-height:0;", this.root.appendChild(n);
|
|
154
|
-
let r = new
|
|
177
|
+
let r = new o(n, {
|
|
155
178
|
chartType: "candlestick",
|
|
156
179
|
autoScale: !0,
|
|
157
180
|
features: {
|
|
@@ -237,13 +260,13 @@ var V = {
|
|
|
237
260
|
this.cells = [], this.root.remove();
|
|
238
261
|
}
|
|
239
262
|
}
|
|
240
|
-
},
|
|
263
|
+
}, Ir = class extends O {
|
|
241
264
|
options;
|
|
242
265
|
constructor(e, t) {
|
|
243
266
|
super(e, t.theme), this.options = t, this.requestRender();
|
|
244
267
|
}
|
|
245
268
|
renderChart(e, t, n, r) {
|
|
246
|
-
|
|
269
|
+
rr(e, t, n, this.options, r);
|
|
247
270
|
}
|
|
248
271
|
update(e) {
|
|
249
272
|
this.options = {
|
|
@@ -257,15 +280,15 @@ var V = {
|
|
|
257
280
|
...e
|
|
258
281
|
}, this.requestRender();
|
|
259
282
|
}
|
|
260
|
-
},
|
|
283
|
+
}, Lr = class extends O {
|
|
261
284
|
options;
|
|
262
285
|
crosshair = null;
|
|
263
286
|
constructor(e, t) {
|
|
264
|
-
super(e, t.theme), this.options = t, t.crosshair !== !1 && (this.crosshair = new
|
|
287
|
+
super(e, t.theme), this.options = t, t.crosshair !== !1 && (this.crosshair = new k(this.canvas, () => this.requestRender())), this.requestRender();
|
|
265
288
|
}
|
|
266
289
|
renderChart(e, t, n, r) {
|
|
267
290
|
let i = this.crosshair?.getPosition() ?? null;
|
|
268
|
-
|
|
291
|
+
Yn(e, t, n, this.options, r, i);
|
|
269
292
|
}
|
|
270
293
|
update(e) {
|
|
271
294
|
this.options = {
|
|
@@ -282,15 +305,15 @@ var V = {
|
|
|
282
305
|
destroy() {
|
|
283
306
|
this.crosshair?.destroy(), super.destroy();
|
|
284
307
|
}
|
|
285
|
-
}, H = class extends
|
|
308
|
+
}, H = class extends O {
|
|
286
309
|
options;
|
|
287
310
|
crosshair = null;
|
|
288
311
|
constructor(e, t) {
|
|
289
|
-
super(e, t.theme), this.options = t, t.crosshair !== !1 && (this.crosshair = new
|
|
312
|
+
super(e, t.theme), this.options = t, t.crosshair !== !1 && (this.crosshair = new k(this.canvas, () => this.requestRender())), this.requestRender();
|
|
290
313
|
}
|
|
291
314
|
renderChart(e, t, n, r) {
|
|
292
315
|
let i = this.crosshair?.getPosition() ?? null;
|
|
293
|
-
|
|
316
|
+
Zn(e, t, n, this.options, r, i);
|
|
294
317
|
}
|
|
295
318
|
update(e, t) {
|
|
296
319
|
this.options = {
|
|
@@ -310,7 +333,7 @@ var V = {
|
|
|
310
333
|
destroy() {
|
|
311
334
|
this.crosshair?.destroy(), super.destroy();
|
|
312
335
|
}
|
|
313
|
-
}, U = class extends
|
|
336
|
+
}, U = class extends O {
|
|
314
337
|
options;
|
|
315
338
|
crosshair = null;
|
|
316
339
|
cachedRects = [];
|
|
@@ -320,7 +343,7 @@ var V = {
|
|
|
320
343
|
lastLayoutHeight = 0;
|
|
321
344
|
handleClick = null;
|
|
322
345
|
constructor(e, t) {
|
|
323
|
-
super(e, t.theme), this.options = t, this.currentData = t.data ?? [], t.crosshair !== !1 && (this.crosshair = new
|
|
346
|
+
super(e, t.theme), this.options = t, this.currentData = t.data ?? [], t.crosshair !== !1 && (this.crosshair = new k(this.canvas, () => this.requestRender())), t.onCellClick && (this.handleClick = (e) => {
|
|
324
347
|
let t = this.canvas.getBoundingClientRect(), n = e.clientX - t.left, r = e.clientY - t.top;
|
|
325
348
|
this.onCanvasClick(n, r);
|
|
326
349
|
}, this.canvas.addEventListener("click", this.handleClick)), this.applyLabel(), this.recomputeLayout(), this.requestRender();
|
|
@@ -337,20 +360,20 @@ var V = {
|
|
|
337
360
|
height: this.height
|
|
338
361
|
}, t = this.options.cellPadding ?? 2;
|
|
339
362
|
if (this.lastLayoutWidth = this.width, this.lastLayoutHeight = this.height, this.cachedGroups = [], this.options.grouped) {
|
|
340
|
-
let { groups: n, cells: r } =
|
|
363
|
+
let { groups: n, cells: r } = In(this.currentData.map((e) => ({
|
|
341
364
|
id: e.id,
|
|
342
365
|
weight: e.weight ?? (Math.abs(e.value) || 1),
|
|
343
366
|
group: e.group,
|
|
344
367
|
value: e.value
|
|
345
|
-
})), e, t,
|
|
368
|
+
})), e, t, Vt);
|
|
346
369
|
this.cachedRects = r, this.cachedGroups = n;
|
|
347
370
|
} else if (this.options.weighted) {
|
|
348
371
|
let n = this.currentData.map((e) => ({
|
|
349
372
|
id: e.id,
|
|
350
373
|
weight: e.weight ?? (Math.abs(e.value) || 1)
|
|
351
374
|
}));
|
|
352
|
-
this.cachedRects =
|
|
353
|
-
} else this.cachedRects =
|
|
375
|
+
this.cachedRects = Ln(n, e, t);
|
|
376
|
+
} else this.cachedRects = Rn(this.currentData.map((e) => ({ id: e.id })), e, t);
|
|
354
377
|
}
|
|
355
378
|
onCanvasClick(e, t) {
|
|
356
379
|
if (this.options.onCellClick) for (let n of this.cachedRects) {
|
|
@@ -365,7 +388,7 @@ var V = {
|
|
|
365
388
|
renderChart(e, t, n, r) {
|
|
366
389
|
(t !== this.lastLayoutWidth || n !== this.lastLayoutHeight) && this.recomputeLayout();
|
|
367
390
|
let i = this.crosshair?.getPosition() ?? null;
|
|
368
|
-
|
|
391
|
+
$n(e, t, n, this.currentData, this.cachedRects, this.options, r, i, this.cachedGroups);
|
|
369
392
|
}
|
|
370
393
|
update(e) {
|
|
371
394
|
this.currentData = e, this.options = {
|
|
@@ -382,15 +405,15 @@ var V = {
|
|
|
382
405
|
destroy() {
|
|
383
406
|
this.crosshair?.destroy(), this.handleClick && this.canvas.removeEventListener("click", this.handleClick), super.destroy();
|
|
384
407
|
}
|
|
385
|
-
},
|
|
408
|
+
}, Rr = class extends O {
|
|
386
409
|
options;
|
|
387
410
|
crosshair = null;
|
|
388
411
|
constructor(e, t) {
|
|
389
|
-
super(e, t.theme), this.options = t, t.crosshair !== !1 && (this.crosshair = new
|
|
412
|
+
super(e, t.theme), this.options = t, t.crosshair !== !1 && (this.crosshair = new k(this.canvas, () => this.requestRender())), this.requestRender();
|
|
390
413
|
}
|
|
391
414
|
renderChart(e, t, n, r) {
|
|
392
415
|
let i = this.crosshair?.getPosition() ?? null;
|
|
393
|
-
|
|
416
|
+
ir(e, t, n, this.options, r, i);
|
|
394
417
|
}
|
|
395
418
|
update(e) {
|
|
396
419
|
this.options = {
|
|
@@ -407,12 +430,12 @@ var V = {
|
|
|
407
430
|
destroy() {
|
|
408
431
|
this.crosshair?.destroy(), super.destroy();
|
|
409
432
|
}
|
|
410
|
-
},
|
|
411
|
-
function
|
|
433
|
+
}, zr = 500;
|
|
434
|
+
function Br(e) {
|
|
412
435
|
let t = 1 - e;
|
|
413
436
|
return 1 - t * t * t;
|
|
414
437
|
}
|
|
415
|
-
var
|
|
438
|
+
var Vr = class extends O {
|
|
416
439
|
options;
|
|
417
440
|
currentValue;
|
|
418
441
|
targetValue;
|
|
@@ -423,7 +446,7 @@ var Pr = class extends D {
|
|
|
423
446
|
super(e, t.theme), this.options = t, this.currentValue = t.value, this.targetValue = t.value, this.requestRender();
|
|
424
447
|
}
|
|
425
448
|
renderChart(e, t, n, r) {
|
|
426
|
-
|
|
449
|
+
Qn(e, t, n, this.options, r, this.currentValue);
|
|
427
450
|
}
|
|
428
451
|
setValue(e) {
|
|
429
452
|
if (this.options.animate === !1) {
|
|
@@ -453,7 +476,7 @@ var Pr = class extends D {
|
|
|
453
476
|
if (this.animationFrameId !== null) return;
|
|
454
477
|
let e = () => {
|
|
455
478
|
if (this.animationFrameId = null, this.animationStart === null) return;
|
|
456
|
-
let t = this.options.animationDuration ??
|
|
479
|
+
let t = this.options.animationDuration ?? zr, n = performance.now() - this.animationStart, r = Math.min(1, n / Math.max(1, t)), i = Br(r);
|
|
457
480
|
this.currentValue = this.animationFrom + (this.targetValue - this.animationFrom) * i, this.requestRender(), r < 1 ? this.animationFrameId = requestAnimationFrame(e) : (this.currentValue = this.targetValue, this.animationStart = null);
|
|
458
481
|
};
|
|
459
482
|
this.animationFrameId = requestAnimationFrame(e);
|
|
@@ -464,7 +487,7 @@ var Pr = class extends D {
|
|
|
464
487
|
destroy() {
|
|
465
488
|
this.cancelAnimation(), super.destroy();
|
|
466
489
|
}
|
|
467
|
-
}, W = class extends
|
|
490
|
+
}, W = class extends O {
|
|
468
491
|
options;
|
|
469
492
|
layout = null;
|
|
470
493
|
layoutFor = null;
|
|
@@ -479,11 +502,11 @@ var Pr = class extends D {
|
|
|
479
502
|
this.canvas.style.cursor = this.hits(this.layout, e.clientX - t.left, e.clientY - t.top) ? "pointer" : "";
|
|
480
503
|
};
|
|
481
504
|
constructor(e, t) {
|
|
482
|
-
super(e, t.theme), this.options = t, this.crosshair = new
|
|
505
|
+
super(e, t.theme), this.options = t, this.crosshair = new k(this.canvas, () => this.requestRender()), this.canvas.addEventListener("click", this.onClick), this.canvas.addEventListener("pointermove", this.onMove), this.applyLabel(), this.requestRender();
|
|
483
506
|
}
|
|
484
507
|
renderChart(e, t, n, r) {
|
|
485
508
|
let i = this.options.crosshair === !1 ? null : this.crosshair.getPosition(), a = this.layoutFor;
|
|
486
|
-
(!this.layout || !a || a.options !== this.options || a.width !== t || a.height !== n || a.theme !== r) && (this.layout = this.compute(t, n, r,
|
|
509
|
+
(!this.layout || !a || a.options !== this.options || a.width !== t || a.height !== n || a.theme !== r) && (this.layout = this.compute(t, n, r, vn(e, r)), this.layoutFor = {
|
|
487
510
|
options: this.options,
|
|
488
511
|
width: t,
|
|
489
512
|
height: n,
|
|
@@ -502,12 +525,12 @@ var Pr = class extends D {
|
|
|
502
525
|
destroy() {
|
|
503
526
|
this.crosshair.destroy(), this.canvas.removeEventListener("click", this.onClick), this.canvas.removeEventListener("pointermove", this.onMove), super.destroy();
|
|
504
527
|
}
|
|
505
|
-
},
|
|
528
|
+
}, Hr = class extends W {
|
|
506
529
|
compute(e, t, n, r) {
|
|
507
|
-
return
|
|
530
|
+
return yn(this.options, e, t, n, r);
|
|
508
531
|
}
|
|
509
532
|
draw(e, t, n, r, i, a) {
|
|
510
|
-
|
|
533
|
+
Kn(e, t, n, this.options, r, i, a);
|
|
511
534
|
}
|
|
512
535
|
describe() {
|
|
513
536
|
return `Bar chart of ${this.options.series.map((e) => e.name).join(", ")}, ${this.options.categories.length} categories`;
|
|
@@ -516,10 +539,10 @@ var Pr = class extends D {
|
|
|
516
539
|
return this.options.onBarClick !== void 0;
|
|
517
540
|
}
|
|
518
541
|
hits(e, t, n) {
|
|
519
|
-
return
|
|
542
|
+
return M(e, t, n) !== null;
|
|
520
543
|
}
|
|
521
544
|
clickAt(e, t, n) {
|
|
522
|
-
let r =
|
|
545
|
+
let r = M(e, t, n);
|
|
523
546
|
r && this.options.onBarClick?.({
|
|
524
547
|
category: r.category,
|
|
525
548
|
series: r.series,
|
|
@@ -533,12 +556,12 @@ var Pr = class extends D {
|
|
|
533
556
|
series: t
|
|
534
557
|
});
|
|
535
558
|
}
|
|
536
|
-
},
|
|
559
|
+
}, Ur = class extends W {
|
|
537
560
|
compute(e, t, n, r) {
|
|
538
|
-
return
|
|
561
|
+
return Sn(this.options, e, t, n, r);
|
|
539
562
|
}
|
|
540
563
|
draw(e, t, n, r, i, a) {
|
|
541
|
-
|
|
564
|
+
Xn(e, t, n, this.options, r, i, a);
|
|
542
565
|
}
|
|
543
566
|
describe() {
|
|
544
567
|
let e = this.options.data.filter((e) => Number.isFinite(e.value) && e.value > 0).map((e) => e.label).join(", ");
|
|
@@ -548,21 +571,21 @@ var Pr = class extends D {
|
|
|
548
571
|
return this.options.onSliceClick !== void 0;
|
|
549
572
|
}
|
|
550
573
|
hits(e, t, n) {
|
|
551
|
-
return
|
|
574
|
+
return F(e, t, n) !== null;
|
|
552
575
|
}
|
|
553
576
|
clickAt(e, t, n) {
|
|
554
|
-
let r =
|
|
577
|
+
let r = F(e, t, n);
|
|
555
578
|
r && this.options.onSliceClick?.(r.slice);
|
|
556
579
|
}
|
|
557
580
|
update(e) {
|
|
558
581
|
this.setOptions({ data: e });
|
|
559
582
|
}
|
|
560
|
-
},
|
|
583
|
+
}, Wr = class extends W {
|
|
561
584
|
compute(e, t, n, r) {
|
|
562
|
-
return
|
|
585
|
+
return Tn(this.options, e, t, n, r);
|
|
563
586
|
}
|
|
564
587
|
draw(e, t, n, r, i, a) {
|
|
565
|
-
|
|
588
|
+
nr(e, t, n, this.options, r, i, a);
|
|
566
589
|
}
|
|
567
590
|
describe() {
|
|
568
591
|
let e = this.options.series.reduce((e, t) => e + t.points.length, 0);
|
|
@@ -572,21 +595,21 @@ var Pr = class extends D {
|
|
|
572
595
|
return this.options.onPointClick !== void 0;
|
|
573
596
|
}
|
|
574
597
|
hits(e, t, n) {
|
|
575
|
-
return
|
|
598
|
+
return L(e, t, n) !== null;
|
|
576
599
|
}
|
|
577
600
|
clickAt(e, t, n) {
|
|
578
|
-
let r =
|
|
601
|
+
let r = L(e, t, n);
|
|
579
602
|
r && this.options.onPointClick?.(r.point, r.series);
|
|
580
603
|
}
|
|
581
604
|
update(e) {
|
|
582
605
|
this.setOptions({ series: e });
|
|
583
606
|
}
|
|
584
|
-
},
|
|
607
|
+
}, Gr = class extends W {
|
|
585
608
|
compute(e, t, n, r) {
|
|
586
|
-
return
|
|
609
|
+
return Cn(this.options, e, t, n, r);
|
|
587
610
|
}
|
|
588
611
|
draw(e, t, n, r, i, a) {
|
|
589
|
-
|
|
612
|
+
er(e, t, n, this.options, r, i, a);
|
|
590
613
|
}
|
|
591
614
|
describe() {
|
|
592
615
|
return `Histogram of ${this.options.values.length} values`;
|
|
@@ -601,12 +624,12 @@ var Pr = class extends D {
|
|
|
601
624
|
update(e) {
|
|
602
625
|
this.setOptions({ values: e });
|
|
603
626
|
}
|
|
604
|
-
},
|
|
627
|
+
}, Kr = class extends W {
|
|
605
628
|
compute(e, t, n, r) {
|
|
606
|
-
return
|
|
629
|
+
return bn(this.options, e, t, n, r);
|
|
607
630
|
}
|
|
608
631
|
draw(e, t, n, r, i, a) {
|
|
609
|
-
|
|
632
|
+
qn(e, t, n, this.options, r, i, a);
|
|
610
633
|
}
|
|
611
634
|
describe() {
|
|
612
635
|
let e = this.options.data.map((e) => e.date).filter((e) => /^\d{4}-\d{2}-\d{2}$/.test(e)).sort(), t = this.options.from ?? e[0], n = this.options.to ?? e[e.length - 1];
|
|
@@ -616,21 +639,21 @@ var Pr = class extends D {
|
|
|
616
639
|
return this.options.onDayClick !== void 0;
|
|
617
640
|
}
|
|
618
641
|
hits(e, t, n) {
|
|
619
|
-
return
|
|
642
|
+
return N(e, t, n)?.day !== void 0;
|
|
620
643
|
}
|
|
621
644
|
clickAt(e, t, n) {
|
|
622
|
-
let r =
|
|
645
|
+
let r = N(e, t, n)?.day;
|
|
623
646
|
r && this.options.onDayClick?.(r);
|
|
624
647
|
}
|
|
625
648
|
update(e) {
|
|
626
649
|
this.setOptions({ data: e });
|
|
627
650
|
}
|
|
628
|
-
}, G = 12,
|
|
651
|
+
}, G = 12, qr = class extends W {
|
|
629
652
|
compute(e, t, n, r) {
|
|
630
|
-
return
|
|
653
|
+
return wn(this.options, e, t, n, r);
|
|
631
654
|
}
|
|
632
655
|
draw(e, t, n, r, i, a) {
|
|
633
|
-
|
|
656
|
+
tr(e, t, n, this.options, r, i, a);
|
|
634
657
|
}
|
|
635
658
|
describe() {
|
|
636
659
|
let { rows: e, columns: t } = this.options;
|
|
@@ -640,21 +663,21 @@ var Pr = class extends D {
|
|
|
640
663
|
return this.options.onCellClick !== void 0;
|
|
641
664
|
}
|
|
642
665
|
hits(e, t, n) {
|
|
643
|
-
return
|
|
666
|
+
return P(e, t, n) !== null;
|
|
644
667
|
}
|
|
645
668
|
clickAt(e, t, n) {
|
|
646
|
-
let r =
|
|
669
|
+
let r = P(e, t, n);
|
|
647
670
|
r && this.options.onCellClick?.(r.cell);
|
|
648
671
|
}
|
|
649
672
|
update(e) {
|
|
650
673
|
this.setOptions({ values: e });
|
|
651
674
|
}
|
|
652
|
-
},
|
|
675
|
+
}, Jr = class extends W {
|
|
653
676
|
compute(e, t, n, r) {
|
|
654
|
-
return
|
|
677
|
+
return xn(this.options, e, t, n, r);
|
|
655
678
|
}
|
|
656
679
|
draw(e, t, n, r, i, a) {
|
|
657
|
-
|
|
680
|
+
Jn(e, t, n, this.options, r, i, a);
|
|
658
681
|
}
|
|
659
682
|
describe() {
|
|
660
683
|
return `Counter-clock chart of price against volume, ${this.options.period ?? 25}-bar averages`;
|
|
@@ -663,19 +686,19 @@ var Pr = class extends D {
|
|
|
663
686
|
return this.options.onPointClick !== void 0;
|
|
664
687
|
}
|
|
665
688
|
hits(e, t, n) {
|
|
666
|
-
return
|
|
689
|
+
return I(e, t, n) !== null;
|
|
667
690
|
}
|
|
668
691
|
clickAt(e, t, n) {
|
|
669
|
-
let r =
|
|
692
|
+
let r = I(e, t, n);
|
|
670
693
|
r && this.options.onPointClick?.(r.point);
|
|
671
694
|
}
|
|
672
695
|
getPhase() {
|
|
673
|
-
return
|
|
696
|
+
return On(An(this.options.data, this.options.period ?? 25, sr(this.options)));
|
|
674
697
|
}
|
|
675
698
|
update(e) {
|
|
676
699
|
this.setOptions({ data: e });
|
|
677
700
|
}
|
|
678
|
-
},
|
|
701
|
+
}, Yr = [
|
|
679
702
|
"Jan",
|
|
680
703
|
"Feb",
|
|
681
704
|
"Mar",
|
|
@@ -710,7 +733,7 @@ function J(e) {
|
|
|
710
733
|
if (e.length === 0) return [];
|
|
711
734
|
let t = [];
|
|
712
735
|
for (let n of e) {
|
|
713
|
-
let e =
|
|
736
|
+
let e = gt(n.time, "1M"), r = t[t.length - 1];
|
|
714
737
|
r && r.key === e ? r.close = n.equity : t.push({
|
|
715
738
|
key: e,
|
|
716
739
|
close: n.equity
|
|
@@ -723,7 +746,7 @@ function J(e) {
|
|
|
723
746
|
let a = new Date(e.key), o = a.getUTCFullYear(), s = a.getUTCMonth();
|
|
724
747
|
r.push({
|
|
725
748
|
id: `${o}-${String(s + 1).padStart(2, "0")}`,
|
|
726
|
-
label:
|
|
749
|
+
label: Yr[s],
|
|
727
750
|
group: String(o),
|
|
728
751
|
value: i
|
|
729
752
|
});
|
|
@@ -784,9 +807,9 @@ function Q(e) {
|
|
|
784
807
|
//#endregion
|
|
785
808
|
//#region src/finance/PerformanceDashboard.ts
|
|
786
809
|
function $(e) {
|
|
787
|
-
return !e || e === "dark" ?
|
|
810
|
+
return !e || e === "dark" ? ge : e === "light" ? p : e;
|
|
788
811
|
}
|
|
789
|
-
var
|
|
812
|
+
var Xr = class {
|
|
790
813
|
options;
|
|
791
814
|
theme;
|
|
792
815
|
root;
|
|
@@ -935,6 +958,6 @@ var Ur = class {
|
|
|
935
958
|
}
|
|
936
959
|
};
|
|
937
960
|
//#endregion
|
|
938
|
-
export {
|
|
961
|
+
export { Ct as AlertManager, wt as Animator, Hr as BarChart, Tt as BarCountdown, Et as BinanceAdapter, Dt as BybitAdapter, Ot as CANDLE_PATTERNS, pe as CHART_STYLE_KEYS, Tr as CORRECTABLE_BARS, Kr as CalendarChart, o as Chart, Fr as ChartGrid, kt as ChartLegend, At as ChartStateManager, jt as CoinbaseAdapter, Mt as CompareRenderer, Jr as CounterClockChart, Nt as CrosshairTooltip, Pt as CurrentPriceLine, me as DARK_TERMINAL, he as DARK_THEME, _e as DEFAULT_DRAWING_STYLE, ve as DEFAULT_FONT_FAMILY, de as DEFAULT_HISTORY_PAGE_SIZE, Ft as DEFAULT_LEGEND_CONFIG, It as DEFAULT_MAX_WEBGL_CHARTS, ye as DEFAULT_RECONNECT, Lt as DEFAULT_SESSION_HOURS, be as DEFAULT_SIGNAL_STYLE, xe as DEFAULT_STREAM_CONFIG, Se as DEFAULT_TIMEFRAME_FAVORITES, Ce as DEFAULT_TRADE_ZONE_STYLE, we as DEFAULT_TRADING_CONFIG, Rt as DataExporter, e as DataManager, Lr as DepthChart, Ur as DonutChart, ie as DragDropImporter, zt as DrawingBase, te as EXCHANGE_TIMEZONE, le as EXCHANGE_TIME_ZONE, Bt as Easing, H as EquityCurveChart, Vr as GaugeChart, t as HISTORY_RETRY_MS, Te as HNX_SESSIONS, Ee as HOSE_SESSIONS, U as HeatmapChart, Gr as HistogramChart, Ht as INDICATOR_CATEGORIES, Ut as IndicatorBase, Wt as IndicatorValueMap, Gt as KEPT_BUCKETS, Kt as KeyboardHandler, qt as KrakenAdapter, f as LIGHT_THEME, fe as LayoutManager, ce as LayoutSession, m as MARKET_CRYPTO, h as MARKET_HNX, g as MARKET_HOSE, _ as MARKET_HOSE_ETF, v as MARKET_NYSE, y as MARKET_UPCOM, b as MARKET_VN30F, Jt as MAX_ALERT_BARS, re as MAX_LAYOUT_NAME, Yt as MIN_ALERT_BARS, x as MS_TIME_THRESHOLD, qr as MatrixChart, Xt as MockAdapter, l as PLUGIN_API_VERSION, S as PRICE_SOURCES, Zt as PaperExecutionAdapter, Xr as PerformanceDashboard, s as PluginManager, Qt as PollingAdapter, $t as RANGE_PRESETS, en as ReplayManager, tn as ResamplingAdapter, nn as ReshapeMemo, C as SANS_FONT_FAMILY, Wr as ScatterChart, rn as Screenshot, an as SessionBreaks, on as SessionShading, sn as SignalMarkerManager, Ir as SparklineChart, cn as StreamManager, w as TC_PALETTE, T as TC_SERIES_COLORS, E as TIMEFRAMES_CRYPTO, D as TIMEFRAMES_FOREX, De as TIMEFRAMES_STOCK, a as ThemeManager, ln as TickAggregator, un as TickBarAdapter, A as TickBarBuilder, dn as TradeZoneManager, Oe as UPCOM_SESSIONS, fn as UndoRedoManager, ke as VN30F_SESSIONS, Ae as VN_COLORS, je as VOLUME_ALPHA, pn as VolumeRenderer, Rr as WaterfallChart, mn as Watermark, hn as WebSocketAdapter, _n as barIndexToX, Me as barTimeUnit, Ne as barsAreDaily, oe as cleanLayoutName, c as clearGlobalPlugins, q as computeDrawdownCurve, J as computeMonthlyReturns, Pe as computePriceLimits, En as correlationMatrix, Dn as counterClockPhase, kn as counterClockPoints, Fe as createVNTheme, jn as detectCandlePatterns, Nr as feedBars, Ie as formatFraction, Le as formatNumber, Mn as formatTooltipTime, Re as formatVND, ze as formatVolumeLoc, Be as fractionTick, Ve as getCurrentSession, ae as getGlobalPlugins, He as getLocale, Nn as histogramBins, Pn as indicatorCategory, Ue as indicatorSource, Fn as isPriceLevelAlert, We as isPriceSource, Ge as isTimeFrame, Ke as isValidTimeZone, ee as localStorageLayouts, zn as lttbDownsample, Bn as lttbVisibleIndices, qe as marketStatus, i as memoryLayouts, Vn as niceScale, Je as normalizeBar, Ye as normalizeBarTime, Xe as offsetAt, Pr as overlayScale, r as overlaysForLayer, Ze as parseIndicatorSource, se as parseOHLCV, Qe as parseTimeframe, $e as pickBaseTimeframe, ue as pluginKey, et as priceFormatterFor, tt as priceStepAt, Hn as priceToY, Un as priceToYMapper, Gn as rangePresetStart, nt as rankSymbols, rt as readNews, it as readQuote, at as registerLocale, ne as registerPlugin, ot as resampleBars, st as roundToPriceStep, ct as scaleMarketPrices, Q as selectKeyStats, ar as servesTimeframe, lt as setLocale, or as setMaxWebGLCharts, ut as sourcePrice, dt as stepDecimals, ft as symbolTimeZone, wr as syncIndicators, pt as t, mt as tickBarCount, cr as timeToX, ht as timeframeBucketStart, _t as timeframeToMs, lr as timestampToBarIndex, K as toEquityPoints, dr as toHeikinAshi, fr as toKagi, pr as toLineBreak, mr as toPointAndFigure, hr as toRangeBars, gr as toRenko, u as unregisterPlugin, vt as vn30fContracts, yt as vn30fLastTradingDay, bt as volumeColor, xt as wallToUtc, _r as withResampling, vr as withTickBars, yr as xToBarIndex, br as xToTime, xr as yToPrice, St as zoneOffsetMinutes };
|
|
939
962
|
|
|
940
963
|
//# sourceMappingURL=index.js.map
|