@luxalgo/vela 0.9.0 → 0.9.1
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/{DataProvider-zJGp58kb.d.cts → DataProvider-B5i0_yY4.d.cts} +1 -1
- package/dist/{DataProvider-BGlB1zSc.d.ts → DataProvider-CPFgSyAm.d.ts} +1 -1
- package/dist/{chunk-XIRSR3D6.js → chunk-3H6JO4VL.js} +48 -30
- package/dist/{chunk-4WAHYL7Y.js → chunk-BLVL7WXF.js} +33 -2
- package/dist/{chunk-YRCL3WMD.js → chunk-Q7POFYNE.js} +7 -1
- package/dist/{contributions-BjefWpxQ.d.ts → contributions-BfBaF6eE.d.ts} +3 -3
- package/dist/{contributions-CpCJisTC.d.cts → contributions-DupwEkzc.d.cts} +3 -3
- package/dist/index.cjs +40 -21
- package/dist/index.d.cts +13 -11
- package/dist/index.d.ts +13 -11
- package/dist/index.js +2 -2
- package/dist/{keymap-UolhuXH1.d.ts → keymap-C48ughm6.d.ts} +1 -1
- package/dist/{keymap-B9_FLhfJ.d.cts → keymap-W0hiajU6.d.cts} +1 -1
- package/dist/locales/ar.cjs +2 -0
- package/dist/locales/ar.d.cts +1 -1
- package/dist/locales/ar.d.ts +1 -1
- package/dist/locales/ar.js +2 -0
- package/dist/locales/de.cjs +2 -0
- package/dist/locales/de.d.cts +1 -1
- package/dist/locales/de.d.ts +1 -1
- package/dist/locales/de.js +2 -0
- package/dist/locales/en.cjs +2 -0
- package/dist/locales/en.d.cts +1 -1
- package/dist/locales/en.d.ts +1 -1
- package/dist/locales/en.js +2 -0
- package/dist/locales/es.cjs +2 -0
- package/dist/locales/es.d.cts +1 -1
- package/dist/locales/es.d.ts +1 -1
- package/dist/locales/es.js +2 -0
- package/dist/locales/fr.cjs +2 -0
- package/dist/locales/fr.d.cts +1 -1
- package/dist/locales/fr.d.ts +1 -1
- package/dist/locales/fr.js +2 -0
- package/dist/locales/he.cjs +2 -0
- package/dist/locales/he.d.cts +1 -1
- package/dist/locales/he.d.ts +1 -1
- package/dist/locales/he.js +2 -0
- package/dist/locales/hi.cjs +2 -0
- package/dist/locales/hi.d.cts +1 -1
- package/dist/locales/hi.d.ts +1 -1
- package/dist/locales/hi.js +2 -0
- package/dist/locales/id.cjs +2 -0
- package/dist/locales/id.d.cts +1 -1
- package/dist/locales/id.d.ts +1 -1
- package/dist/locales/id.js +2 -0
- package/dist/locales/it.cjs +2 -0
- package/dist/locales/it.d.cts +1 -1
- package/dist/locales/it.d.ts +1 -1
- package/dist/locales/it.js +2 -0
- package/dist/locales/ja.cjs +2 -0
- package/dist/locales/ja.d.cts +1 -1
- package/dist/locales/ja.d.ts +1 -1
- package/dist/locales/ja.js +2 -0
- package/dist/locales/ko.cjs +2 -0
- package/dist/locales/ko.d.cts +1 -1
- package/dist/locales/ko.d.ts +1 -1
- package/dist/locales/ko.js +2 -0
- package/dist/locales/ms.cjs +2 -0
- package/dist/locales/ms.d.cts +1 -1
- package/dist/locales/ms.d.ts +1 -1
- package/dist/locales/ms.js +2 -0
- package/dist/locales/pl.cjs +2 -0
- package/dist/locales/pl.d.cts +1 -1
- package/dist/locales/pl.d.ts +1 -1
- package/dist/locales/pl.js +2 -0
- package/dist/locales/pt-BR.cjs +2 -0
- package/dist/locales/pt-BR.d.cts +1 -1
- package/dist/locales/pt-BR.d.ts +1 -1
- package/dist/locales/pt-BR.js +2 -0
- package/dist/locales/ru.cjs +2 -0
- package/dist/locales/ru.d.cts +1 -1
- package/dist/locales/ru.d.ts +1 -1
- package/dist/locales/ru.js +2 -0
- package/dist/locales/th.cjs +2 -0
- package/dist/locales/th.d.cts +1 -1
- package/dist/locales/th.d.ts +1 -1
- package/dist/locales/th.js +2 -0
- package/dist/locales/tr.cjs +2 -0
- package/dist/locales/tr.d.cts +1 -1
- package/dist/locales/tr.d.ts +1 -1
- package/dist/locales/tr.js +2 -0
- package/dist/locales/vi.cjs +2 -0
- package/dist/locales/vi.d.cts +1 -1
- package/dist/locales/vi.d.ts +1 -1
- package/dist/locales/vi.js +2 -0
- package/dist/locales/zh-Hans.cjs +2 -0
- package/dist/locales/zh-Hans.d.cts +1 -1
- package/dist/locales/zh-Hans.d.ts +1 -1
- package/dist/locales/zh-Hans.js +2 -0
- package/dist/locales/zh-Hant.cjs +2 -0
- package/dist/locales/zh-Hant.d.cts +1 -1
- package/dist/locales/zh-Hant.d.ts +1 -1
- package/dist/locales/zh-Hant.js +2 -0
- package/dist/{options-D4L3_hv_.d.ts → options-B7aL1pbf.d.ts} +1 -1
- package/dist/{options-CpegHml_.d.cts → options-I1H2HDWw.d.cts} +1 -1
- package/dist/{plugin-DpNp4aBi.d.cts → plugin-BGz-Vsdv.d.cts} +6 -6
- package/dist/{plugin-DTmulpKM.d.ts → plugin-BZHypj8h.d.ts} +6 -6
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +7 -7
- package/dist/plugin.d.ts +7 -7
- package/dist/plugin.js +1 -1
- package/dist/providers/binance.d.cts +3 -3
- package/dist/providers/binance.d.ts +3 -3
- package/dist/providers/coinbase.d.cts +3 -3
- package/dist/providers/coinbase.d.ts +3 -3
- package/dist/providers/hyperliquid.d.cts +3 -3
- package/dist/providers/hyperliquid.d.ts +3 -3
- package/dist/{side-panel-CYmH1Opm.d.ts → side-panel-BEQJqSjR.d.cts} +2 -1
- package/dist/{side-panel-BqUnpfev.d.cts → side-panel-Ud0SBAnE.d.ts} +2 -1
- package/dist/{statusline-model-C3yIY9WE.d.ts → statusline-model-Dfb_GD9u.d.ts} +7 -4
- package/dist/{statusline-model-pGs3Xvp-.d.cts → statusline-model-PHt0YhmI.d.cts} +7 -4
- package/dist/{types-BlrXRLIR.d.cts → types-Bwf63xGI.d.cts} +4 -1
- package/dist/{types-BlrXRLIR.d.ts → types-Bwf63xGI.d.ts} +4 -1
- package/dist/ui.d.cts +3 -3
- package/dist/ui.d.ts +3 -3
- package/dist/vela.global.js +40 -21
- package/dist/vela.global.min.js +55 -55
- package/dist/widget.cjs +80 -25
- package/dist/widget.d.cts +10 -10
- package/dist/widget.d.ts +10 -10
- package/dist/widget.js +4 -4
- package/dist/workspace.cjs +80 -25
- package/dist/workspace.d.cts +7 -7
- package/dist/workspace.d.ts +7 -7
- package/dist/workspace.js +3 -3
- package/package.json +1 -1
package/dist/widget.cjs
CHANGED
|
@@ -6971,6 +6971,7 @@ function mergeConfig(base, patch) {
|
|
|
6971
6971
|
mode: isScaleMode(ps.mode) ? ps.mode : base.priceScale.mode,
|
|
6972
6972
|
log: isBool(ps.log) ? ps.log : base.priceScale.log,
|
|
6973
6973
|
invert: isBool(ps.invert) ? ps.invert : base.priceScale.invert,
|
|
6974
|
+
priceOnly: isBool(ps.priceOnly) ? ps.priceOnly : base.priceScale.priceOnly,
|
|
6974
6975
|
borderColor: isColor(ps.borderColor) ? ps.borderColor : base.priceScale.borderColor,
|
|
6975
6976
|
labelsVisible: isBool(ps.labelsVisible) ? ps.labelsVisible : base.priceScale.labelsVisible,
|
|
6976
6977
|
currentPriceLine: isBool(ps.currentPriceLine) ? ps.currentPriceLine : base.priceScale.currentPriceLine,
|
|
@@ -18859,6 +18860,7 @@ var TEXT20 = {
|
|
|
18859
18860
|
indexed: msg("widget.contextMenu.scale.indexed", "Indexed to 100"),
|
|
18860
18861
|
log: msg("widget.contextMenu.scale.log", "Logarithmic"),
|
|
18861
18862
|
auto: msg("widget.contextMenu.auto", "Auto (fits data to screen)"),
|
|
18863
|
+
priceOnly: msg("widget.contextMenu.scalePriceOnly", "Scale price chart only"),
|
|
18862
18864
|
invert: msg("widget.contextMenu.invert", "Invert scale"),
|
|
18863
18865
|
labels: msg("widget.contextMenu.labels", "Labels"),
|
|
18864
18866
|
axisLabels: msg("widget.contextMenu.axisLabels", "Price axis labels"),
|
|
@@ -18916,6 +18918,9 @@ function scaleWrites(choice, pane) {
|
|
|
18916
18918
|
["logScale", { pane: pane.id, value: log }]
|
|
18917
18919
|
];
|
|
18918
18920
|
}
|
|
18921
|
+
function priceOnlyState(pane, flag) {
|
|
18922
|
+
return mainScale(pane) ? flag : void 0;
|
|
18923
|
+
}
|
|
18919
18924
|
function invertWrite(next, pane) {
|
|
18920
18925
|
return mainScale(pane) ? ["invertScale", next] : ["invertScale", { pane: pane.id, value: next }];
|
|
18921
18926
|
}
|
|
@@ -18923,6 +18928,7 @@ function priceAxisItems(s, i18n) {
|
|
|
18923
18928
|
const t = (m) => textOf(i18n, m);
|
|
18924
18929
|
return [
|
|
18925
18930
|
{ id: "auto", label: t(TEXT20.auto), checked: s.auto },
|
|
18931
|
+
...s.priceOnly === void 0 ? [] : [{ id: "price-only", label: t(TEXT20.priceOnly), checked: s.priceOnly }],
|
|
18926
18932
|
{ id: "invert", label: t(TEXT20.invert), checked: s.invert },
|
|
18927
18933
|
...SCALE_CHOICES.map(([choice, label], i) => ({
|
|
18928
18934
|
id: `scale:${choice}`,
|
|
@@ -18971,6 +18977,7 @@ var CONTEXT_MENU_BUILTIN_ORDER = {
|
|
|
18971
18977
|
body: { "reset-view": -30, "remove-drawings": -20, "remove-indicators": -10, settings: 1e3 },
|
|
18972
18978
|
"price-axis": {
|
|
18973
18979
|
auto: -80,
|
|
18980
|
+
"price-only": -75,
|
|
18974
18981
|
invert: -70,
|
|
18975
18982
|
"scale:regular": -60,
|
|
18976
18983
|
"scale:percent": -50,
|
|
@@ -19057,6 +19064,7 @@ var PriceScaleDrawer = class {
|
|
|
19057
19064
|
const pane = this.pane;
|
|
19058
19065
|
const items = priceAxisItems({
|
|
19059
19066
|
auto: chart.renderer.get("autoScale") !== false,
|
|
19067
|
+
priceOnly: priceOnlyState(pane, this.flag("scalePriceOnly")),
|
|
19060
19068
|
invert: pane ? pane.invert : this.flag("invertScale"),
|
|
19061
19069
|
choice: scaleChoiceOf(pane ?? { mode: String(chart.renderer.get("scaleMode") ?? "price"), log: this.flag("logScale") }),
|
|
19062
19070
|
axisLabels: this.flag("axisLabels"),
|
|
@@ -19133,6 +19141,16 @@ var PriceScaleDrawer = class {
|
|
|
19133
19141
|
});
|
|
19134
19142
|
continue;
|
|
19135
19143
|
}
|
|
19144
|
+
if (item.id === "price-only") {
|
|
19145
|
+
row2(item.label, {
|
|
19146
|
+
checked: item.checked,
|
|
19147
|
+
onClick: () => {
|
|
19148
|
+
chart.renderer.set("scalePriceOnly", !this.flag("scalePriceOnly"));
|
|
19149
|
+
this.render();
|
|
19150
|
+
}
|
|
19151
|
+
});
|
|
19152
|
+
continue;
|
|
19153
|
+
}
|
|
19136
19154
|
if (item.id === "invert") {
|
|
19137
19155
|
row2(item.label, {
|
|
19138
19156
|
checked: item.checked,
|
|
@@ -21452,6 +21470,7 @@ function successorNative(entry) {
|
|
|
21452
21470
|
const hasInputs = Object.keys(inputs).length > 0;
|
|
21453
21471
|
return hasInputs || hidden ? { type: next, ...hasInputs ? { inputs } : {}, ...hidden ? { hidden } : {} } : next;
|
|
21454
21472
|
}
|
|
21473
|
+
var STATUSLINE_PART_KEYS = ["logo", "name", "market", "ohlc", "change"];
|
|
21455
21474
|
function sanitizeCell(raw) {
|
|
21456
21475
|
if (raw == null || typeof raw !== "object") return null;
|
|
21457
21476
|
const c = raw;
|
|
@@ -21466,6 +21485,12 @@ function sanitizeCell(raw) {
|
|
|
21466
21485
|
if (typeof c.replayWatermark === "boolean") out.replayWatermark = c.replayWatermark;
|
|
21467
21486
|
if (typeof c.indicatorTitles === "boolean") out.indicatorTitles = c.indicatorTitles;
|
|
21468
21487
|
if (typeof c.indicatorValues === "boolean") out.indicatorValues = c.indicatorValues;
|
|
21488
|
+
if (c.statuslineParts != null && typeof c.statuslineParts === "object") {
|
|
21489
|
+
const bag = c.statuslineParts;
|
|
21490
|
+
const parts = {};
|
|
21491
|
+
for (const key of STATUSLINE_PART_KEYS) if (typeof bag[key] === "boolean") parts[key] = bag[key];
|
|
21492
|
+
if (Object.keys(parts).length > 0) out.statuslineParts = parts;
|
|
21493
|
+
}
|
|
21469
21494
|
if (c.rendererConfig != null && typeof c.rendererConfig === "object") out.rendererConfig = c.rendererConfig;
|
|
21470
21495
|
if (c.drawings != null && typeof c.drawings === "object") out.drawings = c.drawings;
|
|
21471
21496
|
const ind = c.indicators;
|
|
@@ -30117,6 +30142,9 @@ var SceneGraph = class {
|
|
|
30117
30142
|
this.logScale = false;
|
|
30118
30143
|
/** Inverted price axis on the price pane (high at the bottom). Study panes carry their own. */
|
|
30119
30144
|
this.invertScale = false;
|
|
30145
|
+
/** The price pane's autoscale fits the bars alone: indicator plots, their price lines
|
|
30146
|
+
* and Pine drawings paint where they fall instead of widening the window. */
|
|
30147
|
+
this.scalePriceOnly = false;
|
|
30120
30148
|
/** Exchange tick size for the active symbol (e.g. 0.01), when known. Drives the
|
|
30121
30149
|
* price-axis decimals — the instrument's true precision instead of the zoom-derived
|
|
30122
30150
|
* formula. Undefined until symbol metadata loads (the formula is the fallback). */
|
|
@@ -31815,6 +31843,18 @@ var DrawingSceneRenderer = class {
|
|
|
31815
31843
|
}
|
|
31816
31844
|
};
|
|
31817
31845
|
|
|
31846
|
+
// src/renderers/native/chrome/tz.ts
|
|
31847
|
+
var DAY_MS3 = 864e5;
|
|
31848
|
+
function displayZone(timeZone, barIntervalMs) {
|
|
31849
|
+
return barIntervalMs >= DAY_MS3 ? "UTC" : timeZone;
|
|
31850
|
+
}
|
|
31851
|
+
function tzOffsetMs(ms, timeZone) {
|
|
31852
|
+
return zoneOffsetMs(ms, timeZone);
|
|
31853
|
+
}
|
|
31854
|
+
function zonedDate(ms, timeZone) {
|
|
31855
|
+
return new Date(ms + tzOffsetMs(ms, timeZone));
|
|
31856
|
+
}
|
|
31857
|
+
|
|
31818
31858
|
// src/renderers/native/chrome/ticks.ts
|
|
31819
31859
|
function priceTicks(min, max, target = 6) {
|
|
31820
31860
|
if (!(max > min) || !Number.isFinite(min) || !Number.isFinite(max)) return [];
|
|
@@ -31955,7 +31995,7 @@ var STEP_LADDER = [
|
|
|
31955
31995
|
YEAR
|
|
31956
31996
|
];
|
|
31957
31997
|
function formatTimeStamp2(ms, timeZone, barIntervalMs, fmt = ENGLISH_FORMAT, surface = "crosshair") {
|
|
31958
|
-
return fmt.timeStamp(ms, { timeZone, withTime: barIntervalMs < DAY2, surface });
|
|
31998
|
+
return fmt.timeStamp(ms, { timeZone: displayZone(timeZone, barIntervalMs), withTime: barIntervalMs < DAY2, surface });
|
|
31959
31999
|
}
|
|
31960
32000
|
function pickStep(targetMs) {
|
|
31961
32001
|
for (const step of STEP_LADDER) if (step >= targetMs) return step;
|
|
@@ -32099,14 +32139,6 @@ var PriceAxisTickSource = class {
|
|
|
32099
32139
|
}
|
|
32100
32140
|
};
|
|
32101
32141
|
|
|
32102
|
-
// src/renderers/native/chrome/tz.ts
|
|
32103
|
-
function tzOffsetMs(ms, timeZone) {
|
|
32104
|
-
return zoneOffsetMs(ms, timeZone);
|
|
32105
|
-
}
|
|
32106
|
-
function zonedDate(ms, timeZone) {
|
|
32107
|
-
return new Date(ms + tzOffsetMs(ms, timeZone));
|
|
32108
|
-
}
|
|
32109
|
-
|
|
32110
32142
|
// src/renderers/native/chrome/countdown.ts
|
|
32111
32143
|
function countdownText2(barOpen, barMs, now2, fmt = ENGLISH_FORMAT) {
|
|
32112
32144
|
if (!(barMs > 0)) return null;
|
|
@@ -32820,7 +32852,7 @@ var ChromeRenderer = class {
|
|
|
32820
32852
|
ctx.textAlign = "center";
|
|
32821
32853
|
const y = dataH + (fullH - dataH) / 2;
|
|
32822
32854
|
const tr = coords.visibleTimeRange();
|
|
32823
|
-
const offset = tzOffsetMs((tr.from + tr.to) / 2, scene.timezone);
|
|
32855
|
+
const offset = tzOffsetMs((tr.from + tr.to) / 2, displayZone(scene.timezone, coords.barInterval));
|
|
32824
32856
|
const target = Math.max(3, Math.min(8, Math.floor(dataW / 64)));
|
|
32825
32857
|
const ticks = timeTicks(tr.from, tr.to, target, offset, scene.format).map((tick) => ({ ...tick, x: coords.timeToX(tick.time), half: ctx.measureText(tick.label).width / 2 })).filter((tick) => tick.x >= 20 && tick.x <= dataW - 20);
|
|
32826
32858
|
const GAP = 12;
|
|
@@ -33308,6 +33340,7 @@ var TEXT28 = {
|
|
|
33308
33340
|
indexedTo100: msg("chart.settings.indexedTo100", "Indexed to 100"),
|
|
33309
33341
|
logarithmic: msg("chart.settings.logarithmic", "Logarithmic"),
|
|
33310
33342
|
invertScale: msg("chart.settings.invertScale", "Invert scale"),
|
|
33343
|
+
scalePriceOnly: msg("chart.settings.scalePriceOnly", "Scale price chart only"),
|
|
33311
33344
|
lastPriceLine: msg("chart.settings.lastPriceLine", "Last price line"),
|
|
33312
33345
|
lastPriceLabel: msg("chart.settings.lastPriceLabel", "Last price label"),
|
|
33313
33346
|
countdownToBarClose: msg("chart.settings.countdownToBarClose", "Countdown to bar close"),
|
|
@@ -33816,6 +33849,7 @@ var SettingsDialog = class {
|
|
|
33816
33849
|
), "scales.price-scale.mode")
|
|
33817
33850
|
);
|
|
33818
33851
|
body.append(sid(this.boolRow(TEXT28.invertScale, config.priceScale.invert, (v) => this.emit({ priceScale: { invert: v } })), "scales.price-scale.invert"));
|
|
33852
|
+
body.append(sid(this.boolRow(TEXT28.scalePriceOnly, config.priceScale.priceOnly, (v) => this.emit({ priceScale: { priceOnly: v } })), "scales.price-scale.price-only"));
|
|
33819
33853
|
body.append(sid(this.separator(), "scales.price-scale"));
|
|
33820
33854
|
body.append(sid(this.boolRow(TEXT28.lastPriceLine, config.priceScale.currentPriceLine, (v) => this.emit({ priceScale: { currentPriceLine: v } })), "scales.price-scale.last-price-line"));
|
|
33821
33855
|
body.append(sid(this.boolRow(TEXT28.lastPriceLabel, config.priceScale.priceLabel, (v) => this.emit({ priceScale: { priceLabel: v } })), "scales.price-scale.last-price-label"));
|
|
@@ -41247,7 +41281,7 @@ var BackdropRenderer = class {
|
|
|
41247
41281
|
ctx.globalAlpha = gridAlpha;
|
|
41248
41282
|
ctx.strokeStyle = vertColor;
|
|
41249
41283
|
const tr = coords.visibleTimeRange();
|
|
41250
|
-
const offset = tzOffsetMs((tr.from + tr.to) / 2, scene.timezone);
|
|
41284
|
+
const offset = tzOffsetMs((tr.from + tr.to) / 2, displayZone(scene.timezone, coords.barInterval));
|
|
41251
41285
|
ctx.beginPath();
|
|
41252
41286
|
for (const tick of timeTicks(tr.from, tr.to, 8, offset)) {
|
|
41253
41287
|
const x = Math.round(coords.timeToX(tick.time)) + 0.5;
|
|
@@ -42039,7 +42073,7 @@ var NativeRenderer = class {
|
|
|
42039
42073
|
this.priceStyleCbs = /* @__PURE__ */ new Set();
|
|
42040
42074
|
this.priceStyleWillChangeCbs = /* @__PURE__ */ new Set();
|
|
42041
42075
|
this.name = "native";
|
|
42042
|
-
this.features = ["logScale", "currentPriceLine", "priceLabel", "countdown", "upColor", "downColor", "glow", "animZoom", "animPan", "animScroll", "animAutoscale", "animLiveBar", "intro", "zoomAnchor", "axisDrag", "paneResize", "candleZOrder", "candleVisible", "seriesOrder", "highlights", "sessionZones", "gridlines", "axisLabels", "scaleMode", "invertScale", "paneScales", "autoScale", "timezone", "keyboard", "historyChords", "priceStyle", "priceBaseline", "baselinePrice", "settings", "attribution", "dialogHost", "tradeMarkers", "marks", "indicatorTitles", "indicatorValues", "crosshairOverride", "drawingsInteractive", "priceAxisTicks"];
|
|
42076
|
+
this.features = ["logScale", "currentPriceLine", "priceLabel", "countdown", "upColor", "downColor", "glow", "animZoom", "animPan", "animScroll", "animAutoscale", "animLiveBar", "intro", "zoomAnchor", "axisDrag", "paneResize", "candleZOrder", "candleVisible", "seriesOrder", "highlights", "sessionZones", "gridlines", "axisLabels", "scaleMode", "invertScale", "scalePriceOnly", "paneScales", "autoScale", "timezone", "keyboard", "historyChords", "priceStyle", "priceBaseline", "baselinePrice", "settings", "attribution", "dialogHost", "tradeMarkers", "marks", "indicatorTitles", "indicatorValues", "crosshairOverride", "drawingsInteractive", "priceAxisTicks"];
|
|
42043
42077
|
/** Track cursor proximity to the scroll button on the plot (bubbles from the button too,
|
|
42044
42078
|
* so moving onto the button doesn't count as leaving). */
|
|
42045
42079
|
this.onScrollProximityMove = (e) => {
|
|
@@ -42198,6 +42232,9 @@ var NativeRenderer = class {
|
|
|
42198
42232
|
}
|
|
42199
42233
|
this.scene.invertScale = Boolean(value);
|
|
42200
42234
|
break;
|
|
42235
|
+
case "scalePriceOnly":
|
|
42236
|
+
this.scene.scalePriceOnly = Boolean(value);
|
|
42237
|
+
break;
|
|
42201
42238
|
case "autoScale":
|
|
42202
42239
|
for (const pane of this.scene.panes.values()) {
|
|
42203
42240
|
pane.manualScale = value ? null : { ...pane.scale };
|
|
@@ -42324,6 +42361,8 @@ var NativeRenderer = class {
|
|
|
42324
42361
|
return this.scene.scaleMode;
|
|
42325
42362
|
case "invertScale":
|
|
42326
42363
|
return this.scene.invertScale;
|
|
42364
|
+
case "scalePriceOnly":
|
|
42365
|
+
return this.scene.scalePriceOnly;
|
|
42327
42366
|
case "paneScales":
|
|
42328
42367
|
return this.paneScaleInfos();
|
|
42329
42368
|
case "autoScale": {
|
|
@@ -42470,6 +42509,7 @@ var NativeRenderer = class {
|
|
|
42470
42509
|
mode: this.scene.scaleMode,
|
|
42471
42510
|
log: this.scene.logScale,
|
|
42472
42511
|
invert: this.scene.invertScale,
|
|
42512
|
+
priceOnly: this.scene.scalePriceOnly,
|
|
42473
42513
|
borderColor: s.borderColor ?? t.borderColor,
|
|
42474
42514
|
labelsVisible: this.scene.showAxisLabels,
|
|
42475
42515
|
currentPriceLine: this.scene.showPriceLine,
|
|
@@ -42584,6 +42624,7 @@ var NativeRenderer = class {
|
|
|
42584
42624
|
this.scene.scaleMode = next.priceScale.mode;
|
|
42585
42625
|
this.scene.logScale = next.priceScale.log;
|
|
42586
42626
|
this.scene.invertScale = next.priceScale.invert;
|
|
42627
|
+
this.scene.scalePriceOnly = next.priceScale.priceOnly;
|
|
42587
42628
|
s.borderColor = keepInherit(s.borderColor, next.priceScale.borderColor, prevTheme.borderColor);
|
|
42588
42629
|
this.scene.showAxisLabels = next.priceScale.labelsVisible;
|
|
42589
42630
|
this.scene.showPriceLine = next.priceScale.currentPriceLine;
|
|
@@ -44565,7 +44606,7 @@ var NativeRenderer = class {
|
|
|
44565
44606
|
const pricePane = this.dataWindowPricePane();
|
|
44566
44607
|
const ohlc = this.dataWindowOHLC(bar, pricePane);
|
|
44567
44608
|
const parts = [];
|
|
44568
|
-
if (bar) parts.push(formatStamp(bar.time, this.scene.timezone));
|
|
44609
|
+
if (bar) parts.push(formatStamp(bar.time, displayZone(this.scene.timezone, this.coords.barInterval)));
|
|
44569
44610
|
if (ohlc) parts.push(this.t(TEXT35.barSummary, { open: ohlc.o, high: ohlc.h, low: ohlc.l, close: ohlc.c }));
|
|
44570
44611
|
for (const group of this.dataWindowGroups(idx, pricePane)) {
|
|
44571
44612
|
for (const row2 of group.rows) parts.push(this.t(TEXT35.valueSummary, { name: row2.label, value: row2.value }));
|
|
@@ -44582,7 +44623,7 @@ var NativeRenderer = class {
|
|
|
44582
44623
|
const idx = this.hoverLogical != null ? this.hoverLogical : n - 1;
|
|
44583
44624
|
const bar = this.bars[idx];
|
|
44584
44625
|
const pricePane = this.dataWindowPricePane();
|
|
44585
|
-
const parts = bar ? formatStampParts(bar.time, this.scene.timezone) : { date: "", time: "" };
|
|
44626
|
+
const parts = bar ? formatStampParts(bar.time, displayZone(this.scene.timezone, this.coords.barInterval)) : { date: "", time: "" };
|
|
44586
44627
|
return { date: parts.date, time: parts.time, ohlc: this.dataWindowOHLC(bar, pricePane), groups: this.dataWindowGroups(idx, pricePane) };
|
|
44587
44628
|
}
|
|
44588
44629
|
dataWindowPricePane() {
|
|
@@ -44949,7 +44990,8 @@ var NativeRenderer = class {
|
|
|
44949
44990
|
if (or) dr = dr ? { min: Math.min(dr.min, or.min), max: Math.max(dr.max, or.max) } : or;
|
|
44950
44991
|
}
|
|
44951
44992
|
const includeCandles = pane.kind === "price" && (!this.scene.candlesHidden || this.priceLayersAnchoredToBars(masterModels) || !this.paneHasMeasurableContent(masterModels, dr));
|
|
44952
|
-
|
|
44993
|
+
const priceOnly = pane === pricePane && this.scene.scalePriceOnly && includeCandles;
|
|
44994
|
+
pane.scaleTarget = priceOnly ? computePaneScale([], this.bars, true, i0, s1, null, paneLogScale(this.scene, pane), (id) => this.scene.offsetOf(id), margins) : computePaneScale(masterModels, this.bars, includeCandles, i0, s1, dr, paneLogScale(this.scene, pane), (id) => this.scene.offsetOf(id), margins);
|
|
44953
44995
|
pane.percentBaseline = pane.kind === "price" ? this.bars[i0]?.close ?? 0 : this.firstVisibleValue(masterModels, i0);
|
|
44954
44996
|
pane.axisFormat = void 0;
|
|
44955
44997
|
pane.axisBands = void 0;
|
|
@@ -49245,16 +49287,16 @@ var volumeSpecs = [
|
|
|
49245
49287
|
];
|
|
49246
49288
|
|
|
49247
49289
|
// src/core/native-indicators/classics/overlays.ts
|
|
49248
|
-
var
|
|
49290
|
+
var DAY_MS4 = 864e5;
|
|
49249
49291
|
function periodKey(anchor, time) {
|
|
49250
|
-
if (anchor === "Week") return Math.floor((Math.floor(time /
|
|
49292
|
+
if (anchor === "Week") return Math.floor((Math.floor(time / DAY_MS4) + 3) / 7);
|
|
49251
49293
|
if (anchor === "Month" || anchor === "Quarter" || anchor === "Year") {
|
|
49252
49294
|
const d = new Date(time);
|
|
49253
49295
|
if (anchor === "Year") return d.getUTCFullYear();
|
|
49254
49296
|
if (anchor === "Quarter") return d.getUTCFullYear() * 4 + Math.floor(d.getUTCMonth() / 3);
|
|
49255
49297
|
return d.getUTCFullYear() * 12 + d.getUTCMonth();
|
|
49256
49298
|
}
|
|
49257
|
-
return Math.floor(time /
|
|
49299
|
+
return Math.floor(time / DAY_MS4);
|
|
49258
49300
|
}
|
|
49259
49301
|
function barInterval(bars) {
|
|
49260
49302
|
if (bars.length < 2) return 0;
|
|
@@ -49356,7 +49398,7 @@ var vwap = {
|
|
|
49356
49398
|
const anchor = str3(inputs, "anchor", "Session");
|
|
49357
49399
|
const src = sourceValues(bars, str3(inputs, "source", "HLC3"));
|
|
49358
49400
|
const n = bars.length;
|
|
49359
|
-
const hidden = bool(inputs, "hideDwm", true) && barInterval(bars) >=
|
|
49401
|
+
const hidden = bool(inputs, "hideDwm", true) && barInterval(bars) >= DAY_MS4;
|
|
49360
49402
|
const values = new Array(n).fill(Number.NaN);
|
|
49361
49403
|
const bands = VWAP_BANDS.filter((b) => bool(inputs, b.show, b.defOn)).map((b) => ({
|
|
49362
49404
|
mult: Math.max(0, num3(inputs, b.mult, b.defMult)),
|
|
@@ -49430,7 +49472,7 @@ var pivotPoints = {
|
|
|
49430
49472
|
compute: (bars, inputs) => {
|
|
49431
49473
|
const interval = barInterval(bars);
|
|
49432
49474
|
const requested = str3(inputs, "anchor", PIVOT_AUTO);
|
|
49433
|
-
const auto = interval <= 15 * 6e4 ? "Session" : interval <
|
|
49475
|
+
const auto = interval <= 15 * 6e4 ? "Session" : interval < DAY_MS4 ? "Week" : interval <= DAY_MS4 ? "Month" : "Year";
|
|
49434
49476
|
const anchor = requested === "Daily" ? "Session" : requested === "Weekly" ? "Week" : requested === "Monthly" ? "Month" : requested === "Yearly" ? "Year" : auto;
|
|
49435
49477
|
const kind = str3(inputs, "kind", PIVOT_TRADITIONAL);
|
|
49436
49478
|
const aggs = /* @__PURE__ */ new Map();
|
|
@@ -49516,7 +49558,7 @@ var fiftyTwoWeek = {
|
|
|
49516
49558
|
colorInput(NEUTRAL, msg("indicator.n52WeekHighLow.allTimeColor", "All-Time High/Low"), "allTimeColor", msg("indicator.n52WeekHighLow.allTimeColor.tooltip", "Color of the all-time high and all-time low levels."))
|
|
49517
49559
|
],
|
|
49518
49560
|
compute: (bars, inputs) => {
|
|
49519
|
-
const span = num3(inputs, "weeks", 52) * 7 *
|
|
49561
|
+
const span = num3(inputs, "weeks", 52) * 7 * DAY_MS4;
|
|
49520
49562
|
const n = bars.length;
|
|
49521
49563
|
const hi = new Array(n).fill(Number.NaN);
|
|
49522
49564
|
const lo = new Array(n).fill(Number.NaN);
|
|
@@ -50715,7 +50757,7 @@ var Statusline = class {
|
|
|
50715
50757
|
};
|
|
50716
50758
|
|
|
50717
50759
|
// src/widget/session-shading.ts
|
|
50718
|
-
var
|
|
50760
|
+
var DAY_MS5 = 864e5;
|
|
50719
50761
|
var MINUTE_MS = 6e4;
|
|
50720
50762
|
function parseWindow(text, allowOvernight = false) {
|
|
50721
50763
|
if (typeof text !== "string") return null;
|
|
@@ -50794,7 +50836,7 @@ function expandSessionZones(spec, from, to) {
|
|
|
50794
50836
|
const dtf = civilFormatter(spec.timezone);
|
|
50795
50837
|
if (!dtf || !Number.isFinite(from) || !Number.isFinite(to)) return { pre, post, extended };
|
|
50796
50838
|
const seen = /* @__PURE__ */ new Set();
|
|
50797
|
-
for (let cursor = from -
|
|
50839
|
+
for (let cursor = from - DAY_MS5; cursor < to + DAY_MS5; cursor += DAY_MS5) {
|
|
50798
50840
|
const civil = civilParts(dtf, cursor);
|
|
50799
50841
|
const key = civil.year * 1e4 + civil.month * 100 + civil.day;
|
|
50800
50842
|
if (!Number.isFinite(key) || seen.has(key)) continue;
|
|
@@ -50819,7 +50861,7 @@ function expandSessionZones(spec, from, to) {
|
|
|
50819
50861
|
}
|
|
50820
50862
|
return { pre, post, extended: mergeAbutting(extended) };
|
|
50821
50863
|
}
|
|
50822
|
-
var COVER_PAD_MIN_MS = 2 *
|
|
50864
|
+
var COVER_PAD_MIN_MS = 2 * DAY_MS5;
|
|
50823
50865
|
var SessionShadingTracker = class {
|
|
50824
50866
|
constructor(onZones) {
|
|
50825
50867
|
this.onZones = onZones;
|
|
@@ -50843,7 +50885,7 @@ var SessionShadingTracker = class {
|
|
|
50843
50885
|
this.covered = null;
|
|
50844
50886
|
this.session = opts.session;
|
|
50845
50887
|
const tfMs = timeframeMs(opts.timeframe);
|
|
50846
|
-
this.intraday = Number.isFinite(tfMs) && tfMs <
|
|
50888
|
+
this.intraday = Number.isFinite(tfMs) && tfMs < DAY_MS5;
|
|
50847
50889
|
this.lastRange = opts.range;
|
|
50848
50890
|
void data.symbolInfo(symbol).catch(() => void 0).then((si) => {
|
|
50849
50891
|
if (my !== this.epoch) return;
|
|
@@ -51405,6 +51447,7 @@ var ChartContextMenu = class {
|
|
|
51405
51447
|
const pane = this.lastPane;
|
|
51406
51448
|
return priceAxisItems({
|
|
51407
51449
|
auto: this.chart?.renderer.get("autoScale") !== false,
|
|
51450
|
+
priceOnly: priceOnlyState(pane, this.flag("scalePriceOnly")),
|
|
51408
51451
|
invert: pane ? pane.invert : this.flag("invertScale"),
|
|
51409
51452
|
choice: scaleChoiceOf(pane ?? { mode: String(this.chart?.renderer.get("scaleMode") ?? "price"), log: this.flag("logScale") }),
|
|
51410
51453
|
axisLabels: this.flag("axisLabels"),
|
|
@@ -51443,6 +51486,8 @@ var ChartContextMenu = class {
|
|
|
51443
51486
|
else chart.renderer.set("timezone", resolveTimezone(zone, void 0));
|
|
51444
51487
|
} else if (id === "auto") {
|
|
51445
51488
|
chart.renderer.set("autoScale", chart.renderer.get("autoScale") === false);
|
|
51489
|
+
} else if (id === "price-only") {
|
|
51490
|
+
chart.renderer.set("scalePriceOnly", !this.flag("scalePriceOnly"));
|
|
51446
51491
|
} else if (id === "invert") {
|
|
51447
51492
|
const pane = this.lastPane;
|
|
51448
51493
|
const [feature, value] = invertWrite(!(pane ? pane.invert : this.flag("invertScale")), pane);
|
|
@@ -51593,6 +51638,9 @@ function instanceDeltas(handle) {
|
|
|
51593
51638
|
const props = inputDeltas(handle.props, handle.propValues());
|
|
51594
51639
|
return inputs || props ? { ...inputs ? { inputs } : {}, ...props ? { props } : {} } : void 0;
|
|
51595
51640
|
}
|
|
51641
|
+
function statuslinePartEntries(parts) {
|
|
51642
|
+
return Object.entries(parts ?? {}).filter((e) => typeof e[1] === "boolean");
|
|
51643
|
+
}
|
|
51596
51644
|
function nativeAliases(type, i18n) {
|
|
51597
51645
|
const entry = nativeIndicatorEntry(type);
|
|
51598
51646
|
if (!entry) return {};
|
|
@@ -51768,6 +51816,7 @@ var ChartCell = class {
|
|
|
51768
51816
|
this.inner.on("replay:end", () => this.watermark?.setReplaying(false));
|
|
51769
51817
|
this.statusline = deps.statusline ? new Statusline(this.host, symbol ?? "", (sym) => this.inner?.data.symbolIcon(sym)) : null;
|
|
51770
51818
|
this.statusline?.setMeta(seed.timeframe ?? "60", this.state.provider ?? "");
|
|
51819
|
+
for (const [part, visible] of statuslinePartEntries(seed.statuslineParts)) this.statusline?.setPartVisible(part, visible);
|
|
51771
51820
|
this.statusline?.onChart(this.inner);
|
|
51772
51821
|
this.statusline?.attachMenu({
|
|
51773
51822
|
setPart: (part, visible) => this.setStatuslinePart(part, visible),
|
|
@@ -52180,6 +52229,7 @@ var ChartCell = class {
|
|
|
52180
52229
|
/** Show/hide one status-line segment (the settings dialog's Status line tab). */
|
|
52181
52230
|
setStatuslinePart(part, visible) {
|
|
52182
52231
|
this.statusline?.setPartVisible(part, visible);
|
|
52232
|
+
this.deps.onStateDirty();
|
|
52183
52233
|
this.deps.onStatusPrefsChanged(this.id);
|
|
52184
52234
|
}
|
|
52185
52235
|
/** This cell's Status line tab and watermark prefs as one bundle (see {@link CellStatusPrefs}). */
|
|
@@ -52662,6 +52712,9 @@ var ChartCell = class {
|
|
|
52662
52712
|
if (cs.replayWatermark !== void 0 && cs.replayWatermark !== this.replayWatermarkOn) this.setReplayWatermarkVisible(cs.replayWatermark);
|
|
52663
52713
|
if (cs.indicatorTitles !== void 0 && cs.indicatorTitles !== this.indicatorTitlesOn) this.setIndicatorTitlesVisible(cs.indicatorTitles);
|
|
52664
52714
|
if (cs.indicatorValues !== void 0 && cs.indicatorValues !== this.indicatorValuesOn) this.setIndicatorValuesVisible(cs.indicatorValues);
|
|
52715
|
+
for (const [part, visible] of statuslinePartEntries(cs.statuslineParts)) {
|
|
52716
|
+
if (this.statusline && this.statusline.partVisible(part) !== visible) this.setStatuslinePart(part, visible);
|
|
52717
|
+
}
|
|
52665
52718
|
if (cs.rendererConfig != null) this.inner.renderer.applyConfig(cs.rendererConfig);
|
|
52666
52719
|
if (cs.drawings != null) this.inner.drawings.fromJSON(cs.drawings);
|
|
52667
52720
|
if (cs.indicators) this.applyIndicatorLedger(cs.indicators);
|
|
@@ -52689,6 +52742,7 @@ var ChartCell = class {
|
|
|
52689
52742
|
dehydrate() {
|
|
52690
52743
|
const live = this.inner?.market;
|
|
52691
52744
|
const ext = this.inner ? this.dehydrateExt() : Object.keys(this.extState).length > 0 ? { ...this.extState } : void 0;
|
|
52745
|
+
const statuslineParts = this.statusPrefs().parts;
|
|
52692
52746
|
return {
|
|
52693
52747
|
...this.state,
|
|
52694
52748
|
...live ? { symbol: live.symbol, provider: live.provider, timeframe: live.timeframe } : {},
|
|
@@ -52697,6 +52751,7 @@ var ChartCell = class {
|
|
|
52697
52751
|
replayWatermark: this.replayWatermarkOn,
|
|
52698
52752
|
indicatorTitles: this.indicatorTitlesOn,
|
|
52699
52753
|
indicatorValues: this.indicatorValuesOn,
|
|
52754
|
+
...statuslineParts ? { statuslineParts } : {},
|
|
52700
52755
|
rendererConfig: this.inner?.renderer.getConfig() ?? void 0,
|
|
52701
52756
|
drawings: this.inner ? this.inner.drawings.toJSON() : void 0,
|
|
52702
52757
|
// Natives from the chart's SYNC registry read — an async catalog mirror here
|
package/dist/widget.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { V as Vela, W as WidgetContext, a1 as SidePanelButton } from './contributions-
|
|
2
|
-
export { C as CellStateContext, i as ContextMenuPointer, aJ as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a5 as StatePersistenceHandler, a9 as SymbolRankingHook, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-
|
|
3
|
-
import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, w as DataWindowReadout } from './options-
|
|
4
|
-
import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-
|
|
5
|
-
export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, D as DrawingToolsState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-
|
|
6
|
-
import { K as KeymapManager } from './keymap-
|
|
7
|
-
import { T as Translator, b as LocalizationOptions, c as LocaleChangedEvent, M as MessageLike, i as MessageDescriptor } from './types-
|
|
8
|
-
import { a as SymbolDescriptor } from './DataProvider-
|
|
9
|
-
import { d as SidePanel } from './side-panel-
|
|
10
|
-
export { C as CONTEXT_MENU_BUILTIN_ORDER, D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-
|
|
1
|
+
import { V as Vela, W as WidgetContext, a1 as SidePanelButton } from './contributions-DupwEkzc.cjs';
|
|
2
|
+
export { C as CellStateContext, i as ContextMenuPointer, aJ as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a5 as StatePersistenceHandler, a9 as SymbolRankingHook, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-DupwEkzc.cjs';
|
|
3
|
+
import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, w as DataWindowReadout } from './options-I1H2HDWw.cjs';
|
|
4
|
+
import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-PHt0YhmI.cjs';
|
|
5
|
+
export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, D as DrawingToolsState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-PHt0YhmI.cjs';
|
|
6
|
+
import { K as KeymapManager } from './keymap-W0hiajU6.cjs';
|
|
7
|
+
import { T as Translator, b as LocalizationOptions, c as LocaleChangedEvent, M as MessageLike, i as MessageDescriptor } from './types-Bwf63xGI.cjs';
|
|
8
|
+
import { a as SymbolDescriptor } from './DataProvider-B5i0_yY4.cjs';
|
|
9
|
+
import { d as SidePanel } from './side-panel-BEQJqSjR.cjs';
|
|
10
|
+
export { C as CONTEXT_MENU_BUILTIN_ORDER, D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-BEQJqSjR.cjs';
|
|
11
11
|
|
|
12
12
|
interface VelaWidgetOptions extends VelaOptions, VelaShellOptions {
|
|
13
13
|
/** @deprecated No longer supported — the option is ignored (a console warning
|
package/dist/widget.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { V as Vela, W as WidgetContext, a1 as SidePanelButton } from './contributions-
|
|
2
|
-
export { C as CellStateContext, i as ContextMenuPointer, aJ as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a5 as StatePersistenceHandler, a9 as SymbolRankingHook, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-
|
|
3
|
-
import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, w as DataWindowReadout } from './options-
|
|
4
|
-
import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-
|
|
5
|
-
export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, D as DrawingToolsState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-
|
|
6
|
-
import { K as KeymapManager } from './keymap-
|
|
7
|
-
import { T as Translator, b as LocalizationOptions, c as LocaleChangedEvent, M as MessageLike, i as MessageDescriptor } from './types-
|
|
8
|
-
import { a as SymbolDescriptor } from './DataProvider-
|
|
9
|
-
import { d as SidePanel } from './side-panel-
|
|
10
|
-
export { C as CONTEXT_MENU_BUILTIN_ORDER, D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-
|
|
1
|
+
import { V as Vela, W as WidgetContext, a1 as SidePanelButton } from './contributions-BfBaF6eE.js';
|
|
2
|
+
export { C as CellStateContext, i as ContextMenuPointer, aJ as DEFAULT_PANEL_ORDER, E as ExternalIndicatorEntry, O as OVERRIDABLE_TOPBAR_IDS, a2 as SidePanelDescriptor, a3 as SidePanelHandle, a5 as StatePersistenceHandler, a9 as SymbolRankingHook, ad as WidgetActionDescriptor, ae as WidgetActionTarget, af as WidgetAttachment, ap as registerSidePanel, aq as registerStatePersistence, ar as registerSymbolRanking, as as registerWidgetAction, at as registerWidgetAttachment, av as sidePanels, aw as statePersistenceHandlers, ax as symbolRanking, ay as topbarActionOverride, aD as unregisterSidePanel, aE as unregisterStatePersistence, aF as unregisterWidgetAction, aG as unregisterWidgetAttachment, aH as widgetActions, aI as widgetAttachments } from './contributions-BfBaF6eE.js';
|
|
3
|
+
import { b as VelaOptions, d as MarketSession, T as ThemeName, c as VelaTheme, w as DataWindowReadout } from './options-B7aL1pbf.js';
|
|
4
|
+
import { c as VelaShellOptions, W as WidgetHistory, b as RangePreset, f as WorkspaceState, j as TopbarComposition, a as StatuslinePart, P as PanelsState } from './statusline-model-Dfb_GD9u.js';
|
|
5
|
+
export { B as Bottombar, k as BottombarOptions, C as CellState, g as ChartState, D as DrawingToolsState, I as IndicatorLoader, l as IndicatorManifest, m as IndicatorManifestEntry, n as RANGE_PRESETS, R as ResolvedIndicator, o as ResolvedTopbarComposition, p as TOPBAR_BUILTIN_IDS, q as TOPBAR_DEFAULT_LEFT, r as TOPBAR_DEFAULT_RIGHT, V as VelaStorage, t as WidgetStorage, h as decodeState, i as encodeState, u as localStorageAdapter, v as pinnedTopbarActionIds, w as resolveIndicators, x as resolveTopbarComposition, s as sanitizeState, y as topbarHas } from './statusline-model-Dfb_GD9u.js';
|
|
6
|
+
import { K as KeymapManager } from './keymap-C48ughm6.js';
|
|
7
|
+
import { T as Translator, b as LocalizationOptions, c as LocaleChangedEvent, M as MessageLike, i as MessageDescriptor } from './types-Bwf63xGI.js';
|
|
8
|
+
import { a as SymbolDescriptor } from './DataProvider-CPFgSyAm.js';
|
|
9
|
+
import { d as SidePanel } from './side-panel-Ud0SBAnE.js';
|
|
10
|
+
export { C as CONTEXT_MENU_BUILTIN_ORDER, D as DEFAULT_PANEL_MAX_WIDTH, a as DEFAULT_PANEL_MIN_WIDTH, b as DEFAULT_PANEL_WIDTH, S as SidePanelOptions, c as clampPanelWidth } from './side-panel-Ud0SBAnE.js';
|
|
11
11
|
|
|
12
12
|
interface VelaWidgetOptions extends VelaOptions, VelaShellOptions {
|
|
13
13
|
/** @deprecated No longer supported — the option is ignored (a console warning
|
package/dist/widget.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { VelaWorkspace } from './chunk-
|
|
2
|
-
export { Bottombar, ChartContextMenu, DataWindow, IndicatorPicker, ObjectTree, PanelDock, RANGE_PRESETS, ShortcutsHelp, Statusline, SymbolPicker, TimeframeQuick, Topbar, Watermark, dataWindowSections, decimalsFor, decodeState, encodeState, filterSymbols, fmtChange, fmtPrice, localStorageAdapter, parseTimeframe, priceStyleLabel, resolveIndicators, sanitizeState, timeframeLabel, timeframeMs } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
export { CONTEXT_MENU_BUILTIN_ORDER, DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_ORDER, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, SidePanel, TIMEZONES, TOPBAR_BUILTIN_IDS, TOPBAR_DEFAULT_LEFT, TOPBAR_DEFAULT_RIGHT, clampPanelWidth, normalizeTimezone, pinnedTopbarActionIds, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, resolveTopbarComposition, sidePanels, statePersistenceHandlers, symbolRanking, topbarActionOverride, topbarHas, tzButtonLabel, tzMenuLabel, tzOffset, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-
|
|
1
|
+
import { VelaWorkspace } from './chunk-BLVL7WXF.js';
|
|
2
|
+
export { Bottombar, ChartContextMenu, DataWindow, IndicatorPicker, ObjectTree, PanelDock, RANGE_PRESETS, ShortcutsHelp, Statusline, SymbolPicker, TimeframeQuick, Topbar, Watermark, dataWindowSections, decimalsFor, decodeState, encodeState, filterSymbols, fmtChange, fmtPrice, localStorageAdapter, parseTimeframe, priceStyleLabel, resolveIndicators, sanitizeState, timeframeLabel, timeframeMs } from './chunk-BLVL7WXF.js';
|
|
3
|
+
import './chunk-3H6JO4VL.js';
|
|
4
|
+
export { CONTEXT_MENU_BUILTIN_ORDER, DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_ORDER, DEFAULT_PANEL_WIDTH, OVERRIDABLE_TOPBAR_IDS, SidePanel, TIMEZONES, TOPBAR_BUILTIN_IDS, TOPBAR_DEFAULT_LEFT, TOPBAR_DEFAULT_RIGHT, clampPanelWidth, normalizeTimezone, pinnedTopbarActionIds, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, resolveTopbarComposition, sidePanels, statePersistenceHandlers, symbolRanking, topbarActionOverride, topbarHas, tzButtonLabel, tzMenuLabel, tzOffset, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-Q7POFYNE.js';
|
|
5
5
|
import './chunk-WHPQQYH7.js';
|
|
6
6
|
import './chunk-PZN4RS4T.js';
|
|
7
7
|
import './chunk-O6L27KRB.js';
|