velo-plot 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/EventEmitter-DAbs2K1C.js +60 -0
- package/dist/EventEmitter-DAbs2K1C.js.map +1 -0
- package/dist/core/Chart.d.ts +15 -0
- package/dist/core/ChartControls.d.ts +41 -0
- package/dist/core/ChartInitQueue.d.ts +50 -0
- package/dist/core/ChartLegend.d.ts +74 -0
- package/dist/core/ChartStatistics.d.ts +18 -0
- package/dist/core/EventEmitter.d.ts +30 -0
- package/dist/core/InteractionManager.d.ts +96 -0
- package/dist/core/OverlayRenderer.d.ts +89 -0
- package/dist/core/Series.d.ts +4 -0
- package/dist/core/animation/AnimationEngine.d.ts +156 -0
- package/dist/core/animation/index.d.ts +6 -0
- package/dist/core/annotations/AnnotationManager.d.ts +61 -0
- package/dist/core/annotations/index.d.ts +5 -0
- package/dist/core/annotations/types.d.ts +159 -0
- package/dist/core/chart/ChartAnimatedNavigation.d.ts +53 -0
- package/dist/core/chart/ChartAxisManager.d.ts +61 -0
- package/dist/core/chart/ChartCore.d.ts +336 -0
- package/dist/core/chart/ChartExporter.d.ts +18 -0
- package/dist/core/chart/ChartNavigation.d.ts +33 -0
- package/dist/core/chart/ChartPluginBridge.d.ts +34 -0
- package/dist/core/chart/ChartRenderLoop.d.ts +100 -0
- package/dist/core/chart/ChartRenderer.d.ts +52 -0
- package/dist/core/chart/ChartScaling.d.ts +31 -0
- package/dist/core/chart/ChartSeries.d.ts +4 -0
- package/dist/core/chart/ChartSetup.d.ts +67 -0
- package/dist/core/chart/ChartStateManager.d.ts +54 -0
- package/dist/core/chart/ChartUI.d.ts +40 -0
- package/dist/core/chart/exporter/SVGExporter.d.ts +6 -0
- package/dist/core/chart/exporter/index.d.ts +5 -0
- package/dist/core/chart/index.d.ts +14 -0
- package/dist/core/chart/series/SeriesActions.d.ts +7 -0
- package/dist/core/chart/series/SeriesBuffer.d.ts +4 -0
- package/dist/core/chart/series/index.d.ts +6 -0
- package/dist/core/chart/series/types.d.ts +22 -0
- package/dist/core/chart/types.d.ts +188 -0
- package/dist/core/clipboard/index.d.ts +137 -0
- package/dist/core/debug/index.d.ts +143 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/keybindings/index.d.ts +157 -0
- package/dist/core/layout/index.d.ts +12 -0
- package/dist/core/layout/types.d.ts +165 -0
- package/dist/core/loading/index.d.ts +104 -0
- package/dist/core/locale/index.d.ts +91 -0
- package/dist/core/responsive/ResponsiveManager.d.ts +133 -0
- package/dist/core/responsive/index.d.ts +4 -0
- package/dist/core/selection/SelectionManager.d.ts +165 -0
- package/dist/core/selection/index.d.ts +4 -0
- package/dist/core/series/Series.d.ts +73 -0
- package/dist/core/series/SeriesBounds.d.ts +3 -0
- package/dist/core/series/SeriesDataUtils.d.ts +7 -0
- package/dist/core/series/index.d.ts +6 -0
- package/dist/core/sync/index.d.ts +147 -0
- package/dist/core/theme-editor/index.d.ts +122 -0
- package/dist/examples/PluginDemonstration.d.ts +20 -0
- package/dist/examples.d.ts +25 -0
- package/dist/gpu/adapter/gpuRenderer.d.ts +135 -0
- package/dist/gpu/adapter/index.d.ts +7 -0
- package/dist/gpu/adapter/seriesAdapter.d.ts +88 -0
- package/dist/gpu/backends/webgl/WebGLBackend.d.ts +42 -0
- package/dist/gpu/backends/webgl/index.d.ts +5 -0
- package/dist/gpu/backends/webgl/programFactory.d.ts +30 -0
- package/dist/gpu/backends/webgl/shaders.d.ts +14 -0
- package/dist/gpu/backends/webgpu/MassiveDataRenderer.d.ts +111 -0
- package/dist/gpu/backends/webgpu/WebGPUBackend.d.ts +58 -0
- package/dist/gpu/backends/webgpu/pipelines/bandPipeline.d.ts +24 -0
- package/dist/gpu/backends/webgpu/pipelines/heatmapPipeline.d.ts +28 -0
- package/dist/gpu/backends/webgpu/pipelines/index.d.ts +10 -0
- package/dist/gpu/backends/webgpu/pipelines/instancedLinePipeline.d.ts +23 -0
- package/dist/gpu/backends/webgpu/pipelines/instancedPointPipeline.d.ts +25 -0
- package/dist/gpu/backends/webgpu/pipelines/linePipeline.d.ts +23 -0
- package/dist/gpu/backends/webgpu/pipelines/pointPipeline.d.ts +28 -0
- package/dist/gpu/backends/webgpu/pipelines/trianglePipeline.d.ts +5 -0
- package/dist/gpu/backends/webgpu/pipelines/triangleShader.d.ts +1 -0
- package/dist/gpu/backends/webgpu/shaders/heatmap.wgsl.d.ts +8 -0
- package/dist/gpu/backends/webgpu/shaders/index.d.ts +8 -0
- package/dist/gpu/backends/webgpu/shaders/instanced.wgsl.d.ts +16 -0
- package/dist/gpu/backends/webgpu/shaders/line.wgsl.d.ts +8 -0
- package/dist/gpu/backends/webgpu/shaders/point.wgsl.d.ts +9 -0
- package/dist/gpu/benchmark/benchmark.d.ts +74 -0
- package/dist/gpu/benchmark/index.d.ts +5 -0
- package/dist/gpu/compute/gpuCompute.d.ts +72 -0
- package/dist/gpu/compute/index.d.ts +6 -0
- package/dist/gpu/compute/shaders.d.ts +9 -0
- package/dist/gpu/drawList.d.ts +77 -0
- package/dist/gpu/examples/gallery.d.ts +20 -0
- package/dist/gpu/examples/index.d.ts +3 -0
- package/dist/gpu/examples/webgpu-line-demo.d.ts +8 -0
- package/dist/gpu/examples/webgpu-triangle.d.ts +1 -0
- package/dist/gpu/frame.d.ts +25 -0
- package/dist/gpu/index.d.ts +24 -0
- package/dist/gpu/resources/bufferStore.d.ts +40 -0
- package/dist/gpu/resources/index.d.ts +9 -0
- package/dist/gpu/resources/pipelineCache.d.ts +33 -0
- package/dist/gpu/resources/textureStore.d.ts +41 -0
- package/dist/gpu/types.d.ts +47 -0
- package/dist/index-BMiZoKmm.js +536 -0
- package/dist/index-BMiZoKmm.js.map +1 -0
- package/dist/index-Ce2JgkH_.js +282 -0
- package/dist/index-Ce2JgkH_.js.map +1 -0
- package/dist/index-D8ifudJH.js +2431 -0
- package/dist/index-D8ifudJH.js.map +1 -0
- package/dist/index-Dag88bW4.js +499 -0
- package/dist/index-Dag88bW4.js.map +1 -0
- package/dist/index-qhscKTDy.js +309 -0
- package/dist/index-qhscKTDy.js.map +1 -0
- package/dist/index-x4stH3jD.js +282 -0
- package/dist/index-x4stH3jD.js.map +1 -0
- package/dist/index.core-CYu3tydL.js +7252 -0
- package/dist/index.core-CYu3tydL.js.map +1 -0
- package/dist/index.core.d.ts +20 -0
- package/dist/index.d.ts +51 -0
- package/dist/overlay/CanvasOverlay.d.ts +102 -0
- package/dist/overlay/index.d.ts +4 -0
- package/dist/plugins/3d/Area3DRenderer.d.ts +122 -0
- package/dist/plugins/3d/Axes3D.d.ts +104 -0
- package/dist/plugins/3d/Bubble3DRenderer.d.ts +198 -0
- package/dist/plugins/3d/Impulse3DRenderer.d.ts +130 -0
- package/dist/plugins/3d/Line3DRenderer.d.ts +118 -0
- package/dist/plugins/3d/PointCloud3DRenderer.d.ts +84 -0
- package/dist/plugins/3d/Raycaster3D.d.ts +137 -0
- package/dist/plugins/3d/Ribbon3DRenderer.d.ts +83 -0
- package/dist/plugins/3d/SurfaceBar3DRenderer.d.ts +92 -0
- package/dist/plugins/3d/SurfaceMesh3DRenderer.d.ts +130 -0
- package/dist/plugins/3d/Tooltip3D.d.ts +71 -0
- package/dist/plugins/3d/VectorField3DRenderer.d.ts +86 -0
- package/dist/plugins/3d/Voxel3DRenderer.d.ts +89 -0
- package/dist/plugins/3d/Waterfall3DRenderer.d.ts +94 -0
- package/dist/plugins/3d/camera/OrbitCamera.d.ts +99 -0
- package/dist/plugins/3d/camera/index.d.ts +1 -0
- package/dist/plugins/3d/colorThemes.d.ts +39 -0
- package/dist/plugins/3d/controls/OrbitController.d.ts +69 -0
- package/dist/plugins/3d/controls/index.d.ts +1 -0
- package/dist/plugins/3d/index.d.ts +50 -0
- package/dist/plugins/3d/math/Mat4.d.ts +33 -0
- package/dist/plugins/3d/math/Vec3.d.ts +37 -0
- package/dist/plugins/3d/math/index.d.ts +4 -0
- package/dist/plugins/3d/mesh/InstancedMesh.d.ts +42 -0
- package/dist/plugins/3d/mesh/geometry.d.ts +34 -0
- package/dist/plugins/3d/mesh/index.d.ts +2 -0
- package/dist/plugins/3d/series/Area3D.d.ts +17 -0
- package/dist/plugins/3d/series/Column3D.d.ts +20 -0
- package/dist/plugins/3d/series/Heatmap3D.d.ts +17 -0
- package/dist/plugins/3d/series/Impulse3D.d.ts +16 -0
- package/dist/plugins/3d/series/PointLine3D.d.ts +20 -0
- package/dist/plugins/3d/series/Ribbon3D.d.ts +17 -0
- package/dist/plugins/3d/series/Scatter3D.d.ts +21 -0
- package/dist/plugins/3d/series/SurfaceMesh3D.d.ts +35 -0
- package/dist/plugins/3d/series/Waterfall3D.d.ts +38 -0
- package/dist/plugins/3d/series/index.d.ts +13 -0
- package/dist/plugins/3d/series/types.d.ts +143 -0
- package/dist/plugins/3d/shader/index.d.ts +2 -0
- package/dist/plugins/3d/shader/programs.d.ts +24 -0
- package/dist/plugins/3d/shader/sources.d.ts +27 -0
- package/dist/plugins/3d/types.d.ts +71 -0
- package/dist/plugins/3d.d.ts +3 -0
- package/dist/plugins/3d.js +5498 -0
- package/dist/plugins/3d.js.map +1 -0
- package/dist/plugins/PluginContext.d.ts +53 -0
- package/dist/plugins/PluginManager.d.ts +129 -0
- package/dist/plugins/PluginRegistry.d.ts +38 -0
- package/dist/plugins/analysis/SeriesFit.d.ts +3 -0
- package/dist/plugins/analysis/contours.d.ts +20 -0
- package/dist/plugins/analysis/fft.d.ts +138 -0
- package/dist/plugins/analysis/filters.d.ts +76 -0
- package/dist/plugins/analysis/fitting.d.ts +24 -0
- package/dist/plugins/analysis/index.d.ts +29 -0
- package/dist/plugins/analysis/indicators.d.ts +148 -0
- package/dist/plugins/analysis/math.d.ts +32 -0
- package/dist/plugins/analysis/statistics.d.ts +78 -0
- package/dist/plugins/analysis/utils.d.ts +150 -0
- package/dist/plugins/analysis.d.ts +3 -0
- package/dist/plugins/analysis.js +1202 -0
- package/dist/plugins/analysis.js.map +1 -0
- package/dist/plugins/annotations/index.d.ts +16 -0
- package/dist/plugins/annotations.d.ts +3 -0
- package/dist/plugins/annotations.js +438 -0
- package/dist/plugins/annotations.js.map +1 -0
- package/dist/plugins/anomaly-detection/algorithms.d.ts +38 -0
- package/dist/plugins/anomaly-detection/index.d.ts +16 -0
- package/dist/plugins/anomaly-detection/types.d.ts +57 -0
- package/dist/plugins/broken-axis/BrokenAxisScale.d.ts +24 -0
- package/dist/plugins/broken-axis/exports.d.ts +6 -0
- package/dist/plugins/broken-axis/index.d.ts +6 -0
- package/dist/plugins/broken-axis/types.d.ts +50 -0
- package/dist/plugins/builtins/crosshair/CrosshairPlugin.d.ts +40 -0
- package/dist/plugins/builtins/crosshair/index.d.ts +1 -0
- package/dist/plugins/builtins/data-logger/DataLoggerPlugin.d.ts +11 -0
- package/dist/plugins/builtins/data-logger/index.d.ts +1 -0
- package/dist/plugins/builtins/direction-indicator/DirectionIndicatorPlugin.d.ts +17 -0
- package/dist/plugins/builtins/direction-indicator/index.d.ts +2 -0
- package/dist/plugins/builtins/grid-highlight/GridHighlightPlugin.d.ts +17 -0
- package/dist/plugins/builtins/grid-highlight/index.d.ts +1 -0
- package/dist/plugins/builtins/index.d.ts +25 -0
- package/dist/plugins/builtins/stats/StatsPlugin.d.ts +11 -0
- package/dist/plugins/builtins/stats/index.d.ts +1 -0
- package/dist/plugins/builtins/watermark/WatermarkPlugin.d.ts +15 -0
- package/dist/plugins/builtins/watermark/index.d.ts +1 -0
- package/dist/plugins/caching/exports.d.ts +6 -0
- package/dist/plugins/caching/index.d.ts +6 -0
- package/dist/plugins/caching/types.d.ts +120 -0
- package/dist/plugins/clipboard/index.d.ts +20 -0
- package/dist/plugins/clipboard.d.ts +3 -0
- package/dist/plugins/clipboard.js +270 -0
- package/dist/plugins/clipboard.js.map +1 -0
- package/dist/plugins/context-menu/index.d.ts +12 -0
- package/dist/plugins/context-menu/renderer.d.ts +43 -0
- package/dist/plugins/context-menu/types.d.ts +202 -0
- package/dist/plugins/context-menu.d.ts +3 -0
- package/dist/plugins/context-menu.js +621 -0
- package/dist/plugins/context-menu.js.map +1 -0
- package/dist/plugins/data-export/formatters.d.ts +34 -0
- package/dist/plugins/data-export/index.d.ts +15 -0
- package/dist/plugins/data-export/types.d.ts +166 -0
- package/dist/plugins/data-export.d.ts +3 -0
- package/dist/plugins/data-export.js +463 -0
- package/dist/plugins/data-export.js.map +1 -0
- package/dist/plugins/data-transform/index.d.ts +6 -0
- package/dist/plugins/data-transform/types.d.ts +34 -0
- package/dist/plugins/debug/index.d.ts +24 -0
- package/dist/plugins/debug.d.ts +3 -0
- package/dist/plugins/debug.js +330 -0
- package/dist/plugins/debug.js.map +1 -0
- package/dist/plugins/drag-edit/exports.d.ts +6 -0
- package/dist/plugins/drag-edit/index.d.ts +6 -0
- package/dist/plugins/drag-edit/types.d.ts +118 -0
- package/dist/plugins/forecasting/algorithms.d.ts +6 -0
- package/dist/plugins/forecasting/exports.d.ts +3 -0
- package/dist/plugins/forecasting/index.d.ts +11 -0
- package/dist/plugins/forecasting/types.d.ts +88 -0
- package/dist/plugins/gpu/index.d.ts +24 -0
- package/dist/plugins/gpu.d.ts +3 -0
- package/dist/plugins/gpu.js +2430 -0
- package/dist/plugins/gpu.js.map +1 -0
- package/dist/plugins/i18n/index.d.ts +22 -0
- package/dist/plugins/i18n.d.ts +3 -0
- package/dist/plugins/i18n.js +37 -0
- package/dist/plugins/i18n.js.map +1 -0
- package/dist/plugins/index.d.ts +110 -0
- package/dist/plugins/keyboard/index.d.ts +15 -0
- package/dist/plugins/keyboard.d.ts +3 -0
- package/dist/plugins/keyboard.js +8 -0
- package/dist/plugins/keyboard.js.map +1 -0
- package/dist/plugins/latex/exports.d.ts +6 -0
- package/dist/plugins/latex/index.d.ts +8 -0
- package/dist/plugins/latex/parser.d.ts +6 -0
- package/dist/plugins/latex/renderer.d.ts +6 -0
- package/dist/plugins/latex/symbols.d.ts +28 -0
- package/dist/plugins/latex/types.d.ts +88 -0
- package/dist/plugins/lazy-load/exports.d.ts +6 -0
- package/dist/plugins/lazy-load/index.d.ts +6 -0
- package/dist/plugins/lazy-load/types.d.ts +121 -0
- package/dist/plugins/loading/index.d.ts +15 -0
- package/dist/plugins/loading.d.ts +3 -0
- package/dist/plugins/loading.js +7 -0
- package/dist/plugins/loading.js.map +1 -0
- package/dist/plugins/ml-integration/exports.d.ts +11 -0
- package/dist/plugins/ml-integration/index.d.ts +6 -0
- package/dist/plugins/ml-integration/native-algorithms.d.ts +69 -0
- package/dist/plugins/ml-integration/types.d.ts +74 -0
- package/dist/plugins/offscreen/exports.d.ts +6 -0
- package/dist/plugins/offscreen/index.d.ts +6 -0
- package/dist/plugins/offscreen/pool.d.ts +32 -0
- package/dist/plugins/offscreen/types.d.ts +35 -0
- package/dist/plugins/pattern-recognition/index.d.ts +6 -0
- package/dist/plugins/pattern-recognition/patterns.d.ts +3 -0
- package/dist/plugins/pattern-recognition/types.d.ts +245 -0
- package/dist/plugins/radar/index.d.ts +6 -0
- package/dist/plugins/radar/types.d.ts +40 -0
- package/dist/plugins/regression/algorithms.d.ts +6 -0
- package/dist/plugins/regression/index.d.ts +6 -0
- package/dist/plugins/regression/types.d.ts +261 -0
- package/dist/plugins/roi/exports.d.ts +6 -0
- package/dist/plugins/roi/index.d.ts +49 -0
- package/dist/plugins/roi/types.d.ts +60 -0
- package/dist/plugins/snapshot/index.d.ts +11 -0
- package/dist/plugins/snapshot/types.d.ts +38 -0
- package/dist/plugins/streaming/index.d.ts +32 -0
- package/dist/plugins/streaming.d.ts +3 -0
- package/dist/plugins/streaming.js +13 -0
- package/dist/plugins/streaming.js.map +1 -0
- package/dist/plugins/sync/index.d.ts +22 -0
- package/dist/plugins/sync.d.ts +3 -0
- package/dist/plugins/sync.js +261 -0
- package/dist/plugins/sync.js.map +1 -0
- package/dist/plugins/theme-editor/index.d.ts +18 -0
- package/dist/plugins/theme-editor.d.ts +3 -0
- package/dist/plugins/theme-editor.js +7 -0
- package/dist/plugins/theme-editor.js.map +1 -0
- package/dist/plugins/tools/delta-tool/index.d.ts +159 -0
- package/dist/plugins/tools/index.d.ts +21 -0
- package/dist/plugins/tools/peak-tool/index.d.ts +159 -0
- package/dist/plugins/tools/tooltip/TooltipManager.d.ts +213 -0
- package/dist/plugins/tools/tooltip/TooltipPositioner.d.ts +83 -0
- package/dist/plugins/tools/tooltip/TooltipRenderer.d.ts +64 -0
- package/dist/plugins/tools/tooltip/index.d.ts +18 -0
- package/dist/plugins/tools/tooltip/templates/AnnotationTemplate.d.ts +18 -0
- package/dist/plugins/tools/tooltip/templates/CrosshairTemplate.d.ts +39 -0
- package/dist/plugins/tools/tooltip/templates/DefaultTemplate.d.ts +30 -0
- package/dist/plugins/tools/tooltip/templates/HeatmapTemplate.d.ts +34 -0
- package/dist/plugins/tools/tooltip/templates/MinimalTemplate.d.ts +26 -0
- package/dist/plugins/tools/tooltip/templates/RangeTemplate.d.ts +18 -0
- package/dist/plugins/tools/tooltip/templates/ScientificTemplate.d.ts +34 -0
- package/dist/plugins/tools/tooltip/templates/index.d.ts +27 -0
- package/dist/plugins/tools/tooltip/themes.d.ts +48 -0
- package/dist/plugins/tools/tooltip/types.d.ts +396 -0
- package/dist/plugins/tools.d.ts +3 -0
- package/dist/plugins/tools.js +9 -0
- package/dist/plugins/tools.js.map +1 -0
- package/dist/plugins/types.d.ts +451 -0
- package/dist/plugins/video-recorder/exports.d.ts +6 -0
- package/dist/plugins/video-recorder/index.d.ts +6 -0
- package/dist/plugins/video-recorder/types.d.ts +55 -0
- package/dist/plugins/virtualization/exports.d.ts +6 -0
- package/dist/plugins/virtualization/index.d.ts +6 -0
- package/dist/plugins/virtualization/types.d.ts +48 -0
- package/dist/react/SciPlot.d.ts +60 -0
- package/dist/react/index.d.ts +5 -0
- package/dist/react/useSciPlot.d.ts +56 -0
- package/dist/renderer/BarRenderer.d.ts +14 -0
- package/dist/renderer/CandlestickRenderer.d.ts +12 -0
- package/dist/renderer/GaugeRenderer.d.ts +3 -0
- package/dist/renderer/HeatmapRenderer.d.ts +15 -0
- package/dist/renderer/NativeWebGLRenderer.d.ts +16 -0
- package/dist/renderer/PolarRenderer.d.ts +64 -0
- package/dist/renderer/RendererInterface.d.ts +70 -0
- package/dist/renderer/SankeyRenderer.d.ts +3 -0
- package/dist/renderer/WebGPURenderer.d.ts +16 -0
- package/dist/renderer/index.d.ts +13 -0
- package/dist/renderer/native/NativeWebGLRenderer.d.ts +31 -0
- package/dist/renderer/native/bufferStore.d.ts +11 -0
- package/dist/renderer/native/draw.d.ts +47 -0
- package/dist/renderer/native/programFactory.d.ts +3 -0
- package/dist/renderer/native/renderFrame.d.ts +3 -0
- package/dist/renderer/native/shaderSources.d.ts +6 -0
- package/dist/renderer/native/textureStore.d.ts +8 -0
- package/dist/renderer/native/types.d.ts +77 -0
- package/dist/renderer/native/utils.d.ts +31 -0
- package/dist/renderer/radar/RadarRenderer.d.ts +71 -0
- package/dist/renderer/radar/index.d.ts +10 -0
- package/dist/renderer/shaders.d.ts +77 -0
- package/dist/renderer/ternary/TernaryRenderer.d.ts +39 -0
- package/dist/renderer/ternary/index.d.ts +6 -0
- package/dist/renderer/ternary/types.d.ts +56 -0
- package/dist/scales/index.d.ts +54 -0
- package/dist/serialization/index.d.ts +153 -0
- package/dist/streaming/backpressure.d.ts +179 -0
- package/dist/streaming/index.d.ts +7 -0
- package/dist/streaming/mock.d.ts +12 -0
- package/dist/streaming/types.d.ts +57 -0
- package/dist/streaming/utils.d.ts +19 -0
- package/dist/streaming/websocket.d.ts +6 -0
- package/dist/testing/index.d.ts +225 -0
- package/dist/theme/colorSchemes.d.ts +56 -0
- package/dist/theme/index.d.ts +138 -0
- package/dist/types.d.ts +753 -0
- package/dist/utils-Dbro9-qM.js +254 -0
- package/dist/utils-Dbro9-qM.js.map +1 -0
- package/dist/velo-plot.d.ts +1 -0
- package/dist/velo-plot.full.d.ts +1 -0
- package/dist/velo-plot.full.js +5804 -0
- package/dist/velo-plot.full.js.map +1 -0
- package/dist/velo-plot.js +31 -0
- package/dist/velo-plot.js.map +1 -0
- package/dist/workers/downsample.d.ts +34 -0
- package/dist/workers/downsample.worker.d.ts +46 -0
- package/package.json +185 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { ChartOptions, AxisOptions, SeriesOptions, HeatmapOptions, SeriesUpdateData, ZoomOptions, CursorOptions, ChartEventMap, Bounds } from '../../types';
|
|
2
|
+
import { EventEmitter } from '../EventEmitter';
|
|
3
|
+
import { Series } from '../Series';
|
|
4
|
+
import { Scale } from '../../scales';
|
|
5
|
+
import { ChartTheme, ColorScheme } from '../../theme';
|
|
6
|
+
import { Annotation } from '../annotations';
|
|
7
|
+
import { SelectedPoint, SelectionMode, HitTestResult, SelectionConfig } from '../selection';
|
|
8
|
+
import { ResponsiveConfig, ResponsiveState } from '../responsive';
|
|
9
|
+
import { ChartState, SerializeOptions, DeserializeOptions } from '../../serialization';
|
|
10
|
+
import { Chart, ExportOptions } from './types';
|
|
11
|
+
import { ChartAnimationConfig } from '../animation';
|
|
12
|
+
|
|
13
|
+
export declare class ChartImpl implements Chart {
|
|
14
|
+
private container;
|
|
15
|
+
private webglCanvas;
|
|
16
|
+
private overlayCanvas;
|
|
17
|
+
private overlayCtx;
|
|
18
|
+
series: Map<string, Series>;
|
|
19
|
+
events: EventEmitter<ChartEventMap>;
|
|
20
|
+
private viewBounds;
|
|
21
|
+
private xAxisOptions;
|
|
22
|
+
private yAxisOptionsMap;
|
|
23
|
+
private primaryYAxisId;
|
|
24
|
+
private dpr;
|
|
25
|
+
private backgroundColor;
|
|
26
|
+
private plotAreaBackground;
|
|
27
|
+
private renderer;
|
|
28
|
+
private overlay;
|
|
29
|
+
private interaction;
|
|
30
|
+
private xScale;
|
|
31
|
+
private yScales;
|
|
32
|
+
private get yScale();
|
|
33
|
+
theme: ChartTheme;
|
|
34
|
+
baseTheme: ChartTheme;
|
|
35
|
+
private colorScheme;
|
|
36
|
+
private cursorOptions;
|
|
37
|
+
private cursorPosition;
|
|
38
|
+
private showLegend;
|
|
39
|
+
private legend;
|
|
40
|
+
private originalSeriesStyles;
|
|
41
|
+
private hoveredSeriesId;
|
|
42
|
+
private showControls;
|
|
43
|
+
private toolbarOptions?;
|
|
44
|
+
private controls;
|
|
45
|
+
private layout;
|
|
46
|
+
private _isDestroyed;
|
|
47
|
+
private autoScroll;
|
|
48
|
+
private showStatistics;
|
|
49
|
+
private initQueueId;
|
|
50
|
+
private commandQueue;
|
|
51
|
+
private annotationQueue;
|
|
52
|
+
private annotationIdCounter;
|
|
53
|
+
private tooltipConfigQueue;
|
|
54
|
+
private fitLineQueue;
|
|
55
|
+
/** Whether the chart has been destroyed */
|
|
56
|
+
get isDestroyed(): boolean;
|
|
57
|
+
private selectionRect;
|
|
58
|
+
private pluginManager;
|
|
59
|
+
private initialOptions;
|
|
60
|
+
private pluginBridge;
|
|
61
|
+
private axisManager;
|
|
62
|
+
private stateManager;
|
|
63
|
+
private renderLoop;
|
|
64
|
+
setXScale(scale: Scale): void;
|
|
65
|
+
setYScale(yAxisId: string, scale: Scale): void;
|
|
66
|
+
get analysis(): any;
|
|
67
|
+
get tooltip(): any;
|
|
68
|
+
get loading(): any;
|
|
69
|
+
get deltaTool(): any;
|
|
70
|
+
get peakTool(): any;
|
|
71
|
+
get regression(): any;
|
|
72
|
+
get radar(): any;
|
|
73
|
+
get ml(): any;
|
|
74
|
+
get snapshot(): any;
|
|
75
|
+
get dataExport(): any;
|
|
76
|
+
get roi(): any;
|
|
77
|
+
get videoRecorder(): any;
|
|
78
|
+
get offscreen(): any;
|
|
79
|
+
get virtualization(): any;
|
|
80
|
+
get themeEditor(): any;
|
|
81
|
+
get sync(): any;
|
|
82
|
+
get brokenAxis(): any;
|
|
83
|
+
get forecasting(): any;
|
|
84
|
+
get latex(): any;
|
|
85
|
+
private animationEngine;
|
|
86
|
+
private animationConfig;
|
|
87
|
+
get animations(): ChartAnimationConfig;
|
|
88
|
+
private selectionManager;
|
|
89
|
+
private responsiveManager;
|
|
90
|
+
constructor(options: ChartOptions);
|
|
91
|
+
/**
|
|
92
|
+
* Start the chart initialization (called by queue system)
|
|
93
|
+
* This performs the actual render startup that was deferred from constructor
|
|
94
|
+
*/
|
|
95
|
+
startInit(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Mark this chart's initialization as complete in the queue
|
|
98
|
+
*/
|
|
99
|
+
completeInit(): Promise<void>;
|
|
100
|
+
private executeOrQueue;
|
|
101
|
+
/**
|
|
102
|
+
* Set the initialization queue ID (internal use)
|
|
103
|
+
*/
|
|
104
|
+
setInitQueueId(id: string): void;
|
|
105
|
+
private initControls;
|
|
106
|
+
private toggleLegend;
|
|
107
|
+
private initLegend;
|
|
108
|
+
setTheme(theme: string | ChartTheme): void;
|
|
109
|
+
/**
|
|
110
|
+
* Set the color scheme for multi-series charts
|
|
111
|
+
* @param scheme - Color scheme name ('vibrant', 'pastel', 'neon', 'earth', 'ocean') or ColorScheme object
|
|
112
|
+
*/
|
|
113
|
+
setColorScheme(scheme: string | ColorScheme): void;
|
|
114
|
+
/**
|
|
115
|
+
* Get the current color scheme
|
|
116
|
+
*/
|
|
117
|
+
getColorScheme(): ColorScheme;
|
|
118
|
+
getPlotArea(): {
|
|
119
|
+
x: number;
|
|
120
|
+
y: number;
|
|
121
|
+
width: number;
|
|
122
|
+
height: number;
|
|
123
|
+
};
|
|
124
|
+
private getInteractedBounds;
|
|
125
|
+
exportImage(type?: "png" | "jpeg"): string;
|
|
126
|
+
private getSeriesContext;
|
|
127
|
+
addSeries(options: SeriesOptions | HeatmapOptions): void;
|
|
128
|
+
addBar(options: Omit<SeriesOptions, "type">): void;
|
|
129
|
+
addHeatmap(options: HeatmapOptions): void;
|
|
130
|
+
removeSeries(id: string): void;
|
|
131
|
+
updateSeries(id: string, data: SeriesUpdateData): void;
|
|
132
|
+
appendData(id: string, x: number[] | Float32Array, y: number[] | Float32Array): void;
|
|
133
|
+
setAutoScroll(enabled: boolean): void;
|
|
134
|
+
setMaxPoints(id: string, maxPoints: number): void;
|
|
135
|
+
/**
|
|
136
|
+
* Add a line of best fit to a series
|
|
137
|
+
*/
|
|
138
|
+
addFitLine(seriesId: string, type: any, options?: any): string;
|
|
139
|
+
getSeries(id: string): Series | undefined;
|
|
140
|
+
getAllSeries(): Series[];
|
|
141
|
+
private getNavContext;
|
|
142
|
+
private getAnimatedNavContext;
|
|
143
|
+
zoom(options: ZoomOptions & {
|
|
144
|
+
animate?: boolean;
|
|
145
|
+
}): void;
|
|
146
|
+
pan(deltaX: number, deltaY: number, axisId?: string): void;
|
|
147
|
+
resetZoom(): void;
|
|
148
|
+
getViewBounds(): Bounds;
|
|
149
|
+
autoScale(animate?: boolean): void;
|
|
150
|
+
/**
|
|
151
|
+
* Auto-scale only Y-axes (keeps X-axis stable)
|
|
152
|
+
* Used during streaming to prevent X-axis shifting
|
|
153
|
+
*/
|
|
154
|
+
autoScaleYOnly(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Animate view bounds to specific target
|
|
157
|
+
*/
|
|
158
|
+
animateTo(options: {
|
|
159
|
+
xRange?: [number, number];
|
|
160
|
+
yRange?: [number, number];
|
|
161
|
+
duration?: number;
|
|
162
|
+
easing?: string;
|
|
163
|
+
}): void;
|
|
164
|
+
/**
|
|
165
|
+
* Get animation configuration
|
|
166
|
+
*/
|
|
167
|
+
getAnimationConfig(): ChartAnimationConfig;
|
|
168
|
+
/**
|
|
169
|
+
* Set animation configuration
|
|
170
|
+
*/
|
|
171
|
+
setAnimationConfig(config: Partial<ChartAnimationConfig>): void;
|
|
172
|
+
/**
|
|
173
|
+
* Check if animations are currently running
|
|
174
|
+
*/
|
|
175
|
+
isAnimating(): boolean;
|
|
176
|
+
private handleBoxZoom;
|
|
177
|
+
enableCursor(options: CursorOptions): void;
|
|
178
|
+
disableCursor(): void;
|
|
179
|
+
addAnnotation(annotation: any): string;
|
|
180
|
+
removeAnnotation(id: string): boolean;
|
|
181
|
+
updateAnnotation(id: string, updates: Partial<Annotation>): void;
|
|
182
|
+
getAnnotation(id: string): Annotation | undefined;
|
|
183
|
+
getAnnotations(): Annotation[];
|
|
184
|
+
clearAnnotations(): void;
|
|
185
|
+
/**
|
|
186
|
+
* Get a plugin API by name
|
|
187
|
+
*/
|
|
188
|
+
getPlugin<T = any>(name: string): T | null;
|
|
189
|
+
getPluginNames(): string[];
|
|
190
|
+
private getPluginAPI;
|
|
191
|
+
exportCSV(options?: ExportOptions): string;
|
|
192
|
+
exportJSON(options?: ExportOptions): string;
|
|
193
|
+
/**
|
|
194
|
+
* Add a new Y axis dynamically
|
|
195
|
+
*/
|
|
196
|
+
addYAxis(options: AxisOptions): string;
|
|
197
|
+
/**
|
|
198
|
+
* Remove a Y axis by ID
|
|
199
|
+
*/
|
|
200
|
+
removeYAxis(id: string): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Update Y axis configuration
|
|
203
|
+
*/
|
|
204
|
+
updateYAxis(id: string, options: Partial<AxisOptions>): void;
|
|
205
|
+
/**
|
|
206
|
+
* Get current device pixel ratio
|
|
207
|
+
*/
|
|
208
|
+
getDPR(): number;
|
|
209
|
+
/**
|
|
210
|
+
* Set device pixel ratio and re-render
|
|
211
|
+
*/
|
|
212
|
+
setDPR(dpr: number): void;
|
|
213
|
+
/**
|
|
214
|
+
* Update X axis configuration
|
|
215
|
+
*/
|
|
216
|
+
updateXAxis(options: Partial<AxisOptions>): void;
|
|
217
|
+
updateLayout(options: Partial<import('../layout').LayoutOptions>): void;
|
|
218
|
+
/**
|
|
219
|
+
* Get Y axis configuration by ID
|
|
220
|
+
*/
|
|
221
|
+
getYAxis(id: string): AxisOptions | undefined;
|
|
222
|
+
/**
|
|
223
|
+
* Get all Y axes configurations
|
|
224
|
+
*/
|
|
225
|
+
getAllYAxes(): AxisOptions[];
|
|
226
|
+
/**
|
|
227
|
+
* Get the primary Y axis ID
|
|
228
|
+
*/
|
|
229
|
+
getPrimaryYAxisId(): string;
|
|
230
|
+
/**
|
|
231
|
+
* Select data points programmatically
|
|
232
|
+
*/
|
|
233
|
+
selectPoints(points: Array<{
|
|
234
|
+
seriesId: string;
|
|
235
|
+
indices: number[];
|
|
236
|
+
}>, mode?: SelectionMode): void;
|
|
237
|
+
/**
|
|
238
|
+
* Get all currently selected points
|
|
239
|
+
*/
|
|
240
|
+
getSelectedPoints(): SelectedPoint[];
|
|
241
|
+
/**
|
|
242
|
+
* Clear all selections
|
|
243
|
+
*/
|
|
244
|
+
clearSelection(): void;
|
|
245
|
+
/**
|
|
246
|
+
* Hit-test at a pixel coordinate
|
|
247
|
+
*/
|
|
248
|
+
hitTest(pixelX: number, pixelY: number): HitTestResult | null;
|
|
249
|
+
/**
|
|
250
|
+
* Check if a specific point is selected
|
|
251
|
+
*/
|
|
252
|
+
isPointSelected(seriesId: string, index: number): boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Get selection count
|
|
255
|
+
*/
|
|
256
|
+
getSelectionCount(): number;
|
|
257
|
+
/**
|
|
258
|
+
* Configure selection behavior
|
|
259
|
+
*/
|
|
260
|
+
configureSelection(config: Partial<SelectionConfig>): void;
|
|
261
|
+
/**
|
|
262
|
+
* Set pan mode (true = pan, false = selection)
|
|
263
|
+
* @deprecated Use setMode('pan') or setMode('select') instead
|
|
264
|
+
*/
|
|
265
|
+
setPanMode(enabled: boolean): void;
|
|
266
|
+
/**
|
|
267
|
+
* Set the interaction mode
|
|
268
|
+
* @param mode - 'pan' for pan/drag, 'boxZoom' for rectangle zoom, 'select' for point selection, 'delta' for measurements
|
|
269
|
+
*/
|
|
270
|
+
setMode(mode: 'pan' | 'boxZoom' | 'select' | 'delta' | 'peak'): void;
|
|
271
|
+
/**
|
|
272
|
+
* Get the current interaction mode
|
|
273
|
+
*/
|
|
274
|
+
getMode(): 'pan' | 'boxZoom' | 'select' | 'delta' | 'peak';
|
|
275
|
+
/**
|
|
276
|
+
* Get the Delta Tool instance for advanced measurements
|
|
277
|
+
*/
|
|
278
|
+
getDeltaTool(): any | null;
|
|
279
|
+
/**
|
|
280
|
+
* Get the Peak Tool instance for peak integration
|
|
281
|
+
*/
|
|
282
|
+
getPeakTool(): any | null;
|
|
283
|
+
/**
|
|
284
|
+
* Handle responsive state changes
|
|
285
|
+
*/
|
|
286
|
+
private handleResponsiveChange;
|
|
287
|
+
/**
|
|
288
|
+
* Get current responsive state
|
|
289
|
+
*/
|
|
290
|
+
getResponsiveState(): ResponsiveState;
|
|
291
|
+
/**
|
|
292
|
+
* Configure responsive behavior
|
|
293
|
+
*/
|
|
294
|
+
configureResponsive(config: Partial<ResponsiveConfig>): void;
|
|
295
|
+
/**
|
|
296
|
+
* Check if responsive mode is enabled
|
|
297
|
+
*/
|
|
298
|
+
isResponsiveEnabled(): boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Export complete chart state
|
|
301
|
+
*/
|
|
302
|
+
serialize(options?: SerializeOptions): ChartState;
|
|
303
|
+
/**
|
|
304
|
+
* Restore chart from saved state
|
|
305
|
+
*/
|
|
306
|
+
deserialize(state: ChartState, options?: DeserializeOptions): void;
|
|
307
|
+
/**
|
|
308
|
+
* Convert current state to URL-safe hash
|
|
309
|
+
*/
|
|
310
|
+
toUrlHash(compress?: boolean): string;
|
|
311
|
+
/**
|
|
312
|
+
* Load state from URL hash
|
|
313
|
+
*/
|
|
314
|
+
fromUrlHash(hash: string, compressed?: boolean): void;
|
|
315
|
+
use(plugin: any): Promise<void>;
|
|
316
|
+
resize(): void;
|
|
317
|
+
requestRender(): void;
|
|
318
|
+
requestOverlayRender(): void;
|
|
319
|
+
/**
|
|
320
|
+
* Trigger an immediate full render (public API compatibility)
|
|
321
|
+
*/
|
|
322
|
+
render(): void;
|
|
323
|
+
private pixelToDataX;
|
|
324
|
+
private pixelToDataY;
|
|
325
|
+
private startRenderLoop;
|
|
326
|
+
on<K extends keyof ChartEventMap>(e: K, h: (d: ChartEventMap[K]) => void): void;
|
|
327
|
+
off<K extends keyof ChartEventMap>(e: K, h: (d: ChartEventMap[K]) => void): void;
|
|
328
|
+
destroy(): void;
|
|
329
|
+
private toggleSmoothing;
|
|
330
|
+
private recalculateTools;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Create a new chart. Charts are automatically queued for sequential
|
|
334
|
+
* initialization when multiple charts are created on the same page.
|
|
335
|
+
*/
|
|
336
|
+
export declare function createChart(options: ChartOptions): Chart;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Series } from '../Series';
|
|
2
|
+
import { Bounds } from '../../types';
|
|
3
|
+
import { ExportOptions } from './types';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Export series data to CSV format
|
|
7
|
+
*/
|
|
8
|
+
export declare function exportToCSV(series: Series[], options?: ExportOptions): string;
|
|
9
|
+
/**
|
|
10
|
+
* Export series data to JSON format
|
|
11
|
+
*/
|
|
12
|
+
export declare function exportToJSON(series: Series[], viewBounds: Bounds, options?: ExportOptions): string;
|
|
13
|
+
/**
|
|
14
|
+
* Export chart to image
|
|
15
|
+
*/
|
|
16
|
+
export declare function exportToImage(webglCanvas: HTMLCanvasElement, overlayCanvas: HTMLCanvasElement, backgroundColor: [number, number, number, number], legend: {
|
|
17
|
+
draw: (ctx: CanvasRenderingContext2D, dpr: number) => void;
|
|
18
|
+
} | null, showLegend: boolean, dpr: number, type?: "png" | "jpeg"): string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Bounds, ZoomOptions, AxisOptions, ChartEventMap } from '../../types';
|
|
2
|
+
import { Scale } from '../../scales';
|
|
3
|
+
import { EventEmitter } from '../EventEmitter';
|
|
4
|
+
|
|
5
|
+
export interface NavigationContext {
|
|
6
|
+
viewBounds: Bounds;
|
|
7
|
+
yScales: Map<string, Scale>;
|
|
8
|
+
yAxisOptionsMap: Map<string, AxisOptions>;
|
|
9
|
+
xAxisOptions: AxisOptions;
|
|
10
|
+
primaryYAxisId: string;
|
|
11
|
+
getPlotArea: () => {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
};
|
|
17
|
+
events: EventEmitter<ChartEventMap>;
|
|
18
|
+
requestRender: () => void;
|
|
19
|
+
series: Map<string, {
|
|
20
|
+
isVisible(): boolean;
|
|
21
|
+
getBounds(): Bounds | null;
|
|
22
|
+
getYAxisId(): string | undefined;
|
|
23
|
+
getType(): string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Apply zoom to the chart
|
|
28
|
+
*/
|
|
29
|
+
export declare function applyZoom(ctx: NavigationContext, options: ZoomOptions): void;
|
|
30
|
+
/**
|
|
31
|
+
* Apply pan to the chart
|
|
32
|
+
*/
|
|
33
|
+
export declare function applyPan(ctx: NavigationContext, deltaX: number, deltaY: number, axisId?: string): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PluginManagerImpl } from '../../plugins';
|
|
2
|
+
|
|
3
|
+
export declare class ChartPluginBridge {
|
|
4
|
+
private pluginManager;
|
|
5
|
+
constructor(pluginManager: PluginManagerImpl);
|
|
6
|
+
private getAPI;
|
|
7
|
+
get analysis(): any;
|
|
8
|
+
get tooltip(): any;
|
|
9
|
+
get loading(): any;
|
|
10
|
+
get deltaTool(): any;
|
|
11
|
+
get peakTool(): any;
|
|
12
|
+
get regression(): any;
|
|
13
|
+
get radar(): any;
|
|
14
|
+
get ml(): any;
|
|
15
|
+
get snapshot(): any;
|
|
16
|
+
get dataExport(): any;
|
|
17
|
+
get roi(): any;
|
|
18
|
+
get videoRecorder(): any;
|
|
19
|
+
get offscreen(): any;
|
|
20
|
+
get virtualization(): any;
|
|
21
|
+
get themeEditor(): any;
|
|
22
|
+
get sync(): any;
|
|
23
|
+
get brokenAxis(): any;
|
|
24
|
+
get forecasting(): any;
|
|
25
|
+
get latex(): any;
|
|
26
|
+
/**
|
|
27
|
+
* Get a plugin API by name
|
|
28
|
+
*/
|
|
29
|
+
getPlugin<T = any>(name: string): T | null;
|
|
30
|
+
/**
|
|
31
|
+
* Get all plugin names
|
|
32
|
+
*/
|
|
33
|
+
getPluginNames(): string[];
|
|
34
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { NativeWebGLRenderer } from '../../renderer/NativeWebGLRenderer';
|
|
2
|
+
import { OverlayRenderer } from '../OverlayRenderer';
|
|
3
|
+
import { Series } from '../Series';
|
|
4
|
+
import { Scale } from '../../scales';
|
|
5
|
+
import { Bounds, AxisOptions, CursorOptions, PlotArea, ChartEventMap } from '../../types';
|
|
6
|
+
import { EventEmitter } from '../EventEmitter';
|
|
7
|
+
import { SelectionManager } from '../selection';
|
|
8
|
+
import { PluginManagerImpl } from '../../plugins';
|
|
9
|
+
|
|
10
|
+
export interface RenderLoopContext {
|
|
11
|
+
webglCanvas: HTMLCanvasElement;
|
|
12
|
+
overlayCanvas: HTMLCanvasElement;
|
|
13
|
+
overlayCtx: CanvasRenderingContext2D;
|
|
14
|
+
container: HTMLDivElement;
|
|
15
|
+
series: Map<string, Series>;
|
|
16
|
+
viewBounds: Bounds;
|
|
17
|
+
xScale: Scale;
|
|
18
|
+
yScales: Map<string, Scale>;
|
|
19
|
+
yAxisOptionsMap: Map<string, AxisOptions>;
|
|
20
|
+
xAxisOptions: AxisOptions;
|
|
21
|
+
primaryYAxisId: string;
|
|
22
|
+
renderer: NativeWebGLRenderer;
|
|
23
|
+
overlay: OverlayRenderer;
|
|
24
|
+
backgroundColor: [number, number, number, number];
|
|
25
|
+
plotAreaBackground: [number, number, number, number];
|
|
26
|
+
getCursorOptions: () => CursorOptions | null;
|
|
27
|
+
getCursorPosition: () => {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
} | null;
|
|
31
|
+
selectionRect: {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
} | null;
|
|
37
|
+
events: EventEmitter<ChartEventMap>;
|
|
38
|
+
selectionManager: SelectionManager;
|
|
39
|
+
getHoveredSeriesId: () => string | null;
|
|
40
|
+
pluginManager: PluginManagerImpl;
|
|
41
|
+
getLayout: () => import('../layout').LayoutOptions;
|
|
42
|
+
getLatex: () => any;
|
|
43
|
+
updateSeriesBuffer: (s: Series) => void;
|
|
44
|
+
getPlotArea: () => PlotArea;
|
|
45
|
+
pixelToDataX: (px: number) => number;
|
|
46
|
+
pixelToDataY: (py: number, yAxisId?: string) => number;
|
|
47
|
+
get yScale(): Scale;
|
|
48
|
+
}
|
|
49
|
+
export declare class ChartRenderLoop {
|
|
50
|
+
private ctx;
|
|
51
|
+
private animationFrameId;
|
|
52
|
+
private needsFullRender;
|
|
53
|
+
private needsOverlayRender;
|
|
54
|
+
private frameCount;
|
|
55
|
+
private lastRenderTime;
|
|
56
|
+
private initStarted;
|
|
57
|
+
constructor(ctx: RenderLoopContext);
|
|
58
|
+
/**
|
|
59
|
+
* Mark that initialization has started
|
|
60
|
+
*/
|
|
61
|
+
startInit(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Check if init has started
|
|
64
|
+
*/
|
|
65
|
+
isInitStarted(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Request a full render (WebGL + overlay)
|
|
68
|
+
*/
|
|
69
|
+
requestRender(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Request overlay-only render
|
|
72
|
+
*/
|
|
73
|
+
requestOverlayRender(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Schedule render on next animation frame
|
|
76
|
+
*/
|
|
77
|
+
private scheduleRenderFrame;
|
|
78
|
+
/**
|
|
79
|
+
* Cancel any pending render
|
|
80
|
+
*/
|
|
81
|
+
cancelPendingRender(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Perform the actual rendering
|
|
84
|
+
*/
|
|
85
|
+
private performRender;
|
|
86
|
+
/**
|
|
87
|
+
* Get render statistics
|
|
88
|
+
*/
|
|
89
|
+
getStats(): {
|
|
90
|
+
frameCount: number;
|
|
91
|
+
lastRenderTime: number;
|
|
92
|
+
hasPendingRender: boolean;
|
|
93
|
+
needsFullRender: boolean;
|
|
94
|
+
needsOverlayRender: boolean;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Reset frame counter
|
|
98
|
+
*/
|
|
99
|
+
resetFrameCount(): void;
|
|
100
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Bounds, CursorOptions, AxisOptions, PlotArea, ChartEventMap } from '../../types';
|
|
2
|
+
import { Series } from '../Series';
|
|
3
|
+
import { Scale } from '../../scales';
|
|
4
|
+
import { NativeWebGLRenderer, NativeSeriesRenderData as SeriesRenderData } from '../../renderer/NativeWebGLRenderer';
|
|
5
|
+
import { OverlayRenderer } from '../OverlayRenderer';
|
|
6
|
+
import { EventEmitter } from '../EventEmitter';
|
|
7
|
+
import { SelectionManager } from '../selection';
|
|
8
|
+
|
|
9
|
+
export interface RenderContext {
|
|
10
|
+
webglCanvas: HTMLCanvasElement;
|
|
11
|
+
overlayCanvas: HTMLCanvasElement;
|
|
12
|
+
overlayCtx: CanvasRenderingContext2D;
|
|
13
|
+
container: HTMLDivElement;
|
|
14
|
+
series: Map<string, Series>;
|
|
15
|
+
viewBounds: Bounds;
|
|
16
|
+
xScale: Scale;
|
|
17
|
+
yScales: Map<string, Scale>;
|
|
18
|
+
yAxisOptionsMap: Map<string, AxisOptions>;
|
|
19
|
+
xAxisOptions: AxisOptions;
|
|
20
|
+
primaryYAxisId: string;
|
|
21
|
+
renderer: NativeWebGLRenderer;
|
|
22
|
+
overlay: OverlayRenderer;
|
|
23
|
+
backgroundColor: [number, number, number, number];
|
|
24
|
+
cursorOptions: CursorOptions | null;
|
|
25
|
+
cursorPosition: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
} | null;
|
|
29
|
+
selectionRect: {
|
|
30
|
+
x: number;
|
|
31
|
+
y: number;
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
} | null;
|
|
35
|
+
events: EventEmitter<ChartEventMap>;
|
|
36
|
+
updateSeriesBuffer: (s: Series) => void;
|
|
37
|
+
getPlotArea: () => PlotArea;
|
|
38
|
+
pixelToDataX: (px: number) => number;
|
|
39
|
+
pixelToDataY: (py: number) => number;
|
|
40
|
+
selectionManager: SelectionManager;
|
|
41
|
+
hoveredSeriesId: string | null;
|
|
42
|
+
layout: import('../layout').LayoutOptions;
|
|
43
|
+
latexAPI?: any;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Prepare series data for WebGL rendering
|
|
47
|
+
*/
|
|
48
|
+
export declare function prepareSeriesData(ctx: RenderContext, plotArea: PlotArea): SeriesRenderData[];
|
|
49
|
+
/**
|
|
50
|
+
* Render overlay elements (axes, grid, annotations, etc.)
|
|
51
|
+
*/
|
|
52
|
+
export declare function renderOverlay(ctx: RenderContext, plotArea: PlotArea, primaryYScale: Scale): void;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { NavigationContext } from './ChartNavigation';
|
|
2
|
+
import { ZoomOptions } from '../../types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Auto-scale all axes to fit data
|
|
6
|
+
*/
|
|
7
|
+
export declare function autoScaleAll(ctx: NavigationContext): void;
|
|
8
|
+
/**
|
|
9
|
+
* Auto-scale only Y-axes to fit data (keeps X-axis stable)
|
|
10
|
+
* Used during streaming to prevent X-axis shifting
|
|
11
|
+
*/
|
|
12
|
+
export declare function autoScaleYOnly(ctx: NavigationContext): void;
|
|
13
|
+
/**
|
|
14
|
+
* Handle box zoom selection
|
|
15
|
+
*/
|
|
16
|
+
export declare function handleBoxZoom(ctx: NavigationContext, selectionRect: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
} | null, currentRect: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
} | null, zoom: (options: ZoomOptions) => void): {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
width: number;
|
|
30
|
+
height: number;
|
|
31
|
+
} | null;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ChartOptions, AxisOptions } from '../../types';
|
|
2
|
+
import { Scale } from '../../scales';
|
|
3
|
+
import { ChartTheme } from '../../theme';
|
|
4
|
+
import { LayoutOptions } from '../layout';
|
|
5
|
+
|
|
6
|
+
export interface SetupResult {
|
|
7
|
+
theme: ChartTheme;
|
|
8
|
+
backgroundColor: [number, number, number, number];
|
|
9
|
+
plotAreaColor: [number, number, number, number];
|
|
10
|
+
showLegend: boolean;
|
|
11
|
+
showControls: boolean;
|
|
12
|
+
autoScroll: boolean;
|
|
13
|
+
showStatistics: boolean;
|
|
14
|
+
dpr: number;
|
|
15
|
+
xAxisOptions: AxisOptions;
|
|
16
|
+
xScale: Scale;
|
|
17
|
+
yAxisOptionsMap: Map<string, AxisOptions>;
|
|
18
|
+
yScales: Map<string, Scale>;
|
|
19
|
+
primaryYAxisId: string;
|
|
20
|
+
webglCanvas: HTMLCanvasElement;
|
|
21
|
+
overlayCanvas: HTMLCanvasElement;
|
|
22
|
+
overlayCtx: CanvasRenderingContext2D;
|
|
23
|
+
layout: LayoutOptions;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Initialize chart configuration from options
|
|
27
|
+
*/
|
|
28
|
+
export declare function initializeChart(container: HTMLDivElement, options: ChartOptions): SetupResult;
|
|
29
|
+
/**
|
|
30
|
+
* Create a canvas element
|
|
31
|
+
*/
|
|
32
|
+
export declare function createCanvas(type: "webgl" | "overlay"): HTMLCanvasElement;
|
|
33
|
+
/**
|
|
34
|
+
* Calculate the plot area based on container size and margins
|
|
35
|
+
*/
|
|
36
|
+
export declare function getPlotArea(container: HTMLDivElement, yAxisOptionsMap: Map<string, AxisOptions>, layout?: LayoutOptions): {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Get axes layout for interaction manager
|
|
44
|
+
*/
|
|
45
|
+
export declare function getAxesLayout(yAxisOptionsMap: Map<string, AxisOptions>): Array<{
|
|
46
|
+
id: string;
|
|
47
|
+
position: 'left' | 'right';
|
|
48
|
+
offset: number;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Resize canvases to match container
|
|
52
|
+
*/
|
|
53
|
+
export declare function resizeCanvases(container: HTMLDivElement, webglCanvas: HTMLCanvasElement, overlayCanvas: HTMLCanvasElement, overlayCtx: CanvasRenderingContext2D, dpr: number): boolean;
|
|
54
|
+
export declare function pixelToDataX(px: number, plotArea: {
|
|
55
|
+
x: number;
|
|
56
|
+
width: number;
|
|
57
|
+
}, viewBounds: {
|
|
58
|
+
xMin: number;
|
|
59
|
+
xMax: number;
|
|
60
|
+
}, invertAxis?: boolean): number;
|
|
61
|
+
export declare function pixelToDataY(py: number, plotArea: {
|
|
62
|
+
y: number;
|
|
63
|
+
height: number;
|
|
64
|
+
}, viewBounds: {
|
|
65
|
+
yMin: number;
|
|
66
|
+
yMax: number;
|
|
67
|
+
}, invertAxis?: boolean): number;
|