@forgecharts/sdk 1.1.23 → 1.1.28
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/dist/__tests__/backwardCompatibility.test.d.ts +14 -0
- package/dist/__tests__/backwardCompatibility.test.d.ts.map +1 -0
- package/dist/__tests__/backwardCompatibility.test.js +159 -0
- package/dist/__tests__/backwardCompatibility.test.js.map +1 -0
- package/dist/__tests__/candleInvariant.test.d.ts +20 -0
- package/dist/__tests__/candleInvariant.test.d.ts.map +1 -0
- package/dist/__tests__/candleInvariant.test.js +415 -0
- package/dist/__tests__/candleInvariant.test.js.map +1 -0
- package/dist/__tests__/public-api-surface.d.ts +13 -0
- package/dist/__tests__/public-api-surface.d.ts.map +1 -0
- package/{src/__tests__/public-api-surface.ts → dist/__tests__/public-api-surface.js} +4 -42
- package/dist/__tests__/public-api-surface.js.map +1 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
- package/dist/__tests__/timeframeBoundary.test.js +452 -0
- package/dist/__tests__/timeframeBoundary.test.js.map +1 -0
- package/dist/api/DrawingManager.d.ts +20 -0
- package/dist/api/DrawingManager.d.ts.map +1 -0
- package/dist/api/DrawingManager.js +190 -0
- package/dist/api/DrawingManager.js.map +1 -0
- package/dist/api/EventBus.d.ts +19 -0
- package/dist/api/EventBus.d.ts.map +1 -0
- package/dist/api/EventBus.js +44 -0
- package/dist/api/EventBus.js.map +1 -0
- package/dist/api/IndicatorDAG.d.ts +85 -0
- package/dist/api/IndicatorDAG.d.ts.map +1 -0
- package/dist/api/IndicatorDAG.js +316 -0
- package/dist/api/IndicatorDAG.js.map +1 -0
- package/dist/api/IndicatorRegistry.d.ts +22 -0
- package/dist/api/IndicatorRegistry.d.ts.map +1 -0
- package/dist/api/IndicatorRegistry.js +39 -0
- package/dist/api/IndicatorRegistry.js.map +1 -0
- package/dist/api/LayoutManager.d.ts +30 -0
- package/dist/api/LayoutManager.d.ts.map +1 -0
- package/dist/api/LayoutManager.js +51 -0
- package/dist/api/LayoutManager.js.map +1 -0
- package/dist/api/PaneManager.d.ts +42 -0
- package/dist/api/PaneManager.d.ts.map +1 -0
- package/dist/api/PaneManager.js +119 -0
- package/dist/api/PaneManager.js.map +1 -0
- package/dist/api/ReferenceAPI.d.ts +78 -0
- package/dist/api/ReferenceAPI.d.ts.map +1 -0
- package/dist/api/ReferenceAPI.js +153 -0
- package/dist/api/ReferenceAPI.js.map +1 -0
- package/dist/api/TChart.d.ts +345 -0
- package/dist/api/TChart.d.ts.map +1 -0
- package/dist/api/TChart.js +765 -0
- package/dist/api/TChart.js.map +1 -0
- package/{src/api/createChart.ts → dist/api/createChart.d.ts} +2 -7
- package/dist/api/createChart.d.ts.map +1 -0
- package/dist/api/createChart.js +42 -0
- package/dist/api/createChart.js.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.js +22 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.js.map +1 -0
- package/dist/api/drawing tools/lines menu/crossLine.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/crossLine.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/crossLine.js +16 -0
- package/dist/api/drawing tools/lines menu/crossLine.js.map +1 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.d.ts +17 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.js +59 -0
- package/dist/api/drawing tools/lines menu/disjointChannel.js.map +1 -0
- package/dist/api/drawing tools/lines menu/extendedLine.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/extendedLine.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/extendedLine.js +17 -0
- package/dist/api/drawing tools/lines menu/extendedLine.js.map +1 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.js +41 -0
- package/dist/api/drawing tools/lines menu/flatTopBottom.js.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontal.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/horizontal.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontal.js +19 -0
- package/dist/api/drawing tools/lines menu/horizontal.js.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.js +20 -0
- package/dist/api/drawing tools/lines menu/horizontalRay.js.map +1 -0
- package/dist/api/drawing tools/lines menu/infoLine.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/infoLine.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/infoLine.js +107 -0
- package/dist/api/drawing tools/lines menu/infoLine.js.map +1 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.js +31 -0
- package/dist/api/drawing tools/lines menu/insidePitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js +15 -0
- package/dist/api/drawing tools/lines menu/modifiedSchiffPitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.js +43 -0
- package/dist/api/drawing tools/lines menu/parallelChannel.js.map +1 -0
- package/dist/api/drawing tools/lines menu/pitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/pitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/pitchfork.js +12 -0
- package/dist/api/drawing tools/lines menu/pitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/ray.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/ray.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/ray.js +23 -0
- package/dist/api/drawing tools/lines menu/ray.js.map +1 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.js +127 -0
- package/dist/api/drawing tools/lines menu/regressionTrend.js.map +1 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.js +15 -0
- package/dist/api/drawing tools/lines menu/schiffPitchfork.js.map +1 -0
- package/dist/api/drawing tools/lines menu/trendAngle.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/trendAngle.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/trendAngle.js +51 -0
- package/dist/api/drawing tools/lines menu/trendAngle.js.map +1 -0
- package/dist/api/drawing tools/lines menu/trendline.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/trendline.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/trendline.js +11 -0
- package/dist/api/drawing tools/lines menu/trendline.js.map +1 -0
- package/dist/api/drawing tools/lines menu/vertical.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
- package/dist/api/drawing tools/lines menu/vertical.js +11 -0
- package/dist/api/drawing tools/lines menu/vertical.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/crosshair.d.ts +16 -0
- package/dist/api/drawing tools/pointers menu/crosshair.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.js } +6 -7
- package/dist/api/drawing tools/pointers menu/crosshair.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/cursor.d.ts +15 -0
- package/dist/api/drawing tools/pointers menu/cursor.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/cursor.ts → dist/api/drawing tools/pointers menu/cursor.js } +7 -8
- package/dist/api/drawing tools/pointers menu/cursor.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/demonstration.d.ts +30 -0
- package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.js } +9 -14
- package/dist/api/drawing tools/pointers menu/demonstration.js.map +1 -0
- package/dist/api/drawing tools/pointers menu/dot.d.ts +23 -0
- package/dist/api/drawing tools/pointers menu/dot.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.js } +8 -11
- package/dist/api/drawing tools/pointers menu/dot.js.map +1 -0
- package/dist/api/drawing tools/shapes menu/rectangle.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/rectangle.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/rectangle.js +19 -0
- package/dist/api/drawing tools/shapes menu/rectangle.js.map +1 -0
- package/dist/api/drawing tools/shapes menu/text.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/text.js +25 -0
- package/dist/api/drawing tools/shapes menu/text.js.map +1 -0
- package/dist/api/drawingUtils.d.ts +22 -0
- package/dist/api/drawingUtils.d.ts.map +1 -0
- package/dist/api/drawingUtils.js +83 -0
- package/dist/api/drawingUtils.js.map +1 -0
- package/dist/core/CanvasLayer.d.ts +26 -0
- package/dist/core/CanvasLayer.d.ts.map +1 -0
- package/dist/core/CanvasLayer.js +56 -0
- package/dist/core/CanvasLayer.js.map +1 -0
- package/dist/core/Chart.d.ts +164 -0
- package/dist/core/Chart.d.ts.map +1 -0
- package/dist/core/Chart.js +839 -0
- package/dist/core/Chart.js.map +1 -0
- package/dist/core/CoordTransform.d.ts +168 -0
- package/dist/core/CoordTransform.d.ts.map +1 -0
- package/dist/core/CoordTransform.js +224 -0
- package/dist/core/CoordTransform.js.map +1 -0
- package/dist/core/Crosshair.d.ts +30 -0
- package/dist/core/Crosshair.d.ts.map +1 -0
- package/dist/core/Crosshair.js +186 -0
- package/dist/core/Crosshair.js.map +1 -0
- package/dist/core/IndicatorEngine.d.ts +51 -0
- package/dist/core/IndicatorEngine.d.ts.map +1 -0
- package/dist/core/IndicatorEngine.js +181 -0
- package/dist/core/IndicatorEngine.js.map +1 -0
- package/dist/core/InteractionManager.d.ts +197 -0
- package/dist/core/InteractionManager.d.ts.map +1 -0
- package/dist/core/InteractionManager.js +698 -0
- package/dist/core/InteractionManager.js.map +1 -0
- package/dist/core/PriceScale.d.ts +27 -0
- package/dist/core/PriceScale.d.ts.map +1 -0
- package/dist/core/PriceScale.js +113 -0
- package/dist/core/PriceScale.js.map +1 -0
- package/dist/core/Series.d.ts +40 -0
- package/dist/core/Series.d.ts.map +1 -0
- package/dist/core/Series.js +114 -0
- package/dist/core/Series.js.map +1 -0
- package/dist/core/TimeScale.d.ts +43 -0
- package/dist/core/TimeScale.d.ts.map +1 -0
- package/dist/core/TimeScale.js +150 -0
- package/dist/core/TimeScale.js.map +1 -0
- package/dist/datafeed/DatafeedConnector.d.ts +89 -0
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
- package/dist/datafeed/DatafeedConnector.js +268 -0
- package/dist/datafeed/DatafeedConnector.js.map +1 -0
- package/dist/engine/CandleEngine.d.ts +207 -0
- package/dist/engine/CandleEngine.d.ts.map +1 -0
- package/dist/engine/CandleEngine.js +318 -0
- package/dist/engine/CandleEngine.js.map +1 -0
- package/dist/engine/__tests__/CandleEngine.test.d.ts +2 -0
- package/dist/engine/__tests__/CandleEngine.test.d.ts.map +1 -0
- package/dist/engine/__tests__/CandleEngine.test.js +300 -0
- package/dist/engine/__tests__/CandleEngine.test.js.map +1 -0
- package/dist/engine/candleInvariants.d.ts +66 -0
- package/dist/engine/candleInvariants.d.ts.map +1 -0
- package/dist/engine/candleInvariants.js +134 -0
- package/dist/engine/candleInvariants.js.map +1 -0
- package/{src/engine/mergeUtils.ts → dist/engine/mergeUtils.d.ts} +15 -52
- package/dist/engine/mergeUtils.d.ts.map +1 -0
- package/dist/engine/mergeUtils.js +64 -0
- package/dist/engine/mergeUtils.js.map +1 -0
- package/dist/engine/timeframeUtils.d.ts +80 -0
- package/dist/engine/timeframeUtils.d.ts.map +1 -0
- package/{src/engine/timeframeUtils.ts → dist/engine/timeframeUtils.js} +30 -48
- package/dist/engine/timeframeUtils.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +29 -0
- package/dist/internal.d.ts.map +1 -0
- package/{src/internal.ts → dist/internal.js} +2 -11
- package/dist/internal.js.map +1 -0
- package/dist/licensing/ChartRuntimeResolver.d.ts +233 -0
- package/dist/licensing/ChartRuntimeResolver.d.ts.map +1 -0
- package/dist/licensing/ChartRuntimeResolver.js +310 -0
- package/dist/licensing/ChartRuntimeResolver.js.map +1 -0
- package/dist/licensing/LicenseManager.d.ts +55 -0
- package/dist/licensing/LicenseManager.d.ts.map +1 -0
- package/dist/licensing/LicenseManager.js +114 -0
- package/dist/licensing/LicenseManager.js.map +1 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts +13 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.d.ts.map +1 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.js +177 -0
- package/dist/licensing/__tests__/ChartRuntimeResolver.test.js.map +1 -0
- package/dist/licensing/__tests__/LicenseManager.test.d.ts +12 -0
- package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
- package/dist/licensing/__tests__/LicenseManager.test.js +153 -0
- package/dist/licensing/__tests__/LicenseManager.test.js.map +1 -0
- package/dist/licensing/licenseTypes.d.ts +18 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -0
- package/dist/licensing/licenseTypes.js +2 -0
- package/dist/licensing/licenseTypes.js.map +1 -0
- package/dist/pine/PineCompiler.d.ts +35 -0
- package/dist/pine/PineCompiler.d.ts.map +1 -0
- package/dist/pine/PineCompiler.js +44 -0
- package/dist/pine/PineCompiler.js.map +1 -0
- package/dist/pine/diagnostics.d.ts +20 -0
- package/dist/pine/diagnostics.d.ts.map +1 -0
- package/dist/pine/diagnostics.js +11 -0
- package/dist/pine/diagnostics.js.map +1 -0
- package/{src/pine/index.ts → dist/pine/index.d.ts} +4 -3
- package/dist/pine/index.d.ts.map +1 -0
- package/dist/pine/index.js +5 -0
- package/dist/pine/index.js.map +1 -0
- package/dist/pine/pine-ast.d.ts +142 -0
- package/dist/pine/pine-ast.d.ts.map +1 -0
- package/dist/pine/pine-ast.js +19 -0
- package/dist/pine/pine-ast.js.map +1 -0
- package/dist/pine/pine-lexer.d.ts +41 -0
- package/dist/pine/pine-lexer.d.ts.map +1 -0
- package/dist/pine/pine-lexer.js +249 -0
- package/dist/pine/pine-lexer.js.map +1 -0
- package/dist/pine/pine-parser.d.ts +51 -0
- package/dist/pine/pine-parser.d.ts.map +1 -0
- package/dist/pine/pine-parser.js +416 -0
- package/dist/pine/pine-parser.js.map +1 -0
- package/dist/pine/pine-transpiler.d.ts +33 -0
- package/dist/pine/pine-transpiler.d.ts.map +1 -0
- package/dist/pine/pine-transpiler.js +260 -0
- package/dist/pine/pine-transpiler.js.map +1 -0
- package/dist/pixi/LayerName.d.ts +18 -0
- package/dist/pixi/LayerName.d.ts.map +1 -0
- package/dist/pixi/LayerName.js +35 -0
- package/dist/pixi/LayerName.js.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.js +107 -0
- package/dist/pixi/PixiCandlestickRenderer.js.map +1 -0
- package/dist/pixi/PixiChart.d.ts +72 -0
- package/dist/pixi/PixiChart.d.ts.map +1 -0
- package/dist/pixi/PixiChart.js +367 -0
- package/dist/pixi/PixiChart.js.map +1 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiCrosshairRenderer.js +110 -0
- package/dist/pixi/PixiCrosshairRenderer.js.map +1 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiDrawingRenderer.js +111 -0
- package/dist/pixi/PixiDrawingRenderer.js.map +1 -0
- package/dist/pixi/PixiGridRenderer.d.ts +22 -0
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiGridRenderer.js +114 -0
- package/dist/pixi/PixiGridRenderer.js.map +1 -0
- package/dist/pixi/PixiLayerManager.d.ts +56 -0
- package/dist/pixi/PixiLayerManager.d.ts.map +1 -0
- package/dist/pixi/PixiLayerManager.js +92 -0
- package/dist/pixi/PixiLayerManager.js.map +1 -0
- package/dist/react/canvas/ChartCanvas.d.ts +85 -0
- package/dist/react/canvas/ChartCanvas.d.ts.map +1 -0
- package/dist/react/canvas/ChartCanvas.js +604 -0
- package/dist/react/canvas/ChartCanvas.js.map +1 -0
- package/dist/react/canvas/ChartContextMenu.d.ts +18 -0
- package/dist/react/canvas/ChartContextMenu.d.ts.map +1 -0
- package/dist/react/canvas/ChartContextMenu.js +5 -0
- package/dist/react/canvas/ChartContextMenu.js.map +1 -0
- package/dist/react/canvas/ChartSettingsDialog.d.ts +25 -0
- package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -0
- package/dist/react/canvas/ChartSettingsDialog.js +28 -0
- package/dist/react/canvas/ChartSettingsDialog.js.map +1 -0
- package/dist/react/canvas/IndicatorLabel.d.ts +21 -0
- package/dist/react/canvas/IndicatorLabel.d.ts.map +1 -0
- package/dist/react/canvas/IndicatorLabel.js +196 -0
- package/dist/react/canvas/IndicatorLabel.js.map +1 -0
- package/dist/react/canvas/IndicatorPane.d.ts +32 -0
- package/dist/react/canvas/IndicatorPane.d.ts.map +1 -0
- package/dist/react/canvas/IndicatorPane.js +395 -0
- package/dist/react/canvas/IndicatorPane.js.map +1 -0
- package/dist/react/canvas/PointerOverlay.d.ts +23 -0
- package/dist/react/canvas/PointerOverlay.d.ts.map +1 -0
- package/dist/react/canvas/PointerOverlay.js +61 -0
- package/dist/react/canvas/PointerOverlay.js.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts +19 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.js +407 -0
- package/dist/react/canvas/toolbars/LeftToolbar.js.map +1 -0
- package/dist/react/hooks/useChartCapabilities.d.ts +21 -0
- package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
- package/dist/react/hooks/useChartCapabilities.js +66 -0
- package/dist/react/hooks/useChartCapabilities.js.map +1 -0
- package/dist/react/index.d.ts +30 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +28 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/internal.d.ts +38 -0
- package/dist/react/internal.d.ts.map +1 -0
- package/dist/react/internal.js +44 -0
- package/dist/react/internal.js.map +1 -0
- package/dist/react/shell/ManagedAppShell.d.ts +91 -0
- package/dist/react/shell/ManagedAppShell.d.ts.map +1 -0
- package/dist/react/shell/ManagedAppShell.js +440 -0
- package/dist/react/shell/ManagedAppShell.js.map +1 -0
- package/dist/react/trading/TradingBridge.d.ts +86 -0
- package/dist/react/trading/TradingBridge.d.ts.map +1 -0
- package/dist/react/trading/TradingBridge.js +73 -0
- package/dist/react/trading/TradingBridge.js.map +1 -0
- package/dist/react/workspace/ChartWorkspace.d.ts +73 -0
- package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -0
- package/dist/react/workspace/ChartWorkspace.js +42 -0
- package/dist/react/workspace/ChartWorkspace.js.map +1 -0
- package/dist/react/workspace/FloatingPanel.d.ts +18 -0
- package/dist/react/workspace/FloatingPanel.d.ts.map +1 -0
- package/dist/react/workspace/FloatingPanel.js +82 -0
- package/dist/react/workspace/FloatingPanel.js.map +1 -0
- package/dist/react/workspace/IndicatorsDialog.d.ts +8 -0
- package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -0
- package/dist/react/workspace/IndicatorsDialog.js +121 -0
- package/dist/react/workspace/IndicatorsDialog.js.map +1 -0
- package/dist/react/workspace/LayoutMenu.d.ts +33 -0
- package/dist/react/workspace/LayoutMenu.d.ts.map +1 -0
- package/dist/react/workspace/LayoutMenu.js +113 -0
- package/dist/react/workspace/LayoutMenu.js.map +1 -0
- package/dist/react/workspace/SymbolSearchDialog.d.ts +10 -0
- package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -0
- package/dist/react/workspace/SymbolSearchDialog.js +245 -0
- package/dist/react/workspace/SymbolSearchDialog.js.map +1 -0
- package/dist/react/workspace/TabBar.d.ts +17 -0
- package/dist/react/workspace/TabBar.d.ts.map +1 -0
- package/dist/react/workspace/TabBar.js +29 -0
- package/dist/react/workspace/TabBar.js.map +1 -0
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts +19 -0
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -0
- package/dist/react/workspace/toolbars/BottomToolbar.js +236 -0
- package/dist/react/workspace/toolbars/BottomToolbar.js.map +1 -0
- package/dist/react/workspace/toolbars/RightToolbar.d.ts +8 -0
- package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -0
- package/dist/react/workspace/toolbars/RightToolbar.js +18 -0
- package/dist/react/workspace/toolbars/RightToolbar.js.map +1 -0
- package/dist/react/workspace/toolbars/TopToolbar.d.ts +41 -0
- package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -0
- package/dist/react/workspace/toolbars/TopToolbar.js +82 -0
- package/dist/react/workspace/toolbars/TopToolbar.js.map +1 -0
- package/dist/renderers/CandlestickRenderer.d.ts +13 -0
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
- package/dist/renderers/CandlestickRenderer.js +98 -0
- package/dist/renderers/CandlestickRenderer.js.map +1 -0
- package/dist/renderers/HistogramRenderer.d.ts +11 -0
- package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
- package/dist/renderers/HistogramRenderer.js +50 -0
- package/dist/renderers/HistogramRenderer.js.map +1 -0
- package/dist/renderers/LineRenderer.d.ts +12 -0
- package/dist/renderers/LineRenderer.d.ts.map +1 -0
- package/dist/renderers/LineRenderer.js +64 -0
- package/dist/renderers/LineRenderer.js.map +1 -0
- package/dist/theme/colors.d.ts +4 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +19 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/tools/barDivergenceCheck.d.ts +120 -0
- package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
- package/dist/tools/barDivergenceCheck.js +200 -0
- package/dist/tools/barDivergenceCheck.js.map +1 -0
- package/dist/trading/TradingOverlayStore.d.ts +86 -0
- package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
- package/dist/trading/TradingOverlayStore.js +139 -0
- package/dist/trading/TradingOverlayStore.js.map +1 -0
- package/dist/trading/UnmanagedIngestion.d.ts +91 -0
- package/dist/trading/UnmanagedIngestion.d.ts.map +1 -0
- package/dist/trading/UnmanagedIngestion.js +114 -0
- package/dist/trading/UnmanagedIngestion.js.map +1 -0
- package/dist/trading/__tests__/ManagedTradingController.test.d.ts +18 -0
- package/dist/trading/__tests__/ManagedTradingController.test.d.ts.map +1 -0
- package/dist/trading/__tests__/ManagedTradingController.test.js +271 -0
- package/dist/trading/__tests__/ManagedTradingController.test.js.map +1 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.d.ts +16 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.map +1 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.js +267 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.js.map +1 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts +16 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.d.ts.map +1 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.js +170 -0
- package/dist/trading/__tests__/UnmanagedIngestion.test.js.map +1 -0
- package/dist/trading/managed/ManagedTradingController.d.ts +110 -0
- package/dist/trading/managed/ManagedTradingController.d.ts.map +1 -0
- package/dist/trading/managed/ManagedTradingController.js +247 -0
- package/dist/trading/managed/ManagedTradingController.js.map +1 -0
- package/dist/trading/managed/managedCapabilities.d.ts +45 -0
- package/dist/trading/managed/managedCapabilities.d.ts.map +1 -0
- package/dist/trading/managed/managedCapabilities.js +79 -0
- package/dist/trading/managed/managedCapabilities.js.map +1 -0
- package/dist/trading/managed/managedTypes.d.ts +122 -0
- package/dist/trading/managed/managedTypes.d.ts.map +1 -0
- package/dist/trading/managed/managedTypes.js +13 -0
- package/dist/trading/managed/managedTypes.js.map +1 -0
- package/dist/trading/tradingTypes.d.ts +89 -0
- package/dist/trading/tradingTypes.d.ts.map +1 -0
- package/dist/trading/tradingTypes.js +8 -0
- package/dist/trading/tradingTypes.js.map +1 -0
- package/dist/tscript/TScriptIndicator.d.ts +41 -0
- package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
- package/dist/tscript/TScriptIndicator.js +47 -0
- package/dist/tscript/TScriptIndicator.js.map +1 -0
- package/dist/tscript/ast.d.ts +89 -0
- package/dist/tscript/ast.d.ts.map +1 -0
- package/dist/tscript/ast.js +22 -0
- package/dist/tscript/ast.js.map +1 -0
- package/dist/tscript/lexer.d.ts +36 -0
- package/dist/tscript/lexer.d.ts.map +1 -0
- package/dist/tscript/lexer.js +187 -0
- package/dist/tscript/lexer.js.map +1 -0
- package/dist/tscript/parser.d.ts +50 -0
- package/dist/tscript/parser.d.ts.map +1 -0
- package/dist/tscript/parser.js +318 -0
- package/dist/tscript/parser.js.map +1 -0
- package/dist/tscript/runtime.d.ts +123 -0
- package/dist/tscript/runtime.d.ts.map +1 -0
- package/dist/tscript/runtime.js +475 -0
- package/dist/tscript/runtime.js.map +1 -0
- package/dist/tscript/series.d.ts +49 -0
- package/dist/tscript/series.d.ts.map +1 -0
- package/dist/tscript/series.js +79 -0
- package/dist/tscript/series.js.map +1 -0
- package/dist/types/IChart.d.ts +48 -0
- package/dist/types/IChart.d.ts.map +1 -0
- package/dist/types/IChart.js +2 -0
- package/dist/types/IChart.js.map +1 -0
- package/{src/types/IRenderer.ts → dist/types/IRenderer.d.ts} +2 -8
- package/dist/types/IRenderer.d.ts.map +1 -0
- package/dist/types/IRenderer.js +2 -0
- package/dist/types/IRenderer.js.map +1 -0
- package/dist/types/ISeries.d.ts +26 -0
- package/dist/types/ISeries.d.ts.map +1 -0
- package/dist/types/ISeries.js +2 -0
- package/dist/types/ISeries.js.map +1 -0
- package/package.json +32 -4
- package/src/__tests__/backwardCompatibility.test.ts +0 -191
- package/src/__tests__/candleInvariant.test.ts +0 -500
- package/src/__tests__/timeframeBoundary.test.ts +0 -583
- package/src/api/DrawingManager.ts +0 -188
- package/src/api/EventBus.ts +0 -53
- package/src/api/IndicatorDAG.ts +0 -389
- package/src/api/IndicatorRegistry.ts +0 -47
- package/src/api/LayoutManager.ts +0 -72
- package/src/api/PaneManager.ts +0 -129
- package/src/api/ReferenceAPI.ts +0 -195
- package/src/api/TChart.ts +0 -881
- package/src/api/drawing tools/fib gann menu/fibRetracement.ts +0 -27
- package/src/api/drawing tools/lines menu/crossLine.ts +0 -21
- package/src/api/drawing tools/lines menu/disjointChannel.ts +0 -74
- package/src/api/drawing tools/lines menu/extendedLine.ts +0 -22
- package/src/api/drawing tools/lines menu/flatTopBottom.ts +0 -45
- package/src/api/drawing tools/lines menu/horizontal.ts +0 -24
- package/src/api/drawing tools/lines menu/horizontalRay.ts +0 -25
- package/src/api/drawing tools/lines menu/infoLine.ts +0 -127
- package/src/api/drawing tools/lines menu/insidePitchfork.ts +0 -21
- package/src/api/drawing tools/lines menu/modifiedSchiffPitchfork.ts +0 -18
- package/src/api/drawing tools/lines menu/parallelChannel.ts +0 -47
- package/src/api/drawing tools/lines menu/pitchfork.ts +0 -15
- package/src/api/drawing tools/lines menu/ray.ts +0 -28
- package/src/api/drawing tools/lines menu/regressionTrend.ts +0 -157
- package/src/api/drawing tools/lines menu/schiffPitchfork.ts +0 -18
- package/src/api/drawing tools/lines menu/trendAngle.ts +0 -64
- package/src/api/drawing tools/lines menu/trendline.ts +0 -16
- package/src/api/drawing tools/lines menu/vertical.ts +0 -16
- package/src/api/drawing tools/shapes menu/rectangle.ts +0 -24
- package/src/api/drawing tools/shapes menu/text.ts +0 -30
- package/src/api/drawingUtils.ts +0 -82
- package/src/core/CanvasLayer.ts +0 -77
- package/src/core/Chart.ts +0 -917
- package/src/core/CoordTransform.ts +0 -282
- package/src/core/Crosshair.ts +0 -207
- package/src/core/IndicatorEngine.ts +0 -216
- package/src/core/InteractionManager.ts +0 -899
- package/src/core/PriceScale.ts +0 -133
- package/src/core/Series.ts +0 -132
- package/src/core/TimeScale.ts +0 -175
- package/src/datafeed/DatafeedConnector.ts +0 -300
- package/src/engine/CandleEngine.ts +0 -458
- package/src/engine/__tests__/CandleEngine.test.ts +0 -402
- package/src/engine/candleInvariants.ts +0 -172
- package/src/index.ts +0 -190
- package/src/licensing/ChartRuntimeResolver.ts +0 -380
- package/src/licensing/LicenseManager.ts +0 -131
- package/src/licensing/__tests__/ChartRuntimeResolver.test.ts +0 -207
- package/src/licensing/__tests__/LicenseManager.test.ts +0 -180
- package/src/licensing/licenseTypes.ts +0 -19
- package/src/pine/PineCompiler.ts +0 -68
- package/src/pine/diagnostics.ts +0 -30
- package/src/pine/pine-ast.ts +0 -163
- package/src/pine/pine-lexer.ts +0 -265
- package/src/pine/pine-parser.ts +0 -439
- package/src/pine/pine-transpiler.ts +0 -301
- package/src/pixi/LayerName.ts +0 -35
- package/src/pixi/PixiCandlestickRenderer.ts +0 -125
- package/src/pixi/PixiChart.ts +0 -425
- package/src/pixi/PixiCrosshairRenderer.ts +0 -134
- package/src/pixi/PixiDrawingRenderer.ts +0 -121
- package/src/pixi/PixiGridRenderer.ts +0 -136
- package/src/pixi/PixiLayerManager.ts +0 -102
- package/src/renderers/CandlestickRenderer.ts +0 -130
- package/src/renderers/HistogramRenderer.ts +0 -63
- package/src/renderers/LineRenderer.ts +0 -77
- package/src/theme/colors.ts +0 -21
- package/src/tools/barDivergenceCheck.ts +0 -305
- package/src/trading/TradingOverlayStore.ts +0 -161
- package/src/trading/UnmanagedIngestion.ts +0 -156
- package/src/trading/__tests__/ManagedTradingController.test.ts +0 -338
- package/src/trading/__tests__/TradingOverlayStore.test.ts +0 -323
- package/src/trading/__tests__/UnmanagedIngestion.test.ts +0 -205
- package/src/trading/managed/ManagedTradingController.ts +0 -292
- package/src/trading/managed/managedCapabilities.ts +0 -98
- package/src/trading/managed/managedTypes.ts +0 -151
- package/src/trading/tradingTypes.ts +0 -135
- package/src/tscript/TScriptIndicator.ts +0 -54
- package/src/tscript/ast.ts +0 -105
- package/src/tscript/lexer.ts +0 -190
- package/src/tscript/parser.ts +0 -334
- package/src/tscript/runtime.ts +0 -525
- package/src/tscript/series.ts +0 -84
- package/src/types/IChart.ts +0 -56
- package/src/types/ISeries.ts +0 -30
- package/tsconfig.json +0 -22
- package/tsup.config.ts +0 -15
- package/vitest.config.ts +0 -25
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demonstration.js","sourceRoot":"","sources":["../../../../src/api/drawing tools/pointers menu/demonstration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAI,eAAe,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAI,MAAe,CAAC;AAEpD,yEAAyE;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAK,0BAA0B,CAAC;AAE/D,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAE9D,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAI,kDAAkD,CAAC;AAEvF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAS,eAAwB;IACrC,KAAK,EAAQ,mBAAmB;IAChC,WAAW,EAAE,mBAAmB;CACxB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dot pointer tool.
|
|
3
|
+
*
|
|
4
|
+
* Hides the native cursor and renders a PointerOverlay with:
|
|
5
|
+
* - dashed crosshair lines (vertical + horizontal)
|
|
6
|
+
* - a small filled circle at the cursor intersection
|
|
7
|
+
*
|
|
8
|
+
* The SDK crosshair (`Chart.setCrosshairEnabled`) is NOT active in this mode;
|
|
9
|
+
* all visuals come from the SVG overlay.
|
|
10
|
+
*/
|
|
11
|
+
export declare const DOT_LABEL = "Dot";
|
|
12
|
+
export declare const DOT_STYLE: "none";
|
|
13
|
+
/** Radius (px) of the filled dot drawn at the crosshair intersection. */
|
|
14
|
+
export declare const DOT_RADIUS = 3;
|
|
15
|
+
/** Colour used for both the crosshair lines and the dot fill. */
|
|
16
|
+
export declare const DOT_COLOR = "var(--crosshair-overlay, rgba(255,255,255,0.75))";
|
|
17
|
+
/** Descriptor used by the toolbar and tool-selection logic. */
|
|
18
|
+
export declare const dotTool: {
|
|
19
|
+
readonly type: "dot";
|
|
20
|
+
readonly label: "Dot";
|
|
21
|
+
readonly cursorStyle: "none";
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=dot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../../../src/api/drawing tools/pointers menu/dot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,SAAS,QAAS,CAAC;AAChC,eAAO,MAAM,SAAS,EAAI,MAAe,CAAC;AAE1C,yEAAyE;AACzE,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,SAAS,qDAAsD,CAAC;AAE7E,+DAA+D;AAC/D,eAAO,MAAM,OAAO;;;;CAIV,CAAC"}
|
package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.js }
RENAMED
|
@@ -8,19 +8,16 @@
|
|
|
8
8
|
* The SDK crosshair (`Chart.setCrosshairEnabled`) is NOT active in this mode;
|
|
9
9
|
* all visuals come from the SVG overlay.
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
export const
|
|
13
|
-
export const DOT_STYLE = 'none' as const;
|
|
14
|
-
|
|
11
|
+
export const DOT_LABEL = 'Dot';
|
|
12
|
+
export const DOT_STYLE = 'none';
|
|
15
13
|
/** Radius (px) of the filled dot drawn at the crosshair intersection. */
|
|
16
14
|
export const DOT_RADIUS = 3;
|
|
17
|
-
|
|
18
15
|
/** Colour used for both the crosshair lines and the dot fill. */
|
|
19
|
-
export const DOT_COLOR
|
|
20
|
-
|
|
16
|
+
export const DOT_COLOR = 'var(--crosshair-overlay, rgba(255,255,255,0.75))';
|
|
21
17
|
/** Descriptor used by the toolbar and tool-selection logic. */
|
|
22
18
|
export const dotTool = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
19
|
+
type: 'dot',
|
|
20
|
+
label: DOT_LABEL,
|
|
21
|
+
cursorStyle: DOT_STYLE,
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=dot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dot.js","sourceRoot":"","sources":["../../../../src/api/drawing tools/pointers menu/dot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAI,KAAK,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAI,MAAe,CAAC;AAE1C,yEAAyE;AACzE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B,iEAAiE;AACjE,MAAM,CAAC,MAAM,SAAS,GAAI,kDAAkD,CAAC;AAE7E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAS,KAAc;IAC3B,KAAK,EAAQ,SAAS;IACtB,WAAW,EAAE,SAAS;CACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rectangle.d.ts","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/rectangle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,cAAc,GAChB,IAAI,CAgBN"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function renderRectangle(ctx, d, t) {
|
|
2
|
+
const p0 = d.points[0];
|
|
3
|
+
const p1 = d.points[1];
|
|
4
|
+
if (!p0 || !p1)
|
|
5
|
+
return;
|
|
6
|
+
const rx = Math.min(t.timeToX(p0.time), t.timeToX(p1.time));
|
|
7
|
+
const ry = Math.min(t.priceToY(p0.price), t.priceToY(p1.price));
|
|
8
|
+
const rw = Math.abs(t.timeToX(p1.time) - t.timeToX(p0.time));
|
|
9
|
+
const rh = Math.abs(t.priceToY(p1.price) - t.priceToY(p0.price));
|
|
10
|
+
ctx.save();
|
|
11
|
+
ctx.fillStyle = d.fillColor ?? (d.color ?? '#2196f3');
|
|
12
|
+
ctx.globalAlpha *= d.fillOpacity ?? 0.1;
|
|
13
|
+
ctx.fillRect(rx, ry, rw, rh);
|
|
14
|
+
ctx.restore();
|
|
15
|
+
ctx.beginPath();
|
|
16
|
+
ctx.rect(rx, ry, rw, rh);
|
|
17
|
+
ctx.stroke();
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=rectangle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/rectangle.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAC7B,GAA6B,EAC7B,CAAU,EACV,CAAiB;IAEjB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO;IACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IACtD,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC;IACxC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7B,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzB,GAAG,CAAC,MAAM,EAAE,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,wBAAgB,UAAU,CACxB,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,cAAc,GAChB,IAAI,CAsBN"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function renderText(ctx, d, t) {
|
|
2
|
+
const p0 = d.points[0];
|
|
3
|
+
if (!p0)
|
|
4
|
+
return;
|
|
5
|
+
const label = d.text ?? 'Text';
|
|
6
|
+
const x = t.timeToX(p0.time);
|
|
7
|
+
const y = t.priceToY(p0.price);
|
|
8
|
+
const fs = d.fontSize ?? 13;
|
|
9
|
+
ctx.font = `${fs}px -apple-system, BlinkMacSystemFont, sans-serif`;
|
|
10
|
+
const metrics = ctx.measureText(label);
|
|
11
|
+
const pad = 4;
|
|
12
|
+
const boxW = metrics.width + pad * 2;
|
|
13
|
+
const boxH = fs + pad * 2;
|
|
14
|
+
ctx.save();
|
|
15
|
+
ctx.fillStyle = d.color ?? '#2196f3';
|
|
16
|
+
ctx.globalAlpha *= 0.15;
|
|
17
|
+
ctx.fillRect(x, y - boxH, boxW, boxH);
|
|
18
|
+
ctx.restore();
|
|
19
|
+
ctx.font = `${fs}px -apple-system, BlinkMacSystemFont, sans-serif`;
|
|
20
|
+
ctx.fillStyle = d.color ?? '#2196f3';
|
|
21
|
+
ctx.textAlign = 'left';
|
|
22
|
+
ctx.textBaseline = 'bottom';
|
|
23
|
+
ctx.fillText(label, x + pad, y);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/api/drawing tools/shapes menu/text.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,UAAU,CACxB,GAA6B,EAC7B,CAAU,EACV,CAAiB;IAEjB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;IAC/B,MAAM,CAAC,GAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5B,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,kDAAkD,CAAC;IACnE,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,GAAG,GAAI,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1B,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC;IACrC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC;IACxB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,OAAO,EAAE,CAAC;IACd,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,kDAAkD,CAAC;IACnE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC;IACrC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC;IAC5B,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Drawing } from '@forgecharts/types';
|
|
2
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
3
|
+
export declare const HANDLE_HALF = 5;
|
|
4
|
+
export declare const HANDLE_FILL = "#2196f3";
|
|
5
|
+
export declare const HANDLE_STROKE = "rgba(255,255,255,0.9)";
|
|
6
|
+
export declare function rayExit(plotW: number, plotH: number, px: number, py: number, dx: number, dy: number): {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const TF_SECS: Record<string, number>;
|
|
11
|
+
export declare function formatDuration(seconds: number): string;
|
|
12
|
+
export type PF3 = {
|
|
13
|
+
x0: number;
|
|
14
|
+
y0: number;
|
|
15
|
+
x1: number;
|
|
16
|
+
y1: number;
|
|
17
|
+
x2: number;
|
|
18
|
+
y2: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function getPF3(d: Drawing, t: CoordTransform): PF3 | null;
|
|
21
|
+
export declare function drawPitchforkLines(ctx: CanvasRenderingContext2D, t: CoordTransform, pivotX: number, pivotY: number, midX: number, midY: number, x1: number, y1: number, x2: number, y2: number): void;
|
|
22
|
+
//# sourceMappingURL=drawingUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawingUtils.d.ts","sourceRoot":"","sources":["../../src/api/drawingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,eAAO,MAAM,WAAW,IAAM,CAAC;AAC/B,eAAO,MAAM,WAAW,YAAc,CAAC;AACvC,eAAO,MAAM,aAAa,0BAA0B,CAAC;AAGrD,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAU1B;AAGD,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK1C,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMtD;AAGD,MAAM,MAAM,GAAG,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI,CAQhE;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,cAAc,EACjB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC9B,IAAI,EAAE,MAAM,EAAG,IAAI,EAAE,MAAM,EAC3B,EAAE,EAAE,MAAM,EAAK,EAAE,EAAE,MAAM,EACzB,EAAE,EAAE,MAAM,EAAK,EAAE,EAAE,MAAM,GACxB,IAAI,CAaN"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// ─── Handle appearance ────────────────────────────────────────────────────────
|
|
2
|
+
export const HANDLE_HALF = 5;
|
|
3
|
+
export const HANDLE_FILL = '#2196f3';
|
|
4
|
+
export const HANDLE_STROKE = 'rgba(255,255,255,0.9)';
|
|
5
|
+
// ─── Ray exit helper ──────────────────────────────────────────────────────────
|
|
6
|
+
export function rayExit(plotW, plotH, px, py, dx, dy) {
|
|
7
|
+
if (dx === 0 && dy === 0)
|
|
8
|
+
return { x: px, y: py };
|
|
9
|
+
let tMin = Infinity;
|
|
10
|
+
if (dx > 0)
|
|
11
|
+
tMin = Math.min(tMin, (plotW - px) / dx);
|
|
12
|
+
else if (dx < 0)
|
|
13
|
+
tMin = Math.min(tMin, -px / dx);
|
|
14
|
+
if (dy > 0)
|
|
15
|
+
tMin = Math.min(tMin, (plotH - py) / dy);
|
|
16
|
+
else if (dy < 0)
|
|
17
|
+
tMin = Math.min(tMin, -py / dy);
|
|
18
|
+
return tMin === Infinity
|
|
19
|
+
? { x: px, y: py }
|
|
20
|
+
: { x: px + dx * tMin, y: py + dy * tMin };
|
|
21
|
+
}
|
|
22
|
+
// ─── Timeframe seconds map ────────────────────────────────────────────────────
|
|
23
|
+
export const TF_SECS = {
|
|
24
|
+
'1s': 1, '5s': 5, '10s': 10, '30s': 30,
|
|
25
|
+
'1m': 60, '3m': 180, '5m': 300, '15m': 900, '30m': 1800,
|
|
26
|
+
'1h': 3600, '2h': 7200, '4h': 14400, '6h': 21600, '12h': 43200,
|
|
27
|
+
'1d': 86400, '3d': 259200, '1w': 604800, '1M': 2592000,
|
|
28
|
+
};
|
|
29
|
+
export function formatDuration(seconds) {
|
|
30
|
+
if (seconds < 60)
|
|
31
|
+
return `${seconds}s`;
|
|
32
|
+
if (seconds < 3600) {
|
|
33
|
+
const m = Math.floor(seconds / 60);
|
|
34
|
+
return `${m}m`;
|
|
35
|
+
}
|
|
36
|
+
const h = Math.floor(seconds / 3600);
|
|
37
|
+
const m = Math.round((seconds % 3600) / 60);
|
|
38
|
+
return m > 0 ? `${h}h ${m}m` : `${h}h`;
|
|
39
|
+
}
|
|
40
|
+
export function getPF3(d, t) {
|
|
41
|
+
const p0 = d.points[0], p1 = d.points[1], p2 = d.points[2];
|
|
42
|
+
if (!p0 || !p1 || !p2)
|
|
43
|
+
return null;
|
|
44
|
+
return {
|
|
45
|
+
x0: t.timeToX(p0.time), y0: t.priceToY(p0.price),
|
|
46
|
+
x1: t.timeToX(p1.time), y1: t.priceToY(p1.price),
|
|
47
|
+
x2: t.timeToX(p2.time), y2: t.priceToY(p2.price),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function drawPitchforkLines(ctx, t, pivotX, pivotY, midX, midY, x1, y1, x2, y2) {
|
|
51
|
+
const dx = midX - pivotX, dy = midY - pivotY;
|
|
52
|
+
const medExit = rayExit(t.plotWidth, t.plotHeight, midX, midY, dx, dy);
|
|
53
|
+
ctx.beginPath();
|
|
54
|
+
ctx.moveTo(pivotX, pivotY);
|
|
55
|
+
ctx.lineTo(medExit.x, medExit.y);
|
|
56
|
+
ctx.stroke();
|
|
57
|
+
const upExit = rayExit(t.plotWidth, t.plotHeight, x1, y1, dx, dy);
|
|
58
|
+
ctx.beginPath();
|
|
59
|
+
ctx.moveTo(x1, y1);
|
|
60
|
+
ctx.lineTo(upExit.x, upExit.y);
|
|
61
|
+
ctx.stroke();
|
|
62
|
+
const dnExit = rayExit(t.plotWidth, t.plotHeight, x2, y2, dx, dy);
|
|
63
|
+
ctx.beginPath();
|
|
64
|
+
ctx.moveTo(x2, y2);
|
|
65
|
+
ctx.lineTo(dnExit.x, dnExit.y);
|
|
66
|
+
ctx.stroke();
|
|
67
|
+
ctx.save();
|
|
68
|
+
ctx.globalAlpha = 0.4;
|
|
69
|
+
ctx.beginPath();
|
|
70
|
+
ctx.moveTo(pivotX, pivotY);
|
|
71
|
+
ctx.lineTo(x1, y1);
|
|
72
|
+
ctx.stroke();
|
|
73
|
+
ctx.beginPath();
|
|
74
|
+
ctx.moveTo(x1, y1);
|
|
75
|
+
ctx.lineTo(x2, y2);
|
|
76
|
+
ctx.stroke();
|
|
77
|
+
ctx.beginPath();
|
|
78
|
+
ctx.moveTo(x2, y2);
|
|
79
|
+
ctx.lineTo(pivotX, pivotY);
|
|
80
|
+
ctx.stroke();
|
|
81
|
+
ctx.restore();
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=drawingUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawingUtils.js","sourceRoot":"","sources":["../../src/api/drawingUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CanvasLayer — a single <canvas> element inside the chart container.
|
|
3
|
+
* Each layer has an independent bitmap; layers are stacked via CSS z-index.
|
|
4
|
+
* Physical pixels are pre-scaled by devicePixelRatio for crisp rendering.
|
|
5
|
+
*/
|
|
6
|
+
export type CanvasLayerOptions = {
|
|
7
|
+
readonly width: number;
|
|
8
|
+
readonly height: number;
|
|
9
|
+
readonly dpr: number;
|
|
10
|
+
readonly zIndex: number;
|
|
11
|
+
};
|
|
12
|
+
export declare class CanvasLayer {
|
|
13
|
+
readonly canvas: HTMLCanvasElement;
|
|
14
|
+
readonly context: CanvasRenderingContext2D;
|
|
15
|
+
private _width;
|
|
16
|
+
private _height;
|
|
17
|
+
private _dpr;
|
|
18
|
+
constructor(container: HTMLElement, options: CanvasLayerOptions);
|
|
19
|
+
get width(): number;
|
|
20
|
+
get height(): number;
|
|
21
|
+
get dpr(): number;
|
|
22
|
+
resize(width: number, height: number, dpr: number): void;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
private _applyDpr;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=CanvasLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasLayer.d.ts","sourceRoot":"","sources":["../../src/core/CanvasLayer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAE3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAS;gBAET,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB;IAmB/D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAaxD,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,SAAS;CAQlB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export class CanvasLayer {
|
|
2
|
+
canvas;
|
|
3
|
+
context;
|
|
4
|
+
_width;
|
|
5
|
+
_height;
|
|
6
|
+
_dpr;
|
|
7
|
+
constructor(container, options) {
|
|
8
|
+
this._width = options.width;
|
|
9
|
+
this._height = options.height;
|
|
10
|
+
this._dpr = options.dpr;
|
|
11
|
+
this.canvas = document.createElement('canvas');
|
|
12
|
+
this.canvas.style.position = 'absolute';
|
|
13
|
+
this.canvas.style.inset = '0';
|
|
14
|
+
this.canvas.style.zIndex = String(options.zIndex);
|
|
15
|
+
this.canvas.style.pointerEvents = options.zIndex === 3 ? 'auto' : 'none';
|
|
16
|
+
const ctx = this.canvas.getContext('2d');
|
|
17
|
+
if (!ctx)
|
|
18
|
+
throw new Error('[ForgeCharts] Failed to acquire 2D canvas context');
|
|
19
|
+
this.context = ctx;
|
|
20
|
+
this._applyDpr();
|
|
21
|
+
container.appendChild(this.canvas);
|
|
22
|
+
}
|
|
23
|
+
get width() {
|
|
24
|
+
return this._width;
|
|
25
|
+
}
|
|
26
|
+
get height() {
|
|
27
|
+
return this._height;
|
|
28
|
+
}
|
|
29
|
+
get dpr() {
|
|
30
|
+
return this._dpr;
|
|
31
|
+
}
|
|
32
|
+
resize(width, height, dpr) {
|
|
33
|
+
const physW = Math.round(width * dpr);
|
|
34
|
+
const physH = Math.round(height * dpr);
|
|
35
|
+
// Setting canvas.width/height always clears the bitmap, so skip if nothing changed.
|
|
36
|
+
if (physW === this.canvas.width && physH === this.canvas.height && dpr === this._dpr) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this._width = width;
|
|
40
|
+
this._height = height;
|
|
41
|
+
this._dpr = dpr;
|
|
42
|
+
this._applyDpr();
|
|
43
|
+
}
|
|
44
|
+
destroy() {
|
|
45
|
+
this.canvas.remove();
|
|
46
|
+
}
|
|
47
|
+
_applyDpr() {
|
|
48
|
+
const { canvas, context, _width: w, _height: h, _dpr: dpr } = this;
|
|
49
|
+
canvas.width = Math.round(w * dpr);
|
|
50
|
+
canvas.height = Math.round(h * dpr);
|
|
51
|
+
canvas.style.width = `${w}px`;
|
|
52
|
+
canvas.style.height = `${h}px`;
|
|
53
|
+
context.setTransform(dpr, 0, 0, dpr, 0, 0);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=CanvasLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasLayer.js","sourceRoot":"","sources":["../../src/core/CanvasLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import type { ChartOptions, Drawing, DrawingType, Timeframe } from '@forgecharts/types';
|
|
2
|
+
import type { IChart, IChartPlugin } from '../types/IChart';
|
|
3
|
+
import type { ISeries } from '../types/ISeries';
|
|
4
|
+
import { TimeScale } from './TimeScale';
|
|
5
|
+
import { PriceScale } from './PriceScale';
|
|
6
|
+
import { CoordTransform } from './CoordTransform';
|
|
7
|
+
import { DrawingManager } from '../api/DrawingManager';
|
|
8
|
+
/**
|
|
9
|
+
* Chart — entry point for the ForgeCharts SDK.
|
|
10
|
+
*
|
|
11
|
+
* Manages the canvas layer stack, time/price scales, all series,
|
|
12
|
+
* and the interaction model. Uses the browser Canvas 2D API directly;
|
|
13
|
+
* no third-party chart library dependencies.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const chart = new Chart(containerEl, { theme: 'dark' });
|
|
18
|
+
* const series = chart.addSeries({ type: 'candlestick' });
|
|
19
|
+
* series.setData(ohlcvArray);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class Chart implements IChart {
|
|
23
|
+
private readonly _container;
|
|
24
|
+
private readonly _options;
|
|
25
|
+
private readonly _colors;
|
|
26
|
+
private readonly _gridLayer;
|
|
27
|
+
private readonly _seriesLayer;
|
|
28
|
+
private readonly _overlayLayer;
|
|
29
|
+
private readonly _timeScale;
|
|
30
|
+
private readonly _priceScale;
|
|
31
|
+
private readonly _transform;
|
|
32
|
+
private readonly _crosshair;
|
|
33
|
+
private _series;
|
|
34
|
+
private _plugins;
|
|
35
|
+
private _animationFrame;
|
|
36
|
+
private _dirty;
|
|
37
|
+
private _indicatorsVisible;
|
|
38
|
+
/** When true the user has manually adjusted the price scale; auto-fit is suspended. */
|
|
39
|
+
private _priceScaleManual;
|
|
40
|
+
/** Active timeframe — used for last-price countdown. */
|
|
41
|
+
private _interval;
|
|
42
|
+
/** Last second at which we ticked the countdown to force a re-render. */
|
|
43
|
+
private _lastCountdownSec;
|
|
44
|
+
private readonly _resizeObserver;
|
|
45
|
+
private readonly _interaction;
|
|
46
|
+
private readonly _drawingMgr;
|
|
47
|
+
private _drawingTool;
|
|
48
|
+
private _drawingState;
|
|
49
|
+
private _drawingP0;
|
|
50
|
+
private _drawingP1;
|
|
51
|
+
private _drawingCursorPt;
|
|
52
|
+
/** When false the crosshair is suppressed (e.g. Arrow/cursor mode). */
|
|
53
|
+
private _crosshairEnabled;
|
|
54
|
+
/** Called whenever a drawing is committed (created or updated). */
|
|
55
|
+
onDrawingCommitted: ((drawing: Drawing) => void) | undefined;
|
|
56
|
+
/** Called whenever a drawing is deleted. */
|
|
57
|
+
onDrawingDeleted: ((id: string) => void) | undefined;
|
|
58
|
+
/** Called when the user right-clicks a drawing. x/y are canvas-relative pixels. */
|
|
59
|
+
onDrawingContextMenu: ((id: string, x: number, y: number) => void) | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Called after every pan or zoom interaction so external code (e.g. TChart)
|
|
62
|
+
* can check whether the visible time range now extends past the oldest
|
|
63
|
+
* loaded bar and trigger a lazy history fetch.
|
|
64
|
+
*/
|
|
65
|
+
onViewportChanged: (() => void) | undefined;
|
|
66
|
+
constructor(container: HTMLElement, options?: ChartOptions);
|
|
67
|
+
addSeries(options: Parameters<IChart['addSeries']>[0]): ISeries;
|
|
68
|
+
removeSeries(series: ISeries): void;
|
|
69
|
+
addPlugin(plugin: IChartPlugin): void;
|
|
70
|
+
removePlugin(plugin: IChartPlugin): void;
|
|
71
|
+
/** Set the active timeframe so the last-price countdown is accurate. */
|
|
72
|
+
setInterval(tf: Timeframe): void;
|
|
73
|
+
timeScale(): TimeScale;
|
|
74
|
+
priceScale(): PriceScale;
|
|
75
|
+
applyOptions(options: Partial<ChartOptions>): void;
|
|
76
|
+
/** Pans the viewport so the latest bar is visible at the right edge. */
|
|
77
|
+
scrollToEnd(): void;
|
|
78
|
+
/** Returns the coordinate transform for this chart. */
|
|
79
|
+
transform(): CoordTransform;
|
|
80
|
+
resize(width: number, height: number): void;
|
|
81
|
+
destroy(): void;
|
|
82
|
+
private _scheduleRender;
|
|
83
|
+
private _render;
|
|
84
|
+
private _renderGrid;
|
|
85
|
+
setAllDrawingsVisible(v: boolean): void;
|
|
86
|
+
setIndicatorsVisible(v: boolean): void;
|
|
87
|
+
private _renderSeries;
|
|
88
|
+
private _renderOverlay;
|
|
89
|
+
/**
|
|
90
|
+
* Snaps a pixel X coordinate to the nearest bar's centre pixel.
|
|
91
|
+
* If no bars are loaded, or the nearest bar is more than SNAP_PX pixels away,
|
|
92
|
+
* returns the original x so the crosshair always renders at the cursor position.
|
|
93
|
+
*/
|
|
94
|
+
private _snapXToBar;
|
|
95
|
+
private _computeViewport;
|
|
96
|
+
private _onResize;
|
|
97
|
+
private _handleKeyAction;
|
|
98
|
+
/**
|
|
99
|
+
* Fits the price scale to the high/low range of bars visible in the current
|
|
100
|
+
* time window. Called every render frame so the scale tracks panning/zooming.
|
|
101
|
+
*/
|
|
102
|
+
private _autoFitPriceToData;
|
|
103
|
+
/**
|
|
104
|
+
* Renders the last-price dotted line, price label, and countdown timer.
|
|
105
|
+
* Drawn on the overlay canvas above all series but below the crosshair.
|
|
106
|
+
*/
|
|
107
|
+
private _renderLastPriceLine;
|
|
108
|
+
/** Pans the viewport so the latest bar sits near the right edge. */
|
|
109
|
+
private _scrollToLatestBar;
|
|
110
|
+
/**
|
|
111
|
+
* Returns the current visible time and price ranges.
|
|
112
|
+
*/
|
|
113
|
+
getViewport(): import('@forgecharts/types').Viewport;
|
|
114
|
+
/**
|
|
115
|
+
* Restores a previously saved viewport (time range + manual price range).
|
|
116
|
+
*/
|
|
117
|
+
restoreViewport(v: import('@forgecharts/types').Viewport): void;
|
|
118
|
+
/**
|
|
119
|
+
* Clears the manual-price-scale flag so the price axis returns to auto-fit mode.
|
|
120
|
+
* Call this after restoring a saved viewport so stale price ranges don't persist.
|
|
121
|
+
*/
|
|
122
|
+
resetPriceScale(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Sets the default viewport: shows 10 days of price history with the latest
|
|
125
|
+
* bar positioned near the right edge (5% right margin for breathing room).
|
|
126
|
+
* Also resets the price scale to auto-fit so prices center vertically.
|
|
127
|
+
* Called on initial data load and when the user double-clicks either axis.
|
|
128
|
+
*/
|
|
129
|
+
fitDefaultView(): void;
|
|
130
|
+
/** Returns the DrawingManager owned by this chart. */
|
|
131
|
+
drawingManager(): DrawingManager;
|
|
132
|
+
/** Force a redraw on the next animation frame. */
|
|
133
|
+
markDirty(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Activates a drawing tool. While active, mouse clicks place anchors.
|
|
136
|
+
* The tool auto-cancels after each commit. Press Escape to cancel mid-placement.
|
|
137
|
+
*/
|
|
138
|
+
startDrawingTool(type: DrawingType): void;
|
|
139
|
+
/** Cancels any in-progress drawing and returns to cursor mode. */
|
|
140
|
+
cancelDrawingTool(): void;
|
|
141
|
+
/**
|
|
142
|
+
* Show or hide the interactive crosshair lines.
|
|
143
|
+
* Pass `false` for Arrow/cursor mode; `true` for crosshair / dot / demonstration.
|
|
144
|
+
*/
|
|
145
|
+
setCrosshairEnabled(enabled: boolean): void;
|
|
146
|
+
/**
|
|
147
|
+
* Hides (`true`) or restores (`false`) the native OS cursor.
|
|
148
|
+
* Call with `true` for dot and demonstration pointer modes whose visuals
|
|
149
|
+
* come from PointerOverlay rather than the SDK crosshair.
|
|
150
|
+
*/
|
|
151
|
+
setNativeCursorHidden(hidden: boolean): void;
|
|
152
|
+
/** Deletes the currently selected drawing (if any). */
|
|
153
|
+
deleteSelectedDrawing(): void;
|
|
154
|
+
private _handleDrawClick;
|
|
155
|
+
private _buildDraftPreview;
|
|
156
|
+
/**
|
|
157
|
+
* Snaps the pixel position to the nearest bar's time within SNAP_PX.
|
|
158
|
+
* Returns a DrawingPoint with the snapped time and the raw price at y.
|
|
159
|
+
*/
|
|
160
|
+
private _snapToBar;
|
|
161
|
+
private _resolveOptions;
|
|
162
|
+
private _resolveColors;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=Chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/core/Chart.ts"],"names":[],"mappings":"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"}
|