@tradecanvas/core 1.1.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/LICENSE +21 -21
- 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/Circle.d.ts +14 -0
- package/dist/drawings/tools/Circle.d.ts.map +1 -0
- package/dist/drawings/tools/CrossLine.d.ts +13 -0
- package/dist/drawings/tools/CrossLine.d.ts.map +1 -0
- package/dist/drawings/tools/CyclicLines.d.ts +15 -0
- package/dist/drawings/tools/CyclicLines.d.ts.map +1 -0
- package/dist/drawings/tools/DateAndPriceRange.d.ts +17 -0
- package/dist/drawings/tools/DateAndPriceRange.d.ts.map +1 -0
- package/dist/drawings/tools/FibChannel.d.ts +19 -0
- package/dist/drawings/tools/FibChannel.d.ts.map +1 -0
- package/dist/drawings/tools/FibSpeedResistanceFan.d.ts +26 -0
- package/dist/drawings/tools/FibSpeedResistanceFan.d.ts.map +1 -0
- package/dist/drawings/tools/HorizontalRay.d.ts +18 -0
- package/dist/drawings/tools/HorizontalRay.d.ts.map +1 -0
- package/dist/drawings/tools/InfoLine.d.ts +15 -0
- package/dist/drawings/tools/InfoLine.d.ts.map +1 -0
- package/dist/drawings/tools/Pitchfork.d.ts +17 -6
- package/dist/drawings/tools/Pitchfork.d.ts.map +1 -1
- package/dist/drawings/tools/PriceLabel.d.ts +15 -0
- package/dist/drawings/tools/PriceLabel.d.ts.map +1 -0
- package/dist/drawings/tools/RiskReward.d.ts +20 -0
- package/dist/drawings/tools/RiskReward.d.ts.map +1 -0
- package/dist/drawings/tools/TrendAngle.d.ts +18 -0
- package/dist/drawings/tools/TrendAngle.d.ts.map +1 -0
- package/dist/drawings/tools/index.d.ts +13 -0
- package/dist/drawings/tools/index.d.ts.map +1 -1
- package/dist/drawings/tools/labels.d.ts +27 -0
- package/dist/drawings/tools/labels.d.ts.map +1 -0
- package/dist/drawings/tools/patterns.d.ts +64 -0
- package/dist/drawings/tools/patterns.d.ts.map +1 -0
- 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 +11 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3155 -1576
- package/dist/index.js.map +1 -1
- package/dist/indicators/IndicatorBase.d.ts +10 -1
- package/dist/indicators/IndicatorBase.d.ts.map +1 -1
- package/dist/indicators/IndicatorEngine.d.ts +19 -1
- package/dist/indicators/IndicatorEngine.d.ts.map +1 -1
- package/dist/indicators/IndicatorValueMap.d.ts +38 -0
- package/dist/indicators/IndicatorValueMap.d.ts.map +1 -0
- package/dist/indicators/index.d.ts +5 -0
- package/dist/indicators/index.d.ts.map +1 -1
- package/dist/indicators/overlay/Alligator.d.ts.map +1 -1
- package/dist/indicators/overlay/AnchoredVWAP.d.ts.map +1 -1
- package/dist/indicators/overlay/BollingerBands.d.ts +1 -0
- package/dist/indicators/overlay/BollingerBands.d.ts.map +1 -1
- package/dist/indicators/overlay/ChandelierExit.d.ts.map +1 -1
- package/dist/indicators/overlay/DonchianChannel.d.ts.map +1 -1
- package/dist/indicators/overlay/EMA.d.ts +1 -0
- package/dist/indicators/overlay/EMA.d.ts.map +1 -1
- package/dist/indicators/overlay/Envelope.d.ts +18 -0
- package/dist/indicators/overlay/Envelope.d.ts.map +1 -0
- package/dist/indicators/overlay/HullMA.d.ts.map +1 -1
- package/dist/indicators/overlay/Ichimoku.d.ts.map +1 -1
- package/dist/indicators/overlay/KeltnerChannel.d.ts.map +1 -1
- package/dist/indicators/overlay/LinearRegressionChannel.d.ts.map +1 -1
- package/dist/indicators/overlay/MTFMovingAverage.d.ts.map +1 -1
- package/dist/indicators/overlay/ParabolicSAR.d.ts.map +1 -1
- package/dist/indicators/overlay/PivotPoints.d.ts.map +1 -1
- package/dist/indicators/overlay/SMA.d.ts +1 -0
- package/dist/indicators/overlay/SMA.d.ts.map +1 -1
- package/dist/indicators/overlay/SessionVWAP.d.ts.map +1 -1
- package/dist/indicators/overlay/Supertrend.d.ts.map +1 -1
- package/dist/indicators/overlay/TEMA.d.ts +21 -0
- package/dist/indicators/overlay/TEMA.d.ts.map +1 -0
- package/dist/indicators/overlay/VWAP.d.ts.map +1 -1
- package/dist/indicators/overlay/VWMA.d.ts +17 -0
- package/dist/indicators/overlay/VWMA.d.ts.map +1 -0
- package/dist/indicators/overlay/WMA.d.ts +23 -0
- package/dist/indicators/overlay/WMA.d.ts.map +1 -0
- package/dist/indicators/overlay/ZigZag.d.ts.map +1 -1
- package/dist/indicators/panel/ADX.d.ts.map +1 -1
- package/dist/indicators/panel/ATR.d.ts +1 -0
- package/dist/indicators/panel/ATR.d.ts.map +1 -1
- package/dist/indicators/panel/AcceleratorOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/AccumulationDistribution.d.ts.map +1 -1
- package/dist/indicators/panel/Aroon.d.ts.map +1 -1
- package/dist/indicators/panel/AwesomeOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/BalanceOfPower.d.ts.map +1 -1
- package/dist/indicators/panel/CCI.d.ts.map +1 -1
- package/dist/indicators/panel/CMF.d.ts.map +1 -1
- package/dist/indicators/panel/ChaikinOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/ChaikinVolatility.d.ts.map +1 -1
- package/dist/indicators/panel/ChandeMomentum.d.ts.map +1 -1
- package/dist/indicators/panel/ChoppinessIndex.d.ts.map +1 -1
- package/dist/indicators/panel/ConnorsRSI.d.ts.map +1 -1
- package/dist/indicators/panel/Coppock.d.ts.map +1 -1
- package/dist/indicators/panel/DetrendedPriceOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/DisparityIndex.d.ts.map +1 -1
- package/dist/indicators/panel/EaseOfMovement.d.ts.map +1 -1
- package/dist/indicators/panel/ElderRay.d.ts.map +1 -1
- package/dist/indicators/panel/FisherTransform.d.ts.map +1 -1
- package/dist/indicators/panel/ForceIndex.d.ts.map +1 -1
- package/dist/indicators/panel/KST.d.ts.map +1 -1
- package/dist/indicators/panel/Klinger.d.ts.map +1 -1
- package/dist/indicators/panel/MACD.d.ts +3 -0
- package/dist/indicators/panel/MACD.d.ts.map +1 -1
- package/dist/indicators/panel/MFI.d.ts.map +1 -1
- package/dist/indicators/panel/MassIndex.d.ts.map +1 -1
- package/dist/indicators/panel/OBV.d.ts +1 -0
- package/dist/indicators/panel/OBV.d.ts.map +1 -1
- package/dist/indicators/panel/PercentagePriceOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/PrettyGoodOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/PriceVolumeTrend.d.ts.map +1 -1
- package/dist/indicators/panel/Qstick.d.ts.map +1 -1
- package/dist/indicators/panel/ROC.d.ts.map +1 -1
- package/dist/indicators/panel/RSI.d.ts +3 -0
- package/dist/indicators/panel/RSI.d.ts.map +1 -1
- package/dist/indicators/panel/RelativeMomentumIndex.d.ts.map +1 -1
- package/dist/indicators/panel/RelativeVigor.d.ts.map +1 -1
- package/dist/indicators/panel/SchaffTrendCycle.d.ts.map +1 -1
- package/dist/indicators/panel/StdDev.d.ts.map +1 -1
- package/dist/indicators/panel/Stochastic.d.ts +1 -0
- package/dist/indicators/panel/Stochastic.d.ts.map +1 -1
- package/dist/indicators/panel/StochasticRSI.d.ts.map +1 -1
- package/dist/indicators/panel/TRIX.d.ts.map +1 -1
- package/dist/indicators/panel/TSI.d.ts.map +1 -1
- package/dist/indicators/panel/UltimateOscillator.d.ts.map +1 -1
- package/dist/indicators/panel/VROC.d.ts.map +1 -1
- package/dist/indicators/panel/VolumeDelta.d.ts.map +1 -1
- package/dist/indicators/panel/VolumeProfile.d.ts.map +1 -1
- package/dist/indicators/panel/Vortex.d.ts.map +1 -1
- package/dist/indicators/panel/WilliamsAD.d.ts.map +1 -1
- package/dist/indicators/panel/WilliamsR.d.ts.map +1 -1
- package/dist/indicators/registry.d.ts.map +1 -1
- package/dist/indicators/tick.bench.d.ts +2 -0
- package/dist/indicators/tick.bench.d.ts.map +1 -0
- package/dist/indicators/worker/messages.d.ts +6 -0
- package/dist/indicators/worker/messages.d.ts.map +1 -1
- package/dist/interaction/AxisDragHandler.d.ts +1 -1
- package/dist/interaction/CrosshairHandler.d.ts +3 -2
- 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 +5 -1
- package/dist/realtime/CurrentPriceLine.d.ts.map +1 -1
- package/dist/realtime/StreamManager.d.ts +2 -0
- package/dist/realtime/StreamManager.d.ts.map +1 -1
- package/dist/realtime/adapters/BinanceAdapter.d.ts.map +1 -1
- package/dist/realtime/adapters/WebSocketAdapter.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 +9 -1
- package/dist/ui/ChartLegend.d.ts.map +1 -1
- package/dist/ui/SessionBreaks.d.ts +4 -0
- package/dist/ui/SessionBreaks.d.ts.map +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 +47 -2
- 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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { DrawingState, Point, ViewportState } from '@tradecanvas/commons';
|
|
2
|
+
import { DrawingBase } from '../DrawingBase.js';
|
|
3
|
+
/** A dashed connector between two pattern points labelled with a leg ratio. */
|
|
4
|
+
interface RatioLink {
|
|
5
|
+
from: number;
|
|
6
|
+
to: number;
|
|
7
|
+
num: [number, number];
|
|
8
|
+
den: [number, number];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Shared renderer for point-to-point chart patterns: a polyline through the
|
|
12
|
+
* pivots, point labels, optional translucent triangles, and dashed ratio
|
|
13
|
+
* links (e.g. XB = |AB| / |XA|) as harmonic-pattern traders read them.
|
|
14
|
+
*/
|
|
15
|
+
declare abstract class PatternTool extends DrawingBase {
|
|
16
|
+
protected abstract readonly pointLabels: string[];
|
|
17
|
+
protected readonly ratioLinks: RatioLink[];
|
|
18
|
+
/** Triangles (by anchor index) filled with the drawing's fill color. */
|
|
19
|
+
protected readonly triangles: [number, number, number][];
|
|
20
|
+
render(ctx: CanvasRenderingContext2D, state: DrawingState, viewport: ViewportState, selected: boolean): void;
|
|
21
|
+
/** Hook for pattern-specific decoration (e.g. a neckline). */
|
|
22
|
+
protected renderExtras(_ctx: CanvasRenderingContext2D, _state: DrawingState, _pts: Point[], _viewport: ViewportState): void;
|
|
23
|
+
private renderTriangles;
|
|
24
|
+
private renderRatioLinks;
|
|
25
|
+
private renderPointLabels;
|
|
26
|
+
hitTest(point: Point, state: DrawingState, viewport: ViewportState, tolerance: number): boolean;
|
|
27
|
+
}
|
|
28
|
+
/** Harmonic XABCD pattern (Gartley, Bat, Butterfly, Crab…) with its four Fibonacci ratios. */
|
|
29
|
+
export declare class XABCDPatternTool extends PatternTool {
|
|
30
|
+
descriptor: {
|
|
31
|
+
type: "xabcdPattern";
|
|
32
|
+
name: string;
|
|
33
|
+
requiredAnchors: number;
|
|
34
|
+
};
|
|
35
|
+
protected readonly pointLabels: string[];
|
|
36
|
+
protected readonly ratioLinks: RatioLink[];
|
|
37
|
+
protected readonly triangles: [number, number, number][];
|
|
38
|
+
}
|
|
39
|
+
/** ABCD pattern: two equal-ish legs, with the BC retracement and CD projection ratios. */
|
|
40
|
+
export declare class ABCDPatternTool extends PatternTool {
|
|
41
|
+
descriptor: {
|
|
42
|
+
type: "abcdPattern";
|
|
43
|
+
name: string;
|
|
44
|
+
requiredAnchors: number;
|
|
45
|
+
};
|
|
46
|
+
protected readonly pointLabels: string[];
|
|
47
|
+
protected readonly ratioLinks: RatioLink[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Head and Shoulders: seven pivots (start, left shoulder, neck, head, neck,
|
|
51
|
+
* right shoulder, end); the neckline runs through the two neck points.
|
|
52
|
+
*/
|
|
53
|
+
export declare class HeadAndShouldersTool extends PatternTool {
|
|
54
|
+
descriptor: {
|
|
55
|
+
type: "headAndShoulders";
|
|
56
|
+
name: string;
|
|
57
|
+
requiredAnchors: number;
|
|
58
|
+
};
|
|
59
|
+
protected readonly pointLabels: string[];
|
|
60
|
+
protected readonly triangles: [number, number, number][];
|
|
61
|
+
protected renderExtras(ctx: CanvasRenderingContext2D, state: DrawingState, pts: Point[]): void;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/drawings/tools/patterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,+EAA+E;AAC/E,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvB;AAED;;;;GAIG;AACH,uBAAe,WAAY,SAAQ,WAAW;IAC5C,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IAChD,wEAAwE;IACxE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAM;IAE9D,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAqB5G,8DAA8D;IAC9D,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAE3H,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAQhG;AAED,8FAA8F;AAC9F,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,UAAU;;;;MAAgF;IAC1F,SAAS,CAAC,QAAQ,CAAC,WAAW,WAA6B;IAC3D,mBAA4B,UAAU,EAAE,SAAS,EAAE,CAKjD;IACF,mBAA4B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAA0B;CAC5F;AAED,0FAA0F;AAC1F,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,UAAU;;;;MAA8E;IACxF,SAAS,CAAC,QAAQ,CAAC,WAAW,WAAwB;IACtD,mBAA4B,UAAU,EAAE,SAAS,EAAE,CAGjD;CACH;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,UAAU;;;;MAAyF;IACnG,SAAS,CAAC,QAAQ,CAAC,WAAW,WAA+D;IAC7F,mBAA4B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAqC;cAEnF,YAAY,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI;CAiBxG"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { Size, LayerType } from '@tradecanvas/commons';
|
|
2
2
|
import { CanvasLayer } from './CanvasLayer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Two stacked canvases: the scene (grid, series, indicators, chart objects,
|
|
5
|
+
* axes) and a top canvas for pointer-tied visuals. A hover repaints only the
|
|
6
|
+
* top one, and the compositor blends two surfaces instead of four.
|
|
7
|
+
*/
|
|
3
8
|
export declare class LayerManager {
|
|
4
9
|
private container;
|
|
5
|
-
private
|
|
10
|
+
private scene;
|
|
11
|
+
private top;
|
|
6
12
|
constructor(container: HTMLElement);
|
|
7
13
|
createLayers(): void;
|
|
14
|
+
/** `Hover` → the top canvas; every other type → the scene canvas. */
|
|
8
15
|
getLayer(type: LayerType): CanvasLayer | undefined;
|
|
9
16
|
resize(size: Size, dpr: number): void;
|
|
10
17
|
destroy(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerManager.d.ts","sourceRoot":"","sources":["../../src/engine/LayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"LayerManager.d.ts","sourceRoot":"","sources":["../../src/engine/LayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;GAIG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,GAAG,CAA4B;gBAEnB,SAAS,EAAE,WAAW;IAE1C,YAAY,IAAI,IAAI;IAOpB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;IAIlD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKrC,OAAO,IAAI,IAAI;CAMhB"}
|
|
@@ -50,6 +50,7 @@ export interface RenderContext {
|
|
|
50
50
|
alertManager: AlertManager | null;
|
|
51
51
|
signalMarkerManager: SignalMarkerManager | null;
|
|
52
52
|
measureOverlay: import('../features/MeasureOverlay.js').MeasureOverlay | null;
|
|
53
|
+
selectionBoxOverlay?: import('../features/SelectionBoxOverlay.js').SelectionBoxOverlay | null;
|
|
53
54
|
tradeZoneManager: TradeZoneManager | null;
|
|
54
55
|
panels: PanelRenderInfo[];
|
|
55
56
|
priceLimits?: {
|
|
@@ -76,10 +77,8 @@ export declare class RenderEngine {
|
|
|
76
77
|
readonly renderLoop: RenderLoop;
|
|
77
78
|
readonly dprManager: DPRManager;
|
|
78
79
|
private renderCtx;
|
|
79
|
-
private
|
|
80
|
-
private
|
|
81
|
-
private overlayLayer;
|
|
82
|
-
private uiLayer;
|
|
80
|
+
private sceneLayer;
|
|
81
|
+
private topLayer;
|
|
83
82
|
/**
|
|
84
83
|
* Optional hook fired AFTER the canvas layers have been resized in
|
|
85
84
|
* response to a container resize. The Chart class uses this to push the
|
|
@@ -95,6 +94,23 @@ export declare class RenderEngine {
|
|
|
95
94
|
stop(): void;
|
|
96
95
|
requestRender(layer?: LayerType): void;
|
|
97
96
|
private render;
|
|
97
|
+
/** Everything that only changes with data, viewport or chart objects. */
|
|
98
|
+
private renderScene;
|
|
99
|
+
/**
|
|
100
|
+
* Pointer-tied visuals only — crosshair, its axis pills, the legend (it
|
|
101
|
+
* shows the hovered bar), bar countdown, measure ruler, selection box.
|
|
102
|
+
* A hover redraws just this thin layer, never the scene underneath.
|
|
103
|
+
*/
|
|
104
|
+
private renderTop;
|
|
105
|
+
/** Indicator panes: background, divider, name and the indicator itself. */
|
|
106
|
+
private renderPanels;
|
|
107
|
+
/** Panel Y-axes: axis line, ticks and value labels. */
|
|
108
|
+
private renderPanelAxes;
|
|
109
|
+
/** Crosshair lines inside the hovered indicator pane. */
|
|
110
|
+
private renderPanelCrosshair;
|
|
111
|
+
/** Crosshair value badge on a pane's axis and the hovered bar's values in each pane header. */
|
|
112
|
+
private renderPanelHoverValues;
|
|
113
|
+
private panelDescriptors;
|
|
98
114
|
private renderPriceLimits;
|
|
99
115
|
destroy(): void;
|
|
100
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderEngine.d.ts","sourceRoot":"","sources":["../../src/engine/RenderEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderEngine.d.ts","sourceRoot":"","sources":["../../src/engine/RenderEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderLoop.d.ts","sourceRoot":"","sources":["../../src/engine/RenderLoop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AAE3E,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAA+B;IAE/C,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAIrC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAOjC,YAAY,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"RenderLoop.d.ts","sourceRoot":"","sources":["../../src/engine/RenderLoop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AAE3E,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAA+B;IAE/C,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAIrC,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAOjC,YAAY,IAAI,IAAI;IAWpB,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,aAAa;CActB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertManager.d.ts","sourceRoot":"","sources":["../../src/features/AlertManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAErG,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB;uDACmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;GAGG;AACH,qBAAa,YAAa,SAAQ,OAAO,CAAC,WAAW,CAAC;IACpD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,cAAc,CAAK;IAE3B,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1C,QAAQ,CACN,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,cAA2B,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,UAAQ,EACjB,OAAO,SAAU,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM;IAST,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM7B,SAAS,IAAI,UAAU,EAAE;IAIzB,6EAA6E;IAC7E,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,SAAI,GAAG,UAAU,GAAG,IAAI;IAgBxF,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASjD,WAAW,IAAI,IAAI;IAKnB,+DAA+D;IAC/D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA+ClD;;;;OAIG;IACH,eAAe,IAAI,IAAI;IAIvB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAWhC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAclC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"AlertManager.d.ts","sourceRoot":"","sources":["../../src/features/AlertManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAErG,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB;uDACmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID;;;GAGG;AACH,qBAAa,YAAa,SAAQ,OAAO,CAAC,WAAW,CAAC;IACpD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,cAAc,CAAK;IAE3B,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1C,QAAQ,CACN,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,cAA2B,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,UAAQ,EACjB,OAAO,SAAU,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM;IAST,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM7B,SAAS,IAAI,UAAU,EAAE;IAIzB,6EAA6E;IAC7E,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,SAAI,GAAG,UAAU,GAAG,IAAI;IAgBxF,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASjD,WAAW,IAAI,IAAI;IAKnB,+DAA+D;IAC/D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA+ClD;;;;OAIG;IACH,eAAe,IAAI,IAAI;IAIvB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAWhC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAclC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CA8BnF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Point, ViewportState, Theme, DataSeries } from '@tradecanvas/commons';
|
|
2
2
|
/**
|
|
3
|
-
* Transient "measure" overlay (
|
|
3
|
+
* Transient "measure" overlay (the shift-drag ruler).
|
|
4
4
|
*
|
|
5
5
|
* The tool is owned by the chart but lives outside the persistent drawing
|
|
6
6
|
* system on purpose: it is reset on every mouseup so it never clutters saved
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeasureOverlay.d.ts","sourceRoot":"","sources":["../../src/features/MeasureOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGpF;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IAEtC,QAAQ,IAAI,OAAO;IAInB,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAYlE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAQnE,GAAG,IAAI,IAAI;IAIX,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"MeasureOverlay.d.ts","sourceRoot":"","sources":["../../src/features/MeasureOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGpF;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAuB;IAEtC,QAAQ,IAAI,OAAO;IAInB,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAYlE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAQnE,GAAG,IAAI,IAAI;IAIX,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAkEnF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Point, ViewportState, Theme } from '@tradecanvas/commons';
|
|
2
|
+
/** A box smaller than this (px) in both directions counts as a click, not a selection. */
|
|
3
|
+
export declare const SELECTION_BOX_MIN_SIZE = 6;
|
|
4
|
+
/** Normalised pixel rectangle of a finished selection box. */
|
|
5
|
+
export interface SelectionBox {
|
|
6
|
+
x0: number;
|
|
7
|
+
y0: number;
|
|
8
|
+
x1: number;
|
|
9
|
+
y1: number;
|
|
10
|
+
/** True when the pointer barely moved — treat as a click at (x1, y1). */
|
|
11
|
+
isClick: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Ctrl/⌘-drag selection box. While dragging it draws a translucent dashed
|
|
15
|
+
* rectangle; on release the chart selects the drawings inside it. Transient
|
|
16
|
+
* like the measure ruler: never saved, no undo.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SelectionBoxOverlay {
|
|
19
|
+
private start;
|
|
20
|
+
private current;
|
|
21
|
+
isActive(): boolean;
|
|
22
|
+
begin(pos: Point): void;
|
|
23
|
+
update(pos: Point): void;
|
|
24
|
+
/** Finish the box; null if none was in progress. */
|
|
25
|
+
end(): SelectionBox | null;
|
|
26
|
+
cancel(): void;
|
|
27
|
+
render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=SelectionBoxOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionBoxOverlay.d.ts","sourceRoot":"","sources":["../../src/features/SelectionBoxOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAExE,0FAA0F;AAC1F,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,OAAO,CAAsB;IAErC,QAAQ,IAAI,OAAO;IAInB,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAKvB,MAAM,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAIxB,oDAAoD;IACpD,GAAG,IAAI,YAAY,GAAG,IAAI;IAa1B,MAAM,IAAI,IAAI;IAKd,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAqBnF"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { DrawingState } from '@tradecanvas/commons';
|
|
2
2
|
export interface UndoableAction {
|
|
3
|
-
type: 'drawingCreate' | 'drawingRemove' | 'drawingModify';
|
|
3
|
+
type: 'drawingCreate' | 'drawingRemove' | 'drawingModify' | 'drawingBatch';
|
|
4
4
|
/** State before the action (null for create) */
|
|
5
5
|
before: DrawingState | null;
|
|
6
6
|
/** State after the action (null for remove) */
|
|
7
7
|
after: DrawingState | null;
|
|
8
|
+
/** For 'drawingBatch': the actions undone/redone together as one step. */
|
|
9
|
+
actions?: UndoableAction[];
|
|
8
10
|
}
|
|
9
11
|
export declare class UndoRedoManager {
|
|
10
12
|
private undoStack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UndoRedoManager.d.ts","sourceRoot":"","sources":["../../src/features/UndoRedoManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"UndoRedoManager.d.ts","sourceRoot":"","sources":["../../src/features/UndoRedoManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc,CAAC;IAC3E,gDAAgD;IAChD,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,+CAA+C;IAC/C,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,QAAQ,CAA6B;IAE7C,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIjC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAUlC,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,cAAc,GAAG,IAAI;IAQ7B,IAAI,IAAI,cAAc,GAAG,IAAI;IAQ7B,KAAK,IAAI,IAAI;IAKb,QAAQ,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAQzF"}
|
package/dist/features/index.d.ts
CHANGED
|
@@ -10,4 +10,6 @@ export { DataExporter } from './DataExporter.js';
|
|
|
10
10
|
export { SignalMarkerManager } from './SignalMarkerManager.js';
|
|
11
11
|
export { TradeZoneManager } from './TradeZoneManager.js';
|
|
12
12
|
export { MeasureOverlay } from './MeasureOverlay.js';
|
|
13
|
+
export { SelectionBoxOverlay, SELECTION_BOX_MIN_SIZE } from './SelectionBoxOverlay.js';
|
|
14
|
+
export type { SelectionBox } from './SelectionBoxOverlay.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvF,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,3 +1,41 @@
|
|
|
1
|
-
import { GaugeOptions, Theme } from '@tradecanvas/commons';
|
|
1
|
+
import { GaugeOptions, GaugeZone, Theme } from '@tradecanvas/commons';
|
|
2
|
+
export interface GaugeLayout {
|
|
3
|
+
cx: number;
|
|
4
|
+
cy: number;
|
|
5
|
+
/** Centre line of the ring. */
|
|
6
|
+
radius: number;
|
|
7
|
+
/** Ring stroke width. */
|
|
8
|
+
thickness: number;
|
|
9
|
+
startAngle: number;
|
|
10
|
+
endAngle: number;
|
|
11
|
+
min: number;
|
|
12
|
+
max: number;
|
|
13
|
+
/** Where the value text sits (centre of the main number). */
|
|
14
|
+
valueY: number;
|
|
15
|
+
valueSize: number;
|
|
16
|
+
/** Lowest y the centre text may reach without meeting the end labels or the edge. */
|
|
17
|
+
textBottom: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Fit the gauge into `width × height`: the ring is scaled so the arc (plus
|
|
21
|
+
* the min/max labels and any zone labels) fills the box, then centred. Pure,
|
|
22
|
+
* so it can be tested without a canvas.
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeGaugeLayout(width: number, height: number, options: GaugeOptions): GaugeLayout;
|
|
25
|
+
export declare function gaugeValueToAngle(value: number, layout: GaugeLayout): number;
|
|
26
|
+
/** The zone containing `value` (last match wins on shared edges), if any. */
|
|
27
|
+
export declare function gaugeZoneAt(value: number, zones: readonly GaugeZone[] | undefined): GaugeZone | undefined;
|
|
28
|
+
export interface GaugeBand {
|
|
29
|
+
a0: number;
|
|
30
|
+
a1: number;
|
|
31
|
+
color: string;
|
|
32
|
+
/** Track bands fill gaps between zones and stay at full opacity. */
|
|
33
|
+
track: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The ring split into bands: zones in angle order (overlaps trimmed so each
|
|
37
|
+
* angle is painted once), with track bands wherever no zone reaches.
|
|
38
|
+
*/
|
|
39
|
+
export declare function gaugeRingBands(layout: GaugeLayout, zones: readonly GaugeZone[] | undefined, trackColor: string): GaugeBand[];
|
|
2
40
|
export declare function renderGauge(ctx: CanvasRenderingContext2D, width: number, height: number, options: GaugeOptions, theme: Theme, displayValue: number): void;
|
|
3
41
|
//# sourceMappingURL=GaugeRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GaugeRenderer.d.ts","sourceRoot":"","sources":["../../src/finance/GaugeRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"GaugeRenderer.d.ts","sourceRoot":"","sources":["../../src/finance/GaugeRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA0B3E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAC;CACpB;AAkDD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW,CAuCpG;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAG5E;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAOzG;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAe5H;AAgPD,wBAAgB,WAAW,CACzB,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,MAAM,GACnB,IAAI,CAiCN"}
|