@tradecanvas/core 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/dist/axis/GridRenderer.d.ts.map +1 -1
- package/dist/axis/PriceAxis.d.ts +6 -0
- package/dist/axis/PriceAxis.d.ts.map +1 -1
- package/dist/axis/TimeAxis.d.ts.map +1 -1
- package/dist/drawings/DrawingManager.d.ts +39 -0
- package/dist/drawings/DrawingManager.d.ts.map +1 -1
- package/dist/drawings/tools/AnchoredVWAP.d.ts +7 -0
- package/dist/drawings/tools/AnchoredVWAP.d.ts.map +1 -1
- package/dist/drawings/tools/RiskReward.d.ts +1 -1
- package/dist/engine/LayerManager.d.ts +8 -1
- package/dist/engine/LayerManager.d.ts.map +1 -1
- package/dist/engine/RenderEngine.d.ts +20 -4
- package/dist/engine/RenderEngine.d.ts.map +1 -1
- package/dist/engine/RenderLoop.d.ts.map +1 -1
- package/dist/features/AlertManager.d.ts.map +1 -1
- package/dist/features/MeasureOverlay.d.ts +1 -1
- package/dist/features/MeasureOverlay.d.ts.map +1 -1
- package/dist/features/SelectionBoxOverlay.d.ts +29 -0
- package/dist/features/SelectionBoxOverlay.d.ts.map +1 -0
- package/dist/features/UndoRedoManager.d.ts +3 -1
- package/dist/features/UndoRedoManager.d.ts.map +1 -1
- package/dist/features/index.d.ts +2 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/finance/GaugeRenderer.d.ts +39 -1
- package/dist/finance/GaugeRenderer.d.ts.map +1 -1
- package/dist/index.cjs +7 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2016 -1483
- package/dist/index.js.map +1 -1
- package/dist/indicators/IndicatorEngine.d.ts.map +1 -1
- package/dist/interaction/AxisDragHandler.d.ts +1 -1
- package/dist/interaction/CrosshairHandler.d.ts +1 -1
- package/dist/interaction/CrosshairHandler.d.ts.map +1 -1
- package/dist/interaction/CrosshairTooltip.d.ts +49 -15
- package/dist/interaction/CrosshairTooltip.d.ts.map +1 -1
- package/dist/interaction/InteractionManager.d.ts +20 -1
- package/dist/interaction/InteractionManager.d.ts.map +1 -1
- package/dist/interaction/PanHandler.d.ts +11 -3
- package/dist/interaction/PanHandler.d.ts.map +1 -1
- package/dist/interaction/index.d.ts +2 -1
- package/dist/interaction/index.d.ts.map +1 -1
- package/dist/realtime/CurrentPriceLine.d.ts +1 -0
- package/dist/realtime/CurrentPriceLine.d.ts.map +1 -1
- package/dist/trading/OrderRenderer.d.ts +1 -1
- package/dist/trading/PositionRenderer.d.ts +1 -1
- package/dist/trading/TradingManager.d.ts +4 -2
- package/dist/trading/TradingManager.d.ts.map +1 -1
- package/dist/trading/TradingRenderer.d.ts +1 -1
- package/dist/ui/ChartLegend.d.ts +1 -1
- package/dist/viewport/ScaleMapping.d.ts +20 -4
- package/dist/viewport/ScaleMapping.d.ts.map +1 -1
- package/dist/viewport/Viewport.d.ts +27 -1
- package/dist/viewport/Viewport.d.ts.map +1 -1
- package/dist/viewport/index.d.ts +1 -1
- package/dist/viewport/index.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndicatorEngine.d.ts","sourceRoot":"","sources":["../../src/indicators/IndicatorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACd,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"IndicatorEngine.d.ts","sourceRoot":"","sources":["../../src/indicators/IndicatorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,aAAa,EACd,MAAM,sBAAsB,CAAC;AAY9B,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,SAAS,CAAwC;IAEzD,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAIvC,sBAAsB,IAAI,mBAAmB,EAAE;IAI/C,YAAY,CACV,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAM,EACtD,IAAI,CAAC,EAAE,UAAU,GAChB,MAAM;IA4BT,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIzC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI;IAS/G,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAMtC;;;;;;;;;OASG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAWrD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIrD,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQ5E,WAAW,CACT,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,aAAa,GACtB,IAAI;IAMP,kDAAkD;IAClD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAI9D,qFAAqF;IACrF,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAOhE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItC,sDAAsD;IACtD,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAItE,oEAAoE;IACpE,mBAAmB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE;IAc/I,8DAA8D;IAC9D,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAMtF;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA6BnF,kBAAkB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAA;KAAE,EAAE;CAShF"}
|
|
@@ -2,7 +2,7 @@ import { Point } from '@tradecanvas/commons';
|
|
|
2
2
|
export type AxisScaleCallback = (factor: number) => void;
|
|
3
3
|
export type AxisResetCallback = () => void;
|
|
4
4
|
/**
|
|
5
|
-
* Drag-to-scale handler for price + time axes
|
|
5
|
+
* Drag-to-scale handler for price + time axes.
|
|
6
6
|
*
|
|
7
7
|
* Price axis: drag down compresses (factor > 1, expand price range);
|
|
8
8
|
* drag up expands (factor < 1, compress price range).
|
|
@@ -31,7 +31,7 @@ export declare class CrosshairHandler {
|
|
|
31
31
|
/**
|
|
32
32
|
* Render the axis hover labels — price pill on the right, time pill on the
|
|
33
33
|
* bottom. Called on the UI pass (after the axes) so the badges always sit
|
|
34
|
-
* on top of the static axis labels
|
|
34
|
+
* on top of the static axis labels, with a small notch.
|
|
35
35
|
*
|
|
36
36
|
* `timeAxisY` lets the host place the bottom label at the actual time axis
|
|
37
37
|
* baseline (which moves when bottom panels are open).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrosshairHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAE9C,6EAA6E;IAC7E,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAG/C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,IAAI,CAA2B;IACvC,wEAAwE;IACxE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAGzB,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,oBAAoB,CAAM;IAElC,WAAW,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;IAIxC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI/B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC,OAAO,IAAI,aAAa;IAIxB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,IAAI,KAAK,GAAG,IAAI;IAI3B,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAI/B,cAAc,IAAI,IAAI;IAQtB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"CrosshairHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAE9C,6EAA6E;IAC7E,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAG/C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,IAAI,CAA2B;IACvC,wEAAwE;IACxE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAGzB,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,oBAAoB,CAAM;IAElC,WAAW,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI;IAIxC,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI/B,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKrC,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAKlC,OAAO,IAAI,aAAa;IAIxB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,WAAW,IAAI,KAAK,GAAG,IAAI;IAI3B,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAI/B,cAAc,IAAI,IAAI;IAQtB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAyDlF;;;;;;;OAOG;IACH,gBAAgB,CACd,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IA8CP,0DAA0D;IAC1D,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -1,32 +1,66 @@
|
|
|
1
1
|
import { OHLCBar, Theme, Point } from '@tradecanvas/commons';
|
|
2
|
+
/** Per-show context the chart knows and the bar alone does not. */
|
|
3
|
+
export interface CrosshairTooltipContext {
|
|
4
|
+
/** Previous bar's close: the change is measured from it, like the legend. */
|
|
5
|
+
prevClose?: number;
|
|
6
|
+
/** Visible price range, for picking decimals when no precision is set. */
|
|
7
|
+
priceRange?: {
|
|
8
|
+
min: number;
|
|
9
|
+
max: number;
|
|
10
|
+
};
|
|
11
|
+
/** The plot area: the card stays inside it and flips before the price axis. */
|
|
12
|
+
plot?: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
/** Spacing of the bars in ms: daily-or-larger shows a date, sub-minute adds seconds. */
|
|
19
|
+
barStepMs?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The bar's time as the card shows it, in the chart's timezone: "Mar 4, 2026"
|
|
23
|
+
* for daily-or-larger bars, "Mar 4 · 14:05" for intraday ones and
|
|
24
|
+
* "Mar 4 · 14:05:30" for sub-minute ones. Pass the bar spacing when known:
|
|
25
|
+
* without it, a midnight bar can't be told from a daily one.
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatTooltipTime(rawTime: number, tzOffsetMinutes: number | null, barStepMs?: number): string;
|
|
2
28
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
29
|
+
* Floating OHLCV card that follows the crosshair.
|
|
30
|
+
*
|
|
31
|
+
* The DOM is built once; a hover only rewrites text, and colours are applied
|
|
32
|
+
* again only when the theme changes. It is positioned with a transform so a
|
|
33
|
+
* move never triggers layout.
|
|
6
34
|
*/
|
|
7
35
|
export declare class CrosshairTooltip {
|
|
8
36
|
private el;
|
|
9
37
|
private visible;
|
|
38
|
+
private appliedTheme;
|
|
39
|
+
private locale;
|
|
40
|
+
private pricePrecision;
|
|
41
|
+
private tzOffsetMinutes;
|
|
42
|
+
private dirEl;
|
|
10
43
|
private timeEl;
|
|
11
|
-
private openEl;
|
|
12
|
-
private highEl;
|
|
13
|
-
private lowEl;
|
|
14
|
-
private closeEl;
|
|
15
44
|
private changeEl;
|
|
16
|
-
private
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
45
|
+
private valueEls;
|
|
46
|
+
private labelEls;
|
|
47
|
+
private dividerEl;
|
|
48
|
+
private width;
|
|
49
|
+
private height;
|
|
20
50
|
create(container: HTMLElement): void;
|
|
51
|
+
/** Locale for number formatting (BCP 47). */
|
|
52
|
+
setLocale(locale: string): void;
|
|
53
|
+
/** Fixed decimals (a market's precision); `null` picks them from the visible range. */
|
|
54
|
+
setPricePrecision(precision: number | null): void;
|
|
55
|
+
/** Timezone for the time line: `null` = browser-local, a number = UTC offset in minutes. */
|
|
56
|
+
setTimezoneOffset(minutes: number | null): void;
|
|
21
57
|
show(pos: Point, bar: OHLCBar, theme: Theme, containerRect: {
|
|
22
58
|
width: number;
|
|
23
59
|
height: number;
|
|
24
|
-
}): void;
|
|
60
|
+
}, context?: CrosshairTooltipContext): void;
|
|
25
61
|
hide(): void;
|
|
26
62
|
isVisible(): boolean;
|
|
27
63
|
destroy(): void;
|
|
28
|
-
private
|
|
29
|
-
private label;
|
|
30
|
-
private val;
|
|
64
|
+
private applyTheme;
|
|
31
65
|
}
|
|
32
66
|
//# sourceMappingURL=CrosshairTooltip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrosshairTooltip.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"CrosshairTooltip.d.ts","sourceRoot":"","sources":["../../src/interaction/CrosshairTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlE,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,wFAAwF;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAY7G;AAUD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAuG;IACvH,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAO;IAErB,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IA4DpC,6CAA6C;IAC7C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,uFAAuF;IACvF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,4FAA4F;IAC5F,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI/C,IAAI,CACF,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAChD,OAAO,GAAE,uBAA4B,GACpC,IAAI;IAmDP,IAAI,IAAI,IAAI;IAOZ,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,UAAU;CAenB"}
|
|
@@ -18,6 +18,8 @@ export declare class InteractionManager {
|
|
|
18
18
|
private onAxisDoubleClick;
|
|
19
19
|
private measureHandlers;
|
|
20
20
|
private measuring;
|
|
21
|
+
private boxSelectHandlers;
|
|
22
|
+
private boxSelecting;
|
|
21
23
|
private onAltClick;
|
|
22
24
|
private onEscape;
|
|
23
25
|
private onConfirm;
|
|
@@ -29,6 +31,7 @@ export declare class InteractionManager {
|
|
|
29
31
|
private tradingManager;
|
|
30
32
|
private paneResizeHandler;
|
|
31
33
|
private viewportGetter;
|
|
34
|
+
/** `hoverOnly`: only pointer-tied visuals changed (crosshair, measure ruler, selection box). */
|
|
32
35
|
private onOverlayDirty;
|
|
33
36
|
private boundHandlers;
|
|
34
37
|
private lastTouchDist;
|
|
@@ -40,7 +43,12 @@ export declare class InteractionManager {
|
|
|
40
43
|
private readonly longPressMaxMove;
|
|
41
44
|
private cachedRect;
|
|
42
45
|
constructor(element: HTMLElement);
|
|
43
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Called when a pointer event changed what's drawn. `hoverOnly` is true when
|
|
48
|
+
* only pointer-tied visuals changed (crosshair, axis pills, measure ruler,
|
|
49
|
+
* selection box) — the chart then redraws just its thin top canvas.
|
|
50
|
+
*/
|
|
51
|
+
setOverlayDirtyCallback(cb: (hoverOnly?: boolean) => void): void;
|
|
44
52
|
setPanHandler(handler: PanHandler): void;
|
|
45
53
|
setZoomHandler(handler: ZoomHandler): void;
|
|
46
54
|
setCrosshairHandler(handler: CrosshairHandler): void;
|
|
@@ -65,6 +73,17 @@ export declare class InteractionManager {
|
|
|
65
73
|
setConfirmHandler(handler: () => boolean): void;
|
|
66
74
|
/** Wire a plain left-click on the chart area (press + release without drag). */
|
|
67
75
|
setClickHandler(handler: (pos: Point) => void): void;
|
|
76
|
+
/**
|
|
77
|
+
* Ctrl/⌘-drag selection box: `begin`/`move` track the box, `end` selects
|
|
78
|
+
* what it covers (or toggles the drawing under a plain Ctrl/⌘-click),
|
|
79
|
+
* `cancel` drops it (Escape).
|
|
80
|
+
*/
|
|
81
|
+
setBoxSelectHandlers(handlers: {
|
|
82
|
+
begin: (pos: Point) => void;
|
|
83
|
+
move: (pos: Point) => void;
|
|
84
|
+
end: () => void;
|
|
85
|
+
cancel: () => void;
|
|
86
|
+
}): void;
|
|
68
87
|
setMeasureHandlers(handlers: {
|
|
69
88
|
begin: (pos: Point) => void;
|
|
70
89
|
move: (pos: Point) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/interaction/InteractionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,qBAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/interaction/InteractionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,17 +16,25 @@ export declare class PanHandler {
|
|
|
16
16
|
private dragging;
|
|
17
17
|
private lastX;
|
|
18
18
|
private lastY;
|
|
19
|
-
private
|
|
20
|
-
private velocityX;
|
|
21
|
-
private velocityY;
|
|
19
|
+
private samples;
|
|
22
20
|
private momentumId;
|
|
23
21
|
private callback;
|
|
24
22
|
private onStart?;
|
|
25
23
|
private friction;
|
|
26
24
|
constructor(callback: PanCallback, onStart?: () => void);
|
|
25
|
+
isDragging(): boolean;
|
|
27
26
|
onPointerDown(pos: Point): void;
|
|
28
27
|
onPointerMove(pos: Point): void;
|
|
29
28
|
onPointerUp(): void;
|
|
29
|
+
/** Stop any coasting immediately (e.g. a new gesture or a programmatic jump). */
|
|
30
|
+
cancelMomentum(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Velocity (px/ms, delta convention) over the last VELOCITY_WINDOW_MS, or
|
|
33
|
+
* null when the pointer had come to rest before release. Measuring over a
|
|
34
|
+
* window instead of the final sample keeps one jittery event from either
|
|
35
|
+
* killing a flick or launching the chart after the user had stopped.
|
|
36
|
+
*/
|
|
37
|
+
private releaseVelocity;
|
|
30
38
|
private startMomentum;
|
|
31
39
|
private stopMomentum;
|
|
32
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PanHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/PanHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"PanHandler.d.ts","sourceRoot":"","sources":["../../src/interaction/PanHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAkBnE;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI;IAKvD,UAAU,IAAI,OAAO;IAIrB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAS/B,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAiB/B,WAAW,IAAI,IAAI;IAWnB,iFAAiF;IACjF,cAAc,IAAI,IAAI;IAItB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -7,6 +7,7 @@ export { PaneResizeHandler } from './PaneResizeHandler.js';
|
|
|
7
7
|
export { CrosshairHandler } from './CrosshairHandler.js';
|
|
8
8
|
export type { CrosshairMode } from './CrosshairHandler.js';
|
|
9
9
|
export { KeyboardHandler } from './KeyboardHandler.js';
|
|
10
|
-
export { CrosshairTooltip } from './CrosshairTooltip.js';
|
|
10
|
+
export { CrosshairTooltip, formatTooltipTime } from './CrosshairTooltip.js';
|
|
11
|
+
export type { CrosshairTooltipContext } from './CrosshairTooltip.js';
|
|
11
12
|
export { PinnedTooltip } from './PinnedTooltip.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interaction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -14,6 +14,7 @@ export declare class CurrentPriceLine {
|
|
|
14
14
|
setLocale(locale: string): void;
|
|
15
15
|
setPrice(price: number, previousClose?: number): void;
|
|
16
16
|
setVisible(v: boolean): void;
|
|
17
|
+
isVisible(): boolean;
|
|
17
18
|
setPricePrecision(precision: number | null): void;
|
|
18
19
|
getPrice(): number | null;
|
|
19
20
|
render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentPriceLine.d.ts","sourceRoot":"","sources":["../../src/realtime/CurrentPriceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,iEAAiE;IACjE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAEzB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5B,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAkDnF"}
|
|
1
|
+
{"version":3,"file":"CurrentPriceLine.d.ts","sourceRoot":"","sources":["../../src/realtime/CurrentPriceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,iEAAiE;IACjE,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAW;IAEzB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAQrD,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5B,SAAS,IAAI,OAAO;IAIpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIjD,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAkDnF"}
|
|
@@ -8,7 +8,7 @@ export interface DragState {
|
|
|
8
8
|
export declare class OrderRenderer {
|
|
9
9
|
render(ctx: CanvasRenderingContext2D, orders: TradingOrder[], viewport: ViewportState, theme: Theme, config: TradingConfig, dragState: DragState | null): void;
|
|
10
10
|
/**
|
|
11
|
-
* Draw order price badges on the price axis. Called
|
|
11
|
+
* Draw order price badges on the price axis. Called after the price axis
|
|
12
12
|
* so they paint ON TOP of the regular axis tick labels.
|
|
13
13
|
*/
|
|
14
14
|
renderAxisBadges(ctx: CanvasRenderingContext2D, orders: TradingOrder[], viewport: ViewportState, theme: Theme, config: TradingConfig, dragState: DragState | null): void;
|
|
@@ -2,7 +2,7 @@ import { TradingPosition, TradingConfig, ViewportState, Theme } from '@tradecanv
|
|
|
2
2
|
export declare class PositionRenderer {
|
|
3
3
|
render(ctx: CanvasRenderingContext2D, positions: TradingPosition[], currentPrice: number | null, viewport: ViewportState, theme: Theme, config: TradingConfig): void;
|
|
4
4
|
/**
|
|
5
|
-
* Draw position entry badges on the price axis. Called
|
|
5
|
+
* Draw position entry badges on the price axis. Called after the price axis
|
|
6
6
|
* so they paint ON TOP of the regular axis tick labels.
|
|
7
7
|
*/
|
|
8
8
|
renderAxisBadges(ctx: CanvasRenderingContext2D, positions: TradingPosition[], viewport: ViewportState, theme: Theme, config: TradingConfig): void;
|
|
@@ -36,14 +36,16 @@ export declare class TradingManager {
|
|
|
36
36
|
/** Emit `orderPlace` with the drafted order (type inferred vs the market). */
|
|
37
37
|
confirmOrderDraft(): boolean;
|
|
38
38
|
isOrderDraftActive(): boolean;
|
|
39
|
+
/** Whether `pos` is over an order line or a position's SL/TP that can be dragged. */
|
|
40
|
+
isOverDraggableLine(pos: Point, viewport: ViewportState, tolerance?: number): boolean;
|
|
39
41
|
onPointerDown(pos: Point, viewport: ViewportState): boolean;
|
|
40
42
|
onPointerMove(pos: Point, viewport: ViewportState): boolean;
|
|
41
43
|
onPointerUp(): boolean;
|
|
42
44
|
onContextMenu(pos: Point, viewport: ViewportState): boolean;
|
|
43
45
|
render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
|
44
46
|
/**
|
|
45
|
-
* Draw position/order price badges on the price axis.
|
|
46
|
-
*
|
|
47
|
+
* Draw position/order price badges on the price axis. Drawn after the
|
|
48
|
+
* price axis so they paint ON TOP of the regular axis labels.
|
|
47
49
|
*/
|
|
48
50
|
renderAxisBadges(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
|
49
51
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TradingManager.d.ts","sourceRoot":"","sources":["../../src/trading/TradingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,SAAS,EACT,aAAa,EACb,aAAa,EACb,KAAK,EACL,KAAK,EACN,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAyD;IAC9E,OAAO,CAAC,SAAS,CAA4B;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAS3C,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAI1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAMlE,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI;IAKvC,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI;IAKhD,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAK3C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAO/C,uEAAuE;IACvE,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlD,aAAa,IAAI,IAAI;IAMrB,kFAAkF;IAClF,cAAc,IAAI,OAAO;IAezB,eAAe,IAAI,OAAO;IAM1B,kEAAkE;IAClE,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrD,gBAAgB,IAAI,IAAI;IAMxB,8EAA8E;IAC9E,iBAAiB,IAAI,OAAO;IAS5B,kBAAkB,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"TradingManager.d.ts","sourceRoot":"","sources":["../../src/trading/TradingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,SAAS,EACT,aAAa,EACb,aAAa,EACb,KAAK,EACL,KAAK,EACN,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAE9B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAwB;IAE1C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAyD;IAC9E,OAAO,CAAC,SAAS,CAA4B;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAS3C,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAI1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC,gBAAgB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAMlE,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI;IAKvC,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI;IAKhD,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAK3C,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAO/C,uEAAuE;IACvE,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlD,aAAa,IAAI,IAAI;IAMrB,kFAAkF;IAClF,cAAc,IAAI,OAAO;IAezB,eAAe,IAAI,OAAO;IAM1B,kEAAkE;IAClE,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrD,gBAAgB,IAAI,IAAI;IAMxB,8EAA8E;IAC9E,iBAAiB,IAAI,OAAO;IAS5B,kBAAkB,IAAI,OAAO;IAI7B,qFAAqF;IACrF,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,SAAI,GAAG,OAAO;IAehF,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAc3D,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAiB3D,WAAW,IAAI,OAAO;IA+BtB,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO;IAS3D,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IA6BlF;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAU5F,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -6,7 +6,7 @@ export declare class TradingRenderer {
|
|
|
6
6
|
render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
|
7
7
|
/**
|
|
8
8
|
* Draw position/order price badges on the price axis. Call this from the
|
|
9
|
-
*
|
|
9
|
+
* scene pass AFTER priceAxis.render() so the badges paint on top of the
|
|
10
10
|
* regular tick labels — matching MT4/MT5 behaviour.
|
|
11
11
|
*/
|
|
12
12
|
renderAxisBadges(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
package/dist/ui/ChartLegend.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface LegendConfig {
|
|
|
10
10
|
}
|
|
11
11
|
export declare const DEFAULT_LEGEND_CONFIG: LegendConfig;
|
|
12
12
|
/**
|
|
13
|
-
* Renders an OHLCV legend overlay
|
|
13
|
+
* Renders an OHLCV legend overlay in the chart's top-left corner.
|
|
14
14
|
* Shows: Symbol, O, H, L, C, Change%, Volume
|
|
15
15
|
* Updates on crosshair hover or shows last bar by default.
|
|
16
16
|
*/
|
|
@@ -3,14 +3,29 @@ export declare function barIndexToX(index: number, viewport: ViewportState): num
|
|
|
3
3
|
export declare function priceToY(price: number, viewport: ViewportState): number;
|
|
4
4
|
export declare function xToBarIndex(x: number, viewport: ViewportState): number;
|
|
5
5
|
export declare function yToPrice(y: number, viewport: ViewportState): number;
|
|
6
|
+
type TimedSeries = ReadonlyArray<{
|
|
7
|
+
time: number;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Typical spacing between bar times — the median of the last ~20 intervals,
|
|
11
|
+
* so a weekend or halt gap doesn't skew it. Used to place times beyond either
|
|
12
|
+
* end of the data (the empty future the chart can be panned into). Cached per
|
|
13
|
+
* series and length; 0 when there are fewer than two bars.
|
|
14
|
+
*/
|
|
15
|
+
export declare function barTimeStep(data: TimedSeries): number;
|
|
16
|
+
/**
|
|
17
|
+
* Time at bar index `index`, extrapolated by `barTimeStep` past either end of
|
|
18
|
+
* the data — e.g. the future area right of the newest bar.
|
|
19
|
+
*/
|
|
20
|
+
export declare function barIndexToTime(index: number, data: TimedSeries): number;
|
|
6
21
|
/**
|
|
7
22
|
* Convert a bar timestamp to its data-array index via binary search.
|
|
8
|
-
* Falls back to fractional interpolation when the timestamp falls between bars
|
|
23
|
+
* Falls back to fractional interpolation when the timestamp falls between bars,
|
|
24
|
+
* and extrapolates (by `barTimeStep`) for times beyond either end — so a drawing
|
|
25
|
+
* anchored in the future keeps its place instead of collapsing onto the last bar.
|
|
9
26
|
* Returns -1 if data is empty.
|
|
10
27
|
*/
|
|
11
|
-
export declare function timestampToBarIndex(timestamp: number, data:
|
|
12
|
-
time: number;
|
|
13
|
-
}>): number;
|
|
28
|
+
export declare function timestampToBarIndex(timestamp: number, data: TimedSeries): number;
|
|
14
29
|
/**
|
|
15
30
|
* Resolve an anchor `time` value to a (possibly fractional) bar index in the
|
|
16
31
|
* current series. When `viewport.data` is set, `time` is interpreted as a real
|
|
@@ -29,4 +44,5 @@ export declare function timeToX(time: number, viewport: ViewportState): number;
|
|
|
29
44
|
* returns a bar index for legacy callers.
|
|
30
45
|
*/
|
|
31
46
|
export declare function xToTime(x: number, viewport: ViewportState): number;
|
|
47
|
+
export {};
|
|
32
48
|
//# sourceMappingURL=ScaleMapping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScaleMapping.d.ts","sourceRoot":"","sources":["../../src/viewport/ScaleMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAG1E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAcvE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAGtE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CASnE;AAED
|
|
1
|
+
{"version":3,"file":"ScaleMapping.d.ts","sourceRoot":"","sources":["../../src/viewport/ScaleMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAG1E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAcvE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAGtE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CASnE;AAED,KAAK,WAAW,GAAG,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAInD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWrD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,CA0BhF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAM7E;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,MAAM,CASlE"}
|
|
@@ -17,6 +17,8 @@ export declare class Viewport {
|
|
|
17
17
|
private minBarWidth;
|
|
18
18
|
private maxBarWidth;
|
|
19
19
|
private rightMarginBars;
|
|
20
|
+
private freePan;
|
|
21
|
+
private minVisibleBars;
|
|
20
22
|
constructor(containerWidth: number, containerHeight: number, minBarWidth?: number, maxBarWidth?: number, rightMarginBars?: number);
|
|
21
23
|
/**
|
|
22
24
|
* Returns a snapshot (deep copy). Safe to store/pass. Cached: repeated
|
|
@@ -33,6 +35,20 @@ export declare class Viewport {
|
|
|
33
35
|
/** Reference price for percentage / indexed-to-100 axis labels. */
|
|
34
36
|
setScaleBaseline(price: number | undefined): void;
|
|
35
37
|
setRightMargin(bars: number): void;
|
|
38
|
+
getRightMargin(): number;
|
|
39
|
+
/**
|
|
40
|
+
* How far the chart can be dragged. `freePan` (default) allows dragging
|
|
41
|
+
* past the newest bar into empty future space, or past the
|
|
42
|
+
* oldest bar, until only `minVisibleBars` bars remain at the edge. With
|
|
43
|
+
* `freePan: false` the newest bar stops at its resting position, as in 1.x
|
|
44
|
+
* before 1.3.
|
|
45
|
+
*/
|
|
46
|
+
setPanLimits(limits: {
|
|
47
|
+
freePan?: boolean;
|
|
48
|
+
minVisibleBars?: number;
|
|
49
|
+
}): void;
|
|
50
|
+
/** Offset at which the newest bar sits `rightMargin` bars from the right edge — the resting view. */
|
|
51
|
+
private endOffset;
|
|
36
52
|
/** Width of the price axis strip; see `ViewportState.priceAxisWidth`. */
|
|
37
53
|
setPriceAxisWidth(width: number): void;
|
|
38
54
|
private computeChartRect;
|
|
@@ -58,10 +74,20 @@ export declare class Viewport {
|
|
|
58
74
|
* chart-body panning, the counterpart to `scrollBy` on the time axis.
|
|
59
75
|
*/
|
|
60
76
|
panPriceRange(deltaPixels: number): void;
|
|
61
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Whether the view rests at the latest bars (within two bars of the resting
|
|
79
|
+
* position). Panned into history — or out into empty future space — it is
|
|
80
|
+
* not, so a new bar doesn't yank the view back.
|
|
81
|
+
*/
|
|
62
82
|
isAtEnd(): boolean;
|
|
63
83
|
scrollToEnd(): void;
|
|
64
84
|
zoom(delta: number, centerX: number): void;
|
|
85
|
+
/**
|
|
86
|
+
* Fit bar slots `from`..`to` (inclusive, fractional allowed, may extend past
|
|
87
|
+
* the data) across the chart width. If the bar width hits its min/max the
|
|
88
|
+
* range is centred instead.
|
|
89
|
+
*/
|
|
90
|
+
zoomToBarRange(from: number, to: number): void;
|
|
65
91
|
private clampOffset;
|
|
66
92
|
private updateVisibleRange;
|
|
67
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/viewport/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI5F,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,cAAc,CAAoB;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;
|
|
1
|
+
{"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/viewport/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI5F,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,cAAc,CAAoB;IAC1C;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,cAAc,CAAK;gBAGzB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,SAAI,EACf,WAAW,SAAK,EAChB,eAAe,SAAI;IAgBrB;;;OAGG;IACH,QAAQ,IAAI,aAAa;IAkBzB,8EAA8E;IAC9E,OAAO,CAAC,UAAU;IAIlB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO;IAIrB,mFAAmF;IACnF,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMxC,YAAY,IAAI,cAAc;IAI9B,mEAAmE;IACnE,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,cAAc,IAAI,MAAM;IAIxB;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1E,qGAAqG;IACrG,OAAO,CAAC,SAAS;IAKjB,yEAAyE;IACzE,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC,OAAO,CAAC,gBAAgB;IASxB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAY9B,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAsBtD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOnC;;;;;;;;;OASG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAqBxC;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAKlB,WAAW,IAAI,IAAI;IAUnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAwB1C;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAY9C,OAAO,CAAC,WAAW;IAgDnB,OAAO,CAAC,kBAAkB;CAS3B"}
|
package/dist/viewport/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Viewport } from './Viewport.js';
|
|
2
|
-
export { barIndexToX, priceToY, xToBarIndex, yToPrice, timestampToBarIndex, resolveBarIndex, timeToX, xToTime, } from './ScaleMapping.js';
|
|
2
|
+
export { barIndexToX, priceToY, xToBarIndex, yToPrice, timestampToBarIndex, resolveBarIndex, barTimeStep, barIndexToTime, timeToX, xToTime, } from './ScaleMapping.js';
|
|
3
3
|
export { getVisibleData } from './DataWindow.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/viewport/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,cAAc,EACd,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tradecanvas/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Canvas rendering engine for @tradecanvas/chart",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,9 +34,10 @@
|
|
|
34
34
|
"README.md"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@tradecanvas/commons": "1.
|
|
37
|
+
"@tradecanvas/commons": "1.3.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
+
"jsdom": "^25.0.1",
|
|
40
41
|
"vitest": "^2.1.8"
|
|
41
42
|
},
|
|
42
43
|
"scripts": {
|