@luxalgo/vela 0.6.16 → 0.6.17
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/README.md +4 -0
- package/dist/{DataProvider-XLdJB86x.d.ts → DataProvider-B-Jz59Rf.d.ts} +1 -1
- package/dist/{DataProvider-xH2VBcFT.d.cts → DataProvider-OfR3fXg9.d.cts} +1 -1
- package/dist/{chunk-6DPAYEGO.js → chunk-CAFCLMPF.js} +1 -0
- package/dist/{chunk-I77F2SVE.js → chunk-IFJJPXSV.js} +1 -1
- package/dist/{chunk-SEOO6YG7.js → chunk-OSZDSH7F.js} +5 -8
- package/dist/{chunk-MGU3USTP.js → chunk-T5Z5YUCF.js} +1 -1
- package/dist/{chunk-Q3TFJNJW.js → chunk-XCBJU674.js} +2 -2
- package/dist/{chunk-GIJYO4LO.js → chunk-YCD72KGK.js} +103 -40
- package/dist/{contributions-BEkxwA5F.d.cts → contributions-C3b0Sx5P.d.cts} +2 -2
- package/dist/{contributions-CoAX7_SF.d.ts → contributions-Swzz10fG.d.ts} +2 -2
- package/dist/index.cjs +99 -36
- package/dist/index.d.cts +15 -6
- package/dist/index.d.ts +15 -6
- package/dist/index.js +4 -4
- package/dist/{options-bdSAtp7y.d.ts → options-CX1lSYWA.d.cts} +12 -2
- package/dist/{options-bdSAtp7y.d.cts → options-CX1lSYWA.d.ts} +12 -2
- package/dist/{plugin-Dxyq35Zf.d.cts → plugin-BjnEE1zA.d.cts} +3 -3
- package/dist/{plugin-CNUgbRNq.d.ts → plugin-mvddudqd.d.ts} +3 -3
- package/dist/plugin.cjs +1 -0
- package/dist/plugin.d.cts +4 -4
- package/dist/plugin.d.ts +4 -4
- package/dist/plugin.js +2 -2
- package/dist/providers/binance.d.cts +2 -2
- package/dist/providers/binance.d.ts +2 -2
- package/dist/providers/coinbase.d.cts +2 -2
- package/dist/providers/coinbase.d.ts +2 -2
- package/dist/providers/hyperliquid.d.cts +2 -2
- package/dist/providers/hyperliquid.d.ts +2 -2
- package/dist/{statusline-model-CbPza-Wc.d.cts → statusline-model-D91cU2fF.d.cts} +3 -3
- package/dist/{statusline-model-D7cWkw8A.d.ts → statusline-model-IURCya0H.d.ts} +3 -3
- package/dist/ui.cjs +1 -0
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +3 -3
- package/dist/vela.global.js +99 -36
- package/dist/vela.global.min.js +46 -49
- package/dist/widget.cjs +100 -39
- package/dist/widget.d.cts +6 -6
- package/dist/widget.d.ts +6 -6
- package/dist/widget.js +7 -7
- package/dist/workspace.cjs +100 -39
- package/dist/workspace.d.cts +5 -5
- package/dist/workspace.d.ts +5 -5
- package/dist/workspace.js +6 -6
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -25,6 +25,23 @@ function _interopNamespace(e) {
|
|
|
25
25
|
var menu__namespace = /*#__PURE__*/_interopNamespace(menu);
|
|
26
26
|
var dialog__namespace = /*#__PURE__*/_interopNamespace(dialog);
|
|
27
27
|
|
|
28
|
+
// src/core/options.ts
|
|
29
|
+
var LIVE_BAR_EASE_DEFAULT_MS = 90;
|
|
30
|
+
var LIVE_BAR_EASE_MAX_MS = 1e3;
|
|
31
|
+
function resolveLiveBarEaseMs(value) {
|
|
32
|
+
if (value === true) return LIVE_BAR_EASE_DEFAULT_MS;
|
|
33
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return 0;
|
|
34
|
+
return Math.min(value, LIVE_BAR_EASE_MAX_MS);
|
|
35
|
+
}
|
|
36
|
+
function resolveAnimations(animations) {
|
|
37
|
+
if (typeof animations === "boolean") return { animZoom: animations, animPan: animations, animLiveBar: 0 };
|
|
38
|
+
return {
|
|
39
|
+
animZoom: animations?.zoom ?? true,
|
|
40
|
+
animPan: animations?.pan ?? true,
|
|
41
|
+
animLiveBar: resolveLiveBarEaseMs(animations?.liveBar)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
28
45
|
// src/core/model/series.ts
|
|
29
46
|
function isLineLikeSeries(spec) {
|
|
30
47
|
return spec.kind !== "candle" && spec.kind !== "bar" && spec.kind !== "markers";
|
|
@@ -575,6 +592,7 @@ registerIcon("star-filled", S('<path d="M8 2.2l1.75 3.55 3.9.55-2.8 2.75.65 3.9L
|
|
|
575
592
|
registerIcon("grip", S('<circle cx="6" cy="3.5" r="1"/><circle cx="10" cy="3.5" r="1"/><circle cx="6" cy="8" r="1"/><circle cx="10" cy="8" r="1"/><circle cx="6" cy="12.5" r="1"/><circle cx="10" cy="12.5" r="1"/>', 'fill="currentColor" stroke="none"'));
|
|
576
593
|
registerIcon("kebab", S('<circle cx="8" cy="3.2" r="1.2"/><circle cx="8" cy="8" r="1.2"/><circle cx="8" cy="12.8" r="1.2"/>', 'fill="currentColor" stroke="none"'));
|
|
577
594
|
registerIcon("burger", S('<path d="M2.5 4.5h11M2.5 8h11M2.5 11.5h11"/>'));
|
|
595
|
+
registerIcon("info", S('<path d="M8 7.4v4.4"/><circle cx="8" cy="4.6" r="0.9" fill="currentColor" stroke="none"/>'));
|
|
578
596
|
registerIcon("reset", S('<path d="M2 8a6 6 0 1 0 6-6 6.5 6.5 0 0 0-4.5 1.83L2 5.33"/><path d="M2 2v3.33h3.33"/>'));
|
|
579
597
|
registerIcon("pane-collapse", S('<path d="M2.6 9.4h4v4M13.4 6.6h-4v-4"/><path d="m9.4 6.6 4.2-4.2M2.4 13.6l4.2-4.2"/>'));
|
|
580
598
|
registerIcon("pane-expand", S('<path d="M9.8 2.4h3.8v3.8M6.2 13.6H2.4V9.8"/><path d="m13.6 2.4-4.4 4.4M2.4 13.6l4.4-4.4"/>'));
|
|
@@ -10525,6 +10543,23 @@ function attachChromeTooltip(anchor, opts) {
|
|
|
10525
10543
|
clear();
|
|
10526
10544
|
};
|
|
10527
10545
|
}
|
|
10546
|
+
function chromeHint(text, opts) {
|
|
10547
|
+
const px = opts.size ?? 16;
|
|
10548
|
+
const el = document.createElement("span");
|
|
10549
|
+
el.className = "vela-hint";
|
|
10550
|
+
el.setAttribute("role", "img");
|
|
10551
|
+
el.setAttribute("aria-label", text);
|
|
10552
|
+
el.innerHTML = iconAt("info", px);
|
|
10553
|
+
el.style.cssText = `flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:${px}px;height:${px}px;border-radius:50%;cursor:help;user-select:none;background:var(--vela-hover);color:var(--vela-fg-muted);transition:background var(--vela-dur-fast) ease,color var(--vela-dur-fast) ease;`;
|
|
10554
|
+
const hover = (on) => {
|
|
10555
|
+
el.style.background = on ? "var(--vela-active)" : "var(--vela-hover)";
|
|
10556
|
+
el.style.color = on ? "var(--vela-fg-bright)" : "var(--vela-fg-muted)";
|
|
10557
|
+
};
|
|
10558
|
+
el.addEventListener("pointerenter", () => hover(true));
|
|
10559
|
+
el.addEventListener("pointerleave", () => hover(false));
|
|
10560
|
+
const dispose = attachChromeTooltip(el, { host: opts.host, theme: opts.theme, text: () => text, wrap: true, delayMs: 250 });
|
|
10561
|
+
return { el, dispose };
|
|
10562
|
+
}
|
|
10528
10563
|
function runMachine(machine3, props, render) {
|
|
10529
10564
|
const m = new vanilla.VanillaMachine(machine3, props);
|
|
10530
10565
|
const unsub = m.subscribe(render);
|
|
@@ -13666,14 +13701,11 @@ var IndicatorInputsDialog = class {
|
|
|
13666
13701
|
buildTextField(id, current, emit) {
|
|
13667
13702
|
return buildFieldControl({ kind: "text", id, value: current, onChange: emit }).el;
|
|
13668
13703
|
}
|
|
13669
|
-
/**
|
|
13704
|
+
/** The shared ⓘ hint carrying an input's `tooltip` (see {@link chromeHint}). */
|
|
13670
13705
|
infoButton(tooltip) {
|
|
13671
|
-
const
|
|
13672
|
-
|
|
13673
|
-
|
|
13674
|
-
b.className = "vela-ind-hint";
|
|
13675
|
-
b.style.cssText = "flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-weight:600;font-size:11px;font-family:inherit;line-height:1;cursor:help;user-select:none;";
|
|
13676
|
-
return b;
|
|
13706
|
+
const { el, dispose } = chromeHint(tooltip, { host: this.host.container, theme: () => this.host.theme(), size: 18 });
|
|
13707
|
+
this.dialogTips.push(dispose);
|
|
13708
|
+
return el;
|
|
13677
13709
|
}
|
|
13678
13710
|
/** A dropdown over plain string options (value === label) — a thin case of {@link selectPairs}. */
|
|
13679
13711
|
select(id, options, current, emit) {
|
|
@@ -14110,8 +14142,6 @@ function ensureDialogStyles() {
|
|
|
14110
14142
|
${overlayScrollbarCss(".vela-dialog.vela-ind-dialog *", 9)}
|
|
14111
14143
|
.vela-ind-tab{font-weight:600;font-size:13px;line-height:20px;transition:color var(--vela-dur-fast) ease,border-color var(--vela-dur-fast) ease;}
|
|
14112
14144
|
.vela-ind-tab:not(.vela-ind-tab-active):hover{color:var(--vela-fg-bright);}
|
|
14113
|
-
.vela-ind-hint{background:var(--vela-hover);color:var(--vela-fg-muted);transition:background var(--vela-dur-fast) ease,color var(--vela-dur-fast) ease;}
|
|
14114
|
-
.vela-ind-hint:hover{background:var(--vela-active);color:var(--vela-fg-bright);}
|
|
14115
14145
|
.vela-ind-ctl,.vela-ind-close{background-color:transparent;color:inherit;transition:color var(--vela-dur-fast) ease,background-color var(--vela-dur-fast) ease;}
|
|
14116
14146
|
.vela-ind-ctl svg,.vela-ind-close svg{width:${LEGEND_ICON_PX}px;height:${LEGEND_ICON_PX}px;display:block;flex:none;stroke-width:1;}
|
|
14117
14147
|
.vela-ind-ctl:hover{background-color:var(--vela-hover-strong);}
|
|
@@ -15655,7 +15685,8 @@ function mergeConfig(base, patch) {
|
|
|
15655
15685
|
labelsVisible: isBool(ps.labelsVisible) ? ps.labelsVisible : base.priceScale.labelsVisible,
|
|
15656
15686
|
currentPriceLine: isBool(ps.currentPriceLine) ? ps.currentPriceLine : base.priceScale.currentPriceLine,
|
|
15657
15687
|
priceLabel: isBool(ps.priceLabel) ? ps.priceLabel : base.priceScale.priceLabel,
|
|
15658
|
-
countdown: isBool(ps.countdown) ? ps.countdown : base.priceScale.countdown
|
|
15688
|
+
countdown: isBool(ps.countdown) ? ps.countdown : base.priceScale.countdown,
|
|
15689
|
+
animateLastPrice: isBool(ps.animateLastPrice) ? ps.animateLastPrice : base.priceScale.animateLastPrice
|
|
15659
15690
|
},
|
|
15660
15691
|
panes: {
|
|
15661
15692
|
separatorColor: isColor(panes.separatorColor) ? panes.separatorColor : base.panes.separatorColor
|
|
@@ -20519,6 +20550,8 @@ var BUILTIN_SETTINGS_IDS = [
|
|
|
20519
20550
|
"symbol.style.baseline.fill-bottom",
|
|
20520
20551
|
"symbol.style.baseline.base-level",
|
|
20521
20552
|
"symbol.style.baseline.width",
|
|
20553
|
+
"symbol.animation",
|
|
20554
|
+
"symbol.animation.price-changes",
|
|
20522
20555
|
"symbol.timezone",
|
|
20523
20556
|
"scales",
|
|
20524
20557
|
"scales.price-scale",
|
|
@@ -20661,8 +20694,7 @@ ${overlayScrollbarCss(".vela-sd-pane")}
|
|
|
20661
20694
|
.vela-sd-mobile .vela-select-trigger,.vela-sd-mobile .vela-num input,.vela-sd-mobile .vela-width-field{height:34px;}
|
|
20662
20695
|
.vela-sd-mobile .vela-sd-close{width:40px;height:40px;}
|
|
20663
20696
|
.vela-sd-mobile .vela-sd-btn{height:38px;}
|
|
20664
|
-
.vela-sd-mobile .vela-sd-row span,.vela-sd-mobile .vela-sd-bool span,.vela-sd-mobile .vela-field-label{white-space:normal !important;}
|
|
20665
|
-
`;
|
|
20697
|
+
.vela-sd-mobile .vela-sd-row span,.vela-sd-mobile .vela-sd-bool span,.vela-sd-mobile .vela-field-label{white-space:normal !important;}`;
|
|
20666
20698
|
if (!existing) document.head.appendChild(st);
|
|
20667
20699
|
}
|
|
20668
20700
|
var SettingsDialog = class {
|
|
@@ -20683,6 +20715,8 @@ var SettingsDialog = class {
|
|
|
20683
20715
|
this.themeControl = null;
|
|
20684
20716
|
/** The built tabs, by title — how `showSection` reaches a pane while the dialog is open. */
|
|
20685
20717
|
this.tabs = [];
|
|
20718
|
+
this.hintTips = [];
|
|
20719
|
+
// ⓘ tooltip disposers of the open build (see hint)
|
|
20686
20720
|
/** Active instance-strip tab per chart type — remembered across dialog rebuilds. */
|
|
20687
20721
|
this.typeActiveInstance = /* @__PURE__ */ new Map();
|
|
20688
20722
|
/** Active TOC group per structured pane (`<typeId>/<pane>` → group label). */
|
|
@@ -20871,6 +20905,13 @@ var SettingsDialog = class {
|
|
|
20871
20905
|
body.append(g);
|
|
20872
20906
|
}
|
|
20873
20907
|
showActive(config.series.style);
|
|
20908
|
+
body.append(sid(this.sectionTitle("Animation"), "symbol.animation"));
|
|
20909
|
+
body.append(sid(this.boolRow(
|
|
20910
|
+
"Animate price changes",
|
|
20911
|
+
config.priceScale.animateLastPrice,
|
|
20912
|
+
(v) => this.emit({ priceScale: { animateLastPrice: v } }),
|
|
20913
|
+
this.hint("Glide the live bar to each new price instead of snapping.")
|
|
20914
|
+
), "symbol.animation.price-changes"));
|
|
20874
20915
|
body.append(sid(this.sectionTitle("Time zone"), "symbol.timezone"));
|
|
20875
20916
|
body.append(sid(this.selectRowLabeled("Time zone", normalizeTimezone(config.timeScale.timezone), timezoneOptions(config.timeScale.timezone), (v) => this.emit({ timeScale: { timezone: v } })), "symbol.timezone"));
|
|
20876
20917
|
const renderHostSections = (placement) => {
|
|
@@ -21078,6 +21119,8 @@ var SettingsDialog = class {
|
|
|
21078
21119
|
this.ui = null;
|
|
21079
21120
|
this.root = null;
|
|
21080
21121
|
this.tabs = [];
|
|
21122
|
+
for (const dispose of this.hintTips) dispose();
|
|
21123
|
+
this.hintTips = [];
|
|
21081
21124
|
ui?.destroy();
|
|
21082
21125
|
}
|
|
21083
21126
|
destroy() {
|
|
@@ -21491,23 +21534,31 @@ var SettingsDialog = class {
|
|
|
21491
21534
|
}).el
|
|
21492
21535
|
});
|
|
21493
21536
|
}
|
|
21494
|
-
/** A toggle row: the checkbox sits to the LEFT of its label (never in the control area).
|
|
21495
|
-
|
|
21496
|
-
|
|
21537
|
+
/** A toggle row: the checkbox sits to the LEFT of its label (never in the control area).
|
|
21538
|
+
* `info` (see {@link hint}) rides after the label. */
|
|
21539
|
+
boolRow(label, value, onChange, info) {
|
|
21540
|
+
return this.toggleRow(label, value, onChange, [], void 0, info);
|
|
21497
21541
|
}
|
|
21498
21542
|
/** An enable row: checkbox + label in the label column, dependent controls in the
|
|
21499
21543
|
* shared control column; the control group dims and ignores input while the toggle
|
|
21500
21544
|
* is off. With `get`, the row re-reads its state on a 'vela-sync' event. */
|
|
21501
|
-
toggleRow(label, value, onToggle, controls, get) {
|
|
21545
|
+
toggleRow(label, value, onToggle, controls, get, info) {
|
|
21502
21546
|
return fieldRow({
|
|
21503
21547
|
label,
|
|
21504
21548
|
labelSize: "sm",
|
|
21505
21549
|
bool: controls.length === 0,
|
|
21506
21550
|
toggle: { checked: value, onChange: onToggle, get },
|
|
21507
21551
|
control: controls,
|
|
21552
|
+
info,
|
|
21508
21553
|
className: controls.length === 0 ? "vela-sd-bool" : "vela-sd-row"
|
|
21509
21554
|
});
|
|
21510
21555
|
}
|
|
21556
|
+
/** The shared ⓘ hint after a row label (see {@link chromeHint}). Disposed with the dialog. */
|
|
21557
|
+
hint(text) {
|
|
21558
|
+
const { el, dispose } = chromeHint(text, { host: this.container, theme: () => this.theme });
|
|
21559
|
+
this.hintTips.push(dispose);
|
|
21560
|
+
return el;
|
|
21561
|
+
}
|
|
21511
21562
|
numberRow(label, value, min, max, step, onChange) {
|
|
21512
21563
|
return fieldRow({
|
|
21513
21564
|
label,
|
|
@@ -27520,7 +27571,6 @@ var ZOOM_OUT_MARGIN_BARS = 6;
|
|
|
27520
27571
|
var ZOOM_TAU_MS = 70;
|
|
27521
27572
|
var SCALE_TAU_MS = 80;
|
|
27522
27573
|
var FLING_TAU_MS = 110;
|
|
27523
|
-
var LIVE_BAR_TAU_MS = 90;
|
|
27524
27574
|
var SCROLL_TO_TAU_MS = 130;
|
|
27525
27575
|
var FLING_STOP_PX = 0.02;
|
|
27526
27576
|
var PRICE_SCALE_K = 4e-3;
|
|
@@ -27591,9 +27641,13 @@ var NativeRenderer = class {
|
|
|
27591
27641
|
/** Drawings layer self-serves Ctrl+Z/Y (see the `historyChords` feature). */
|
|
27592
27642
|
this.historyChordsEnabled = true;
|
|
27593
27643
|
this.liveRegion = null;
|
|
27594
|
-
// ── animation state (eased zoom + inertial pan) ──
|
|
27644
|
+
// ── animation state (eased zoom + inertial pan + live-bar glide) ──
|
|
27595
27645
|
this.animZoom = true;
|
|
27596
27646
|
this.animPan = true;
|
|
27647
|
+
this.animLiveBarMs = 0;
|
|
27648
|
+
// forming-bar OHLC glide time-constant; 0 = each tick snaps
|
|
27649
|
+
this.animLiveBarOnMs = LIVE_BAR_EASE_DEFAULT_MS;
|
|
27650
|
+
// the duration the settings-dialog on/off toggle restores (last non-zero value configured)
|
|
27597
27651
|
// Brand default candles.
|
|
27598
27652
|
this.candleUp = BULLISH;
|
|
27599
27653
|
this.candleDown = BEARISH;
|
|
@@ -27718,7 +27772,7 @@ var NativeRenderer = class {
|
|
|
27718
27772
|
this.moveIndicatorCbs = /* @__PURE__ */ new Set();
|
|
27719
27773
|
this.priceStyleCbs = /* @__PURE__ */ new Set();
|
|
27720
27774
|
this.name = "native";
|
|
27721
|
-
this.features = ["logScale", "currentPriceLine", "priceLabel", "countdown", "upColor", "downColor", "glow", "animZoom", "animPan", "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", "indicatorTitles", "indicatorValues"];
|
|
27775
|
+
this.features = ["logScale", "currentPriceLine", "priceLabel", "countdown", "upColor", "downColor", "glow", "animZoom", "animPan", "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", "indicatorTitles", "indicatorValues"];
|
|
27722
27776
|
/** Track cursor proximity to the scroll button on the plot (bubbles from the button too,
|
|
27723
27777
|
* so moving onto the button doesn't count as leaving). */
|
|
27724
27778
|
this.onScrollProximityMove = (e) => {
|
|
@@ -27752,6 +27806,7 @@ var NativeRenderer = class {
|
|
|
27752
27806
|
this.backendMode = opts.nativeBackend;
|
|
27753
27807
|
this.animZoom = opts.animZoom;
|
|
27754
27808
|
this.animPan = opts.animPan;
|
|
27809
|
+
this.setLiveBarEase(resolveLiveBarEaseMs(opts.animLiveBar));
|
|
27755
27810
|
this.glowAmount = opts.glow;
|
|
27756
27811
|
this.candleUp = opts.upColor;
|
|
27757
27812
|
this.candleDown = opts.downColor;
|
|
@@ -27801,6 +27856,10 @@ var NativeRenderer = class {
|
|
|
27801
27856
|
case "animPan":
|
|
27802
27857
|
this.animPan = Boolean(value);
|
|
27803
27858
|
return;
|
|
27859
|
+
case "animLiveBar":
|
|
27860
|
+
this.setLiveBarEase(resolveLiveBarEaseMs(value));
|
|
27861
|
+
return;
|
|
27862
|
+
// affects the next tick only; a glide in flight finishes at the new rate (or snaps at 0)
|
|
27804
27863
|
case "intro": {
|
|
27805
27864
|
const s = value === false || value === "none" || value === "off" || value == null ? "" : String(value);
|
|
27806
27865
|
this.introStyle = s;
|
|
@@ -27937,6 +27996,8 @@ var NativeRenderer = class {
|
|
|
27937
27996
|
return this.animZoom;
|
|
27938
27997
|
case "animPan":
|
|
27939
27998
|
return this.animPan;
|
|
27999
|
+
case "animLiveBar":
|
|
28000
|
+
return this.animLiveBarMs;
|
|
27940
28001
|
case "intro":
|
|
27941
28002
|
return this.introStyle;
|
|
27942
28003
|
case "zoomAnchor":
|
|
@@ -28105,7 +28166,8 @@ var NativeRenderer = class {
|
|
|
28105
28166
|
labelsVisible: this.scene.showAxisLabels,
|
|
28106
28167
|
currentPriceLine: this.scene.showPriceLine,
|
|
28107
28168
|
priceLabel: this.scene.showPriceLabel,
|
|
28108
|
-
countdown: this.scene.showCountdown
|
|
28169
|
+
countdown: this.scene.showCountdown,
|
|
28170
|
+
animateLastPrice: this.animLiveBarMs > 0
|
|
28109
28171
|
},
|
|
28110
28172
|
panes: { separatorColor: s.separatorColor ?? t.borderColor },
|
|
28111
28173
|
trades: {
|
|
@@ -28212,6 +28274,7 @@ var NativeRenderer = class {
|
|
|
28212
28274
|
this.scene.showPriceLabel = next.priceScale.priceLabel;
|
|
28213
28275
|
this.scene.showCountdown = next.priceScale.countdown;
|
|
28214
28276
|
this.syncCountdownTimer();
|
|
28277
|
+
this.animLiveBarMs = next.priceScale.animateLastPrice ? this.animLiveBarOnMs : 0;
|
|
28215
28278
|
s.separatorColor = keepInherit(s.separatorColor, next.panes.separatorColor, prevTheme.borderColor);
|
|
28216
28279
|
this.scene.tradeMarkers = {
|
|
28217
28280
|
visible: next.trades.visible,
|
|
@@ -29028,8 +29091,11 @@ var NativeRenderer = class {
|
|
|
29028
29091
|
const last = this.bars[n - 1];
|
|
29029
29092
|
if (last && bar.time === last.time) {
|
|
29030
29093
|
this.bars[n - 1] = bar;
|
|
29031
|
-
if (this.liveEaseTime !== bar.time)
|
|
29032
|
-
|
|
29094
|
+
if (this.animLiveBarMs <= 0 || this.liveEaseTime !== bar.time) {
|
|
29095
|
+
this.syncLiveEase(bar);
|
|
29096
|
+
} else {
|
|
29097
|
+
this.animator.start();
|
|
29098
|
+
}
|
|
29033
29099
|
} else if (!last || bar.time > last.time) {
|
|
29034
29100
|
this.bars.push(bar);
|
|
29035
29101
|
this.syncLiveEase(bar);
|
|
@@ -29041,6 +29107,12 @@ var NativeRenderer = class {
|
|
|
29041
29107
|
this.scene.bars = this.bars;
|
|
29042
29108
|
this.scheduler.invalidate(4 /* Full */);
|
|
29043
29109
|
}
|
|
29110
|
+
/** Set the live-bar glide duration (0 = off). A non-zero value is also remembered as
|
|
29111
|
+
* what the config's on/off toggle (`priceScale.animateLastPrice`) switches back on to. */
|
|
29112
|
+
setLiveBarEase(ms) {
|
|
29113
|
+
this.animLiveBarMs = ms;
|
|
29114
|
+
if (ms > 0) this.animLiveBarOnMs = ms;
|
|
29115
|
+
}
|
|
29044
29116
|
/** Snap the eased forming-bar state to `bar` — no glide (a fresh bar or the first tick of one). */
|
|
29045
29117
|
syncLiveEase(bar) {
|
|
29046
29118
|
this.liveEaseTime = bar.time;
|
|
@@ -29053,9 +29125,10 @@ var NativeRenderer = class {
|
|
|
29053
29125
|
const target = this.bars[this.bars.length - 1];
|
|
29054
29126
|
if (!target || this.liveEaseTime !== target.time) return false;
|
|
29055
29127
|
const eps = Math.max(1e-9, Math.abs(target.close) * 1e-6);
|
|
29056
|
-
const
|
|
29057
|
-
const
|
|
29058
|
-
const
|
|
29128
|
+
const tau = this.animLiveBarMs;
|
|
29129
|
+
const nh = easeToward(this.liveEaseHigh, target.high, dtMs, tau);
|
|
29130
|
+
const nl = easeToward(this.liveEaseLow, target.low, dtMs, tau);
|
|
29131
|
+
const nc = easeToward(this.liveEaseClose, target.close, dtMs, tau);
|
|
29059
29132
|
const active = Math.abs(nh - target.high) > eps || Math.abs(nl - target.low) > eps || Math.abs(nc - target.close) > eps;
|
|
29060
29133
|
this.liveEaseHigh = active ? nh : target.high;
|
|
29061
29134
|
this.liveEaseLow = active ? nl : target.low;
|
|
@@ -33339,21 +33412,11 @@ var Vela = class {
|
|
|
33339
33412
|
registerClassicIndicators();
|
|
33340
33413
|
const element = resolveElement(container);
|
|
33341
33414
|
const theme = resolveTheme(options.theme);
|
|
33342
|
-
let animZoom = true;
|
|
33343
|
-
let animPan = true;
|
|
33344
|
-
if (typeof options.animations === "boolean") {
|
|
33345
|
-
animZoom = options.animations;
|
|
33346
|
-
animPan = options.animations;
|
|
33347
|
-
} else if (options.animations) {
|
|
33348
|
-
animZoom = options.animations.zoom ?? true;
|
|
33349
|
-
animPan = options.animations.pan ?? true;
|
|
33350
|
-
}
|
|
33351
33415
|
const display = {
|
|
33352
33416
|
currentPriceLine: options.currentPriceLine ?? true,
|
|
33353
33417
|
logScale: options.logScale ?? false,
|
|
33354
33418
|
nativeBackend: options.nativeBackend ?? "auto",
|
|
33355
|
-
|
|
33356
|
-
animPan,
|
|
33419
|
+
...resolveAnimations(options.animations),
|
|
33357
33420
|
glow: options.glow ?? 0,
|
|
33358
33421
|
upColor: options.upColor ?? BULLISH,
|
|
33359
33422
|
downColor: options.downColor ?? BEARISH,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { D as DrawingsDocument, R as Resolved } from './contributions-
|
|
2
|
-
export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, y as PreparedScript, z as RendererControl, A as RunIndicatorResult, G as SceneInspection, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, $ as TypedEventBus, V as Vela, a0 as VelaDeps, a1 as VelaEventMap, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, a9 as nativeIndicatorDescriptors, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-
|
|
3
|
-
import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, s as DataWindowReadout, t as IDrawingsRendererPort, u as Millis, v as SnapMode, w as DrawingTypeKey, x as ToolbarDefinition, M as MarketConfig } from './options-
|
|
4
|
-
export { y as AddIndicatorOptions, B as Background,
|
|
5
|
-
import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-
|
|
6
|
-
export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-
|
|
1
|
+
import { D as DrawingsDocument, R as Resolved } from './contributions-C3b0Sx5P.cjs';
|
|
2
|
+
export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, y as PreparedScript, z as RendererControl, A as RunIndicatorResult, G as SceneInspection, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, $ as TypedEventBus, V as Vela, a0 as VelaDeps, a1 as VelaEventMap, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, a9 as nativeIndicatorDescriptors, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-C3b0Sx5P.cjs';
|
|
3
|
+
import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, s as DataWindowReadout, t as IDrawingsRendererPort, u as Millis, v as SnapMode, w as DrawingTypeKey, x as ToolbarDefinition, M as MarketConfig } from './options-CX1lSYWA.cjs';
|
|
4
|
+
export { y as AddIndicatorOptions, z as AnimationConfig, B as Background, E as BoxFontFamily, F as BoxHAlign, G as BoxTextSize, H as BoxVAlign, J as CandleBarColor, K as CandleSeries, Q as CandleStyle, W as DataWindowGroup, X as DataWindowOHLC, Y as DataWindowRow, Z as DirtyRange, _ as DrawingBox, $ as DrawingExtend, a0 as DrawingIntent, a1 as DrawingLabel, a2 as DrawingLine, a3 as DrawingLinefill, a4 as DrawingMode, a5 as DrawingPoint, a6 as DrawingPolyline, a7 as DrawingSeriesBar, a8 as DrawingSeriesGateway, a9 as DrawingSeriesState, aa as DrawingStyle, ab as DrawingTable, ac as DrawingText, ad as DrawingXLoc, ae as DrawingsOption, af as Fill, ag as FillGradientStop, ah as IndicatorMeta, ai as InputCondition, aj as InputSchema, ak as InputType, al as InputWhen, am as LabelStyle, an as LabelYLoc, ao as LineLikeKind, ap as LineLikeSeries, aq as LineLikeStyle, ar as MarkerPoint, as as MarkerSeries, at as MarketSnapshot, au as MarketSwitch, av as PaneAxis, aw as PaneAxisBand, ax as PaneHint, ay as PaneKind, az as PolylinePoint, aA as PriceLine, aB as Projector, aC as ProviderName, aD as RendererConstructor, aE as Scene, aF as SchemaPatch, aG as SeriesKind, aH as SeriesPoint, aI as SeriesSpec, aJ as SeriesValueDelta, aK as SettingsField, aL as SettingsSchema, aM as SettingsVisibilityPolicy, aN as TableCell, aO as TableMerge, aP as TablePosition, aQ as ToolbarGroupConfig, aR as TradeExecution, aS as ValuePatch, b as VelaOptions, V as VisibleRangePreset, aT as buildToolbar, aU as defaultToolbar, aV as inputDeltas, aW as inputVisible } from './options-CX1lSYWA.cjs';
|
|
5
|
+
import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-OfR3fXg9.cjs';
|
|
6
|
+
export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-BjnEE1zA.cjs';
|
|
7
7
|
export { 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-HF0IAzwf.cjs';
|
|
8
8
|
export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.cjs';
|
|
9
9
|
export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.cjs';
|
|
@@ -192,6 +192,10 @@ interface ChartConfig {
|
|
|
192
192
|
currentPriceLine: boolean;
|
|
193
193
|
priceLabel: boolean;
|
|
194
194
|
countdown: boolean;
|
|
195
|
+
/** Glide the forming bar (and the last-price line/label) toward each live tick
|
|
196
|
+
* instead of snapping. The duration comes from `animations.liveBar` / the
|
|
197
|
+
* `animLiveBar` feature; this is only the on/off switch the settings dialog shows. */
|
|
198
|
+
animateLastPrice: boolean;
|
|
195
199
|
};
|
|
196
200
|
/** Stacked-pane chrome — the draggable line between an indicator's pane and the one above it. */
|
|
197
201
|
panes: {
|
|
@@ -407,6 +411,8 @@ declare class NativeRenderer implements IChartRenderer {
|
|
|
407
411
|
private liveRegion;
|
|
408
412
|
private animZoom;
|
|
409
413
|
private animPan;
|
|
414
|
+
private animLiveBarMs;
|
|
415
|
+
private animLiveBarOnMs;
|
|
410
416
|
private candleUp;
|
|
411
417
|
private candleDown;
|
|
412
418
|
private introStyle;
|
|
@@ -648,6 +654,9 @@ declare class NativeRenderer implements IChartRenderer {
|
|
|
648
654
|
preserveView?: boolean;
|
|
649
655
|
}): void;
|
|
650
656
|
updateBar(bar: OHLCV): void;
|
|
657
|
+
/** Set the live-bar glide duration (0 = off). A non-zero value is also remembered as
|
|
658
|
+
* what the config's on/off toggle (`priceScale.animateLastPrice`) switches back on to. */
|
|
659
|
+
private setLiveBarEase;
|
|
651
660
|
/** Snap the eased forming-bar state to `bar` — no glide (a fresh bar or the first tick of one). */
|
|
652
661
|
private syncLiveEase;
|
|
653
662
|
/** Glide the forming bar's displayed high/low/close toward the actual latest. Returns true while easing. */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { D as DrawingsDocument, R as Resolved } from './contributions-
|
|
2
|
-
export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, y as PreparedScript, z as RendererControl, A as RunIndicatorResult, G as SceneInspection, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, $ as TypedEventBus, V as Vela, a0 as VelaDeps, a1 as VelaEventMap, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, a9 as nativeIndicatorDescriptors, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-
|
|
3
|
-
import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, s as DataWindowReadout, t as IDrawingsRendererPort, u as Millis, v as SnapMode, w as DrawingTypeKey, x as ToolbarDefinition, M as MarketConfig } from './options-
|
|
4
|
-
export { y as AddIndicatorOptions, B as Background,
|
|
5
|
-
import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-
|
|
6
|
-
export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-
|
|
1
|
+
import { D as DrawingsDocument, R as Resolved } from './contributions-Swzz10fG.js';
|
|
2
|
+
export { B as BarsChangeReason, C as CellStateContext, b as ContextSelect, c as DataControl, d as DrawingsControl, e as EngineAlert, f as EngineCapabilities, g as EngineContextSnapshot, h as EngineFactory, i as EngineWarning, j as ExecutionHandlers, k as ExecutionMarket, l as ExecutionRequest, m as ExecutionSession, E as ExternalIndicatorEntry, F as FetchSeries, n as IndicatorEventMap, I as IndicatorHandle, o as IndicatorSummary, L as LegendActionDescriptor, p as LegendCalloutContent, q as LegendCalloutDescriptor, r as LegendCalloutItem, s as LegendCalloutSpec, t as LegendIndicatorInfo, N as NativeIndicator, u as NativeIndicatorContext, v as NativeIndicatorDescriptor, w as NativeIndicatorInfo, x as NativeIndicatorOutput, O as OVERRIDABLE_TOPBAR_IDS, P as ParsedSymbol, y as PreparedScript, z as RendererControl, A as RunIndicatorResult, G as SceneInspection, a as ScriptRun, H as ScriptRunCause, J as ScriptRunResult, S as ScriptingEngine, K as SidePanelButton, M as SidePanelDescriptor, Q as SidePanelHandle, T as SidePanelHeader, U as StatePersistenceHandler, X as StrategyFill, Y as StrategyState, Z as StrategyTrade, _ as SymbolRankingHook, $ as TypedEventBus, V as Vela, a0 as VelaDeps, a1 as VelaEventMap, a2 as VisibleBarRange, a3 as WidgetActionDescriptor, a4 as WidgetActionTarget, a5 as WidgetAttachment, W as WidgetContext, a6 as getNativeIndicator, a7 as legendActions, a8 as legendCallouts, a9 as nativeIndicatorDescriptors, aa as nativeIndicatorTypes, ab as registerDefaultEngine, ac as registerLegendAction, ad as registerLegendCallout, ae as registerNativeIndicator, af as registerSidePanel, ag as registerStatePersistence, ah as registerSymbolRanking, ai as registerWidgetAction, aj as registerWidgetAttachment, ak as resolveEngines, al as sidePanels, am as statePersistenceHandlers, an as symbolRanking, ao as topbarActionOverride, ap as unregisterDefaultEngine, aq as unregisterLegendAction, ar as unregisterLegendCallout, as as unregisterNativeIndicator, at as unregisterSidePanel, au as unregisterStatePersistence, av as unregisterWidgetAction, aw as unregisterWidgetAttachment, ax as widgetActions, ay as widgetAttachments } from './contributions-Swzz10fG.js';
|
|
3
|
+
import { D as Drawing, S as SerializedDrawing, U as Unsubscribe, L as LineStyle, P as PriceStyle, e as IChartRenderer, R as RendererCapabilities, f as RendererDisplayOptions, g as IndicatorRenderHandle, h as IndicatorStatus, c as VelaTheme, O as OHLCV, i as Pane, j as PaneAction, k as MoveTarget, l as IndicatorModel, m as ScenePatch, I as InputValue, n as SymbolPickerFn, o as LegendActionView, p as LegendCalloutView, q as InputChangeEvent, T as ThemeName, C as CrosshairEvent, r as ClickEvent, A as AxisLongPressEvent, a as VisibleRange, s as DataWindowReadout, t as IDrawingsRendererPort, u as Millis, v as SnapMode, w as DrawingTypeKey, x as ToolbarDefinition, M as MarketConfig } from './options-CX1lSYWA.js';
|
|
4
|
+
export { y as AddIndicatorOptions, z as AnimationConfig, B as Background, E as BoxFontFamily, F as BoxHAlign, G as BoxTextSize, H as BoxVAlign, J as CandleBarColor, K as CandleSeries, Q as CandleStyle, W as DataWindowGroup, X as DataWindowOHLC, Y as DataWindowRow, Z as DirtyRange, _ as DrawingBox, $ as DrawingExtend, a0 as DrawingIntent, a1 as DrawingLabel, a2 as DrawingLine, a3 as DrawingLinefill, a4 as DrawingMode, a5 as DrawingPoint, a6 as DrawingPolyline, a7 as DrawingSeriesBar, a8 as DrawingSeriesGateway, a9 as DrawingSeriesState, aa as DrawingStyle, ab as DrawingTable, ac as DrawingText, ad as DrawingXLoc, ae as DrawingsOption, af as Fill, ag as FillGradientStop, ah as IndicatorMeta, ai as InputCondition, aj as InputSchema, ak as InputType, al as InputWhen, am as LabelStyle, an as LabelYLoc, ao as LineLikeKind, ap as LineLikeSeries, aq as LineLikeStyle, ar as MarkerPoint, as as MarkerSeries, at as MarketSnapshot, au as MarketSwitch, av as PaneAxis, aw as PaneAxisBand, ax as PaneHint, ay as PaneKind, az as PolylinePoint, aA as PriceLine, aB as Projector, aC as ProviderName, aD as RendererConstructor, aE as Scene, aF as SchemaPatch, aG as SeriesKind, aH as SeriesPoint, aI as SeriesSpec, aJ as SeriesValueDelta, aK as SettingsField, aL as SettingsSchema, aM as SettingsVisibilityPolicy, aN as TableCell, aO as TableMerge, aP as TablePosition, aQ as ToolbarGroupConfig, aR as TradeExecution, aS as ValuePatch, b as VelaOptions, V as VisibleRangePreset, aT as buildToolbar, aU as defaultToolbar, aV as inputDeltas, aW as inputVisible } from './options-CX1lSYWA.js';
|
|
5
|
+
import { M as MarketDataFeed, D as DataProvider, P as ProviderInfo, a as SymbolDescriptor, S as SymbolInfo, b as ProviderCapabilities, B as BarRange } from './DataProvider-B-Jz59Rf.js';
|
|
6
|
+
export { A as ACCENT, a as ACCENT_BRIGHT, B as BEARISH, b as BULLISH, c as BarTransform, d as BasePaintingModulation, C as CATEGORICAL, e as CHIP_PLATE, f as CROSSHAIR, g as ChartTypeDefinition, h as ChartTypeSettingsInstance, i as ChartTypeSettingsSection, j as ChartTypeSettingsSubsection, D as DrawingTypeMeta, H as HIGHLIGHT, I as INFO, k as INVALID, l as IdentifiableKind, M as MARKER, N as NEUTRAL, m as NormalizedSettingsRow, R as RendererLayerArgs, n as RendererLayerDefinition, o as RendererLayerInstance, S as SERIES_LINE, p as SESSION_OFF, q as SESSION_POST, r as SESSION_PRE, s as SLATE, t as SLATE_DEEP, u as SeriesDataEngine, v as SeriesDataEngineHost, w as SettingsInlineControl, x as SettingsRowCondition, y as SettingsRowDescriptor, z as SettingsRowInlineNumber, E as SettingsRowSwatch, F as SettingsRowValueKey, G as SettingsRowWhen, J as SettingsRowWidth, K as SettingsSelectOption, L as SettingsValueRow, T as TRADE_EXIT, O as TRADE_LONG, P as TRADE_SHORT, V as VALID, W as WARNING, Q as categoricalColor, U as chartType, X as chartTypes, Y as createDrawing, Z as deserializeDrawing, _ as drawingTypes, $ as getDrawingType, a0 as normalizeSettingsRow, a1 as registerChartType, a2 as registerDrawingType, a3 as registerRendererDefaults, a4 as registerRendererLayer, a5 as rendererDefaults, a6 as rendererLayers, a7 as settingsRowValueKeys, a8 as stableSeriesId, a9 as tickerModifierIds, aa as unregisterChartType, ab as unregisterRendererDefaults, ac as unregisterRendererLayer } from './plugin-mvddudqd.js';
|
|
7
7
|
export { 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-HF0IAzwf.js';
|
|
8
8
|
export { i as iconMarkup, r as registerIcon } from './icons-BZYbJXSV.js';
|
|
9
9
|
export { a as KeyBindingDescriptor, R as ResolvedBinding } from './keymap-CGOz5F5f.js';
|
|
@@ -192,6 +192,10 @@ interface ChartConfig {
|
|
|
192
192
|
currentPriceLine: boolean;
|
|
193
193
|
priceLabel: boolean;
|
|
194
194
|
countdown: boolean;
|
|
195
|
+
/** Glide the forming bar (and the last-price line/label) toward each live tick
|
|
196
|
+
* instead of snapping. The duration comes from `animations.liveBar` / the
|
|
197
|
+
* `animLiveBar` feature; this is only the on/off switch the settings dialog shows. */
|
|
198
|
+
animateLastPrice: boolean;
|
|
195
199
|
};
|
|
196
200
|
/** Stacked-pane chrome — the draggable line between an indicator's pane and the one above it. */
|
|
197
201
|
panes: {
|
|
@@ -407,6 +411,8 @@ declare class NativeRenderer implements IChartRenderer {
|
|
|
407
411
|
private liveRegion;
|
|
408
412
|
private animZoom;
|
|
409
413
|
private animPan;
|
|
414
|
+
private animLiveBarMs;
|
|
415
|
+
private animLiveBarOnMs;
|
|
410
416
|
private candleUp;
|
|
411
417
|
private candleDown;
|
|
412
418
|
private introStyle;
|
|
@@ -648,6 +654,9 @@ declare class NativeRenderer implements IChartRenderer {
|
|
|
648
654
|
preserveView?: boolean;
|
|
649
655
|
}): void;
|
|
650
656
|
updateBar(bar: OHLCV): void;
|
|
657
|
+
/** Set the live-bar glide duration (0 = off). A non-zero value is also remembered as
|
|
658
|
+
* what the config's on/off toggle (`priceScale.animateLastPrice`) switches back on to. */
|
|
659
|
+
private setLiveBarEase;
|
|
651
660
|
/** Snap the eased forming-bar state to `bar` — no glide (a fresh bar or the first tick of one). */
|
|
652
661
|
private syncLiveEase;
|
|
653
662
|
/** Glide the forming bar's displayed high/low/close toward the actual latest. Returns true while easing. */
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import './chunk-FE6V2YAQ.js';
|
|
2
|
-
export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-
|
|
3
|
-
export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, CHIP_PLATE, CROSSHAIR, HIGHLIGHT, INFO, INVALID, MARKER, NEUTRAL, SERIES_LINE, SESSION_OFF, SESSION_POST, SESSION_PRE, SLATE, SLATE_DEEP, TRADE_EXIT, TRADE_LONG, TRADE_SHORT, VALID, WARNING, categoricalColor, iconMarkup, registerIcon } from './chunk-
|
|
2
|
+
export { BarStore, CachingDataFeed, DARK_THEME, DataControl, DrawingStore, DrawingToolbar, DrawingsControl, LIGHT_THEME, MultiProviderFeed, NativeRenderer, RendererControl, TypedEventBus, Vela, buildToolbar, defaultToolbar, resolveTheme, sharedBarStore, timeframeToMs } from './chunk-YCD72KGK.js';
|
|
3
|
+
export { DEFAULT_PANEL_MAX_WIDTH, DEFAULT_PANEL_MIN_WIDTH, DEFAULT_PANEL_WIDTH, Drawing, OVERRIDABLE_TOPBAR_IDS, chartType, chartTypes, clampPanelWidth, createDrawing, deserializeDrawing, drawingTypes, getDrawingType, getNativeIndicator, inputDeltas, inputVisible, legendActions, legendCallouts, nativeIndicatorDescriptors, nativeIndicatorTypes, normalizeSettingsRow, registerChartType, registerDefaultEngine, registerDrawingType, registerLegendAction, registerLegendCallout, registerNativeIndicator, registerRendererDefaults, registerRendererLayer, registerSidePanel, registerStatePersistence, registerSymbolRanking, registerWidgetAction, registerWidgetAttachment, rendererDefaults, rendererLayers, resolveEngines, settingsRowValueKeys, sidePanels, stableSeriesId, statePersistenceHandlers, symbolRanking, tickerModifierIds, topbarActionOverride, unregisterChartType, unregisterDefaultEngine, unregisterLegendAction, unregisterLegendCallout, unregisterNativeIndicator, unregisterRendererDefaults, unregisterRendererLayer, unregisterSidePanel, unregisterStatePersistence, unregisterWidgetAction, unregisterWidgetAttachment, widgetActions, widgetAttachments } from './chunk-IFJJPXSV.js';
|
|
4
|
+
import './chunk-T5Z5YUCF.js';
|
|
5
|
+
export { ACCENT, ACCENT_BRIGHT, BEARISH, BULLISH, CATEGORICAL, CHIP_PLATE, CROSSHAIR, HIGHLIGHT, INFO, INVALID, MARKER, NEUTRAL, SERIES_LINE, SESSION_OFF, SESSION_POST, SESSION_PRE, SLATE, SLATE_DEEP, TRADE_EXIT, TRADE_LONG, TRADE_SHORT, VALID, WARNING, categoricalColor, iconMarkup, registerIcon } from './chunk-CAFCLMPF.js';
|
|
@@ -1728,7 +1728,9 @@ interface VelaOptions extends MarketConfig {
|
|
|
1728
1728
|
nativeBackend?: NativeBackend;
|
|
1729
1729
|
/** Native-renderer animations. `true`/`false` toggles all; an object configures
|
|
1730
1730
|
* each independently. Default: eased **zoom on**, inertial **pan on but snappy**
|
|
1731
|
-
* (short glide)
|
|
1731
|
+
* (short glide), live-bar glide **off**. Set `{ pan: false }` for an instant pan
|
|
1732
|
+
* with no momentum, `{ liveBar: true }` (or a duration in ms) to make the forming
|
|
1733
|
+
* candle slide toward each live tick instead of snapping. */
|
|
1732
1734
|
animations?: boolean | AnimationConfig;
|
|
1733
1735
|
/** Neon glow/bloom intensity for line series (0 = off, ~0.6 = strong). WebGL2 only
|
|
1734
1736
|
* — the canvas2d backend ignores it. Default 0. */
|
|
@@ -1769,6 +1771,13 @@ interface AnimationConfig {
|
|
|
1769
1771
|
zoom?: boolean;
|
|
1770
1772
|
/** Inertial/kinetic pan — a short snappy glide after a drag-release. Default true. */
|
|
1771
1773
|
pan?: boolean;
|
|
1774
|
+
/** Glide of the forming bar: on a live tick the displayed high/low/close ease toward
|
|
1775
|
+
* the new values instead of snapping (the price line and axis label follow). `true`
|
|
1776
|
+
* uses the default duration ({@link LIVE_BAR_EASE_DEFAULT_MS}); a number is the ease
|
|
1777
|
+
* time-constant in ms (visually settled after ~3×; clamped to
|
|
1778
|
+
* {@link LIVE_BAR_EASE_MAX_MS}); `false`/`0` snaps. A new bar always snaps. Default
|
|
1779
|
+
* `false` — the painted candle is then never behind the real data. */
|
|
1780
|
+
liveBar?: boolean | number;
|
|
1772
1781
|
}
|
|
1773
1782
|
/** Native geometry-layer backend selection. */
|
|
1774
1783
|
type NativeBackend = 'auto' | 'canvas2d' | 'webgl2';
|
|
@@ -1788,6 +1797,7 @@ interface RendererDisplayOptions {
|
|
|
1788
1797
|
nativeBackend: NativeBackend;
|
|
1789
1798
|
animZoom: boolean;
|
|
1790
1799
|
animPan: boolean;
|
|
1800
|
+
animLiveBar: number;
|
|
1791
1801
|
glow: number;
|
|
1792
1802
|
upColor: string;
|
|
1793
1803
|
downColor: string;
|
|
@@ -1841,4 +1851,4 @@ interface AddIndicatorOptions {
|
|
|
1841
1851
|
title?: string;
|
|
1842
1852
|
}
|
|
1843
1853
|
|
|
1844
|
-
export { type
|
|
1854
|
+
export { type DrawingExtend as $, type AxisLongPressEvent as A, type Background as B, type CrosshairEvent as C, Drawing as D, type BoxFontFamily as E, type BoxHAlign as F, type BoxTextSize as G, type BoxVAlign as H, type InputValue as I, type CandleBarColor as J, type CandleSeries as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type CandleStyle as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DataWindowGroup as W, type DataWindowOHLC as X, type DataWindowRow as Y, type DirtyRange as Z, type DrawingBox as _, type VisibleRange as a, type DrawingIntent as a0, type DrawingLabel as a1, type DrawingLine as a2, type DrawingLinefill as a3, type DrawingMode as a4, type DrawingPoint as a5, type DrawingPolyline as a6, type DrawingSeriesBar as a7, type DrawingSeriesGateway as a8, type DrawingSeriesState as a9, type PriceLine as aA, type Projector as aB, type ProviderName as aC, type RendererConstructor as aD, type Scene as aE, type SchemaPatch as aF, type SeriesKind as aG, type SeriesPoint as aH, type SeriesSpec as aI, type SeriesValueDelta as aJ, type SettingsField as aK, type SettingsSchema as aL, type SettingsVisibilityPolicy as aM, type TableCell as aN, type TableMerge as aO, type TablePosition as aP, type ToolbarGroupConfig as aQ, type TradeExecution as aR, type ValuePatch as aS, buildToolbar as aT, defaultToolbar as aU, inputDeltas as aV, inputVisible as aW, type PaneInfo as aX, type DrawingStyle as aa, type DrawingTable as ab, type DrawingText as ac, type DrawingXLoc as ad, type DrawingsOption as ae, type Fill as af, type FillGradientStop as ag, type IndicatorMeta as ah, type InputCondition as ai, type InputSchema as aj, type InputType as ak, type InputWhen as al, type LabelStyle as am, type LabelYLoc as an, type LineLikeKind as ao, type LineLikeSeries as ap, type LineLikeStyle as aq, type MarkerPoint as ar, type MarkerSeries as as, type MarketSnapshot as at, type MarketSwitch as au, type PaneAxis as av, type PaneAxisBand as aw, type PaneHint as ax, type PaneKind as ay, type PolylinePoint as az, type VelaOptions as b, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type DataWindowReadout as s, type IDrawingsRendererPort as t, type Millis as u, type SnapMode as v, type DrawingTypeKey as w, type ToolbarDefinition as x, type AddIndicatorOptions as y, type AnimationConfig as z };
|
|
@@ -1728,7 +1728,9 @@ interface VelaOptions extends MarketConfig {
|
|
|
1728
1728
|
nativeBackend?: NativeBackend;
|
|
1729
1729
|
/** Native-renderer animations. `true`/`false` toggles all; an object configures
|
|
1730
1730
|
* each independently. Default: eased **zoom on**, inertial **pan on but snappy**
|
|
1731
|
-
* (short glide)
|
|
1731
|
+
* (short glide), live-bar glide **off**. Set `{ pan: false }` for an instant pan
|
|
1732
|
+
* with no momentum, `{ liveBar: true }` (or a duration in ms) to make the forming
|
|
1733
|
+
* candle slide toward each live tick instead of snapping. */
|
|
1732
1734
|
animations?: boolean | AnimationConfig;
|
|
1733
1735
|
/** Neon glow/bloom intensity for line series (0 = off, ~0.6 = strong). WebGL2 only
|
|
1734
1736
|
* — the canvas2d backend ignores it. Default 0. */
|
|
@@ -1769,6 +1771,13 @@ interface AnimationConfig {
|
|
|
1769
1771
|
zoom?: boolean;
|
|
1770
1772
|
/** Inertial/kinetic pan — a short snappy glide after a drag-release. Default true. */
|
|
1771
1773
|
pan?: boolean;
|
|
1774
|
+
/** Glide of the forming bar: on a live tick the displayed high/low/close ease toward
|
|
1775
|
+
* the new values instead of snapping (the price line and axis label follow). `true`
|
|
1776
|
+
* uses the default duration ({@link LIVE_BAR_EASE_DEFAULT_MS}); a number is the ease
|
|
1777
|
+
* time-constant in ms (visually settled after ~3×; clamped to
|
|
1778
|
+
* {@link LIVE_BAR_EASE_MAX_MS}); `false`/`0` snaps. A new bar always snaps. Default
|
|
1779
|
+
* `false` — the painted candle is then never behind the real data. */
|
|
1780
|
+
liveBar?: boolean | number;
|
|
1772
1781
|
}
|
|
1773
1782
|
/** Native geometry-layer backend selection. */
|
|
1774
1783
|
type NativeBackend = 'auto' | 'canvas2d' | 'webgl2';
|
|
@@ -1788,6 +1797,7 @@ interface RendererDisplayOptions {
|
|
|
1788
1797
|
nativeBackend: NativeBackend;
|
|
1789
1798
|
animZoom: boolean;
|
|
1790
1799
|
animPan: boolean;
|
|
1800
|
+
animLiveBar: number;
|
|
1791
1801
|
glow: number;
|
|
1792
1802
|
upColor: string;
|
|
1793
1803
|
downColor: string;
|
|
@@ -1841,4 +1851,4 @@ interface AddIndicatorOptions {
|
|
|
1841
1851
|
title?: string;
|
|
1842
1852
|
}
|
|
1843
1853
|
|
|
1844
|
-
export { type
|
|
1854
|
+
export { type DrawingExtend as $, type AxisLongPressEvent as A, type Background as B, type CrosshairEvent as C, Drawing as D, type BoxFontFamily as E, type BoxHAlign as F, type BoxTextSize as G, type BoxVAlign as H, type InputValue as I, type CandleBarColor as J, type CandleSeries as K, type LineStyle as L, type MarketConfig as M, type NativeBackend as N, type OHLCV as O, type PriceStyle as P, type CandleStyle as Q, type RendererCapabilities as R, type SerializedDrawing as S, type ThemeName as T, type Unsubscribe as U, type VisibleRangePreset as V, type DataWindowGroup as W, type DataWindowOHLC as X, type DataWindowRow as Y, type DirtyRange as Z, type DrawingBox as _, type VisibleRange as a, type DrawingIntent as a0, type DrawingLabel as a1, type DrawingLine as a2, type DrawingLinefill as a3, type DrawingMode as a4, type DrawingPoint as a5, type DrawingPolyline as a6, type DrawingSeriesBar as a7, type DrawingSeriesGateway as a8, type DrawingSeriesState as a9, type PriceLine as aA, type Projector as aB, type ProviderName as aC, type RendererConstructor as aD, type Scene as aE, type SchemaPatch as aF, type SeriesKind as aG, type SeriesPoint as aH, type SeriesSpec as aI, type SeriesValueDelta as aJ, type SettingsField as aK, type SettingsSchema as aL, type SettingsVisibilityPolicy as aM, type TableCell as aN, type TableMerge as aO, type TablePosition as aP, type ToolbarGroupConfig as aQ, type TradeExecution as aR, type ValuePatch as aS, buildToolbar as aT, defaultToolbar as aU, inputDeltas as aV, inputVisible as aW, type PaneInfo as aX, type DrawingStyle as aa, type DrawingTable as ab, type DrawingText as ac, type DrawingXLoc as ad, type DrawingsOption as ae, type Fill as af, type FillGradientStop as ag, type IndicatorMeta as ah, type InputCondition as ai, type InputSchema as aj, type InputType as ak, type InputWhen as al, type LabelStyle as am, type LabelYLoc as an, type LineLikeKind as ao, type LineLikeSeries as ap, type LineLikeStyle as aq, type MarkerPoint as ar, type MarkerSeries as as, type MarketSnapshot as at, type MarketSwitch as au, type PaneAxis as av, type PaneAxisBand as aw, type PaneHint as ax, type PaneKind as ay, type PolylinePoint as az, type VelaOptions as b, type VelaTheme as c, type MarketSession as d, type IChartRenderer as e, type RendererDisplayOptions as f, type IndicatorRenderHandle as g, type IndicatorStatus as h, type Pane as i, type PaneAction as j, type MoveTarget as k, type IndicatorModel as l, type ScenePatch as m, type SymbolPickerFn as n, type LegendActionView as o, type LegendCalloutView as p, type InputChangeEvent as q, type ClickEvent as r, type DataWindowReadout as s, type IDrawingsRendererPort as t, type Millis as u, type SnapMode as v, type DrawingTypeKey as w, type ToolbarDefinition as x, type AddIndicatorOptions as y, type AnimationConfig as z };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { w as DrawingTypeKey,
|
|
2
|
-
import { c as DataControl } from './contributions-
|
|
1
|
+
import { w as DrawingTypeKey, aa as DrawingStyle, S as SerializedDrawing, D as Drawing, aG as SeriesKind, O as OHLCV, c as VelaTheme } from './options-CX1lSYWA.cjs';
|
|
2
|
+
import { c as DataControl } from './contributions-C3b0Sx5P.cjs';
|
|
3
3
|
import './side-panel-HF0IAzwf.cjs';
|
|
4
4
|
import './icons-BZYbJXSV.cjs';
|
|
5
5
|
import './keymap-CGOz5F5f.cjs';
|
|
6
|
-
import './DataProvider-
|
|
6
|
+
import './DataProvider-OfR3fXg9.cjs';
|
|
7
7
|
|
|
8
8
|
/** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
|
|
9
9
|
interface DrawingTypeMeta {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { w as DrawingTypeKey,
|
|
2
|
-
import { c as DataControl } from './contributions-
|
|
1
|
+
import { w as DrawingTypeKey, aa as DrawingStyle, S as SerializedDrawing, D as Drawing, aG as SeriesKind, O as OHLCV, c as VelaTheme } from './options-CX1lSYWA.js';
|
|
2
|
+
import { c as DataControl } from './contributions-Swzz10fG.js';
|
|
3
3
|
import './side-panel-HF0IAzwf.js';
|
|
4
4
|
import './icons-BZYbJXSV.js';
|
|
5
5
|
import './keymap-CGOz5F5f.js';
|
|
6
|
-
import './DataProvider-
|
|
6
|
+
import './DataProvider-B-Jz59Rf.js';
|
|
7
7
|
|
|
8
8
|
/** What a drawing type contributes to the toolbar + factory (renderer-neutral). */
|
|
9
9
|
interface DrawingTypeMeta {
|