@tradecanvas/core 1.11.0 → 1.13.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 +2 -4
- package/dist/{WebGLSeriesRenderer-DVJBHdfm.js → WebGLSeriesRenderer-BNrnoMHq.js} +202 -159
- package/dist/{WebGLSeriesRenderer-DVJBHdfm.js.map → WebGLSeriesRenderer-BNrnoMHq.js.map} +1 -1
- package/dist/WebGLSeriesRenderer-Bclv4lzZ.cjs +429 -0
- package/dist/{WebGLSeriesRenderer-DjkYvHPQ.cjs.map → WebGLSeriesRenderer-Bclv4lzZ.cjs.map} +1 -1
- package/dist/axis/GridRenderer.d.ts +11 -1
- package/dist/axis/GridRenderer.d.ts.map +1 -1
- package/dist/charts/BaselineRenderer.d.ts.map +1 -1
- package/dist/charts/KagiRenderer.d.ts.map +1 -1
- package/dist/charts/PointAndFigureRenderer.d.ts.map +1 -1
- package/dist/engine/RenderEngine.d.ts +8 -1
- package/dist/engine/RenderEngine.d.ts.map +1 -1
- package/dist/engine/gpu.d.ts +3 -1
- package/dist/engine/gpu.d.ts.map +1 -1
- package/dist/engine/gpuContexts.d.ts +23 -0
- package/dist/engine/gpuContexts.d.ts.map +1 -0
- package/dist/engine/index.d.ts +3 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/loadWebGL.d.ts +15 -2
- package/dist/engine/loadWebGL.d.ts.map +1 -1
- package/dist/features/ChartState.d.ts +10 -3
- package/dist/features/ChartState.d.ts.map +1 -1
- package/dist/{gridLines-BJLaM2d7.js → gpuContexts-Bn58hj7u.js} +156 -62
- package/dist/gpuContexts-Bn58hj7u.js.map +1 -0
- package/dist/{gridLines-CBmfrSCE.cjs → gpuContexts-DYrOp3uo.cjs} +2 -2
- package/dist/{gridLines-BJLaM2d7.js.map → gpuContexts-DYrOp3uo.cjs.map} +1 -1
- package/dist/index.cjs +5 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3420 -2526
- package/dist/index.js.map +1 -1
- package/dist/indicators/IndicatorBase.d.ts +6 -1
- package/dist/indicators/IndicatorBase.d.ts.map +1 -1
- package/dist/indicators/IndicatorEngine.d.ts +14 -2
- package/dist/indicators/IndicatorEngine.d.ts.map +1 -1
- package/dist/indicators/index.d.ts +14 -2
- package/dist/indicators/index.d.ts.map +1 -1
- package/dist/indicators/linePen.d.ts +5 -1
- package/dist/indicators/linePen.d.ts.map +1 -1
- package/dist/indicators/math.d.ts +2 -0
- package/dist/indicators/math.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.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.map +1 -1
- package/dist/indicators/overlay/Envelope.d.ts.map +1 -1
- package/dist/indicators/overlay/HammingMA.d.ts +19 -0
- package/dist/indicators/overlay/HammingMA.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/MAChannel.d.ts +13 -0
- package/dist/indicators/overlay/MAChannel.d.ts.map +1 -0
- package/dist/indicators/overlay/MACross.d.ts.map +1 -1
- package/dist/indicators/overlay/MTFMovingAverage.d.ts.map +1 -1
- package/dist/indicators/overlay/MovingAverageSets.d.ts +20 -0
- package/dist/indicators/overlay/MovingAverageSets.d.ts.map +1 -0
- package/dist/indicators/overlay/ParabolicSAR.d.ts.map +1 -1
- package/dist/indicators/overlay/PivotPoints.d.ts +5 -0
- package/dist/indicators/overlay/PivotPoints.d.ts.map +1 -1
- package/dist/indicators/overlay/PriceAverages.d.ts +25 -0
- package/dist/indicators/overlay/PriceAverages.d.ts.map +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.map +1 -1
- package/dist/indicators/overlay/VWAP.d.ts.map +1 -1
- package/dist/indicators/overlay/VWMA.d.ts.map +1 -1
- package/dist/indicators/overlay/VolatilityIndex.d.ts +13 -0
- package/dist/indicators/overlay/VolatilityIndex.d.ts.map +1 -0
- package/dist/indicators/overlay/WMA.d.ts.map +1 -1
- package/dist/indicators/overlay/ZigZag.d.ts.map +1 -1
- package/dist/indicators/panel/AccumulativeSwingIndex.d.ts +13 -0
- package/dist/indicators/panel/AccumulativeSwingIndex.d.ts.map +1 -0
- package/dist/indicators/panel/AdvanceDecline.d.ts +18 -0
- package/dist/indicators/panel/AdvanceDecline.d.ts.map +1 -0
- package/dist/indicators/panel/ChopZone.d.ts +17 -0
- package/dist/indicators/panel/ChopZone.d.ts.map +1 -0
- package/dist/indicators/panel/ElderRay.d.ts.map +1 -1
- package/dist/indicators/panel/MajorityRule.d.ts +15 -0
- package/dist/indicators/panel/MajorityRule.d.ts.map +1 -0
- package/dist/indicators/panel/PriceOscillator.d.ts +8 -0
- package/dist/indicators/panel/PriceOscillator.d.ts.map +1 -0
- package/dist/indicators/panel/SMIErgodic.d.ts +12 -0
- package/dist/indicators/panel/SMIErgodic.d.ts.map +1 -0
- package/dist/indicators/panel/VolatilityEstimators.d.ts +29 -0
- package/dist/indicators/panel/VolatilityEstimators.d.ts.map +1 -0
- package/dist/indicators/plots.d.ts +10 -0
- package/dist/indicators/plots.d.ts.map +1 -1
- package/dist/indicators/registry.d.ts.map +1 -1
- package/dist/indicators/symbols/symbolIndicators.d.ts +27 -0
- package/dist/indicators/symbols/symbolIndicators.d.ts.map +1 -1
- package/dist/interaction/CrosshairHandler.d.ts.map +1 -1
- package/dist/interaction/PinnedTooltip.d.ts.map +1 -1
- package/dist/interaction/crosshairLooks.d.ts +7 -0
- package/dist/interaction/crosshairLooks.d.ts.map +1 -0
- package/dist/realtime/CurrentPriceLine.d.ts.map +1 -1
- package/dist/ui/ChartLegend.d.ts.map +1 -1
- package/dist/ui/SessionBreaks.d.ts +2 -0
- package/dist/ui/SessionBreaks.d.ts.map +1 -1
- package/dist/webgl/WebGLSeriesRenderer.d.ts +30 -12
- package/dist/webgl/WebGLSeriesRenderer.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/WebGLSeriesRenderer-DjkYvHPQ.cjs +0 -429
- package/dist/gridLines-CBmfrSCE.cjs.map +0 -1
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import { ViewportState, Theme } from '@tradecanvas/commons';
|
|
1
|
+
import { ViewportState, Theme, ResolvedLineLook } from '@tradecanvas/commons';
|
|
2
2
|
export declare class GridRenderer {
|
|
3
3
|
private visible;
|
|
4
4
|
setVisible(v: boolean): void;
|
|
5
5
|
isVisible(): boolean;
|
|
6
6
|
render(ctx: CanvasRenderingContext2D, viewport: ViewportState, theme: Theme): void;
|
|
7
7
|
}
|
|
8
|
+
/** The grid's looks each way: the resolved style's, or the theme's grid colour, solid, 1 px. */
|
|
9
|
+
export declare function gridLooks(theme: Theme): {
|
|
10
|
+
horizontal: ResolvedLineLook;
|
|
11
|
+
vertical: ResolvedLineLook;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Whether the GPU can draw the grid as it looks: every way shown is solid,
|
|
15
|
+
* 1 px, and they share a colour. Otherwise the grid goes on Canvas 2D.
|
|
16
|
+
*/
|
|
17
|
+
export declare function gridFitsGpu(theme: Theme): boolean;
|
|
8
18
|
//# sourceMappingURL=GridRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../../src/axis/GridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"GridRenderer.d.ts","sourceRoot":"","sources":["../../src/axis/GridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOnF,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAQ;IAEvB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAC5B,SAAS,IAAI,OAAO;IAEpB,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CA4CnF;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG;IAAE,UAAU,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAGpG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAIjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaselineRenderer.d.ts","sourceRoot":"","sources":["../../src/charts/BaselineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"BaselineRenderer.d.ts","sourceRoot":"","sources":["../../src/charts/BaselineRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAMjE;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,sBAAsB;IAC7D,OAAO,CAAC,aAAa,CAAuB;IAE5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhC,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAqGpG,OAAO,CAAC,eAAe;CASxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KagiRenderer.d.ts","sourceRoot":"","sources":["../../src/charts/KagiRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;GAGG;AACH,qBAAa,YAAa,YAAW,sBAAsB;IACzD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"KagiRenderer.d.ts","sourceRoot":"","sources":["../../src/charts/KagiRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;GAGG;AACH,qBAAa,YAAa,YAAW,sBAAsB;IACzD,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAgDrG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointAndFigureRenderer.d.ts","sourceRoot":"","sources":["../../src/charts/PointAndFigureRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,sBAAsB;IACnE,OAAO,CAAC,OAAO,CAAK;IAEpB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"PointAndFigureRenderer.d.ts","sourceRoot":"","sources":["../../src/charts/PointAndFigureRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,sBAAsB;IACnE,OAAO,CAAC,OAAO,CAAK;IAEpB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,MAAM,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;CAiErG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LayerType, Size, ViewportState, Theme, DataSeries, Rect } from '@tradecanvas/commons';
|
|
1
|
+
import { LayerType, Size, ViewportState, Theme, DataSeries, Rect, PaneStyle } from '@tradecanvas/commons';
|
|
2
2
|
import { LayerManager } from './LayerManager.js';
|
|
3
3
|
import { RenderLoop } from './RenderLoop.js';
|
|
4
4
|
import { DPRManager } from './DPRManager.js';
|
|
@@ -27,6 +27,8 @@ export interface PanelRenderInfo {
|
|
|
27
27
|
members?: string[];
|
|
28
28
|
rect: Rect;
|
|
29
29
|
viewport: ViewportState;
|
|
30
|
+
/** Its own background and separator, over the panes' style. */
|
|
31
|
+
style?: PaneStyle;
|
|
30
32
|
}
|
|
31
33
|
export interface RenderContext {
|
|
32
34
|
chartRenderer: ChartRendererInterface | null;
|
|
@@ -101,8 +103,12 @@ export declare class RenderEngine {
|
|
|
101
103
|
private topLayer;
|
|
102
104
|
/** The GPU renderer under the scene. */
|
|
103
105
|
private gpu;
|
|
106
|
+
/** A GPU whose context was lost, kept for when it comes back. */
|
|
107
|
+
private lostGpu;
|
|
104
108
|
/** Called when the GPU context is lost and the engine has gone back to Canvas 2D. */
|
|
105
109
|
onGpuLost: (() => void) | null;
|
|
110
|
+
/** Called when the lost context came back and the engine draws with the GPU again. */
|
|
111
|
+
onGpuRestored: (() => void) | null;
|
|
106
112
|
/**
|
|
107
113
|
* Optional hook fired AFTER the canvas layers have been resized in
|
|
108
114
|
* response to a container resize. The Chart class uses this to push the
|
|
@@ -116,6 +122,7 @@ export declare class RenderEngine {
|
|
|
116
122
|
setRenderContext(ctx: RenderContext): void;
|
|
117
123
|
/** Draw bars and volume with `gpu`, on its canvas under the scene. */
|
|
118
124
|
attachGpu(gpu: GpuRenderer): void;
|
|
125
|
+
private placeGpu;
|
|
119
126
|
/** Back to Canvas 2D for everything. */
|
|
120
127
|
detachGpu(): void;
|
|
121
128
|
/** Draw every layer now, synchronously (a screenshot reads the GPU canvas before the browser clears it). */
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"RenderEngine.d.ts","sourceRoot":"","sources":["../../src/engine/RenderEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/gpu.d.ts
CHANGED
|
@@ -89,8 +89,10 @@ export interface GpuRenderer {
|
|
|
89
89
|
* draws nothing. Without one, everything past the bars is Canvas 2D.
|
|
90
90
|
*/
|
|
91
91
|
recorder?(dpr: number, measure: CanvasRenderingContext2D | null): GpuRecorder;
|
|
92
|
-
/** Called
|
|
92
|
+
/** Called each time the GPU context is lost (the engine then draws with Canvas 2D). */
|
|
93
93
|
onLost(callback: () => void): void;
|
|
94
|
+
/** Called each time the context comes back after a loss, ready to draw again. */
|
|
95
|
+
onRestored?(callback: () => void): void;
|
|
94
96
|
destroy(): void;
|
|
95
97
|
}
|
|
96
98
|
//# sourceMappingURL=gpu.d.ts.map
|
package/dist/engine/gpu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/engine/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjG,0GAA0G;AAC1G,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjE,gGAAgG;AAChG,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,4GAA4G;AAC5G,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC;IAC3D,iFAAiF;IACjF,QAAQ,CAAC,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC7C;AAED,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvC,yEAAyE;IACzE,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,WAAW,CAAC;IAC9E,
|
|
1
|
+
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/engine/gpu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEjG,0GAA0G;AAC1G,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjE,gGAAgG;AAChG,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,4GAA4G;AAC5G,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC;IAC3D,iFAAiF;IACjF,QAAQ,CAAC,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC7C;AAED,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvC,yEAAyE;IACzE,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B;AAED,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,WAAW,CAAC;IAC9E,uFAAuF;IACvF,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACnC,iFAAiF;IACjF,UAAU,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The WebGL contexts the charts on a page hold at once. Chrome and Safari
|
|
3
|
+
* keep about 16 a page and, past that, drop the oldest, whoever's it is (a
|
|
4
|
+
* live chart's, a map's), never to hand it back. The charts stop short of
|
|
5
|
+
* that and leave the rest to the page; a chart asked for WebGL past the limit
|
|
6
|
+
* draws with Canvas 2D until a context is let go. The count is per copy of
|
|
7
|
+
* the library loaded on the page.
|
|
8
|
+
*/
|
|
9
|
+
/** How many charts draw with WebGL at once, unless set otherwise. */
|
|
10
|
+
export declare const DEFAULT_MAX_WEBGL_CHARTS = 8;
|
|
11
|
+
/**
|
|
12
|
+
* At most `count` charts on the page draw with WebGL at once (default 8;
|
|
13
|
+
* `Infinity` for no limit). Charts that draw with WebGL already keep it when
|
|
14
|
+
* the limit drops below them; it holds for those asking from then on.
|
|
15
|
+
*/
|
|
16
|
+
export declare function setMaxWebGLCharts(count: number): void;
|
|
17
|
+
/** How many more charts may draw with WebGL now. */
|
|
18
|
+
export declare function gpuContextsLeft(): number;
|
|
19
|
+
/** A context of the charts' share, or null when they hold all of it: the function given back lets it go (once). */
|
|
20
|
+
export declare function claimGpuContext(): (() => void) | null;
|
|
21
|
+
/** `callback`, once, the next time a context may be had; the function given back stops waiting. */
|
|
22
|
+
export declare function whenGpuContextFree(callback: () => void): () => void;
|
|
23
|
+
//# sourceMappingURL=gpuContexts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpuContexts.d.ts","sourceRoot":"","sources":["../../src/engine/gpuContexts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGrD;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,mHAAmH;AACnH,wBAAgB,eAAe,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAUrD;AAED,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKnE"}
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { RenderLoop } from './RenderLoop.js';
|
|
|
4
4
|
export { DPRManager } from './DPRManager.js';
|
|
5
5
|
export { RenderEngine } from './RenderEngine.js';
|
|
6
6
|
export type { RenderContext, PanelRenderInfo } from './RenderEngine.js';
|
|
7
|
-
export { loadWebGLRenderer } from './loadWebGL.js';
|
|
7
|
+
export { loadWebGL, loadWebGLRenderer } from './loadWebGL.js';
|
|
8
|
+
export type { WebGLLoad } from './loadWebGL.js';
|
|
9
|
+
export { DEFAULT_MAX_WEBGL_CHARTS, setMaxWebGLCharts, gpuContextsLeft, claimGpuContext, whenGpuContextFree } from './gpuContexts.js';
|
|
8
10
|
export type { GpuRenderer, GpuFrame, GpuDrawn, GpuBackground, GpuRect, GpuRecorder, GpuRegion, RendererMode } from './gpu.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACrI,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { GpuRenderer } from './gpu.js';
|
|
2
|
+
/** What `loadWebGL` got: a renderer, or why not. */
|
|
3
|
+
export type WebGLLoad = {
|
|
4
|
+
gpu: GpuRenderer;
|
|
5
|
+
reason?: undefined;
|
|
6
|
+
} | {
|
|
7
|
+
gpu: null;
|
|
8
|
+
reason: 'unsupported' | 'limit';
|
|
9
|
+
};
|
|
2
10
|
/**
|
|
3
11
|
* The WebGL renderer, loaded on first use so it stays out of the main bundle.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
12
|
+
* It holds one of the WebGL contexts the charts on the page may have
|
|
13
|
+
* (`setMaxWebGLCharts`), claimed before anything is loaded so two charts can't
|
|
14
|
+
* both take the last one. None when the charts hold all of them ('limit'), nor
|
|
15
|
+
* where WebGL 2 can't be had, or with 'auto' only runs in software, slower
|
|
16
|
+
* than Canvas 2D ('unsupported'). A failure to load (offline, a blocked
|
|
6
17
|
* script) is logged as a warning, not thrown: the chart draws on with Canvas 2D.
|
|
7
18
|
*/
|
|
19
|
+
export declare function loadWebGL(mode: 'webgl' | 'auto'): Promise<WebGLLoad>;
|
|
20
|
+
/** The renderer `loadWebGL` gets, or null. */
|
|
8
21
|
export declare function loadWebGLRenderer(mode: 'webgl' | 'auto'): Promise<GpuRenderer | null>;
|
|
9
22
|
//# sourceMappingURL=loadWebGL.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadWebGL.d.ts","sourceRoot":"","sources":["../../src/engine/loadWebGL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"loadWebGL.d.ts","sourceRoot":"","sources":["../../src/engine/loadWebGL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,oDAAoD;AACpD,MAAM,MAAM,SAAS,GACjB;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,GACxC;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAA;CAAE,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAiB1E;AAED,8CAA8C;AAC9C,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAE3F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChartType, ChartTypeOptions, DrawingState, IndicatorStyleConfig, TradingOrder, TradingPosition, Theme } from '@tradecanvas/commons';
|
|
1
|
+
import { ChartStyleOverrides, ChartType, ChartTypeOptions, DrawingState, IndicatorStyleConfig, PaneStyle, TradingOrder, TradingPosition, Theme } from '@tradecanvas/commons';
|
|
2
2
|
import { PriceAlert } from './AlertManager.js';
|
|
3
3
|
/**
|
|
4
4
|
* Serializable chart state for save/load functionality.
|
|
@@ -18,6 +18,8 @@ export interface ChartSnapshot {
|
|
|
18
18
|
offset: number;
|
|
19
19
|
};
|
|
20
20
|
theme?: string | Theme;
|
|
21
|
+
/** The user's style overrides, by the name of the theme they go with (from version 3 on). */
|
|
22
|
+
overrides?: Record<string, ChartStyleOverrides>;
|
|
21
23
|
locale?: string;
|
|
22
24
|
indicators: SnapshotIndicator[];
|
|
23
25
|
drawings: DrawingState[];
|
|
@@ -40,6 +42,8 @@ export interface SnapshotIndicator {
|
|
|
40
42
|
pane?: string;
|
|
41
43
|
/** `'left'`: an overlay on the left price scale. */
|
|
42
44
|
scale?: 'left';
|
|
45
|
+
/** Its pane's own background and separator. */
|
|
46
|
+
paneStyle?: PaneStyle;
|
|
43
47
|
/** For an indicator with a pane of its own: the pane's height, place among the panes, fold and maximise. */
|
|
44
48
|
paneSize?: number;
|
|
45
49
|
paneOrder?: number;
|
|
@@ -52,9 +56,10 @@ export interface SnapshotIndicator {
|
|
|
52
56
|
}
|
|
53
57
|
/**
|
|
54
58
|
* 2: indicators (params, pane, style, visibility) and full alerts (channel,
|
|
55
|
-
* repeating, label) are captured
|
|
59
|
+
* repeating, label) are captured; version-1 saves carry no indicators.
|
|
60
|
+
* 3: the user's style overrides too.
|
|
56
61
|
*/
|
|
57
|
-
export declare const SNAPSHOT_VERSION =
|
|
62
|
+
export declare const SNAPSHOT_VERSION = 3;
|
|
58
63
|
export declare function validateSnapshot(raw: unknown): ChartSnapshot;
|
|
59
64
|
export declare class ChartStateManager {
|
|
60
65
|
/**
|
|
@@ -67,6 +72,8 @@ export declare class ChartStateManager {
|
|
|
67
72
|
getAlerts?: () => PriceAlert[];
|
|
68
73
|
getTheme: () => Theme;
|
|
69
74
|
getIndicators?: () => SnapshotIndicator[];
|
|
75
|
+
/** The user's style overrides by theme name. */
|
|
76
|
+
getOverrides?: () => Record<string, ChartStyleOverrides>;
|
|
70
77
|
}, meta?: {
|
|
71
78
|
symbol?: string;
|
|
72
79
|
timeframe?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartState.d.ts","sourceRoot":"","sources":["../../src/features/ChartState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartState.d.ts","sourceRoot":"","sources":["../../src/features/ChartState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { computeTickStep as e } from "@tradecanvas/commons";
|
|
1
|
+
import { computeTickStep as e, lineDash as t } from "@tradecanvas/commons";
|
|
2
2
|
//#region src/viewport/ScaleMapping.ts
|
|
3
|
-
function
|
|
3
|
+
function n(e, t) {
|
|
4
4
|
return e * (t.barWidth + t.barSpacing) - t.offset + t.chartRect.x + t.barWidth / 2;
|
|
5
5
|
}
|
|
6
|
-
function
|
|
6
|
+
function r(e, t) {
|
|
7
7
|
let { min: n, max: r } = t.priceRange, { y: i, height: a } = t.chartRect, o;
|
|
8
8
|
if (t.logScale && n > 0 && r > 0) {
|
|
9
9
|
let t = Math.log(n), s = Math.log(r) - t;
|
|
@@ -16,7 +16,7 @@ function n(e, t) {
|
|
|
16
16
|
}
|
|
17
17
|
return i + a * (t.invertScale ? o : 1 - o);
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function i(e) {
|
|
20
20
|
let { min: t, max: n } = e.priceRange, { y: r, height: i } = e.chartRect, a = e.invertScale === !0;
|
|
21
21
|
if (e.logScale && t > 0 && n > 0) {
|
|
22
22
|
let e = Math.log(t), o = Math.log(n) - e;
|
|
@@ -29,7 +29,7 @@ function r(e) {
|
|
|
29
29
|
let s = i / o;
|
|
30
30
|
return a ? (e) => r + (e - t) * s : (e) => r + (n - e) * s;
|
|
31
31
|
}
|
|
32
|
-
function
|
|
32
|
+
function a(e, t, n, r) {
|
|
33
33
|
let { min: i, max: a } = n.priceRange, o = (a - i) / t, s = r(i + e * o), c = r(i + (e + 1) * o);
|
|
34
34
|
return {
|
|
35
35
|
top: Math.min(s, c),
|
|
@@ -37,11 +37,11 @@ function i(e, t, n, r) {
|
|
|
37
37
|
mid: (s + c) / 2
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function o(e, t) {
|
|
41
41
|
let n = t.barWidth + t.barSpacing;
|
|
42
42
|
return Math.round((e - t.chartRect.x - t.barWidth / 2 + t.offset) / n);
|
|
43
43
|
}
|
|
44
|
-
function
|
|
44
|
+
function s(e, t) {
|
|
45
45
|
let { min: n, max: r } = t.priceRange, i = (e - t.chartRect.y) / t.chartRect.height, a = t.invertScale ? i : 1 - i;
|
|
46
46
|
if (t.logScale && n > 0 && r > 0) {
|
|
47
47
|
let e = Math.log(n);
|
|
@@ -49,41 +49,41 @@ function o(e, t) {
|
|
|
49
49
|
}
|
|
50
50
|
return n + (r - n) * a;
|
|
51
51
|
}
|
|
52
|
-
var
|
|
53
|
-
function
|
|
52
|
+
var c = /* @__PURE__ */ new WeakMap();
|
|
53
|
+
function l(e) {
|
|
54
54
|
let t = e.length;
|
|
55
55
|
if (t < 2) return 0;
|
|
56
|
-
let n =
|
|
56
|
+
let n = c.get(e);
|
|
57
57
|
if (n && n.length === t) return n.step;
|
|
58
58
|
let r = [];
|
|
59
59
|
for (let n = Math.max(1, t - 20); n < t; n++) r.push(e[n].time - e[n - 1].time);
|
|
60
60
|
r.sort((e, t) => e - t);
|
|
61
61
|
let i = Math.max(0, r[r.length >> 1]);
|
|
62
|
-
return
|
|
62
|
+
return c.set(e, {
|
|
63
63
|
length: t,
|
|
64
64
|
step: i
|
|
65
65
|
}), i;
|
|
66
66
|
}
|
|
67
|
-
function
|
|
68
|
-
let t =
|
|
67
|
+
function u(e) {
|
|
68
|
+
let t = l(e);
|
|
69
69
|
return (e.length > 0 ? e[e.length - 1].time : 0) > 0xe8d4a51000 ? t : t * 1e3;
|
|
70
70
|
}
|
|
71
|
-
function
|
|
71
|
+
function d(e, t) {
|
|
72
72
|
let n = t.length;
|
|
73
73
|
if (n === 0) return e;
|
|
74
74
|
let r = n - 1;
|
|
75
|
-
if (e > r) return t[r].time + (e - r) *
|
|
76
|
-
if (e < 0) return t[0].time + e *
|
|
75
|
+
if (e > r) return t[r].time + (e - r) * l(t);
|
|
76
|
+
if (e < 0) return t[0].time + e * l(t);
|
|
77
77
|
let i = Math.floor(e);
|
|
78
78
|
return i === e || i >= r ? t[i].time : t[i].time + (e - i) * (t[i + 1].time - t[i].time);
|
|
79
79
|
}
|
|
80
|
-
function
|
|
80
|
+
function f(e, t) {
|
|
81
81
|
if (t.length === 0) return -1;
|
|
82
82
|
let n = t[0].time, r = t.length - 1, i = t[r].time;
|
|
83
83
|
if (e <= n || e >= i) {
|
|
84
84
|
if (e === n) return 0;
|
|
85
85
|
if (e === i) return r;
|
|
86
|
-
let a =
|
|
86
|
+
let a = l(t);
|
|
87
87
|
return a <= 0 ? e < n ? 0 : r : e < n ? (e - n) / a : r + (e - i) / a;
|
|
88
88
|
}
|
|
89
89
|
let a = 0, o = t.length - 1;
|
|
@@ -94,27 +94,27 @@ function d(e, t) {
|
|
|
94
94
|
}
|
|
95
95
|
if (a >= t.length) return t.length - 1;
|
|
96
96
|
if (o < 0) return 0;
|
|
97
|
-
let s = t[o].time,
|
|
97
|
+
let s = t[o].time, c = t[a].time, u = c === s ? 0 : (e - s) / (c - s);
|
|
98
98
|
return o + u;
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function p(e, t) {
|
|
101
101
|
let n = t.data;
|
|
102
|
-
return n && n.length > 0 ?
|
|
103
|
-
}
|
|
104
|
-
function p(e, n) {
|
|
105
|
-
return t(f(e, n), n);
|
|
102
|
+
return n && n.length > 0 ? f(e, n) : e;
|
|
106
103
|
}
|
|
107
104
|
function m(e, t) {
|
|
108
|
-
|
|
109
|
-
|
|
105
|
+
return n(p(e, t), t);
|
|
106
|
+
}
|
|
107
|
+
function h(e, t) {
|
|
108
|
+
let n = o(e, t), r = t.data;
|
|
109
|
+
return r && r.length > 0 ? d(n, r) : n;
|
|
110
110
|
}
|
|
111
111
|
//#endregion
|
|
112
112
|
//#region src/charts/pixelGrid.ts
|
|
113
|
-
var
|
|
114
|
-
function g(e) {
|
|
115
|
-
return Math.floor(e + h);
|
|
116
|
-
}
|
|
113
|
+
var g = .5037;
|
|
117
114
|
function _(e) {
|
|
115
|
+
return Math.floor(e + g);
|
|
116
|
+
}
|
|
117
|
+
function v(e) {
|
|
118
118
|
let t = typeof e.getTransform == "function" ? e.getTransform() : void 0;
|
|
119
119
|
return {
|
|
120
120
|
a: t && Number.isFinite(t.a) && t.a > 0 ? t.a : 1,
|
|
@@ -123,43 +123,43 @@ function _(e) {
|
|
|
123
123
|
f: t && Number.isFinite(t.f) ? t.f : 0
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
|
-
function
|
|
127
|
-
let { a: n, d: r, e: i, f: a } =
|
|
126
|
+
function y(e, t) {
|
|
127
|
+
let { a: n, d: r, e: i, f: a } = v(e);
|
|
128
128
|
e.save(), e.setTransform(1, 0, 0, 1, 0, 0);
|
|
129
129
|
try {
|
|
130
130
|
return t({
|
|
131
131
|
ratio: n,
|
|
132
|
-
x: (e) =>
|
|
133
|
-
y: (e) =>
|
|
134
|
-
left: (e, t) =>
|
|
132
|
+
x: (e) => _(e * n + i),
|
|
133
|
+
y: (e) => _(e * r + a),
|
|
134
|
+
left: (e, t) => _(e * n + i - t / 2)
|
|
135
135
|
});
|
|
136
136
|
} finally {
|
|
137
137
|
e.restore();
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function b(e, t) {
|
|
141
141
|
let n = Math.max(1, Math.floor(t)), r = Math.max(n, Math.round(e * t));
|
|
142
142
|
return (r - n) % 2 != 0 && --r, {
|
|
143
143
|
body: Math.max(r, n),
|
|
144
144
|
wick: n
|
|
145
145
|
};
|
|
146
146
|
}
|
|
147
|
-
function
|
|
147
|
+
function x(e, t, n, r) {
|
|
148
148
|
let i = Math.max(1, Math.round(t * n)), a = i % 2 ? .5 : 0;
|
|
149
149
|
return {
|
|
150
|
-
at: (
|
|
150
|
+
at: (_(e * n + r - a) + a - r) / n,
|
|
151
151
|
width: i / n
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
|
-
function
|
|
155
|
-
let r =
|
|
154
|
+
function S(e, t, n) {
|
|
155
|
+
let r = v(e), i = x(t, n, r.d, r.f);
|
|
156
156
|
return {
|
|
157
157
|
y: i.at,
|
|
158
158
|
width: i.width
|
|
159
159
|
};
|
|
160
160
|
}
|
|
161
|
-
function
|
|
162
|
-
let r =
|
|
161
|
+
function C(e, t, n) {
|
|
162
|
+
let r = v(e), i = x(t, n, r.a, r.e);
|
|
163
163
|
return {
|
|
164
164
|
x: i.at,
|
|
165
165
|
width: i.width
|
|
@@ -167,11 +167,11 @@ function S(e, t, n) {
|
|
|
167
167
|
}
|
|
168
168
|
//#endregion
|
|
169
169
|
//#region src/charts/denseBars.ts
|
|
170
|
-
var
|
|
171
|
-
function
|
|
170
|
+
var w = 1;
|
|
171
|
+
function T(e) {
|
|
172
172
|
return e.barWidth < 1;
|
|
173
173
|
}
|
|
174
|
-
function
|
|
174
|
+
function E(e, t, n, r, i) {
|
|
175
175
|
let a = Math.min(n, e.length - 1);
|
|
176
176
|
if (t > a) return;
|
|
177
177
|
let o = {
|
|
@@ -188,28 +188,28 @@ function T(e, t, n, r, i) {
|
|
|
188
188
|
}
|
|
189
189
|
s && i(o);
|
|
190
190
|
}
|
|
191
|
-
function
|
|
192
|
-
let { from: o, to: s } = n.visibleRange, c = n.barWidth + n.barSpacing, l = -n.offset + n.chartRect.x + n.barWidth / 2, u =
|
|
193
|
-
|
|
194
|
-
let
|
|
195
|
-
|
|
196
|
-
let t = n.y(u(e.high)),
|
|
197
|
-
(e.close >= e.open ?
|
|
198
|
-
}), e.fillStyle =
|
|
191
|
+
function D(e, t, n, r, a) {
|
|
192
|
+
let { from: o, to: s } = n.visibleRange, c = n.barWidth + n.barSpacing, l = -n.offset + n.chartRect.x + n.barWidth / 2, u = i(n);
|
|
193
|
+
y(e, (n) => {
|
|
194
|
+
let i = new Path2D(), d = new Path2D();
|
|
195
|
+
E(t, o, s, (e) => e * c + l, (e) => {
|
|
196
|
+
let t = n.y(u(e.high)), r = n.y(u(e.low)), a = n.x(e.x), o = Math.max(1, n.x(e.x + 1) - a);
|
|
197
|
+
(e.close >= e.open ? i : d).rect(a, Math.min(t, r), o, Math.max(Math.abs(r - t), 1));
|
|
198
|
+
}), e.fillStyle = r, e.fill(i), e.fillStyle = a, e.fill(d);
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
//#endregion
|
|
202
202
|
//#region src/axis/gridLines.ts
|
|
203
|
-
var
|
|
204
|
-
function
|
|
205
|
-
let { chartRect: n, priceRange:
|
|
206
|
-
if (
|
|
203
|
+
var O = 80;
|
|
204
|
+
function k(t) {
|
|
205
|
+
let { chartRect: n, priceRange: r } = t;
|
|
206
|
+
if (r.max - r.min <= 0) return {
|
|
207
207
|
horizontal: [],
|
|
208
208
|
vertical: []
|
|
209
209
|
};
|
|
210
|
-
let a =
|
|
211
|
-
for (let e = c; e <=
|
|
212
|
-
let l = [], u = t.barWidth + t.barSpacing, d = Math.max(1, Math.ceil(
|
|
210
|
+
let a = i(t), o = [], s = e(r.min, r.max, 8), c = Math.ceil(r.min / s) * s;
|
|
211
|
+
for (let e = c; e <= r.max; e += s) o.push(Math.round(a(e)) + .5);
|
|
212
|
+
let l = [], u = t.barWidth + t.barSpacing, d = Math.max(1, Math.ceil(O / u)), f = -t.offset + n.x + t.barWidth / 2, p = Math.floor(t.offset / u), m = Math.ceil((t.offset + n.width) / u);
|
|
213
213
|
for (let e = p; e <= m; e++) e % d === 0 && l.push(Math.round(e * u + f) + .5);
|
|
214
214
|
return {
|
|
215
215
|
horizontal: o,
|
|
@@ -217,6 +217,100 @@ function O(t) {
|
|
|
217
217
|
};
|
|
218
218
|
}
|
|
219
219
|
//#endregion
|
|
220
|
-
|
|
220
|
+
//#region src/axis/GridRenderer.ts
|
|
221
|
+
var A = [4, 4], j = class {
|
|
222
|
+
visible = !0;
|
|
223
|
+
setVisible(e) {
|
|
224
|
+
this.visible = e;
|
|
225
|
+
}
|
|
226
|
+
isVisible() {
|
|
227
|
+
return this.visible;
|
|
228
|
+
}
|
|
229
|
+
render(e, t, n) {
|
|
230
|
+
if (!this.visible) return;
|
|
231
|
+
let { chartRect: r } = t, { horizontal: i, vertical: a } = k(t), o = M(n), s = o.horizontal, c = o.vertical;
|
|
232
|
+
if (s.visible && c.visible && s.color === c.color && s.style === c.style && s.width === c.width) {
|
|
233
|
+
P(e, s, () => {
|
|
234
|
+
for (let t of i) {
|
|
235
|
+
let n = F(t, s.width);
|
|
236
|
+
e.moveTo(r.x, n), e.lineTo(r.x + r.width, n);
|
|
237
|
+
}
|
|
238
|
+
for (let t of a) {
|
|
239
|
+
let n = F(t, c.width);
|
|
240
|
+
e.moveTo(n, r.y), e.lineTo(n, r.y + r.height);
|
|
241
|
+
}
|
|
242
|
+
}), e.setLineDash([]);
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
o.horizontal.visible && i.length > 0 && P(e, o.horizontal, () => {
|
|
246
|
+
for (let t of i) {
|
|
247
|
+
let n = F(t, o.horizontal.width);
|
|
248
|
+
e.moveTo(r.x, n), e.lineTo(r.x + r.width, n);
|
|
249
|
+
}
|
|
250
|
+
}), o.vertical.visible && a.length > 0 && P(e, o.vertical, () => {
|
|
251
|
+
for (let t of a) {
|
|
252
|
+
let n = F(t, o.vertical.width);
|
|
253
|
+
e.moveTo(n, r.y), e.lineTo(n, r.y + r.height);
|
|
254
|
+
}
|
|
255
|
+
}), e.setLineDash([]);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
function M(e) {
|
|
259
|
+
let t = {
|
|
260
|
+
visible: !0,
|
|
261
|
+
color: e.grid,
|
|
262
|
+
style: "solid",
|
|
263
|
+
width: 1
|
|
264
|
+
};
|
|
265
|
+
return e.style?.grid ?? {
|
|
266
|
+
horizontal: t,
|
|
267
|
+
vertical: t
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
function N(e) {
|
|
271
|
+
let { horizontal: t, vertical: n } = M(e), r = [t, n].filter((e) => e.visible);
|
|
272
|
+
return r.every((e) => e.style === "solid" && e.width === 1 && e.color === r[0].color);
|
|
273
|
+
}
|
|
274
|
+
function P(e, n, r) {
|
|
275
|
+
e.strokeStyle = n.color, e.lineWidth = n.width, e.setLineDash(t(n.style, A, n.width)), e.beginPath(), r(), e.stroke();
|
|
276
|
+
}
|
|
277
|
+
function F(e, t) {
|
|
278
|
+
return t % 2 == 0 ? Math.round(e) : e;
|
|
279
|
+
}
|
|
280
|
+
//#endregion
|
|
281
|
+
//#region src/engine/gpuContexts.ts
|
|
282
|
+
var I = 8, L = 8, R = 0, z = /* @__PURE__ */ new Set();
|
|
283
|
+
function B(e) {
|
|
284
|
+
L = Number.isNaN(e) ? 8 : Math.max(0, Math.floor(e)), V() > 0 && W();
|
|
285
|
+
}
|
|
286
|
+
function V() {
|
|
287
|
+
return Math.max(0, L - R);
|
|
288
|
+
}
|
|
289
|
+
function H() {
|
|
290
|
+
if (R >= L) return null;
|
|
291
|
+
R++;
|
|
292
|
+
let e = !1;
|
|
293
|
+
return () => {
|
|
294
|
+
e || (e = !0, R--, W());
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
function U(e) {
|
|
298
|
+
return z.add(e), () => {
|
|
299
|
+
z.delete(e);
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
function W() {
|
|
303
|
+
let e = [...z];
|
|
304
|
+
z.clear();
|
|
305
|
+
for (let t of e) try {
|
|
306
|
+
t();
|
|
307
|
+
} catch (e) {
|
|
308
|
+
queueMicrotask(() => {
|
|
309
|
+
throw e;
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
//#endregion
|
|
314
|
+
export { h as A, a as C, m as D, p as E, f as O, u as S, i as T, S as _, U as a, n as b, M as c, E as d, T as f, C as g, b as h, B as i, s as j, o as k, k as l, g as m, H as n, j as o, D as p, V as r, N as s, I as t, w as u, y as v, r as w, l as x, d as y };
|
|
221
315
|
|
|
222
|
-
//# sourceMappingURL=
|
|
316
|
+
//# sourceMappingURL=gpuContexts-Bn58hj7u.js.map
|