scichart 2.0.2195 → 2.1.2261

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 (232) hide show
  1. package/Charting/ChartModifiers/CursorModifier.d.ts +9 -0
  2. package/Charting/ChartModifiers/CursorModifier.js +10 -0
  3. package/Charting/ChartModifiers/DataPointSelectionModifier.js +0 -1
  4. package/Charting/ChartModifiers/RolloverModifier.d.ts +30 -3
  5. package/Charting/ChartModifiers/RolloverModifier.js +46 -80
  6. package/Charting/Drawing/BrushCache.d.ts +8 -2
  7. package/Charting/Drawing/BrushCache.js +16 -8
  8. package/Charting/Drawing/WebGlRenderContext2D.d.ts +1 -0
  9. package/Charting/Drawing/WebGlRenderContext2D.js +4 -1
  10. package/Charting/LayoutManager/BaseAxisLayoutStrategy.d.ts +2 -0
  11. package/Charting/LayoutManager/BaseAxisLayoutStrategy.js +33 -0
  12. package/Charting/LayoutManager/BottomAlignedOuterHorizontallyStackedAxisLayoutStrategy.js +18 -2
  13. package/Charting/LayoutManager/LeftAlignedOuterVerticallyStackedAxisLayoutStrategy.js +19 -2
  14. package/Charting/LayoutManager/RightAlignedOuterVerticallyStackedAxisLayoutStrategy.js +18 -2
  15. package/Charting/LayoutManager/TopAlignedOuterHorizontallyStackedAxisLayoutStrategy.js +18 -2
  16. package/Charting/Model/BaseDataSeries.d.ts +42 -15
  17. package/Charting/Model/BaseDataSeries.js +77 -28
  18. package/Charting/Model/BaseHeatmapDataSeries.d.ts +31 -23
  19. package/Charting/Model/BaseHeatmapDataSeries.js +45 -18
  20. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.d.ts +23 -0
  21. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.js +122 -0
  22. package/Charting/Model/DataDistributionCalculator/IDataDistributionCalculator.d.ts +57 -0
  23. package/Charting/Model/DataDistributionCalculator/IDataDistributionCalculator.js +2 -0
  24. package/Charting/Model/Filters/OhlcFilterBase.d.ts +2 -2
  25. package/Charting/Model/Filters/XyFilterBase.d.ts +3 -3
  26. package/Charting/Model/Filters/XyMovingAverageFilter.js +1 -1
  27. package/Charting/Model/Filters/XyyFilterBase.d.ts +4 -4
  28. package/Charting/Model/Filters/XyzFilterBase.d.ts +4 -4
  29. package/Charting/Model/IDataSeries.d.ts +37 -5
  30. package/Charting/Model/OhlcDataSeries.d.ts +12 -11
  31. package/Charting/Model/OhlcDataSeries.js +47 -44
  32. package/Charting/Model/PointSeries/BasePointSeriesResampled.d.ts +21 -0
  33. package/Charting/Model/PointSeries/BasePointSeriesResampled.js +56 -0
  34. package/Charting/Model/PointSeries/BasePointSeriesWrapped.d.ts +14 -0
  35. package/Charting/Model/PointSeries/BasePointSeriesWrapped.js +23 -0
  36. package/Charting/Model/PointSeries/IPointSeries.d.ts +31 -0
  37. package/Charting/Model/PointSeries/IPointSeries.js +2 -0
  38. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.d.ts +13 -0
  39. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.js +59 -0
  40. package/Charting/Model/PointSeries/OhlcPointSeriesWrapped.d.ts +11 -0
  41. package/Charting/Model/PointSeries/OhlcPointSeriesWrapped.js +32 -0
  42. package/Charting/Model/PointSeries/XyPointSeriesResampled.d.ts +7 -0
  43. package/Charting/Model/PointSeries/XyPointSeriesResampled.js +27 -0
  44. package/Charting/Model/PointSeries/XyPointSeriesWrapped.d.ts +6 -0
  45. package/Charting/Model/PointSeries/XyPointSeriesWrapped.js +27 -0
  46. package/Charting/Model/PointSeries/XyyPointSeriesResampled.d.ts +10 -0
  47. package/Charting/Model/PointSeries/XyyPointSeriesResampled.js +48 -0
  48. package/Charting/Model/PointSeries/XyyPointSeriesWrapped.d.ts +8 -0
  49. package/Charting/Model/PointSeries/XyyPointSeriesWrapped.js +29 -0
  50. package/Charting/Model/PointSeries/XyzPointSeriesWrapped.d.ts +8 -0
  51. package/Charting/Model/PointSeries/XyzPointSeriesWrapped.js +29 -0
  52. package/Charting/Model/XyDataSeries.d.ts +3 -2
  53. package/Charting/Model/XyDataSeries.js +26 -26
  54. package/Charting/Model/XyyDataSeries.d.ts +5 -5
  55. package/Charting/Model/XyyDataSeries.js +30 -27
  56. package/Charting/Model/XyzDataSeries.d.ts +5 -5
  57. package/Charting/Model/XyzDataSeries.js +30 -27
  58. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.d.ts +2 -2
  59. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.d.ts +2 -2
  60. package/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.d.ts +2 -1
  61. package/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.js +6 -2
  62. package/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.d.ts +2 -1
  63. package/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.js +6 -2
  64. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.d.ts +54 -0
  65. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js +234 -0
  66. package/Charting/Numerics/Resamplers/ResamplingMode.d.ts +37 -0
  67. package/Charting/Numerics/Resamplers/ResamplingMode.js +41 -0
  68. package/Charting/Numerics/Resamplers/ResamplingParams.d.ts +39 -0
  69. package/Charting/Numerics/Resamplers/ResamplingParams.js +52 -0
  70. package/Charting/Services/RenderPassData.d.ts +6 -1
  71. package/Charting/Services/RenderPassData.js +5 -1
  72. package/Charting/Services/RenderPassInfo.d.ts +18 -0
  73. package/Charting/Services/RenderPassInfo.js +14 -0
  74. package/Charting/Services/SciChartRenderer.d.ts +14 -1
  75. package/Charting/Services/SciChartRenderer.js +127 -31
  76. package/Charting/Visuals/Annotations/AnnotationBase.d.ts +1 -1
  77. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.d.ts +1 -0
  78. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +6 -0
  79. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.d.ts +5 -0
  80. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.js +12 -1
  81. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.d.ts +6 -8
  82. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +12 -9
  83. package/Charting/Visuals/Annotations/SvgAnnotationBase.js +7 -2
  84. package/Charting/Visuals/Axis/AxisBase2D.d.ts +23 -0
  85. package/Charting/Visuals/Axis/AxisBase2D.js +71 -24
  86. package/Charting/Visuals/Axis/AxisCore.d.ts +11 -0
  87. package/Charting/Visuals/Axis/AxisCore.js +39 -18
  88. package/Charting/Visuals/Axis/AxisRenderer.d.ts +1 -0
  89. package/Charting/Visuals/Axis/AxisRenderer.js +37 -10
  90. package/Charting/Visuals/Axis/CategoryAxisBase.d.ts +51 -0
  91. package/Charting/Visuals/Axis/CategoryAxisBase.js +85 -20
  92. package/Charting/Visuals/Axis/IAxisCoreOptions.d.ts +5 -0
  93. package/Charting/Visuals/Axis/LabelProvider/LabelCache.js +2 -2
  94. package/Charting/Visuals/Axis/LabelProvider/LabelProviderBase2D.js +9 -4
  95. package/Charting/Visuals/Axis/LabelProvider/SmartDateLabelProvider.js +7 -4
  96. package/Charting/Visuals/Axis/NumericAxis.js +2 -2
  97. package/Charting/Visuals/Axis/constants.d.ts +1 -0
  98. package/Charting/Visuals/Axis/constants.js +1 -0
  99. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.d.ts +2 -2
  100. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.d.ts +2 -2
  101. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.d.ts +3 -3
  102. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.d.ts +2 -2
  103. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.d.ts +2 -2
  104. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +6 -6
  105. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.js +2 -2
  106. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.d.ts +9 -2
  107. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +45 -1
  108. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.d.ts +1 -0
  109. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.js +1 -0
  110. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.d.ts +1 -0
  111. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.js +1 -0
  112. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.d.ts +12 -5
  113. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js +113 -0
  114. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +42 -6
  115. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +131 -22
  116. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +36 -4
  117. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +51 -3
  118. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.d.ts +38 -4
  119. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +54 -3
  120. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.d.ts +1 -1
  121. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +8 -14
  122. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +4 -3
  123. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +5 -11
  124. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.d.ts +1 -0
  125. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +31 -19
  126. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.d.ts +2 -1
  127. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +17 -21
  128. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +16 -15
  129. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js +9 -15
  130. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.d.ts +4 -3
  131. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +16 -21
  132. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider.js +2 -9
  133. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +0 -7
  134. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.d.ts +11 -2
  135. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js +17 -0
  136. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.d.ts +1 -0
  137. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.js +1 -0
  138. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.d.ts +1 -0
  139. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.js +6 -0
  140. package/Charting/Visuals/RenderableSeries/HitTest/BandSeriesHitTestProvider.js +2 -2
  141. package/Charting/Visuals/RenderableSeries/HitTest/BaseHitTestProvider.js +1 -1
  142. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.js +1 -1
  143. package/Charting/Visuals/RenderableSeries/HitTest/ColumnSeriesHitTestProvider.js +2 -2
  144. package/Charting/Visuals/RenderableSeries/HitTest/LineSeriesHitTestProvider.js +2 -2
  145. package/Charting/Visuals/RenderableSeries/HitTest/MountainSeriesHitTestProvider.js +1 -1
  146. package/Charting/Visuals/RenderableSeries/HitTest/OhlcSeriesHitTestProvider.js +2 -2
  147. package/Charting/Visuals/RenderableSeries/HitTest/ScatterSeriesHitTestProvider.js +1 -1
  148. package/Charting/Visuals/RenderableSeries/HitTest/StackedColumnSeriesHitTestProvider.js +2 -2
  149. package/Charting/Visuals/RenderableSeries/HitTest/StackedMountainSeriesHitTestProvider.js +2 -2
  150. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.d.ts +6 -6
  151. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js +1 -1
  152. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +12 -1
  153. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +38 -2
  154. package/Charting/Visuals/RenderableSeries/ISpline.d.ts +3 -3
  155. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.d.ts +4 -4
  156. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +5 -5
  157. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +3 -3
  158. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +3 -3
  159. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.d.ts +3 -3
  160. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +3 -3
  161. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +0 -6
  162. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +1 -1
  163. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +1 -7
  164. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.d.ts +5 -0
  165. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.js +6 -0
  166. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.d.ts +5 -0
  167. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.js +6 -0
  168. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.d.ts +5 -3
  169. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js +6 -3
  170. package/Charting/Visuals/RenderableSeries/constants.d.ts +3 -0
  171. package/Charting/Visuals/RenderableSeries/constants.js +3 -0
  172. package/Charting/Visuals/SciChartDefaults.d.ts +9 -1
  173. package/Charting/Visuals/SciChartDefaults.js +9 -1
  174. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.d.ts +1 -0
  175. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +7 -2
  176. package/Charting/Visuals/SciChartSurface.d.ts +4 -4
  177. package/Charting/Visuals/SciChartSurface.js +18 -11
  178. package/Charting/Visuals/SciChartSurfaceBase.d.ts +3 -2
  179. package/Charting/Visuals/SciChartSurfaceBase.js +4 -4
  180. package/Charting/Visuals/createMaster.d.ts +1 -1
  181. package/Charting/Visuals/createMaster.js +11 -6
  182. package/Charting/Visuals/createSingle.d.ts +1 -1
  183. package/Charting/Visuals/createSingle.js +2 -2
  184. package/Charting/Visuals/licenseManager2D.js +24 -21
  185. package/Charting/Visuals/licenseManager2dState.d.ts +4 -0
  186. package/Charting/Visuals/licenseManager2dState.js +12 -0
  187. package/Charting/Visuals/loader.js +2 -0
  188. package/Charting/Visuals/sciChartInitCommon.d.ts +2 -2
  189. package/Charting/Visuals/sciChartInitCommon.js +22 -12
  190. package/Charting3D/Model/DataSeries/XyzDataSeries3D.d.ts +7 -7
  191. package/Charting3D/Model/DataSeries/XyzDataSeries3D.js +3 -3
  192. package/Charting3D/Visuals/SciChart3DSurface.d.ts +2 -2
  193. package/Charting3D/Visuals/SciChart3DSurface.js +3 -3
  194. package/Charting3D/Visuals/createMaster3d.d.ts +1 -1
  195. package/Charting3D/Visuals/createMaster3d.js +11 -6
  196. package/Charting3D/Visuals/createSingle3d.d.ts +1 -1
  197. package/Charting3D/Visuals/createSingle3d.js +2 -2
  198. package/Core/BuildStamp.d.ts +1 -1
  199. package/Core/BuildStamp.js +2 -2
  200. package/Core/NumberRange.d.ts +1 -0
  201. package/Core/NumberRange.js +8 -0
  202. package/Core/OneTimePerformanceWarning.d.ts +6 -0
  203. package/Core/OneTimePerformanceWarning.js +19 -0
  204. package/Core/storage/localStorageApi.d.ts +9 -0
  205. package/Core/storage/localStorageApi.js +32 -0
  206. package/_wasm/scichart.browser.js +1 -1
  207. package/_wasm/scichart2d.js +95 -95
  208. package/_wasm/scichart2d.wasm +0 -0
  209. package/_wasm/scichart3d.js +96 -96
  210. package/_wasm/scichart3d.wasm +0 -0
  211. package/constants/performanceWarnings.d.ts +5 -0
  212. package/constants/performanceWarnings.js +8 -0
  213. package/package.json +1 -1
  214. package/types/NumberArray.d.ts +1 -0
  215. package/types/NumberArray.js +5 -1
  216. package/types/SearchMode.d.ts +21 -0
  217. package/types/SearchMode.js +25 -0
  218. package/types/TSciChart.d.ts +144 -40
  219. package/types/TSciChart3D.d.ts +66 -28
  220. package/types/TStackedAxisLength.d.ts +4 -0
  221. package/types/TStackedAxisLength.js +4 -0
  222. package/utils/array.d.ts +7 -0
  223. package/utils/array.js +19 -1
  224. package/utils/calcAverage.d.ts +2 -2
  225. package/utils/ccall/appendDoubleVectorFromJsArray.d.ts +19 -0
  226. package/utils/ccall/appendDoubleVectorFromJsArray.js +91 -0
  227. package/utils/hash.d.ts +7 -0
  228. package/utils/hash.js +35 -0
  229. package/utils/tooltip.d.ts +42 -0
  230. package/utils/tooltip.js +119 -0
  231. package/utils/ccall/fillDoubleVectorFromJsArray.d.ts +0 -3
  232. package/utils/ccall/fillDoubleVectorFromJsArray.js +0 -33
@@ -11,15 +11,17 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SciChartRenderer = void 0;
13
13
  var Dictionary_1 = require("../../Core/Dictionary");
14
- var NumberRange_1 = require("../../Core/NumberRange");
15
14
  var Rect_1 = require("../../Core/Rect");
16
15
  var AutoRange_1 = require("../../types/AutoRange");
17
16
  var AxisAlignment_1 = require("../../types/AxisAlignment");
18
17
  var RenderLayer_1 = require("../../types/RenderLayer");
18
+ var hash_1 = require("../../utils/hash");
19
+ var ResamplingParams_1 = require("../Numerics/Resamplers/ResamplingParams");
19
20
  var IAnnotation_1 = require("../Visuals/Annotations/IAnnotation");
20
21
  var SciChartSurfaceBase_1 = require("../Visuals/SciChartSurfaceBase");
21
22
  var DpiHelper_1 = require("../Visuals/TextureManager/DpiHelper");
22
23
  var RenderPassData_1 = require("./RenderPassData");
24
+ var RenderPassInfo_1 = require("./RenderPassInfo");
23
25
  /**
24
26
  * A class used internally in SciChart to perform layout, arrangement, data-preparation and rendering on the Cartesian 2D {@link SciChartSurface}
25
27
  */
@@ -31,6 +33,66 @@ var SciChartRenderer = /** @class */ (function () {
31
33
  function SciChartRenderer(sciChartSurface) {
32
34
  this.sciChartSurface = sciChartSurface;
33
35
  }
36
+ /**
37
+ * Used internally
38
+ * @param xAxis
39
+ * @param rs
40
+ * @param seriesViewRect
41
+ */
42
+ SciChartRenderer.resampleSeries = function (xAxis, rs, seriesViewRect) {
43
+ /**
44
+ * Stacked series and Heatmap do not support resampling
45
+ * If a series does not support resampling, the pointSeries is not used in the drawing provider.
46
+ * For example, UniformHeatmapDrawingProvider does not use renderPassData.pointSeries,
47
+ * but LineSeriesDrawingProvider use renderPassData.pointSeries in the draw() method!
48
+ */
49
+ if (!rs.supportsResampling)
50
+ return {
51
+ pointSeries: rs.toPointSeries(),
52
+ renderableSeries: rs,
53
+ indicesRange: undefined,
54
+ resamplingHash: undefined
55
+ };
56
+ var rp = new ResamplingParams_1.ResamplingParams(seriesViewRect, rs, xAxis);
57
+ if (!rs.needsResampling(rp))
58
+ return {
59
+ pointSeries: rs.toPointSeries(),
60
+ renderableSeries: rs,
61
+ indicesRange: undefined,
62
+ resamplingHash: undefined
63
+ };
64
+ var resamplingHash = SciChartRenderer.calculateResamplingHash(rs, rp);
65
+ var prevRPD = rs.getCurrentRenderPassData();
66
+ var useFromCache = Boolean(prevRPD && prevRPD.resamplingHash === resamplingHash);
67
+ // console.log("resampling ...");
68
+ // console.log("useFromCache", useFromCache);
69
+ var pointSeries = useFromCache ? prevRPD.pointSeries : rs.toPointSeries(rp);
70
+ return {
71
+ pointSeries: pointSeries,
72
+ renderableSeries: rs,
73
+ indicesRange: rp.indexesRange,
74
+ resamplingHash: resamplingHash
75
+ };
76
+ };
77
+ SciChartRenderer.calculateResamplingHash = function (rs, rp) {
78
+ var hashes = [];
79
+ var enableDrawingOptimizationsHash = hash_1.hashUtils.generateBooleanHash(rs.enableDrawingOptimisations);
80
+ hashes.push(enableDrawingOptimizationsHash);
81
+ var dataSeries = rs.dataSeries;
82
+ if (dataSeries) {
83
+ var dataSeriesHash = hash_1.hashUtils.generateHash(dataSeries.id);
84
+ hashes.push(dataSeriesHash);
85
+ var dataSeriesCountHash = hash_1.hashUtils.generateNumberHash(dataSeries.count());
86
+ hashes.push(dataSeriesCountHash);
87
+ var dataSeriesSortedHash = hash_1.hashUtils.generateBooleanHash(dataSeries.dataDistributionCalculator.isSortedAscending);
88
+ hashes.push(dataSeriesSortedHash);
89
+ var dataSeriesChangeCountHash = hash_1.hashUtils.generateNumberHash(dataSeries.changeCount);
90
+ hashes.push(dataSeriesChangeCountHash);
91
+ }
92
+ var resamplingParamsHash = hash_1.hashUtils.generateObjectHash(rp);
93
+ hashes.push(resamplingParamsHash);
94
+ return hash_1.hashUtils.generateCombinedHash(hashes);
95
+ };
34
96
  /**
35
97
  * Render loop for the current {@SciChartSurface}
36
98
  * @param renderContext the {@WebGLRenderContext2D} used for drawing
@@ -61,7 +123,8 @@ var SciChartRenderer = /** @class */ (function () {
61
123
  var seriesViewRect = this.sciChartSurface.layoutManager.layoutChart(renderContext.viewportSize);
62
124
  this.updateSvgCanvasSize(seriesViewRect);
63
125
  // Step 4 prepare render data
64
- var xyAxesById = this.prepareRenderData();
126
+ var _a = this.prepareAxesRenderData(), xAxesById = _a.xAxesById, yAxesById = _a.yAxesById;
127
+ var renderPassInfo = this.prepareSeriesRenderData(seriesViewRect, xAxesById);
65
128
  // Draw seriesViewRect border
66
129
  this.sciChartSurface.drawBorder(renderContext);
67
130
  // Step 5 Draw X, Y axis and gridlines
@@ -80,21 +143,22 @@ var SciChartRenderer = /** @class */ (function () {
80
143
  el.type === IAnnotation_1.EAnnotationType.RenderContextVerticalLineAnnotation ||
81
144
  el.type === IAnnotation_1.EAnnotationType.RenderContextAxisMarkerAnnotation);
82
145
  });
83
- this.drawRenderContextAnnotations(renderContextAnnotations, xyAxesById[0], xyAxesById[1], IAnnotation_1.EAnnotationLayer.BelowChart, renderContext, seriesViewRect);
84
- // queue series rendering after grid lines and bands, but before the axes
85
- renderContext.enqueueLayeredDraw(function () { return _this.drawSeries(_this.sciChartSurface, _this.sciChartSurface.renderableSeries.asArray(), renderContext); }, RenderLayer_1.ERenderLayer.Third);
146
+ renderContext.enqueueLayeredDraw(function () {
147
+ _this.drawRenderContextAnnotations(renderContextAnnotations, xAxesById, yAxesById, IAnnotation_1.EAnnotationLayer.BelowChart, renderContext, seriesViewRect);
148
+ }, RenderLayer_1.ERenderLayer.Third);
149
+ // Step 7 Draw series. Queue series rendering after grid lines and bands, but before the axes
150
+ renderContext.enqueueLayeredDraw(function () { return _this.drawSeries(_this.sciChartSurface, renderPassInfo, renderContext); }, RenderLayer_1.ERenderLayer.Third);
86
151
  // Execute rendering of queued elements
87
152
  renderContext.drawLayers();
88
- // Step 7 Draw series
89
153
  // Step 8 Draw annotations above the series
90
- this.drawRenderContextAnnotations(renderContextAnnotations, xyAxesById[0], xyAxesById[1], IAnnotation_1.EAnnotationLayer.AboveChart, renderContext, seriesViewRect);
154
+ this.drawRenderContextAnnotations(renderContextAnnotations, xAxesById, yAxesById, IAnnotation_1.EAnnotationLayer.AboveChart, renderContext, seriesViewRect);
91
155
  // Step 9 Draw SVG or Html Overlays
92
156
  var svgAnnotations = annotations.filter(function (el) {
93
157
  return el.type === IAnnotation_1.EAnnotationType.SVG ||
94
158
  el.type === IAnnotation_1.EAnnotationType.SVGTextAnnotation ||
95
159
  el.type === IAnnotation_1.EAnnotationType.SVGCustomAnnotation;
96
160
  });
97
- this.drawSvgAnnotations(svgAnnotations, xyAxesById[0], xyAxesById[1]);
161
+ this.drawSvgAnnotations(svgAnnotations, xAxesById, yAxesById);
98
162
  // Update watermark
99
163
  this.updateWatermark(renderContext, seriesViewRect);
100
164
  // Step 10 Call OnParentSurfaceRendered
@@ -173,7 +237,7 @@ var SciChartRenderer = /** @class */ (function () {
173
237
  svgRootElement.currentScale = 1;
174
238
  }
175
239
  };
176
- SciChartRenderer.prototype.prepareRenderData = function () {
240
+ SciChartRenderer.prototype.prepareAxesRenderData = function () {
177
241
  var xAxesById = new Dictionary_1.Dictionary();
178
242
  var yAxesById = new Dictionary_1.Dictionary();
179
243
  // Prepare XAxes
@@ -186,7 +250,26 @@ var SciChartRenderer = /** @class */ (function () {
186
250
  yAxesById.add(yAxis.id, yAxis);
187
251
  yAxis.prepareRenderData();
188
252
  });
189
- return [xAxesById, yAxesById];
253
+ return { xAxesById: xAxesById, yAxesById: yAxesById };
254
+ };
255
+ SciChartRenderer.prototype.prepareSeriesRenderData = function (seriesViewRect, xAxesById) {
256
+ var seriesCount = this.sciChartSurface.renderableSeries.size();
257
+ var renderPassInfo = new RenderPassInfo_1.RenderPassInfo(seriesCount, seriesViewRect);
258
+ // TODO: Calculate XRange before resample but YRange after resample for faster autorange on large datasets
259
+ for (var i = 0; i < this.sciChartSurface.renderableSeries.size(); i++) {
260
+ var series = this.sciChartSurface.renderableSeries.get(i);
261
+ // don't try and draw series with no data
262
+ if (!series.isStacked && !series.dataSeries)
263
+ continue;
264
+ // TODO: Do resampling, store result for use in drawing
265
+ var xAxis = xAxesById.item(series.xAxisId);
266
+ var seriesRenderPassInfo = SciChartRenderer.resampleSeries(xAxis, series, seriesViewRect);
267
+ renderPassInfo.renderableSeriesArray.push(seriesRenderPassInfo.renderableSeries);
268
+ renderPassInfo.pointSeriesArray.push(seriesRenderPassInfo.pointSeries);
269
+ renderPassInfo.indicesRanges.push(seriesRenderPassInfo.indicesRange);
270
+ renderPassInfo.resamplingHashes.push(seriesRenderPassInfo.resamplingHash);
271
+ }
272
+ return renderPassInfo;
190
273
  };
191
274
  SciChartRenderer.prototype.drawAxes = function (scs, renderContext) {
192
275
  scs.xAxes.asArray().forEach(function (xAxis) {
@@ -196,31 +279,30 @@ var SciChartRenderer = /** @class */ (function () {
196
279
  yAxis.draw(renderContext);
197
280
  });
198
281
  };
199
- SciChartRenderer.prototype.drawSeries = function (scs, renderableSeries, renderContext) {
200
- var drawSeriesImpl = function (series) {
201
- var indexRange = new NumberRange_1.NumberRange(0, 0);
202
- var xAxis = scs.xAxes.asArray().find(function (a) { return a.id === series.xAxisId; });
203
- if (!xAxis) {
204
- throw Error("Cannot find an X Axis with ID = " + series.xAxisId);
205
- }
206
- var yAxis = scs.yAxes.asArray().find(function (a) { return a.id === series.yAxisId; });
207
- if (!yAxis) {
208
- throw Error("Cannot find a Y Axis with ID = " + series.yAxisId);
209
- }
210
- if (xAxis.isVerticalChart && ![AxisAlignment_1.EAxisAlignment.Top, AxisAlignment_1.EAxisAlignment.Bottom].includes(yAxis.axisAlignment)) {
282
+ SciChartRenderer.prototype.drawSeries = function (scs, renderPassInfo, renderContext) {
283
+ var renderableSeriesArray = renderPassInfo.renderableSeriesArray, pointSeriesArray = renderPassInfo.pointSeriesArray, resamplingHashes = renderPassInfo.resamplingHashes, indicesRanges = renderPassInfo.indicesRanges;
284
+ var drawSeriesImpl = function (index) {
285
+ var renderableSeries = renderableSeriesArray[index];
286
+ var pointSeries = pointSeriesArray[index];
287
+ var resamplingHash = resamplingHashes[index];
288
+ var indexRange = indicesRanges[index];
289
+ var xAxis = scs.xAxes.asArray().find(function (a) { return a.id === renderableSeries.xAxisId; });
290
+ if (!xAxis)
291
+ throw Error("Cannot find an X Axis with ID = " + renderableSeries.xAxisId);
292
+ var yAxis = scs.yAxes.asArray().find(function (a) { return a.id === renderableSeries.yAxisId; });
293
+ if (!yAxis)
294
+ throw Error("Cannot find a Y Axis with ID = " + renderableSeries.yAxisId);
295
+ if (xAxis.isVerticalChart && ![AxisAlignment_1.EAxisAlignment.Top, AxisAlignment_1.EAxisAlignment.Bottom].includes(yAxis.axisAlignment))
211
296
  throw Error("For vertical chart (chart with X Axis alignment Left or Right) Y Axis alignment should be Top or Bottom, X Axis ID = ".concat(xAxis.id));
212
- }
213
- if ((0, AxisAlignment_1.getIsVertical)(xAxis.axisAlignment) && (0, AxisAlignment_1.getIsVertical)(yAxis.axisAlignment)) {
297
+ if ((0, AxisAlignment_1.getIsVertical)(xAxis.axisAlignment) && (0, AxisAlignment_1.getIsVertical)(yAxis.axisAlignment))
214
298
  throw Error("Both x and y axes can't have vertical alignment");
215
- }
216
- if ((0, AxisAlignment_1.getIsHorizontal)(xAxis.axisAlignment) && (0, AxisAlignment_1.getIsHorizontal)(yAxis.axisAlignment)) {
299
+ if ((0, AxisAlignment_1.getIsHorizontal)(xAxis.axisAlignment) && (0, AxisAlignment_1.getIsHorizontal)(yAxis.axisAlignment))
217
300
  throw Error("Both x and y axes can't have horizontal alignment");
218
- }
219
301
  var xCalc = xAxis.getCurrentCoordinateCalculator();
220
302
  var yCalc = yAxis.getCurrentCoordinateCalculator();
221
303
  try {
222
- var renderPassData = new RenderPassData_1.RenderPassData(indexRange, xCalc, yCalc, xAxis.isVerticalChart);
223
- series.draw(renderContext, renderPassData);
304
+ var renderPassData = new RenderPassData_1.RenderPassData(indexRange, xCalc, yCalc, xAxis.isVerticalChart, pointSeries, resamplingHash);
305
+ renderableSeries.draw(renderContext, renderPassData);
224
306
  }
225
307
  finally {
226
308
  // We can not delete calculators because we use them in Hit Test
@@ -228,10 +310,24 @@ var SciChartRenderer = /** @class */ (function () {
228
310
  // yCalc.delete();
229
311
  }
230
312
  };
313
+ var nativeContext = renderContext.getNativeContext();
314
+ var viewRect = this.sciChartSurface.seriesViewRect;
315
+ nativeContext.PushMatrix();
316
+ nativeContext.PushState();
317
+ nativeContext.Translate(viewRect.x, viewRect.y);
318
+ nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
231
319
  // Draw unselected series first
232
- renderableSeries.filter(function (rs) { return rs.isVisible && !rs.isSelected; }).forEach(drawSeriesImpl);
320
+ renderableSeriesArray.forEach(function (rs, index) {
321
+ if (rs.isVisible && !rs.isSelected)
322
+ drawSeriesImpl(index);
323
+ });
233
324
  // Draw selected series at higher z-index
234
- renderableSeries.filter(function (rs) { return rs.isVisible && rs.isSelected; }).forEach(drawSeriesImpl);
325
+ renderableSeriesArray.forEach(function (rs, index) {
326
+ if (rs.isVisible && rs.isSelected)
327
+ drawSeriesImpl(index);
328
+ });
329
+ nativeContext.PopMatrix();
330
+ nativeContext.PopState();
235
331
  };
236
332
  SciChartRenderer.prototype.drawDebugAxes = function (scs, renderContext) {
237
333
  scs.xAxes.asArray().forEach(function (xAxis) {
@@ -227,7 +227,7 @@ export declare abstract class AnnotationBase implements IAnnotation, IAdornerPro
227
227
  private opacityProperty;
228
228
  private annotationLayerProperty;
229
229
  private isEditableProperty;
230
- private isHiddenProperty;
230
+ protected isHiddenProperty: boolean;
231
231
  private parentSurfaceProperty;
232
232
  private x1Property;
233
233
  private x2Property;
@@ -30,6 +30,7 @@ export declare class CursorTooltipSvgAnnotation extends SvgAnnotationBase {
30
30
  private tooltipLegendOffsetXProperty;
31
31
  private tooltipLegendOffsetYProperty;
32
32
  private svgLegend;
33
+ private previousMousePosition;
33
34
  /**
34
35
  * Creates an instance of the {@link CursorTooltipSvgAnnotation}
35
36
  * @param options
@@ -16,6 +16,7 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.CursorTooltipSvgAnnotation = void 0;
19
+ var MousePosition_1 = require("../../../types/MousePosition");
19
20
  var constants_1 = require("./constants");
20
21
  var IAnnotation_1 = require("./IAnnotation");
21
22
  var SvgAnnotationBase_1 = require("./SvgAnnotationBase");
@@ -164,6 +165,11 @@ var CursorTooltipSvgAnnotation = /** @class */ (function (_super) {
164
165
  * @inheritDoc
165
166
  */
166
167
  CursorTooltipSvgAnnotation.prototype.update = function (xCalc, yCalc) {
168
+ var currentMousePosition = this.cursorModifier.getMousePosition();
169
+ if (this.previousMousePosition === currentMousePosition && currentMousePosition !== MousePosition_1.EMousePosition.SeriesArea) {
170
+ return;
171
+ }
172
+ this.previousMousePosition = this.cursorModifier.getMousePosition();
167
173
  if (this.svg) {
168
174
  this.delete();
169
175
  }
@@ -1,3 +1,4 @@
1
+ import { CoordinateCalculatorBase } from "../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
1
2
  import { RolloverModifierRenderableSeriesProps } from "../RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps";
2
3
  import { EAnnotationType } from "./IAnnotation";
3
4
  import { SvgAnnotationBase } from "./SvgAnnotationBase";
@@ -5,6 +6,10 @@ export declare class RolloverMarkerSvgAnnotation extends SvgAnnotationBase {
5
6
  /** @inheritDoc */
6
7
  readonly type = EAnnotationType.SVG;
7
8
  private tooltipProps;
9
+ private previousMousePosition;
8
10
  constructor(renderableSeriesProps: RolloverModifierRenderableSeriesProps);
11
+ /** @inheritDoc */
12
+ update(xCalc: CoordinateCalculatorBase, yCalc: CoordinateCalculatorBase): void;
13
+ /** @inheritDoc */
9
14
  protected create(): void;
10
15
  }
@@ -16,6 +16,7 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.RolloverMarkerSvgAnnotation = void 0;
19
+ var MousePosition_1 = require("../../../types/MousePosition");
19
20
  var IAnnotation_1 = require("./IAnnotation");
20
21
  var SvgAnnotationBase_1 = require("./SvgAnnotationBase");
21
22
  var RolloverMarkerSvgAnnotation = /** @class */ (function (_super) {
@@ -25,13 +26,23 @@ var RolloverMarkerSvgAnnotation = /** @class */ (function (_super) {
25
26
  /** @inheritDoc */
26
27
  _this.type = IAnnotation_1.EAnnotationType.SVG;
27
28
  _this.tooltipProps = renderableSeriesProps;
28
- _this.isHidden = true;
29
+ _this.isHiddenProperty = true;
29
30
  _this.x1 = 0;
30
31
  _this.y1 = 0;
31
32
  _this.xCoordShift = -4;
32
33
  _this.yCoordShift = -4;
33
34
  return _this;
34
35
  }
36
+ /** @inheritDoc */
37
+ RolloverMarkerSvgAnnotation.prototype.update = function (xCalc, yCalc) {
38
+ var currentMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();
39
+ if (this.previousMousePosition === currentMousePosition && currentMousePosition !== MousePosition_1.EMousePosition.SeriesArea) {
40
+ return;
41
+ }
42
+ this.previousMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();
43
+ _super.prototype.update.call(this, xCalc, yCalc);
44
+ };
45
+ /** @inheritDoc */
35
46
  RolloverMarkerSvgAnnotation.prototype.create = function () {
36
47
  if (this.svg) {
37
48
  this.delete();
@@ -19,6 +19,7 @@ export declare class RolloverTooltipSvgAnnotation extends SvgAnnotationBase {
19
19
  height: number;
20
20
  private svgLegend;
21
21
  private seriesInfoProperty;
22
+ private previousMousePosition;
22
23
  /**
23
24
  * Creates an instance of the {@link RolloverTooltipSvgAnnotation}
24
25
  * @param renderableSeriesProps The {@link RolloverModifierRenderableSeriesProps | props} pass
@@ -33,18 +34,15 @@ export declare class RolloverTooltipSvgAnnotation extends SvgAnnotationBase {
33
34
  * Gets or sets seriesInfo {@link SeriesInfo} value on the tooltip
34
35
  */
35
36
  set seriesInfo(value: SeriesInfo);
36
- /**
37
- * @inheritDoc
38
- */
37
+ /** @inheritDoc */
39
38
  delete(): void;
40
- /**
41
- * @inheritDoc
42
- */
39
+ /** @inheritDoc */
43
40
  update(xCalc: CoordinateCalculatorBase, yCalc: CoordinateCalculatorBase): void;
44
- updateSize(width: number, height: number): void;
45
41
  /**
46
- * @inheritDoc
42
+ * Updates size of the tooltip
47
43
  */
44
+ updateSize(width: number, height: number): void;
45
+ /** @inheritDoc */
48
46
  protected create(xCalc: CoordinateCalculatorBase, yCalc: CoordinateCalculatorBase): void;
49
47
  private updateLegendTooltip;
50
48
  }
@@ -16,6 +16,7 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.RolloverTooltipSvgAnnotation = void 0;
19
+ var MousePosition_1 = require("../../../types/MousePosition");
19
20
  var IDataSeries_1 = require("../../Model/IDataSeries");
20
21
  var AnnotationBase_1 = require("./AnnotationBase");
21
22
  var constants_1 = require("./constants");
@@ -64,9 +65,7 @@ var RolloverTooltipSvgAnnotation = /** @class */ (function (_super) {
64
65
  enumerable: false,
65
66
  configurable: true
66
67
  });
67
- /**
68
- * @inheritDoc
69
- */
68
+ /** @inheritDoc */
70
69
  RolloverTooltipSvgAnnotation.prototype.delete = function () {
71
70
  var _a;
72
71
  if (!this.parentSurface || this.parentSurface.isDeleted)
@@ -76,23 +75,27 @@ var RolloverTooltipSvgAnnotation = /** @class */ (function (_super) {
76
75
  this.svgRoot.removeChild(this.svgLegend);
77
76
  }
78
77
  };
79
- /**
80
- * @inheritDoc
81
- */
78
+ /** @inheritDoc */
82
79
  RolloverTooltipSvgAnnotation.prototype.update = function (xCalc, yCalc) {
80
+ var currentMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();
81
+ if (this.previousMousePosition === currentMousePosition && currentMousePosition !== MousePosition_1.EMousePosition.SeriesArea) {
82
+ return;
83
+ }
84
+ this.previousMousePosition = this.tooltipProps.rolloverModifier.getMousePosition();
83
85
  if (this.svg) {
84
86
  this.delete();
85
87
  }
86
88
  _super.prototype.update.call(this, xCalc, yCalc);
87
89
  this.updateLegendTooltip();
88
90
  };
91
+ /**
92
+ * Updates size of the tooltip
93
+ */
89
94
  RolloverTooltipSvgAnnotation.prototype.updateSize = function (width, height) {
90
95
  this.width = width;
91
96
  this.height = height;
92
97
  };
93
- /**
94
- * @inheritDoc
95
- */
98
+ /** @inheritDoc */
96
99
  RolloverTooltipSvgAnnotation.prototype.create = function (xCalc, yCalc) {
97
100
  var _a;
98
101
  var svgString;
@@ -38,6 +38,11 @@ var SvgAnnotationBase = /** @class */ (function (_super) {
38
38
  var _this = _super.call(this, options) || this;
39
39
  /** @inheritDoc */
40
40
  _this.isSvgAnnotation = true;
41
+ /**
42
+ * The {@link SVGElement} which will be added to the chart
43
+ */
44
+ _this.xCoordShiftProperty = 0;
45
+ _this.yCoordShiftProperty = 0;
41
46
  _this.verticalAnchorPointProperty = AnchorPoint_1.EVerticalAnchorPoint.Top;
42
47
  _this.horizontalAnchorPointProperty = AnchorPoint_1.EHorizontalAnchorPoint.Left;
43
48
  _this.prevX1Coordinate = 0;
@@ -292,8 +297,8 @@ var SvgAnnotationBase = /** @class */ (function (_super) {
292
297
  SvgAnnotationBase.prototype.calcAndSetAnnotationBorders = function (xCalc, yCalc) {
293
298
  if (!this.svg)
294
299
  return;
295
- var borderX1 = this.getX1Coordinate(xCalc, yCalc);
296
- var borderY1 = this.getY1Coordinate(xCalc, yCalc);
300
+ var borderX1 = this.getX1Coordinate(xCalc, yCalc) + this.xCoordShift;
301
+ var borderY1 = this.getY1Coordinate(xCalc, yCalc) + this.yCoordShift;
297
302
  this.svgDOMRect = this.svg.getBoundingClientRect();
298
303
  var borderX2 = borderX1 + this.svgDOMRect.width;
299
304
  var borderY2 = borderY1 + this.svgDOMRect.height;
@@ -7,6 +7,7 @@ import { EAxisAlignment } from "../../../types/AxisAlignment";
7
7
  import { EAxisType } from "../../../types/AxisType";
8
8
  import { TBorder } from "../../../types/TBorder";
9
9
  import { SCRTPen, SCRTSolidBrush, TSciChart } from "../../../types/TSciChart";
10
+ import { TStackedAxisLength } from "../../../types/TStackedAxisLength";
10
11
  import { WebGlRenderContext2D } from "../../Drawing/WebGlRenderContext2D";
11
12
  import { IThemeable } from "../../Themes/IThemeable";
12
13
  import { IThemeProvider } from "../../Themes/IThemeProvider";
@@ -112,6 +113,13 @@ export interface IAxisBase2dOptions extends IAxisCoreOptions {
112
113
  * @remarks Center axis uses inner layout strategy
113
114
  */
114
115
  isInnerAxis?: boolean;
116
+ /** Gets or sets the length of a stacked axis as an absolute number or percentage, e.g. 100, or "30%".
117
+ * A plain number will be interpreted as a number of pixels.
118
+ * A number with % will take that percentage of the total length.
119
+ * Stacked axes without a defined length will have the remaining unreserved spaced split between them.
120
+ * @remarks The axis length doesn't include border sizes
121
+ */
122
+ stackedAxisLength?: TStackedAxisLength;
115
123
  /**
116
124
  * Sets a {@link LabelProvider} - a class which is responsible for formatting axis labels and cursor labels from numeric values
117
125
  */
@@ -230,6 +238,20 @@ export declare abstract class AxisBase2D extends AxisCore implements IThemeable
230
238
  * This is only used to allow multiple primary axes, so that all stacked axes can draw gridlines
231
239
  */
232
240
  set isStackedAxis(value: boolean);
241
+ /** Gets or sets the length of a stacked axis as an absolute number or percentage, e.g. 100, or "30%".
242
+ * A plain number will be interpreted as a number of pixels.
243
+ * A number with % will take that percentage of the total length.
244
+ * Stacked axes without a defined length will have the remaining unreserved spaced split between them.
245
+ * @remarks The axis length doesn't include border sizes
246
+ */
247
+ get stackedAxisLength(): TStackedAxisLength;
248
+ /** Gets or sets the length of a stacked axis as an absolute number or percentage, e.g. 100, or "30%".
249
+ * A plain number will be interpreted as a number of pixels.
250
+ * A number with % will take that percentage of the total length.
251
+ * Stacked axes without a defined length will have the remaining unreserved spaced split between them.
252
+ * @remarks The axis length doesn't include border sizes
253
+ */
254
+ set stackedAxisLength(value: TStackedAxisLength);
233
255
  /**
234
256
  * Called internally - Gets or sets the length the current Axis. E.g. width of horizontal axis or height of vertical axis.
235
257
  */
@@ -308,6 +330,7 @@ export declare abstract class AxisBase2D extends AxisCore implements IThemeable
308
330
  private zoomExtentsRangeProperty;
309
331
  private isPrimaryAxisProperty;
310
332
  private isStackedAxisProperty;
333
+ private stackedAxisLengthProperty;
311
334
  private penCacheForMajorGridLines;
312
335
  private penCacheForMinorGridLines;
313
336
  private penCacheForMajorTickLines;