scichart 3.1.348 → 3.2.0-beta

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 (314) hide show
  1. package/Charting/ChartModifiers/ChartModifierBase.d.ts +15 -1
  2. package/Charting/ChartModifiers/ChartModifierBase.js +65 -7
  3. package/Charting/ChartModifiers/CursorModifier.js +13 -1
  4. package/Charting/ChartModifiers/LegendModifier.d.ts +1 -1
  5. package/Charting/ChartModifiers/LegendModifier.js +8 -6
  6. package/Charting/ChartModifiers/PinchZoomModifier.d.ts +38 -8
  7. package/Charting/ChartModifiers/PinchZoomModifier.js +103 -40
  8. package/Charting/ChartModifiers/RolloverModifier.js +10 -3
  9. package/Charting/ChartModifiers/RubberBandXyZoomModifier.d.ts +1 -1
  10. package/Charting/ChartModifiers/SeriesSelectionModifier.js +32 -24
  11. package/Charting/ChartModifiers/ZoomPanModifier.d.ts +13 -38
  12. package/Charting/ChartModifiers/ZoomPanModifier.js +54 -99
  13. package/Charting/Drawing/BaseCache.d.ts +2 -1
  14. package/Charting/Drawing/BaseCache.js +40 -7
  15. package/Charting/Drawing/RenderSurface.d.ts +1 -0
  16. package/Charting/Drawing/RenderSurface.js +5 -1
  17. package/Charting/Drawing/SolidBrushCache.d.ts +2 -1
  18. package/Charting/Drawing/SolidBrushCache.js +23 -3
  19. package/Charting/Drawing/WebGlBrush.d.ts +2 -1
  20. package/Charting/Drawing/WebGlBrush.js +22 -3
  21. package/Charting/Drawing/WebGlPen.d.ts +2 -1
  22. package/Charting/Drawing/WebGlPen.js +23 -4
  23. package/Charting/Drawing/WebGlRenderContext2D.d.ts +4 -3
  24. package/Charting/Drawing/WebGlRenderContext2D.js +26 -7
  25. package/Charting/Model/BaseDataSeries.d.ts +67 -2
  26. package/Charting/Model/BaseDataSeries.js +193 -42
  27. package/Charting/Model/BaseHeatmapDataSeries.js +1 -1
  28. package/Charting/Model/ChartData/SeriesInfo.d.ts +16 -0
  29. package/Charting/Model/ChartData/SeriesInfo.js +7 -0
  30. package/Charting/Model/ChartData/XyzSeriesInfo.d.ts +8 -0
  31. package/Charting/Model/ChartData/XyzSeriesInfo.js +36 -0
  32. package/Charting/Model/DoubleVectorProvider.d.ts +19 -0
  33. package/Charting/Model/DoubleVectorProvider.js +95 -0
  34. package/Charting/Model/HlcDataSeries.d.ts +3 -0
  35. package/Charting/Model/HlcDataSeries.js +44 -15
  36. package/Charting/Model/IDataSeries.d.ts +23 -0
  37. package/Charting/Model/NonUniformHeatmapDataSeries.js +2 -0
  38. package/Charting/Model/OhlcDataSeries.d.ts +3 -0
  39. package/Charting/Model/OhlcDataSeries.js +56 -24
  40. package/Charting/Model/PointSeries/BasePointSeriesResampled.d.ts +4 -5
  41. package/Charting/Model/PointSeries/BasePointSeriesResampled.js +29 -21
  42. package/Charting/Model/PointSeries/BasePointSeriesWrapped.d.ts +2 -0
  43. package/Charting/Model/PointSeries/BasePointSeriesWrapped.js +2 -0
  44. package/Charting/Model/PointSeries/IPointSeries.d.ts +2 -1
  45. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.js +1 -1
  46. package/Charting/Model/PointSeries/XyPointSeriesWrapped.d.ts +2 -1
  47. package/Charting/Model/PointSeries/XyPointSeriesWrapped.js +2 -2
  48. package/Charting/Model/PointSeries/XyyPointSeriesResampled.js +1 -1
  49. package/Charting/Model/UniformHeatmapDataSeries.d.ts +31 -11
  50. package/Charting/Model/UniformHeatmapDataSeries.js +72 -4
  51. package/Charting/Model/XyDataSeries.d.ts +0 -8
  52. package/Charting/Model/XyDataSeries.js +21 -5
  53. package/Charting/Model/XyTextDataSeries.d.ts +2 -0
  54. package/Charting/Model/XyTextDataSeries.js +35 -4
  55. package/Charting/Model/XyyDataSeries.d.ts +2 -0
  56. package/Charting/Model/XyyDataSeries.js +35 -10
  57. package/Charting/Model/XyzDataSeries.d.ts +3 -0
  58. package/Charting/Model/XyzDataSeries.js +36 -10
  59. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.d.ts +3 -5
  60. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.js +5 -7
  61. package/Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase.d.ts +2 -1
  62. package/Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase.js +29 -9
  63. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.d.ts +3 -5
  64. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.js +5 -7
  65. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.d.ts +14 -10
  66. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js +105 -69
  67. package/Charting/Numerics/Resamplers/ResamplingParams.d.ts +4 -2
  68. package/Charting/Numerics/Resamplers/ResamplingParams.js +12 -7
  69. package/Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider.d.ts +5 -0
  70. package/Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider.js +7 -0
  71. package/Charting/Numerics/TickProviders/NumericTickProvider.js +3 -4
  72. package/Charting/Numerics/TickProviders/TickProvider.d.ts +5 -0
  73. package/Charting/Numerics/TickProviders/TickProvider.js +7 -0
  74. package/Charting/Services/SciChartRenderer.js +15 -5
  75. package/Charting/Services/TitleRenderer.d.ts +2 -1
  76. package/Charting/Services/TitleRenderer.js +35 -14
  77. package/Charting/Visuals/Annotations/AdornerLayer.d.ts +1 -1
  78. package/Charting/Visuals/Annotations/AnnotationBase.d.ts +6 -6
  79. package/Charting/Visuals/Annotations/AnnotationBase.js +81 -61
  80. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +8 -0
  81. package/Charting/Visuals/Annotations/IAnnotation.d.ts +9 -4
  82. package/Charting/Visuals/Annotations/IAnnotation.js +6 -0
  83. package/Charting/Visuals/Annotations/LineAnnotation.js +3 -1
  84. package/Charting/Visuals/Annotations/RenderContextAnnotationBase.d.ts +5 -0
  85. package/Charting/Visuals/Annotations/RenderContextAnnotationBase.js +16 -0
  86. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +6 -0
  87. package/Charting/Visuals/Annotations/constants.d.ts +1 -0
  88. package/Charting/Visuals/Annotations/constants.js +1 -0
  89. package/Charting/Visuals/Axis/AxisBase2D.d.ts +20 -5
  90. package/Charting/Visuals/Axis/AxisBase2D.js +46 -10
  91. package/Charting/Visuals/Axis/AxisCore.d.ts +4 -1
  92. package/Charting/Visuals/Axis/AxisCore.js +100 -54
  93. package/Charting/Visuals/Axis/AxisRenderer.d.ts +2 -1
  94. package/Charting/Visuals/Axis/AxisRenderer.js +40 -16
  95. package/Charting/Visuals/Axis/AxisTitleRenderer.d.ts +1 -0
  96. package/Charting/Visuals/Axis/AxisTitleRenderer.js +4 -0
  97. package/Charting/Visuals/Axis/CategoryAxisBase.js +4 -4
  98. package/Charting/Visuals/Axis/DeltaCalculator/DateTimeDeltaCalculator.js +14 -9
  99. package/Charting/Visuals/Axis/DeltaCalculator/DeltaCalculator.d.ts +5 -0
  100. package/Charting/Visuals/Axis/DeltaCalculator/DeltaCalculator.js +7 -0
  101. package/Charting/Visuals/Axis/LabelProvider/LabelCache.d.ts +2 -2
  102. package/Charting/Visuals/Axis/LabelProvider/LabelCache.js +8 -1
  103. package/Charting/Visuals/Axis/LabelProvider/LabelProvider.d.ts +7 -1
  104. package/Charting/Visuals/Axis/LabelProvider/LabelProvider.js +34 -8
  105. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.d.ts +4 -2
  106. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.js +8 -2
  107. package/Charting/Visuals/Axis/LabelProvider/PieLabelProvider.d.ts +1 -0
  108. package/Charting/Visuals/Axis/LabelProvider/PieLabelProvider.js +1 -0
  109. package/Charting/Visuals/HeatmapLegend.d.ts +3 -2
  110. package/Charting/Visuals/HeatmapLegend.js +33 -12
  111. package/Charting/Visuals/Helpers/NativeObject.d.ts +8 -5
  112. package/Charting/Visuals/Helpers/NativeObject.js +42 -21
  113. package/Charting/Visuals/Helpers/drawLabel.js +3 -1
  114. package/Charting/Visuals/I2DSurfaceOptions.d.ts +0 -15
  115. package/Charting/Visuals/Legend/SciChartLegendBase.d.ts +3 -1
  116. package/Charting/Visuals/Legend/SciChartLegendBase.js +35 -14
  117. package/Charting/Visuals/Legend/SciChartPieLegend.js +1 -1
  118. package/Charting/Visuals/PointMarkers/BasePointMarker.d.ts +13 -1
  119. package/Charting/Visuals/PointMarkers/BasePointMarker.js +72 -19
  120. package/Charting/Visuals/PointMarkers/Constants.d.ts +2 -1
  121. package/Charting/Visuals/PointMarkers/Constants.js +1 -0
  122. package/Charting/Visuals/PointMarkers/IPointMarker.d.ts +2 -0
  123. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.js +4 -1
  124. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +1 -1
  125. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +8 -7
  126. package/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.d.ts +1 -0
  127. package/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.js +5 -0
  128. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js +10 -9
  129. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +2 -1
  130. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +101 -69
  131. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +13 -4
  132. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +12 -3
  133. package/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.d.ts +2 -0
  134. package/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.js +5 -0
  135. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.js +6 -0
  136. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.d.ts +1 -0
  137. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.js +18 -5
  138. package/Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider.js +0 -1
  139. package/Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider.js +8 -2
  140. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.d.ts +1 -0
  141. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +35 -16
  142. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.d.ts +2 -1
  143. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +62 -33
  144. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.d.ts +1 -0
  145. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +30 -9
  146. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.d.ts +1 -0
  147. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +37 -16
  148. package/Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers.d.ts +47 -0
  149. package/Charting/Visuals/RenderableSeries/DrawingProviders/HeatmapHelpers.js +258 -0
  150. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +26 -2
  151. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.d.ts +1 -0
  152. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +34 -15
  153. package/Charting/Visuals/RenderableSeries/DrawingProviders/NonUniformHeatmapDrawingProvider.js +5 -230
  154. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.d.ts +1 -0
  155. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js +62 -37
  156. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +30 -3
  157. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.d.ts +1 -0
  158. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +4 -1
  159. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.d.ts +0 -2
  160. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js +0 -4
  161. package/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.d.ts +3 -0
  162. package/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.js +10 -0
  163. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.d.ts +4 -0
  164. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.js +7 -0
  165. package/Charting/Visuals/RenderableSeries/HitTest/HitTestInfo.d.ts +4 -0
  166. package/Charting/Visuals/RenderableSeries/HitTest/HitTestInfo.js +9 -0
  167. package/Charting/Visuals/RenderableSeries/ShaderEffect.d.ts +3 -2
  168. package/Charting/Visuals/RenderableSeries/ShaderEffect.js +29 -9
  169. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +7 -0
  170. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +7 -0
  171. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +7 -0
  172. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +3 -0
  173. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +0 -2
  174. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +4 -4
  175. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.d.ts +1 -0
  176. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.js +8 -0
  177. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.d.ts +1 -2
  178. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js +8 -3
  179. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.d.ts +3 -1
  180. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.js +30 -10
  181. package/Charting/Visuals/SciChartDefaults.d.ts +10 -0
  182. package/Charting/Visuals/SciChartDefaults.js +10 -0
  183. package/Charting/Visuals/SciChartOverview.d.ts +2 -1
  184. package/Charting/Visuals/SciChartOverview.js +28 -8
  185. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.d.ts +10 -3
  186. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +118 -60
  187. package/Charting/Visuals/SciChartSurface.d.ts +4 -36
  188. package/Charting/Visuals/SciChartSurface.js +48 -61
  189. package/Charting/Visuals/SciChartSurfaceBase.d.ts +99 -13
  190. package/Charting/Visuals/SciChartSurfaceBase.js +155 -32
  191. package/Charting/Visuals/TextureManager/CanvasTexture.d.ts +2 -1
  192. package/Charting/Visuals/TextureManager/CanvasTexture.js +37 -17
  193. package/Charting/Visuals/TextureManager/TextureManager.d.ts +2 -1
  194. package/Charting/Visuals/TextureManager/TextureManager.js +27 -7
  195. package/Charting/Visuals/createMaster.d.ts +4 -2
  196. package/Charting/Visuals/createMaster.js +92 -28
  197. package/Charting/Visuals/createSingle.d.ts +0 -2
  198. package/Charting/Visuals/createSingle.js +44 -9
  199. package/Charting/Visuals/licenseManager2D.d.ts +7 -5
  200. package/Charting/Visuals/licenseManager2D.js +105 -53
  201. package/Charting/Visuals/loader.js +3 -1
  202. package/Charting/Visuals/sciChartInitCommon.d.ts +1 -1
  203. package/Charting/Visuals/sciChartInitCommon.js +5 -1
  204. package/Charting3D/CameraController.d.ts +1 -1
  205. package/Charting3D/CameraController.js +21 -7
  206. package/Charting3D/ChartModifiers/ChartModifierBase3D.d.ts +1 -0
  207. package/Charting3D/ChartModifiers/ChartModifierBase3D.js +4 -1
  208. package/Charting3D/ChartModifiers/OrbitModifier3D.d.ts +17 -5
  209. package/Charting3D/ChartModifiers/OrbitModifier3D.js +62 -26
  210. package/Charting3D/ChartModifiers/PinchZoomModifier3D.d.ts +81 -0
  211. package/Charting3D/ChartModifiers/PinchZoomModifier3D.js +164 -0
  212. package/Charting3D/ChartModifiers/TooltipModifier3D.d.ts +87 -0
  213. package/Charting3D/ChartModifiers/TooltipModifier3D.js +391 -0
  214. package/Charting3D/I3DSurfaceOptions.d.ts +10 -0
  215. package/Charting3D/I3DSurfaceOptions.js +2 -0
  216. package/Charting3D/Model/DataSeries/BaseDataSeries3D.d.ts +2 -1
  217. package/Charting3D/Model/DataSeries/BaseDataSeries3D.js +27 -6
  218. package/Charting3D/Model/DataSeries/UniformGridDataSeries3D.d.ts +8 -0
  219. package/Charting3D/Model/DataSeries/UniformGridDataSeries3D.js +12 -0
  220. package/Charting3D/Model/DataSeries/XyzDataSeries3D.d.ts +2 -2
  221. package/Charting3D/Model/DataSeries/XyzDataSeries3D.js +1 -1
  222. package/Charting3D/Vector3.d.ts +5 -0
  223. package/Charting3D/Vector3.js +7 -0
  224. package/Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D.d.ts +88 -0
  225. package/Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D.js +291 -0
  226. package/Charting3D/Visuals/Axis/AxisBase3D.d.ts +21 -2
  227. package/Charting3D/Visuals/Axis/AxisBase3D.js +48 -18
  228. package/Charting3D/Visuals/Axis/AxisBase3DLabelStyle.js +2 -1
  229. package/Charting3D/Visuals/Axis/AxisCubeEntity.d.ts +0 -4
  230. package/Charting3D/Visuals/Axis/AxisCubeEntity.js +3 -6
  231. package/Charting3D/Visuals/Axis/IAxisDescriptor.d.ts +2 -2
  232. package/Charting3D/Visuals/Axis/IAxisDescriptor.js +2 -2
  233. package/Charting3D/Visuals/Primitives/BaseSceneEntity3D.d.ts +41 -30
  234. package/Charting3D/Visuals/Primitives/BaseSceneEntity3D.js +78 -26
  235. package/Charting3D/Visuals/Primitives/CrosshairLinesSceneEntity.d.ts +47 -0
  236. package/Charting3D/Visuals/Primitives/CrosshairLinesSceneEntity.js +106 -0
  237. package/Charting3D/Visuals/Primitives/EntityIdProvider.d.ts +29 -0
  238. package/Charting3D/Visuals/Primitives/EntityIdProvider.js +28 -0
  239. package/Charting3D/Visuals/Primitives/PointLine3DSceneEntity.d.ts +51 -0
  240. package/Charting3D/Visuals/Primitives/PointLine3DSceneEntity.js +188 -0
  241. package/Charting3D/Visuals/Primitives/RenderableSeriesSceneEntity.d.ts +12 -0
  242. package/Charting3D/Visuals/Primitives/RenderableSeriesSceneEntity.js +14 -0
  243. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.d.ts +11 -0
  244. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.js +18 -0
  245. package/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.d.ts +3 -0
  246. package/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.js +15 -0
  247. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.d.ts +16 -1
  248. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.js +64 -12
  249. package/Charting3D/Visuals/RenderableSeries/Constants.d.ts +2 -0
  250. package/Charting3D/Visuals/RenderableSeries/Constants.js +2 -0
  251. package/Charting3D/Visuals/RenderableSeries/ESeriesType.d.ts +2 -1
  252. package/Charting3D/Visuals/RenderableSeries/ESeriesType.js +1 -0
  253. package/Charting3D/Visuals/RenderableSeries/HitTestInfo3D.d.ts +37 -0
  254. package/Charting3D/Visuals/RenderableSeries/HitTestInfo3D.js +22 -0
  255. package/Charting3D/Visuals/RenderableSeries/PointLineRenderableSeries3D.d.ts +64 -0
  256. package/Charting3D/Visuals/RenderableSeries/PointLineRenderableSeries3D.js +105 -0
  257. package/Charting3D/Visuals/RenderableSeries/SeriesInfo3D.d.ts +51 -0
  258. package/Charting3D/Visuals/RenderableSeries/SeriesInfo3D.js +32 -0
  259. package/Charting3D/Visuals/RenderableSeries/SurfaceMeshSeriesInfo3D.d.ts +15 -0
  260. package/Charting3D/Visuals/RenderableSeries/SurfaceMeshSeriesInfo3D.js +112 -0
  261. package/Charting3D/Visuals/RenderableSeries/XyzSeriesInfo3D.d.ts +20 -0
  262. package/Charting3D/Visuals/RenderableSeries/XyzSeriesInfo3D.js +60 -0
  263. package/Charting3D/Visuals/RootSceneEntity.d.ts +0 -4
  264. package/Charting3D/Visuals/RootSceneEntity.js +3 -8
  265. package/Charting3D/Visuals/SciChart3DRenderer.d.ts +2 -0
  266. package/Charting3D/Visuals/SciChart3DRenderer.js +49 -0
  267. package/Charting3D/Visuals/SciChart3DSurface.d.ts +44 -3
  268. package/Charting3D/Visuals/SciChart3DSurface.js +103 -9
  269. package/Charting3D/Visuals/ViewportManager3DBase.d.ts +4 -0
  270. package/Charting3D/Visuals/ViewportManager3DBase.js +7 -1
  271. package/Charting3D/Visuals/createMaster3d.d.ts +1 -2
  272. package/Charting3D/Visuals/createMaster3d.js +76 -14
  273. package/Charting3D/Visuals/createSingle3d.js +34 -4
  274. package/Charting3D/Visuals/licenseManager3D.js +29 -25
  275. package/Core/BuildStamp.d.ts +1 -1
  276. package/Core/BuildStamp.js +2 -2
  277. package/Core/DeletableEntity.d.ts +28 -0
  278. package/Core/DeletableEntity.js +141 -0
  279. package/Core/Globals.d.ts +11 -0
  280. package/Core/Globals.js +13 -0
  281. package/Core/Guard.d.ts +6 -0
  282. package/Core/Guard.js +10 -0
  283. package/Core/Mouse/MouseManager.d.ts +23 -0
  284. package/Core/Mouse/MouseManager.js +47 -0
  285. package/Core/Telemetry.js +4 -6
  286. package/_wasm/scichart.browser.js +1 -1
  287. package/_wasm/scichart2d.data +0 -0
  288. package/_wasm/scichart2d.js +4 -294
  289. package/_wasm/scichart2d.wasm +0 -0
  290. package/_wasm/scichart3d.data +0 -0
  291. package/_wasm/scichart3d.js +4 -294
  292. package/_wasm/scichart3d.wasm +0 -0
  293. package/index.d.ts +43 -2
  294. package/index.js +89 -27
  295. package/index.min.js +1 -1
  296. package/package.json +3 -4
  297. package/types/ChartModifierType.d.ts +2 -0
  298. package/types/ChartModifierType.js +2 -0
  299. package/types/DefaultRenderLayer.d.ts +9 -8
  300. package/types/DefaultRenderLayer.js +9 -8
  301. package/types/NumberArray.d.ts +1 -0
  302. package/types/NumberArray.js +12 -1
  303. package/types/SceneEntityType.d.ts +13 -5
  304. package/types/SceneEntityType.js +13 -5
  305. package/types/TSciChart.d.ts +37 -8
  306. package/types/TSciChart3D.d.ts +126 -7
  307. package/types/licensingClasses.d.ts +2 -1
  308. package/types/licensingClasses.js +1 -0
  309. package/utils/MemoryUsageHelper.d.ts +45 -0
  310. package/utils/MemoryUsageHelper.js +171 -0
  311. package/utils/array.d.ts +8 -0
  312. package/utils/array.js +58 -1
  313. package/utils/logger.d.ts +2 -0
  314. package/utils/logger.js +11 -0
@@ -509,7 +509,7 @@ var BaseHeatmapDataSeries = /** @class */ (function () {
509
509
  };
510
510
  /** @inheritDoc */
511
511
  BaseHeatmapDataSeries.prototype.getIndicesRange = function (visibleRange, isCategoryData, downSearchMode, upSearchMode) {
512
- throw Error("getIndicesRange() method is not supported for BaseHeatmapDataSeries");
512
+ return undefined;
513
513
  };
514
514
  Object.defineProperty(BaseHeatmapDataSeries.prototype, "changeCount", {
515
515
  /** @inheritDoc */
@@ -2,11 +2,27 @@ import { Point } from "../../../Core/Point";
2
2
  import { HitTestInfo } from "../../Visuals/RenderableSeries/HitTest/HitTestInfo";
3
3
  import { IRenderableSeries } from "../../Visuals/RenderableSeries/IRenderableSeries";
4
4
  import { EDataSeriesType } from "../IDataSeries";
5
+ /**
6
+ * SeriesInfo is a data-structure which provides enriched information about a hit-test operation.
7
+ * It's derived by calling {@link BaseRenderableSeries.hitTestProvider.hitTest} (returns {@link HitTestInfo}) and then
8
+ * enriched by calling {@link BaseRenderableSeries.getSeriesInfo}. There is a class hierachy for {@link SeriesInfo} which
9
+ * is a different class depending on series type, e.g. line, mountain, scatter series has {@link XySeriesInfo},
10
+ * heatmap series as {@link HeatmapSeriesInfo} etc.
11
+ */
5
12
  export declare class SeriesInfo {
13
+ /**
14
+ * Gets the associated {@link IRenderableSeries | RenderableSeries} that this {@link SeriesInfo} was generated by
15
+ */
6
16
  readonly renderableSeries: IRenderableSeries;
7
17
  fill: string;
18
+ /**
19
+ * Gets the {@link EDataSeriesType} of the {@link BaseDataSeries | DataSeries} which is the result of the hit-test operation
20
+ */
8
21
  dataSeriesType: EDataSeriesType;
9
22
  stroke: string;
23
+ /**
24
+ * Gets the name of the {@link BaseDataSeries | DataSeries} which is the result of the hit-test operation
25
+ */
10
26
  seriesName: string;
11
27
  hitTestPointValues: Point;
12
28
  xValue: number;
@@ -2,6 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SeriesInfo = void 0;
4
4
  var SeriesType_1 = require("../../../types/SeriesType");
5
+ /**
6
+ * SeriesInfo is a data-structure which provides enriched information about a hit-test operation.
7
+ * It's derived by calling {@link BaseRenderableSeries.hitTestProvider.hitTest} (returns {@link HitTestInfo}) and then
8
+ * enriched by calling {@link BaseRenderableSeries.getSeriesInfo}. There is a class hierachy for {@link SeriesInfo} which
9
+ * is a different class depending on series type, e.g. line, mountain, scatter series has {@link XySeriesInfo},
10
+ * heatmap series as {@link HeatmapSeriesInfo} etc.
11
+ */
5
12
  var SeriesInfo = /** @class */ (function () {
6
13
  function SeriesInfo(renderableSeries, hitTestInfo) {
7
14
  var _a;
@@ -0,0 +1,8 @@
1
+ import { HitTestInfo } from "../../Visuals/RenderableSeries/HitTest/HitTestInfo";
2
+ import { IRenderableSeries } from "../../Visuals/RenderableSeries/IRenderableSeries";
3
+ import { SeriesInfo } from "./SeriesInfo";
4
+ export declare class XyzSeriesInfo extends SeriesInfo {
5
+ zValue: number;
6
+ constructor(renderableSeries: IRenderableSeries, hitTestInfo: HitTestInfo);
7
+ get formattedZValue(): string;
8
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.XyzSeriesInfo = void 0;
19
+ var SeriesInfo_1 = require("./SeriesInfo");
20
+ var XyzSeriesInfo = /** @class */ (function (_super) {
21
+ __extends(XyzSeriesInfo, _super);
22
+ function XyzSeriesInfo(renderableSeries, hitTestInfo) {
23
+ var _this = _super.call(this, renderableSeries, hitTestInfo) || this;
24
+ _this.zValue = hitTestInfo.zValue;
25
+ return _this;
26
+ }
27
+ Object.defineProperty(XyzSeriesInfo.prototype, "formattedZValue", {
28
+ get: function () {
29
+ return this.getYCursorFormattedValue(this.zValue);
30
+ },
31
+ enumerable: false,
32
+ configurable: true
33
+ });
34
+ return XyzSeriesInfo;
35
+ }(SeriesInfo_1.SeriesInfo));
36
+ exports.XyzSeriesInfo = XyzSeriesInfo;
@@ -0,0 +1,19 @@
1
+ import { NumberArray } from "../../types/NumberArray";
2
+ import { SCRTDoubleVector, SCRTFifoVector } from "../../types/TSciChart";
3
+ import { TSciChart } from "../Visuals/SciChartSurface";
4
+ export interface IDoubleVectorProvider {
5
+ capacity: number;
6
+ getDoubleVector(wasmContext: TSciChart): SCRTDoubleVector;
7
+ appendArray(wasmContext: TSciChart, destinationVector: SCRTDoubleVector, values: NumberArray): void;
8
+ }
9
+ export declare class DoubleVectorProvider implements IDoubleVectorProvider {
10
+ capacity: number;
11
+ getDoubleVector(wasmContext: TSciChart): SCRTDoubleVector;
12
+ appendArray(wasmContext: TSciChart, destinationVector: SCRTDoubleVector, jsArray: NumberArray): void;
13
+ }
14
+ export declare class FIFOVectorProvider implements IDoubleVectorProvider {
15
+ capacity: number;
16
+ constructor(fifoCapacity: number);
17
+ getDoubleVector(wasmContext: TSciChart): SCRTDoubleVector;
18
+ appendArray(wasmContext: TSciChart, destinationVector: SCRTFifoVector, jsArray: NumberArray): void;
19
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FIFOVectorProvider = exports.DoubleVectorProvider = void 0;
4
+ var NumberArray_1 = require("../../types/NumberArray");
5
+ var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
6
+ var DoubleVectorProvider = /** @class */ (function () {
7
+ function DoubleVectorProvider() {
8
+ }
9
+ DoubleVectorProvider.prototype.getDoubleVector = function (wasmContext) {
10
+ if (this.capacity) {
11
+ return new wasmContext.SCRTDoubleVector(this.capacity);
12
+ }
13
+ else {
14
+ return new wasmContext.SCRTDoubleVector();
15
+ }
16
+ };
17
+ DoubleVectorProvider.prototype.appendArray = function (wasmContext, destinationVector, jsArray) {
18
+ (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(wasmContext, destinationVector, jsArray);
19
+ };
20
+ return DoubleVectorProvider;
21
+ }());
22
+ exports.DoubleVectorProvider = DoubleVectorProvider;
23
+ // tslint:disable-next-line: max-classes-per-file
24
+ var FIFOVectorProvider = /** @class */ (function () {
25
+ function FIFOVectorProvider(fifoCapacity) {
26
+ this.capacity = fifoCapacity;
27
+ }
28
+ FIFOVectorProvider.prototype.getDoubleVector = function (wasmContext) {
29
+ return new wasmContext.SCRTFifoVector(this.capacity);
30
+ };
31
+ FIFOVectorProvider.prototype.appendArray = function (wasmContext, destinationVector, jsArray) {
32
+ var vectorSize = destinationVector.size();
33
+ var fifoCapacity = destinationVector.capacity();
34
+ var arraySize = jsArray.length;
35
+ var startIndex = destinationVector.getStartIndex();
36
+ //console.log(vectorSize, startIndex, fifoCapactiy, arraySize);
37
+ if (fifoCapacity >= vectorSize + arraySize) {
38
+ // Space to append all data. Use normal method
39
+ // Get pointer to destination
40
+ var bufferPointer = destinationVector.dataPtr(vectorSize);
41
+ // HEAPF64.set copies js array into buffer pointer
42
+ // @ts-ignore
43
+ wasmContext.HEAPF64.set(jsArray, bufferPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
44
+ destinationVector.notifyAppend(arraySize);
45
+ }
46
+ else if (arraySize > fifoCapacity) {
47
+ // new data is larger than buffer. Replace buffer with end of data
48
+ var dataIndex = arraySize - fifoCapacity;
49
+ var dataThatWillFit = (0, NumberArray_1.subArray)(jsArray, dataIndex);
50
+ var zeroPointer = destinationVector.dataPtrZero();
51
+ // @ts-ignore
52
+ wasmContext.HEAPF64.set(dataThatWillFit, zeroPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
53
+ destinationVector.notifyAppend(fifoCapacity);
54
+ }
55
+ else if (fifoCapacity > vectorSize) {
56
+ // buffer not full yet, but new data will overflow
57
+ var remainingCap = fifoCapacity - vectorSize;
58
+ var dataStart = (0, NumberArray_1.subArray)(jsArray, 0, remainingCap);
59
+ var endPointer = destinationVector.dataPtr(vectorSize);
60
+ // @ts-ignore
61
+ wasmContext.HEAPF64.set(dataStart, endPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
62
+ var dataEnd = (0, NumberArray_1.subArray)(jsArray, remainingCap);
63
+ var zeroPointer = destinationVector.dataPtrZero();
64
+ // @ts-ignore
65
+ wasmContext.HEAPF64.set(dataEnd, zeroPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
66
+ destinationVector.notifyAppend(arraySize);
67
+ }
68
+ else {
69
+ // buffer already full
70
+ if (startIndex + arraySize > fifoCapacity) {
71
+ // need to do two writes
72
+ var remainingCap = fifoCapacity - startIndex;
73
+ var dataStart = (0, NumberArray_1.subArray)(jsArray, 0, remainingCap);
74
+ var endPointer = destinationVector.dataPtr(0);
75
+ // @ts-ignore
76
+ wasmContext.HEAPF64.set(dataStart, endPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
77
+ var dataEnd = (0, NumberArray_1.subArray)(jsArray, remainingCap);
78
+ var zeroPointer = destinationVector.dataPtrZero();
79
+ // @ts-ignore
80
+ wasmContext.HEAPF64.set(dataEnd, zeroPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
81
+ }
82
+ else {
83
+ var endPointer = destinationVector.dataPtr(0);
84
+ // @ts-ignore
85
+ wasmContext.HEAPF64.set(jsArray, endPointer / appendDoubleVectorFromJsArray_1.SIZEOF_NUMBER);
86
+ }
87
+ destinationVector.notifyAppend(arraySize);
88
+ }
89
+ // const newSize = destinationVector.size();
90
+ // const newstartIndex = destinationVector.getStartIndex();
91
+ // console.log(newSize, newstartIndex);
92
+ };
93
+ return FIFOVectorProvider;
94
+ }());
95
+ exports.FIFOVectorProvider = FIFOVectorProvider;
@@ -176,6 +176,8 @@ export declare class HlcDataSeries extends BaseDataSeries {
176
176
  /** @inheritDoc */
177
177
  delete(): void;
178
178
  /** @inheritDoc */
179
+ createAnimationVectors(): void;
180
+ /** @inheritDoc */
179
181
  setInitialAnimationVectors(dataSeries?: HlcDataSeries): void;
180
182
  /** @inheritDoc */
181
183
  setFinalAnimationVectors(dataSeries?: HlcDataSeries): void;
@@ -185,5 +187,6 @@ export declare class HlcDataSeries extends BaseDataSeries {
185
187
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
186
188
  /** @inheritDoc */
187
189
  toJSON(excludeData?: boolean): any;
190
+ protected reserve(size: number): void;
188
191
  private getHlcValues;
189
192
  }
@@ -50,17 +50,19 @@ var HlcDataSeries = /** @class */ (function (_super) {
50
50
  var _this = _super.call(this, webAssemblyContext, options) || this;
51
51
  /** @inheritDoc */
52
52
  _this.type = IDataSeries_1.EDataSeriesType.Hlc;
53
- _this.highValues = new webAssemblyContext.SCRTDoubleVector();
54
- _this.lowValues = new webAssemblyContext.SCRTDoubleVector();
55
- _this.lInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
56
- _this.lFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
57
- _this.hInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
58
- _this.hFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
53
+ _this.highValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
54
+ _this.lowValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
59
55
  if (options === null || options === void 0 ? void 0 : options.xValues) {
60
56
  Guard_1.Guard.notNull(options.yValues, "options.yValues");
61
57
  Guard_1.Guard.notNull(options.highValues, "options.highValues");
62
58
  Guard_1.Guard.notNull(options.lowValues, "options.lowValues");
63
59
  _this.appendRange(options.xValues, options.yValues, options.highValues, options.lowValues, options.metadata);
60
+ if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {
61
+ _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
62
+ _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
63
+ _this.highValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
64
+ _this.lowValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
65
+ }
64
66
  }
65
67
  return _this;
66
68
  }
@@ -136,10 +138,10 @@ var HlcDataSeries = /** @class */ (function (_super) {
136
138
  // Push metadata should be done before push x values
137
139
  this.appendMetadataRange(metadata, xValues.length);
138
140
  // New implementation passing array from JS
139
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeX, xValues);
140
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeY, yValues);
141
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeH, hValues);
142
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeL, lValues);
141
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);
142
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeY, yValues);
143
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeH, hValues);
144
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeL, lValues);
143
145
  this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);
144
146
  }
145
147
  };
@@ -203,6 +205,7 @@ var HlcDataSeries = /** @class */ (function (_super) {
203
205
  HlcDataSeries.prototype.insert = function (startIndex, x, y, h, l, metadata) {
204
206
  if (!this.getIsDeleted()) {
205
207
  this.validateIndex(startIndex, "Start index is out of range");
208
+ this.throwIfFifo("insert");
206
209
  var nativeX = this.getNativeXValues();
207
210
  var nativeY = this.getNativeYValues();
208
211
  var nativeH = this.getNativeHighValues();
@@ -234,6 +237,7 @@ var HlcDataSeries = /** @class */ (function (_super) {
234
237
  Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(hValues) || (0, NumberArray_1.isTypedArray)(hValues), "hValues must be an array of numbers");
235
238
  Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(lValues) || (0, NumberArray_1.isTypedArray)(lValues), "lValues must be an array of numbers");
236
239
  this.validateIndex(startIndex, "Start index is out of range");
240
+ this.throwIfFifo("insertRange");
237
241
  Guard_1.Guard.arraysSameLengthArr([
238
242
  { arg: xValues, name: "xValues" },
239
243
  { arg: yValues, name: "yValues" },
@@ -262,6 +266,7 @@ var HlcDataSeries = /** @class */ (function (_super) {
262
266
  HlcDataSeries.prototype.removeAt = function (index) {
263
267
  if (!this.getIsDeleted()) {
264
268
  this.validateIndex(index);
269
+ this.throwIfFifo("removeAt");
265
270
  this.getNativeXValues().removeAt(index);
266
271
  this.getNativeYValues().removeAt(index);
267
272
  this.getNativeHighValues().removeAt(index);
@@ -279,6 +284,7 @@ var HlcDataSeries = /** @class */ (function (_super) {
279
284
  HlcDataSeries.prototype.removeRange = function (startIndex, count) {
280
285
  if (!this.getIsDeleted()) {
281
286
  this.validateIndex(startIndex, "Start index is out of range");
287
+ this.throwIfFifo("removeRange");
282
288
  this.getNativeXValues().removeRange(startIndex, count);
283
289
  this.getNativeYValues().removeRange(startIndex, count);
284
290
  this.getNativeHighValues().removeRange(startIndex, count);
@@ -460,6 +466,14 @@ var HlcDataSeries = /** @class */ (function (_super) {
460
466
  _super.prototype.delete.call(this);
461
467
  };
462
468
  /** @inheritDoc */
469
+ HlcDataSeries.prototype.createAnimationVectors = function () {
470
+ _super.prototype.createAnimationVectors.call(this);
471
+ this.lInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
472
+ this.lFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
473
+ this.hInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
474
+ this.hFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
475
+ };
476
+ /** @inheritDoc */
463
477
  HlcDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {
464
478
  _super.prototype.setInitialAnimationVectors.call(this, dataSeries);
465
479
  if (!dataSeries) {
@@ -513,11 +527,21 @@ var HlcDataSeries = /** @class */ (function (_super) {
513
527
  var yValues = [];
514
528
  var highValues = [];
515
529
  var lowValues = [];
516
- for (var i = 0; i < this.count(); i++) {
517
- xValues.push(this.xValues.get(i));
518
- yValues.push(this.yValues.get(i));
519
- highValues.push(this.highValues.get(i));
520
- lowValues.push(this.lowValues.get(i));
530
+ if (this.fifoCapacity && this.fifoSweeping) {
531
+ for (var i = 0; i < this.count(); i++) {
532
+ xValues.push(this.xValues.getRaw(i));
533
+ yValues.push(this.yValues.getRaw(i));
534
+ highValues.push(this.highValues.getRaw(i));
535
+ lowValues.push(this.lowValues.getRaw(i));
536
+ }
537
+ }
538
+ else {
539
+ for (var i = 0; i < this.count(); i++) {
540
+ xValues.push(this.xValues.get(i));
541
+ yValues.push(this.yValues.get(i));
542
+ highValues.push(this.highValues.get(i));
543
+ lowValues.push(this.lowValues.get(i));
544
+ }
521
545
  }
522
546
  var options = {
523
547
  xValues: xValues,
@@ -529,6 +553,11 @@ var HlcDataSeries = /** @class */ (function (_super) {
529
553
  }
530
554
  return json;
531
555
  };
556
+ HlcDataSeries.prototype.reserve = function (size) {
557
+ _super.prototype.reserve.call(this, size);
558
+ this.highValues.reserve(size);
559
+ this.lowValues.reserve(size);
560
+ };
532
561
  HlcDataSeries.prototype.getHlcValues = function (dataSeriesValueType) {
533
562
  var hValues;
534
563
  var lValues;
@@ -153,6 +153,29 @@ export interface IDataSeries extends IDeletable {
153
153
  * Set containsNaN = false for the performance optimization when the series has no NaNs
154
154
  */
155
155
  containsNaN: boolean;
156
+ /**
157
+ * Gets the maximum size of the dataSeries in FIFO (First In First Out) mode. This can only be set in the constructor options.
158
+ * If set, the dataSeries supports only append, appendRange, update and clear. Any data that is appended once the dataSeries has reached fifoCapacity will cause
159
+ * the oldest data to be discarded. This is a much more efficient than appending and removing for achieving scrolling data.
160
+ * Spline series and Stacked series currently do not support fifo mode.
161
+ * To get the scrolling effect, you need to consider the behaviour of your X Axis. You can either
162
+ * Use a {@link CategoryAxis}
163
+ * Use a {@link NumericAxis} with increasing x values, and update the visibleRange (or use zoomExtents)
164
+ */
165
+ fifoCapacity?: number;
166
+ /**
167
+ * Internal only - Get the starting offset when in fifo mode
168
+ */
169
+ fifoStartIndex?: number;
170
+ /**
171
+ * If true, data in fifo mode will not be "unwrapped" before drawing, giving ecg style sweeping mode.
172
+ * To get the sweeping effect, you need to consider the behaviour of your X Axis. You can either
173
+ * Use a {@link CategoryAxis}
174
+ * Use a {@link NumericAxis} and make your x values an offset from the first value, eg by doing x % fifoCapcity
175
+ */
176
+ fifoSweeping?: boolean;
177
+ /** In fifo sweeping mode, the number of earliest points to skip to create a gap between the latest and earliest data */
178
+ fifoSweepingGap?: number;
156
179
  /**
157
180
  * Gets the count of data-points in the DataSeries
158
181
  */
@@ -184,9 +184,11 @@ var NonUniformHeatmapDataSeries = /** @class */ (function (_super) {
184
184
  // set offsets when zValues changes
185
185
  if (this.xCellOffsetsGeneratorFunction) {
186
186
  this.xCellOffsetsProperty = this.mapCellSizes(this.arrayWidth, this.xCellOffsetsGeneratorFunction);
187
+ this.xCellSizesProperty = this.calculateCellSizes(this.xCellOffsetsProperty);
187
188
  }
188
189
  if (this.yCellOffsetsGeneratorFunction) {
189
190
  this.yCellOffsetsProperty = this.mapCellSizes(this.arrayHeight, this.yCellOffsetsGeneratorFunction);
191
+ this.yCellSizesProperty = this.calculateCellSizes(this.yCellOffsetsProperty);
190
192
  }
191
193
  this.nativeXOffsetsProperty.clear();
192
194
  this.nativeYOffsetsProperty.clear();
@@ -201,6 +201,8 @@ export declare class OhlcDataSeries extends BaseDataSeries {
201
201
  /** @inheritDoc */
202
202
  getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType): NumberRange;
203
203
  /** @inheritDoc */
204
+ createAnimationVectors(): void;
205
+ /** @inheritDoc */
204
206
  setInitialAnimationVectors(dataSeries?: OhlcDataSeries): void;
205
207
  /** @inheritDoc */
206
208
  setFinalAnimationVectors(dataSeries?: OhlcDataSeries): void;
@@ -210,5 +212,6 @@ export declare class OhlcDataSeries extends BaseDataSeries {
210
212
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
211
213
  /** @inheritDoc */
212
214
  toJSON(excludeData?: boolean): any;
215
+ protected reserve(size: number): void;
213
216
  private getOHLCValues;
214
217
  }
@@ -50,17 +50,18 @@ var OhlcDataSeries = /** @class */ (function (_super) {
50
50
  var _this = _super.call(this, webAssemblyContext, options) || this;
51
51
  /** @inheritDoc */
52
52
  _this.type = IDataSeries_1.EDataSeriesType.Ohlc;
53
- _this.openValues = new webAssemblyContext.SCRTDoubleVector();
54
- _this.highValues = new webAssemblyContext.SCRTDoubleVector();
55
- _this.lowValues = new webAssemblyContext.SCRTDoubleVector();
56
- _this.openInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
57
- _this.highInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
58
- _this.lowInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
59
- _this.openFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
60
- _this.highFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
61
- _this.lowFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
53
+ _this.openValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
54
+ _this.highValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
55
+ _this.lowValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
62
56
  if (options === null || options === void 0 ? void 0 : options.xValues) {
63
57
  _this.appendRange(options.xValues, options.openValues, options.highValues, options.lowValues, options.closeValues, options.metadata);
58
+ if ((options === null || options === void 0 ? void 0 : options.fifoCapacity) && (options === null || options === void 0 ? void 0 : options.fifoStartIndex)) {
59
+ _this.xValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
60
+ _this.yValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
61
+ _this.openValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
62
+ _this.highValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
63
+ _this.lowValues.notifyAppend(options === null || options === void 0 ? void 0 : options.fifoStartIndex);
64
+ }
64
65
  }
65
66
  return _this;
66
67
  }
@@ -157,11 +158,11 @@ var OhlcDataSeries = /** @class */ (function (_super) {
157
158
  // Push metadata should be done before push x values
158
159
  this.appendMetadataRange(metadata, xValues.length);
159
160
  // New implementation passing array from JS
160
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeX, xValues);
161
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeOpen, openValues);
162
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeHigh, highValues);
163
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeLow, lowValues);
164
- (0, appendDoubleVectorFromJsArray_1.appendDoubleVectorFromJsArray)(this.webAssemblyContext, nativeClose, closeValues);
161
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeX, xValues);
162
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeOpen, openValues);
163
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeHigh, highValues);
164
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeLow, lowValues);
165
+ this.doubleVectorProvider.appendArray(this.webAssemblyContext, nativeClose, closeValues);
165
166
  this.notifyDataChanged(IDataSeries_1.EDataChangeType.Append, null, xValues.length);
166
167
  }
167
168
  };
@@ -226,6 +227,7 @@ var OhlcDataSeries = /** @class */ (function (_super) {
226
227
  OhlcDataSeries.prototype.insert = function (startIndex, x, open, high, low, close, metadata) {
227
228
  if (!this.getIsDeleted()) {
228
229
  this.validateIndex(startIndex, "Start index is out of range");
230
+ this.throwIfFifo("insert");
229
231
  var nativeX = this.getNativeXValues();
230
232
  this.dataDistributionCalculator.onInsert(this.isSorted, this.containsNaN, nativeX, [x], [close], startIndex);
231
233
  nativeX.insertAt(startIndex, x);
@@ -256,6 +258,7 @@ var OhlcDataSeries = /** @class */ (function (_super) {
256
258
  Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(lowValues) || (0, NumberArray_1.isTypedArray)(lowValues), "lowValues must be an array of numbers");
257
259
  Guard_1.Guard.isTrue((0, NumberArray_1.isNumberArray)(closeValues) || (0, NumberArray_1.isTypedArray)(closeValues), "closeValues must be an array of numbers");
258
260
  this.validateIndex(startIndex, "Start index is out of range");
261
+ this.throwIfFifo("insertRange");
259
262
  Guard_1.Guard.arraysSameLengthArr([
260
263
  { arg: xValues, name: "xValues" },
261
264
  { arg: openValues, name: "openValues" },
@@ -286,6 +289,7 @@ var OhlcDataSeries = /** @class */ (function (_super) {
286
289
  OhlcDataSeries.prototype.removeAt = function (index) {
287
290
  if (!this.getIsDeleted()) {
288
291
  this.validateIndex(index);
292
+ this.throwIfFifo("removeAt");
289
293
  this.getNativeXValues().removeAt(index);
290
294
  this.getNativeOpenValues().removeAt(index);
291
295
  this.getNativeHighValues().removeAt(index);
@@ -304,6 +308,7 @@ var OhlcDataSeries = /** @class */ (function (_super) {
304
308
  OhlcDataSeries.prototype.removeRange = function (startIndex, count) {
305
309
  if (!this.getIsDeleted()) {
306
310
  this.validateIndex(startIndex, "Start index is out of range");
311
+ this.throwIfFifo("removeRange");
307
312
  this.getNativeXValues().removeRange(startIndex, count);
308
313
  this.getNativeOpenValues().removeRange(startIndex, count);
309
314
  this.getNativeHighValues().removeRange(startIndex, count);
@@ -339,11 +344,11 @@ var OhlcDataSeries = /** @class */ (function (_super) {
339
344
  this.highValues = (0, Deleter_1.deleteSafe)(this.highValues);
340
345
  this.lowValues = (0, Deleter_1.deleteSafe)(this.lowValues);
341
346
  this.openInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.openInitialAnimationValues);
342
- this.openInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.openInitialAnimationValues);
343
- this.openInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.openInitialAnimationValues);
344
- this.openFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.openFinalAnimationValues);
345
- this.openFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.openFinalAnimationValues);
347
+ this.highInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.highInitialAnimationValues);
348
+ this.lowInitialAnimationValues = (0, Deleter_1.deleteSafe)(this.lowInitialAnimationValues);
346
349
  this.openFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.openFinalAnimationValues);
350
+ this.highFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.highFinalAnimationValues);
351
+ this.lowFinalAnimationValues = (0, Deleter_1.deleteSafe)(this.lowFinalAnimationValues);
347
352
  _super.prototype.delete.call(this);
348
353
  };
349
354
  /** @inheritDoc */
@@ -376,6 +381,16 @@ var OhlcDataSeries = /** @class */ (function (_super) {
376
381
  return new NumberRange_1.NumberRange(yMin, yMax);
377
382
  };
378
383
  /** @inheritDoc */
384
+ OhlcDataSeries.prototype.createAnimationVectors = function () {
385
+ _super.prototype.createAnimationVectors.call(this);
386
+ this.openInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
387
+ this.highInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
388
+ this.lowInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
389
+ this.openFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
390
+ this.highFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
391
+ this.lowFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
392
+ };
393
+ /** @inheritDoc */
379
394
  OhlcDataSeries.prototype.setInitialAnimationVectors = function (dataSeries) {
380
395
  _super.prototype.setInitialAnimationVectors.call(this, dataSeries);
381
396
  if (!dataSeries) {
@@ -440,12 +455,23 @@ var OhlcDataSeries = /** @class */ (function (_super) {
440
455
  var highValues = [];
441
456
  var lowValues = [];
442
457
  var closeValues = [];
443
- for (var i = 0; i < this.count(); i++) {
444
- xValues.push(this.xValues.get(i));
445
- openValues.push(this.openValues.get(i));
446
- highValues.push(this.highValues.get(i));
447
- lowValues.push(this.lowValues.get(i));
448
- closeValues.push(this.yValues.get(i));
458
+ if (this.fifoCapacity && this.fifoSweeping) {
459
+ for (var i = 0; i < this.count(); i++) {
460
+ xValues.push(this.xValues.getRaw(i));
461
+ openValues.push(this.openValues.getRaw(i));
462
+ closeValues.push(this.yValues.getRaw(i));
463
+ highValues.push(this.highValues.getRaw(i));
464
+ lowValues.push(this.lowValues.getRaw(i));
465
+ }
466
+ }
467
+ else {
468
+ for (var i = 0; i < this.count(); i++) {
469
+ xValues.push(this.xValues.get(i));
470
+ openValues.push(this.openValues.get(i));
471
+ highValues.push(this.highValues.get(i));
472
+ lowValues.push(this.lowValues.get(i));
473
+ closeValues.push(this.yValues.get(i));
474
+ }
449
475
  }
450
476
  var options = {
451
477
  xValues: xValues,
@@ -458,6 +484,12 @@ var OhlcDataSeries = /** @class */ (function (_super) {
458
484
  }
459
485
  return json;
460
486
  };
487
+ OhlcDataSeries.prototype.reserve = function (size) {
488
+ _super.prototype.reserve.call(this, size);
489
+ this.openValues.reserve(size);
490
+ this.highValues.reserve(size);
491
+ this.lowValues.reserve(size);
492
+ };
461
493
  OhlcDataSeries.prototype.getOHLCValues = function (dataSeriesValueType) {
462
494
  var openValues;
463
495
  var highValues;
@@ -1,21 +1,20 @@
1
+ import { DeletableEntity } from "../../../Core/DeletableEntity";
1
2
  import { IDeletable } from "../../../Core/IDeletable";
2
3
  import { NumberRange } from "../../../Core/NumberRange";
3
4
  import { IntVector, SCRTDoubleVector, TSciChart } from "../../../types/TSciChart";
4
5
  import { IPointSeries, IPointSeriesResampled } from "./IPointSeries";
5
- export declare abstract class BasePointSeriesResampled implements IPointSeries, IPointSeriesResampled, IDeletable {
6
+ export declare abstract class BasePointSeriesResampled extends DeletableEntity implements IPointSeries, IPointSeriesResampled, IDeletable {
6
7
  readonly intIndexes: IntVector;
7
8
  readonly indexes: SCRTDoubleVector;
8
9
  readonly xValues: SCRTDoubleVector;
9
10
  readonly yValues: SCRTDoubleVector;
10
11
  xRange: NumberRange;
12
+ readonly resampled = true;
13
+ fifoStartIndex: number;
11
14
  protected wasmContext: TSciChart;
12
15
  constructor(wasmContext: TSciChart, xRange: NumberRange);
13
16
  get count(): number;
14
17
  delete(): void;
15
- /**
16
- * Updates SCRTDoubleVector from IntVector
17
- */
18
- updateIndexes(): void;
19
18
  clearIntIndexes(): void;
20
19
  debugOutputForUnitTests(): void;
21
20
  }