scichart 3.2.470 → 3.2.476

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 (53) hide show
  1. package/Builder/buildDataSeries.d.ts +7 -3
  2. package/Builder/buildDataSeries.js +87 -112
  3. package/Builder/buildSeries.js +52 -1
  4. package/Builder/chartBuilder.d.ts +1 -1
  5. package/Charting/ChartModifiers/RolloverModifier.js +3 -0
  6. package/Charting/ChartModifiers/SeriesSelectionModifier.d.ts +2 -0
  7. package/Charting/ChartModifiers/SeriesSelectionModifier.js +21 -0
  8. package/Charting/LayoutManager/SciChartVerticalGroup.d.ts +1 -0
  9. package/Charting/LayoutManager/SciChartVerticalGroup.js +18 -0
  10. package/Charting/LayoutManager/SynchronizedLayoutManager.d.ts +1 -1
  11. package/Charting/Model/BaseDataSeries.d.ts +3 -1
  12. package/Charting/Model/BaseDataSeries.js +15 -8
  13. package/Charting/Model/BaseHeatmapDataSeries.d.ts +3 -1
  14. package/Charting/Model/BaseHeatmapDataSeries.js +17 -10
  15. package/Charting/Model/Filters/HlcScaleOffsetFilter.d.ts +13 -1
  16. package/Charting/Model/Filters/OhlcScaleOffsetFilter.d.ts +13 -1
  17. package/Charting/Model/Filters/XyLinearTrendFilter.d.ts +14 -2
  18. package/Charting/Model/Filters/XyMovingAverageFilter.d.ts +13 -2
  19. package/Charting/Model/Filters/XyRatioFilter.d.ts +13 -1
  20. package/Charting/Model/Filters/XyScaleOffsetFilter.d.ts +14 -2
  21. package/Charting/Model/Filters/XyyScaleOffsetFilter.d.ts +14 -1
  22. package/Charting/Model/Filters/XyzScaleOffsetFilter.d.ts +14 -1
  23. package/Charting/Model/HlcDataSeries.d.ts +1 -1
  24. package/Charting/Model/HlcDataSeries.js +17 -16
  25. package/Charting/Model/IDataSeries.d.ts +2 -1
  26. package/Charting/Model/NonUniformHeatmapDataSeries.d.ts +1 -5
  27. package/Charting/Model/NonUniformHeatmapDataSeries.js +8 -18
  28. package/Charting/Model/OhlcDataSeries.d.ts +1 -1
  29. package/Charting/Model/OhlcDataSeries.js +20 -19
  30. package/Charting/Model/UniformHeatmapDataSeries.d.ts +1 -5
  31. package/Charting/Model/UniformHeatmapDataSeries.js +9 -10
  32. package/Charting/Model/XyDataSeries.d.ts +1 -1
  33. package/Charting/Model/XyDataSeries.js +11 -10
  34. package/Charting/Model/XyTextDataSeries.d.ts +1 -1
  35. package/Charting/Model/XyTextDataSeries.js +8 -7
  36. package/Charting/Model/XyyDataSeries.d.ts +1 -1
  37. package/Charting/Model/XyyDataSeries.js +14 -13
  38. package/Charting/Model/XyzDataSeries.d.ts +1 -1
  39. package/Charting/Model/XyzDataSeries.js +14 -13
  40. package/Charting/Visuals/Axis/AxisTitleRenderer.js +6 -0
  41. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +27 -17
  42. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +1 -1
  43. package/Charting/Visuals/SciChartSurface.js +4 -0
  44. package/Core/BuildStamp.d.ts +1 -1
  45. package/Core/BuildStamp.js +2 -2
  46. package/_wasm/scichart.browser.js +1 -1
  47. package/_wasm/scichart2d.wasm +0 -0
  48. package/_wasm/scichart3d.wasm +0 -0
  49. package/index.d.ts +1 -0
  50. package/index.dev.js +350 -255
  51. package/index.min.js +1 -1
  52. package/package.json +1 -1
  53. package/utils/parseColor.js +1 -5
@@ -1,5 +1,6 @@
1
+ import { EDataFilterType } from "../../../types/DataFilterType";
1
2
  import { BaseDataSeries } from "../BaseDataSeries";
2
- import { IXyFilterOptions, XyFilterBase } from "./XyFilterBase";
3
+ import { EDataSeriesField, IXyFilterOptions, XyFilterBase } from "./XyFilterBase";
3
4
  /**
4
5
  * An XyDataSeries that represents the linear trendline (or linear regression) of the original series
5
6
  */
@@ -20,6 +21,17 @@ export declare class XyLinearTrendFilter extends XyFilterBase {
20
21
  * Gets the correlation coefficient of the trendline
21
22
  */
22
23
  get correlation(): number;
23
- toJSON(excludeData?: boolean): any;
24
+ toJSON(excludeData?: boolean): {
25
+ filter: {
26
+ type: EDataFilterType;
27
+ options: {
28
+ field: EDataSeriesField;
29
+ slope: number;
30
+ intercept: number;
31
+ };
32
+ };
33
+ type: import("../IDataSeries").EDataSeriesType;
34
+ options: import("../../..").TSeriesDataDefinition;
35
+ };
24
36
  protected filterAll(): void;
25
37
  }
@@ -1,5 +1,6 @@
1
+ import { EDataFilterType } from "../../../types/DataFilterType";
1
2
  import { BaseDataSeries } from "../BaseDataSeries";
2
- import { IXyFilterOptions, XyFilterBase } from "./XyFilterBase";
3
+ import { EDataSeriesField, IXyFilterOptions, XyFilterBase } from "./XyFilterBase";
3
4
  /**
4
5
  * Options for the {@link XyMovingAverageFilter}
5
6
  */
@@ -26,7 +27,17 @@ export declare class XyMovingAverageFilter extends XyFilterBase {
26
27
  * Gets or Sets the length of the moving average
27
28
  */
28
29
  set length(value: number);
29
- toJSON(excludeData?: boolean): any;
30
+ toJSON(excludeData?: boolean): {
31
+ filter: {
32
+ type: EDataFilterType;
33
+ options: {
34
+ field: EDataSeriesField;
35
+ length: number;
36
+ };
37
+ };
38
+ type: import("../IDataSeries").EDataSeriesType;
39
+ options: import("../../..").TSeriesDataDefinition;
40
+ };
30
41
  protected onOriginalPropertyChanged(name: string): void;
31
42
  protected filterOnAppend(count: number): void;
32
43
  protected filterOnUpdate(index: number): void;
@@ -1,4 +1,6 @@
1
+ import { EDataFilterType } from "../../../types/DataFilterType";
1
2
  import { BaseDataSeries } from "../BaseDataSeries";
3
+ import { EDataSeriesType } from "../IDataSeries";
2
4
  import { EDataSeriesField, IXyFilterOptions, XyFilterBase } from "./XyFilterBase";
3
5
  /**
4
6
  * Options for the {@link XyRatioFilter}
@@ -16,7 +18,17 @@ export declare class XyRatioFilter extends XyFilterBase {
16
18
  private readonly divisorSeries;
17
19
  private readonly divisorField;
18
20
  constructor(originalSeries: BaseDataSeries, options: IXyRatioFilterOptions);
19
- toJSON(excludeData?: boolean): any;
21
+ toJSON(excludeData?: boolean): {
22
+ filter: {
23
+ type: EDataFilterType;
24
+ options: {
25
+ field: EDataSeriesField;
26
+ divisorSeries: number[];
27
+ };
28
+ };
29
+ type: EDataSeriesType;
30
+ options: import("../../..").TSeriesDataDefinition;
31
+ };
20
32
  protected filterOnAppend(count: number): void;
21
33
  protected filterOnUpdate(index: number): void;
22
34
  protected filterOnInsert(startIndex: number, count: number): void;
@@ -1,6 +1,7 @@
1
+ import { EDataFilterType } from "../../../types/DataFilterType";
1
2
  import { BaseDataSeries } from "../BaseDataSeries";
2
3
  import { XyCustomFilter } from "./XyCustomFilter";
3
- import { IXyFilterOptions } from "./XyFilterBase";
4
+ import { EDataSeriesField, IXyFilterOptions } from "./XyFilterBase";
4
5
  /**
5
6
  * Options for the {@link XyScaleOffsetFilter}
6
7
  */
@@ -24,6 +25,17 @@ export declare class XyScaleOffsetFilter extends XyCustomFilter {
24
25
  get offset(): number;
25
26
  /** Gets or sets the offset for the transformation */
26
27
  set offset(value: number);
27
- toJSON(excludeData?: boolean): any;
28
+ toJSON(excludeData?: boolean): {
29
+ filter: {
30
+ type: EDataFilterType;
31
+ options: {
32
+ field: EDataSeriesField;
33
+ scale: number;
34
+ offset: number;
35
+ };
36
+ };
37
+ type: import("../IDataSeries").EDataSeriesType;
38
+ options: import("../../..").TSeriesDataDefinition;
39
+ };
28
40
  protected filterFunctionProperty(index: number, y: number): number;
29
41
  }
@@ -1,3 +1,4 @@
1
+ import { EDataFilterType } from "../../../types/DataFilterType";
1
2
  import { BaseDataSeries } from "../BaseDataSeries";
2
3
  import { XyyCustomFilter } from "./XyyCustomFilter";
3
4
  import { IXyyFilterOptions } from "./XyyFilterBase";
@@ -13,6 +14,18 @@ export declare class XyyScaleOffsetFilter extends XyyCustomFilter {
13
14
  get offset(): number;
14
15
  set offset(value: number);
15
16
  constructor(originalSeries: BaseDataSeries, options?: IXyyScaleOffsetFilterOptions);
16
- toJSON(excludeData?: boolean): any;
17
+ toJSON(excludeData?: boolean): {
18
+ filter: {
19
+ type: EDataFilterType;
20
+ options: {
21
+ yfield: import("./XyFilterBase").EDataSeriesField;
22
+ y1field: import("./XyFilterBase").EDataSeriesField;
23
+ scale: number;
24
+ offset: number;
25
+ };
26
+ };
27
+ type: import("../IDataSeries").EDataSeriesType;
28
+ options: import("../../..").TSeriesDataDefinition;
29
+ };
17
30
  protected filterFunctionProperty(index: number, y: number): number;
18
31
  }
@@ -1,3 +1,4 @@
1
+ import { EDataFilterType } from "../../../types/DataFilterType";
1
2
  import { BaseDataSeries } from "../BaseDataSeries";
2
3
  import { XyzCustomFilter } from "./XyzCustomFilter";
3
4
  import { IXyzFilterOptions } from "./XyzFilterBase";
@@ -13,6 +14,18 @@ export declare class XyzScaleOffsetFilter extends XyzCustomFilter {
13
14
  get offset(): number;
14
15
  set offset(value: number);
15
16
  constructor(originalSeries: BaseDataSeries, options?: IXyzScaleOffsetFilterOptions);
16
- toJSON(excludeData?: boolean): any;
17
+ toJSON(excludeData?: boolean): {
18
+ filter: {
19
+ type: EDataFilterType;
20
+ options: {
21
+ yfield: import("./XyFilterBase").EDataSeriesField;
22
+ zfield: import("./XyFilterBase").EDataSeriesField;
23
+ scale: number;
24
+ offset: number;
25
+ };
26
+ };
27
+ type: import("../IDataSeries").EDataSeriesType;
28
+ options: import("../../..").TSeriesDataDefinition;
29
+ };
17
30
  protected filterFunctionProperty(index: number, y: number): number;
18
31
  }
@@ -186,7 +186,7 @@ export declare class HlcDataSeries extends BaseDataSeries {
186
186
  /** @inheritDoc */
187
187
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
188
188
  /** @inheritDoc */
189
- toJSON(excludeData?: boolean): any;
189
+ protected getOptions(excludeData?: boolean): IHlcDataSeriesOptions;
190
190
  protected reserve(size: number): void;
191
191
  private getHlcValues;
192
192
  }
@@ -522,28 +522,29 @@ var HlcDataSeries = /** @class */ (function (_super) {
522
522
  }
523
523
  };
524
524
  /** @inheritDoc */
525
- HlcDataSeries.prototype.toJSON = function (excludeData) {
525
+ HlcDataSeries.prototype.getOptions = function (excludeData) {
526
526
  if (excludeData === void 0) { excludeData = false; }
527
- var json = _super.prototype.toJSON.call(this);
527
+ var json = _super.prototype.getOptions.call(this, excludeData);
528
528
  if (!excludeData) {
529
- var xValues = [];
530
- var yValues = [];
531
- var highValues = [];
532
- var lowValues = [];
529
+ var dataSize = this.count();
530
+ var xValues = new Array(dataSize);
531
+ var yValues = new Array(dataSize);
532
+ var highValues = new Array(dataSize);
533
+ var lowValues = new Array(dataSize);
533
534
  if (this.fifoCapacity && this.fifoSweeping) {
534
- for (var i = 0; i < this.count(); i++) {
535
- xValues.push(this.xValues.getRaw(i));
536
- yValues.push(this.yValues.getRaw(i));
537
- highValues.push(this.highValues.getRaw(i));
538
- lowValues.push(this.lowValues.getRaw(i));
535
+ for (var i = 0; i < dataSize; i++) {
536
+ xValues[i] = this.xValues.getRaw(i);
537
+ yValues[i] = this.yValues.getRaw(i);
538
+ highValues[i] = this.highValues.getRaw(i);
539
+ lowValues[i] = this.lowValues.getRaw(i);
539
540
  }
540
541
  }
541
542
  else {
542
- for (var i = 0; i < this.count(); i++) {
543
- xValues.push(this.xValues.get(i));
544
- yValues.push(this.yValues.get(i));
545
- highValues.push(this.highValues.get(i));
546
- lowValues.push(this.lowValues.get(i));
543
+ for (var i = 0; i < dataSize; i++) {
544
+ xValues[i] = this.xValues.get(i);
545
+ yValues[i] = this.yValues.get(i);
546
+ highValues[i] = this.highValues.get(i);
547
+ lowValues[i] = this.lowValues.get(i);
547
548
  }
548
549
  }
549
550
  var options = {
@@ -1,3 +1,4 @@
1
+ import { TDataSeriesDefinition } from "../../Builder/buildDataSeries";
1
2
  import { EventHandler } from "../../Core/EventHandler";
2
3
  import { IDeletable } from "../../Core/IDeletable";
3
4
  import { NumberRange } from "../../Core/NumberRange";
@@ -219,7 +220,7 @@ export interface IDataSeries extends IDeletable {
219
220
  * Convert the object to a definition that can be serialized to JSON, or used directly with the builder api
220
221
  * @param excludeData if set true, data values will not be included in the json.
221
222
  */
222
- toJSON(excludeData?: boolean): any;
223
+ toJSON(excludeData?: boolean): TDataSeriesDefinition;
223
224
  /**
224
225
  * Gets the integer indices of the XValues array that are currently in the VisibleRange passed in, and an undefined range otherwise.
225
226
  * @param visibleRange The VisibleRange to get the indices range
@@ -1,4 +1,3 @@
1
- import { TSeriesDataDefinition } from "../../Builder/buildDataSeries";
2
1
  import { NumberRange } from "../../Core/NumberRange";
3
2
  import { ESearchMode } from "../../types/SearchMode";
4
3
  import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
@@ -84,10 +83,6 @@ export declare class NonUniformHeatmapDataSeries extends BaseHeatmapDataSeries {
84
83
  * @inheritDoc
85
84
  */
86
85
  notifyDataChanged(updateType: EDataChangeType, data?: any): void;
87
- /**
88
- * @inheritDoc
89
- */
90
- toJSON(excludeData?: boolean): TSeriesDataDefinition;
91
86
  /**
92
87
  * @inheritDoc
93
88
  */
@@ -99,6 +94,7 @@ export declare class NonUniformHeatmapDataSeries extends BaseHeatmapDataSeries {
99
94
  getXIndicesRange(visibleRange: NumberRange, isCategoryData: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode): NumberRange;
100
95
  getYIndicesRange(visibleRange: NumberRange, isCategoryData: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode): NumberRange;
101
96
  delete(): void;
97
+ protected getOptions(excludeData?: boolean): INonUniformHeatmapSeriesOptions;
102
98
  /**
103
99
  * @param cellOffsets
104
100
  * @returns an array with cell sizes to heatmap size ratios
@@ -14,17 +14,6 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
17
  Object.defineProperty(exports, "__esModule", { value: true });
29
18
  exports.NonUniformHeatmapDataSeries = void 0;
30
19
  var Deleter_1 = require("../../Core/Deleter");
@@ -199,13 +188,6 @@ var NonUniformHeatmapDataSeries = /** @class */ (function (_super) {
199
188
  this.yRangeProperty = new NumberRange_1.NumberRange(this.getYValue(0), this.getYValue(this.arrayHeight));
200
189
  _super.prototype.notifyDataChanged.call(this, updateType, data);
201
190
  };
202
- /**
203
- * @inheritDoc
204
- */
205
- NonUniformHeatmapDataSeries.prototype.toJSON = function (excludeData) {
206
- var options = __assign(__assign({}, _super.prototype.toJSON.call(this, excludeData)), { xCellOffsets: this.xCellOffsetsProperty, yCellOffsets: this.yCellOffsetsProperty });
207
- return options;
208
- };
209
191
  /**
210
192
  * @inheritDoc
211
193
  */
@@ -229,6 +211,14 @@ var NonUniformHeatmapDataSeries = /** @class */ (function (_super) {
229
211
  this.nativeXOffsetsProperty = (0, Deleter_1.deleteSafe)(this.nativeXOffsetsProperty);
230
212
  this.nativeYOffsetsProperty = (0, Deleter_1.deleteSafe)(this.nativeYOffsetsProperty);
231
213
  };
214
+ NonUniformHeatmapDataSeries.prototype.getOptions = function (excludeData) {
215
+ var baseOptions = _super.prototype.getOptions.call(this, excludeData);
216
+ var options = {
217
+ xCellOffsets: this.xCellOffsetsProperty,
218
+ yCellOffsets: this.yCellOffsetsProperty
219
+ };
220
+ return Object.assign(baseOptions, options);
221
+ };
232
222
  /**
233
223
  * @param cellOffsets
234
224
  * @returns an array with cell sizes to heatmap size ratios
@@ -211,7 +211,7 @@ export declare class OhlcDataSeries extends BaseDataSeries {
211
211
  /** @inheritDoc */
212
212
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
213
213
  /** @inheritDoc */
214
- toJSON(excludeData?: boolean): any;
214
+ protected getOptions(excludeData?: boolean): IOhlcDataSeriesOptions;
215
215
  protected reserve(size: number): void;
216
216
  private getOHLCValues;
217
217
  }
@@ -449,31 +449,32 @@ var OhlcDataSeries = /** @class */ (function (_super) {
449
449
  }
450
450
  };
451
451
  /** @inheritDoc */
452
- OhlcDataSeries.prototype.toJSON = function (excludeData) {
452
+ OhlcDataSeries.prototype.getOptions = function (excludeData) {
453
453
  if (excludeData === void 0) { excludeData = false; }
454
- var json = _super.prototype.toJSON.call(this);
454
+ var json = _super.prototype.getOptions.call(this, excludeData);
455
455
  if (!excludeData) {
456
- var xValues = [];
457
- var openValues = [];
458
- var highValues = [];
459
- var lowValues = [];
460
- var closeValues = [];
456
+ var dataSize = this.count();
457
+ var xValues = new Array(dataSize);
458
+ var openValues = new Array(dataSize);
459
+ var highValues = new Array(dataSize);
460
+ var lowValues = new Array(dataSize);
461
+ var closeValues = new Array(dataSize);
461
462
  if (this.fifoCapacity && this.fifoSweeping) {
462
- for (var i = 0; i < this.count(); i++) {
463
- xValues.push(this.xValues.getRaw(i));
464
- openValues.push(this.openValues.getRaw(i));
465
- closeValues.push(this.yValues.getRaw(i));
466
- highValues.push(this.highValues.getRaw(i));
467
- lowValues.push(this.lowValues.getRaw(i));
463
+ for (var i = 0; i < dataSize; i++) {
464
+ xValues[i] = this.xValues.getRaw(i);
465
+ openValues[i] = this.openValues.getRaw(i);
466
+ closeValues[i] = this.yValues.getRaw(i);
467
+ highValues[i] = this.highValues.getRaw(i);
468
+ lowValues[i] = this.lowValues.getRaw(i);
468
469
  }
469
470
  }
470
471
  else {
471
- for (var i = 0; i < this.count(); i++) {
472
- xValues.push(this.xValues.get(i));
473
- openValues.push(this.openValues.get(i));
474
- highValues.push(this.highValues.get(i));
475
- lowValues.push(this.lowValues.get(i));
476
- closeValues.push(this.yValues.get(i));
472
+ for (var i = 0; i < dataSize; i++) {
473
+ xValues[i] = this.xValues.get(i);
474
+ openValues[i] = this.openValues.get(i);
475
+ closeValues[i] = this.highValues.get(i);
476
+ highValues[i] = this.lowValues.get(i);
477
+ lowValues[i] = this.yValues.get(i);
477
478
  }
478
479
  }
479
480
  var options = {
@@ -1,4 +1,3 @@
1
- import { TSeriesDataDefinition } from "../../Builder/buildDataSeries";
2
1
  import { NumberRange } from "../../Core/NumberRange";
3
2
  import { TSciChart } from "../../types/TSciChart";
4
3
  import { BaseHeatmapDataSeries, IBaseHeatmapSeriesOptions } from "./BaseHeatmapDataSeries";
@@ -88,10 +87,7 @@ export declare class UniformHeatmapDataSeries extends BaseHeatmapDataSeries {
88
87
  * @inheritDoc
89
88
  */
90
89
  notifyDataChanged(updateType: EDataChangeType, data?: any): void;
91
- /**
92
- * @inheritDoc
93
- */
94
- toJSON(excludeData?: boolean): TSeriesDataDefinition;
90
+ protected getOptions(excludeData?: boolean): IUniformHeatmapSeriesOptions;
95
91
  /**
96
92
  * @inheritDoc
97
93
  */
@@ -133,16 +133,15 @@ var UniformHeatmapDataSeries = /** @class */ (function (_super) {
133
133
  this.yRangeProperty = new NumberRange_1.NumberRange(this.yStart, this.getYValue(this.arrayHeight));
134
134
  _super.prototype.notifyDataChanged.call(this, updateType, data);
135
135
  };
136
- /**
137
- * @inheritDoc
138
- */
139
- UniformHeatmapDataSeries.prototype.toJSON = function (excludeData) {
140
- var options = _super.prototype.toJSON.call(this, excludeData);
141
- options.xStart = this.xStart;
142
- options.xStep = this.xStep;
143
- options.yStart = this.yStart;
144
- options.yStep = this.yStep;
145
- return options;
136
+ UniformHeatmapDataSeries.prototype.getOptions = function (excludeData) {
137
+ var baseOptions = _super.prototype.getOptions.call(this, excludeData);
138
+ var options = {
139
+ xStart: this.xStart,
140
+ xStep: this.xStep,
141
+ yStart: this.yStart,
142
+ yStep: this.yStep
143
+ };
144
+ return Object.assign(baseOptions, options);
146
145
  };
147
146
  /**
148
147
  * @inheritDoc
@@ -129,5 +129,5 @@ export declare class XyDataSeries extends BaseDataSeries {
129
129
  * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}
130
130
  */
131
131
  clear(): void;
132
- toJSON(excludeData?: boolean): any;
132
+ protected getOptions(excludeData?: boolean): IXyDataSeriesOptions;
133
133
  }
@@ -258,22 +258,23 @@ var XyDataSeries = /** @class */ (function (_super) {
258
258
  this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);
259
259
  }
260
260
  };
261
- XyDataSeries.prototype.toJSON = function (excludeData) {
261
+ XyDataSeries.prototype.getOptions = function (excludeData) {
262
262
  if (excludeData === void 0) { excludeData = false; }
263
- var json = _super.prototype.toJSON.call(this);
263
+ var json = _super.prototype.getOptions.call(this, excludeData);
264
264
  if (!excludeData) {
265
- var xValues = [];
266
- var yValues = [];
265
+ var dataSize = this.count();
266
+ var xValues = new Array(dataSize);
267
+ var yValues = new Array(dataSize);
267
268
  if (this.fifoCapacity && this.fifoSweeping) {
268
- for (var i = 0; i < this.count(); i++) {
269
- xValues.push(this.xValues.getRaw(i));
270
- yValues.push(this.yValues.getRaw(i));
269
+ for (var i = 0; i < dataSize; i++) {
270
+ xValues[i] = this.xValues.getRaw(i);
271
+ yValues[i] = this.yValues.getRaw(i);
271
272
  }
272
273
  }
273
274
  else {
274
- for (var i = 0; i < this.count(); i++) {
275
- xValues.push(this.xValues.get(i));
276
- yValues.push(this.yValues.get(i));
275
+ for (var i = 0; i < dataSize; i++) {
276
+ xValues[i] = this.xValues.get(i);
277
+ yValues[i] = this.yValues.get(i);
277
278
  }
278
279
  }
279
280
  var options = {
@@ -119,5 +119,5 @@ export declare class XyTextDataSeries extends BaseDataSeries {
119
119
  * Any changes of the DataSeries will trigger a redraw on the parent {@link SciChartSurface}
120
120
  */
121
121
  clear(): void;
122
- toJSON(excludeData?: boolean): any;
122
+ protected getOptions(excludeData?: boolean): IXyTextDataSeriesOptions;
123
123
  }
@@ -290,15 +290,16 @@ var XyTextDataSeries = /** @class */ (function (_super) {
290
290
  this.notifyDataChanged(IDataSeries_1.EDataChangeType.Clear, null, null);
291
291
  }
292
292
  };
293
- XyTextDataSeries.prototype.toJSON = function (excludeData) {
293
+ XyTextDataSeries.prototype.getOptions = function (excludeData) {
294
294
  if (excludeData === void 0) { excludeData = false; }
295
- var json = _super.prototype.toJSON.call(this);
295
+ var json = _super.prototype.getOptions.call(this);
296
296
  if (!excludeData) {
297
- var xValues = [];
298
- var yValues = [];
299
- for (var i = 0; i < this.count(); i++) {
300
- xValues.push(this.xValues.get(i));
301
- yValues.push(this.yValues.get(i));
297
+ var dataSize = this.count();
298
+ var xValues = new Array(dataSize);
299
+ var yValues = new Array(dataSize);
300
+ for (var i = 0; i < dataSize; i++) {
301
+ xValues[i] = this.xValues.get(i);
302
+ yValues[i] = this.yValues.get(i);
302
303
  }
303
304
  var options = {
304
305
  xValues: xValues,
@@ -161,7 +161,7 @@ export declare class XyyDataSeries extends BaseDataSeries {
161
161
  /** @inheritDoc */
162
162
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
163
163
  /** @inheritDoc */
164
- toJSON(excludeData?: boolean): any;
164
+ protected getOptions(excludeData?: boolean): IBaseDataSeriesOptions;
165
165
  protected reserve(size: number): void;
166
166
  private getYY1Values;
167
167
  }
@@ -376,25 +376,26 @@ var XyyDataSeries = /** @class */ (function (_super) {
376
376
  }
377
377
  };
378
378
  /** @inheritDoc */
379
- XyyDataSeries.prototype.toJSON = function (excludeData) {
379
+ XyyDataSeries.prototype.getOptions = function (excludeData) {
380
380
  if (excludeData === void 0) { excludeData = false; }
381
- var json = _super.prototype.toJSON.call(this);
381
+ var json = _super.prototype.getOptions.call(this, excludeData);
382
382
  if (!excludeData) {
383
- var xValues = [];
384
- var yValues = [];
385
- var y1Values = [];
383
+ var dataSize = this.count();
384
+ var xValues = new Array(dataSize);
385
+ var yValues = new Array(dataSize);
386
+ var y1Values = new Array(dataSize);
386
387
  if (this.fifoCapacity && this.fifoSweeping) {
387
- for (var i = 0; i < this.count(); i++) {
388
- xValues.push(this.xValues.getRaw(i));
389
- yValues.push(this.yValues.getRaw(i));
390
- y1Values.push(this.y1Values.getRaw(i));
388
+ for (var i = 0; i < dataSize; i++) {
389
+ xValues[i] = this.xValues.getRaw(i);
390
+ yValues[i] = this.yValues.getRaw(i);
391
+ y1Values[i] = this.y1Values.getRaw(i);
391
392
  }
392
393
  }
393
394
  else {
394
- for (var i = 0; i < this.count(); i++) {
395
- xValues.push(this.xValues.get(i));
396
- yValues.push(this.yValues.get(i));
397
- y1Values.push(this.y1Values.get(i));
395
+ for (var i = 0; i < dataSize; i++) {
396
+ xValues[i] = this.xValues.get(i);
397
+ yValues[i] = this.yValues.get(i);
398
+ y1Values[i] = this.y1Values.get(i);
398
399
  }
399
400
  }
400
401
  var options = {
@@ -159,7 +159,7 @@ export declare class XyzDataSeries extends BaseDataSeries {
159
159
  /** @inheritDoc */
160
160
  updateAnimationProperties(progress: number, animation: SeriesAnimation): void;
161
161
  /** @inheritDoc */
162
- toJSON(excludeData?: boolean): any;
162
+ protected getOptions(excludeData?: boolean): IXyzDataSeriesOptions;
163
163
  protected reserve(size: number): void;
164
164
  private getYZValues;
165
165
  }
@@ -329,25 +329,26 @@ var XyzDataSeries = /** @class */ (function (_super) {
329
329
  }
330
330
  };
331
331
  /** @inheritDoc */
332
- XyzDataSeries.prototype.toJSON = function (excludeData) {
332
+ XyzDataSeries.prototype.getOptions = function (excludeData) {
333
333
  if (excludeData === void 0) { excludeData = false; }
334
- var json = _super.prototype.toJSON.call(this);
334
+ var json = _super.prototype.getOptions.call(this, excludeData);
335
335
  if (!excludeData) {
336
- var xValues = [];
337
- var yValues = [];
338
- var zValues = [];
336
+ var dataSize = this.count();
337
+ var xValues = new Array(dataSize);
338
+ var yValues = new Array(dataSize);
339
+ var zValues = new Array(dataSize);
339
340
  if (this.fifoCapacity && this.fifoSweeping) {
340
- for (var i = 0; i < this.count(); i++) {
341
- xValues.push(this.xValues.getRaw(i));
342
- yValues.push(this.yValues.getRaw(i));
343
- zValues.push(this.zValues.getRaw(i));
341
+ for (var i = 0; i < dataSize; i++) {
342
+ xValues[i] = this.xValues.getRaw(i);
343
+ yValues[i] = this.yValues.getRaw(i);
344
+ zValues[i] = this.zValues.getRaw(i);
344
345
  }
345
346
  }
346
347
  else {
347
- for (var i = 0; i < this.count(); i++) {
348
- xValues.push(this.xValues.get(i));
349
- yValues.push(this.yValues.get(i));
350
- zValues.push(this.zValues.get(i));
348
+ for (var i = 0; i < dataSize; i++) {
349
+ xValues[i] = this.xValues.get(i);
350
+ yValues[i] = this.yValues.get(i);
351
+ zValues[i] = this.zValues.get(i);
351
352
  }
352
353
  }
353
354
  var options = {
@@ -70,6 +70,9 @@ var AxisTitleRenderer = /** @class */ (function (_super) {
70
70
  return this.desiredHeightProperty;
71
71
  },
72
72
  set: function (value) {
73
+ if (this.desiredWidthProperty !== value) {
74
+ this.invalidateCache();
75
+ }
73
76
  this.desiredHeightProperty = value;
74
77
  },
75
78
  enumerable: false,
@@ -80,6 +83,9 @@ var AxisTitleRenderer = /** @class */ (function (_super) {
80
83
  return this.desiredWidthProperty;
81
84
  },
82
85
  set: function (value) {
86
+ if (this.desiredWidthProperty !== value) {
87
+ this.invalidateCache();
88
+ }
83
89
  this.desiredWidthProperty = value;
84
90
  },
85
91
  enumerable: false,