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
@@ -1,10 +1,11 @@
1
+ import { DeletableEntity } from "../../Core/DeletableEntity";
1
2
  import { SCRTPen } from "../../types/TSciChart";
2
3
  import { EDrawingTypes } from "./constants";
3
4
  import { IPen2D } from "./IPen2D";
4
5
  /**
5
6
  * The WebGlPen is a pen for polygon stroke, line strokes, which can be passed to SciChart's WebGL / WebAssembly graphics engine
6
7
  */
7
- export declare class WebGlPen implements IPen2D {
8
+ export declare class WebGlPen extends DeletableEntity implements IPen2D {
8
9
  private scrtPenProperty;
9
10
  private originalColor;
10
11
  /**
@@ -1,22 +1,41 @@
1
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
+ })();
2
17
  Object.defineProperty(exports, "__esModule", { value: true });
3
18
  exports.WebGlPen = void 0;
4
19
  var app_1 = require("../../constants/app");
20
+ var DeletableEntity_1 = require("../../Core/DeletableEntity");
5
21
  var Deleter_1 = require("../../Core/Deleter");
6
22
  var colorUtil_1 = require("../../utils/colorUtil");
7
23
  var constants_1 = require("./constants");
8
24
  /**
9
25
  * The WebGlPen is a pen for polygon stroke, line strokes, which can be passed to SciChart's WebGL / WebAssembly graphics engine
10
26
  */
11
- var WebGlPen = /** @class */ (function () {
27
+ var WebGlPen = /** @class */ (function (_super) {
28
+ __extends(WebGlPen, _super);
12
29
  /**
13
30
  * Creates an instance of WebGlPen
14
31
  * @param scrtPen the inner {@link SCRTPen} which can be passed to SciChart's WebAssembly WebGL engine
15
32
  * @param originalColor the original color which is used to change the opacity
16
33
  */
17
34
  function WebGlPen(scrtPen, originalColor) {
18
- this.scrtPenProperty = scrtPen;
19
- this.originalColor = originalColor !== null && originalColor !== void 0 ? originalColor : scrtPen === null || scrtPen === void 0 ? void 0 : scrtPen.m_uiColor;
35
+ var _this = _super.call(this) || this;
36
+ _this.scrtPenProperty = scrtPen;
37
+ _this.originalColor = originalColor !== null && originalColor !== void 0 ? originalColor : scrtPen === null || scrtPen === void 0 ? void 0 : scrtPen.m_uiColor;
38
+ return _this;
20
39
  }
21
40
  Object.defineProperty(WebGlPen.prototype, "scrtPen", {
22
41
  /**
@@ -50,5 +69,5 @@ var WebGlPen = /** @class */ (function () {
50
69
  this.scrtPen.m_uiColor = (0, colorUtil_1.uintArgbColorMultiplyOpacity)(this.originalColor, opacity);
51
70
  };
52
71
  return WebGlPen;
53
- }());
72
+ }(DeletableEntity_1.DeletableEntity));
54
73
  exports.WebGlPen = WebGlPen;
@@ -2,12 +2,13 @@ import { ICacheable } from "../../Core/ICacheable";
2
2
  import { Rect } from "../../Core/Rect";
3
3
  import { EDefaultRenderLayer } from "../../types/DefaultRenderLayer";
4
4
  import { Size } from "../../types/Size";
5
- import { SCRTBrush, SCRTFont, SCRTPen, SCRTRenderContext, TSciChart, VectorColorVertex, VectorRectVertex } from "../../types/TSciChart";
5
+ import { SCRTBrush, SCRTPen, SCRTRenderContext, TSciChart, VectorColorVertex, VectorRectVertex } from "../../types/TSciChart";
6
6
  import { TTextStyle } from "../Visuals/Axis/AxisCore";
7
7
  import { ShaderEffect } from "../Visuals/RenderableSeries/ShaderEffect";
8
8
  import { IBrush2D } from "./IBrush2D";
9
9
  import { IPen2D } from "./IPen2D";
10
10
  import { IRenderContext2D } from "./IRenderContext2D";
11
+ import { DeletableEntity } from "../../Core/DeletableEntity";
11
12
  declare type TDrawFunction = () => void;
12
13
  /**
13
14
  *
@@ -35,7 +36,7 @@ export declare enum ELineDrawMode {
35
36
  * This context class is used in SciChart's High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
36
37
  * to draw shapes, lines, fills, images and more
37
38
  */
38
- export declare class WebGlRenderContext2D implements IRenderContext2D {
39
+ export declare class WebGlRenderContext2D extends DeletableEntity implements IRenderContext2D {
39
40
  /**
40
41
  * Should store Stores references to all cached WebGlResources {@link ICacheable}
41
42
  * Is used to invalidate the resources when the WebGL context is lost.
@@ -129,7 +130,7 @@ export declare class WebGlRenderContext2D implements IRenderContext2D {
129
130
  * Set advanced: true if you are planning to rotate or scale the text.
130
131
  * Set drawEarly: true if you are planning to call font.End() early. Otherwise all native text will be drawn at the end of the render cycle.
131
132
  */
132
- getFont(labelStyle: TTextStyle, advanced?: boolean, drawEarly?: boolean): SCRTFont;
133
+ getFont(labelStyle: TTextStyle, advanced?: boolean, drawEarly?: boolean): import("../../types/TSciChart").SCRTFont;
133
134
  /** End all fonts, causing text to be drawn */
134
135
  endFonts(force?: boolean): void;
135
136
  }
@@ -1,4 +1,19 @@
1
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
+ })();
2
17
  Object.defineProperty(exports, "__esModule", { value: true });
3
18
  exports.WebGlRenderContext2D = exports.ELineDrawMode = exports.calculateAbsoluteRenderLayer = void 0;
4
19
  var app_1 = require("../../constants/app");
@@ -8,6 +23,7 @@ var createNativeRect_1 = require("../Visuals/Helpers/createNativeRect");
8
23
  var NativeObject_1 = require("../Visuals/Helpers/NativeObject");
9
24
  var WebGlBrush_1 = require("./WebGlBrush");
10
25
  var WebGlPen_1 = require("./WebGlPen");
26
+ var DeletableEntity_1 = require("../../Core/DeletableEntity");
11
27
  /**
12
28
  *
13
29
  * @param step specifies the capacity of layers that could be potentially added between the default chart layers
@@ -38,18 +54,21 @@ var ELineDrawMode;
38
54
  * This context class is used in SciChart's High Performance Realtime {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
39
55
  * to draw shapes, lines, fills, images and more
40
56
  */
41
- var WebGlRenderContext2D = /** @class */ (function () {
57
+ var WebGlRenderContext2D = /** @class */ (function (_super) {
58
+ __extends(WebGlRenderContext2D, _super);
42
59
  /**
43
60
  * Creates an instance of the WebGlRenderContext2D
44
61
  * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing native methods and access to our WebGL2 Engine
45
62
  * @param viewportSize The Viewport {@link Size}
46
63
  */
47
64
  function WebGlRenderContext2D(webAssemblyContext, viewportSize, canvasId) {
48
- this.layers = {};
49
- this.effects = [];
50
- this.webAssemblyContext = webAssemblyContext;
51
- this.viewportSize = viewportSize;
52
- this.canvasId = canvasId;
65
+ var _this = _super.call(this) || this;
66
+ _this.layers = {};
67
+ _this.effects = [];
68
+ _this.webAssemblyContext = webAssemblyContext;
69
+ _this.viewportSize = viewportSize;
70
+ _this.canvasId = canvasId;
71
+ return _this;
53
72
  }
54
73
  /**
55
74
  * Get the native {@link SCRTRenderContext} for direct access to SciChart's WebAssembly Visual Xccelerator engine
@@ -344,5 +363,5 @@ var WebGlRenderContext2D = /** @class */ (function () {
344
363
  */
345
364
  WebGlRenderContext2D.webGlResourcesRefs = new Set();
346
365
  return WebGlRenderContext2D;
347
- }());
366
+ }(DeletableEntity_1.DeletableEntity));
348
367
  exports.WebGlRenderContext2D = WebGlRenderContext2D;
@@ -1,9 +1,12 @@
1
+ import { DeletableEntity } from "../../Core/DeletableEntity";
1
2
  import { EventHandler } from "../../Core/EventHandler";
2
3
  import { NumberRange } from "../../Core/NumberRange";
4
+ import { NumberArray } from "../../types/NumberArray";
3
5
  import { ESearchMode } from "../../types/SearchMode";
4
6
  import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
5
7
  import { SeriesAnimation } from "../Visuals/RenderableSeries/Animations/SeriesAnimation";
6
8
  import { IDataDistributionCalculator } from "./DataDistributionCalculator/IDataDistributionCalculator";
9
+ import { IDoubleVectorProvider } from "./DoubleVectorProvider";
7
10
  import { EDataChangeType, EDataSeriesType, EDataSeriesValueType, IDataChangeArgs, IDataSeries } from "./IDataSeries";
8
11
  import { IMetadataGenerator, IPointMetadata } from "./IPointMetadata";
9
12
  /**
@@ -44,6 +47,40 @@ export interface IBaseDataSeriesOptions {
44
47
  * Gets or sets whether the Y data contains NaN values.
45
48
  */
46
49
  containsNaN?: boolean;
50
+ /**
51
+ * Set the maximum size of the dataSeries in FIFO (First In First Out) mode. This can only be set in the constructor options.
52
+ * If set, the dataSeries supports only append, appendRange, update and clear. Any data that is appended once the dataSeries has reached fifoCapacity will cause
53
+ * the oldest data to be discarded. This is a much more efficient than appending and removing for achieving scrolling data.
54
+ * Spline series and Stacked series currently do not support fifo mode.
55
+ * To get the scrolling effect, you need to consider the behaviour of your X Axis. You can either
56
+ * Use a {@link CategoryAxis}
57
+ * Use a {@link NumericAxis} with increasing x values, and update the visibleRange (or use zoomExtents)
58
+ */
59
+ fifoCapacity?: number;
60
+ /**
61
+ * If true, data in fifo mode will not be "unwrapped" before drawing, giving ecg style sweeping mode.
62
+ * To get the sweeping effect, you need to consider the behaviour of your X Axis. You can either
63
+ * Use a {@link CategoryAxis}
64
+ * Use a {@link NumericAxis} and make your x values an offset from the first value, eg by doing x % fifoCapcity
65
+ */
66
+ fifoSweeping?: boolean;
67
+ /** In fifo sweeping mode, the number of earliest points to skip to create a gap between the latest and earliest data */
68
+ fifoSweepingGap?: number;
69
+ /** Sets the starting index of data for fifo mode. */
70
+ fifoStartIndex?: number;
71
+ /**
72
+ * Gets or sets the capacity of the data series. This is the amount of memory reserved for the data. For a normal dataSeries this will grow as data is appended.
73
+ * You can avoid memory fragmentation by creating your series with a larger capacity if you know it will grow to that.
74
+ */
75
+ capacity?: number;
76
+ /**
77
+ * The X-values array to pre-populate the {@link XyDataSeries}
78
+ */
79
+ xValues?: NumberArray;
80
+ /**
81
+ * The Y-values array to pre-populate the {@link XyDataSeries}
82
+ */
83
+ yValues?: NumberArray;
47
84
  /**
48
85
  * The Metadata values of type {@link IPointMetadata} to pre-populate the {@link XyDataSeries}
49
86
  * If a single metadata value is supplied, this will be used as a template for all data values.
@@ -65,7 +102,7 @@ export interface IBaseDataSeriesOptions {
65
102
  * See derived types of {@link BaseDataSeries} to find out what data-series are available.
66
103
  * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.
67
104
  */
68
- export declare abstract class BaseDataSeries implements IDataSeries {
105
+ export declare abstract class BaseDataSeries extends DeletableEntity implements IDataSeries {
69
106
  /** @inheritDoc */
70
107
  abstract readonly type: EDataSeriesType;
71
108
  /** @inheritDoc */
@@ -103,6 +140,7 @@ export declare abstract class BaseDataSeries implements IDataSeries {
103
140
  protected yValues: SCRTDoubleVector;
104
141
  protected indexes: SCRTDoubleVector;
105
142
  protected isDeleted: boolean;
143
+ protected doubleVectorProvider: IDoubleVectorProvider;
106
144
  private dataSeriesNameProperty;
107
145
  private isSortedProperty;
108
146
  private containsNaNProperty;
@@ -110,6 +148,9 @@ export declare abstract class BaseDataSeries implements IDataSeries {
110
148
  private metadataProperty;
111
149
  private metadataGeneratorProperty;
112
150
  private changeCountProperty;
151
+ private fifoCapacityProperty;
152
+ private fifoSweepingProperty;
153
+ private fifoSweepingGapProperty;
113
154
  /**
114
155
  * Creates an instance of {@link BaseDataSeries}
115
156
  * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods
@@ -119,6 +160,14 @@ export declare abstract class BaseDataSeries implements IDataSeries {
119
160
  protected constructor(webAssemblyContext: TSciChart, options?: IBaseDataSeriesOptions);
120
161
  /** @inheritDoc */
121
162
  clear(): void;
163
+ /**
164
+ * Gets or sets the capacity of data-points in the DataSeries
165
+ */
166
+ get capacity(): number;
167
+ /**
168
+ * Gets or sets the capacity of data-points in the DataSeries
169
+ */
170
+ set capacity(value: number);
122
171
  /** @inheritDoc */
123
172
  get containsNaN(): boolean;
124
173
  /** @inheritDoc */
@@ -140,6 +189,18 @@ export declare abstract class BaseDataSeries implements IDataSeries {
140
189
  /** @inheritDoc */
141
190
  getIsDeleted(): boolean;
142
191
  /** @inheritDoc */
192
+ get fifoCapacity(): number;
193
+ /** @inheritDoc */
194
+ get fifoStartIndex(): number;
195
+ /** @inheritDoc */
196
+ get fifoSweeping(): boolean;
197
+ /** @inheritDoc */
198
+ set fifoSweeping(enabled: boolean);
199
+ /** @inheritDoc */
200
+ get fifoSweepingGap(): number;
201
+ /** @inheritDoc */
202
+ set fifoSweepingGap(fifoSweepingGap: number);
203
+ /** @inheritDoc */
143
204
  getNativeIndexes(): SCRTDoubleVector;
144
205
  /** @inheritDoc */
145
206
  getNativeXValues(): SCRTDoubleVector;
@@ -174,7 +235,7 @@ export declare abstract class BaseDataSeries implements IDataSeries {
174
235
  * Gets the metadata by index
175
236
  * @param index The X index
176
237
  */
177
- getMetadataAt(index: number): IPointMetadata;
238
+ getMetadataAt(index: number, ignoreFifo?: boolean): IPointMetadata;
178
239
  /**
179
240
  * Gets the metadata array length
180
241
  */
@@ -183,6 +244,7 @@ export declare abstract class BaseDataSeries implements IDataSeries {
183
244
  * Check if the series has an existing metadata
184
245
  */
185
246
  get hasMetadata(): boolean;
247
+ createAnimationVectors(): void;
186
248
  /**
187
249
  * Sets initial values for the data animation
188
250
  * @param dataSeries The {@link BaseDataSeries} to be used for initial values
@@ -217,6 +279,9 @@ export declare abstract class BaseDataSeries implements IDataSeries {
217
279
  protected removeMetadataRange(startIndex: number, count: number): void;
218
280
  protected setMetadata(value: IPointMetadata[]): void;
219
281
  protected getXValues(dataSeriesValueType: EDataSeriesValueType): SCRTDoubleVector;
282
+ protected throwIfFifo(operation: string): void;
283
+ protected reserve(size: number): void;
284
+ protected calculateInitialCapacity(options: IBaseDataSeriesOptions): number;
220
285
  private fillMetadataIfUndefined;
221
286
  private getYValues;
222
287
  }
@@ -1,4 +1,19 @@
1
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
+ })();
2
17
  var __assign = (this && this.__assign) || function () {
3
18
  __assign = Object.assign || function(t) {
4
19
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -13,15 +28,19 @@ var __assign = (this && this.__assign) || function () {
13
28
  Object.defineProperty(exports, "__esModule", { value: true });
14
29
  exports.getWindowedYRange = exports.getIndicesRange = exports.BaseDataSeries = void 0;
15
30
  var classFactory_1 = require("../../Builder/classFactory");
31
+ var DeletableEntity_1 = require("../../Core/DeletableEntity");
16
32
  var Deleter_1 = require("../../Core/Deleter");
17
33
  var EventHandler_1 = require("../../Core/EventHandler");
34
+ var Guard_1 = require("../../Core/Guard");
18
35
  var NumberRange_1 = require("../../Core/NumberRange");
19
36
  var BaseType_1 = require("../../types/BaseType");
20
37
  var SearchMode_1 = require("../../types/SearchMode");
38
+ var array_1 = require("../../utils/array");
21
39
  var guid_1 = require("../../utils/guid");
22
40
  var isRealNumber_1 = require("../../utils/isRealNumber");
23
41
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
24
42
  var DataDistributionCalculator_1 = require("./DataDistributionCalculator/DataDistributionCalculator");
43
+ var DoubleVectorProvider_1 = require("./DoubleVectorProvider");
25
44
  var IDataSeries_1 = require("./IDataSeries");
26
45
  var IPointMetadata_1 = require("./IPointMetadata");
27
46
  /**
@@ -34,7 +53,8 @@ var IPointMetadata_1 = require("./IPointMetadata");
34
53
  * See derived types of {@link BaseDataSeries} to find out what data-series are available.
35
54
  * See derived types of {@link IRenderableSeries} to find out what 2D JavaScript Chart types are available.
36
55
  */
37
- var BaseDataSeries = /** @class */ (function () {
56
+ var BaseDataSeries = /** @class */ (function (_super) {
57
+ __extends(BaseDataSeries, _super);
38
58
  /**
39
59
  * Creates an instance of {@link BaseDataSeries}
40
60
  * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods
@@ -42,40 +62,55 @@ var BaseDataSeries = /** @class */ (function () {
42
62
  * @param options the {@link IBaseDataSeriesOptions} which can be passed to config the DataSeries at construct time
43
63
  */
44
64
  function BaseDataSeries(webAssemblyContext, options) {
65
+ var _this = this;
45
66
  var _a, _b, _c, _d, _e, _f, _g;
67
+ _this = _super.call(this) || this;
46
68
  /** @inheritDoc */
47
- this.dataChanged = new EventHandler_1.EventHandler();
69
+ _this.dataChanged = new EventHandler_1.EventHandler();
48
70
  /** @inheritDoc */
49
- this.dataDistributionCalculator = new DataDistributionCalculator_1.DataDistributionCalculator();
50
- this.minXSpacing = 0;
51
- this.isSortedProperty = undefined;
52
- this.containsNaNProperty = undefined;
53
- this.isEvenlySpacedProperty = false;
54
- this.metadataGeneratorProperty = undefined;
55
- this.changeCountProperty = 0;
56
- this.webAssemblyContext = webAssemblyContext;
57
- this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();
58
- this.xValues = new webAssemblyContext.SCRTDoubleVector();
59
- this.yValues = new webAssemblyContext.SCRTDoubleVector();
60
- this.indexes = new webAssemblyContext.SCRTDoubleVector();
61
- this.xInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
62
- this.yInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
63
- this.xFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
64
- this.yFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
65
- this.dataSeriesNameProperty = (_b = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _b !== void 0 ? _b : this.dataSeriesNameProperty;
66
- this.isSorted = (_d = (_c = options === null || options === void 0 ? void 0 : options.dataIsSortedInX) !== null && _c !== void 0 ? _c : options === null || options === void 0 ? void 0 : options.isSorted) !== null && _d !== void 0 ? _d : this.isSortedProperty;
67
- this.containsNaN = (_e = options === null || options === void 0 ? void 0 : options.containsNaN) !== null && _e !== void 0 ? _e : this.containsNaNProperty;
68
- this.isEvenlySpaced = (_f = options === null || options === void 0 ? void 0 : options.dataEvenlySpacedInX) !== null && _f !== void 0 ? _f : this.isEvenlySpacedProperty;
71
+ _this.dataDistributionCalculator = new DataDistributionCalculator_1.DataDistributionCalculator();
72
+ _this.minXSpacing = 0;
73
+ _this.doubleVectorProvider = new DoubleVectorProvider_1.DoubleVectorProvider();
74
+ _this.isSortedProperty = undefined;
75
+ _this.containsNaNProperty = undefined;
76
+ _this.isEvenlySpacedProperty = false;
77
+ _this.metadataGeneratorProperty = undefined;
78
+ _this.changeCountProperty = 0;
79
+ _this.fifoCapacityProperty = undefined;
80
+ _this.fifoSweepingProperty = false;
81
+ _this.fifoSweepingGapProperty = 1;
82
+ _this.webAssemblyContext = webAssemblyContext;
83
+ _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();
84
+ if (options === null || options === void 0 ? void 0 : options.fifoCapacity) {
85
+ _this.fifoCapacityProperty = options.fifoCapacity;
86
+ _this.doubleVectorProvider = new DoubleVectorProvider_1.FIFOVectorProvider(options.fifoCapacity);
87
+ }
88
+ else {
89
+ var initialCapacity = _this.calculateInitialCapacity(options);
90
+ Guard_1.Guard.argumentIsRealInteger(initialCapacity, "initialCapacity");
91
+ _this.doubleVectorProvider.capacity = initialCapacity;
92
+ }
93
+ _this.fifoSweepingProperty = (options === null || options === void 0 ? void 0 : options.fifoSweeping) || _this.fifoSweepingProperty;
94
+ _this.fifoSweepingGapProperty = (options === null || options === void 0 ? void 0 : options.fifoSweepingGap) || _this.fifoSweepingGapProperty;
95
+ _this.xValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
96
+ _this.yValues = _this.doubleVectorProvider.getDoubleVector(webAssemblyContext);
97
+ // Indexes do not need to be fifo
98
+ _this.indexes = new webAssemblyContext.SCRTDoubleVector();
99
+ _this.dataSeriesNameProperty = (_b = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _b !== void 0 ? _b : _this.dataSeriesNameProperty;
100
+ _this.isSorted = (_d = (_c = options === null || options === void 0 ? void 0 : options.dataIsSortedInX) !== null && _c !== void 0 ? _c : options === null || options === void 0 ? void 0 : options.isSorted) !== null && _d !== void 0 ? _d : _this.isSortedProperty;
101
+ _this.containsNaN = (_e = options === null || options === void 0 ? void 0 : options.containsNaN) !== null && _e !== void 0 ? _e : _this.containsNaNProperty;
102
+ _this.isEvenlySpaced = (_f = options === null || options === void 0 ? void 0 : options.dataEvenlySpacedInX) !== null && _f !== void 0 ? _f : _this.isEvenlySpacedProperty;
69
103
  if (options === null || options === void 0 ? void 0 : options.metadata) {
70
104
  if ("type" in options.metadata) {
71
- this.metadataGeneratorProperty = (0, classFactory_1.createType)(BaseType_1.EBaseType.MetadataGenerator, options.metadata.type, webAssemblyContext, options.metadata.data);
72
- options.metadata = (_g = this.metadataGeneratorProperty) === null || _g === void 0 ? void 0 : _g.getMetadata();
105
+ _this.metadataGeneratorProperty = (0, classFactory_1.createType)(BaseType_1.EBaseType.MetadataGenerator, options.metadata.type, webAssemblyContext, options.metadata.data);
106
+ options.metadata = (_g = _this.metadataGeneratorProperty) === null || _g === void 0 ? void 0 : _g.getMetadata();
73
107
  }
74
108
  else if (!Array.isArray(options === null || options === void 0 ? void 0 : options.metadata)) {
75
- this.metadataGeneratorProperty = new IPointMetadata_1.TemplateMetadataGenerator(options === null || options === void 0 ? void 0 : options.metadata);
109
+ _this.metadataGeneratorProperty = new IPointMetadata_1.TemplateMetadataGenerator(options === null || options === void 0 ? void 0 : options.metadata);
76
110
  options.metadata = undefined;
77
111
  }
78
112
  }
113
+ return _this;
79
114
  }
80
115
  /** @inheritDoc */
81
116
  BaseDataSeries.prototype.clear = function () {
@@ -83,6 +118,26 @@ var BaseDataSeries = /** @class */ (function () {
83
118
  (_a = this.indexes) === null || _a === void 0 ? void 0 : _a.clear();
84
119
  this.dataDistributionCalculator.clear(this.isSorted, this.containsNaN);
85
120
  };
121
+ Object.defineProperty(BaseDataSeries.prototype, "capacity", {
122
+ /**
123
+ * Gets or sets the capacity of data-points in the DataSeries
124
+ */
125
+ get: function () {
126
+ return this.xValues.capacity();
127
+ },
128
+ /**
129
+ * Gets or sets the capacity of data-points in the DataSeries
130
+ */
131
+ set: function (value) {
132
+ if (value > this.capacity) {
133
+ this.reserve(value);
134
+ }
135
+ // TODO Not sure whether this is needed
136
+ // this.notifyDataChanged(EDataChangeType.Property, undefined, undefined, "capacity");
137
+ },
138
+ enumerable: false,
139
+ configurable: true
140
+ });
86
141
  Object.defineProperty(BaseDataSeries.prototype, "containsNaN", {
87
142
  /** @inheritDoc */
88
143
  get: function () {
@@ -152,14 +207,60 @@ var BaseDataSeries = /** @class */ (function () {
152
207
  BaseDataSeries.prototype.getIsDeleted = function () {
153
208
  return this.isDeleted;
154
209
  };
210
+ Object.defineProperty(BaseDataSeries.prototype, "fifoCapacity", {
211
+ /** @inheritDoc */
212
+ get: function () {
213
+ return this.fifoCapacityProperty;
214
+ },
215
+ enumerable: false,
216
+ configurable: true
217
+ });
218
+ Object.defineProperty(BaseDataSeries.prototype, "fifoStartIndex", {
219
+ /** @inheritDoc */
220
+ get: function () {
221
+ return this.fifoCapacity > 0 ? this.xValues.getStartIndex() : 0;
222
+ },
223
+ enumerable: false,
224
+ configurable: true
225
+ });
226
+ Object.defineProperty(BaseDataSeries.prototype, "fifoSweeping", {
227
+ /** @inheritDoc */
228
+ get: function () {
229
+ return this.fifoCapacity && this.fifoSweepingProperty;
230
+ },
231
+ /** @inheritDoc */
232
+ set: function (enabled) {
233
+ this.fifoSweepingProperty = enabled;
234
+ this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, "fifoSweeping");
235
+ },
236
+ enumerable: false,
237
+ configurable: true
238
+ });
239
+ Object.defineProperty(BaseDataSeries.prototype, "fifoSweepingGap", {
240
+ /** @inheritDoc */
241
+ get: function () {
242
+ return this.fifoSweepingGapProperty;
243
+ },
244
+ /** @inheritDoc */
245
+ set: function (fifoSweepingGap) {
246
+ this.fifoSweepingGapProperty = fifoSweepingGap;
247
+ this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, "fifoSweepingGap");
248
+ },
249
+ enumerable: false,
250
+ configurable: true
251
+ });
155
252
  /** @inheritDoc */
156
253
  BaseDataSeries.prototype.getNativeIndexes = function () {
157
254
  if (!this.indexes) {
158
255
  return undefined;
159
256
  }
160
- var indexes = this.indexes;
161
- if (indexes.size() < this.count()) {
162
- this.webAssemblyContext.SCRTFillVectorSequential(this.indexes, this.count());
257
+ var expectedDataSeriesSize = this.count();
258
+ var currentIndexesSize = this.indexes.size();
259
+ if (currentIndexesSize < expectedDataSeriesSize) {
260
+ this.webAssemblyContext.SCRTFillVectorSequential(this.indexes, expectedDataSeriesSize);
261
+ }
262
+ else if (currentIndexesSize > expectedDataSeriesSize) {
263
+ this.indexes.resizeFast(expectedDataSeriesSize);
163
264
  }
164
265
  return this.indexes;
165
266
  };
@@ -286,12 +387,19 @@ var BaseDataSeries = /** @class */ (function () {
286
387
  * Gets the metadata by index
287
388
  * @param index The X index
288
389
  */
289
- BaseDataSeries.prototype.getMetadataAt = function (index) {
390
+ BaseDataSeries.prototype.getMetadataAt = function (index, ignoreFifo) {
391
+ if (ignoreFifo === void 0) { ignoreFifo = false; }
290
392
  this.validateIndex(index);
291
393
  if (!this.metadataProperty) {
292
394
  return undefined;
293
395
  }
294
- return this.metadataProperty[index];
396
+ if (this.fifoCapacity && !ignoreFifo) {
397
+ var fifoIndex = (this.xValues.getStartIndex() + index) % this.fifoCapacity;
398
+ return this.metadataProperty[fifoIndex];
399
+ }
400
+ else {
401
+ return this.metadataProperty[index];
402
+ }
295
403
  };
296
404
  /**
297
405
  * Gets the metadata array length
@@ -312,6 +420,12 @@ var BaseDataSeries = /** @class */ (function () {
312
420
  enumerable: false,
313
421
  configurable: true
314
422
  });
423
+ BaseDataSeries.prototype.createAnimationVectors = function () {
424
+ this.xInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
425
+ this.yInitialAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
426
+ this.xFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
427
+ this.yFinalAnimationValues = this.doubleVectorProvider.getDoubleVector(this.webAssemblyContext);
428
+ };
315
429
  /**
316
430
  * Sets initial values for the data animation
317
431
  * @param dataSeries The {@link BaseDataSeries} to be used for initial values
@@ -366,9 +480,13 @@ var BaseDataSeries = /** @class */ (function () {
366
480
  /** @inheritDoc */
367
481
  BaseDataSeries.prototype.toJSON = function (excludeData) {
368
482
  if (excludeData === void 0) { excludeData = false; }
369
- var options = __assign({ containsNaN: this.containsNaN, dataIsSortedInX: this.isSorted, dataSeriesName: this.dataSeriesName,
370
- // @ts-ignore
371
- metadata: this.metadataGeneratorProperty ? this.metadataGeneratorProperty.toJSON() : this.metadataProperty }, this.dataIds);
483
+ var options = __assign({ id: this.id, containsNaN: this.containsNaN, isSorted: this.isSorted, dataIsSortedInX: this.isSorted, dataEvenlySpacedInX: this.isEvenlySpaced, dataSeriesName: this.dataSeriesName, fifoCapacity: this.fifoCapacity, fifoSweeping: this.fifoSweeping, fifoSweepingGap: this.fifoSweepingGap, fifoStartIndex: this.fifoSweeping ? this.fifoStartIndex : 0, capacity: this.capacity, metadata: undefined,
484
+ // values must be serialized in derived classes
485
+ xValues: undefined, yValues: undefined }, this.dataIds);
486
+ // @ts-ignore
487
+ options.metadata = this.metadataGeneratorProperty
488
+ ? this.metadataGeneratorProperty.toJSON()
489
+ : this.metadataProperty;
372
490
  return options;
373
491
  };
374
492
  Object.defineProperty(BaseDataSeries.prototype, "changeCount", {
@@ -394,7 +512,13 @@ var BaseDataSeries = /** @class */ (function () {
394
512
  }
395
513
  this.validateIndex(index);
396
514
  this.fillMetadataIfUndefined();
397
- this.metadataProperty[index] = metadata;
515
+ if (this.fifoCapacity) {
516
+ var fifoIndex = (this.xValues.getStartIndex() + index) % this.fifoCapacity;
517
+ this.metadataProperty[fifoIndex] = metadata;
518
+ }
519
+ else {
520
+ this.metadataProperty[index] = metadata;
521
+ }
398
522
  };
399
523
  BaseDataSeries.prototype.appendMetadata = function (metadata) {
400
524
  if (!metadata) {
@@ -406,7 +530,12 @@ var BaseDataSeries = /** @class */ (function () {
406
530
  }
407
531
  }
408
532
  this.fillMetadataIfUndefined();
409
- this.metadataProperty.push(metadata);
533
+ if (this.fifoCapacity && this.count() === this.fifoCapacity) {
534
+ this.metadataProperty[this.xValues.getStartIndex()] = metadata;
535
+ }
536
+ else {
537
+ this.metadataProperty.push(metadata);
538
+ }
410
539
  };
411
540
  BaseDataSeries.prototype.appendMetadataRange = function (metadata, length) {
412
541
  var _this = this;
@@ -421,12 +550,17 @@ var BaseDataSeries = /** @class */ (function () {
421
550
  }
422
551
  }
423
552
  this.fillMetadataIfUndefined();
424
- var startIndex = this.metadataProperty.length;
425
- // reserve space for new values
426
- this.metadataProperty.length += length;
427
- // merge new values into th collection
428
- for (var i = 0; i < length; ++i) {
429
- this.metadataProperty[startIndex + i] = metadata[i];
553
+ if (this.fifoCapacity) {
554
+ (0, array_1.appendRangeFifo)(metadata, this.metadataProperty, this.fifoCapacity, this.xValues.getStartIndex());
555
+ }
556
+ else {
557
+ var startIndex = this.metadataProperty.length;
558
+ // reserve space for new values
559
+ this.metadataProperty.length += length;
560
+ // merge new values into the collection
561
+ for (var i = 0; i < length; ++i) {
562
+ this.metadataProperty[startIndex + i] = metadata[i];
563
+ }
430
564
  }
431
565
  // Alternative approach
432
566
  // this.metadataProperty = this.metadataProperty.concat(metadata);
@@ -490,6 +624,23 @@ var BaseDataSeries = /** @class */ (function () {
490
624
  }
491
625
  return xValues;
492
626
  };
627
+ BaseDataSeries.prototype.throwIfFifo = function (operation) {
628
+ if (this.fifoCapacity) {
629
+ throw new Error("".concat(operation, " is not supported in fifo mode"));
630
+ }
631
+ };
632
+ BaseDataSeries.prototype.reserve = function (size) {
633
+ if (this.fifoCapacity) {
634
+ throw new Error("Resizing a fifo dataSeries is not currently supported.");
635
+ }
636
+ Guard_1.Guard.argumentIsRealInteger(size, "capacity");
637
+ this.xValues.reserve(size);
638
+ this.yValues.reserve(size);
639
+ };
640
+ BaseDataSeries.prototype.calculateInitialCapacity = function (options) {
641
+ var _a, _b, _c;
642
+ return Math.max((_a = options === null || options === void 0 ? void 0 : options.capacity) !== null && _a !== void 0 ? _a : 0, (_c = (_b = options === null || options === void 0 ? void 0 : options.xValues) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0);
643
+ };
493
644
  BaseDataSeries.prototype.fillMetadataIfUndefined = function () {
494
645
  if (this.metadataProperty === undefined) {
495
646
  var length_1 = this.count();
@@ -511,7 +662,7 @@ var BaseDataSeries = /** @class */ (function () {
511
662
  return yValues;
512
663
  };
513
664
  return BaseDataSeries;
514
- }());
665
+ }(DeletableEntity_1.DeletableEntity));
515
666
  exports.BaseDataSeries = BaseDataSeries;
516
667
  /** @ignore */
517
668
  var getIndicesRange = function (webAssemblyContext, xValues, xRange, isSorted) {