scichart 2.2.2417 → 3.0.0-beta.230

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 (394) hide show
  1. package/Builder/buildDataSeries.d.ts +16 -1
  2. package/Builder/buildDataSeries.js +24 -1
  3. package/Builder/buildSeries.d.ts +60 -3
  4. package/Builder/buildSeries.js +28 -1
  5. package/Builder/buildSurface.d.ts +28 -2
  6. package/Builder/buildSurface.js +53 -31
  7. package/Builder/chartBuilder.d.ts +20 -7
  8. package/Builder/chartBuilder.js +37 -3
  9. package/Charting/ChartModifiers/ChartModifierBase.d.ts +21 -0
  10. package/Charting/ChartModifiers/ChartModifierBase.js +12 -0
  11. package/Charting/ChartModifiers/ChartModifierBase2D.js +2 -1
  12. package/Charting/ChartModifiers/CursorModifier.d.ts +92 -19
  13. package/Charting/ChartModifiers/CursorModifier.js +147 -58
  14. package/Charting/ChartModifiers/DataPointSelectionModifier.js +2 -1
  15. package/Charting/ChartModifiers/LegendModifier.js +2 -1
  16. package/Charting/ChartModifiers/ModifierMouseArgs.d.ts +6 -1
  17. package/Charting/ChartModifiers/ModifierMouseArgs.js +13 -3
  18. package/Charting/ChartModifiers/MouseWheelZoomModifier.d.ts +2 -2
  19. package/Charting/ChartModifiers/MouseWheelZoomModifier.js +16 -4
  20. package/Charting/ChartModifiers/OverviewRangeSelectionModifier.d.ts +2 -1
  21. package/Charting/ChartModifiers/OverviewRangeSelectionModifier.js +8 -4
  22. package/Charting/ChartModifiers/PinchZoomModifier.js +2 -1
  23. package/Charting/ChartModifiers/RolloverModifier.d.ts +43 -21
  24. package/Charting/ChartModifiers/RolloverModifier.js +48 -29
  25. package/Charting/ChartModifiers/RubberBandXyZoomModifier.d.ts +9 -6
  26. package/Charting/ChartModifiers/RubberBandXyZoomModifier.js +10 -8
  27. package/Charting/ChartModifiers/SeriesSelectionModifier.js +2 -1
  28. package/Charting/ChartModifiers/XAxisDragModifier.d.ts +1 -1
  29. package/Charting/ChartModifiers/XAxisDragModifier.js +2 -1
  30. package/Charting/ChartModifiers/YAxisDragModifier.d.ts +1 -1
  31. package/Charting/ChartModifiers/YAxisDragModifier.js +2 -1
  32. package/Charting/ChartModifiers/ZoomExtentsModifier.js +2 -1
  33. package/Charting/ChartModifiers/ZoomPanModifier.js +2 -1
  34. package/Charting/ChartModifiers/constants.d.ts +3 -1
  35. package/Charting/ChartModifiers/constants.js +2 -0
  36. package/Charting/Drawing/BatchRenderContext.d.ts +6 -0
  37. package/Charting/Drawing/BatchRenderContext.js +40 -0
  38. package/Charting/Drawing/RenderSurface.d.ts +2 -1
  39. package/Charting/Drawing/RenderSurface.js +3 -2
  40. package/Charting/Drawing/WebGlRenderContext2D.d.ts +19 -4
  41. package/Charting/Drawing/WebGlRenderContext2D.js +70 -41
  42. package/Charting/LayoutManager/BaseCenteredAxisLayoutStrategy.js +2 -1
  43. package/Charting/LayoutManager/BottomAlignedInnerAxisLayoutStrategy.js +1 -1
  44. package/Charting/LayoutManager/CentralAxesLayoutManager.js +2 -1
  45. package/Charting/LayoutManager/LayoutManager.d.ts +2 -1
  46. package/Charting/LayoutManager/LayoutManager.js +6 -5
  47. package/Charting/LayoutManager/LeftAlignedInnerAxisLayoutStrategy.js +1 -1
  48. package/Charting/LayoutManager/RightAlignedInnerAxisLayoutStrategy.js +1 -1
  49. package/Charting/LayoutManager/TopAlignedInnerAxisLayoutStrategy.js +1 -1
  50. package/Charting/Model/BaseDataSeries.d.ts +10 -1
  51. package/Charting/Model/BaseDataSeries.js +9 -8
  52. package/Charting/Model/BaseHeatmapDataSeries.d.ts +18 -5
  53. package/Charting/Model/BaseHeatmapDataSeries.js +21 -13
  54. package/Charting/Model/ChartData/SeriesInfo.d.ts +6 -0
  55. package/Charting/Model/ChartData/SeriesInfo.js +5 -0
  56. package/Charting/Model/ChartData/XyySeriesInfo.d.ts +2 -0
  57. package/Charting/Model/ChartData/XyySeriesInfo.js +2 -0
  58. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.js +4 -3
  59. package/Charting/Model/Filters/HlcCustomFilter.js +12 -9
  60. package/Charting/Model/Filters/HlcFilterBase.js +2 -1
  61. package/Charting/Model/Filters/HlcScaleOffsetFilter.js +2 -1
  62. package/Charting/Model/Filters/OhlcCustomFilter.js +12 -9
  63. package/Charting/Model/Filters/OhlcScaleOffsetFilter.js +2 -1
  64. package/Charting/Model/Filters/XyCustomFilter.js +12 -9
  65. package/Charting/Model/Filters/XyFilterBase.d.ts +14 -5
  66. package/Charting/Model/Filters/XyFilterBase.js +47 -15
  67. package/Charting/Model/Filters/XyMovingAverageFilter.js +2 -1
  68. package/Charting/Model/Filters/XyRatioFilter.js +2 -1
  69. package/Charting/Model/Filters/XyScaleOffsetFilter.js +2 -1
  70. package/Charting/Model/Filters/XyyCustomFilter.js +12 -9
  71. package/Charting/Model/Filters/XyyFilterBase.js +2 -1
  72. package/Charting/Model/Filters/XyyScaleOffsetFilter.js +2 -1
  73. package/Charting/Model/Filters/XyzCustomFilter.js +12 -9
  74. package/Charting/Model/Filters/XyzFilterBase.js +2 -1
  75. package/Charting/Model/Filters/XyzScaleOffsetFilter.js +2 -1
  76. package/Charting/Model/IDataSeries.d.ts +9 -1
  77. package/Charting/Model/IDataSeries.js +8 -0
  78. package/Charting/Model/NonUniformHeatmapDataSeries.d.ts +112 -0
  79. package/Charting/Model/NonUniformHeatmapDataSeries.js +261 -0
  80. package/Charting/Model/PaletteFactory.d.ts +40 -4
  81. package/Charting/Model/PaletteFactory.js +37 -11
  82. package/Charting/Model/XyTextDataSeries.d.ts +121 -0
  83. package/Charting/Model/XyTextDataSeries.js +274 -0
  84. package/Charting/Numerics/CoordinateCalculators/CoordinateCalculatorBase.d.ts +1 -1
  85. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js +1 -1
  86. package/Charting/Services/RenderPassData.d.ts +15 -5
  87. package/Charting/Services/RenderPassData.js +27 -5
  88. package/Charting/Services/SciChartRenderer.d.ts +2 -1
  89. package/Charting/Services/SciChartRenderer.js +91 -29
  90. package/Charting/Themes/IThemeProvider.d.ts +61 -0
  91. package/Charting/Themes/IThemeProvider.js +67 -1
  92. package/Charting/Themes/SciChartJSDarkTheme.d.ts +4 -0
  93. package/Charting/Themes/SciChartJSDarkTheme.js +6 -2
  94. package/Charting/Themes/SciChartJSDarkv2Theme.js +3 -0
  95. package/Charting/Themes/SciChartJSLightTheme.d.ts +8 -0
  96. package/Charting/Themes/SciChartJSLightTheme.js +8 -0
  97. package/Charting/Themes/SciChartJsNavyTheme.d.ts +10 -0
  98. package/Charting/Themes/SciChartJsNavyTheme.js +49 -0
  99. package/Charting/Visuals/Annotations/AdornerLayer.js +4 -8
  100. package/Charting/Visuals/Annotations/AnnotationBase.d.ts +80 -7
  101. package/Charting/Visuals/Annotations/AnnotationBase.js +238 -28
  102. package/Charting/Visuals/Annotations/AnnotationClickEventArgs.d.ts +11 -0
  103. package/Charting/Visuals/Annotations/AnnotationClickEventArgs.js +12 -0
  104. package/Charting/Visuals/Annotations/AxisMarkerAnnotation.d.ts +1 -0
  105. package/Charting/Visuals/Annotations/AxisMarkerAnnotation.js +18 -19
  106. package/Charting/Visuals/Annotations/BoxAnnotation.d.ts +1 -0
  107. package/Charting/Visuals/Annotations/BoxAnnotation.js +69 -67
  108. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.d.ts +2 -2
  109. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +20 -20
  110. package/Charting/Visuals/Annotations/CustomAnnotation.d.ts +1 -1
  111. package/Charting/Visuals/Annotations/CustomAnnotation.js +3 -2
  112. package/Charting/Visuals/Annotations/HorizontalLineAnnotation.js +6 -3
  113. package/Charting/Visuals/Annotations/IAdornerProvider.d.ts +12 -0
  114. package/Charting/Visuals/Annotations/IAnnotation.d.ts +9 -0
  115. package/Charting/Visuals/Annotations/IAnnotation.js +9 -0
  116. package/Charting/Visuals/Annotations/LineAnnotation.d.ts +1 -0
  117. package/Charting/Visuals/Annotations/LineAnnotation.js +29 -35
  118. package/Charting/Visuals/Annotations/NativeTextAnnotation.d.ts +193 -0
  119. package/Charting/Visuals/Annotations/NativeTextAnnotation.js +536 -0
  120. package/Charting/Visuals/Annotations/OverviewCustomResizableAnnotation.d.ts +4 -2
  121. package/Charting/Visuals/Annotations/OverviewCustomResizableAnnotation.js +19 -14
  122. package/Charting/Visuals/Annotations/RolloverLegendSvgAnnotation.d.ts +2 -2
  123. package/Charting/Visuals/Annotations/RolloverLegendSvgAnnotation.js +9 -8
  124. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.d.ts +2 -2
  125. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.js +6 -6
  126. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.d.ts +2 -2
  127. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +20 -21
  128. package/Charting/Visuals/Annotations/SvgAnnotationBase.d.ts +13 -2
  129. package/Charting/Visuals/Annotations/SvgAnnotationBase.js +34 -42
  130. package/Charting/Visuals/Annotations/TextAnnotation.d.ts +2 -2
  131. package/Charting/Visuals/Annotations/TextAnnotation.js +41 -22
  132. package/Charting/Visuals/Annotations/VerticalLineAnnotation.js +6 -3
  133. package/Charting/Visuals/Annotations/annotationHelpers.d.ts +6 -6
  134. package/Charting/Visuals/Annotations/annotationHelpers.js +7 -6
  135. package/Charting/Visuals/Annotations/constants.d.ts +13 -1
  136. package/Charting/Visuals/Annotations/constants.js +12 -0
  137. package/Charting/Visuals/Axis/AxisBase2D.d.ts +24 -4
  138. package/Charting/Visuals/Axis/AxisBase2D.js +115 -38
  139. package/Charting/Visuals/Axis/AxisCore.d.ts +10 -5
  140. package/Charting/Visuals/Axis/AxisCore.js +11 -10
  141. package/Charting/Visuals/Axis/AxisRenderer.js +114 -20
  142. package/Charting/Visuals/Axis/CategoryAxis.js +2 -1
  143. package/Charting/Visuals/Axis/CategoryAxisBase.d.ts +15 -15
  144. package/Charting/Visuals/Axis/CategoryAxisBase.js +14 -12
  145. package/Charting/Visuals/Axis/DateTimeNumericAxis.js +2 -1
  146. package/Charting/Visuals/Axis/DeltaCalculator/DateTimeDeltaCalculator.js +2 -1
  147. package/Charting/Visuals/Axis/LabelProvider/DateLabelProvider.js +2 -1
  148. package/Charting/Visuals/Axis/LabelProvider/LabelCache.js +2 -0
  149. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.d.ts +14 -0
  150. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.js +140 -33
  151. package/Charting/Visuals/Axis/LabelProvider/LogarithmicLabelProvider.js +2 -1
  152. package/Charting/Visuals/Axis/LabelProvider/NumericLabelProvider.js +2 -1
  153. package/Charting/Visuals/Axis/LabelProvider/PieLabelProvider.js +2 -1
  154. package/Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider.d.ts +31 -1
  155. package/Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider.js +64 -42
  156. package/Charting/Visuals/Axis/LabelProvider/TextLabelProvider.d.ts +2 -2
  157. package/Charting/Visuals/Axis/LabelProvider/TextLabelProvider.js +16 -19
  158. package/Charting/Visuals/Axis/LogarithmicAxis.js +9 -6
  159. package/Charting/Visuals/Axis/NumericAxis.js +3 -3
  160. package/Charting/Visuals/Axis/constants.d.ts +1 -0
  161. package/Charting/Visuals/Axis/constants.js +1 -0
  162. package/Charting/Visuals/HeatmapLegend.d.ts +95 -0
  163. package/Charting/Visuals/HeatmapLegend.js +192 -0
  164. package/Charting/Visuals/Helpers/NativeObject.d.ts +15 -2
  165. package/Charting/Visuals/Helpers/NativeObject.js +72 -6
  166. package/Charting/Visuals/I2DSurfaceOptions.d.ts +46 -0
  167. package/Charting/Visuals/PointMarkers/BasePointMarker.d.ts +5 -0
  168. package/Charting/Visuals/PointMarkers/BasePointMarker.js +28 -0
  169. package/Charting/Visuals/PointMarkers/IPointMarker.d.ts +8 -0
  170. package/Charting/Visuals/RenderableSeries/Animations/BandAnimation.js +2 -1
  171. package/Charting/Visuals/RenderableSeries/Animations/BandAnimationStyle.js +2 -1
  172. package/Charting/Visuals/RenderableSeries/Animations/BubbleAnimation.js +2 -1
  173. package/Charting/Visuals/RenderableSeries/Animations/CandlestickAnimation.js +2 -1
  174. package/Charting/Visuals/RenderableSeries/Animations/CandlestickAnimationStyle.js +2 -1
  175. package/Charting/Visuals/RenderableSeries/Animations/ColumnAnimation.js +2 -1
  176. package/Charting/Visuals/RenderableSeries/Animations/ColumnAnimationStyle.js +2 -1
  177. package/Charting/Visuals/RenderableSeries/Animations/CustomPointMarkerStyle.js +2 -1
  178. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.js +2 -1
  179. package/Charting/Visuals/RenderableSeries/Animations/LineAnimation.js +2 -1
  180. package/Charting/Visuals/RenderableSeries/Animations/MountainAnimation.js +2 -1
  181. package/Charting/Visuals/RenderableSeries/Animations/MountainAnimationStyle.js +2 -1
  182. package/Charting/Visuals/RenderableSeries/Animations/OhlcAnimation.js +2 -1
  183. package/Charting/Visuals/RenderableSeries/Animations/OhlcAnimationStyle.js +2 -1
  184. package/Charting/Visuals/RenderableSeries/Animations/PointMarkerStyle.js +2 -1
  185. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.js +2 -1
  186. package/Charting/Visuals/RenderableSeries/Animations/ScatterAnimation.js +2 -1
  187. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.d.ts +8 -2
  188. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.js +3 -3
  189. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.js +2 -1
  190. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.d.ts +7 -0
  191. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +42 -10
  192. package/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.d.ts +128 -0
  193. package/Charting/Visuals/RenderableSeries/BaseHeatmapRenderableSeries.js +201 -0
  194. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.d.ts +26 -0
  195. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.js +39 -3
  196. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.d.ts +7 -0
  197. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.js +17 -2
  198. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.d.ts +2 -0
  199. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js +15 -2
  200. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +10 -0
  201. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +93 -17
  202. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +8 -1
  203. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +21 -1
  204. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.d.ts +1 -0
  205. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +4 -0
  206. package/Charting/Visuals/RenderableSeries/DataLabels/BandSeriesDataLabelProvider.d.ts +43 -0
  207. package/Charting/Visuals/RenderableSeries/DataLabels/BandSeriesDataLabelProvider.js +142 -0
  208. package/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.d.ts +92 -0
  209. package/Charting/Visuals/RenderableSeries/DataLabels/BaseDataLabelProvider.js +129 -0
  210. package/Charting/Visuals/RenderableSeries/DataLabels/BubbleSeriesDataLabelProvider.d.ts +17 -0
  211. package/Charting/Visuals/RenderableSeries/DataLabels/BubbleSeriesDataLabelProvider.js +62 -0
  212. package/Charting/Visuals/RenderableSeries/DataLabels/ColumnSeriesDataLabelProvider.d.ts +47 -0
  213. package/Charting/Visuals/RenderableSeries/DataLabels/ColumnSeriesDataLabelProvider.js +125 -0
  214. package/Charting/Visuals/RenderableSeries/DataLabels/ContoursDataLabelProvider.d.ts +71 -0
  215. package/Charting/Visuals/RenderableSeries/DataLabels/ContoursDataLabelProvider.js +221 -0
  216. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelLayoutManager.d.ts +5 -0
  217. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelLayoutManager.js +2 -0
  218. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.d.ts +208 -0
  219. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.js +410 -0
  220. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.d.ts +40 -0
  221. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelState.js +141 -0
  222. package/Charting/Visuals/RenderableSeries/DataLabels/HeatMapDataLabelProvider.d.ts +63 -0
  223. package/Charting/Visuals/RenderableSeries/DataLabels/HeatMapDataLabelProvider.js +198 -0
  224. package/Charting/Visuals/RenderableSeries/DataLabels/LineSeriesDataLabelProvider.d.ts +35 -0
  225. package/Charting/Visuals/RenderableSeries/DataLabels/LineSeriesDataLabelProvider.js +92 -0
  226. package/Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider.d.ts +12 -0
  227. package/Charting/Visuals/RenderableSeries/DataLabels/NonUniformHeatmapDataLabelProvider.js +134 -0
  228. package/Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider.d.ts +56 -0
  229. package/Charting/Visuals/RenderableSeries/DataLabels/TextDataLabelProvider.js +167 -0
  230. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.d.ts +0 -1
  231. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +1 -2
  232. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.d.ts +5 -2
  233. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +47 -40
  234. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +1 -1
  235. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.d.ts +1 -0
  236. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +18 -5
  237. package/Charting/Visuals/RenderableSeries/DrawingProviders/ErrorSeriesDrawingProvider.d.ts +0 -1
  238. package/Charting/Visuals/RenderableSeries/DrawingProviders/ErrorSeriesDrawingProvider.js +14 -27
  239. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.d.ts +17 -4
  240. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +34 -11
  241. package/Charting/Visuals/RenderableSeries/DrawingProviders/NonUniformHeatmapDrawingProvider.d.ts +36 -0
  242. package/Charting/Visuals/RenderableSeries/DrawingProviders/NonUniformHeatmapDrawingProvider.js +493 -0
  243. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.d.ts +5 -2
  244. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +8 -5
  245. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider.js +4 -4
  246. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.d.ts +3 -0
  247. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +15 -4
  248. package/Charting/Visuals/RenderableSeries/FastBandRenderableSeries.js +2 -1
  249. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.d.ts +21 -0
  250. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js +40 -4
  251. package/Charting/Visuals/RenderableSeries/FastCandlestickRenderableSeries.d.ts +2 -0
  252. package/Charting/Visuals/RenderableSeries/FastCandlestickRenderableSeries.js +18 -3
  253. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.d.ts +36 -2
  254. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.js +77 -8
  255. package/Charting/Visuals/RenderableSeries/FastErrorBarsRenderableSeries.js +2 -1
  256. package/Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries.d.ts +7 -0
  257. package/Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries.js +16 -4
  258. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.js +2 -1
  259. package/Charting/Visuals/RenderableSeries/FastMountainRenderableSeries.js +2 -1
  260. package/Charting/Visuals/RenderableSeries/FastOhlcRenderableSeries.js +2 -1
  261. package/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.d.ts +17 -0
  262. package/Charting/Visuals/RenderableSeries/FastTextRenderableSeries.js +45 -0
  263. package/Charting/Visuals/RenderableSeries/HeatmapColorMap.js +3 -2
  264. package/Charting/Visuals/RenderableSeries/HitTest/BandSeriesHitTestProvider.js +35 -5
  265. package/Charting/Visuals/RenderableSeries/HitTest/BaseHitTestProvider.js +17 -1
  266. package/Charting/Visuals/RenderableSeries/HitTest/HitTestInfo.d.ts +8 -0
  267. package/Charting/Visuals/RenderableSeries/HitTest/MountainSeriesHitTestProvider.js +7 -1
  268. package/Charting/Visuals/RenderableSeries/HitTest/NonUniformHeatmapHitTestProvider.d.ts +20 -0
  269. package/Charting/Visuals/RenderableSeries/HitTest/NonUniformHeatmapHitTestProvider.js +86 -0
  270. package/Charting/Visuals/RenderableSeries/HitTest/TextSeriesHitTestProvider.d.ts +6 -0
  271. package/Charting/Visuals/RenderableSeries/HitTest/TextSeriesHitTestProvider.js +56 -0
  272. package/Charting/Visuals/RenderableSeries/HitTest/UniformHeatmapHitTestProvider.js +1 -1
  273. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.d.ts +7 -1
  274. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js +34 -2
  275. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +6 -1
  276. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +12 -0
  277. package/Charting/Visuals/RenderableSeries/NonUniformHeatmapRenderableSeries.d.ts +74 -0
  278. package/Charting/Visuals/RenderableSeries/NonUniformHeatmapRenderableSeries.js +99 -0
  279. package/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.d.ts +7 -2
  280. package/Charting/Visuals/RenderableSeries/ShaderEffect.js +2 -2
  281. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +2 -1
  282. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +2 -3
  283. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +2 -1
  284. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +2 -1
  285. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +2 -1
  286. package/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.d.ts +3 -0
  287. package/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.js +13 -2
  288. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +4 -1
  289. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.d.ts +7 -0
  290. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.js +33 -9
  291. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.d.ts +5 -0
  292. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.js +7 -1
  293. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.d.ts +2 -75
  294. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.js +8 -130
  295. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.d.ts +5 -0
  296. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js +7 -1
  297. package/Charting/Visuals/RenderableSeries/constants.d.ts +5 -1
  298. package/Charting/Visuals/RenderableSeries/constants.js +4 -0
  299. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.js +3 -3
  300. package/Charting/Visuals/SciChartDefaults.d.ts +4 -0
  301. package/Charting/Visuals/SciChartDefaults.js +4 -0
  302. package/Charting/Visuals/SciChartOverview.js +5 -3
  303. package/Charting/Visuals/SciChartPieSurface/PieSegment/IPieSegment.d.ts +4 -0
  304. package/Charting/Visuals/SciChartPieSurface/PieSegment/PieSegment.d.ts +13 -0
  305. package/Charting/Visuals/SciChartPieSurface/PieSegment/PieSegment.js +22 -4
  306. package/Charting/Visuals/SciChartPieSurface/PieSegment/constants.d.ts +2 -1
  307. package/Charting/Visuals/SciChartPieSurface/PieSegment/constants.js +1 -0
  308. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.d.ts +5 -0
  309. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +17 -19
  310. package/Charting/Visuals/SciChartSurface.d.ts +238 -7
  311. package/Charting/Visuals/SciChartSurface.js +800 -28
  312. package/Charting/Visuals/SciChartSurfaceBase.d.ts +16 -1
  313. package/Charting/Visuals/SciChartSurfaceBase.js +34 -2
  314. package/Charting/Visuals/TextureManager/CanvasTexture.js +1 -1
  315. package/Charting/Visuals/TextureManager/DpiHelper.js +3 -7
  316. package/Charting/Visuals/TextureManager/TextureManager.d.ts +11 -0
  317. package/Charting/Visuals/TextureManager/TextureManager.js +37 -1
  318. package/Charting/Visuals/createMaster.js +7 -10
  319. package/Charting/Visuals/createSingle.js +2 -0
  320. package/Charting/Visuals/licenseManager2D.js +9 -9
  321. package/Charting/Visuals/sciChartInitCommon.js +16 -12
  322. package/Charting3D/CameraController.d.ts +5 -0
  323. package/Charting3D/CameraController.js +6 -0
  324. package/Charting3D/ChartModifiers/ResetCamera3DModifier.js +2 -1
  325. package/Charting3D/Visuals/Axis/AxisBase3D.js +7 -5
  326. package/Charting3D/Visuals/Axis/NumericAxis3D.js +2 -1
  327. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.d.ts +4 -0
  328. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.js +7 -0
  329. package/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.js +6 -4
  330. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.d.ts +7 -2
  331. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.js +3 -2
  332. package/Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D.d.ts +0 -5
  333. package/Charting3D/Visuals/RenderableSeries/SurfaceMesh/SurfaceMeshRenderableSeries3D.js +12 -11
  334. package/Charting3D/Visuals/SciChart3DSurface.d.ts +2 -2
  335. package/Charting3D/Visuals/SciChart3DSurface.js +18 -11
  336. package/Charting3D/Visuals/createMaster3d.js +10 -18
  337. package/Charting3D/Visuals/createSingle3d.js +12 -10
  338. package/Core/Animations/GenericAnimation.d.ts +2 -0
  339. package/Core/Animations/GenericAnimation.js +3 -0
  340. package/Core/Animations/NumberRangeAnimator.js +7 -2
  341. package/Core/BuildStamp.d.ts +1 -1
  342. package/Core/BuildStamp.js +2 -2
  343. package/Core/Mouse/MouseManager.d.ts +20 -0
  344. package/Core/Mouse/MouseManager.js +201 -30
  345. package/Core/Telemetry.js +1 -1
  346. package/README.md +91 -403
  347. package/_wasm/scichart.browser.js +1 -1
  348. package/_wasm/scichart2d.data +0 -0
  349. package/_wasm/scichart2d.js +280 -267
  350. package/_wasm/scichart2d.wasm +0 -0
  351. package/_wasm/scichart3d.data +0 -0
  352. package/_wasm/scichart3d.js +280 -268
  353. package/_wasm/scichart3d.wasm +0 -0
  354. package/constants/performanceWarnings.d.ts +2 -0
  355. package/constants/performanceWarnings.js +3 -1
  356. package/package.json +2 -2
  357. package/types/AutoColorMode.d.ts +9 -0
  358. package/types/AutoColorMode.js +13 -0
  359. package/types/BaseType.d.ts +3 -1
  360. package/types/BaseType.js +2 -0
  361. package/types/DataLabelProviderType.d.ts +15 -0
  362. package/types/DataLabelProviderType.js +19 -0
  363. package/types/DataLabelSkipMode.d.ts +21 -0
  364. package/types/DataLabelSkipMode.js +25 -0
  365. package/types/DefaultRenderLayer.d.ts +10 -0
  366. package/types/DefaultRenderLayer.js +14 -0
  367. package/types/MousePosition.d.ts +1 -1
  368. package/types/MousePosition.js +1 -1
  369. package/types/SeriesType.d.ts +7 -1
  370. package/types/SeriesType.js +6 -0
  371. package/types/SvgClippingMode.d.ts +17 -0
  372. package/types/SvgClippingMode.js +21 -0
  373. package/types/TDataLabelStyle.d.ts +16 -0
  374. package/types/TDataLabelStyle.js +2 -0
  375. package/types/TSciChart.d.ts +214 -118
  376. package/types/TSciChart3D.d.ts +104 -70
  377. package/types/TextPosition.d.ts +17 -0
  378. package/types/TextPosition.js +39 -0
  379. package/types/ThemeProviderType.d.ts +3 -1
  380. package/types/ThemeProviderType.js +2 -0
  381. package/utils/ccall/appendDoubleVectorFromJsArray.d.ts +10 -1
  382. package/utils/ccall/appendDoubleVectorFromJsArray.js +24 -1
  383. package/utils/memoize.d.ts +1 -0
  384. package/utils/memoize.js +26 -0
  385. package/utils/number.d.ts +1 -0
  386. package/utils/number.js +5 -1
  387. package/utils/parseColor.d.ts +2 -0
  388. package/utils/parseColor.js +3 -3
  389. package/utils/text.d.ts +5 -0
  390. package/utils/text.js +48 -0
  391. package/utils/translate.d.ts +12 -2
  392. package/utils/translate.js +67 -11
  393. package/utils/zeroArray2D.d.ts +5 -0
  394. package/utils/zeroArray2D.js +5 -0
@@ -23,6 +23,7 @@ var XyPointSeriesResampled_1 = require("../../Model/PointSeries/XyPointSeriesRes
23
23
  var XyPointSeriesWrapped_1 = require("../../Model/PointSeries/XyPointSeriesWrapped");
24
24
  var ExtremeResamplerHelper_1 = require("../../Numerics/Resamplers/ExtremeResamplerHelper");
25
25
  var ResamplingMode_1 = require("../../Numerics/Resamplers/ResamplingMode");
26
+ var IThemeProvider_1 = require("../../Themes/IThemeProvider");
26
27
  var AxisCore_1 = require("../Axis/AxisCore");
27
28
  var SciChartDefaults_1 = require("../SciChartDefaults");
28
29
  var SciChartSurfaceBase_1 = require("../SciChartSurfaceBase");
@@ -33,6 +34,7 @@ var RolloverModifierRenderableSeriesProps_1 = require("./RolloverModifier/Rollov
33
34
  var SeriesHoveredArgs_1 = require("./SeriesHoveredArgs");
34
35
  var SeriesSelectedArgs_1 = require("./SeriesSelectedArgs");
35
36
  var SeriesVisibleChangedArgs_1 = require("./SeriesVisibleChangedArgs");
37
+ var DataLabelProviderType_1 = require("../../../types/DataLabelProviderType");
36
38
  /**
37
39
  * @summary Defines the base class to a Render Series (or Chart Type) in SciChart's High Performance Real-time
38
40
  * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
@@ -186,6 +188,20 @@ var BaseRenderableSeries = /** @class */ (function () {
186
188
  }
187
189
  this.onDpiChanged = this.onDpiChanged.bind(this);
188
190
  this.resamplerHelper = new ExtremeResamplerHelper_1.ExtremeResamplerHelper(webAssemblyContext);
191
+ if (options === null || options === void 0 ? void 0 : options.dataLabelProvider) {
192
+ if (!("draw" in options.dataLabelProvider)) {
193
+ if (options.dataLabelProvider.type === DataLabelProviderType_1.EDataLabelProviderType.Custom) {
194
+ options.dataLabelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.DataLabelProvider, options.dataLabelProvider.customType, webAssemblyContext, options.dataLabelProvider.options);
195
+ }
196
+ else {
197
+ options.dataLabelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.DataLabelProvider, options.dataLabelProvider.type, webAssemblyContext, options.dataLabelProvider.options);
198
+ }
199
+ }
200
+ }
201
+ this.dataLabelProviderProperty = options === null || options === void 0 ? void 0 : options.dataLabelProvider;
202
+ if (this.dataLabelProviderProperty) {
203
+ this.dataLabelProviderProperty.onAttach(webAssemblyContext, this);
204
+ }
189
205
  }
190
206
  /** @inheritDoc */
191
207
  BaseRenderableSeries.prototype.applyTheme = function (themeProvider) {
@@ -358,12 +374,14 @@ var BaseRenderableSeries = /** @class */ (function () {
358
374
  Object.defineProperty(BaseRenderableSeries.prototype, "stroke", {
359
375
  /** @inheritDoc */
360
376
  get: function () {
361
- return this.strokeProperty;
377
+ return (0, IThemeProvider_1.stripAutoColor)(this.strokeProperty);
362
378
  },
363
379
  /** @inheritDoc */
364
380
  set: function (htmlColorCode) {
365
- this.strokeProperty = htmlColorCode;
366
- this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);
381
+ if (this.strokeProperty !== htmlColorCode) {
382
+ this.strokeProperty = htmlColorCode;
383
+ this.notifyPropertyChanged(constants_1.PROPERTY.STROKE);
384
+ }
367
385
  },
368
386
  enumerable: false,
369
387
  configurable: true
@@ -375,8 +393,10 @@ var BaseRenderableSeries = /** @class */ (function () {
375
393
  },
376
394
  /** @inheritDoc */
377
395
  set: function (value) {
378
- this.strokeThicknessProperty = value;
379
- this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);
396
+ if (this.strokeThicknessProperty !== value) {
397
+ this.strokeThicknessProperty = value;
398
+ this.notifyPropertyChanged(constants_1.PROPERTY.STROKE_THICKNESS);
399
+ }
380
400
  },
381
401
  enumerable: false,
382
402
  configurable: true
@@ -388,8 +408,10 @@ var BaseRenderableSeries = /** @class */ (function () {
388
408
  },
389
409
  /** @inheritDoc */
390
410
  set: function (value) {
391
- this.opacityProperty = value;
392
- this.notifyPropertyChanged(constants_1.PROPERTY.OPACITY);
411
+ if (this.opacityProperty !== value) {
412
+ this.opacityProperty = value;
413
+ this.notifyPropertyChanged(constants_1.PROPERTY.OPACITY);
414
+ }
393
415
  },
394
416
  enumerable: false,
395
417
  configurable: true
@@ -539,6 +561,10 @@ var BaseRenderableSeries = /** @class */ (function () {
539
561
  finally {
540
562
  renderContext.popShaderEffect();
541
563
  }
564
+ if (this.dataLabelProvider) {
565
+ this.dataLabelProvider.generateDataLabels(renderContext, renderPassData);
566
+ // Don't draw Text here. Renderer will call draw once all text has been created to allow for global layout adjustments
567
+ }
542
568
  }
543
569
  };
544
570
  /** @inheritDoc */
@@ -550,6 +576,7 @@ var BaseRenderableSeries = /** @class */ (function () {
550
576
  this.effect = (0, Deleter_1.deleteSafe)(this.effect);
551
577
  (_a = this.pointMarker) === null || _a === void 0 ? void 0 : _a.delete();
552
578
  this.resamplerHelper = (0, Deleter_1.deleteSafe)(this.resamplerHelper);
579
+ this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);
553
580
  };
554
581
  /** @inheritDoc */
555
582
  BaseRenderableSeries.prototype.getXRange = function () {
@@ -679,7 +706,7 @@ var BaseRenderableSeries = /** @class */ (function () {
679
706
  };
680
707
  /** @inheritDoc */
681
708
  BaseRenderableSeries.prototype.toJSON = function (excludeData) {
682
- var _a, _b, _c, _d, _e, _f, _g, _h;
709
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
683
710
  if (excludeData === void 0) { excludeData = false; }
684
711
  var paletteProvider;
685
712
  if (this.paletteProvider) {
@@ -707,25 +734,33 @@ var BaseRenderableSeries = /** @class */ (function () {
707
734
  yAxisId: this.yAxisId,
708
735
  animation: this.animation,
709
736
  resamplingMode: this.resamplingMode,
710
- resamplingPrecision: this.resamplingPrecision
737
+ resamplingPrecision: this.resamplingPrecision,
738
+ // @ts-ignore
739
+ dataLabelProvider: (_c = this.dataLabelProvider) === null || _c === void 0 ? void 0 : _c.toJSON()
711
740
  // onSelectedChanged: this.onSelectedChanged
712
741
  };
713
- if (((_c = this.dataSeries) === null || _c === void 0 ? void 0 : _c.type) === IDataSeries_1.EDataSeriesType.Xy) {
742
+ if (((_d = this.dataSeries) === null || _d === void 0 ? void 0 : _d.type) === IDataSeries_1.EDataSeriesType.Xy) {
714
743
  return { type: this.type, options: options, xyData: this.dataSeries.toJSON(excludeData) };
715
744
  }
716
- else if (((_d = this.dataSeries) === null || _d === void 0 ? void 0 : _d.type) === IDataSeries_1.EDataSeriesType.Xyy) {
745
+ else if (((_e = this.dataSeries) === null || _e === void 0 ? void 0 : _e.type) === IDataSeries_1.EDataSeriesType.Xyy) {
717
746
  return { type: this.type, options: options, xyyData: this.dataSeries.toJSON(excludeData) };
718
747
  }
719
- else if (((_e = this.dataSeries) === null || _e === void 0 ? void 0 : _e.type) === IDataSeries_1.EDataSeriesType.Xyz) {
748
+ else if (((_f = this.dataSeries) === null || _f === void 0 ? void 0 : _f.type) === IDataSeries_1.EDataSeriesType.Xyz) {
720
749
  return { type: this.type, options: options, xyzData: this.dataSeries.toJSON(excludeData) };
721
750
  }
722
- else if (((_f = this.dataSeries) === null || _f === void 0 ? void 0 : _f.type) === IDataSeries_1.EDataSeriesType.Ohlc) {
751
+ else if (((_g = this.dataSeries) === null || _g === void 0 ? void 0 : _g.type) === IDataSeries_1.EDataSeriesType.Ohlc) {
723
752
  return { type: this.type, options: options, ohlcData: this.dataSeries.toJSON(excludeData) };
724
753
  }
725
- else if (((_g = this.dataSeries) === null || _g === void 0 ? void 0 : _g.type) === IDataSeries_1.EDataSeriesType.Hlc) {
754
+ else if (((_h = this.dataSeries) === null || _h === void 0 ? void 0 : _h.type) === IDataSeries_1.EDataSeriesType.Hlc) {
726
755
  return { type: this.type, options: options, hlcData: this.dataSeries.toJSON(excludeData) };
727
756
  }
728
- else if (((_h = this.dataSeries) === null || _h === void 0 ? void 0 : _h.type) === IDataSeries_1.EDataSeriesType.HeatmapUniform) {
757
+ else if (((_j = this.dataSeries) === null || _j === void 0 ? void 0 : _j.type) === IDataSeries_1.EDataSeriesType.XyText) {
758
+ return { type: this.type, options: options, xyTextData: this.dataSeries.toJSON(excludeData) };
759
+ }
760
+ else if (((_k = this.dataSeries) === null || _k === void 0 ? void 0 : _k.type) === IDataSeries_1.EDataSeriesType.HeatmapUniform) {
761
+ return { type: this.type, options: options, heatmapData: this.dataSeries.toJSON(excludeData) };
762
+ }
763
+ else if (((_l = this.dataSeries) === null || _l === void 0 ? void 0 : _l.type) === IDataSeries_1.EDataSeriesType.HeatmapNonUniform) {
729
764
  return { type: this.type, options: options, heatmapData: this.dataSeries.toJSON(excludeData) };
730
765
  }
731
766
  else {
@@ -803,6 +838,7 @@ var BaseRenderableSeries = /** @class */ (function () {
803
838
  this.pointSeries.xRange = rp.xVisibleRange;
804
839
  }
805
840
  this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rp, this.dataSeries.getNativeXValues(), this.dataSeries.getNativeYValues(), this.pointSeries.intIndexes, this.pointSeries.xValues, this.pointSeries.yValues, false);
841
+ // Always update Indexes as we need them in order to get metadata for resampled series
806
842
  this.pointSeries.updateIndexes();
807
843
  this.pointSeries.clearIntIndexes();
808
844
  // this.pointSeries.debugOutputForUnitTests();
@@ -828,6 +864,7 @@ var BaseRenderableSeries = /** @class */ (function () {
828
864
  var seriesTypeSupportsResampling = ![
829
865
  SeriesType_1.ESeriesType.UniformContoursSeries,
830
866
  SeriesType_1.ESeriesType.UniformHeatmapSeries,
867
+ SeriesType_1.ESeriesType.NonUniformHeatmapSeries,
831
868
  SeriesType_1.ESeriesType.ScatterSeries,
832
869
  SeriesType_1.ESeriesType.ErrorBarsSeries
833
870
  ].includes(this.type);
@@ -849,6 +886,37 @@ var BaseRenderableSeries = /** @class */ (function () {
849
886
  BaseRenderableSeries.prototype.needsResampling = function (rp) {
850
887
  return this.resamplerHelper.needsResampling(rp, this.getNativeXValues());
851
888
  };
889
+ Object.defineProperty(BaseRenderableSeries.prototype, "dataLabelProvider", {
890
+ /** @inheritDoc */
891
+ get: function () {
892
+ return this.dataLabelProviderProperty;
893
+ },
894
+ /** @inheritDoc */
895
+ set: function (provider) {
896
+ this.dataLabelProviderProperty = provider;
897
+ provider.onAttach(this.webAssemblyContext, this);
898
+ this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_TEXT_PROVIDER);
899
+ },
900
+ enumerable: false,
901
+ configurable: true
902
+ });
903
+ /** @inheritDoc */
904
+ BaseRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {
905
+ if (this.strokeProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {
906
+ var color = this.parentSurface.themeProvider.getStrokeColor(index, maxSeries, this.webAssemblyContext);
907
+ this.stroke = IThemeProvider_1.AUTO_COLOR + this.adjustAutoColor("stroke", color);
908
+ }
909
+ if (this.pointMarker) {
910
+ this.pointMarker.resolveAutoColors(index, maxSeries, theme);
911
+ }
912
+ if (this.dataLabelProvider) {
913
+ this.dataLabelProvider.resolveAutoColors(index, maxSeries, theme);
914
+ }
915
+ };
916
+ /** @inheritDoc */
917
+ BaseRenderableSeries.prototype.adjustAutoColor = function (propertyName, color) {
918
+ return color;
919
+ };
852
920
  /**
853
921
  * Sets initial and end animation vectors
854
922
  * @param animation
@@ -901,6 +969,8 @@ var BaseRenderableSeries = /** @class */ (function () {
901
969
  var dataSeries = this.dataSeries;
902
970
  if (dataSeries) {
903
971
  dataSeries.updateAnimationProperties(progress, animation);
972
+ // force pointseries to be recreated otherwise animations will not work for resampled data
973
+ this.currentRenderPassData = undefined;
904
974
  }
905
975
  if (this.invalidateParentCallback) {
906
976
  this.invalidateParentCallback();
@@ -984,17 +1054,23 @@ var getDataPointWidth = function (xValues, xCoordCalc, seriesViewRectWidth, widt
984
1054
  dataPointWidth = Math.min(dataPointWidth, xCoordCalc.getCoordinate(xValues.get(0)) * 2);
985
1055
  }
986
1056
  var candleWidth = Math.floor(dataPointWidth * widthFraction);
987
- if (candleWidth <= 1 || candleWidth % 2 !== 0) {
1057
+ if (candleWidth % 2 !== 0) {
988
1058
  candleWidth -= 1;
989
1059
  }
1060
+ if (candleWidth <= 1) {
1061
+ candleWidth = 1;
1062
+ }
990
1063
  return candleWidth;
991
1064
  };
992
1065
  exports.getDataPointWidth = getDataPointWidth;
993
1066
  /** @ignore */
994
1067
  var getDelta = function (_a) {
995
1068
  var pointSize = _a.pointSize, areaSize = _a.areaSize, range = _a.range;
1069
+ if (areaSize === 0) {
1070
+ return 0;
1071
+ }
996
1072
  var pointScaled = pointSize * DpiHelper_1.DpiHelper.PIXEL_RATIO;
997
1073
  var k = areaSize / (areaSize - pointScaled);
998
- return (Math.abs(range.max - range.min) * (k - 1)) / 2;
1074
+ return (Math.abs(range.diff) * (k - 1)) / 2;
999
1075
  };
1000
1076
  exports.getDelta = getDelta;
@@ -20,6 +20,7 @@ import { SciChartSurface } from "../SciChartSurface";
20
20
  import { TDpiChangedEventArgs } from "../TextureManager/DpiHelper";
21
21
  import { SeriesAnimation } from "./Animations/SeriesAnimation";
22
22
  import { BaseStackedRenderableSeries } from "./BaseStackedRenderableSeries";
23
+ import { BaseDataLabelProvider } from "./DataLabels/BaseDataLabelProvider";
23
24
  import { TPalettingState } from "./DrawingProviders/BaseSeriesDrawingProvider";
24
25
  import { ISeriesDrawingProvider } from "./DrawingProviders/ISeriesDrawingProvider";
25
26
  import { HitTestInfo } from "./HitTest/HitTestInfo";
@@ -28,8 +29,8 @@ import { IRenderableSeries } from "./IRenderableSeries";
28
29
  import { RolloverModifierRenderableSeriesProps } from "./RolloverModifier/RolloverModifierRenderableSeriesProps";
29
30
  import { SeriesHoveredArgs } from "./SeriesHoveredArgs";
30
31
  import { SeriesSelectedArgs } from "./SeriesSelectedArgs";
31
- import { ShaderEffect } from "./ShaderEffect";
32
32
  import { SeriesVisibleChangedArgs } from "./SeriesVisibleChangedArgs";
33
+ import { ShaderEffect } from "./ShaderEffect";
33
34
  /**
34
35
  * Options to pass to the {@link BaseStackedCollection} constructor
35
36
  */
@@ -325,7 +326,13 @@ export declare abstract class BaseStackedCollection<T extends BaseStackedRendera
325
326
  */
326
327
  getCurrentRenderPassData(): RenderPassData;
327
328
  /** @inheritDoc */
329
+ get dataLabelProvider(): BaseDataLabelProvider;
330
+ /** @inheritDoc */
328
331
  toJSON(excludeData?: boolean): TSeriesDefinition;
332
+ /** @inheritDoc */
333
+ resolveAutoColors(index: number, maxSeries: number, theme: IThemeProvider): void;
334
+ /** @inheritDoc */
335
+ adjustAutoColor(propertyName: string, color: string): string;
329
336
  protected isAllDataSeriesSet(): boolean;
330
337
  /**
331
338
  * notifies listeners to {@link invalidateParentCallback} and redraws the {@link SciChartSurface}
@@ -38,8 +38,9 @@ var BaseStackedCollection = /** @class */ (function (_super) {
38
38
  * @param options Optional parameters of type {@link IBaseStackedCollectionOptions} to configure the series
39
39
  */
40
40
  function BaseStackedCollection(webAssemblyContext, options) {
41
+ var _this = this;
41
42
  var _a, _b, _c, _d;
42
- var _this = _super.call(this) || this;
43
+ _this = _super.call(this) || this;
43
44
  /** @inheritDoc */
44
45
  _this.id = (0, guid_1.generateGuid)();
45
46
  /** @inheritDoc */
@@ -617,6 +618,14 @@ var BaseStackedCollection = /** @class */ (function (_super) {
617
618
  BaseStackedCollection.prototype.getCurrentRenderPassData = function () {
618
619
  throw Error("getCurrentRenderPassData method is not supported for BaseStackedCollection");
619
620
  };
621
+ Object.defineProperty(BaseStackedCollection.prototype, "dataLabelProvider", {
622
+ /** @inheritDoc */
623
+ get: function () {
624
+ return undefined;
625
+ },
626
+ enumerable: false,
627
+ configurable: true
628
+ });
620
629
  /** @inheritDoc */
621
630
  BaseStackedCollection.prototype.toJSON = function (excludeData) {
622
631
  if (excludeData === void 0) { excludeData = false; }
@@ -634,6 +643,17 @@ var BaseStackedCollection = /** @class */ (function (_super) {
634
643
  // @ts-ignore
635
644
  return { type: this.type, series: series, options: options };
636
645
  };
646
+ /** @inheritDoc */
647
+ BaseStackedCollection.prototype.resolveAutoColors = function (index, maxSeries, theme) {
648
+ for (var i = 0; i < this.size(); i++) {
649
+ var rs = this.get(i);
650
+ rs.resolveAutoColors(index + i, maxSeries, theme);
651
+ }
652
+ };
653
+ /** @inheritDoc */
654
+ BaseStackedCollection.prototype.adjustAutoColor = function (propertyName, color) {
655
+ return color;
656
+ };
637
657
  BaseStackedCollection.prototype.isAllDataSeriesSet = function () {
638
658
  var isDataSeriesSet = true;
639
659
  this.asArray().forEach(function (el) {
@@ -78,6 +78,7 @@ export declare abstract class BaseStackedRenderableSeries extends BaseRenderable
78
78
  * native methods and access to our WebGL2 WebAssembly Drawing Engine
79
79
  */
80
80
  protected constructor(webAssemblyContext: TSciChart, options?: IBasedStackedRenderableSeriesOptions);
81
+ protected dataSeriesDataChanged(): void;
81
82
  /**
82
83
  * @inheritDoc
83
84
  */
@@ -22,6 +22,7 @@ var StackedXySeriesInfo_1 = require("../../Model/ChartData/StackedXySeriesInfo")
22
22
  var IDataSeries_1 = require("../../Model/IDataSeries");
23
23
  var ResamplingMode_1 = require("../../Numerics/Resamplers/ResamplingMode");
24
24
  var BaseRenderableSeries_1 = require("./BaseRenderableSeries");
25
+ var constants_1 = require("./constants");
25
26
  var RolloverModifierRenderableSeriesProps_1 = require("./RolloverModifier/RolloverModifierRenderableSeriesProps");
26
27
  /**
27
28
  * Base class for stacked mountain, column series in SciChart's High Performance Real-time
@@ -52,6 +53,9 @@ var BaseStackedRenderableSeries = /** @class */ (function (_super) {
52
53
  _this.accumulatedFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
53
54
  return _this;
54
55
  }
56
+ BaseStackedRenderableSeries.prototype.dataSeriesDataChanged = function () {
57
+ this.notifyPropertyChanged(constants_1.PROPERTY.DATA_SERIES);
58
+ };
55
59
  // PUBLIC
56
60
  /**
57
61
  * @inheritDoc
@@ -0,0 +1,43 @@
1
+ import { Point } from "../../../../Core/Point";
2
+ import { EDataLabelProviderType } from "../../../../types/DataLabelProviderType";
3
+ import { TSRTextBounds } from "../../../../types/TSciChart";
4
+ import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
5
+ import { RenderPassData } from "../../../Services/RenderPassData";
6
+ import { DataLabelState } from "./DataLabelState";
7
+ import { ILineSeriesDataLabelProviderOptions, LineSeriesDataLabelProvider } from "./LineSeriesDataLabelProvider";
8
+ export interface IBandSeriesDataLabelProviderOptions extends ILineSeriesDataLabelProviderOptions {
9
+ /**
10
+ * Sets whether to render a single label with both y and y1 values, in the center of the band, or separate labels for each line.
11
+ * Default false.
12
+ */
13
+ singleLabel?: boolean;
14
+ }
15
+ export declare class BandSeriesDataLabelProvider extends LineSeriesDataLabelProvider {
16
+ readonly type: EDataLabelProviderType;
17
+ protected state1: DataLabelState;
18
+ private singleLabelProperty;
19
+ constructor(options?: IBandSeriesDataLabelProviderOptions);
20
+ /**
21
+ * Gets or Sets whether to render a single label with both y and y1 values, in the center of the band, or separate labels for each line.
22
+ * Default false.
23
+ */
24
+ get singleLabel(): boolean;
25
+ set singleLabel(value: boolean);
26
+ getText(state: DataLabelState): string;
27
+ getSingleLabelText(xVal: number, yVal: number, y1Val: number): string;
28
+ getPosition(state: DataLabelState, textBounds: TSRTextBounds): Point;
29
+ /**
30
+ * When doing separate labels for each line (ie singleLabel = false) this is used to create a provider to generate the labels for the y1 series.
31
+ * By default this creates a LineSeriesDataLabelProvider using the same options as on the current provider.
32
+ */
33
+ getY1Provider(yProvider: BandSeriesDataLabelProvider): LineSeriesDataLabelProvider;
34
+ /** Generates labels using getText, getPosition, getColor. Overrides manually set labels. */
35
+ generateDataLabels(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
36
+ toJSON(): {
37
+ type: EDataLabelProviderType;
38
+ options: {
39
+ style: import("../../../../types/TDataLabelStyle").TDataLabelStyle;
40
+ color: string;
41
+ };
42
+ };
43
+ }
@@ -0,0 +1,142 @@
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.BandSeriesDataLabelProvider = void 0;
19
+ var Point_1 = require("../../../../Core/Point");
20
+ var DataLabelProviderType_1 = require("../../../../types/DataLabelProviderType");
21
+ var NumericFormat_1 = require("../../../../types/NumericFormat");
22
+ var TextPosition_1 = require("../../../../types/TextPosition");
23
+ var number_1 = require("../../../../utils/number");
24
+ var DataLabelState_1 = require("./DataLabelState");
25
+ var LineSeriesDataLabelProvider_1 = require("./LineSeriesDataLabelProvider");
26
+ var BandSeriesDataLabelProvider = /** @class */ (function (_super) {
27
+ __extends(BandSeriesDataLabelProvider, _super);
28
+ function BandSeriesDataLabelProvider(options) {
29
+ var _this = this;
30
+ var _a;
31
+ _this = _super.call(this, options) || this;
32
+ _this.type = DataLabelProviderType_1.EDataLabelProviderType.Band;
33
+ _this.singleLabelProperty = false;
34
+ _this.singleLabelProperty = (_a = options === null || options === void 0 ? void 0 : options.singleLabel) !== null && _a !== void 0 ? _a : _this.singleLabelProperty;
35
+ return _this;
36
+ }
37
+ Object.defineProperty(BandSeriesDataLabelProvider.prototype, "singleLabel", {
38
+ /**
39
+ * Gets or Sets whether to render a single label with both y and y1 values, in the center of the band, or separate labels for each line.
40
+ * Default false.
41
+ */
42
+ get: function () {
43
+ return this.singleLabelProperty;
44
+ },
45
+ set: function (value) {
46
+ this.singleLabelProperty = value;
47
+ this.invalidateParent();
48
+ },
49
+ enumerable: false,
50
+ configurable: true
51
+ });
52
+ BandSeriesDataLabelProvider.prototype.getText = function (state) {
53
+ if (this.singleLabel) {
54
+ if (this.metaDataSelector) {
55
+ var index = state.renderPassData.pointSeries.indexes.get(state.index);
56
+ return this.metaDataSelector(state.parentSeries.dataSeries.getMetadataAt(index));
57
+ }
58
+ var usefinal = !this.updateTextInAnimation && state.parentSeries.isRunningAnimation;
59
+ var yval = usefinal ? state.yValAfterAnimation() : state.yVal();
60
+ this.state1.index = state.index;
61
+ var y1val = usefinal ? this.state1.yValAfterAnimation() : this.state1.yVal();
62
+ return this.getSingleLabelText(state.xVal(), yval, y1val);
63
+ }
64
+ else {
65
+ return _super.prototype.getText.call(this, state);
66
+ }
67
+ };
68
+ BandSeriesDataLabelProvider.prototype.getSingleLabelText = function (xVal, yVal, y1Val) {
69
+ var _a, _b, _c, _d;
70
+ if (yVal === yVal || y1Val === y1Val) {
71
+ var text = "";
72
+ if (yVal === yVal)
73
+ text = (0, number_1.formatNumber)(yVal, (_a = this.numericFormat) !== null && _a !== void 0 ? _a : NumericFormat_1.ENumericFormat.Decimal, (_b = this.precision) !== null && _b !== void 0 ? _b : 1);
74
+ if (yVal === yVal && y1Val === y1Val)
75
+ text += "\n";
76
+ if (y1Val === y1Val)
77
+ text += (0, number_1.formatNumber)(y1Val, (_c = this.numericFormat) !== null && _c !== void 0 ? _c : NumericFormat_1.ENumericFormat.Decimal, (_d = this.precision) !== null && _d !== void 0 ? _d : 1);
78
+ return text;
79
+ }
80
+ else {
81
+ return undefined;
82
+ }
83
+ };
84
+ BandSeriesDataLabelProvider.prototype.getPosition = function (state, textBounds) {
85
+ var _a, _b, _c, _d;
86
+ if (this.singleLabel) {
87
+ var x = state.xCoord();
88
+ if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Center) {
89
+ x -= textBounds.m_fWidth / 2;
90
+ }
91
+ else if (this.horizontalTextPosition === TextPosition_1.EHorizontalTextPosition.Left) {
92
+ x -= textBounds.m_fWidth + ((_b = (_a = this.style.padding) === null || _a === void 0 ? void 0 : _a.right) !== null && _b !== void 0 ? _b : 0);
93
+ }
94
+ else {
95
+ x += (_d = (_c = this.style.padding) === null || _c === void 0 ? void 0 : _c.right) !== null && _d !== void 0 ? _d : 0;
96
+ }
97
+ // Handle multiline
98
+ var yOffset = textBounds.m_fHeight - textBounds.GetLineBounds(0).m_fHeight;
99
+ var y = state.yCoord();
100
+ var y1 = this.state1.yCoord();
101
+ var yFinal = (y + y1 - yOffset) / 2;
102
+ return new Point_1.Point(x, yFinal);
103
+ }
104
+ else {
105
+ return _super.prototype.getPosition.call(this, state, textBounds);
106
+ }
107
+ };
108
+ /**
109
+ * When doing separate labels for each line (ie singleLabel = false) this is used to create a provider to generate the labels for the y1 series.
110
+ * By default this creates a LineSeriesDataLabelProvider using the same options as on the current provider.
111
+ */
112
+ BandSeriesDataLabelProvider.prototype.getY1Provider = function (yProvider) {
113
+ return new LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider(yProvider.toJSON().options);
114
+ };
115
+ /** Generates labels using getText, getPosition, getColor. Overrides manually set labels. */
116
+ BandSeriesDataLabelProvider.prototype.generateDataLabels = function (renderContext, renderPassData) {
117
+ var _a;
118
+ if (!this.singleLabel) {
119
+ _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);
120
+ var y1Provider = this.getY1Provider(this);
121
+ y1Provider.ySelector = function (ps) { return ps.y1Values; };
122
+ y1Provider.onAttach(this.webAssemblyContext, this.parentSeries);
123
+ y1Provider.generateDataLabels(renderContext, renderPassData);
124
+ (_a = this.dataLabels).push.apply(_a, y1Provider.dataLabels);
125
+ }
126
+ else {
127
+ var y1Values = renderPassData.pointSeries.y1Values;
128
+ this.state1 = new DataLabelState_1.DataLabelState(renderContext, renderPassData, this.style, this.color, y1Values, this.parentSeries);
129
+ _super.prototype.generateDataLabels.call(this, renderContext, renderPassData);
130
+ }
131
+ };
132
+ BandSeriesDataLabelProvider.prototype.toJSON = function () {
133
+ var json = _super.prototype.toJSON.call(this);
134
+ var options = {
135
+ singleLabel: this.singleLabel
136
+ };
137
+ Object.assign(json.options, options);
138
+ return json;
139
+ };
140
+ return BandSeriesDataLabelProvider;
141
+ }(LineSeriesDataLabelProvider_1.LineSeriesDataLabelProvider));
142
+ exports.BandSeriesDataLabelProvider = BandSeriesDataLabelProvider;
@@ -0,0 +1,92 @@
1
+ import { Point } from "../../../../Core/Point";
2
+ import { Rect } from "../../../../Core/Rect";
3
+ import { EDataLabelProviderType } from "../../../../types/DataLabelProviderType";
4
+ import { TDataLabelStyle } from "../../../../types/TDataLabelStyle";
5
+ import { TSciChart } from "../../../../types/TSciChart";
6
+ import { WebGlRenderContext2D } from "../../../Drawing/WebGlRenderContext2D";
7
+ import { RenderPassData } from "../../../Services/RenderPassData";
8
+ import { IThemeProvider } from "../../../Themes/IThemeProvider";
9
+ import { IRenderableSeries } from "../IRenderableSeries";
10
+ export declare type TDataLabel = {
11
+ text: string;
12
+ /** The start point for text drawing.
13
+ * This is not the top left of the text rectangle, since the y value for text is on the alphabetic baseline
14
+ * Difference is bounds.GetLineBounds(0).m_fHeight
15
+ */
16
+ position: Point;
17
+ /** The Rectangle that contains the label, relative to the seriesViewRect */
18
+ rect: Rect;
19
+ color?: number;
20
+ dataX: number;
21
+ dataY: number;
22
+ };
23
+ export interface IBaseDataLabelProviderOptions {
24
+ /**
25
+ * Sets the text style used for data labels. The style must be set, with fontFamily and fontSize set, in order for text to be drawn.
26
+ */
27
+ style?: TDataLabelStyle;
28
+ /**
29
+ * Sets the color for data labels. Defaults to axis label color
30
+ */
31
+ color?: string;
32
+ }
33
+ export declare abstract class BaseDataLabelProvider {
34
+ readonly type: EDataLabelProviderType;
35
+ /**
36
+ * The text to draw, along with the sizes and positions. Usually generated, but can be updated before final drawing
37
+ */
38
+ dataLabels: TDataLabel[];
39
+ /**
40
+ * The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and
41
+ * access to our WebGL2 Engine and WebAssembly numerical methods
42
+ */
43
+ protected webAssemblyContext: TSciChart;
44
+ /**
45
+ * The Parent {@link IRenderableSeries | RenderableSeries}
46
+ */
47
+ protected parentSeries: IRenderableSeries;
48
+ protected styleProperty: TDataLabelStyle;
49
+ protected colorProperty: string;
50
+ /**
51
+ * Creates an instance of the {@link DataLabelProvider}
52
+ */
53
+ constructor(options?: IBaseDataLabelProviderOptions);
54
+ /**
55
+ * Called when a DataLabelProvider is attached to a parent {@link IRenderableSeries | RenderableSeries}
56
+ * @param webAssemblyContext
57
+ * @param parentSeries
58
+ */
59
+ onAttach(webAssemblyContext: TSciChart, parentSeries: IRenderableSeries): void;
60
+ /**
61
+ * Gets or sets the text style used for data labels. The style must be set, with fontFamily and fontSize set, in order for text to be drawn.
62
+ */
63
+ get style(): TDataLabelStyle;
64
+ /**
65
+ * Gets or sets the text style used for data labels. The style must be set, with fontFamily and fontSize set, in order for text to be drawn.
66
+ */
67
+ set style(value: TDataLabelStyle);
68
+ /**
69
+ * Gets or sets the color for data labels. Defaults to axis label color
70
+ */
71
+ get color(): string;
72
+ /**
73
+ * Gets or sets the color for data labels. Defaults to axis label color
74
+ */
75
+ set color(value: string);
76
+ /** Update the style. Only the properties passed will be updated */
77
+ updateStyle(value: TDataLabelStyle): void;
78
+ /**
79
+ * Base behaviour is to do nothing. Labels will only be drawn if they have been manually set
80
+ */
81
+ generateDataLabels(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
82
+ draw(renderContext: WebGlRenderContext2D): void;
83
+ resolveAutoColors(index: number, maxSeries: number, theme: IThemeProvider): void;
84
+ toJSON(): {
85
+ type: EDataLabelProviderType;
86
+ options: {
87
+ style: TDataLabelStyle;
88
+ color: string;
89
+ };
90
+ };
91
+ protected invalidateParent(): void;
92
+ }