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.
Files changed (370) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/EventEmitter-DAbs2K1C.js +60 -0
  4. package/dist/EventEmitter-DAbs2K1C.js.map +1 -0
  5. package/dist/core/Chart.d.ts +15 -0
  6. package/dist/core/ChartControls.d.ts +41 -0
  7. package/dist/core/ChartInitQueue.d.ts +50 -0
  8. package/dist/core/ChartLegend.d.ts +74 -0
  9. package/dist/core/ChartStatistics.d.ts +18 -0
  10. package/dist/core/EventEmitter.d.ts +30 -0
  11. package/dist/core/InteractionManager.d.ts +96 -0
  12. package/dist/core/OverlayRenderer.d.ts +89 -0
  13. package/dist/core/Series.d.ts +4 -0
  14. package/dist/core/animation/AnimationEngine.d.ts +156 -0
  15. package/dist/core/animation/index.d.ts +6 -0
  16. package/dist/core/annotations/AnnotationManager.d.ts +61 -0
  17. package/dist/core/annotations/index.d.ts +5 -0
  18. package/dist/core/annotations/types.d.ts +159 -0
  19. package/dist/core/chart/ChartAnimatedNavigation.d.ts +53 -0
  20. package/dist/core/chart/ChartAxisManager.d.ts +61 -0
  21. package/dist/core/chart/ChartCore.d.ts +336 -0
  22. package/dist/core/chart/ChartExporter.d.ts +18 -0
  23. package/dist/core/chart/ChartNavigation.d.ts +33 -0
  24. package/dist/core/chart/ChartPluginBridge.d.ts +34 -0
  25. package/dist/core/chart/ChartRenderLoop.d.ts +100 -0
  26. package/dist/core/chart/ChartRenderer.d.ts +52 -0
  27. package/dist/core/chart/ChartScaling.d.ts +31 -0
  28. package/dist/core/chart/ChartSeries.d.ts +4 -0
  29. package/dist/core/chart/ChartSetup.d.ts +67 -0
  30. package/dist/core/chart/ChartStateManager.d.ts +54 -0
  31. package/dist/core/chart/ChartUI.d.ts +40 -0
  32. package/dist/core/chart/exporter/SVGExporter.d.ts +6 -0
  33. package/dist/core/chart/exporter/index.d.ts +5 -0
  34. package/dist/core/chart/index.d.ts +14 -0
  35. package/dist/core/chart/series/SeriesActions.d.ts +7 -0
  36. package/dist/core/chart/series/SeriesBuffer.d.ts +4 -0
  37. package/dist/core/chart/series/index.d.ts +6 -0
  38. package/dist/core/chart/series/types.d.ts +22 -0
  39. package/dist/core/chart/types.d.ts +188 -0
  40. package/dist/core/clipboard/index.d.ts +137 -0
  41. package/dist/core/debug/index.d.ts +143 -0
  42. package/dist/core/index.d.ts +17 -0
  43. package/dist/core/keybindings/index.d.ts +157 -0
  44. package/dist/core/layout/index.d.ts +12 -0
  45. package/dist/core/layout/types.d.ts +165 -0
  46. package/dist/core/loading/index.d.ts +104 -0
  47. package/dist/core/locale/index.d.ts +91 -0
  48. package/dist/core/responsive/ResponsiveManager.d.ts +133 -0
  49. package/dist/core/responsive/index.d.ts +4 -0
  50. package/dist/core/selection/SelectionManager.d.ts +165 -0
  51. package/dist/core/selection/index.d.ts +4 -0
  52. package/dist/core/series/Series.d.ts +73 -0
  53. package/dist/core/series/SeriesBounds.d.ts +3 -0
  54. package/dist/core/series/SeriesDataUtils.d.ts +7 -0
  55. package/dist/core/series/index.d.ts +6 -0
  56. package/dist/core/sync/index.d.ts +147 -0
  57. package/dist/core/theme-editor/index.d.ts +122 -0
  58. package/dist/examples/PluginDemonstration.d.ts +20 -0
  59. package/dist/examples.d.ts +25 -0
  60. package/dist/gpu/adapter/gpuRenderer.d.ts +135 -0
  61. package/dist/gpu/adapter/index.d.ts +7 -0
  62. package/dist/gpu/adapter/seriesAdapter.d.ts +88 -0
  63. package/dist/gpu/backends/webgl/WebGLBackend.d.ts +42 -0
  64. package/dist/gpu/backends/webgl/index.d.ts +5 -0
  65. package/dist/gpu/backends/webgl/programFactory.d.ts +30 -0
  66. package/dist/gpu/backends/webgl/shaders.d.ts +14 -0
  67. package/dist/gpu/backends/webgpu/MassiveDataRenderer.d.ts +111 -0
  68. package/dist/gpu/backends/webgpu/WebGPUBackend.d.ts +58 -0
  69. package/dist/gpu/backends/webgpu/pipelines/bandPipeline.d.ts +24 -0
  70. package/dist/gpu/backends/webgpu/pipelines/heatmapPipeline.d.ts +28 -0
  71. package/dist/gpu/backends/webgpu/pipelines/index.d.ts +10 -0
  72. package/dist/gpu/backends/webgpu/pipelines/instancedLinePipeline.d.ts +23 -0
  73. package/dist/gpu/backends/webgpu/pipelines/instancedPointPipeline.d.ts +25 -0
  74. package/dist/gpu/backends/webgpu/pipelines/linePipeline.d.ts +23 -0
  75. package/dist/gpu/backends/webgpu/pipelines/pointPipeline.d.ts +28 -0
  76. package/dist/gpu/backends/webgpu/pipelines/trianglePipeline.d.ts +5 -0
  77. package/dist/gpu/backends/webgpu/pipelines/triangleShader.d.ts +1 -0
  78. package/dist/gpu/backends/webgpu/shaders/heatmap.wgsl.d.ts +8 -0
  79. package/dist/gpu/backends/webgpu/shaders/index.d.ts +8 -0
  80. package/dist/gpu/backends/webgpu/shaders/instanced.wgsl.d.ts +16 -0
  81. package/dist/gpu/backends/webgpu/shaders/line.wgsl.d.ts +8 -0
  82. package/dist/gpu/backends/webgpu/shaders/point.wgsl.d.ts +9 -0
  83. package/dist/gpu/benchmark/benchmark.d.ts +74 -0
  84. package/dist/gpu/benchmark/index.d.ts +5 -0
  85. package/dist/gpu/compute/gpuCompute.d.ts +72 -0
  86. package/dist/gpu/compute/index.d.ts +6 -0
  87. package/dist/gpu/compute/shaders.d.ts +9 -0
  88. package/dist/gpu/drawList.d.ts +77 -0
  89. package/dist/gpu/examples/gallery.d.ts +20 -0
  90. package/dist/gpu/examples/index.d.ts +3 -0
  91. package/dist/gpu/examples/webgpu-line-demo.d.ts +8 -0
  92. package/dist/gpu/examples/webgpu-triangle.d.ts +1 -0
  93. package/dist/gpu/frame.d.ts +25 -0
  94. package/dist/gpu/index.d.ts +24 -0
  95. package/dist/gpu/resources/bufferStore.d.ts +40 -0
  96. package/dist/gpu/resources/index.d.ts +9 -0
  97. package/dist/gpu/resources/pipelineCache.d.ts +33 -0
  98. package/dist/gpu/resources/textureStore.d.ts +41 -0
  99. package/dist/gpu/types.d.ts +47 -0
  100. package/dist/index-BMiZoKmm.js +536 -0
  101. package/dist/index-BMiZoKmm.js.map +1 -0
  102. package/dist/index-Ce2JgkH_.js +282 -0
  103. package/dist/index-Ce2JgkH_.js.map +1 -0
  104. package/dist/index-D8ifudJH.js +2431 -0
  105. package/dist/index-D8ifudJH.js.map +1 -0
  106. package/dist/index-Dag88bW4.js +499 -0
  107. package/dist/index-Dag88bW4.js.map +1 -0
  108. package/dist/index-qhscKTDy.js +309 -0
  109. package/dist/index-qhscKTDy.js.map +1 -0
  110. package/dist/index-x4stH3jD.js +282 -0
  111. package/dist/index-x4stH3jD.js.map +1 -0
  112. package/dist/index.core-CYu3tydL.js +7252 -0
  113. package/dist/index.core-CYu3tydL.js.map +1 -0
  114. package/dist/index.core.d.ts +20 -0
  115. package/dist/index.d.ts +51 -0
  116. package/dist/overlay/CanvasOverlay.d.ts +102 -0
  117. package/dist/overlay/index.d.ts +4 -0
  118. package/dist/plugins/3d/Area3DRenderer.d.ts +122 -0
  119. package/dist/plugins/3d/Axes3D.d.ts +104 -0
  120. package/dist/plugins/3d/Bubble3DRenderer.d.ts +198 -0
  121. package/dist/plugins/3d/Impulse3DRenderer.d.ts +130 -0
  122. package/dist/plugins/3d/Line3DRenderer.d.ts +118 -0
  123. package/dist/plugins/3d/PointCloud3DRenderer.d.ts +84 -0
  124. package/dist/plugins/3d/Raycaster3D.d.ts +137 -0
  125. package/dist/plugins/3d/Ribbon3DRenderer.d.ts +83 -0
  126. package/dist/plugins/3d/SurfaceBar3DRenderer.d.ts +92 -0
  127. package/dist/plugins/3d/SurfaceMesh3DRenderer.d.ts +130 -0
  128. package/dist/plugins/3d/Tooltip3D.d.ts +71 -0
  129. package/dist/plugins/3d/VectorField3DRenderer.d.ts +86 -0
  130. package/dist/plugins/3d/Voxel3DRenderer.d.ts +89 -0
  131. package/dist/plugins/3d/Waterfall3DRenderer.d.ts +94 -0
  132. package/dist/plugins/3d/camera/OrbitCamera.d.ts +99 -0
  133. package/dist/plugins/3d/camera/index.d.ts +1 -0
  134. package/dist/plugins/3d/colorThemes.d.ts +39 -0
  135. package/dist/plugins/3d/controls/OrbitController.d.ts +69 -0
  136. package/dist/plugins/3d/controls/index.d.ts +1 -0
  137. package/dist/plugins/3d/index.d.ts +50 -0
  138. package/dist/plugins/3d/math/Mat4.d.ts +33 -0
  139. package/dist/plugins/3d/math/Vec3.d.ts +37 -0
  140. package/dist/plugins/3d/math/index.d.ts +4 -0
  141. package/dist/plugins/3d/mesh/InstancedMesh.d.ts +42 -0
  142. package/dist/plugins/3d/mesh/geometry.d.ts +34 -0
  143. package/dist/plugins/3d/mesh/index.d.ts +2 -0
  144. package/dist/plugins/3d/series/Area3D.d.ts +17 -0
  145. package/dist/plugins/3d/series/Column3D.d.ts +20 -0
  146. package/dist/plugins/3d/series/Heatmap3D.d.ts +17 -0
  147. package/dist/plugins/3d/series/Impulse3D.d.ts +16 -0
  148. package/dist/plugins/3d/series/PointLine3D.d.ts +20 -0
  149. package/dist/plugins/3d/series/Ribbon3D.d.ts +17 -0
  150. package/dist/plugins/3d/series/Scatter3D.d.ts +21 -0
  151. package/dist/plugins/3d/series/SurfaceMesh3D.d.ts +35 -0
  152. package/dist/plugins/3d/series/Waterfall3D.d.ts +38 -0
  153. package/dist/plugins/3d/series/index.d.ts +13 -0
  154. package/dist/plugins/3d/series/types.d.ts +143 -0
  155. package/dist/plugins/3d/shader/index.d.ts +2 -0
  156. package/dist/plugins/3d/shader/programs.d.ts +24 -0
  157. package/dist/plugins/3d/shader/sources.d.ts +27 -0
  158. package/dist/plugins/3d/types.d.ts +71 -0
  159. package/dist/plugins/3d.d.ts +3 -0
  160. package/dist/plugins/3d.js +5498 -0
  161. package/dist/plugins/3d.js.map +1 -0
  162. package/dist/plugins/PluginContext.d.ts +53 -0
  163. package/dist/plugins/PluginManager.d.ts +129 -0
  164. package/dist/plugins/PluginRegistry.d.ts +38 -0
  165. package/dist/plugins/analysis/SeriesFit.d.ts +3 -0
  166. package/dist/plugins/analysis/contours.d.ts +20 -0
  167. package/dist/plugins/analysis/fft.d.ts +138 -0
  168. package/dist/plugins/analysis/filters.d.ts +76 -0
  169. package/dist/plugins/analysis/fitting.d.ts +24 -0
  170. package/dist/plugins/analysis/index.d.ts +29 -0
  171. package/dist/plugins/analysis/indicators.d.ts +148 -0
  172. package/dist/plugins/analysis/math.d.ts +32 -0
  173. package/dist/plugins/analysis/statistics.d.ts +78 -0
  174. package/dist/plugins/analysis/utils.d.ts +150 -0
  175. package/dist/plugins/analysis.d.ts +3 -0
  176. package/dist/plugins/analysis.js +1202 -0
  177. package/dist/plugins/analysis.js.map +1 -0
  178. package/dist/plugins/annotations/index.d.ts +16 -0
  179. package/dist/plugins/annotations.d.ts +3 -0
  180. package/dist/plugins/annotations.js +438 -0
  181. package/dist/plugins/annotations.js.map +1 -0
  182. package/dist/plugins/anomaly-detection/algorithms.d.ts +38 -0
  183. package/dist/plugins/anomaly-detection/index.d.ts +16 -0
  184. package/dist/plugins/anomaly-detection/types.d.ts +57 -0
  185. package/dist/plugins/broken-axis/BrokenAxisScale.d.ts +24 -0
  186. package/dist/plugins/broken-axis/exports.d.ts +6 -0
  187. package/dist/plugins/broken-axis/index.d.ts +6 -0
  188. package/dist/plugins/broken-axis/types.d.ts +50 -0
  189. package/dist/plugins/builtins/crosshair/CrosshairPlugin.d.ts +40 -0
  190. package/dist/plugins/builtins/crosshair/index.d.ts +1 -0
  191. package/dist/plugins/builtins/data-logger/DataLoggerPlugin.d.ts +11 -0
  192. package/dist/plugins/builtins/data-logger/index.d.ts +1 -0
  193. package/dist/plugins/builtins/direction-indicator/DirectionIndicatorPlugin.d.ts +17 -0
  194. package/dist/plugins/builtins/direction-indicator/index.d.ts +2 -0
  195. package/dist/plugins/builtins/grid-highlight/GridHighlightPlugin.d.ts +17 -0
  196. package/dist/plugins/builtins/grid-highlight/index.d.ts +1 -0
  197. package/dist/plugins/builtins/index.d.ts +25 -0
  198. package/dist/plugins/builtins/stats/StatsPlugin.d.ts +11 -0
  199. package/dist/plugins/builtins/stats/index.d.ts +1 -0
  200. package/dist/plugins/builtins/watermark/WatermarkPlugin.d.ts +15 -0
  201. package/dist/plugins/builtins/watermark/index.d.ts +1 -0
  202. package/dist/plugins/caching/exports.d.ts +6 -0
  203. package/dist/plugins/caching/index.d.ts +6 -0
  204. package/dist/plugins/caching/types.d.ts +120 -0
  205. package/dist/plugins/clipboard/index.d.ts +20 -0
  206. package/dist/plugins/clipboard.d.ts +3 -0
  207. package/dist/plugins/clipboard.js +270 -0
  208. package/dist/plugins/clipboard.js.map +1 -0
  209. package/dist/plugins/context-menu/index.d.ts +12 -0
  210. package/dist/plugins/context-menu/renderer.d.ts +43 -0
  211. package/dist/plugins/context-menu/types.d.ts +202 -0
  212. package/dist/plugins/context-menu.d.ts +3 -0
  213. package/dist/plugins/context-menu.js +621 -0
  214. package/dist/plugins/context-menu.js.map +1 -0
  215. package/dist/plugins/data-export/formatters.d.ts +34 -0
  216. package/dist/plugins/data-export/index.d.ts +15 -0
  217. package/dist/plugins/data-export/types.d.ts +166 -0
  218. package/dist/plugins/data-export.d.ts +3 -0
  219. package/dist/plugins/data-export.js +463 -0
  220. package/dist/plugins/data-export.js.map +1 -0
  221. package/dist/plugins/data-transform/index.d.ts +6 -0
  222. package/dist/plugins/data-transform/types.d.ts +34 -0
  223. package/dist/plugins/debug/index.d.ts +24 -0
  224. package/dist/plugins/debug.d.ts +3 -0
  225. package/dist/plugins/debug.js +330 -0
  226. package/dist/plugins/debug.js.map +1 -0
  227. package/dist/plugins/drag-edit/exports.d.ts +6 -0
  228. package/dist/plugins/drag-edit/index.d.ts +6 -0
  229. package/dist/plugins/drag-edit/types.d.ts +118 -0
  230. package/dist/plugins/forecasting/algorithms.d.ts +6 -0
  231. package/dist/plugins/forecasting/exports.d.ts +3 -0
  232. package/dist/plugins/forecasting/index.d.ts +11 -0
  233. package/dist/plugins/forecasting/types.d.ts +88 -0
  234. package/dist/plugins/gpu/index.d.ts +24 -0
  235. package/dist/plugins/gpu.d.ts +3 -0
  236. package/dist/plugins/gpu.js +2430 -0
  237. package/dist/plugins/gpu.js.map +1 -0
  238. package/dist/plugins/i18n/index.d.ts +22 -0
  239. package/dist/plugins/i18n.d.ts +3 -0
  240. package/dist/plugins/i18n.js +37 -0
  241. package/dist/plugins/i18n.js.map +1 -0
  242. package/dist/plugins/index.d.ts +110 -0
  243. package/dist/plugins/keyboard/index.d.ts +15 -0
  244. package/dist/plugins/keyboard.d.ts +3 -0
  245. package/dist/plugins/keyboard.js +8 -0
  246. package/dist/plugins/keyboard.js.map +1 -0
  247. package/dist/plugins/latex/exports.d.ts +6 -0
  248. package/dist/plugins/latex/index.d.ts +8 -0
  249. package/dist/plugins/latex/parser.d.ts +6 -0
  250. package/dist/plugins/latex/renderer.d.ts +6 -0
  251. package/dist/plugins/latex/symbols.d.ts +28 -0
  252. package/dist/plugins/latex/types.d.ts +88 -0
  253. package/dist/plugins/lazy-load/exports.d.ts +6 -0
  254. package/dist/plugins/lazy-load/index.d.ts +6 -0
  255. package/dist/plugins/lazy-load/types.d.ts +121 -0
  256. package/dist/plugins/loading/index.d.ts +15 -0
  257. package/dist/plugins/loading.d.ts +3 -0
  258. package/dist/plugins/loading.js +7 -0
  259. package/dist/plugins/loading.js.map +1 -0
  260. package/dist/plugins/ml-integration/exports.d.ts +11 -0
  261. package/dist/plugins/ml-integration/index.d.ts +6 -0
  262. package/dist/plugins/ml-integration/native-algorithms.d.ts +69 -0
  263. package/dist/plugins/ml-integration/types.d.ts +74 -0
  264. package/dist/plugins/offscreen/exports.d.ts +6 -0
  265. package/dist/plugins/offscreen/index.d.ts +6 -0
  266. package/dist/plugins/offscreen/pool.d.ts +32 -0
  267. package/dist/plugins/offscreen/types.d.ts +35 -0
  268. package/dist/plugins/pattern-recognition/index.d.ts +6 -0
  269. package/dist/plugins/pattern-recognition/patterns.d.ts +3 -0
  270. package/dist/plugins/pattern-recognition/types.d.ts +245 -0
  271. package/dist/plugins/radar/index.d.ts +6 -0
  272. package/dist/plugins/radar/types.d.ts +40 -0
  273. package/dist/plugins/regression/algorithms.d.ts +6 -0
  274. package/dist/plugins/regression/index.d.ts +6 -0
  275. package/dist/plugins/regression/types.d.ts +261 -0
  276. package/dist/plugins/roi/exports.d.ts +6 -0
  277. package/dist/plugins/roi/index.d.ts +49 -0
  278. package/dist/plugins/roi/types.d.ts +60 -0
  279. package/dist/plugins/snapshot/index.d.ts +11 -0
  280. package/dist/plugins/snapshot/types.d.ts +38 -0
  281. package/dist/plugins/streaming/index.d.ts +32 -0
  282. package/dist/plugins/streaming.d.ts +3 -0
  283. package/dist/plugins/streaming.js +13 -0
  284. package/dist/plugins/streaming.js.map +1 -0
  285. package/dist/plugins/sync/index.d.ts +22 -0
  286. package/dist/plugins/sync.d.ts +3 -0
  287. package/dist/plugins/sync.js +261 -0
  288. package/dist/plugins/sync.js.map +1 -0
  289. package/dist/plugins/theme-editor/index.d.ts +18 -0
  290. package/dist/plugins/theme-editor.d.ts +3 -0
  291. package/dist/plugins/theme-editor.js +7 -0
  292. package/dist/plugins/theme-editor.js.map +1 -0
  293. package/dist/plugins/tools/delta-tool/index.d.ts +159 -0
  294. package/dist/plugins/tools/index.d.ts +21 -0
  295. package/dist/plugins/tools/peak-tool/index.d.ts +159 -0
  296. package/dist/plugins/tools/tooltip/TooltipManager.d.ts +213 -0
  297. package/dist/plugins/tools/tooltip/TooltipPositioner.d.ts +83 -0
  298. package/dist/plugins/tools/tooltip/TooltipRenderer.d.ts +64 -0
  299. package/dist/plugins/tools/tooltip/index.d.ts +18 -0
  300. package/dist/plugins/tools/tooltip/templates/AnnotationTemplate.d.ts +18 -0
  301. package/dist/plugins/tools/tooltip/templates/CrosshairTemplate.d.ts +39 -0
  302. package/dist/plugins/tools/tooltip/templates/DefaultTemplate.d.ts +30 -0
  303. package/dist/plugins/tools/tooltip/templates/HeatmapTemplate.d.ts +34 -0
  304. package/dist/plugins/tools/tooltip/templates/MinimalTemplate.d.ts +26 -0
  305. package/dist/plugins/tools/tooltip/templates/RangeTemplate.d.ts +18 -0
  306. package/dist/plugins/tools/tooltip/templates/ScientificTemplate.d.ts +34 -0
  307. package/dist/plugins/tools/tooltip/templates/index.d.ts +27 -0
  308. package/dist/plugins/tools/tooltip/themes.d.ts +48 -0
  309. package/dist/plugins/tools/tooltip/types.d.ts +396 -0
  310. package/dist/plugins/tools.d.ts +3 -0
  311. package/dist/plugins/tools.js +9 -0
  312. package/dist/plugins/tools.js.map +1 -0
  313. package/dist/plugins/types.d.ts +451 -0
  314. package/dist/plugins/video-recorder/exports.d.ts +6 -0
  315. package/dist/plugins/video-recorder/index.d.ts +6 -0
  316. package/dist/plugins/video-recorder/types.d.ts +55 -0
  317. package/dist/plugins/virtualization/exports.d.ts +6 -0
  318. package/dist/plugins/virtualization/index.d.ts +6 -0
  319. package/dist/plugins/virtualization/types.d.ts +48 -0
  320. package/dist/react/SciPlot.d.ts +60 -0
  321. package/dist/react/index.d.ts +5 -0
  322. package/dist/react/useSciPlot.d.ts +56 -0
  323. package/dist/renderer/BarRenderer.d.ts +14 -0
  324. package/dist/renderer/CandlestickRenderer.d.ts +12 -0
  325. package/dist/renderer/GaugeRenderer.d.ts +3 -0
  326. package/dist/renderer/HeatmapRenderer.d.ts +15 -0
  327. package/dist/renderer/NativeWebGLRenderer.d.ts +16 -0
  328. package/dist/renderer/PolarRenderer.d.ts +64 -0
  329. package/dist/renderer/RendererInterface.d.ts +70 -0
  330. package/dist/renderer/SankeyRenderer.d.ts +3 -0
  331. package/dist/renderer/WebGPURenderer.d.ts +16 -0
  332. package/dist/renderer/index.d.ts +13 -0
  333. package/dist/renderer/native/NativeWebGLRenderer.d.ts +31 -0
  334. package/dist/renderer/native/bufferStore.d.ts +11 -0
  335. package/dist/renderer/native/draw.d.ts +47 -0
  336. package/dist/renderer/native/programFactory.d.ts +3 -0
  337. package/dist/renderer/native/renderFrame.d.ts +3 -0
  338. package/dist/renderer/native/shaderSources.d.ts +6 -0
  339. package/dist/renderer/native/textureStore.d.ts +8 -0
  340. package/dist/renderer/native/types.d.ts +77 -0
  341. package/dist/renderer/native/utils.d.ts +31 -0
  342. package/dist/renderer/radar/RadarRenderer.d.ts +71 -0
  343. package/dist/renderer/radar/index.d.ts +10 -0
  344. package/dist/renderer/shaders.d.ts +77 -0
  345. package/dist/renderer/ternary/TernaryRenderer.d.ts +39 -0
  346. package/dist/renderer/ternary/index.d.ts +6 -0
  347. package/dist/renderer/ternary/types.d.ts +56 -0
  348. package/dist/scales/index.d.ts +54 -0
  349. package/dist/serialization/index.d.ts +153 -0
  350. package/dist/streaming/backpressure.d.ts +179 -0
  351. package/dist/streaming/index.d.ts +7 -0
  352. package/dist/streaming/mock.d.ts +12 -0
  353. package/dist/streaming/types.d.ts +57 -0
  354. package/dist/streaming/utils.d.ts +19 -0
  355. package/dist/streaming/websocket.d.ts +6 -0
  356. package/dist/testing/index.d.ts +225 -0
  357. package/dist/theme/colorSchemes.d.ts +56 -0
  358. package/dist/theme/index.d.ts +138 -0
  359. package/dist/types.d.ts +753 -0
  360. package/dist/utils-Dbro9-qM.js +254 -0
  361. package/dist/utils-Dbro9-qM.js.map +1 -0
  362. package/dist/velo-plot.d.ts +1 -0
  363. package/dist/velo-plot.full.d.ts +1 -0
  364. package/dist/velo-plot.full.js +5804 -0
  365. package/dist/velo-plot.full.js.map +1 -0
  366. package/dist/velo-plot.js +31 -0
  367. package/dist/velo-plot.js.map +1 -0
  368. package/dist/workers/downsample.d.ts +34 -0
  369. package/dist/workers/downsample.worker.d.ts +46 -0
  370. package/package.json +185 -0
@@ -0,0 +1,451 @@
1
+ import { Chart } from '../core/chart/types';
2
+ import { Series } from '../core/Series';
3
+ import { Bounds, SeriesData, ChartEventMap } from '../types';
4
+ import { Annotation } from '../core/annotations';
5
+ import { SelectedPoint } from '../core/selection';
6
+ import { ChartTheme } from '../theme';
7
+
8
+ /**
9
+ * Plugin semantic version (major.minor.patch)
10
+ */
11
+ export type PluginVersion = `${number}.${number}.${number}`;
12
+ /**
13
+ * Plugin capability identifiers
14
+ * Plugins can declare what features they provide
15
+ */
16
+ export type PluginCapability = "analysis" | "visualization" | "interaction" | "data-source" | "export" | "ui" | "annotation" | "theme" | string;
17
+ /**
18
+ * Plugin manifest with metadata
19
+ */
20
+ export interface PluginManifest {
21
+ /** Unique plugin identifier (e.g., '@myorg/fft-plugin') */
22
+ name: string;
23
+ /** Plugin version following semver */
24
+ version: PluginVersion;
25
+ /** Human-readable description */
26
+ description?: string;
27
+ /** Author name or organization */
28
+ author?: string;
29
+ /** URL for documentation or homepage */
30
+ homepage?: string;
31
+ /** License identifier (e.g., 'MIT', 'Apache-2.0') */
32
+ license?: string;
33
+ /** Capabilities this plugin provides */
34
+ provides?: PluginCapability[];
35
+ /** Required plugins that must be loaded first */
36
+ dependencies?: string[];
37
+ /** Optional plugins that enhance this one if present */
38
+ optionalDependencies?: string[];
39
+ /** Minimum Sci Plot version required */
40
+ engineVersion?: PluginVersion;
41
+ /** Plugin-specific configuration schema (JSON Schema format) */
42
+ configSchema?: Record<string, unknown>;
43
+ /** Tags for discovery/categorization */
44
+ tags?: string[];
45
+ }
46
+ /**
47
+ * Read-only access to chart rendering context
48
+ */
49
+ export interface RenderContext {
50
+ /** WebGL rendering context */
51
+ readonly gl?: WebGLRenderingContext | WebGL2RenderingContext;
52
+ /** Overlay 2D canvas context */
53
+ readonly ctx2d?: CanvasRenderingContext2D;
54
+ /** Current device pixel ratio */
55
+ readonly pixelRatio: number;
56
+ /** Current canvas dimensions */
57
+ readonly canvasSize: {
58
+ width: number;
59
+ height: number;
60
+ };
61
+ /** Current plot area bounds */
62
+ readonly plotArea: {
63
+ x: number;
64
+ y: number;
65
+ width: number;
66
+ height: number;
67
+ };
68
+ }
69
+ /**
70
+ * Coordinate conversion utilities
71
+ */
72
+ export interface CoordinateContext {
73
+ /** Convert data X to pixel X */
74
+ dataToPixelX(dataX: number): number;
75
+ /** Convert data Y to pixel Y */
76
+ dataToPixelY(dataY: number, yAxisId?: string): number;
77
+ /** Convert pixel X to data X */
78
+ pixelToDataX(pixelX: number): number;
79
+ /** Convert pixel Y to data Y */
80
+ pixelToDataY(pixelY: number, yAxisId?: string): number;
81
+ /** Get data point at pixel position */
82
+ pickPoint(pixelX: number, pixelY: number, radius?: number): PickResult | null;
83
+ }
84
+ /**
85
+ * Result from coordinate picking
86
+ */
87
+ export interface PickResult {
88
+ seriesId: string;
89
+ index: number;
90
+ x: number;
91
+ y: number;
92
+ pixelX: number;
93
+ pixelY: number;
94
+ distance: number;
95
+ }
96
+ /**
97
+ * Data access context for plugins
98
+ */
99
+ export interface DataContext {
100
+ /** Get all series in the chart */
101
+ getAllSeries(): readonly Series[];
102
+ /** Get specific series by ID */
103
+ getSeries(id: string): Series | undefined;
104
+ /** Get series data as typed arrays */
105
+ getSeriesData(id: string): Readonly<SeriesData> | undefined;
106
+ /** Get visible data bounds */
107
+ getViewBounds(): Readonly<Bounds>;
108
+ /** Get data bounds for a specific Y axis */
109
+ getYAxisBounds(yAxisId?: string): {
110
+ yMin: number;
111
+ yMax: number;
112
+ };
113
+ /** Get all annotations */
114
+ getAnnotations(): readonly Annotation[];
115
+ /** Get selected points */
116
+ getSelectedPoints(): readonly SelectedPoint[];
117
+ }
118
+ /**
119
+ * UI context for plugins that need to add UI elements
120
+ */
121
+ export interface UIContext {
122
+ /** Chart container element */
123
+ readonly container: HTMLDivElement;
124
+ /** Create a plugin UI container (positioned over chart) */
125
+ createOverlay(id: string, options?: OverlayOptions): HTMLDivElement;
126
+ /** Remove a plugin UI overlay */
127
+ removeOverlay(id: string): boolean;
128
+ /** Get existing overlay by ID */
129
+ getOverlay(id: string): HTMLDivElement | undefined;
130
+ /** Show a notification/toast message */
131
+ showNotification(message: string, options?: NotificationOptions): void;
132
+ /** Current theme */
133
+ readonly theme: Readonly<ChartTheme>;
134
+ }
135
+ export interface OverlayOptions {
136
+ /** Z-index order (default: 1000) */
137
+ zIndex?: number;
138
+ /** CSS class name */
139
+ className?: string;
140
+ /** Initial position */
141
+ position?: {
142
+ top?: string;
143
+ right?: string;
144
+ bottom?: string;
145
+ left?: string;
146
+ };
147
+ /** Whether overlay should intercept pointer events (default: false) */
148
+ pointerEvents?: boolean;
149
+ }
150
+ export interface NotificationOptions {
151
+ type?: "info" | "success" | "warning" | "error";
152
+ duration?: number;
153
+ position?: "top-right" | "top-left" | "bottom-right" | "bottom-left";
154
+ }
155
+ /**
156
+ * Event context for plugins
157
+ */
158
+ export interface EventContext {
159
+ /** Subscribe to chart events */
160
+ on<K extends keyof ChartEventMap>(event: K, handler: (data: ChartEventMap[K]) => void): () => void;
161
+ /** Subscribe once to chart events */
162
+ once<K extends keyof ChartEventMap>(event: K, handler: (data: ChartEventMap[K]) => void): () => void;
163
+ /** Emit custom plugin events */
164
+ emit(event: string, data?: unknown): void;
165
+ /** Listen to custom plugin events */
166
+ onPlugin(event: string, handler: (data: unknown) => void): () => void;
167
+ }
168
+ /**
169
+ * Complete plugin context provided to plugins
170
+ */
171
+ export interface PluginContext {
172
+ /** The chart instance (full API) */
173
+ readonly chart: Chart;
174
+ /** Rendering context access */
175
+ readonly render: RenderContext;
176
+ /** Coordinate conversion */
177
+ readonly coords: CoordinateContext;
178
+ /** Data access */
179
+ readonly data: DataContext;
180
+ /** UI management */
181
+ readonly ui: UIContext;
182
+ /** Event handling */
183
+ readonly events: EventContext;
184
+ /** Plugin storage (persisted with chart state) */
185
+ readonly storage: PluginStorage;
186
+ /** Logger namespaced to plugin */
187
+ readonly log: PluginLogger;
188
+ /** Access other loaded plugins */
189
+ getPlugin<T extends ChartPlugin = ChartPlugin>(name: string): T | undefined;
190
+ /** Request a re-render */
191
+ requestRender(): void;
192
+ /** Schedule work on next frame */
193
+ requestAnimationFrame(callback: () => void): number;
194
+ /** Cancel scheduled work */
195
+ cancelAnimationFrame(id: number): void;
196
+ }
197
+ /**
198
+ * Plugin-scoped storage
199
+ */
200
+ export interface PluginStorage {
201
+ /** Get a stored value */
202
+ get<T>(key: string): T | undefined;
203
+ /** Set a value */
204
+ set<T>(key: string, value: T): void;
205
+ /** Remove a value */
206
+ remove(key: string): void;
207
+ /** Clear all plugin storage */
208
+ clear(): void;
209
+ /** Get all storage keys */
210
+ keys(): string[];
211
+ }
212
+ /**
213
+ * Plugin-scoped logger
214
+ */
215
+ export interface PluginLogger {
216
+ debug(message: string, ...args: unknown[]): void;
217
+ info(message: string, ...args: unknown[]): void;
218
+ warn(message: string, ...args: unknown[]): void;
219
+ error(message: string, ...args: unknown[]): void;
220
+ }
221
+ /**
222
+ * Data passed to beforeRender hook
223
+ */
224
+ export interface BeforeRenderEvent {
225
+ /** Current timestamp */
226
+ timestamp: number;
227
+ /** Time since last render (ms) */
228
+ deltaTime: number;
229
+ /** Current frame number */
230
+ frameNumber: number;
231
+ /** Whether this is a forced render */
232
+ forced: boolean;
233
+ }
234
+ /**
235
+ * Data passed to afterRender hook
236
+ */
237
+ export interface AfterRenderEvent extends BeforeRenderEvent {
238
+ /** Render duration (ms) */
239
+ renderTime: number;
240
+ }
241
+ /**
242
+ * Data passed to interaction hooks
243
+ */
244
+ export interface InteractionEvent {
245
+ /** Event type */
246
+ type: "mousedown" | "mouseup" | "mousemove" | "wheel" | "click" | "dblclick" | "contextmenu";
247
+ /** Pixel coordinates */
248
+ pixelX: number;
249
+ pixelY: number;
250
+ /** Data coordinates (if in plot area) */
251
+ dataX?: number;
252
+ dataY?: number;
253
+ /** Whether event is inside plot area */
254
+ inPlotArea: boolean;
255
+ /** Original DOM event */
256
+ originalEvent: MouseEvent | WheelEvent;
257
+ /** Prevent default chart handling */
258
+ preventDefault(): void;
259
+ /** Whether default was prevented */
260
+ readonly defaultPrevented: boolean;
261
+ }
262
+ /**
263
+ * Data passed to zoom/pan hooks
264
+ */
265
+ export interface ViewChangeEvent {
266
+ /** Previous bounds */
267
+ previous: Readonly<Bounds>;
268
+ /** New bounds */
269
+ current: Readonly<Bounds>;
270
+ /** Change trigger */
271
+ trigger: "zoom" | "pan" | "autoScale" | "reset" | "api";
272
+ /** Whether animated */
273
+ animated: boolean;
274
+ }
275
+ /**
276
+ * Data passed to series change hooks
277
+ */
278
+ export interface SeriesChangeEvent {
279
+ /** The series that changed */
280
+ series: Series;
281
+ /** Change type */
282
+ changeType: "add" | "remove" | "update" | "style" | "visibility";
283
+ }
284
+ /**
285
+ * Data passed to data update hooks
286
+ */
287
+ export interface DataUpdateEvent {
288
+ /** Series ID */
289
+ seriesId: string;
290
+ /** Whether data was appended or replaced */
291
+ mode: "append" | "replace";
292
+ /** Number of points added/changed */
293
+ pointCount: number;
294
+ /** New data bounds */
295
+ bounds: Readonly<Bounds>;
296
+ }
297
+ /**
298
+ * Main plugin interface
299
+ *
300
+ * Plugins can implement any subset of these hooks.
301
+ * All hooks receive the PluginContext as first argument.
302
+ */
303
+ export interface ChartPlugin<TConfig = unknown> {
304
+ /** Plugin manifest with metadata */
305
+ readonly manifest: PluginManifest;
306
+ /**
307
+ * Called when plugin is attached to chart
308
+ * Use for initial setup, event subscriptions, UI creation
309
+ */
310
+ onInit?(ctx: PluginContext, config?: TConfig): void | Promise<void>;
311
+ /**
312
+ * Called when plugin is about to be removed
313
+ * Clean up resources, remove UI elements, unsubscribe events
314
+ */
315
+ onDestroy?(ctx: PluginContext): void;
316
+ /**
317
+ * Called when plugin configuration changes
318
+ */
319
+ onConfigChange?(ctx: PluginContext, newConfig: TConfig, oldConfig: TConfig): void;
320
+ /**
321
+ * Called before each render cycle
322
+ * Can be used to prepare data or skip render
323
+ * Return false to skip this frame
324
+ */
325
+ onBeforeRender?(ctx: PluginContext, event: BeforeRenderEvent): boolean | void;
326
+ /**
327
+ * Called after WebGL rendering, before overlay rendering
328
+ * Use for custom WebGL-based rendering
329
+ */
330
+ onRenderWebGL?(ctx: PluginContext, event: AfterRenderEvent): void;
331
+ /**
332
+ * Called after overlay rendering
333
+ * Use for custom 2D canvas rendering
334
+ */
335
+ onRenderOverlay?(ctx: PluginContext, event: AfterRenderEvent): void;
336
+ /**
337
+ * Called after all rendering is complete
338
+ */
339
+ onAfterRender?(ctx: PluginContext, event: AfterRenderEvent): void;
340
+ /**
341
+ * Called when any series data changes
342
+ */
343
+ onDataUpdate?(ctx: PluginContext, event: DataUpdateEvent): void;
344
+ /**
345
+ * Called when a series is added
346
+ */
347
+ onSeriesAdd?(ctx: PluginContext, event: SeriesChangeEvent): void;
348
+ /**
349
+ * Called when a series is removed
350
+ */
351
+ onSeriesRemove?(ctx: PluginContext, event: SeriesChangeEvent): void;
352
+ /**
353
+ * Called when series style/visibility changes
354
+ */
355
+ onSeriesChange?(ctx: PluginContext, event: SeriesChangeEvent): void;
356
+ /**
357
+ * Called when view bounds change (zoom/pan)
358
+ */
359
+ onViewChange?(ctx: PluginContext, event: ViewChangeEvent): void;
360
+ /**
361
+ * Called when chart is resized
362
+ */
363
+ onResize?(ctx: PluginContext, size: {
364
+ width: number;
365
+ height: number;
366
+ }): void;
367
+ /**
368
+ * Called when theme changes
369
+ */
370
+ onThemeChange?(ctx: PluginContext, theme: ChartTheme): void;
371
+ /**
372
+ * Called for all mouse/touch interactions
373
+ * Return false to prevent default chart handling
374
+ */
375
+ onInteraction?(ctx: PluginContext, event: InteractionEvent): boolean | void;
376
+ /**
377
+ * Called when selection changes
378
+ */
379
+ onSelectionChange?(ctx: PluginContext, points: readonly SelectedPoint[]): void;
380
+ /**
381
+ * Called when chart state is being serialized
382
+ * Return plugin-specific state to include
383
+ */
384
+ onSerialize?(ctx: PluginContext): unknown;
385
+ /**
386
+ * Called when chart state is being deserialized
387
+ * Restore plugin state from saved data
388
+ */
389
+ onDeserialize?(ctx: PluginContext, data: unknown): void;
390
+ /**
391
+ * Expose public API for other plugins or user code
392
+ * Accessible via ctx.getPlugin<MyPlugin>('my-plugin').api
393
+ */
394
+ readonly api?: Record<string, unknown>;
395
+ }
396
+ /**
397
+ * Factory function to create plugin instances
398
+ * Useful for plugins that need configuration
399
+ */
400
+ export type PluginFactory<TConfig = unknown> = (config?: TConfig) => ChartPlugin<TConfig>;
401
+ /**
402
+ * Type helper for creating typed plugin factories
403
+ */
404
+ export type TypedPlugin<T extends ChartPlugin> = T;
405
+ /**
406
+ * Plugin manager interface
407
+ */
408
+ export interface PluginManager {
409
+ /** Register a plugin */
410
+ use<TConfig>(plugin: ChartPlugin<TConfig> | PluginFactory<TConfig>, config?: TConfig): Promise<void>;
411
+ /** Remove a plugin by name */
412
+ remove(name: string): Promise<boolean>;
413
+ /** Get a plugin by name */
414
+ get<T extends ChartPlugin = ChartPlugin>(name: string): T | undefined;
415
+ /** Check if a plugin is loaded */
416
+ has(name: string): boolean;
417
+ /** Get all loaded plugin names */
418
+ getNames(): string[];
419
+ /** Get all loaded plugin manifests */
420
+ getManifests(): PluginManifest[];
421
+ /** Update plugin configuration */
422
+ configure<TConfig>(name: string, config: TConfig): void;
423
+ /** Notify all plugins of an event */
424
+ notify(hook: string, ...args: unknown[]): void;
425
+ /** Destroy all plugins and cleanup */
426
+ destroy(): void;
427
+ }
428
+ /**
429
+ * Registration entry for global plugin registry
430
+ */
431
+ export interface PluginRegistryEntry {
432
+ manifest: PluginManifest;
433
+ factory: PluginFactory;
434
+ }
435
+ /**
436
+ * Global plugin registry for third-party plugins
437
+ */
438
+ export interface PluginRegistry {
439
+ /** Register a plugin globally */
440
+ register(entry: PluginRegistryEntry): void;
441
+ /** Unregister a plugin */
442
+ unregister(name: string): boolean;
443
+ /** Get a registered plugin factory */
444
+ get(name: string): PluginFactory | undefined;
445
+ /** List all registered plugins */
446
+ list(): PluginManifest[];
447
+ /** Search plugins by capability */
448
+ findByCapability(capability: PluginCapability): PluginManifest[];
449
+ /** Search plugins by tag */
450
+ findByTag(tag: string): PluginManifest[];
451
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Video Recorder plugin exports
3
+ * @module plugins/video-recorder
4
+ */
5
+ export { PluginVideoRecorder, default } from './index';
6
+ export type { PluginVideoRecorderConfig, VideoRecorderAPI, VideoRecorderOptions, VideoFormat, RecordingMetadata, } from './types';
@@ -0,0 +1,6 @@
1
+ import { PluginVideoRecorderConfig } from './types';
2
+ import { ChartPlugin } from '../types';
3
+
4
+ export declare function PluginVideoRecorder(userConfig?: Partial<PluginVideoRecorderConfig>): ChartPlugin<PluginVideoRecorderConfig>;
5
+ export default PluginVideoRecorder;
6
+ export type { PluginVideoRecorderConfig, VideoRecorderAPI, VideoRecorderOptions, } from './types';
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @fileoverview Types for Video Recorder plugin
3
+ * @module plugins/video-recorder/types
4
+ */
5
+ export type VideoFormat = "webm" | "mp4";
6
+ export interface VideoRecorderOptions {
7
+ /** Video format (default: 'webm') */
8
+ format?: VideoFormat;
9
+ /** Frame rate in FPS (default: 30) */
10
+ fps?: number;
11
+ /** Video bitrate in bits per second (default: 2.5Mbps) */
12
+ bitrate?: number;
13
+ /** Whether to include a white background if chart is transparent */
14
+ fillBackground?: boolean;
15
+ /** Background color if fillBackground is true */
16
+ backgroundColor?: string;
17
+ /** Quality for webm/mp4 (0-1) */
18
+ quality?: number;
19
+ }
20
+ export interface RecordingMetadata {
21
+ /** Duration of the recording in seconds */
22
+ duration: number;
23
+ /** Number of frames recorded */
24
+ frameCount: number;
25
+ /** Width of the video */
26
+ width: number;
27
+ /** Height of the video */
28
+ height: number;
29
+ /** Timestamp of the recording */
30
+ timestamp: number;
31
+ }
32
+ export interface VideoRecorderAPI {
33
+ /** Start recording the chart area */
34
+ start(): void;
35
+ /** Stop recording and return the video blob */
36
+ stop(): Promise<Blob>;
37
+ /** Pause recording */
38
+ pause(): void;
39
+ /** Resume recording */
40
+ resume(): void;
41
+ /** Whether the recorder is currently active */
42
+ isRecording(): boolean;
43
+ /** Whether the recorder is currently paused */
44
+ isPaused(): boolean;
45
+ /** Update current recording options */
46
+ updateConfig(config: Partial<VideoRecorderOptions>): void;
47
+ }
48
+ export interface PluginVideoRecorderConfig extends VideoRecorderOptions {
49
+ /** Automatically download the file after stopping (default: false) */
50
+ autoDownload?: boolean;
51
+ /** Filename for auto-download (default: 'chart-recording') */
52
+ filename?: string;
53
+ /** Enable debug logging (default: false) */
54
+ debug?: boolean;
55
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Virtualization plugin exports
3
+ * @module plugins/virtualization
4
+ */
5
+ export { PluginVirtualization, default } from './index';
6
+ export type { PluginVirtualizationConfig, VirtualizationAPI, VirtualizationStats, VirtualizationMode, VirtualizationStrategy, } from './types';
@@ -0,0 +1,6 @@
1
+ import { PluginVirtualizationConfig } from './types';
2
+ import { ChartPlugin } from '../types';
3
+
4
+ export declare function PluginVirtualization(userConfig?: Partial<PluginVirtualizationConfig>): ChartPlugin<PluginVirtualizationConfig>;
5
+ export default PluginVirtualization;
6
+ export type { PluginVirtualizationConfig, VirtualizationAPI, VirtualizationStats, VirtualizationMode, VirtualizationStrategy, } from './types';
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @fileoverview Types for data virtualization plugin
3
+ * @module plugins/virtualization/types
4
+ */
5
+ export type VirtualizationMode = "lod" | "bins" | "hybrid";
6
+ export type VirtualizationStrategy = "lttb" | "minmax";
7
+ export interface PluginVirtualizationConfig {
8
+ /** Enable virtualization (default: true) */
9
+ enabled?: boolean;
10
+ /** Virtualization mode (default: 'lod') */
11
+ mode?: VirtualizationMode;
12
+ /** Target points or 'auto' (default: 'auto') */
13
+ targetPoints?: number | "auto";
14
+ /** Points per pixel when targetPoints is 'auto' (default: 2) */
15
+ pointsPerPixel?: number;
16
+ /** LOD levels (factors) used for heuristic switching (default: [1, 4, 8, 16]) */
17
+ lodLevels?: number[];
18
+ /** Downsample strategy (default: 'lttb') */
19
+ strategy?: VirtualizationStrategy;
20
+ /** Keep original data cached in plugin (default: true) */
21
+ reuseOriginalData?: boolean;
22
+ /** Sync updates with lazy-load (default: true) */
23
+ syncWithLazyLoad?: boolean;
24
+ /** Include series IDs (default: all) */
25
+ includeSeries?: string[];
26
+ /** Exclude series IDs (default: none) */
27
+ excludeSeries?: string[];
28
+ /** Debug logging (default: false) */
29
+ debug?: boolean;
30
+ }
31
+ export interface VirtualizationStats {
32
+ seriesId: string;
33
+ originalPoints: number;
34
+ renderedPoints: number;
35
+ targetPoints: number;
36
+ lastUpdated: number;
37
+ mode: VirtualizationMode;
38
+ strategy: VirtualizationStrategy;
39
+ }
40
+ export interface VirtualizationAPI {
41
+ enable(): void;
42
+ disable(): void;
43
+ isEnabled(): boolean;
44
+ updateConfig(config: Partial<PluginVirtualizationConfig>): void;
45
+ invalidate(seriesId?: string): void;
46
+ getStats(seriesId: string): VirtualizationStats | null;
47
+ getAllStats(): VirtualizationStats[];
48
+ }
@@ -0,0 +1,60 @@
1
+ import { CSSProperties } from 'react';
2
+ import { UseSciPlotOptions } from './useSciPlot';
3
+ import { ZoomOptions, CursorOptions, Bounds } from '../types';
4
+ import { Chart } from '../core/Chart';
5
+
6
+ export interface SciPlotSeries {
7
+ id: string;
8
+ x: Float32Array | Float64Array;
9
+ y: Float32Array | Float64Array;
10
+ color?: string;
11
+ width?: number;
12
+ visible?: boolean;
13
+ }
14
+ export interface SciPlotProps extends UseSciPlotOptions {
15
+ /** Series data to display */
16
+ series?: SciPlotSeries[];
17
+ /** Zoom state (controlled) */
18
+ zoom?: ZoomOptions;
19
+ /** Callback when zoom changes */
20
+ onZoomChange?: (bounds: Bounds) => void;
21
+ /** Cursor configuration */
22
+ cursor?: CursorOptions;
23
+ /** Container width */
24
+ width?: number | string;
25
+ /** Container height */
26
+ height?: number | string;
27
+ /** Additional class name */
28
+ className?: string;
29
+ /** Additional styles */
30
+ style?: CSSProperties;
31
+ /** Debug mode - shows FPS counter */
32
+ debug?: boolean;
33
+ }
34
+ export interface SciPlotRef {
35
+ /** Get the chart instance */
36
+ getChart: () => Chart | null;
37
+ /** Reset zoom to show all data */
38
+ resetZoom: () => void;
39
+ /** Get current bounds */
40
+ getBounds: () => Bounds | null;
41
+ }
42
+ /**
43
+ * SciPlot React Component
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * <SciPlot
48
+ * series={[
49
+ * { id: 'cv-1', x: potentialData, y: currentData, color: '#ff0055' }
50
+ * ]}
51
+ * xAxis={{ label: 'E / V' }}
52
+ * yAxis={{ label: 'I / A' }}
53
+ * height={400}
54
+ * cursor={{ enabled: true, snap: true }}
55
+ * onZoomChange={(bounds) => console.log('Zoom:', bounds)}
56
+ * />
57
+ * ```
58
+ */
59
+ export declare const SciPlot: import('react').ForwardRefExoticComponent<SciPlotProps & import('react').RefAttributes<SciPlotRef>>;
60
+ export default SciPlot;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * React bindings for Sci Plot
3
+ */
4
+ export { SciPlot, type SciPlotProps, type SciPlotRef, type SciPlotSeries } from './SciPlot';
5
+ export { useSciPlot, type UseSciPlotOptions, type UseSciPlotReturn } from './useSciPlot';