@forgecharts/sdk 1.1.27 → 1.1.29
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__/candleInvariant.test.d.ts +20 -0
- package/dist/__tests__/candleInvariant.test.d.ts.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/dist/__tests__/timeframeBoundary.test.d.ts +17 -0
- package/dist/__tests__/timeframeBoundary.test.d.ts.map +1 -0
- package/dist/api/DrawingManager.d.ts +20 -0
- package/dist/api/DrawingManager.d.ts.map +1 -0
- package/dist/api/EventBus.d.ts +19 -0
- package/dist/api/EventBus.d.ts.map +1 -0
- package/dist/api/IndicatorDAG.d.ts +85 -0
- package/dist/api/IndicatorDAG.d.ts.map +1 -0
- package/dist/api/IndicatorRegistry.d.ts +22 -0
- package/dist/api/IndicatorRegistry.d.ts.map +1 -0
- package/dist/api/LayoutManager.d.ts +30 -0
- package/dist/api/LayoutManager.d.ts.map +1 -0
- package/dist/api/PaneManager.d.ts +42 -0
- package/dist/api/PaneManager.d.ts.map +1 -0
- package/dist/api/ReferenceAPI.d.ts +78 -0
- package/dist/api/ReferenceAPI.d.ts.map +1 -0
- package/dist/api/TChart.d.ts +345 -0
- package/dist/api/TChart.d.ts.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/vertical.d.ts +4 -0
- package/dist/api/drawing tools/lines menu/vertical.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/crosshair.ts → dist/api/drawing tools/pointers menu/crosshair.d.ts } +8 -9
- package/dist/api/drawing tools/pointers menu/crosshair.d.ts.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/demonstration.ts → dist/api/drawing tools/pointers menu/demonstration.d.ts } +12 -17
- package/dist/api/drawing tools/pointers menu/demonstration.d.ts.map +1 -0
- package/{src/api/drawing tools/pointers menu/dot.ts → dist/api/drawing tools/pointers menu/dot.d.ts } +10 -13
- package/dist/api/drawing tools/pointers menu/dot.d.ts.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/text.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/text.d.ts.map +1 -0
- package/dist/api/drawingUtils.d.ts +22 -0
- package/dist/api/drawingUtils.d.ts.map +1 -0
- package/dist/core/CanvasLayer.d.ts +26 -0
- package/dist/core/CanvasLayer.d.ts.map +1 -0
- package/dist/core/Chart.d.ts +164 -0
- package/dist/core/Chart.d.ts.map +1 -0
- package/dist/core/CoordTransform.d.ts +168 -0
- package/dist/core/CoordTransform.d.ts.map +1 -0
- package/dist/core/Crosshair.d.ts +30 -0
- package/dist/core/Crosshair.d.ts.map +1 -0
- package/dist/core/IndicatorEngine.d.ts +51 -0
- package/dist/core/IndicatorEngine.d.ts.map +1 -0
- package/dist/core/InteractionManager.d.ts +197 -0
- package/dist/core/InteractionManager.d.ts.map +1 -0
- package/dist/core/PriceScale.d.ts +27 -0
- package/dist/core/PriceScale.d.ts.map +1 -0
- package/dist/core/Series.d.ts +40 -0
- package/dist/core/Series.d.ts.map +1 -0
- package/dist/core/TimeScale.d.ts +43 -0
- package/dist/core/TimeScale.d.ts.map +1 -0
- package/dist/datafeed/DatafeedConnector.d.ts +89 -0
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -0
- package/dist/engine/CandleEngine.d.ts +207 -0
- package/dist/engine/CandleEngine.d.ts.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/candleInvariants.d.ts +66 -0
- package/dist/engine/candleInvariants.d.ts.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/timeframeUtils.d.ts +80 -0
- package/dist/engine/timeframeUtils.d.ts.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8101 -0
- package/dist/index.js.map +1 -0
- package/{src/internal.ts → dist/internal.d.ts} +1 -13
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +8852 -0
- 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/LicenseManager.d.ts +55 -0
- package/dist/licensing/LicenseManager.d.ts.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__/LicenseManager.test.d.ts +12 -0
- package/dist/licensing/__tests__/LicenseManager.test.d.ts.map +1 -0
- package/dist/licensing/licenseTypes.d.ts +18 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -0
- package/dist/pine/PineCompiler.d.ts +35 -0
- package/dist/pine/PineCompiler.d.ts.map +1 -0
- package/dist/pine/diagnostics.d.ts +20 -0
- package/dist/pine/diagnostics.d.ts.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/pine-ast.d.ts +142 -0
- package/dist/pine/pine-ast.d.ts.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-parser.d.ts +51 -0
- package/dist/pine/pine-parser.d.ts.map +1 -0
- package/dist/pine/pine-transpiler.d.ts +33 -0
- package/dist/pine/pine-transpiler.d.ts.map +1 -0
- package/dist/pixi/LayerName.d.ts +18 -0
- package/dist/pixi/LayerName.d.ts.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts +23 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiChart.d.ts +72 -0
- package/dist/pixi/PixiChart.d.ts.map +1 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts +29 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts +17 -0
- package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiGridRenderer.d.ts +22 -0
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiLayerManager.d.ts +56 -0
- package/dist/pixi/PixiLayerManager.d.ts.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/ChartContextMenu.d.ts +18 -0
- package/dist/react/canvas/ChartContextMenu.d.ts.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/IndicatorLabel.d.ts +21 -0
- package/dist/react/canvas/IndicatorLabel.d.ts.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/PointerOverlay.d.ts +23 -0
- package/dist/react/canvas/PointerOverlay.d.ts.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/hooks/useChartCapabilities.d.ts +21 -0
- package/dist/react/hooks/useChartCapabilities.d.ts.map +1 -0
- package/{src/react/index.ts → dist/react/index.d.ts} +2 -23
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +11559 -0
- package/dist/react/index.js.map +1 -0
- package/{src/react/internal.ts → dist/react/internal.d.ts} +2 -26
- package/dist/react/internal.d.ts.map +1 -0
- package/dist/react/internal.js +12148 -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/trading/TradingBridge.d.ts +86 -0
- package/dist/react/trading/TradingBridge.d.ts.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/FloatingPanel.d.ts +18 -0
- package/dist/react/workspace/FloatingPanel.d.ts.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/LayoutMenu.d.ts +33 -0
- package/dist/react/workspace/LayoutMenu.d.ts.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/TabBar.d.ts +17 -0
- package/dist/react/workspace/TabBar.d.ts.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/RightToolbar.d.ts +8 -0
- package/dist/react/workspace/toolbars/RightToolbar.d.ts.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/renderers/CandlestickRenderer.d.ts +13 -0
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -0
- package/dist/renderers/HistogramRenderer.d.ts +11 -0
- package/dist/renderers/HistogramRenderer.d.ts.map +1 -0
- package/dist/renderers/LineRenderer.d.ts +12 -0
- package/dist/renderers/LineRenderer.d.ts.map +1 -0
- package/dist/theme/colors.d.ts +4 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/tools/barDivergenceCheck.d.ts +120 -0
- package/dist/tools/barDivergenceCheck.d.ts.map +1 -0
- package/dist/trading/TradingOverlayStore.d.ts +86 -0
- package/dist/trading/TradingOverlayStore.d.ts.map +1 -0
- package/dist/trading/UnmanagedIngestion.d.ts +91 -0
- package/dist/trading/UnmanagedIngestion.d.ts.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__/TradingOverlayStore.test.d.ts +16 -0
- package/dist/trading/__tests__/TradingOverlayStore.test.d.ts.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/managed/ManagedTradingController.d.ts +110 -0
- package/dist/trading/managed/ManagedTradingController.d.ts.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/managedTypes.d.ts +122 -0
- package/dist/trading/managed/managedTypes.d.ts.map +1 -0
- package/dist/trading/tradingTypes.d.ts +89 -0
- package/dist/trading/tradingTypes.d.ts.map +1 -0
- package/dist/tscript/TScriptIndicator.d.ts +41 -0
- package/dist/tscript/TScriptIndicator.d.ts.map +1 -0
- package/dist/tscript/ast.d.ts +89 -0
- package/dist/tscript/ast.d.ts.map +1 -0
- package/dist/tscript/lexer.d.ts +36 -0
- package/dist/tscript/lexer.d.ts.map +1 -0
- package/dist/tscript/parser.d.ts +50 -0
- package/dist/tscript/parser.d.ts.map +1 -0
- package/dist/tscript/runtime.d.ts +123 -0
- package/dist/tscript/runtime.d.ts.map +1 -0
- package/dist/tscript/series.d.ts +49 -0
- package/dist/tscript/series.d.ts.map +1 -0
- package/dist/types/IChart.d.ts +48 -0
- package/dist/types/IChart.d.ts.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/ISeries.d.ts +26 -0
- package/dist/types/ISeries.d.ts.map +1 -0
- package/package.json +5 -1
- package/src/__tests__/backwardCompatibility.test.ts +0 -191
- package/src/__tests__/candleInvariant.test.ts +0 -500
- package/src/__tests__/public-api-surface.ts +0 -76
- 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/pointers menu/cursor.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/engine/timeframeUtils.ts +0 -118
- 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/react/canvas/ChartCanvas.tsx +0 -984
- package/src/react/canvas/ChartContextMenu.tsx +0 -60
- package/src/react/canvas/ChartSettingsDialog.tsx +0 -133
- package/src/react/canvas/IndicatorLabel.tsx +0 -347
- package/src/react/canvas/IndicatorPane.tsx +0 -503
- package/src/react/canvas/PointerOverlay.tsx +0 -126
- package/src/react/canvas/toolbars/LeftToolbar.tsx +0 -1096
- package/src/react/hooks/useChartCapabilities.ts +0 -76
- package/src/react/shell/ManagedAppShell.tsx +0 -699
- package/src/react/trading/TradingBridge.ts +0 -156
- package/src/react/workspace/ChartWorkspace.tsx +0 -228
- package/src/react/workspace/FloatingPanel.tsx +0 -131
- package/src/react/workspace/IndicatorsDialog.tsx +0 -246
- package/src/react/workspace/LayoutMenu.tsx +0 -345
- package/src/react/workspace/SymbolSearchDialog.tsx +0 -377
- package/src/react/workspace/TabBar.tsx +0 -87
- package/src/react/workspace/toolbars/BottomToolbar.tsx +0 -372
- package/src/react/workspace/toolbars/RightToolbar.tsx +0 -46
- package/src/react/workspace/toolbars/TopToolbar.tsx +0 -431
- 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 -23
- package/tsup.config.ts +0 -16
- package/vitest.config.ts +0 -25
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pine Script Parser — recursive-descent, produces a PineProgram AST.
|
|
3
|
+
*
|
|
4
|
+
* Handles the supported Pine v5 subset:
|
|
5
|
+
* indicator(), input.*(), ta.*(), math.*(), plot(), plotshape()
|
|
6
|
+
* var / varip declarations
|
|
7
|
+
* := reassignment
|
|
8
|
+
* if / else (indented blocks)
|
|
9
|
+
* ternary a ? b : c
|
|
10
|
+
* namespace.member and namespace.call(...)
|
|
11
|
+
*/
|
|
12
|
+
import type { PineProgram } from './pine-ast';
|
|
13
|
+
export declare class PineParser {
|
|
14
|
+
private _tokens;
|
|
15
|
+
private _pos;
|
|
16
|
+
readonly version: number;
|
|
17
|
+
constructor(src: string);
|
|
18
|
+
parse(): PineProgram;
|
|
19
|
+
private _stmt;
|
|
20
|
+
private _varDecl;
|
|
21
|
+
private _assignStmt;
|
|
22
|
+
private _indicatorDecl;
|
|
23
|
+
private _ifStmt;
|
|
24
|
+
private _indentedBlock;
|
|
25
|
+
private _expr;
|
|
26
|
+
private _ternary;
|
|
27
|
+
private _or;
|
|
28
|
+
private _and;
|
|
29
|
+
private _not;
|
|
30
|
+
private _comparison;
|
|
31
|
+
private _addition;
|
|
32
|
+
private _multiply;
|
|
33
|
+
private _unary;
|
|
34
|
+
private _postfix;
|
|
35
|
+
private _primary;
|
|
36
|
+
private _argList;
|
|
37
|
+
private _parseOneArg;
|
|
38
|
+
private _cur;
|
|
39
|
+
private _advance;
|
|
40
|
+
private _check;
|
|
41
|
+
private _checkIdent;
|
|
42
|
+
private _peekKind;
|
|
43
|
+
private _match;
|
|
44
|
+
private _consume;
|
|
45
|
+
private _skipNL;
|
|
46
|
+
private _consumeNLorEOF;
|
|
47
|
+
private _locOfCur;
|
|
48
|
+
private _locOf;
|
|
49
|
+
private _bin;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pine-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pine-parser.d.ts","sourceRoot":"","sources":["../../src/pine/pine-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EACV,WAAW,EAMZ,MAAM,YAAY,CAAC;AAGpB,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAQ;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,GAAG,EAAE,MAAM;IAMvB,KAAK,IAAI,WAAW;IAapB,OAAO,CAAC,KAAK;IAsCb,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,OAAO;IAoBf,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,GAAG;IAUX,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,QAAQ;IAiFhB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAGf,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pine Script → TScript transpiler.
|
|
3
|
+
*
|
|
4
|
+
* Walks a `PineProgram` AST and emits a TScript source string that is
|
|
5
|
+
* directly executable by the existing `TScriptRuntime`.
|
|
6
|
+
*/
|
|
7
|
+
import type { PineProgram } from './pine-ast';
|
|
8
|
+
import { DiagnosticBag } from './diagnostics';
|
|
9
|
+
export declare class PineTranspiler {
|
|
10
|
+
private _diag;
|
|
11
|
+
private _indent;
|
|
12
|
+
private _out;
|
|
13
|
+
constructor(diag: DiagnosticBag);
|
|
14
|
+
transpile(prog: PineProgram): string;
|
|
15
|
+
private _stmt;
|
|
16
|
+
private _indicatorDecl;
|
|
17
|
+
private _varDecl;
|
|
18
|
+
private _assign;
|
|
19
|
+
private _exprStmt;
|
|
20
|
+
private _ifStmt;
|
|
21
|
+
private _expr;
|
|
22
|
+
private _numLit;
|
|
23
|
+
private _nsCall;
|
|
24
|
+
private _inputNsCall;
|
|
25
|
+
private _call;
|
|
26
|
+
private _plotCall;
|
|
27
|
+
private _member;
|
|
28
|
+
private _binary;
|
|
29
|
+
private _unary;
|
|
30
|
+
private _positionalArgs;
|
|
31
|
+
private _line;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=pine-transpiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pine-transpiler.d.ts","sourceRoot":"","sources":["../../src/pine/pine-transpiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EAKZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA+D9C,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAgB;gBAEhB,IAAI,EAAE,aAAa;IAI/B,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;IAWpC,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,OAAO;IAqCf,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,KAAK;IA0Bb,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,KAAK;CAId"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LayerName — ordered Z-index identifiers for the seven render layers.
|
|
3
|
+
*
|
|
4
|
+
* Layers are sorted ascending: lowest = farthest back, highest = topmost.
|
|
5
|
+
* The numeric values are used directly as PixiJS Container `zIndex` values.
|
|
6
|
+
*/
|
|
7
|
+
export declare const enum LayerName {
|
|
8
|
+
Background = 0,
|
|
9
|
+
PriceSeries = 1,
|
|
10
|
+
Indicator = 2,
|
|
11
|
+
Drawing = 3,
|
|
12
|
+
TradingOverlay = 4,
|
|
13
|
+
Interaction = 5,
|
|
14
|
+
UIOverlay = 6
|
|
15
|
+
}
|
|
16
|
+
export declare const LAYER_NAMES: readonly [LayerName.Background, LayerName.PriceSeries, LayerName.Indicator, LayerName.Drawing, LayerName.TradingOverlay, LayerName.Interaction, LayerName.UIOverlay];
|
|
17
|
+
export declare const LAYER_LABEL: Record<LayerName, string>;
|
|
18
|
+
//# sourceMappingURL=LayerName.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayerName.d.ts","sourceRoot":"","sources":["../../src/pixi/LayerName.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,0BAAkB,SAAS;IACzB,UAAU,IAAM;IAChB,WAAW,IAAK;IAChB,SAAS,IAAO;IAChB,OAAO,IAAS;IAChB,cAAc,IAAI;IAClB,WAAW,IAAK;IAChB,SAAS,IAAO;CACjB;AAED,eAAO,MAAM,WAAW,sKAQd,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAQjD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { OHLCV } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
/**
|
|
5
|
+
* PixiCandlestickRenderer — renders OHLCV data as GPU-batched candlesticks.
|
|
6
|
+
*
|
|
7
|
+
* Uses a single re-used `Graphics` object that is fully cleared and redrawn
|
|
8
|
+
* on each invalidation, taking advantage of PixiJS's WebGL batching for
|
|
9
|
+
* high-performance rendering of large datasets.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PixiCandlestickRenderer {
|
|
12
|
+
private readonly _upColor;
|
|
13
|
+
private readonly _downColor;
|
|
14
|
+
private readonly _gfx;
|
|
15
|
+
constructor(layer: Container, _upColor?: number, _downColor?: number);
|
|
16
|
+
draw(bars: readonly OHLCV[], transform: CoordTransform): void;
|
|
17
|
+
/**
|
|
18
|
+
* Converts OHLCV bars to Heikin-Ashi values before drawing.
|
|
19
|
+
*/
|
|
20
|
+
drawHeikinAshi(bars: readonly OHLCV[], transform: CoordTransform): void;
|
|
21
|
+
private _toHeikinAshi;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=PixiCandlestickRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiCandlestickRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCandlestickRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQ7D;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAKhC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAG9B,KAAK,EAAE,SAAS,EACC,QAAQ,GAAE,MAAiB,EAC3B,UAAU,GAAE,MAAmB;IAMlD,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,GACxB,IAAI;IAkEP;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI;IAIvE,OAAO,CAAC,aAAa;CAkBtB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { ChartOptions, Drawing } from '@forgecharts/types';
|
|
2
|
+
import type { IChart, IChartPlugin } from '../types/IChart';
|
|
3
|
+
import type { ISeries } from '../types/ISeries';
|
|
4
|
+
import { CoordTransform } from '../core/CoordTransform';
|
|
5
|
+
/**
|
|
6
|
+
* PixiChart — GPU-accelerated chart engine built on PixiJS v8.
|
|
7
|
+
*
|
|
8
|
+
* Implements `IChart` identically to the Canvas 2D `Chart` class, so it is
|
|
9
|
+
* a drop-in replacement. Rendering is performed inside a PixiJS `Application`
|
|
10
|
+
* (WebGL / WebGPU auto-detected) using seven sortable `Container` layers.
|
|
11
|
+
*
|
|
12
|
+
* Selective redraw:
|
|
13
|
+
* - `DirtyFlags` tracks which layers need painting.
|
|
14
|
+
* - Each layer's renderer is called only when its flag is set.
|
|
15
|
+
* - Viewport changes (zoom/pan) mark all layers dirty via `_markViewportDirty()`.
|
|
16
|
+
* - Data changes only mark `PriceSeries` dirty.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const chart = new PixiChart(container, { theme: 'dark' });
|
|
21
|
+
* const series = chart.addSeries({ type: 'candlestick' });
|
|
22
|
+
* series.setData(bars);
|
|
23
|
+
*
|
|
24
|
+
* // Access the transform for drawing tools or plugins
|
|
25
|
+
* const { x, y } = chart.transform().toPixel(bar.time, bar.close);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class PixiChart implements IChart {
|
|
29
|
+
private readonly _app;
|
|
30
|
+
private readonly _stage;
|
|
31
|
+
private readonly _container;
|
|
32
|
+
private readonly _options;
|
|
33
|
+
private _colors;
|
|
34
|
+
private readonly _timeScale;
|
|
35
|
+
private readonly _priceScale;
|
|
36
|
+
private readonly _transform;
|
|
37
|
+
private readonly _layers;
|
|
38
|
+
private readonly _gridRenderer;
|
|
39
|
+
private readonly _candleRenderer;
|
|
40
|
+
private readonly _crosshairRenderer;
|
|
41
|
+
private readonly _drawingRenderer;
|
|
42
|
+
private _series;
|
|
43
|
+
private _drawings;
|
|
44
|
+
private _plugins;
|
|
45
|
+
private _resizeObserver;
|
|
46
|
+
private _initPromise;
|
|
47
|
+
private _ready;
|
|
48
|
+
private _interaction;
|
|
49
|
+
constructor(container: HTMLElement, options?: ChartOptions);
|
|
50
|
+
addSeries(options: Parameters<IChart['addSeries']>[0]): ISeries;
|
|
51
|
+
removeSeries(series: ISeries): void;
|
|
52
|
+
addPlugin(plugin: IChartPlugin): void;
|
|
53
|
+
removePlugin(plugin: IChartPlugin): void;
|
|
54
|
+
applyOptions(options: Partial<ChartOptions>): void;
|
|
55
|
+
setInterval(tf: string): void;
|
|
56
|
+
resize(width: number, height: number): void;
|
|
57
|
+
transform(): CoordTransform;
|
|
58
|
+
destroy(): void;
|
|
59
|
+
/** @internal Used by PixiChart when DrawingManager pushes an update. */
|
|
60
|
+
setDrawings(drawings: readonly Drawing[]): void;
|
|
61
|
+
private _renderFrame;
|
|
62
|
+
private _getVisibleBars;
|
|
63
|
+
private _autoFitPriceRange;
|
|
64
|
+
private _markViewportDirty;
|
|
65
|
+
private _onResize;
|
|
66
|
+
private _handleKeyAction;
|
|
67
|
+
/** Pans the viewport so the latest bar sits near the right edge. */
|
|
68
|
+
private _scrollToLatestBar;
|
|
69
|
+
private _resolveOptions;
|
|
70
|
+
private _resolveColors;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=PixiChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA0C,OAAO,EAAyB,MAAM,oBAAoB,CAAC;AAC/H,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAWxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAU,YAAW,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAsB;gBAE9B,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IA8G9D,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAe/D,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKnC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKrC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKxC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAiBlD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK7B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C,SAAS,IAAI,cAAc;IAI3B,OAAO,IAAI,IAAI;IAYf,wEAAwE;IACxE,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAO/C,OAAO,CAAC,YAAY;IAwEpB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,gBAAgB;IAoBxB,oEAAoE;IACpE,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,cAAc;CAOvB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import type { ChartColors } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
/**
|
|
5
|
+
* PixiCrosshairRenderer — draws the interactive crosshair lines and their
|
|
6
|
+
* data-accurate price / time labels using GPU-batched PixiJS Graphics.
|
|
7
|
+
*
|
|
8
|
+
* Owned by the Interaction layer; receives pixel coords from mouse events
|
|
9
|
+
* and converts them to data values via `CoordTransform`.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PixiCrosshairRenderer {
|
|
12
|
+
private readonly _colors;
|
|
13
|
+
private readonly _gfx;
|
|
14
|
+
private readonly _priceLabel;
|
|
15
|
+
private readonly _timeLabel;
|
|
16
|
+
private _x;
|
|
17
|
+
private _y;
|
|
18
|
+
/** Active timeframe — controls whether time is shown alongside the date. */
|
|
19
|
+
interval: string;
|
|
20
|
+
/** IANA timezone for the time label. Falls back to UTC. */
|
|
21
|
+
timezone: string;
|
|
22
|
+
constructor(layer: Container, _colors: ChartColors);
|
|
23
|
+
update(x: number, y: number): void;
|
|
24
|
+
hide(): void;
|
|
25
|
+
draw(transform: CoordTransform): void;
|
|
26
|
+
private _formatPrice;
|
|
27
|
+
private _formatTime;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=PixiCrosshairRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiCrosshairRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCrosshairRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAe9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAElC,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,EAAE,CAAuB;IAEjC,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAQ;IACxB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAS;gBAGvB,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW;IAevC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IA6DrC,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;CAgBpB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { Drawing } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
/**
|
|
5
|
+
* PixiDrawingRenderer — renders all drawing objects via GPU-batched Graphics.
|
|
6
|
+
*
|
|
7
|
+
* All `DrawingPoint` (time, price) → pixel conversions go through
|
|
8
|
+
* `CoordTransform`, keeping drawings perfectly aligned with the price series
|
|
9
|
+
* across zoom/pan without requiring a full re-fetch of underlying data.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PixiDrawingRenderer {
|
|
12
|
+
private readonly _gfx;
|
|
13
|
+
constructor(layer: Container);
|
|
14
|
+
draw(drawings: readonly Drawing[], transform: CoordTransform): void;
|
|
15
|
+
private _drawOne;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=PixiDrawingRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiDrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiDrawingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,KAAK,EAAE,SAAS;IAK5B,IAAI,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI;IAQnE,OAAO,CAAC,QAAQ;CAwFjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import type { ChartColors } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
import type { TimeScale } from '../core/TimeScale';
|
|
5
|
+
/**
|
|
6
|
+
* PixiGridRenderer — draws background fill, horizontal grid lines (price),
|
|
7
|
+
* vertical grid lines (time), and the axis separator borders.
|
|
8
|
+
*
|
|
9
|
+
* All drawing uses PixiJS `Graphics` which is GPU-batched.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PixiGridRenderer {
|
|
12
|
+
private readonly _colors;
|
|
13
|
+
private readonly _gfx;
|
|
14
|
+
private readonly _timeLabels;
|
|
15
|
+
private readonly _priceLabels;
|
|
16
|
+
private readonly _timeScale;
|
|
17
|
+
constructor(layer: Container, _colors: ChartColors, timeScale: TimeScale);
|
|
18
|
+
draw(transform: CoordTransform, width: number, height: number): void;
|
|
19
|
+
private _formatPrice;
|
|
20
|
+
private _niceTimeStep;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=PixiGridRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiGridRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiGridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD;;;;;GAKG;AACH,qBAAa,gBAAgB;IAQzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;gBAGrC,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW,EACrC,SAAS,EAAE,SAAS;IAStB,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiFpE,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;CAgBtB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Container } from 'pixi.js';
|
|
2
|
+
import { LayerName } from './LayerName';
|
|
3
|
+
/**
|
|
4
|
+
* DirtyFlags — bitmask that tracks which layers need to be redrawn.
|
|
5
|
+
*
|
|
6
|
+
* Call `mark(layer)` whenever data or viewport changes affecting a layer.
|
|
7
|
+
* Call `isDirty(layer)` before redrawing to skip unnecessary work.
|
|
8
|
+
* Call `clear(layer)` after the layer finishes drawing.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DirtyFlags {
|
|
11
|
+
private _bits;
|
|
12
|
+
mark(layer: LayerName): void;
|
|
13
|
+
markAll(): void;
|
|
14
|
+
isDirty(layer: LayerName): boolean;
|
|
15
|
+
clear(layer: LayerName): void;
|
|
16
|
+
clearAll(): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* PixiLayerManager — owns one PixiJS `Container` per layer, stacked by z-index.
|
|
20
|
+
*
|
|
21
|
+
* Responsibilities:
|
|
22
|
+
* - Creates and names seven containers corresponding to `LayerName` values
|
|
23
|
+
* - Attaches all containers to a root `Container` already mounted in the stage
|
|
24
|
+
* - Exposes `get(layer)` so renderers can add display objects to the right layer
|
|
25
|
+
* - Owns a `DirtyFlags` instance for selective redraw signalling
|
|
26
|
+
* - `clear(layer)` removes all children from a layer without destroying the container
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const layers = new PixiLayerManager(stage);
|
|
31
|
+
*
|
|
32
|
+
* // Direct child access
|
|
33
|
+
* const seriesContainer = layers.get(LayerName.PriceSeries);
|
|
34
|
+
*
|
|
35
|
+
* // Invalidation
|
|
36
|
+
* layers.dirty.mark(LayerName.PriceSeries);
|
|
37
|
+
* if (layers.dirty.isDirty(LayerName.PriceSeries)) {
|
|
38
|
+
* // redraw…
|
|
39
|
+
* layers.dirty.clear(LayerName.PriceSeries);
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare class PixiLayerManager {
|
|
44
|
+
private readonly _containers;
|
|
45
|
+
readonly dirty: DirtyFlags;
|
|
46
|
+
constructor(stage: Container);
|
|
47
|
+
/** Returns the `Container` for the given layer. */
|
|
48
|
+
get(layer: LayerName): Container;
|
|
49
|
+
/** Removes all display objects from a layer (preserves the container itself). */
|
|
50
|
+
clear(layer: LayerName): void;
|
|
51
|
+
/** Removes all display objects from every layer. */
|
|
52
|
+
clearAll(): void;
|
|
53
|
+
/** Destroys all container children (use on chart destroy). */
|
|
54
|
+
destroy(): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=PixiLayerManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiLayerManager.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI5B,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;CAGjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,QAAQ,CAAC,KAAK,aAAoB;gBAEtB,KAAK,EAAE,SAAS;IAa5B,mDAAmD;IACnD,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAMhC,iFAAiF;IACjF,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAIhB,8DAA8D;IAC9D,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChartCanvas — stacks the main price chart above one or more indicator panes.
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Creates a TChart instance and attaches any `initialIndicators`.
|
|
6
|
+
* - Each non-overlay indicator gets its own sub-pane (managed by TChart's PaneManager).
|
|
7
|
+
* - Draggable dividers let the user resize panes; the price-split fraction is
|
|
8
|
+
* reported via onPriceFractionChange (no localStorage in this package).
|
|
9
|
+
* - A requestAnimationFrame loop forwards viewport changes (pan/zoom) to the
|
|
10
|
+
* indicator canvases so they stay in sync with the main chart’s time axis.
|
|
11
|
+
*
|
|
12
|
+
* Previously exported as MultiPaneChart — that name is kept as an alias.
|
|
13
|
+
*/
|
|
14
|
+
import type { TradingOverlayStore } from '../../';
|
|
15
|
+
import type { IndicatorConfig, ChartLayout } from '@forgecharts/types';
|
|
16
|
+
import type { IDatafeed, ChartTheme } from '@forgecharts/types';
|
|
17
|
+
import type { TradingBridgeCallbacks } from '../trading/TradingBridge';
|
|
18
|
+
export type ChartCanvasHandle = {
|
|
19
|
+
/** Returns the full current chart state (indicators, drawings, viewport). */
|
|
20
|
+
getLayoutSnapshot: () => ChartLayout | null;
|
|
21
|
+
/** Replaces the chart state with the supplied layout snapshot. */
|
|
22
|
+
loadLayoutSnapshot: (layout: ChartLayout) => void;
|
|
23
|
+
/** Adds an indicator to the live chart and returns its id. */
|
|
24
|
+
addIndicator: (config: IndicatorConfig) => string | null;
|
|
25
|
+
/** Captures the visible chart area as a PNG data-URL. */
|
|
26
|
+
captureScreenshot: () => Promise<string | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the chart's internal TradingOverlayStore for Unmanaged mode.
|
|
29
|
+
* Use this to push confirmed order / position state into the chart.
|
|
30
|
+
* Returns null before the chart has mounted.
|
|
31
|
+
*/
|
|
32
|
+
getOverlayStore: () => TradingOverlayStore | null;
|
|
33
|
+
};
|
|
34
|
+
export type ChartCanvasProps = {
|
|
35
|
+
symbol: string;
|
|
36
|
+
timeframe: string;
|
|
37
|
+
datafeed?: IDatafeed;
|
|
38
|
+
theme?: ChartTheme;
|
|
39
|
+
/** IANA timezone for axis labels (e.g. "America/New_York"). */
|
|
40
|
+
timezone?: string | undefined;
|
|
41
|
+
/** Indicators to add on mount. Non-overlay indicators each get a sub-pane. */
|
|
42
|
+
initialIndicators?: IndicatorConfig[];
|
|
43
|
+
/**
|
|
44
|
+
* When provided the chart restores this snapshot on mount instead of
|
|
45
|
+
* reading from localStorage. Pass a snapshot captured via getLayoutSnapshot()
|
|
46
|
+
* or a ChartLayout loaded from the server.
|
|
47
|
+
*/
|
|
48
|
+
layoutToRestore?: ChartLayout | undefined;
|
|
49
|
+
/** Called whenever an indicator is added or removed, so the parent can trigger a workspace save. */
|
|
50
|
+
onIndicatorsChanged?: () => void;
|
|
51
|
+
/**
|
|
52
|
+
* Initial price-pane fraction (0.3–0.85). Defaults to 0.6.
|
|
53
|
+
* The parent controls persistence; changes are reported via onPriceFractionChange.
|
|
54
|
+
*/
|
|
55
|
+
priceFraction?: number;
|
|
56
|
+
/** Called when the user drags the price/sub-pane divider. */
|
|
57
|
+
onPriceFractionChange?: (fraction: number) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Optional callback to resolve an exchange logo URL.
|
|
60
|
+
* Receives the exchange code (e.g. "BINANCE") and returns a URL string,
|
|
61
|
+
* or undefined/null to suppress the logo image entirely.
|
|
62
|
+
* If omitted, no exchange logo is rendered.
|
|
63
|
+
*/
|
|
64
|
+
getExchangeLogoUrl?: (exchange: string) => string | null | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Optional trading bridge callbacks for Unmanaged mode.
|
|
67
|
+
*
|
|
68
|
+
* When provided the chart will invoke these callbacks when the user performs
|
|
69
|
+
* a trading action (drag-to-place, cancel, bracket adjust, etc.).
|
|
70
|
+
* The chart never self-confirms — the host must push confirmed state back
|
|
71
|
+
* through `TradingOverlayStore` (via `upsertOrder` / `setOrders` etc.).
|
|
72
|
+
*
|
|
73
|
+
* Wrap with `createTradingBridgeLogger` during development for structured
|
|
74
|
+
* console output of every emitted intent.
|
|
75
|
+
*/
|
|
76
|
+
tradingBridge?: TradingBridgeCallbacks;
|
|
77
|
+
};
|
|
78
|
+
/** @deprecated Use ChartCanvasProps */
|
|
79
|
+
export type MultiPaneChartProps = ChartCanvasProps;
|
|
80
|
+
/** @deprecated Use ChartCanvasHandle */
|
|
81
|
+
export type MultiPaneChartHandle = ChartCanvasHandle;
|
|
82
|
+
export declare const ChartCanvas: import("react").ForwardRefExoticComponent<ChartCanvasProps & import("react").RefAttributes<ChartCanvasHandle>>;
|
|
83
|
+
/** @deprecated Use ChartCanvas */
|
|
84
|
+
export declare const MultiPaneChart: import("react").ForwardRefExoticComponent<ChartCanvasProps & import("react").RefAttributes<ChartCanvasHandle>>;
|
|
85
|
+
//# sourceMappingURL=ChartCanvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartCanvas.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAyB,eAAe,EAAkC,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9H,OAAO,KAAK,EAAE,SAAS,EAAa,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA0OvE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IAC5C,kEAAkE;IAClE,kBAAkB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,8DAA8D;IAC9D,YAAY,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,GAAG,IAAI,CAAC;IACzD,yDAAyD;IACzD,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChD;;;;OAIG;IACH,eAAe,EAAE,MAAM,mBAAmB,GAAG,IAAI,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC;;;;OAIG;IACH,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC1C,oGAAoG;IACpG,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrE;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AACnD,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAErD,eAAO,MAAM,WAAW,gHAmpBtB,CAAC;AAEH,kCAAkC;AAClC,eAAO,MAAM,cAAc,gHAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChartContextMenu — right-click context menu for the chart canvas.
|
|
3
|
+
*
|
|
4
|
+
* Placed at fixed (x, y) on screen. Clicking outside dismisses it via the
|
|
5
|
+
* transparent backdrop. The parent is responsible for calling onClose.
|
|
6
|
+
*/
|
|
7
|
+
type Props = {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
onSettings: () => void;
|
|
12
|
+
onClearDrawings: () => void;
|
|
13
|
+
onClearIndicators: () => void;
|
|
14
|
+
onResetView: () => void;
|
|
15
|
+
};
|
|
16
|
+
export declare function ChartContextMenu({ x, y, onClose, onSettings, onClearDrawings, onClearIndicators, onResetView, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=ChartContextMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartContextMenu.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartContextMenu.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,KAAK,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,CAAC,EACD,CAAC,EACD,OAAO,EACP,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,GACZ,EAAE,KAAK,2CAkCP"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChartSettingsDialog — canvas settings modal.
|
|
3
|
+
*
|
|
4
|
+
* Sections (sidebar nav):
|
|
5
|
+
* • Canvas — background color, grid visibility, grid color
|
|
6
|
+
*
|
|
7
|
+
* Additional sections can be added by extending SECTIONS and adding a matching
|
|
8
|
+
* content renderer in renderContent().
|
|
9
|
+
*
|
|
10
|
+
* The parent passes `initialSettings` and receives the final values via `onApply`.
|
|
11
|
+
* Nothing is persisted here; persistence (localStorage / DB) lives in the parent.
|
|
12
|
+
*/
|
|
13
|
+
export type CanvasSettings = {
|
|
14
|
+
background: string;
|
|
15
|
+
gridColor: string;
|
|
16
|
+
gridVisible: boolean;
|
|
17
|
+
};
|
|
18
|
+
type Props = {
|
|
19
|
+
initialSettings: CanvasSettings;
|
|
20
|
+
onApply: (settings: CanvasSettings) => void;
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
};
|
|
23
|
+
export declare function ChartSettingsDialog({ initialSettings, onApply, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=ChartSettingsDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartSettingsDialog.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartSettingsDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAQF,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,cAAc,CAAC;IAChC,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,2CAmG/E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndicatorLabel — hover-menu label rendered over a chart pane.
|
|
3
|
+
*
|
|
4
|
+
* Shows the indicator display name in the top-left of a pane.
|
|
5
|
+
* On hover a gear (configure) and × (remove) button appear inline, giving the
|
|
6
|
+
* appearance that the menu is part of the label pill.
|
|
7
|
+
*/
|
|
8
|
+
import type { IndicatorConfig, IndicatorInstance } from '@forgecharts/types';
|
|
9
|
+
export declare function indicatorDisplayName(config: IndicatorConfig): string;
|
|
10
|
+
export declare function IndicatorLabel({ indicator, color, onRemove, onConfigure, }: {
|
|
11
|
+
indicator: IndicatorInstance;
|
|
12
|
+
color?: string;
|
|
13
|
+
onRemove: () => void;
|
|
14
|
+
onConfigure: () => void;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function IndicatorConfigDialog({ indicator, onSave, onClose, }: {
|
|
17
|
+
indicator: IndicatorInstance;
|
|
18
|
+
onSave: (newConfig: IndicatorConfig) => void;
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=IndicatorLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndicatorLabel.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/IndicatorLabel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAW7E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAgBpE;AA6BD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,2CA2EA;AAID,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE;IACD,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,2CAwLA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IndicatorPane — Canvas 2D rendering of a single indicator sub-pane.
|
|
3
|
+
*
|
|
4
|
+
* Uses the main chart's CoordTransform for x-axis alignment, then computes
|
|
5
|
+
* its own per-pane y-axis from indicator value ranges.
|
|
6
|
+
*/
|
|
7
|
+
import type { OHLCV, IndicatorInstance, ChartTheme } from '@forgecharts/types';
|
|
8
|
+
import type { CoordTransform, DAGResult } from '../../';
|
|
9
|
+
export type IndicatorPaneProps = {
|
|
10
|
+
/** Indicators to render in this pane. */
|
|
11
|
+
indicators: readonly IndicatorInstance[];
|
|
12
|
+
/** Full bar dataset — still needed for volume bar up/down colouring. */
|
|
13
|
+
bars: readonly OHLCV[];
|
|
14
|
+
/** Shared coordinate transform from the main price chart. Null until chart mounts. */
|
|
15
|
+
transform: CoordTransform | null;
|
|
16
|
+
/** CSS height of this pane in pixels. */
|
|
17
|
+
height: number;
|
|
18
|
+
/** Colour theme — must match the main chart. */
|
|
19
|
+
theme: ChartTheme;
|
|
20
|
+
/** Pre-computed DAG results — keyed by indicator id. */
|
|
21
|
+
computedResults: ReadonlyMap<string, DAGResult>;
|
|
22
|
+
/** Called when the user clicks the × button on an indicator label. */
|
|
23
|
+
onRemove?: (id: string) => void;
|
|
24
|
+
/** Called when the user clicks the ⚙ button on an indicator label. */
|
|
25
|
+
onConfigure?: (indicator: IndicatorInstance) => void;
|
|
26
|
+
/** Ref to the current crosshair X pixel (from the price pane). Drawn as a synced vertical line. */
|
|
27
|
+
crosshairXRef?: {
|
|
28
|
+
current: number | null;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare function IndicatorPane({ indicators, bars, transform, height, theme, computedResults, crosshairXRef, onRemove, onConfigure, }: IndicatorPaneProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=IndicatorPane.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndicatorPane.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/IndicatorPane.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAyTxD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yCAAyC;IACzC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACzC,wEAAwE;IACxE,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IACvB,sFAAsF;IACtF,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,EAAE,UAAU,CAAC;IAClB,wDAAwD;IACxD,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,mGAAmG;IACnG,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAC5C,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,IAAI,EACJ,SAAS,EACT,MAAM,EACN,KAAK,EACL,eAAe,EACf,aAAa,EACb,QAAQ,EACR,WAAW,GACZ,EAAE,kBAAkB,2CAqJpB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PointerToolType } from '../../';
|
|
3
|
+
/**
|
|
4
|
+
* PointerOverlay — a transparent `<div>` that covers the entire chart area and
|
|
5
|
+
* renders tool-specific cursor visuals for the `dot` and `demonstration` modes.
|
|
6
|
+
*
|
|
7
|
+
* - **dot**: SVG crosshair lines + small filled circle at the intersection.
|
|
8
|
+
* - **demonstration**: SVG crosshair + semi-transparent filled circle centred
|
|
9
|
+
* on the cursor.
|
|
10
|
+
*
|
|
11
|
+
* The component does NOT intercept pointer events (`pointerEvents: none`), so
|
|
12
|
+
* all mouse interactions pass through to the canvas layers beneath it.
|
|
13
|
+
*/
|
|
14
|
+
type Props = {
|
|
15
|
+
mode: PointerToolType;
|
|
16
|
+
/** Width of the container to size the SVG overlay. */
|
|
17
|
+
width: number;
|
|
18
|
+
/** Height of the container to size the SVG overlay. */
|
|
19
|
+
height: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function PointerOverlay({ mode, width, height }: Props): React.ReactElement | null;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=PointerOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PointerOverlay.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/PointerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAU9C;;;;;;;;;;GAUG;AAEH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA4FxF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DrawingToolType } from '../../../';
|
|
3
|
+
export type VisibilityAction = 'hideDrawings' | 'hideIndicators' | 'hidePositions' | 'hideAll';
|
|
4
|
+
type Props = {
|
|
5
|
+
activeTool: DrawingToolType;
|
|
6
|
+
onSelectTool: (tool: DrawingToolType) => void;
|
|
7
|
+
/** Current drawing-tool favorites, controlled by the parent. */
|
|
8
|
+
drawingFavorites?: DrawingToolType[];
|
|
9
|
+
/** Called when the user stars/unstars a drawing tool. */
|
|
10
|
+
onDrawingFavoritesChange?: (favs: DrawingToolType[]) => void;
|
|
11
|
+
onVisibilityAction?: (action: VisibilityAction) => void;
|
|
12
|
+
visibilityActiveAction?: VisibilityAction | null;
|
|
13
|
+
onVisibilityDeactivate?: () => void;
|
|
14
|
+
onLinkClick?: () => void;
|
|
15
|
+
onDeleteClick?: () => void;
|
|
16
|
+
};
|
|
17
|
+
export declare function LeftToolbar({ activeTool, onSelectTool, drawingFavorites, onDrawingFavoritesChange, onVisibilityAction, visibilityActiveAction, onVisibilityDeactivate, onLinkClick, onDeleteClick }: Props): React.ReactElement;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=LeftToolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LeftToolbar.d.ts","sourceRoot":"","sources":["../../../../src/react/canvas/toolbars/LeftToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,WAAW,CAAC;AAs3B/E,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAAC;AAsF/F,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC9C,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,yDAAyD;IACzD,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACxD,sBAAsB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjD,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CA2G/N"}
|