@luxalgo/vela 0.7.7 → 0.7.8
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/NOTICE +28 -28
- package/dist/{chunk-ZA2XWTGH.js → chunk-M6GP7DAX.js} +41 -7
- package/dist/{chunk-RVQWJOEE.js → chunk-N4ZZYLMP.js} +2179 -786
- package/dist/index.cjs +2176 -783
- package/dist/index.d.cts +19 -3
- package/dist/index.d.ts +19 -3
- package/dist/index.js +1 -1
- package/dist/{plugin-DPyVJFoA.d.cts → plugin-6F04gjQe.d.cts} +22 -22
- package/dist/{plugin-0oFDnexb.d.ts → plugin-BLsNipkc.d.ts} +22 -22
- package/dist/plugin.d.cts +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/vela.global.js +2176 -783
- package/dist/vela.global.min.js +54 -54
- package/dist/widget.cjs +2216 -789
- package/dist/widget.js +3 -3
- package/dist/workspace.cjs +2216 -789
- package/dist/workspace.d.cts +2 -0
- package/dist/workspace.d.ts +2 -0
- package/dist/workspace.js +2 -2
- package/package.json +1 -1
package/NOTICE
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
Vela
|
|
2
|
-
Copyright (c) 2026 LuxAlgo
|
|
3
|
-
https://luxalgo.com/vela
|
|
4
|
-
|
|
5
|
-
This product includes the Vela charting library, developed by LuxAlgo.
|
|
6
|
-
|
|
7
|
-
ATTRIBUTION REQUIREMENT
|
|
8
|
-
|
|
9
|
-
Any product, website, or application that displays charts rendered by this
|
|
10
|
-
software must show a visible attribution to the Vela project on every page or
|
|
11
|
-
screen where such a chart is displayed.
|
|
12
|
-
|
|
13
|
-
The library satisfies this requirement automatically: it renders an attribution
|
|
14
|
-
mark (the project logomark linking to the Vela project page) on the chart
|
|
15
|
-
itself, enabled by default. You may restyle or reposition this mark to fit your
|
|
16
|
-
design.
|
|
17
|
-
|
|
18
|
-
You may disable the built-in mark (renderer feature `attribution`) ONLY if you
|
|
19
|
-
display an equivalent visible attribution — the name "Vela" together with a
|
|
20
|
-
link to the project page above — elsewhere on the same page or screen, in a
|
|
21
|
-
place available to your users.
|
|
22
|
-
|
|
23
|
-
Removing, hiding, or obscuring the attribution without providing the
|
|
24
|
-
equivalent notice described above is not permitted.
|
|
25
|
-
|
|
26
|
-
This file constitutes the NOTICE file described in Section 4(d) of the Apache
|
|
27
|
-
License, Version 2.0: redistributions of this software, in source or binary
|
|
28
|
-
form, must include a readable copy of these attribution notices.
|
|
1
|
+
Vela
|
|
2
|
+
Copyright (c) 2026 LuxAlgo
|
|
3
|
+
https://luxalgo.com/vela
|
|
4
|
+
|
|
5
|
+
This product includes the Vela charting library, developed by LuxAlgo.
|
|
6
|
+
|
|
7
|
+
ATTRIBUTION REQUIREMENT
|
|
8
|
+
|
|
9
|
+
Any product, website, or application that displays charts rendered by this
|
|
10
|
+
software must show a visible attribution to the Vela project on every page or
|
|
11
|
+
screen where such a chart is displayed.
|
|
12
|
+
|
|
13
|
+
The library satisfies this requirement automatically: it renders an attribution
|
|
14
|
+
mark (the project logomark linking to the Vela project page) on the chart
|
|
15
|
+
itself, enabled by default. You may restyle or reposition this mark to fit your
|
|
16
|
+
design.
|
|
17
|
+
|
|
18
|
+
You may disable the built-in mark (renderer feature `attribution`) ONLY if you
|
|
19
|
+
display an equivalent visible attribution — the name "Vela" together with a
|
|
20
|
+
link to the project page above — elsewhere on the same page or screen, in a
|
|
21
|
+
place available to your users.
|
|
22
|
+
|
|
23
|
+
Removing, hiding, or obscuring the attribution without providing the
|
|
24
|
+
equivalent notice described above is not permitted.
|
|
25
|
+
|
|
26
|
+
This file constitutes the NOTICE file described in Section 4(d) of the Apache
|
|
27
|
+
License, Version 2.0: redistributions of this software, in source or binary
|
|
28
|
+
form, must include a readable copy of these attribution notices.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseSymbol, priceStyleIds, BUILTIN_PRICE_STYLES, tzButtonLabel, SecondClock, resolveTimezone, timezoneMenuRows, isGroupRow, defaultMemberOf, groupKeyOf, groupMembers, LEGEND_AT_TOP_ATTR, normalizeSession, Vela, normalizeTimezone, TypedEventBus, MultiProviderFeed, registerBuiltinChartTypes, resolveTheme, buildToolbar, createCustomMark, createAttributionMark, DrawingToolbar, applyAttributionMarkTheme, sharedBarStore, timeframeToMs } from './chunk-
|
|
1
|
+
import { parseSymbol, priceStyleIds, BUILTIN_PRICE_STYLES, tzButtonLabel, SecondClock, resolveTimezone, timezoneMenuRows, isGroupRow, defaultMemberOf, groupKeyOf, groupMembers, LEGEND_AT_TOP_ATTR, normalizeSession, Vela, normalizeTimezone, isExchangeTimezone, TypedEventBus, MultiProviderFeed, registerBuiltinChartTypes, resolveTheme, buildToolbar, createCustomMark, createAttributionMark, DrawingToolbar, applyAttributionMarkTheme, sharedBarStore, timeframeToMs } from './chunk-N4ZZYLMP.js';
|
|
2
2
|
import { chartType, resolveTopbarComposition, topbarActionOverride, TOPBAR_BUILTIN_IDS, widgetActions, SidePanel, sidePanels, DEFAULT_PANEL_ORDER, symbolRanking, resolveEngines, legendActionsProviderFor, legendCalloutsProviderFor, statePersistenceHandlers, topbarHas, rendererDefaults, widgetAttachments, getDrawingType, inputDeltas } from './chunk-BFA32GOU.js';
|
|
3
3
|
import { Tooltip, KeymapManager, isEditableTarget, Drawer } from './chunk-PVGWNF7V.js';
|
|
4
4
|
import { Menu, Dialog, CalloutBubble, applyPlotOverlayTokens, ensureUIHost } from './chunk-WTWGEB7K.js';
|
|
@@ -5569,6 +5569,8 @@ var ChartCell = class {
|
|
|
5569
5569
|
this.activeRangeId = null;
|
|
5570
5570
|
/** Latched verdict of {@link sessionAvailable} (async metadata, sticky per symbol). */
|
|
5571
5571
|
this.sessionAvailableFlag = false;
|
|
5572
|
+
/** The symbol of the most recent metadata probe — an older one landing late is dropped. */
|
|
5573
|
+
this.metadataProbeSymbol = null;
|
|
5572
5574
|
/** Latched: the symbol's extended tape wraps midnight (an overnight roll market) —
|
|
5573
5575
|
* one extended-hours shading phase instead of the pre/post split. */
|
|
5574
5576
|
this.sessionOvernightFlag = false;
|
|
@@ -5637,7 +5639,11 @@ var ChartCell = class {
|
|
|
5637
5639
|
nativeBackend: deps.nativeBackend,
|
|
5638
5640
|
// The user's drawings option minus its toolbar: one SHARED bar serves
|
|
5639
5641
|
// the whole workspace (per-cell bars would cost a 44px gutter each).
|
|
5640
|
-
drawings: cellDrawings(deps.chartDefaults.drawings)
|
|
5642
|
+
drawings: cellDrawings(deps.chartDefaults.drawings),
|
|
5643
|
+
// The renderer's own Time zone row edits a resolved IANA zone; the cell
|
|
5644
|
+
// contributes the workspace picker instead (`time-zone`, with the
|
|
5645
|
+
// exchange rule — see pushSettingsSections).
|
|
5646
|
+
settings: { ...deps.chartDefaults.settings, hidden: [...deps.chartDefaults.settings?.hidden ?? [], "symbol.timezone"] }
|
|
5641
5647
|
},
|
|
5642
5648
|
{ dataFeed: deps.feed }
|
|
5643
5649
|
);
|
|
@@ -5686,7 +5692,10 @@ var ChartCell = class {
|
|
|
5686
5692
|
const list = providers.length > 0 ? providers.join(", ") : "none";
|
|
5687
5693
|
this.deps.toast(`No registered provider serves "${symbol2}" (registered: ${list})`, "error", 6e3);
|
|
5688
5694
|
});
|
|
5689
|
-
this.inner.on("load:start", () =>
|
|
5695
|
+
this.inner.on("load:start", ({ symbol: symbol2 }) => {
|
|
5696
|
+
this.watermark?.setLoading(true);
|
|
5697
|
+
this.refreshSymbolMetadata(symbol2);
|
|
5698
|
+
});
|
|
5690
5699
|
this.inner.on("load:end", () => {
|
|
5691
5700
|
this.watermark?.setLoading(false);
|
|
5692
5701
|
this.refreshSessionShading();
|
|
@@ -5857,12 +5866,19 @@ var ChartCell = class {
|
|
|
5857
5866
|
}
|
|
5858
5867
|
/** Re-read the symbol's metadata: session posture (RTH/ETH toggle, shading) and its
|
|
5859
5868
|
* trading zone (the exchange rule). Async — the workspace re-projects when a verdict lands. */
|
|
5860
|
-
refreshSymbolMetadata() {
|
|
5869
|
+
refreshSymbolMetadata(symbol = this.state.symbol, retry = true) {
|
|
5861
5870
|
const chart = this.inner;
|
|
5862
|
-
const symbol = this.state.symbol;
|
|
5863
5871
|
if (!chart || !symbol) return;
|
|
5872
|
+
this.metadataProbeSymbol = symbol;
|
|
5864
5873
|
void chart.data.symbolInfo(symbol).then((si) => {
|
|
5865
|
-
if (this.inner !== chart) return;
|
|
5874
|
+
if (this.inner !== chart || this.metadataProbeSymbol !== symbol) return;
|
|
5875
|
+
if (si === void 0 && retry) {
|
|
5876
|
+
void chart.data.ready().then(() => {
|
|
5877
|
+
if (this.inner === chart && this.metadataProbeSymbol === symbol) this.refreshSymbolMetadata(symbol, false);
|
|
5878
|
+
});
|
|
5879
|
+
return;
|
|
5880
|
+
}
|
|
5881
|
+
if (this.state.symbol !== symbol) return;
|
|
5866
5882
|
const available = typeof si?.session === "string" && si.session !== "" && si.session !== "24x7";
|
|
5867
5883
|
const overnight = parseSessionSpec(si)?.overnight === true;
|
|
5868
5884
|
const zone = typeof si?.timezone === "string" && si.timezone !== "" ? si.timezone : void 0;
|
|
@@ -5977,6 +5993,24 @@ var ChartCell = class {
|
|
|
5977
5993
|
}
|
|
5978
5994
|
]
|
|
5979
5995
|
};
|
|
5996
|
+
const timezoneSection = {
|
|
5997
|
+
title: "Time zone",
|
|
5998
|
+
id: "time-zone",
|
|
5999
|
+
placement: "symbol",
|
|
6000
|
+
rows: [
|
|
6001
|
+
{
|
|
6002
|
+
kind: "select",
|
|
6003
|
+
label: "Time zone",
|
|
6004
|
+
id: "zone",
|
|
6005
|
+
options: timezoneMenuRows(this.deps.timezone()).map((r) => [r.value, r.label]),
|
|
6006
|
+
get: () => {
|
|
6007
|
+
const choice = this.deps.timezone();
|
|
6008
|
+
return isExchangeTimezone(choice) ? choice : normalizeTimezone(choice);
|
|
6009
|
+
},
|
|
6010
|
+
set: (v) => this.deps.setTimezone(v)
|
|
6011
|
+
}
|
|
6012
|
+
]
|
|
6013
|
+
};
|
|
5980
6014
|
const watermarkSection = {
|
|
5981
6015
|
title: "Watermark",
|
|
5982
6016
|
id: "watermark",
|
|
@@ -6045,7 +6079,7 @@ var ChartCell = class {
|
|
|
6045
6079
|
]
|
|
6046
6080
|
});
|
|
6047
6081
|
}
|
|
6048
|
-
sections.push(advanced);
|
|
6082
|
+
sections.push(advanced, timezoneSection);
|
|
6049
6083
|
if (this.sessionAvailableFlag) sections.push(sessionSection);
|
|
6050
6084
|
sections.push(watermarkSection);
|
|
6051
6085
|
chart.renderer.setSettingsSections(sections);
|