@363045841yyt/klinechart-core 0.8.6 → 0.8.7
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/config/chartSettings.d.ts +21 -2
- package/dist/config/chartSettings.d.ts.map +1 -1
- package/dist/config/chartSettings.js +9 -1
- package/dist/config/chartSettings.js.map +1 -1
- package/dist/controllers/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +49 -2
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/types.d.ts +34 -23
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/data-fetchers/baostock.d.ts +0 -3
- package/dist/data-fetchers/baostock.d.ts.map +1 -1
- package/dist/data-fetchers/baostock.js +0 -1
- package/dist/data-fetchers/baostock.js.map +1 -1
- package/dist/data-fetchers/dataBuffer.d.ts +13 -2
- package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
- package/dist/data-fetchers/dataBuffer.js +41 -7
- package/dist/data-fetchers/dataBuffer.js.map +1 -1
- package/dist/data-fetchers/dataBufferTypes.d.ts +11 -0
- package/dist/data-fetchers/dataBufferTypes.d.ts.map +1 -0
- package/dist/data-fetchers/dataBufferTypes.js +2 -0
- package/dist/data-fetchers/dataBufferTypes.js.map +1 -0
- package/dist/data-fetchers/fetcherDefinitionRegistry.d.ts +4 -3
- package/dist/data-fetchers/fetcherDefinitionRegistry.d.ts.map +1 -1
- package/dist/data-fetchers/fetcherDefinitionRegistry.js +9 -2
- package/dist/data-fetchers/fetcherDefinitionRegistry.js.map +1 -1
- package/dist/data-fetchers/gotdx/gotdx.d.ts +7 -0
- package/dist/data-fetchers/gotdx/gotdx.d.ts.map +1 -0
- package/dist/data-fetchers/gotdx/gotdx.js +7 -0
- package/dist/data-fetchers/gotdx/gotdx.js.map +1 -0
- package/dist/data-fetchers/gotdx.d.ts +0 -8
- package/dist/data-fetchers/gotdx.d.ts.map +1 -1
- package/dist/data-fetchers/gotdx.js +40 -3
- package/dist/data-fetchers/gotdx.js.map +1 -1
- package/dist/data-fetchers/hundred-mock.d.ts +0 -3
- package/dist/data-fetchers/hundred-mock.d.ts.map +1 -1
- package/dist/data-fetchers/hundred-mock.js +0 -1
- package/dist/data-fetchers/hundred-mock.js.map +1 -1
- package/dist/data-fetchers/index.d.ts +10 -8
- package/dist/data-fetchers/index.d.ts.map +1 -1
- package/dist/data-fetchers/index.js +8 -7
- package/dist/data-fetchers/index.js.map +1 -1
- package/dist/data-fetchers/router.d.ts +2 -0
- package/dist/data-fetchers/router.d.ts.map +1 -1
- package/dist/data-fetchers/router.js +8 -1
- package/dist/data-fetchers/router.js.map +1 -1
- package/dist/data-fetchers/thousand-mock.d.ts +0 -3
- package/dist/data-fetchers/thousand-mock.d.ts.map +1 -1
- package/dist/data-fetchers/thousand-mock.js +0 -1
- package/dist/data-fetchers/thousand-mock.js.map +1 -1
- package/dist/data-fetchers/timeShareBuffer.d.ts +27 -0
- package/dist/data-fetchers/timeShareBuffer.d.ts.map +1 -0
- package/dist/data-fetchers/timeShareBuffer.js +79 -0
- package/dist/data-fetchers/timeShareBuffer.js.map +1 -0
- package/dist/data-fetchers/tradingview.d.ts +0 -8
- package/dist/data-fetchers/tradingview.d.ts.map +1 -1
- package/dist/data-fetchers/tradingview.js +1 -2
- package/dist/data-fetchers/tradingview.js.map +1 -1
- package/dist/data-fetchers/types.d.ts +9 -1
- package/dist/data-fetchers/types.d.ts.map +1 -1
- package/dist/engine/chart.d.ts +29 -1
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +140 -5
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/chartTypes.d.ts +3 -0
- package/dist/engine/chartTypes.d.ts.map +1 -1
- package/dist/engine/controller/interaction.d.ts +6 -1
- package/dist/engine/controller/interaction.d.ts.map +1 -1
- package/dist/engine/controller/interaction.js +76 -28
- package/dist/engine/controller/interaction.js.map +1 -1
- package/dist/engine/data/chartDataManager.d.ts +38 -11
- package/dist/engine/data/chartDataManager.d.ts.map +1 -1
- package/dist/engine/data/chartDataManager.js +491 -188
- package/dist/engine/data/chartDataManager.js.map +1 -1
- package/dist/engine/draw/pixelAlign.d.ts +0 -27
- package/dist/engine/draw/pixelAlign.d.ts.map +1 -1
- package/dist/engine/draw/pixelAlign.js +1 -1
- package/dist/engine/draw/pixelAlign.js.map +1 -1
- package/dist/engine/indicators/calculators.d.ts +0 -104
- package/dist/engine/indicators/calculators.d.ts.map +1 -1
- package/dist/engine/indicators/calculators.js +57 -168
- package/dist/engine/indicators/calculators.js.map +1 -1
- package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
- package/dist/engine/indicators/chartIndicatorManager.js +3 -2
- package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
- package/dist/engine/indicators/macdState.d.ts +0 -5
- package/dist/engine/indicators/macdState.d.ts.map +1 -1
- package/dist/engine/indicators/macdState.js +1 -1
- package/dist/engine/indicators/macdState.js.map +1 -1
- package/dist/engine/indicators/registerBuiltins.d.ts.map +1 -1
- package/dist/engine/indicators/registerBuiltins.js +1 -0
- package/dist/engine/indicators/registerBuiltins.js.map +1 -1
- package/dist/engine/indicators/rsiState.d.ts +0 -4
- package/dist/engine/indicators/rsiState.d.ts.map +1 -1
- package/dist/engine/indicators/rsiState.js +1 -1
- package/dist/engine/indicators/rsiState.js.map +1 -1
- package/dist/engine/indicators/scheduler.d.ts.map +1 -1
- package/dist/engine/indicators/scheduler.js +1 -7
- package/dist/engine/indicators/scheduler.js.map +1 -1
- package/dist/engine/layout/chartPaneLayout.d.ts +2 -0
- package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -1
- package/dist/engine/layout/chartPaneLayout.js +24 -6
- package/dist/engine/layout/chartPaneLayout.js.map +1 -1
- package/dist/engine/modes/kLineMode.d.ts +37 -0
- package/dist/engine/modes/kLineMode.d.ts.map +1 -0
- package/dist/engine/modes/kLineMode.js +22 -0
- package/dist/engine/modes/kLineMode.js.map +1 -0
- package/dist/engine/modes/timeShareMode.d.ts +37 -0
- package/dist/engine/modes/timeShareMode.d.ts.map +1 -0
- package/dist/engine/modes/timeShareMode.js +59 -0
- package/dist/engine/modes/timeShareMode.js.map +1 -0
- package/dist/engine/modes/types.d.ts +47 -0
- package/dist/engine/modes/types.d.ts.map +1 -0
- package/dist/engine/modes/types.js +2 -0
- package/dist/engine/modes/types.js.map +1 -0
- package/dist/engine/paneRenderer.d.ts +4 -0
- package/dist/engine/paneRenderer.d.ts.map +1 -1
- package/dist/engine/paneRenderer.js +27 -40
- package/dist/engine/paneRenderer.js.map +1 -1
- package/dist/engine/render/chartRenderer.d.ts +4 -23
- package/dist/engine/render/chartRenderer.d.ts.map +1 -1
- package/dist/engine/render/chartRenderer.js +87 -17
- package/dist/engine/render/chartRenderer.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts +1 -18
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +3 -22
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.d.ts +1 -4
- package/dist/engine/renderers/Indicator/boll.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +3 -18
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts +1 -22
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +8 -20
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts +1 -7
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js +3 -16
- package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.d.ts +1 -7
- package/dist/engine/renderers/Indicator/cmf.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.js +3 -15
- package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
- package/dist/engine/renderers/Indicator/dema.d.ts +1 -7
- package/dist/engine/renderers/Indicator/dema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/dema.js +3 -17
- package/dist/engine/renderers/Indicator/dema.js.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.d.ts +1 -8
- package/dist/engine/renderers/Indicator/donchian.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.js +2 -2
- package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.d.ts +1 -12
- package/dist/engine/renderers/Indicator/ene.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +3 -18
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.d.ts +1 -4
- package/dist/engine/renderers/Indicator/expma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +2 -2
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts +1 -22
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +11 -64
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/fib.d.ts +1 -6
- package/dist/engine/renderers/Indicator/fib.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fib.js +2 -2
- package/dist/engine/renderers/Indicator/fib.js.map +1 -1
- package/dist/engine/renderers/Indicator/hma.d.ts +1 -7
- package/dist/engine/renderers/Indicator/hma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hma.js +3 -17
- package/dist/engine/renderers/Indicator/hma.js.map +1 -1
- package/dist/engine/renderers/Indicator/hv.d.ts +1 -7
- package/dist/engine/renderers/Indicator/hv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hv.js +3 -16
- package/dist/engine/renderers/Indicator/hv.js.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.d.ts +1 -8
- package/dist/engine/renderers/Indicator/ichimoku.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.js +2 -2
- package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
- package/dist/engine/renderers/Indicator/kama.d.ts +1 -7
- package/dist/engine/renderers/Indicator/kama.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kama.js +3 -17
- package/dist/engine/renderers/Indicator/kama.js.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.d.ts +1 -8
- package/dist/engine/renderers/Indicator/keltner.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.js +2 -2
- package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts +1 -22
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +2 -2
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.d.ts +1 -4
- package/dist/engine/renderers/Indicator/ma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +1 -1
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts +1 -49
- package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +2 -12
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +114 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.d.ts +1 -7
- package/dist/engine/renderers/Indicator/mfi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.js +3 -15
- package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts +1 -22
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +8 -23
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/obv.d.ts +1 -7
- package/dist/engine/renderers/Indicator/obv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/obv.js +3 -14
- package/dist/engine/renderers/Indicator/obv.js.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.d.ts +1 -7
- package/dist/engine/renderers/Indicator/parkinson.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.js +3 -16
- package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.d.ts +1 -6
- package/dist/engine/renderers/Indicator/pivot.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.js +2 -2
- package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.d.ts +1 -7
- package/dist/engine/renderers/Indicator/pvt.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.js +3 -14
- package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
- package/dist/engine/renderers/Indicator/roc.d.ts +1 -8
- package/dist/engine/renderers/Indicator/roc.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/roc.js +3 -15
- package/dist/engine/renderers/Indicator/roc.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts +0 -32
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +3 -3
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/sar.d.ts +1 -8
- package/dist/engine/renderers/Indicator/sar.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/sar.js +2 -2
- package/dist/engine/renderers/Indicator/sar.js.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts +2 -0
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js +10 -6
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js.map +1 -1
- package/dist/engine/renderers/Indicator/shared/dashedLines.d.ts +4 -0
- package/dist/engine/renderers/Indicator/shared/dashedLines.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/shared/dashedLines.js +50 -0
- package/dist/engine/renderers/Indicator/shared/dashedLines.js.map +1 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.d.ts +14 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.js +25 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.js.map +1 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.d.ts +5 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.js +17 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.js.map +1 -0
- package/dist/engine/renderers/Indicator/stoch.d.ts +1 -22
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +5 -46
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.d.ts +1 -7
- package/dist/engine/renderers/Indicator/structure.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +2 -2
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.d.ts +1 -8
- package/dist/engine/renderers/Indicator/supertrend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.js +2 -2
- package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
- package/dist/engine/renderers/Indicator/tema.d.ts +1 -7
- package/dist/engine/renderers/Indicator/tema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/tema.js +3 -17
- package/dist/engine/renderers/Indicator/tema.js.map +1 -1
- package/dist/engine/renderers/Indicator/trix.d.ts +1 -8
- package/dist/engine/renderers/Indicator/trix.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/trix.js +2 -2
- package/dist/engine/renderers/Indicator/trix.js.map +1 -1
- package/dist/engine/renderers/Indicator/vma.d.ts +1 -7
- package/dist/engine/renderers/Indicator/vma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vma.js +3 -15
- package/dist/engine/renderers/Indicator/vma.js.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts +1 -7
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.js +2 -2
- package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.d.ts +1 -7
- package/dist/engine/renderers/Indicator/vwap.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.js +3 -14
- package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
- package/dist/engine/renderers/Indicator/wma.d.ts +1 -7
- package/dist/engine/renderers/Indicator/wma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wma.js +3 -17
- package/dist/engine/renderers/Indicator/wma.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts +1 -22
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +8 -23
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.d.ts +1 -6
- package/dist/engine/renderers/Indicator/zones.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +2 -2
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts +0 -16
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +1 -1
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/comparisonLine.d.ts.map +1 -1
- package/dist/engine/renderers/comparisonLine.js +2 -0
- package/dist/engine/renderers/comparisonLine.js.map +1 -1
- package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
- package/dist/engine/renderers/extremaMarkers.js +2 -0
- package/dist/engine/renderers/extremaMarkers.js.map +1 -1
- package/dist/engine/renderers/lastPrice.d.ts.map +1 -1
- package/dist/engine/renderers/lastPrice.js +7 -2
- package/dist/engine/renderers/lastPrice.js.map +1 -1
- package/dist/engine/renderers/leftYAxis.d.ts +11 -0
- package/dist/engine/renderers/leftYAxis.d.ts.map +1 -0
- package/dist/engine/renderers/leftYAxis.js +67 -0
- package/dist/engine/renderers/leftYAxis.js.map +1 -0
- package/dist/engine/renderers/subVolume.d.ts +1 -13
- package/dist/engine/renderers/subVolume.d.ts.map +1 -1
- package/dist/engine/renderers/subVolume.js +1 -1
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/renderers/timeAxis.d.ts +0 -2
- package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
- package/dist/engine/renderers/timeAxis.js +4 -1
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/renderers/timeShare.d.ts +3 -0
- package/dist/engine/renderers/timeShare.d.ts.map +1 -0
- package/dist/engine/renderers/timeShare.js +260 -0
- package/dist/engine/renderers/timeShare.js.map +1 -0
- package/dist/engine/renderers/yAxis.d.ts.map +1 -1
- package/dist/engine/renderers/yAxis.js +9 -1
- package/dist/engine/renderers/yAxis.js.map +1 -1
- package/dist/engine/scale/price.d.ts +0 -7
- package/dist/engine/scale/price.d.ts.map +1 -1
- package/dist/engine/scale/price.js +3 -2
- package/dist/engine/scale/price.js.map +1 -1
- package/dist/engine/theme/fonts.d.ts +0 -2
- package/dist/engine/theme/fonts.d.ts.map +1 -1
- package/dist/engine/theme/fonts.js +1 -1
- package/dist/engine/theme/fonts.js.map +1 -1
- package/dist/engine/utils/klineConfig.d.ts.map +1 -1
- package/dist/engine/utils/klineConfig.js +1 -5
- package/dist/engine/utils/klineConfig.js.map +1 -1
- package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
- package/dist/engine/viewport/chartViewportManager.js +6 -5
- package/dist/engine/viewport/chartViewportManager.js.map +1 -1
- package/dist/plugin/types.d.ts +1 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/semantic/types.d.ts +1 -1
- package/dist/semantic/types.d.ts.map +1 -1
- package/dist/tokens/theme-base.d.ts +5 -0
- package/dist/tokens/theme-base.d.ts.map +1 -0
- package/dist/tokens/theme-base.js +31 -0
- package/dist/tokens/theme-base.js.map +1 -0
- package/dist/tokens/theme-china.d.ts.map +1 -1
- package/dist/tokens/theme-china.js +3 -0
- package/dist/tokens/theme-china.js.map +1 -1
- package/dist/tokens/theme-dark.d.ts.map +1 -1
- package/dist/tokens/theme-dark.js +11 -30
- package/dist/tokens/theme-dark.js.map +1 -1
- package/dist/tokens/theme-light.d.ts.map +1 -1
- package/dist/tokens/theme-light.js +11 -30
- package/dist/tokens/theme-light.js.map +1 -1
- package/dist/tokens/types.d.ts +7 -0
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/types/price.d.ts +8 -0
- package/dist/types/price.d.ts.map +1 -1
- package/dist/types/price.js +4 -0
- package/dist/types/price.js.map +1 -1
- package/dist/utils/dateFormat.d.ts +5 -42
- package/dist/utils/dateFormat.d.ts.map +1 -1
- package/dist/utils/dateFormat.js +24 -4
- package/dist/utils/dateFormat.js.map +1 -1
- package/dist/utils/kLineDraw/axis.d.ts +9 -28
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +33 -58
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/utils/volumePrice.d.ts +0 -40
- package/dist/utils/volumePrice.d.ts.map +1 -1
- package/dist/utils/volumePrice.js +2 -2
- package/dist/utils/volumePrice.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/config/chartSettings.ts +9 -1
- package/src/controllers/createChartController.ts +52 -2
- package/src/controllers/types.ts +36 -17
- package/src/data-fetchers/__tests__/dataBuffer.test.ts +39 -5
- package/src/data-fetchers/baostock.ts +1 -1
- package/src/data-fetchers/dataBuffer.ts +48 -11
- package/src/data-fetchers/dataBufferTypes.ts +11 -0
- package/src/data-fetchers/fetcherDefinitionRegistry.ts +14 -4
- package/src/data-fetchers/gotdx/gotdx.ts +6 -0
- package/src/data-fetchers/gotdx.ts +45 -7
- package/src/data-fetchers/hundred-mock.ts +1 -1
- package/src/data-fetchers/index.ts +10 -20
- package/src/data-fetchers/router.ts +12 -1
- package/src/data-fetchers/thousand-mock.ts +1 -1
- package/src/data-fetchers/timeShareBuffer.ts +92 -0
- package/src/data-fetchers/tradingview.ts +2 -2
- package/src/data-fetchers/types.ts +15 -2
- package/src/engine/__tests__/chart.dpr.test.ts +1 -0
- package/src/engine/chart.ts +157 -7
- package/src/engine/chartTypes.ts +3 -0
- package/src/engine/controller/__tests__/interaction.dpr.test.ts +2 -0
- package/src/engine/controller/interaction.ts +80 -28
- package/src/engine/data/chartDataManager.ts +557 -214
- package/src/engine/draw/pixelAlign.ts +1 -1
- package/src/engine/indicators/__tests__/_propertyAssertions.ts +2 -2
- package/src/engine/indicators/__tests__/registerBuiltins.test.ts +1 -1
- package/src/engine/indicators/calculators.ts +83 -233
- package/src/engine/indicators/chartIndicatorManager.ts +3 -2
- package/src/engine/indicators/macdState.ts +1 -1
- package/src/engine/indicators/registerBuiltins.ts +1 -0
- package/src/engine/indicators/rsiState.ts +1 -1
- package/src/engine/indicators/scheduler.ts +1 -7
- package/src/engine/layout/chartPaneLayout.ts +26 -6
- package/src/engine/modes/kLineMode.ts +57 -0
- package/src/engine/modes/timeShareMode.ts +95 -0
- package/src/engine/modes/types.ts +63 -0
- package/src/engine/paneRenderer.ts +37 -46
- package/src/engine/render/chartRenderer.ts +93 -20
- package/src/engine/renderers/Indicator/atr.ts +4 -29
- package/src/engine/renderers/Indicator/boll.ts +3 -24
- package/src/engine/renderers/Indicator/cci.ts +9 -27
- package/src/engine/renderers/Indicator/chaikinVol.ts +3 -23
- package/src/engine/renderers/Indicator/cmf.ts +3 -22
- package/src/engine/renderers/Indicator/dema.ts +5 -26
- package/src/engine/renderers/Indicator/donchian.ts +3 -3
- package/src/engine/renderers/Indicator/ene.ts +3 -24
- package/src/engine/renderers/Indicator/expma.ts +2 -2
- package/src/engine/renderers/Indicator/fastk.ts +12 -95
- package/src/engine/renderers/Indicator/fib.ts +2 -2
- package/src/engine/renderers/Indicator/hma.ts +5 -26
- package/src/engine/renderers/Indicator/hv.ts +3 -23
- package/src/engine/renderers/Indicator/ichimoku.ts +3 -3
- package/src/engine/renderers/Indicator/kama.ts +5 -26
- package/src/engine/renderers/Indicator/keltner.ts +3 -3
- package/src/engine/renderers/Indicator/kst.ts +3 -3
- package/src/engine/renderers/Indicator/ma.ts +1 -1
- package/src/engine/renderers/Indicator/macd.ts +4 -21
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +127 -2
- package/src/engine/renderers/Indicator/mfi.ts +3 -22
- package/src/engine/renderers/Indicator/mom.ts +9 -30
- package/src/engine/renderers/Indicator/obv.ts +3 -21
- package/src/engine/renderers/Indicator/parkinson.ts +3 -23
- package/src/engine/renderers/Indicator/pivot.ts +2 -2
- package/src/engine/renderers/Indicator/pvt.ts +3 -21
- package/src/engine/renderers/Indicator/roc.ts +4 -23
- package/src/engine/renderers/Indicator/rsi.ts +4 -4
- package/src/engine/renderers/Indicator/sar.ts +3 -3
- package/src/engine/renderers/Indicator/scale/indicator_scale.ts +11 -4
- package/src/engine/renderers/Indicator/shared/dashedLines.ts +81 -0
- package/src/engine/renderers/Indicator/shared/titleInfo.ts +52 -0
- package/src/engine/renderers/Indicator/shared/webglBand.ts +23 -0
- package/src/engine/renderers/Indicator/stoch.ts +6 -71
- package/src/engine/renderers/Indicator/structure.ts +2 -2
- package/src/engine/renderers/Indicator/supertrend.ts +3 -3
- package/src/engine/renderers/Indicator/tema.ts +5 -26
- package/src/engine/renderers/Indicator/trix.ts +3 -3
- package/src/engine/renderers/Indicator/vma.ts +3 -22
- package/src/engine/renderers/Indicator/volumeProfile.ts +2 -2
- package/src/engine/renderers/Indicator/vwap.ts +3 -21
- package/src/engine/renderers/Indicator/wma.ts +5 -26
- package/src/engine/renderers/Indicator/wmsr.ts +9 -30
- package/src/engine/renderers/Indicator/zones.ts +2 -2
- package/src/engine/renderers/candle.ts +1 -1
- package/src/engine/renderers/comparisonLine.ts +1 -0
- package/src/engine/renderers/extremaMarkers.ts +1 -0
- package/src/engine/renderers/lastPrice.ts +5 -2
- package/src/engine/renderers/leftYAxis.ts +77 -0
- package/src/engine/renderers/subVolume.ts +3 -3
- package/src/engine/renderers/timeAxis.ts +16 -13
- package/src/engine/renderers/timeShare.ts +271 -0
- package/src/engine/renderers/yAxis.ts +9 -1
- package/src/engine/scale/price.ts +2 -2
- package/src/engine/theme/fonts.ts +1 -1
- package/src/engine/utils/klineConfig.ts +1 -5
- package/src/engine/viewport/chartViewportManager.ts +6 -5
- package/src/plugin/types.ts +1 -0
- package/src/semantic/types.ts +1 -1
- package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +14 -0
- package/src/tokens/theme-base.ts +36 -0
- package/src/tokens/theme-china.ts +4 -0
- package/src/tokens/theme-dark.ts +12 -32
- package/src/tokens/theme-light.ts +13 -33
- package/src/tokens/types.ts +9 -0
- package/src/types/price.ts +13 -0
- package/src/utils/dateFormat.ts +27 -4
- package/src/utils/kLineDraw/axis.ts +40 -107
- package/src/utils/volumePrice.ts +2 -2
- package/src/version.ts +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { createSignal } from '../reactivity/signal';
|
|
2
|
+
import { routerTimeShareFetcher } from './router';
|
|
3
|
+
export class TimeShareBuffer {
|
|
4
|
+
_data = [];
|
|
5
|
+
_dataSignal = createSignal([]);
|
|
6
|
+
_loadingSignal = createSignal(false);
|
|
7
|
+
_fetcher = null;
|
|
8
|
+
_queryDate = 0;
|
|
9
|
+
_requestSeq = 0;
|
|
10
|
+
_disposed = false;
|
|
11
|
+
get data() {
|
|
12
|
+
return this._dataSignal;
|
|
13
|
+
}
|
|
14
|
+
get loading() {
|
|
15
|
+
return this._loadingSignal;
|
|
16
|
+
}
|
|
17
|
+
get loadedWindow() {
|
|
18
|
+
if (this._data.length === 0)
|
|
19
|
+
return null;
|
|
20
|
+
return {
|
|
21
|
+
earliestTs: this._data[0].timestamp,
|
|
22
|
+
latestTs: this._data[this._data.length - 1].timestamp,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
getRawData() {
|
|
26
|
+
return this._data;
|
|
27
|
+
}
|
|
28
|
+
setFetcher(fetcher) {
|
|
29
|
+
this._fetcher = fetcher;
|
|
30
|
+
}
|
|
31
|
+
setQueryDate(date) {
|
|
32
|
+
this._queryDate = date;
|
|
33
|
+
}
|
|
34
|
+
getFetcher() {
|
|
35
|
+
return this._fetcher;
|
|
36
|
+
}
|
|
37
|
+
getQueryDate() {
|
|
38
|
+
return this._queryDate;
|
|
39
|
+
}
|
|
40
|
+
async load(spec) {
|
|
41
|
+
if (this._disposed)
|
|
42
|
+
return;
|
|
43
|
+
const fetcher = this._fetcher ?? routerTimeShareFetcher;
|
|
44
|
+
const requestSeq = ++this._requestSeq;
|
|
45
|
+
this._loadingSignal.set(true);
|
|
46
|
+
try {
|
|
47
|
+
const data = await fetcher(spec.source ?? 'gotdx', {
|
|
48
|
+
symbol: spec.symbol,
|
|
49
|
+
exchange: spec.exchange,
|
|
50
|
+
date: this._queryDate || undefined,
|
|
51
|
+
});
|
|
52
|
+
this._queryDate = 0;
|
|
53
|
+
if (requestSeq !== this._requestSeq)
|
|
54
|
+
return;
|
|
55
|
+
if (this._disposed)
|
|
56
|
+
return;
|
|
57
|
+
this._data = [...data];
|
|
58
|
+
this._dataSignal.set([...data]);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
if (requestSeq === this._requestSeq) {
|
|
62
|
+
this._loadingSignal.set(false);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
setInlineData(data) {
|
|
67
|
+
if (this._disposed)
|
|
68
|
+
return;
|
|
69
|
+
this._data = data;
|
|
70
|
+
this._dataSignal.set([...data]);
|
|
71
|
+
}
|
|
72
|
+
dispose() {
|
|
73
|
+
this._disposed = true;
|
|
74
|
+
this._requestSeq++;
|
|
75
|
+
this._data = [];
|
|
76
|
+
this._loadingSignal.set(false);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=timeShareBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeShareBuffer.js","sourceRoot":"","sources":["../../src/data-fetchers/timeShareBuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
import type { KLineData } from '../controllers/types';
|
|
2
|
-
import type { FetchConfig } from './types';
|
|
3
|
-
declare function fetchTradingview(_source: string, config: FetchConfig): Promise<ReadonlyArray<KLineData>>;
|
|
4
|
-
export declare class TradingviewFetcher {
|
|
5
|
-
static fetcher: typeof fetchTradingview;
|
|
6
|
-
}
|
|
7
|
-
/** @deprecated Use `TradingviewFetcher.fetcher` directly or rely on routerDataFetcher. */
|
|
8
|
-
export declare const tradingviewDataFetcher: typeof fetchTradingview;
|
|
9
1
|
export {};
|
|
10
2
|
//# sourceMappingURL=tradingview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tradingview.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/tradingview.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tradingview.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/tradingview.ts"],"names":[],"mappings":""}
|
|
@@ -110,7 +110,6 @@ let TradingviewFetcher = (() => {
|
|
|
110
110
|
};
|
|
111
111
|
return TradingviewFetcher = _classThis;
|
|
112
112
|
})();
|
|
113
|
-
export { TradingviewFetcher };
|
|
114
113
|
/** @deprecated Use `TradingviewFetcher.fetcher` directly or rely on routerDataFetcher. */
|
|
115
|
-
|
|
114
|
+
const tradingviewDataFetcher = fetchTradingview;
|
|
116
115
|
//# sourceMappingURL=tradingview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tradingview.js","sourceRoot":"","sources":["../../src/data-fetchers/tradingview.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAGzD,MAAM,mBAAmB,GAA2B;IAClD,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;CACf,CAAA;AAED,MAAM,YAAY,GAAuC;IACvD,GAAG,EAAE,WAAW;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACb,CAAA;AAED,MAAM,QAAQ,GAAG,uBAAuB,CAAA;AAExC,KAAK,UAAU,gBAAgB,CAC7B,OAAe,EACf,MAAmB;IAEnB,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACrD,MAAM,GAAG,GAAG,GAAG,QAAQ,iCAAiC,MAAM,CAAC,MAAM,cAAc,SAAS,eAAe,SAAS,aAAa,OAAO,GAAG,SAAS,GAAG,OAAO,EAAE,CAAA;IAChK,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC;YAC/D,SAAS,EAAE,IAAI,CAAC,OAAiB;YACjC,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,GAAG,EAAE,IAAI,CAAC,GAAa;YACvB,KAAK,EAAE,IAAI,CAAC,KAAe;YAC3B,MAAM,EAAG,IAAI,CAAC,MAAiB,IAAI,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,MAAM;SACzB,CAAC,CAAgB,CAAA;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAA;QACjD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"tradingview.js","sourceRoot":"","sources":["../../src/data-fetchers/tradingview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { KLineData } from '../controllers/types';
|
|
1
|
+
import type { KLineData, TimeShareData } from '../controllers/types';
|
|
2
2
|
export type FetchConfig = {
|
|
3
3
|
symbol: string;
|
|
4
4
|
startDate: string;
|
|
@@ -7,7 +7,14 @@ export type FetchConfig = {
|
|
|
7
7
|
adjust: string;
|
|
8
8
|
exchange?: string;
|
|
9
9
|
};
|
|
10
|
+
export type TimeShareFetchConfig = {
|
|
11
|
+
symbol: string;
|
|
12
|
+
exchange?: string;
|
|
13
|
+
/** YYYYMMDD format query date, e.g. 20260618 */
|
|
14
|
+
date?: number;
|
|
15
|
+
};
|
|
10
16
|
export type DataFetcherFn = (source: string, config: FetchConfig) => Promise<ReadonlyArray<KLineData>>;
|
|
17
|
+
export type TimeShareFetcherFn = (source: string, config: TimeShareFetchConfig) => Promise<ReadonlyArray<TimeShareData>>;
|
|
11
18
|
export interface DataFetcherDefinitionConfig {
|
|
12
19
|
name: string;
|
|
13
20
|
displayName: string;
|
|
@@ -17,5 +24,6 @@ export interface DataFetcherDefinitionConfig {
|
|
|
17
24
|
}
|
|
18
25
|
export interface DataFetcherDefinition extends DataFetcherDefinitionConfig {
|
|
19
26
|
fetcher: DataFetcherFn;
|
|
27
|
+
timeShareFetcher?: TimeShareFetcherFn;
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data-fetchers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;AAEtC,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,KACzB,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;AAE1C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,2BAA2B;IACxE,OAAO,EAAE,aAAa,CAAA;IACtB,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CACtC"}
|
package/dist/engine/chart.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { KLineData } from '../types/price';
|
|
2
2
|
import type { ChartSettings } from '../config/chartSettings';
|
|
3
3
|
import { type Signal, type Computed } from '../reactivity/signal';
|
|
4
|
-
import type { SymbolSpec } from '../controllers/types';
|
|
4
|
+
import type { SymbolSpec, CustomDataSource } from '../controllers/types';
|
|
5
5
|
import { UpdateLevel } from './layout/pane';
|
|
6
6
|
import { InteractionController, type InteractionSnapshot } from './controller/interaction';
|
|
7
7
|
export type { InteractionSnapshot };
|
|
@@ -11,6 +11,7 @@ import type { MarkerManager, CustomMarkerEntity } from './marker/registry';
|
|
|
11
11
|
import { getPhysicalKLineConfig } from './utils/klineConfig';
|
|
12
12
|
import type { IndicatorScheduler } from './indicators/scheduler';
|
|
13
13
|
import type { SubPaneEntry } from './subPaneManager';
|
|
14
|
+
import type { ChartModeHandler } from './modes/types';
|
|
14
15
|
import { type PluginHostImpl, type RendererPlugin, type RendererPluginWithHost } from '../plugin';
|
|
15
16
|
import type { SubIndicatorType } from './renderers/Indicator';
|
|
16
17
|
export { getPhysicalKLineConfig };
|
|
@@ -39,6 +40,16 @@ export declare class Chart {
|
|
|
39
40
|
private indicatorManager;
|
|
40
41
|
/** 渲染器 */
|
|
41
42
|
private renderer;
|
|
43
|
+
/** 当前活跃的模式处理器 */
|
|
44
|
+
private _activeMode;
|
|
45
|
+
private _kLineMode;
|
|
46
|
+
private _timeShareMode;
|
|
47
|
+
/** 模式切换时保存的渲染状态(退出分时时恢复) */
|
|
48
|
+
private _modeSavedKWidth;
|
|
49
|
+
private _modeSavedKGap;
|
|
50
|
+
private _modeSavedZoomLevel;
|
|
51
|
+
/** 分时模式激活前的 pane Y 轴刻度类型(退出分时时恢复) */
|
|
52
|
+
private _savedScaleTypes;
|
|
42
53
|
/**
|
|
43
54
|
* 启用主图指标
|
|
44
55
|
* @param indicatorId 指标ID
|
|
@@ -64,9 +75,17 @@ export declare class Chart {
|
|
|
64
75
|
*/
|
|
65
76
|
constructor(dom: ChartDom, opt: ChartOptions);
|
|
66
77
|
getViewport(): Viewport | null;
|
|
78
|
+
/** 获取当前活跃的模式处理器 */
|
|
79
|
+
get activeMode(): ChartModeHandler;
|
|
80
|
+
/** 切换模式处理器 */
|
|
81
|
+
setActiveMode(mode: ChartModeHandler): void;
|
|
67
82
|
getCurrentDpr(): number;
|
|
83
|
+
/** 获取当前周期 */
|
|
84
|
+
get currentPeriod(): string;
|
|
68
85
|
/** 获取缓存的 scrollLeft(避免读取 DOM 触发强制回流) */
|
|
69
86
|
getCachedScrollLeft(): number;
|
|
87
|
+
/** 同步程序性 scrollLeft 写入后的缓存,避免等待异步 scroll 事件 */
|
|
88
|
+
syncScrollLeft(scrollLeft: number): void;
|
|
70
89
|
/** 获取逻辑 scrollLeft(减去左侧加载缓冲宽度,可为负值) */
|
|
71
90
|
getLogicalScrollLeft(): number;
|
|
72
91
|
/** 获取插件宿主 */
|
|
@@ -163,6 +182,8 @@ export declare class Chart {
|
|
|
163
182
|
updateData(data: KLineData[]): void;
|
|
164
183
|
/** 获取当前数据源(供 renderers 和 interaction 使用) */
|
|
165
184
|
getData(): KLineData[];
|
|
185
|
+
/** 获取渲染数据源(分时图下为 TimeShareData,K线图为 KLineData) */
|
|
186
|
+
getRenderData(): unknown[];
|
|
166
187
|
/** 获取指标调度器(供外部控制器更新指标配置) */
|
|
167
188
|
getIndicatorScheduler(): IndicatorScheduler;
|
|
168
189
|
getLogicalSlotCount(): number;
|
|
@@ -195,6 +216,8 @@ export declare class Chart {
|
|
|
195
216
|
get viewport(): Signal<ViewportState>;
|
|
196
217
|
/** 数据信号 */
|
|
197
218
|
get data(): Signal<ReadonlyArray<KLineData>>;
|
|
219
|
+
/** 加载信号 */
|
|
220
|
+
get loading(): Signal<boolean>;
|
|
198
221
|
/** 符号信号 */
|
|
199
222
|
get symbols(): Signal<ReadonlyArray<SymbolSpec>>;
|
|
200
223
|
/** 比较商品颜色信号 */
|
|
@@ -224,6 +247,11 @@ export declare class Chart {
|
|
|
224
247
|
setSymbols(specs: ReadonlyArray<SymbolSpec>): void;
|
|
225
248
|
addComparisonSymbol(spec: SymbolSpec): void;
|
|
226
249
|
removeComparisonSymbol(symbol: string): void;
|
|
250
|
+
setComparisonData(symbol: string, data: KLineData[]): void;
|
|
251
|
+
setCurrentSymbol(symbol: string): void;
|
|
252
|
+
setCurrentPeriod(period: string): void;
|
|
253
|
+
switchToTimeShareForDate(dateYYYYMMDD: number): void;
|
|
254
|
+
applyCustomData(source: CustomDataSource): void;
|
|
227
255
|
/**
|
|
228
256
|
* 设置主题(高层 API)
|
|
229
257
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/engine/chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/engine/chart.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/chart.js
CHANGED
|
@@ -9,6 +9,8 @@ import { ChartZoomController } from './utils/chartZoomController';
|
|
|
9
9
|
import { ChartViewportManager } from './viewport/chartViewportManager';
|
|
10
10
|
import { ChartIndicatorManager } from './indicators/chartIndicatorManager';
|
|
11
11
|
import { ChartRenderer } from './render/chartRenderer';
|
|
12
|
+
import { KLineMode } from './modes/kLineMode';
|
|
13
|
+
import { TimeShareMode } from './modes/timeShareMode';
|
|
12
14
|
import { createPluginHost, RendererPluginManager, wrapPaneInfo, } from '../plugin';
|
|
13
15
|
// 重新导出以保持向后兼容
|
|
14
16
|
export { getPhysicalKLineConfig };
|
|
@@ -34,6 +36,16 @@ export class Chart {
|
|
|
34
36
|
indicatorManager;
|
|
35
37
|
/** 渲染器 */
|
|
36
38
|
renderer;
|
|
39
|
+
/** 当前活跃的模式处理器 */
|
|
40
|
+
_activeMode;
|
|
41
|
+
_kLineMode = new KLineMode();
|
|
42
|
+
_timeShareMode = new TimeShareMode();
|
|
43
|
+
/** 模式切换时保存的渲染状态(退出分时时恢复) */
|
|
44
|
+
_modeSavedKWidth = 0;
|
|
45
|
+
_modeSavedKGap = 0;
|
|
46
|
+
_modeSavedZoomLevel = 0;
|
|
47
|
+
/** 分时模式激活前的 pane Y 轴刻度类型(退出分时时恢复) */
|
|
48
|
+
_savedScaleTypes;
|
|
37
49
|
/**
|
|
38
50
|
* 启用主图指标
|
|
39
51
|
* @param indicatorId 指标ID
|
|
@@ -80,6 +92,7 @@ export class Chart {
|
|
|
80
92
|
const { kWidth: _kWidth, kGap: _kGap, ...restOpt } = opt;
|
|
81
93
|
// Chart 不持有业务 SSOT,kWidth/kGap/zoomLevel 由外部通过 applyRenderState() 传入
|
|
82
94
|
this.opt = { ...restOpt, kWidth: _kWidth ?? 0, kGap: _kGap ?? 0 };
|
|
95
|
+
this._activeMode = this._kLineMode;
|
|
83
96
|
this.interaction = new InteractionController(this);
|
|
84
97
|
this.interaction.setOnInteractionChange((snapshot) => {
|
|
85
98
|
this._interactionSignal.set(snapshot);
|
|
@@ -106,6 +119,7 @@ export class Chart {
|
|
|
106
119
|
getDom: () => this.dom,
|
|
107
120
|
getOption: () => ({
|
|
108
121
|
rightAxisWidth: this.opt.rightAxisWidth,
|
|
122
|
+
leftAxisWidth: this.opt.leftAxisWidth,
|
|
109
123
|
yPaddingPx: this.opt.yPaddingPx,
|
|
110
124
|
priceLabelWidth: this.opt.priceLabelWidth,
|
|
111
125
|
paneGap: this.opt.paneGap,
|
|
@@ -137,6 +151,21 @@ export class Chart {
|
|
|
137
151
|
getIndicatorScheduler: () => this.indicatorManager.indicatorSchedulerAccessor,
|
|
138
152
|
setPendingIndicatorDataUpdate: (v) => { this.dataManager.pendingIndicatorDataUpdate = v; },
|
|
139
153
|
isPointerDown: () => this.interaction.isPointerDown(),
|
|
154
|
+
onTimeShareDataReady: (dataLength) => {
|
|
155
|
+
const vp = this.viewportManager.computeViewport();
|
|
156
|
+
if (!vp || vp.plotWidth <= 0)
|
|
157
|
+
return;
|
|
158
|
+
const result = this._activeMode.computeKWidth(dataLength, vp.plotWidth, vp.dpr);
|
|
159
|
+
if (result) {
|
|
160
|
+
this.applyRenderState(result.kWidth, result.kGap);
|
|
161
|
+
const container = this.dom.container;
|
|
162
|
+
if (container) {
|
|
163
|
+
const leftBuffer = this.dataManager.getLeftLoadBufferWidth();
|
|
164
|
+
this.viewportManager.setScrollLeft(leftBuffer);
|
|
165
|
+
this.viewportManager.applyPendingScrollLeft(container);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
140
169
|
});
|
|
141
170
|
this.zoomController = new ChartZoomController({
|
|
142
171
|
getLogicalScrollLeft: () => this.viewportManager.getLogicalScrollLeft(),
|
|
@@ -196,6 +225,7 @@ export class Chart {
|
|
|
196
225
|
getViewportManager: () => this.viewportManager,
|
|
197
226
|
getDataManager: () => this.dataManager,
|
|
198
227
|
getIndicatorManager: () => this.indicatorManager,
|
|
228
|
+
getActiveMode: () => this._activeMode,
|
|
199
229
|
});
|
|
200
230
|
this.renderer.registerDrawingPlugins();
|
|
201
231
|
this.renderer.initCoreRenderers();
|
|
@@ -204,13 +234,56 @@ export class Chart {
|
|
|
204
234
|
getViewport() {
|
|
205
235
|
return this.viewportManager.getViewport();
|
|
206
236
|
}
|
|
237
|
+
/** 获取当前活跃的模式处理器 */
|
|
238
|
+
get activeMode() {
|
|
239
|
+
return this._activeMode;
|
|
240
|
+
}
|
|
241
|
+
/** 切换模式处理器 */
|
|
242
|
+
setActiveMode(mode) {
|
|
243
|
+
if (this._activeMode === mode)
|
|
244
|
+
return;
|
|
245
|
+
const prev = this._activeMode;
|
|
246
|
+
if (mode === this._timeShareMode) {
|
|
247
|
+
this._modeSavedKWidth = this.opt.kWidth;
|
|
248
|
+
this._modeSavedKGap = this.opt.kGap;
|
|
249
|
+
this._modeSavedZoomLevel = this.zoomController.currentZoomLevel;
|
|
250
|
+
this._savedScaleTypes = new Map();
|
|
251
|
+
for (const r of this.paneRenderers) {
|
|
252
|
+
this._savedScaleTypes.set(r.getPane().id, r.getPane().yAxis.getScaleType());
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else if (prev === this._timeShareMode) {
|
|
256
|
+
for (const renderer of this.paneRenderers) {
|
|
257
|
+
const p = renderer.getPane();
|
|
258
|
+
const saved = this._savedScaleTypes?.get(p.id) ?? 'linear';
|
|
259
|
+
p.yAxis.setScaleType(saved);
|
|
260
|
+
p.yAxis.setBasePrice(null);
|
|
261
|
+
}
|
|
262
|
+
this._savedScaleTypes = undefined;
|
|
263
|
+
}
|
|
264
|
+
if (this._modeSavedKWidth > 0 && mode !== this._timeShareMode) {
|
|
265
|
+
this.applyRenderState(this._modeSavedKWidth, this._modeSavedKGap, this._modeSavedZoomLevel);
|
|
266
|
+
this._modeSavedKWidth = 0;
|
|
267
|
+
}
|
|
268
|
+
prev.onDeactivate({ enableMainIndicator: (id, p) => this.enableMainIndicator(id, p), disableMainIndicator: (id) => this.disableMainIndicator(id), setRendererEnabled: (n, e) => this.setRendererEnabled(n, e), dataManager: this.dataManager }, mode);
|
|
269
|
+
this._activeMode = mode;
|
|
270
|
+
this._activeMode.onActivate({ enableMainIndicator: (id, p) => this.enableMainIndicator(id, p), disableMainIndicator: (id) => this.disableMainIndicator(id), setRendererEnabled: (n, e) => this.setRendererEnabled(n, e), dataManager: this.dataManager, currentPeriod: this.dataManager.currentPeriod }, prev);
|
|
271
|
+
}
|
|
207
272
|
getCurrentDpr() {
|
|
208
273
|
return this.viewportManager.getEffectiveDpr();
|
|
209
274
|
}
|
|
275
|
+
/** 获取当前周期 */
|
|
276
|
+
get currentPeriod() {
|
|
277
|
+
return this.dataManager.currentPeriod;
|
|
278
|
+
}
|
|
210
279
|
/** 获取缓存的 scrollLeft(避免读取 DOM 触发强制回流) */
|
|
211
280
|
getCachedScrollLeft() {
|
|
212
281
|
return this.viewportManager.getCachedScrollLeft();
|
|
213
282
|
}
|
|
283
|
+
/** 同步程序性 scrollLeft 写入后的缓存,避免等待异步 scroll 事件 */
|
|
284
|
+
syncScrollLeft(scrollLeft) {
|
|
285
|
+
this.viewportManager.setCachedScrollLeft(scrollLeft);
|
|
286
|
+
}
|
|
214
287
|
/** 获取逻辑 scrollLeft(减去左侧加载缓冲宽度,可为负值) */
|
|
215
288
|
getLogicalScrollLeft() {
|
|
216
289
|
return this.viewportManager.getLogicalScrollLeft();
|
|
@@ -251,11 +324,10 @@ export class Chart {
|
|
|
251
324
|
updateSettings(settings) {
|
|
252
325
|
this.renderer.updateSettings(settings);
|
|
253
326
|
this.interaction.updateSettings(settings);
|
|
254
|
-
//
|
|
255
|
-
if ('
|
|
256
|
-
const axisType = settings.
|
|
257
|
-
|
|
258
|
-
if (axisType !== currentType) {
|
|
327
|
+
// 同步右轴刻度类型设置到所有 pane(百分比仅用于主图)
|
|
328
|
+
if ('rightAxisType' in settings) {
|
|
329
|
+
const axisType = settings.rightAxisType;
|
|
330
|
+
if (axisType !== 'none') {
|
|
259
331
|
for (const renderer of this.paneRenderers) {
|
|
260
332
|
const pane = renderer.getPane();
|
|
261
333
|
const scaleType = axisType === 'percent' && pane.role !== 'price' ? 'linear' : axisType;
|
|
@@ -519,6 +591,10 @@ export class Chart {
|
|
|
519
591
|
getData() {
|
|
520
592
|
return this.dataManager.getData();
|
|
521
593
|
}
|
|
594
|
+
/** 获取渲染数据源(分时图下为 TimeShareData,K线图为 KLineData) */
|
|
595
|
+
getRenderData() {
|
|
596
|
+
return this.dataManager.getRenderData();
|
|
597
|
+
}
|
|
522
598
|
/** 获取指标调度器(供外部控制器更新指标配置) */
|
|
523
599
|
getIndicatorScheduler() {
|
|
524
600
|
return this.indicatorManager.indicatorSchedulerAccessor;
|
|
@@ -547,6 +623,29 @@ export class Chart {
|
|
|
547
623
|
}
|
|
548
624
|
/** 容器尺寸变化时调用 */
|
|
549
625
|
resize() {
|
|
626
|
+
if (this._activeMode.debugName === 'TimeShare') {
|
|
627
|
+
const tsData = this.dataManager.getTimeShareData();
|
|
628
|
+
const vp = this.viewportManager.computeViewport();
|
|
629
|
+
if (!vp || vp.plotWidth <= 0)
|
|
630
|
+
return;
|
|
631
|
+
if (tsData.length > 0) {
|
|
632
|
+
const result = this._activeMode.computeKWidth(tsData.length, vp.plotWidth, vp.dpr);
|
|
633
|
+
if (result) {
|
|
634
|
+
this.applyRenderState(result.kWidth, result.kGap);
|
|
635
|
+
const container = this.dom.container;
|
|
636
|
+
if (container) {
|
|
637
|
+
const leftBuffer = this.dataManager.getLeftLoadBufferWidth();
|
|
638
|
+
this.viewportManager.setScrollLeft(leftBuffer);
|
|
639
|
+
this.viewportManager.applyPendingScrollLeft(container);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
this.renderer.clearCachedFrame();
|
|
644
|
+
this.layoutManager.layoutPanes();
|
|
645
|
+
this.viewportManager.updateViewportSignal();
|
|
646
|
+
this.scheduleDraw();
|
|
647
|
+
return;
|
|
648
|
+
}
|
|
550
649
|
const vp = this.viewportManager.computeViewport();
|
|
551
650
|
// 防御性检查:容器尺寸无效时跳过布局
|
|
552
651
|
if (!vp || vp.viewWidth < 10 || vp.viewHeight < 10) {
|
|
@@ -607,6 +706,10 @@ export class Chart {
|
|
|
607
706
|
get data() {
|
|
608
707
|
return this.dataManager.data;
|
|
609
708
|
}
|
|
709
|
+
/** 加载信号 */
|
|
710
|
+
get loading() {
|
|
711
|
+
return this.dataManager.loading;
|
|
712
|
+
}
|
|
610
713
|
/** 符号信号 */
|
|
611
714
|
get symbols() {
|
|
612
715
|
return this.dataManager.symbols;
|
|
@@ -667,6 +770,10 @@ export class Chart {
|
|
|
667
770
|
this.dataManager.checkVisibleRangeGap();
|
|
668
771
|
}
|
|
669
772
|
setSymbols(specs) {
|
|
773
|
+
const primaryPeriod = specs[0]?.period;
|
|
774
|
+
if (primaryPeriod) {
|
|
775
|
+
this.setActiveMode(primaryPeriod === 'timeshare' ? this._timeShareMode : this._kLineMode);
|
|
776
|
+
}
|
|
670
777
|
this.dataManager.setSymbols(specs);
|
|
671
778
|
}
|
|
672
779
|
addComparisonSymbol(spec) {
|
|
@@ -675,6 +782,24 @@ export class Chart {
|
|
|
675
782
|
removeComparisonSymbol(symbol) {
|
|
676
783
|
this.dataManager.removeComparisonSymbol(symbol);
|
|
677
784
|
}
|
|
785
|
+
setComparisonData(symbol, data) {
|
|
786
|
+
this.dataManager.setComparisonData(symbol, data);
|
|
787
|
+
}
|
|
788
|
+
setCurrentSymbol(symbol) {
|
|
789
|
+
this.dataManager.setCurrentSymbol(symbol);
|
|
790
|
+
}
|
|
791
|
+
setCurrentPeriod(period) {
|
|
792
|
+
this.setActiveMode(period === 'timeshare' ? this._timeShareMode : this._kLineMode);
|
|
793
|
+
this.dataManager.setCurrentPeriod(period);
|
|
794
|
+
}
|
|
795
|
+
switchToTimeShareForDate(dateYYYYMMDD) {
|
|
796
|
+
this.dataManager.setTimeShareQueryDate(dateYYYYMMDD);
|
|
797
|
+
this.setActiveMode(this._timeShareMode);
|
|
798
|
+
this.dataManager.setCurrentPeriod('timeshare');
|
|
799
|
+
}
|
|
800
|
+
applyCustomData(source) {
|
|
801
|
+
this.dataManager.applyCustomData(source);
|
|
802
|
+
}
|
|
678
803
|
// ---------- Theme ----------
|
|
679
804
|
/**
|
|
680
805
|
* 设置主题(高层 API)
|
|
@@ -689,18 +814,24 @@ export class Chart {
|
|
|
689
814
|
* 计算并应用新的 render state,更新 viewport signal
|
|
690
815
|
*/
|
|
691
816
|
zoomToLevel(level, anchorX) {
|
|
817
|
+
if (!this._activeMode.allowZoom)
|
|
818
|
+
return;
|
|
692
819
|
this.zoomController.zoomToLevel(level, anchorX);
|
|
693
820
|
}
|
|
694
821
|
/**
|
|
695
822
|
* 放大(高层 API)
|
|
696
823
|
*/
|
|
697
824
|
zoomIn(anchorX) {
|
|
825
|
+
if (!this._activeMode.allowZoom)
|
|
826
|
+
return;
|
|
698
827
|
this.zoomController.zoomIn(anchorX);
|
|
699
828
|
}
|
|
700
829
|
/**
|
|
701
830
|
* 缩小(高层 API)
|
|
702
831
|
*/
|
|
703
832
|
zoomOut(anchorX) {
|
|
833
|
+
if (!this._activeMode.allowZoom)
|
|
834
|
+
return;
|
|
704
835
|
this.zoomController.zoomOut(anchorX);
|
|
705
836
|
}
|
|
706
837
|
// ---------- Interaction (Zero-config unified entry) ----------
|
|
@@ -776,6 +907,8 @@ export class Chart {
|
|
|
776
907
|
* 使用 computeZoom 计算精确的 scrollLeft,更新 viewport signal
|
|
777
908
|
*/
|
|
778
909
|
handleWheelEvent(e) {
|
|
910
|
+
if (!this._activeMode.allowZoom)
|
|
911
|
+
return;
|
|
779
912
|
const rect = this.dom.container.getBoundingClientRect();
|
|
780
913
|
this.zoomController.handleWheel(e.deltaY, e.clientX - rect.left);
|
|
781
914
|
}
|
|
@@ -794,6 +927,8 @@ export class Chart {
|
|
|
794
927
|
* @param centerClientX 捏合中心在视口中的 X 坐标
|
|
795
928
|
*/
|
|
796
929
|
handlePinchZoom(delta, centerClientX) {
|
|
930
|
+
if (!this._activeMode.allowZoom)
|
|
931
|
+
return;
|
|
797
932
|
this.zoomController.handlePinch(delta, centerClientX);
|
|
798
933
|
}
|
|
799
934
|
/**
|