scichart 2.0.2228 → 2.1.0-beta.40

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 (179) hide show
  1. package/Charting/ChartModifiers/DataPointSelectionModifier.js +0 -1
  2. package/Charting/Drawing/WebGlRenderContext2D.d.ts +1 -0
  3. package/Charting/Drawing/WebGlRenderContext2D.js +4 -1
  4. package/Charting/Model/BaseDataSeries.d.ts +42 -15
  5. package/Charting/Model/BaseDataSeries.js +77 -28
  6. package/Charting/Model/BaseHeatmapDataSeries.d.ts +31 -23
  7. package/Charting/Model/BaseHeatmapDataSeries.js +45 -18
  8. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.d.ts +23 -0
  9. package/Charting/Model/DataDistributionCalculator/DataDistributionCalculator.js +122 -0
  10. package/Charting/Model/DataDistributionCalculator/IDataDistributionCalculator.d.ts +57 -0
  11. package/Charting/Model/DataDistributionCalculator/IDataDistributionCalculator.js +2 -0
  12. package/Charting/Model/Filters/OhlcFilterBase.d.ts +2 -2
  13. package/Charting/Model/Filters/XyFilterBase.d.ts +3 -3
  14. package/Charting/Model/Filters/XyMovingAverageFilter.js +1 -1
  15. package/Charting/Model/Filters/XyyFilterBase.d.ts +4 -4
  16. package/Charting/Model/Filters/XyzFilterBase.d.ts +4 -4
  17. package/Charting/Model/IDataSeries.d.ts +37 -5
  18. package/Charting/Model/OhlcDataSeries.d.ts +12 -11
  19. package/Charting/Model/OhlcDataSeries.js +37 -34
  20. package/Charting/Model/PointSeries/BasePointSeriesResampled.d.ts +21 -0
  21. package/Charting/Model/PointSeries/BasePointSeriesResampled.js +56 -0
  22. package/Charting/Model/PointSeries/BasePointSeriesWrapped.d.ts +14 -0
  23. package/Charting/Model/PointSeries/BasePointSeriesWrapped.js +23 -0
  24. package/Charting/Model/PointSeries/IPointSeries.d.ts +31 -0
  25. package/Charting/Model/PointSeries/IPointSeries.js +2 -0
  26. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.d.ts +13 -0
  27. package/Charting/Model/PointSeries/OhlcPointSeriesResampled.js +59 -0
  28. package/Charting/Model/PointSeries/OhlcPointSeriesWrapped.d.ts +11 -0
  29. package/Charting/Model/PointSeries/OhlcPointSeriesWrapped.js +32 -0
  30. package/Charting/Model/PointSeries/XyPointSeriesResampled.d.ts +7 -0
  31. package/Charting/Model/PointSeries/XyPointSeriesResampled.js +27 -0
  32. package/Charting/Model/PointSeries/XyPointSeriesWrapped.d.ts +6 -0
  33. package/Charting/Model/PointSeries/XyPointSeriesWrapped.js +27 -0
  34. package/Charting/Model/PointSeries/XyyPointSeriesResampled.d.ts +10 -0
  35. package/Charting/Model/PointSeries/XyyPointSeriesResampled.js +48 -0
  36. package/Charting/Model/PointSeries/XyyPointSeriesWrapped.d.ts +8 -0
  37. package/Charting/Model/PointSeries/XyyPointSeriesWrapped.js +29 -0
  38. package/Charting/Model/PointSeries/XyzPointSeriesWrapped.d.ts +8 -0
  39. package/Charting/Model/PointSeries/XyzPointSeriesWrapped.js +29 -0
  40. package/Charting/Model/XyDataSeries.d.ts +3 -2
  41. package/Charting/Model/XyDataSeries.js +22 -22
  42. package/Charting/Model/XyyDataSeries.d.ts +5 -5
  43. package/Charting/Model/XyyDataSeries.js +24 -21
  44. package/Charting/Model/XyzDataSeries.d.ts +5 -5
  45. package/Charting/Model/XyzDataSeries.js +24 -21
  46. package/Charting/Numerics/CoordinateCalculators/CategoryCoordinateCalculator.d.ts +2 -2
  47. package/Charting/Numerics/CoordinateCalculators/FlippedCategoryCoordinateCalculator.d.ts +2 -2
  48. package/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.d.ts +2 -1
  49. package/Charting/Numerics/CoordinateCalculators/FlippedNumericCoordinateCalculator.js +6 -2
  50. package/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.d.ts +2 -1
  51. package/Charting/Numerics/CoordinateCalculators/NumericCoordinateCalculator.js +6 -2
  52. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.d.ts +54 -0
  53. package/Charting/Numerics/Resamplers/ExtremeResamplerHelper.js +232 -0
  54. package/Charting/Numerics/Resamplers/ResamplingMode.d.ts +37 -0
  55. package/Charting/Numerics/Resamplers/ResamplingMode.js +41 -0
  56. package/Charting/Numerics/Resamplers/ResamplingParams.d.ts +39 -0
  57. package/Charting/Numerics/Resamplers/ResamplingParams.js +52 -0
  58. package/Charting/Services/RenderPassData.d.ts +6 -1
  59. package/Charting/Services/RenderPassData.js +5 -1
  60. package/Charting/Services/RenderPassInfo.d.ts +18 -0
  61. package/Charting/Services/RenderPassInfo.js +14 -0
  62. package/Charting/Services/SciChartRenderer.d.ts +14 -1
  63. package/Charting/Services/SciChartRenderer.js +122 -31
  64. package/Charting/Visuals/Axis/AxisCore.d.ts +11 -0
  65. package/Charting/Visuals/Axis/AxisCore.js +39 -18
  66. package/Charting/Visuals/Axis/AxisRenderer.d.ts +1 -0
  67. package/Charting/Visuals/Axis/AxisRenderer.js +6 -6
  68. package/Charting/Visuals/Axis/IAxisCoreOptions.d.ts +5 -0
  69. package/Charting/Visuals/Axis/NumericAxis.js +2 -2
  70. package/Charting/Visuals/Axis/constants.d.ts +1 -0
  71. package/Charting/Visuals/Axis/constants.js +1 -0
  72. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.d.ts +2 -2
  73. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.d.ts +2 -2
  74. package/Charting/Visuals/RenderableSeries/Animations/SeriesAnimation.d.ts +3 -3
  75. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.d.ts +2 -2
  76. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.d.ts +2 -2
  77. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +6 -6
  78. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.js +2 -2
  79. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.d.ts +9 -2
  80. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +45 -1
  81. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.d.ts +1 -0
  82. package/Charting/Visuals/RenderableSeries/BaseLineRenderableSeries.js +1 -0
  83. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.d.ts +1 -0
  84. package/Charting/Visuals/RenderableSeries/BaseMountainRenderableSeries.js +1 -0
  85. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.d.ts +12 -5
  86. package/Charting/Visuals/RenderableSeries/BaseOhlcRenderableSeries.js +59 -0
  87. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +40 -5
  88. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +114 -10
  89. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +36 -4
  90. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +51 -3
  91. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.d.ts +38 -4
  92. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +54 -3
  93. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.d.ts +1 -1
  94. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +8 -14
  95. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +4 -3
  96. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +5 -11
  97. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +4 -11
  98. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.d.ts +2 -1
  99. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +17 -21
  100. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +6 -12
  101. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js +9 -15
  102. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.d.ts +4 -3
  103. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +16 -21
  104. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider.js +2 -9
  105. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +0 -7
  106. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.d.ts +6 -2
  107. package/Charting/Visuals/RenderableSeries/FastBubbleRenderableSeries.js +5 -0
  108. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.d.ts +1 -0
  109. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.js +1 -0
  110. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.d.ts +1 -0
  111. package/Charting/Visuals/RenderableSeries/FastLineRenderableSeries.js +6 -0
  112. package/Charting/Visuals/RenderableSeries/HitTest/BandSeriesHitTestProvider.js +2 -2
  113. package/Charting/Visuals/RenderableSeries/HitTest/BaseHitTestProvider.js +1 -1
  114. package/Charting/Visuals/RenderableSeries/HitTest/BubbleSeriesHitTestProvider.js +1 -1
  115. package/Charting/Visuals/RenderableSeries/HitTest/ColumnSeriesHitTestProvider.js +2 -2
  116. package/Charting/Visuals/RenderableSeries/HitTest/LineSeriesHitTestProvider.js +2 -2
  117. package/Charting/Visuals/RenderableSeries/HitTest/MountainSeriesHitTestProvider.js +1 -1
  118. package/Charting/Visuals/RenderableSeries/HitTest/OhlcSeriesHitTestProvider.js +2 -2
  119. package/Charting/Visuals/RenderableSeries/HitTest/ScatterSeriesHitTestProvider.js +1 -1
  120. package/Charting/Visuals/RenderableSeries/HitTest/StackedColumnSeriesHitTestProvider.js +2 -2
  121. package/Charting/Visuals/RenderableSeries/HitTest/StackedMountainSeriesHitTestProvider.js +2 -2
  122. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.d.ts +6 -6
  123. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js +1 -1
  124. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +12 -1
  125. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +38 -2
  126. package/Charting/Visuals/RenderableSeries/ISpline.d.ts +3 -3
  127. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.d.ts +4 -4
  128. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +5 -5
  129. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +3 -3
  130. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +3 -3
  131. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.d.ts +3 -3
  132. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +3 -3
  133. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +0 -6
  134. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +1 -1
  135. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +1 -7
  136. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.d.ts +5 -0
  137. package/Charting/Visuals/RenderableSeries/UniformContoursRenderableSeries.js +6 -0
  138. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.d.ts +5 -0
  139. package/Charting/Visuals/RenderableSeries/UniformHeatmapRenderableSeries.js +6 -0
  140. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.d.ts +5 -3
  141. package/Charting/Visuals/RenderableSeries/XyScatterRenderableSeries.js +6 -3
  142. package/Charting/Visuals/RenderableSeries/constants.d.ts +3 -0
  143. package/Charting/Visuals/RenderableSeries/constants.js +3 -0
  144. package/Charting/Visuals/SciChartDefaults.d.ts +9 -1
  145. package/Charting/Visuals/SciChartDefaults.js +9 -1
  146. package/Charting/Visuals/licenseManager2D.js +19 -20
  147. package/Charting/Visuals/licenseManager2dState.d.ts +4 -0
  148. package/Charting/Visuals/licenseManager2dState.js +12 -0
  149. package/Charting3D/Model/DataSeries/XyzDataSeries3D.d.ts +7 -7
  150. package/Charting3D/Model/DataSeries/XyzDataSeries3D.js +3 -3
  151. package/Core/BuildStamp.d.ts +1 -1
  152. package/Core/BuildStamp.js +2 -2
  153. package/Core/OneTimePerformanceWarning.d.ts +6 -0
  154. package/Core/OneTimePerformanceWarning.js +19 -0
  155. package/Core/storage/localStorageApi.d.ts +9 -0
  156. package/Core/storage/localStorageApi.js +32 -0
  157. package/_wasm/scichart.browser.js +1 -1
  158. package/_wasm/scichart2d.js +95 -95
  159. package/_wasm/scichart2d.wasm +0 -0
  160. package/_wasm/scichart3d.js +96 -96
  161. package/_wasm/scichart3d.wasm +0 -0
  162. package/constants/performanceWarnings.d.ts +5 -0
  163. package/constants/performanceWarnings.js +8 -0
  164. package/package.json +1 -1
  165. package/types/SearchMode.d.ts +21 -0
  166. package/types/SearchMode.js +25 -0
  167. package/types/TSciChart.d.ts +143 -40
  168. package/types/TSciChart3D.d.ts +66 -28
  169. package/utils/array.d.ts +7 -0
  170. package/utils/array.js +19 -1
  171. package/utils/calcAverage.d.ts +2 -2
  172. package/utils/ccall/appendDoubleVectorFromJsArray.d.ts +19 -0
  173. package/utils/ccall/appendDoubleVectorFromJsArray.js +91 -0
  174. package/utils/hash.d.ts +7 -0
  175. package/utils/hash.js +35 -0
  176. package/utils/ccall/fillDoubleVectorFromJsArray.d.ts +0 -3
  177. package/utils/ccall/fillDoubleVectorFromJsArray.js +0 -33
  178. package/utils/performance.d.ts +0 -5
  179. package/utils/performance.js +0 -11
@@ -410,7 +410,6 @@ var DataPointSelectionModifier = /** @class */ (function (_super) {
410
410
  topYData = yCalc.getDataValue(_this.startPoint.y);
411
411
  }
412
412
  if (rs.dataSeries.type === IDataSeries_1.EDataSeriesType.HeatmapUniform) {
413
- var heatmapSeries = rs.dataSeries;
414
413
  // TODO: Heatmap series
415
414
  }
416
415
  else {
@@ -39,6 +39,7 @@ export declare class WebGlRenderContext2D implements IRenderContext2D {
39
39
  private readonly layers;
40
40
  private readonly webAssemblyContext;
41
41
  private readonly effects;
42
+ private nativeContext;
42
43
  /**
43
44
  * Creates an instance of the WebGlRenderContext2D
44
45
  * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing native methods and access to our WebGL2 Engine
@@ -43,7 +43,10 @@ var WebGlRenderContext2D = /** @class */ (function () {
43
43
  * Get the native {@link SCRTRenderContext} for direct access to SciChart's WebAssembly Visual Xccelerator engine
44
44
  */
45
45
  WebGlRenderContext2D.prototype.getNativeContext = function () {
46
- return this.webAssemblyContext.SCRTGetMainRenderContext2D();
46
+ if (!this.nativeContext) {
47
+ this.nativeContext = this.webAssemblyContext.SCRTGetMainRenderContext2D();
48
+ }
49
+ return this.nativeContext;
47
50
  };
48
51
  /**
49
52
  * Draw lines: grid lines, etc.
@@ -1,13 +1,19 @@
1
1
  import { EventHandler } from "../../Core/EventHandler";
2
2
  import { NumberRange } from "../../Core/NumberRange";
3
- import { DoubleVector, TSciChart } from "../../types/TSciChart";
3
+ import { ESearchMode } from "../../types/SearchMode";
4
+ import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
4
5
  import { SeriesAnimation } from "../Visuals/RenderableSeries/Animations/SeriesAnimation";
6
+ import { IDataDistributionCalculator } from "./DataDistributionCalculator/IDataDistributionCalculator";
5
7
  import { EDataChangeType, EDataSeriesType, EDataSeriesValueType, IDataChangeArgs, IDataSeries } from "./IDataSeries";
6
8
  import { IMetadataGenerator, IPointMetadata } from "./IPointMetadata";
7
9
  /**
8
10
  * Options to pass to the {@link BaseDataSeries} constructor
9
11
  */
10
12
  export interface IBaseDataSeriesOptions {
13
+ /**
14
+ * A unique Id for the {@link IDataSeries}
15
+ */
16
+ id?: string;
11
17
  /**
12
18
  * The DataSeries name, used in legends, tooltips to identify the chart series
13
19
  */
@@ -19,6 +25,14 @@ export interface IBaseDataSeriesOptions {
19
25
  * algorithms for zooming, panning and ranging and ensure best performance.
20
26
  */
21
27
  dataIsSortedInX?: boolean;
28
+ /**
29
+ * When true, the Data is evenly spaced in X.
30
+ * @remarks
31
+ * The user must specify this flag (defaults to true) in order to choose the correct, and
32
+ * fastest algorithms for drawing, indexing and ranging. If you experience glitches or
33
+ * strange drawing, it may be because you have set data with uneven spacing in X but not set this flag.
34
+ */
35
+ dataEvenlySpacedInX?: boolean;
22
36
  /**
23
37
  * Gets or sets whether the Y data contains NaN values.
24
38
  */
@@ -49,6 +63,10 @@ export declare abstract class BaseDataSeries implements IDataSeries {
49
63
  abstract readonly type: EDataSeriesType;
50
64
  /** @inheritDoc */
51
65
  readonly dataChanged: EventHandler<IDataChangeArgs>;
66
+ /** @inheritDoc */
67
+ readonly id: string;
68
+ /** @inheritDoc */
69
+ readonly dataDistributionCalculator: IDataDistributionCalculator;
52
70
  minXSpacing: number;
53
71
  /**
54
72
  * If set, these will be included in the serialised definition, so that it can be used with sharedData
@@ -61,28 +79,30 @@ export declare abstract class BaseDataSeries implements IDataSeries {
61
79
  /**
62
80
  * X vector with initial animation values
63
81
  */
64
- xInitialAnimationValues: DoubleVector;
82
+ xInitialAnimationValues: SCRTDoubleVector;
65
83
  /**
66
84
  * Y vector with initial animation values
67
85
  */
68
- yInitialAnimationValues: DoubleVector;
86
+ yInitialAnimationValues: SCRTDoubleVector;
69
87
  /**
70
88
  * X vector with final animation values
71
89
  */
72
- xFinalAnimationValues: DoubleVector;
90
+ xFinalAnimationValues: SCRTDoubleVector;
73
91
  /**
74
92
  * Y vector with final animation values
75
93
  */
76
- yFinalAnimationValues: DoubleVector;
77
- protected xValues: DoubleVector;
78
- protected yValues: DoubleVector;
79
- protected indexes: DoubleVector;
94
+ yFinalAnimationValues: SCRTDoubleVector;
95
+ protected xValues: SCRTDoubleVector;
96
+ protected yValues: SCRTDoubleVector;
97
+ protected indexes: SCRTDoubleVector;
80
98
  protected isDeleted: boolean;
81
99
  private dataSeriesNameProperty;
82
100
  private isSortedProperty;
83
101
  private containsNaNProperty;
102
+ private isEvenlySpacedProperty;
84
103
  private metadataProperty;
85
104
  private metadataGeneratorProperty;
105
+ private changeCountProperty;
86
106
  /**
87
107
  * Creates an instance of {@link BaseDataSeries}
88
108
  * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods
@@ -91,7 +111,7 @@ export declare abstract class BaseDataSeries implements IDataSeries {
91
111
  */
92
112
  protected constructor(webAssemblyContext: TSciChart, options?: IBaseDataSeriesOptions);
93
113
  /** @inheritDoc */
94
- abstract clear(): void;
114
+ clear(): void;
95
115
  /** @inheritDoc */
96
116
  get containsNaN(): boolean;
97
117
  /** @inheritDoc */
@@ -101,6 +121,10 @@ export declare abstract class BaseDataSeries implements IDataSeries {
101
121
  /** @inheritDoc */
102
122
  set isSorted(isSorted: boolean);
103
123
  /** @inheritDoc */
124
+ get isEvenlySpaced(): boolean;
125
+ /** @inheritDoc */
126
+ set isEvenlySpaced(isSorted: boolean);
127
+ /** @inheritDoc */
104
128
  get dataSeriesName(): string;
105
129
  /** @inheritDoc */
106
130
  set dataSeriesName(dataSeriesName: string);
@@ -109,11 +133,11 @@ export declare abstract class BaseDataSeries implements IDataSeries {
109
133
  /** @inheritDoc */
110
134
  getIsDeleted(): boolean;
111
135
  /** @inheritDoc */
112
- getNativeIndexes(): DoubleVector;
136
+ getNativeIndexes(): SCRTDoubleVector;
113
137
  /** @inheritDoc */
114
- getNativeXValues(): DoubleVector;
138
+ getNativeXValues(): SCRTDoubleVector;
115
139
  /** @inheritDoc */
116
- getNativeYValues(): DoubleVector;
140
+ getNativeYValues(): SCRTDoubleVector;
117
141
  /** @inheritDoc */
118
142
  delete(): void;
119
143
  /**
@@ -126,7 +150,8 @@ export declare abstract class BaseDataSeries implements IDataSeries {
126
150
  getXRange(dataSeriesValueType?: EDataSeriesValueType): NumberRange;
127
151
  /** @inheritDoc */
128
152
  getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType): NumberRange;
129
- getIndicesRange(xRange: NumberRange): NumberRange;
153
+ /** @inheritDoc */
154
+ getIndicesRange(xRange: NumberRange, isCategoryData?: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode): NumberRange;
130
155
  /** @inheritDoc */
131
156
  get hasValues(): boolean;
132
157
  /**
@@ -169,6 +194,8 @@ export declare abstract class BaseDataSeries implements IDataSeries {
169
194
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
170
195
  /** @inheritDoc */
171
196
  toJSON(excludeData?: boolean): any;
197
+ /** @inheritDoc */
198
+ get changeCount(): number;
172
199
  protected validateIndex(index: number, message?: string): void;
173
200
  protected setMetadataAt(index: number, metadata: IPointMetadata): void;
174
201
  protected appendMetadata(metadata: IPointMetadata): void;
@@ -178,8 +205,8 @@ export declare abstract class BaseDataSeries implements IDataSeries {
178
205
  protected removeMetadataAt(index: number): void;
179
206
  protected removeMetadataRange(startIndex: number, count: number): void;
180
207
  protected setMetadata(value: IPointMetadata[]): void;
181
- protected getXValues(dataSeriesValueType: EDataSeriesValueType): DoubleVector;
208
+ protected getXValues(dataSeriesValueType: EDataSeriesValueType): SCRTDoubleVector;
182
209
  private fillMetadataIfUndefined;
183
210
  private getYValues;
184
211
  }
185
- export declare const getWindowedYRange: (webAssemblyContext: TSciChart, xValues: DoubleVector, yValues: DoubleVector, xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis: boolean, isSorted: boolean) => NumberRange;
212
+ export declare const getWindowedYRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis: boolean, isSorted: boolean) => NumberRange;
@@ -26,9 +26,11 @@ var Deleter_1 = require("../../Core/Deleter");
26
26
  var EventHandler_1 = require("../../Core/EventHandler");
27
27
  var NumberRange_1 = require("../../Core/NumberRange");
28
28
  var BaseType_1 = require("../../types/BaseType");
29
- var fillDoubleVectorFromJsArray_1 = require("../../utils/ccall/fillDoubleVectorFromJsArray");
29
+ var SearchMode_1 = require("../../types/SearchMode");
30
+ var guid_1 = require("../../utils/guid");
30
31
  var isRealNumber_1 = require("../../utils/isRealNumber");
31
32
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
33
+ var DataDistributionCalculator_1 = require("./DataDistributionCalculator/DataDistributionCalculator");
32
34
  var IDataSeries_1 = require("./IDataSeries");
33
35
  var IPointMetadata_1 = require("./IPointMetadata");
34
36
  /**
@@ -49,28 +51,34 @@ var BaseDataSeries = /** @class */ (function () {
49
51
  * @param options the {@link IBaseDataSeriesOptions} which can be passed to config the DataSeries at construct time
50
52
  */
51
53
  function BaseDataSeries(webAssemblyContext, options) {
52
- var _a, _b, _c;
54
+ var _a, _b, _c, _d, _e;
53
55
  /** @inheritDoc */
54
56
  this.dataChanged = new EventHandler_1.EventHandler();
57
+ /** @inheritDoc */
58
+ this.dataDistributionCalculator = new DataDistributionCalculator_1.DataDistributionCalculator();
55
59
  this.minXSpacing = 0;
56
- this.isSortedProperty = true;
57
- this.containsNaNProperty = true;
60
+ this.isSortedProperty = undefined;
61
+ this.containsNaNProperty = undefined;
62
+ this.isEvenlySpacedProperty = false;
58
63
  this.metadataGeneratorProperty = undefined;
64
+ this.changeCountProperty = 0;
59
65
  this.webAssemblyContext = webAssemblyContext;
60
- this.xValues = new webAssemblyContext.DoubleVector();
61
- this.yValues = new webAssemblyContext.DoubleVector();
62
- this.indexes = new webAssemblyContext.DoubleVector();
63
- this.xInitialAnimationValues = new webAssemblyContext.DoubleVector();
64
- this.yInitialAnimationValues = new webAssemblyContext.DoubleVector();
65
- this.xFinalAnimationValues = new webAssemblyContext.DoubleVector();
66
- this.yFinalAnimationValues = new webAssemblyContext.DoubleVector();
67
- this.dataSeriesNameProperty = (_a = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _a !== void 0 ? _a : this.dataSeriesNameProperty;
66
+ this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();
67
+ this.xValues = new webAssemblyContext.SCRTDoubleVector();
68
+ this.yValues = new webAssemblyContext.SCRTDoubleVector();
69
+ this.indexes = new webAssemblyContext.SCRTDoubleVector();
70
+ this.xInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
71
+ this.yInitialAnimationValues = new webAssemblyContext.SCRTDoubleVector();
72
+ this.xFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
73
+ this.yFinalAnimationValues = new webAssemblyContext.SCRTDoubleVector();
74
+ this.dataSeriesNameProperty = (_b = options === null || options === void 0 ? void 0 : options.dataSeriesName) !== null && _b !== void 0 ? _b : this.dataSeriesNameProperty;
68
75
  this.isSorted = (options === null || options === void 0 ? void 0 : options.dataIsSortedInX) !== undefined ? options === null || options === void 0 ? void 0 : options.dataIsSortedInX : this.isSortedProperty;
69
- this.containsNaN = (_b = options === null || options === void 0 ? void 0 : options.containsNaN) !== null && _b !== void 0 ? _b : this.containsNaNProperty;
76
+ this.containsNaN = (_c = options === null || options === void 0 ? void 0 : options.containsNaN) !== null && _c !== void 0 ? _c : this.containsNaNProperty;
77
+ this.isEvenlySpaced = (_d = options === null || options === void 0 ? void 0 : options.dataEvenlySpacedInX) !== null && _d !== void 0 ? _d : this.isEvenlySpacedProperty;
70
78
  if (options === null || options === void 0 ? void 0 : options.metadata) {
71
79
  if ("type" in options.metadata) {
72
80
  this.metadataGeneratorProperty = (0, classFactory_1.createType)(BaseType_1.EBaseType.MetadataGenerator, options.metadata.type, webAssemblyContext, options.metadata.data);
73
- options.metadata = (_c = this.metadataGeneratorProperty) === null || _c === void 0 ? void 0 : _c.getMetadata();
81
+ options.metadata = (_e = this.metadataGeneratorProperty) === null || _e === void 0 ? void 0 : _e.getMetadata();
74
82
  }
75
83
  else if (!Array.isArray(options === null || options === void 0 ? void 0 : options.metadata)) {
76
84
  this.metadataGeneratorProperty = new IPointMetadata_1.TemplateMetadataGenerator(options === null || options === void 0 ? void 0 : options.metadata);
@@ -78,6 +86,12 @@ var BaseDataSeries = /** @class */ (function () {
78
86
  }
79
87
  }
80
88
  }
89
+ /** @inheritDoc */
90
+ BaseDataSeries.prototype.clear = function () {
91
+ var _a;
92
+ (_a = this.indexes) === null || _a === void 0 ? void 0 : _a.clear();
93
+ this.dataDistributionCalculator.clear(this.isSorted, this.containsNaN);
94
+ };
81
95
  Object.defineProperty(BaseDataSeries.prototype, "containsNaN", {
82
96
  /** @inheritDoc */
83
97
  get: function () {
@@ -86,6 +100,9 @@ var BaseDataSeries = /** @class */ (function () {
86
100
  /** @inheritDoc */
87
101
  set: function (containsNaN) {
88
102
  this.containsNaNProperty = containsNaN;
103
+ if (containsNaN !== undefined) {
104
+ this.dataDistributionCalculator.setContainsNaN(containsNaN);
105
+ }
89
106
  this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, "containsNaN");
90
107
  },
91
108
  enumerable: false,
@@ -99,11 +116,27 @@ var BaseDataSeries = /** @class */ (function () {
99
116
  /** @inheritDoc */
100
117
  set: function (isSorted) {
101
118
  this.isSortedProperty = isSorted;
119
+ if (isSorted !== undefined) {
120
+ this.dataDistributionCalculator.setIsSortedAscending(isSorted);
121
+ }
102
122
  this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, "isSorted");
103
123
  },
104
124
  enumerable: false,
105
125
  configurable: true
106
126
  });
127
+ Object.defineProperty(BaseDataSeries.prototype, "isEvenlySpaced", {
128
+ /** @inheritDoc */
129
+ get: function () {
130
+ return this.isEvenlySpacedProperty;
131
+ },
132
+ /** @inheritDoc */
133
+ set: function (isSorted) {
134
+ this.isEvenlySpacedProperty = isSorted;
135
+ this.notifyDataChanged(IDataSeries_1.EDataChangeType.Property, undefined, undefined, "isEvenlySpaced");
136
+ },
137
+ enumerable: false,
138
+ configurable: true
139
+ });
107
140
  Object.defineProperty(BaseDataSeries.prototype, "dataSeriesName", {
108
141
  /** @inheritDoc */
109
142
  get: function () {
@@ -135,9 +168,7 @@ var BaseDataSeries = /** @class */ (function () {
135
168
  }
136
169
  var indexes = this.indexes;
137
170
  if (indexes.size() < this.count()) {
138
- var newIndexesLength = this.count() - indexes.size();
139
- var indexValues = Array.from(Array(newIndexesLength), function (_, i) { return i + indexes.size(); });
140
- (0, fillDoubleVectorFromJsArray_1.fillDoubleVectorFromJsArray)(this.webAssemblyContext, this.indexes, indexValues);
171
+ this.webAssemblyContext.SCRTFillVectorSequential(this.indexes, this.count());
141
172
  }
142
173
  return this.indexes;
143
174
  };
@@ -165,6 +196,7 @@ var BaseDataSeries = /** @class */ (function () {
165
196
  * Call to notify subscribers of {@link dataChanged} that the data has changed and {@link SciChartSurface} needs redrawing
166
197
  */
167
198
  BaseDataSeries.prototype.notifyDataChanged = function (changeType, index, count, name) {
199
+ this.changeCountProperty++;
168
200
  this.dataChanged.raiseEvent({ changeType: changeType, index: index, count: count });
169
201
  };
170
202
  Object.defineProperty(BaseDataSeries.prototype, "xRange", {
@@ -187,14 +219,18 @@ var BaseDataSeries = /** @class */ (function () {
187
219
  else if (this.count() > 1) {
188
220
  var min = xValues.get(0);
189
221
  var max = xValues.get(this.count() - 1);
190
- if (!this.isSorted) {
191
- for (var i = 0; i < this.count(); i++) {
192
- if (xValues.get(i) < min) {
193
- min = xValues.get(i);
194
- }
195
- if (xValues.get(i) > max) {
196
- max = xValues.get(i);
222
+ if (!this.dataDistributionCalculator.isSortedAscending) {
223
+ var minMax = void 0;
224
+ try {
225
+ minMax = this.webAssemblyContext.NumberUtil.MinMax(this.getNativeXValues());
226
+ if (!(0, isRealNumber_1.isRealNumber)(minMax.minD) || !(0, isRealNumber_1.isRealNumber)(minMax.maxD)) {
227
+ return new NumberRange_1.NumberRange(0, 0);
197
228
  }
229
+ min = minMax.minD;
230
+ max = minMax.maxD;
231
+ }
232
+ finally {
233
+ (0, Deleter_1.deleteSafe)(minMax);
198
234
  }
199
235
  }
200
236
  if (min === max) {
@@ -207,7 +243,7 @@ var BaseDataSeries = /** @class */ (function () {
207
243
  }
208
244
  return new NumberRange_1.NumberRange(min, max);
209
245
  }
210
- return new NumberRange_1.NumberRange();
246
+ return new NumberRange_1.NumberRange(0, 0);
211
247
  };
212
248
  /** @inheritDoc */
213
249
  BaseDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType) {
@@ -215,11 +251,16 @@ var BaseDataSeries = /** @class */ (function () {
215
251
  if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }
216
252
  var xValues = this.getXValues(dataSeriesValueType);
217
253
  var yValues = this.getYValues(dataSeriesValueType);
218
- return (0, exports.getWindowedYRange)(this.webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, this.isSorted);
254
+ return (0, exports.getWindowedYRange)(this.webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, this.dataDistributionCalculator.isSortedAscending);
219
255
  };
220
- BaseDataSeries.prototype.getIndicesRange = function (xRange) {
256
+ /** @inheritDoc */
257
+ BaseDataSeries.prototype.getIndicesRange = function (xRange, isCategoryData, downSearchMode, upSearchMode) {
258
+ if (isCategoryData === void 0) { isCategoryData = false; }
259
+ if (downSearchMode === void 0) { downSearchMode = SearchMode_1.ESearchMode.RoundDown; }
260
+ if (upSearchMode === void 0) { upSearchMode = SearchMode_1.ESearchMode.RoundUp; }
221
261
  // TODO SearchMode downSearchMode = SearchMode.RoundDown, SearchMode upSearchMode = SearchMode.RoundUp
222
- return getIndicesRange(this.webAssemblyContext, this.xValues, xRange, this.isSorted);
262
+ var vector = isCategoryData ? this.getNativeIndexes() : this.xValues;
263
+ return getIndicesRange(this.webAssemblyContext, vector, xRange, this.dataDistributionCalculator.isSortedAscending);
223
264
  };
224
265
  Object.defineProperty(BaseDataSeries.prototype, "hasValues", {
225
266
  /** @inheritDoc */
@@ -329,6 +370,14 @@ var BaseDataSeries = /** @class */ (function () {
329
370
  metadata: this.metadataGeneratorProperty ? this.metadataGeneratorProperty.toJSON() : this.metadataProperty }, this.dataIds);
330
371
  return options;
331
372
  };
373
+ Object.defineProperty(BaseDataSeries.prototype, "changeCount", {
374
+ /** @inheritDoc */
375
+ get: function () {
376
+ return this.changeCountProperty;
377
+ },
378
+ enumerable: false,
379
+ configurable: true
380
+ });
332
381
  BaseDataSeries.prototype.validateIndex = function (index, message) {
333
382
  if (Math.round(index) !== index) {
334
383
  throw Error("Index must be an integer");
@@ -1,14 +1,20 @@
1
1
  import { TSeriesDataDefinition } from "../../Builder/buildDataSeries";
2
2
  import { EventHandler } from "../../Core/EventHandler";
3
3
  import { NumberRange } from "../../Core/NumberRange";
4
- import { DoubleVector, FloatVector, TSciChart } from "../../types/TSciChart";
4
+ import { ESearchMode } from "../../types/SearchMode";
5
+ import { FloatVector, SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
5
6
  import { IColorMapParams } from "../Visuals/RenderableSeries/HeatmapColorMap";
7
+ import { IDataDistributionCalculator } from "./DataDistributionCalculator/IDataDistributionCalculator";
6
8
  import { EDataChangeType, EDataSeriesType, IDataChangeArgs, IDataSeries } from "./IDataSeries";
7
9
  import { IMetadataGenerator, IPointMetadata } from "./IPointMetadata";
8
10
  /**
9
- * Options to pass to the {@link BaseHeatmapSeries} constructor
11
+ * Options to pass to the {@link BaseHeatmapDataSeries} constructor
10
12
  */
11
13
  export interface IBaseHeatmapSeriesOptions {
14
+ /**
15
+ * A unique Id for the {@link IDataSeries}
16
+ */
17
+ id?: string;
12
18
  /**
13
19
  * The DataSeries name, used in legends, tooltips to identify the chart series
14
20
  */
@@ -45,14 +51,13 @@ export interface IHeatmapSeries extends IDataSeries {
45
51
  * See {@link UniformHeatmapRenderableSeries} to see the class for rendering a 2D JavaScript Heatmap Chart.
46
52
  */
47
53
  export declare abstract class BaseHeatmapDataSeries implements IHeatmapSeries {
48
- /**
49
- * @inheritDoc
50
- */
54
+ /** @inheritDoc */
51
55
  abstract type: EDataSeriesType;
52
- /**
53
- * @inheritDoc
54
- */
56
+ /** @inheritDoc */
55
57
  readonly dataChanged: EventHandler<IDataChangeArgs>;
58
+ /** @inheritDoc */
59
+ readonly id: string;
60
+ /** @inheritDoc */
56
61
  minXSpacing: number;
57
62
  /**
58
63
  * Gets the width of the 2-dimensional array of {@link getZValues | Z-Values} where array is ranked [width][height]
@@ -87,6 +92,7 @@ export declare abstract class BaseHeatmapDataSeries implements IHeatmapSeries {
87
92
  private lastZMin;
88
93
  private lastZMax;
89
94
  private metadataGeneratorProperty;
95
+ private changeCountProperty;
90
96
  /**
91
97
  * Creates an instance of {@link BaseHeatmapDataSeries}
92
98
  * @param webAssemblyContext the {@link TSciChart | SciChart WebAssembly Context} containing native methods
@@ -94,22 +100,20 @@ export declare abstract class BaseHeatmapDataSeries implements IHeatmapSeries {
94
100
  * @param options the {@link IBaseHeatmapSeriesOptions} which can be passed to configure the DataSeries at construct time
95
101
  */
96
102
  protected constructor(webAssemblyContext: TSciChart, options: IBaseHeatmapSeriesOptions);
97
- /**
98
- * @inheritDoc
99
- */
103
+ /** @inheritDoc */
100
104
  get isSorted(): boolean;
101
- /**
102
- * @inheritDoc
103
- */
105
+ /** @inheritDoc */
104
106
  set isSorted(value: boolean);
105
- /**
106
- * @inheritDoc
107
- */
107
+ /** @inheritDoc */
108
+ get isEvenlySpaced(): boolean;
109
+ /** @inheritDoc */
110
+ set isEvenlySpaced(value: boolean);
111
+ /** @inheritDoc */
108
112
  get containsNaN(): boolean;
109
- /**
110
- * @inheritDoc
111
- */
113
+ /** @inheritDoc */
112
114
  set containsNaN(value: boolean);
115
+ /** @inheritDoc */
116
+ get dataDistributionCalculator(): IDataDistributionCalculator;
113
117
  /**
114
118
  * Returns true if the Heatmap DataSeries has data changes.
115
119
  * This flag is set to true when notifyDataChanged is called, and reset to false after
@@ -225,15 +229,15 @@ export declare abstract class BaseHeatmapDataSeries implements IHeatmapSeries {
225
229
  /**
226
230
  * @inheritDoc
227
231
  */
228
- getNativeIndexes(): DoubleVector;
232
+ getNativeIndexes(): SCRTDoubleVector;
229
233
  /**
230
234
  * @inheritDoc
231
235
  */
232
- getNativeXValues(): DoubleVector;
236
+ getNativeXValues(): SCRTDoubleVector;
233
237
  /**
234
238
  * @inheritDoc
235
239
  */
236
- getNativeYValues(): DoubleVector;
240
+ getNativeYValues(): SCRTDoubleVector;
237
241
  /**
238
242
  * @inheritDoc
239
243
  */
@@ -278,6 +282,10 @@ export declare abstract class BaseHeatmapDataSeries implements IHeatmapSeries {
278
282
  * Gets the range in the Y-direction for this DataSeries
279
283
  */
280
284
  abstract getYRange(): NumberRange;
285
+ /** @inheritDoc */
286
+ getIndicesRange(visibleRange: NumberRange, isCategoryData: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode): NumberRange;
287
+ /** @inheritDoc */
288
+ get changeCount(): number;
281
289
  /**
282
290
  * Computes the range in the Z-direction for this DataSeries
283
291
  * @remarks
@@ -7,6 +7,7 @@ var EventHandler_1 = require("../../Core/EventHandler");
7
7
  var Guard_1 = require("../../Core/Guard");
8
8
  var NumberRange_1 = require("../../Core/NumberRange");
9
9
  var BaseType_1 = require("../../types/BaseType");
10
+ var guid_1 = require("../../utils/guid");
10
11
  var isRealNumber_1 = require("../../utils/isRealNumber");
11
12
  var IDataSeries_1 = require("./IDataSeries");
12
13
  var IPointMetadata_1 = require("./IPointMetadata");
@@ -28,11 +29,10 @@ var BaseHeatmapDataSeries = /** @class */ (function () {
28
29
  * @param options the {@link IBaseHeatmapSeriesOptions} which can be passed to configure the DataSeries at construct time
29
30
  */
30
31
  function BaseHeatmapDataSeries(webAssemblyContext, options) {
31
- var _a;
32
- /**
33
- * @inheritDoc
34
- */
32
+ var _a, _b;
33
+ /** @inheritDoc */
35
34
  this.dataChanged = new EventHandler_1.EventHandler();
35
+ /** @inheritDoc */
36
36
  this.minXSpacing = 0;
37
37
  /**
38
38
  * Gets the width of the 2-dimensional array of {@link getZValues | Z-Values} where array is ranked [width][height]
@@ -50,12 +50,14 @@ var BaseHeatmapDataSeries = /** @class */ (function () {
50
50
  this.lastZMin = -1;
51
51
  this.lastZMax = -1;
52
52
  this.metadataGeneratorProperty = undefined;
53
+ this.changeCountProperty = 0;
53
54
  this.webAssemblyContext = webAssemblyContext;
55
+ this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();
54
56
  this.normalizedVector = new this.webAssemblyContext.FloatVector();
55
57
  if (options === null || options === void 0 ? void 0 : options.metadata) {
56
58
  if ("type" in options.metadata) {
57
59
  this.metadataGeneratorProperty = (0, classFactory_1.createType)(BaseType_1.EBaseType.MetadataGenerator, options.metadata.type, webAssemblyContext, options.metadata.data);
58
- options.metadata = (_a = this.metadataGeneratorProperty) === null || _a === void 0 ? void 0 : _a.getMetadata();
60
+ options.metadata = (_b = this.metadataGeneratorProperty) === null || _b === void 0 ? void 0 : _b.getMetadata();
59
61
  }
60
62
  else if (!Array.isArray(options === null || options === void 0 ? void 0 : options.metadata)) {
61
63
  this.metadataGeneratorProperty = new IPointMetadata_1.TemplateMetadataGenerator(options === null || options === void 0 ? void 0 : options.metadata);
@@ -66,33 +68,45 @@ var BaseHeatmapDataSeries = /** @class */ (function () {
66
68
  this.setZValues(options === null || options === void 0 ? void 0 : options.zValues, options === null || options === void 0 ? void 0 : options.metadata);
67
69
  }
68
70
  Object.defineProperty(BaseHeatmapDataSeries.prototype, "isSorted", {
69
- /**
70
- * @inheritDoc
71
- */
71
+ /** @inheritDoc */
72
72
  get: function () {
73
73
  return true;
74
74
  },
75
- /**
76
- * @inheritDoc
77
- */
75
+ /** @inheritDoc */
78
76
  set: function (value) {
79
77
  throw new Error("setting isSorted on a heatmap series is not supported");
80
78
  },
81
79
  enumerable: false,
82
80
  configurable: true
83
81
  });
82
+ Object.defineProperty(BaseHeatmapDataSeries.prototype, "isEvenlySpaced", {
83
+ /** @inheritDoc */
84
+ get: function () {
85
+ return true;
86
+ },
87
+ /** @inheritDoc */
88
+ set: function (value) {
89
+ throw new Error("setting isEvenlySpaced on a heatmap series is not supported");
90
+ },
91
+ enumerable: false,
92
+ configurable: true
93
+ });
84
94
  Object.defineProperty(BaseHeatmapDataSeries.prototype, "containsNaN", {
85
- /**
86
- * @inheritDoc
87
- */
95
+ /** @inheritDoc */
88
96
  get: function () {
89
97
  return false;
90
98
  },
91
- /**
92
- * @inheritDoc
93
- */
99
+ /** @inheritDoc */
94
100
  set: function (value) {
95
- throw new Error("setting containsNaN on a heatmap series is not supported");
101
+ throw new Error("setting containsNaN is not supported on BaseHeatmapDataSeries");
102
+ },
103
+ enumerable: false,
104
+ configurable: true
105
+ });
106
+ Object.defineProperty(BaseHeatmapDataSeries.prototype, "dataDistributionCalculator", {
107
+ /** @inheritDoc */
108
+ get: function () {
109
+ throw new Error("dataDistributionCalculator is not supported on BaseHeatmapDataSeries");
96
110
  },
97
111
  enumerable: false,
98
112
  configurable: true
@@ -378,6 +392,7 @@ var BaseHeatmapDataSeries = /** @class */ (function () {
378
392
  * This will trigger a redraw on a parent SciChartSurface
379
393
  */
380
394
  BaseHeatmapDataSeries.prototype.notifyDataChanged = function (changeType, xIndex, yIndex, name) {
395
+ this.changeCountProperty++;
381
396
  this.hasDataChangesProperty = true;
382
397
  this.dataChanged.raiseEvent({ changeType: changeType, index: xIndex, yIndex: yIndex, name: name });
383
398
  };
@@ -472,6 +487,18 @@ var BaseHeatmapDataSeries = /** @class */ (function () {
472
487
  };
473
488
  return options;
474
489
  };
490
+ /** @inheritDoc */
491
+ BaseHeatmapDataSeries.prototype.getIndicesRange = function (visibleRange, isCategoryData, downSearchMode, upSearchMode) {
492
+ throw Error("getIndicesRange() method is not supported for BaseHeatmapDataSeries");
493
+ };
494
+ Object.defineProperty(BaseHeatmapDataSeries.prototype, "changeCount", {
495
+ /** @inheritDoc */
496
+ get: function () {
497
+ return this.changeCountProperty;
498
+ },
499
+ enumerable: false,
500
+ configurable: true
501
+ });
475
502
  /**
476
503
  * Computes the range in the Z-direction for this DataSeries
477
504
  * @remarks
@@ -0,0 +1,23 @@
1
+ import { NumberArray } from "../../../types/NumberArray";
2
+ import { SCRTDoubleVector } from "../../../types/TSciChart";
3
+ import { IDataDistributionCalculator } from "./IDataDistributionCalculator";
4
+ export declare class DataDistributionCalculator implements IDataDistributionCalculator {
5
+ private containsNanProperty;
6
+ private isSortedAscendingProperty;
7
+ /** @inheritDoc */
8
+ get containsNaN(): boolean;
9
+ /** @inheritDoc */
10
+ get isSortedAscending(): boolean;
11
+ /** @inheritDoc */
12
+ onAppend(isSorted: boolean, containsNaN: boolean, currentXValues: SCRTDoubleVector, newXValues: NumberArray, newYValues: NumberArray): void;
13
+ /** @inheritDoc */
14
+ onInsert(isSorted: boolean, containsNaN: boolean, currentXValues: SCRTDoubleVector, newXValues: NumberArray, newYValues: NumberArray, indexWhereInserted: number): void;
15
+ /** @inheritDoc */
16
+ onUpdate(isSorted: boolean, containsNaN: boolean, currentXValues: SCRTDoubleVector, newXValues: NumberArray, newYValues: NumberArray, indexWhereUpdated: number): void;
17
+ /** @inheritDoc */
18
+ clear(isSorted: boolean, containsNaN: boolean): void;
19
+ /** @inheritDoc */
20
+ setIsSortedAscending(value: boolean): void;
21
+ /** @inheritDoc */
22
+ setContainsNaN(value: boolean): void;
23
+ }