scichart 3.2.532 → 3.2.543

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 (64) hide show
  1. package/Charting/ChartModifiers/CursorModifier.js +0 -1
  2. package/Charting/Model/BaseDataSeries.d.ts +3 -2
  3. package/Charting/Model/BaseDataSeries.js +8 -4
  4. package/Charting/Model/HlcDataSeries.d.ts +2 -1
  5. package/Charting/Model/HlcDataSeries.js +4 -2
  6. package/Charting/Model/IDataSeries.d.ts +2 -1
  7. package/Charting/Model/IPaletteProvider.d.ts +25 -0
  8. package/Charting/Model/IPaletteProvider.js +23 -7
  9. package/Charting/Model/OhlcDataSeries.d.ts +2 -1
  10. package/Charting/Model/OhlcDataSeries.js +4 -2
  11. package/Charting/Model/XyyDataSeries.d.ts +2 -1
  12. package/Charting/Model/XyyDataSeries.js +4 -2
  13. package/Charting/Visuals/Annotations/AnnotationBase.js +3 -3
  14. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +15 -4
  15. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +55 -8
  16. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +7 -0
  17. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +22 -3
  18. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.js +0 -6
  19. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +18 -13
  20. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.d.ts +10 -2
  21. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +85 -24
  22. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +4 -2
  23. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +1 -0
  24. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +21 -15
  25. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +16 -12
  26. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +17 -11
  27. package/Charting/Visuals/RenderableSeries/FastErrorBarsRenderableSeries.js +1 -1
  28. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js +1 -0
  29. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +3 -0
  30. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +5 -2
  31. package/Charting/Visuals/RenderableSeries/RenderDataTransforms/BaseRenderDataTransform.d.ts +30 -0
  32. package/Charting/Visuals/RenderableSeries/RenderDataTransforms/BaseRenderDataTransform.js +63 -0
  33. package/Charting/Visuals/RenderableSeries/RenderDataTransforms/SplineRenderDataTransform.d.ts +10 -0
  34. package/Charting/Visuals/RenderableSeries/RenderDataTransforms/SplineRenderDataTransform.js +53 -0
  35. package/Charting/Visuals/RenderableSeries/RenderDataTransforms/XyySplineRenderDataTransform.d.ts +10 -0
  36. package/Charting/Visuals/RenderableSeries/RenderDataTransforms/XyySplineRenderDataTransform.js +55 -0
  37. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.d.ts +13 -8
  38. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +63 -46
  39. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +12 -13
  40. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +60 -52
  41. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.d.ts +12 -7
  42. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +54 -43
  43. package/Charting/Visuals/RenderableSeries/constants.d.ts +2 -1
  44. package/Charting/Visuals/RenderableSeries/constants.js +1 -0
  45. package/Charting/Visuals/createMaster.d.ts +12 -2
  46. package/Charting/Visuals/createMaster.js +14 -2
  47. package/Core/BuildStamp.d.ts +1 -1
  48. package/Core/BuildStamp.js +2 -2
  49. package/Core/ObservableArray.d.ts +11 -9
  50. package/Core/ObservableArray.js +44 -21
  51. package/README.md +17 -8
  52. package/_wasm/scichart.browser.js +1 -1
  53. package/_wasm/scichart2d.wasm +0 -0
  54. package/_wasm/scichart3d.wasm +0 -0
  55. package/index.d.ts +9 -0
  56. package/index.dev.js +634 -267
  57. package/index.js +27 -13
  58. package/index.min.js +1 -1
  59. package/package.json +1 -1
  60. package/types/TSciChart.d.ts +4 -0
  61. package/types/YRangeMode.d.ts +10 -0
  62. package/types/YRangeMode.js +14 -0
  63. package/utils/debug.d.ts +2 -0
  64. package/utils/debug.js +17 -0
@@ -735,7 +735,6 @@ var defaultTooltipTemplate = function (seriesInfos, svgAnnotation) {
735
735
  var tooltipFill = svgAnnotation.containerBackground;
736
736
  var tooltipStroke = svgAnnotation.textStroke;
737
737
  var shadowColor = svgAnnotation.cursorModifier.tooltipShadow;
738
- console.log(shadowColor);
739
738
  var blur = "<feGaussianBlur result=\"blurOut\" in=\"offOut\" stdDeviation=\"3\" />";
740
739
  if (shadowColor !== undefined) {
741
740
  var shadowRGBA = (0, parseColor_1.parseColorToTArgb)(shadowColor);
@@ -5,6 +5,7 @@ import { NumberRange } from "../../Core/NumberRange";
5
5
  import { NumberArray } from "../../types/NumberArray";
6
6
  import { ESearchMode } from "../../types/SearchMode";
7
7
  import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
8
+ import { EYRangeMode } from "../../types/YRangeMode";
8
9
  import { SeriesAnimation } from "../Visuals/RenderableSeries/Animations/SeriesAnimation";
9
10
  import { IDataDistributionCalculator } from "./DataDistributionCalculator/IDataDistributionCalculator";
10
11
  import { IDoubleVectorProvider } from "./DoubleVectorProvider";
@@ -218,7 +219,7 @@ export declare abstract class BaseDataSeries extends DeletableEntity implements
218
219
  /** @inheritDoc */
219
220
  getXRange(dataSeriesValueType?: EDataSeriesValueType): NumberRange;
220
221
  /** @inheritDoc */
221
- getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType): NumberRange;
222
+ getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType, yRangeMode?: EYRangeMode): NumberRange;
222
223
  /** @inheritDoc */
223
224
  getIndicesRange(xRange: NumberRange, isCategoryData?: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode): NumberRange;
224
225
  /** @inheritDoc */
@@ -289,4 +290,4 @@ export declare abstract class BaseDataSeries extends DeletableEntity implements
289
290
  }
290
291
  /** @ignore */
291
292
  export declare const getIndicesRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, xRange: NumberRange, isSorted: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode) => NumberRange;
292
- export declare const getWindowedYRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis: boolean, isSorted: boolean) => NumberRange;
293
+ export declare const getWindowedYRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis: boolean, isSorted: boolean, minSearchMode?: ESearchMode, maxSearchMode?: ESearchMode) => NumberRange;
@@ -35,6 +35,7 @@ var Guard_1 = require("../../Core/Guard");
35
35
  var NumberRange_1 = require("../../Core/NumberRange");
36
36
  var BaseType_1 = require("../../types/BaseType");
37
37
  var SearchMode_1 = require("../../types/SearchMode");
38
+ var YRangeMode_1 = require("../../types/YRangeMode");
38
39
  var array_1 = require("../../utils/array");
39
40
  var guid_1 = require("../../utils/guid");
40
41
  var isRealNumber_1 = require("../../utils/isRealNumber");
@@ -338,12 +339,13 @@ var BaseDataSeries = /** @class */ (function (_super) {
338
339
  return new NumberRange_1.NumberRange(0, 0);
339
340
  };
340
341
  /** @inheritDoc */
341
- BaseDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType) {
342
+ BaseDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode) {
342
343
  if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }
343
344
  if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }
345
+ if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }
344
346
  var xValues = this.getXValues(dataSeriesValueType);
345
347
  var yValues = this.getYValues(dataSeriesValueType);
346
- return (0, exports.getWindowedYRange)(this.webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, this.dataDistributionCalculator.isSortedAscending);
348
+ return (0, exports.getWindowedYRange)(this.webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, this.dataDistributionCalculator.isSortedAscending, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);
347
349
  };
348
350
  /** @inheritDoc */
349
351
  BaseDataSeries.prototype.getIndicesRange = function (xRange, isCategoryData, downSearchMode, upSearchMode) {
@@ -703,7 +705,9 @@ var getIndicesRange = function (webAssemblyContext, xValues, xRange, isSorted, d
703
705
  };
704
706
  exports.getIndicesRange = getIndicesRange;
705
707
  var getWindowedYRange = function (webAssemblyContext, xValues, yValues, xRange, getPositiveRange, isXCategoryAxis, // false
706
- isSorted) {
708
+ isSorted, minSearchMode, maxSearchMode) {
709
+ if (minSearchMode === void 0) { minSearchMode = SearchMode_1.ESearchMode.RoundUp; }
710
+ if (maxSearchMode === void 0) { maxSearchMode = SearchMode_1.ESearchMode.RoundDown; }
707
711
  // TODO: getPositiveRange
708
712
  var count = xValues.size();
709
713
  // if one point
@@ -714,7 +718,7 @@ isSorted) {
714
718
  }
715
719
  var indicesRange = isXCategoryAxis
716
720
  ? xRange
717
- : (0, exports.getIndicesRange)(webAssemblyContext, xValues, xRange, isSorted, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
721
+ : (0, exports.getIndicesRange)(webAssemblyContext, xValues, xRange, isSorted, minSearchMode, maxSearchMode);
718
722
  var iMin = Math.max(Math.floor(indicesRange.min), 0);
719
723
  var iMax = Math.min(Math.ceil(indicesRange.max), count - 1);
720
724
  if (iMax < iMin) {
@@ -1,6 +1,7 @@
1
1
  import { NumberRange } from "../../Core/NumberRange";
2
2
  import { NumberArray } from "../../types/NumberArray";
3
3
  import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
4
+ import { EYRangeMode } from "../../types/YRangeMode";
4
5
  import { SeriesAnimation } from "../Visuals/RenderableSeries/Animations/SeriesAnimation";
5
6
  import { BaseDataSeries, IBaseDataSeriesOptions } from "./BaseDataSeries";
6
7
  import { EDataSeriesType, EDataSeriesValueType } from "./IDataSeries";
@@ -172,7 +173,7 @@ export declare class HlcDataSeries extends BaseDataSeries {
172
173
  /** @inheritDoc */
173
174
  getXRange(dataSeriesValueType?: EDataSeriesValueType, isHorizontalDirection?: boolean, hasHighCap?: boolean, hasLowCap?: boolean): NumberRange;
174
175
  /** @inheritDoc */
175
- getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType, isHorizontalDirection?: boolean, hasHighCap?: boolean, hasLowCap?: boolean): NumberRange;
176
+ getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType, yRangeMode?: EYRangeMode, isHorizontalDirection?: boolean, hasHighCap?: boolean, hasLowCap?: boolean): NumberRange;
176
177
  /** @inheritDoc */
177
178
  delete(): void;
178
179
  /** @inheritDoc */
@@ -21,6 +21,7 @@ var Guard_1 = require("../../Core/Guard");
21
21
  var NumberRange_1 = require("../../Core/NumberRange");
22
22
  var NumberArray_1 = require("../../types/NumberArray");
23
23
  var SearchMode_1 = require("../../types/SearchMode");
24
+ var YRangeMode_1 = require("../../types/YRangeMode");
24
25
  var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
25
26
  var isRealNumber_1 = require("../../utils/isRealNumber");
26
27
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
@@ -392,9 +393,10 @@ var HlcDataSeries = /** @class */ (function (_super) {
392
393
  return new NumberRange_1.NumberRange(0, 0);
393
394
  };
394
395
  /** @inheritDoc */
395
- HlcDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, isHorizontalDirection, hasHighCap, hasLowCap) {
396
+ HlcDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode, isHorizontalDirection, hasHighCap, hasLowCap) {
396
397
  if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }
397
398
  if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }
399
+ if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }
398
400
  if (isHorizontalDirection === void 0) { isHorizontalDirection = false; }
399
401
  var _a = this.getHlcValues(dataSeriesValueType), hValues = _a.hValues, lValues = _a.lValues, yValues = _a.yValues;
400
402
  // TODO: getPositiveRange
@@ -412,7 +414,7 @@ var HlcDataSeries = /** @class */ (function (_super) {
412
414
  }
413
415
  var indicesRange = isXCategoryAxis
414
416
  ? xRange
415
- : this.getIndicesRange(xRange, false, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
417
+ : this.getIndicesRange(xRange, false, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);
416
418
  var yMin = Number.MAX_VALUE;
417
419
  var yMax = Number.MIN_VALUE;
418
420
  var iMin = Math.max(Math.floor(indicesRange.min), 0);
@@ -4,6 +4,7 @@ import { IDeletable } from "../../Core/IDeletable";
4
4
  import { NumberRange } from "../../Core/NumberRange";
5
5
  import { ESearchMode } from "../../types/SearchMode";
6
6
  import { SCRTDoubleVector } from "../../types/TSciChart";
7
+ import { EYRangeMode } from "../../types/YRangeMode";
7
8
  import { IDataDistributionCalculator } from "./DataDistributionCalculator/IDataDistributionCalculator";
8
9
  /**
9
10
  * Defines {@link BaseDataSeries | DataSeries} types available within SciChart's
@@ -215,7 +216,7 @@ export interface IDataSeries extends IDeletable {
215
216
  * an axis type which measures by x-index not x-value
216
217
  * @param dataSeriesValueType The data series values to use {@link EDataSeriesValueType}
217
218
  */
218
- getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isCategoryAxis: boolean, dataSeriesValueType?: EDataSeriesValueType): NumberRange;
219
+ getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isCategoryAxis: boolean, dataSeriesValueType?: EDataSeriesValueType, yRangeMode?: EYRangeMode): NumberRange;
219
220
  /**
220
221
  * Convert the object to a definition that can be serialized to JSON, or used directly with the builder api
221
222
  * @param excludeData if set true, data values will not be included in the json.
@@ -1,4 +1,6 @@
1
1
  import { TPaletteProviderDefinition } from "../../Builder/buildSeries";
2
+ import { SCRTDoubleVector } from "../../types/TSciChart";
3
+ import { TPalettingState } from "../Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider";
2
4
  import { IRenderableSeries } from "../Visuals/RenderableSeries/IRenderableSeries";
3
5
  import { IPointMetadata } from "./IPointMetadata";
4
6
  /**
@@ -19,9 +21,23 @@ export interface IPaletteProvider {
19
21
  * Called when the PaletteProvider instance is detached from a {@link BaseRenderableSeries | RenderableSeries}.
20
22
  */
21
23
  onDetached(): void;
24
+ /**
25
+ * Set true if the paletting does not depend on the visible Range. This prevents the palette being recalculated if only the visible range changes.
26
+ */
27
+ isRangeIndependant?: boolean;
28
+ /**
29
+ * Called once before the per-vertex loop starts.
30
+ * @Returns true if paletting should be forced to run. If this exists and returns false, the existing paletting state is reused if possible.
31
+ * If this does NOT exist, the palette will be recalculated on every render. This default will change in v4.
32
+ * Use this to force the palette to be recalculated if some external parameter to it changes.
33
+ */
34
+ shouldUpdatePalette?(): boolean;
22
35
  /** Convert the object to a definition that can be serialized to JSON, or used directly with the builder api */
23
36
  toJSON?(): TPaletteProviderDefinition;
24
37
  }
38
+ export interface IAdvancedPaletteProvider extends IPaletteProvider {
39
+ applyPaletting(palettingState: TPalettingState, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, indexes: SCRTDoubleVector, startIndex: number, count: number): void;
40
+ }
25
41
  export declare enum EStrokePaletteMode {
26
42
  GRADIENT = "GRADIENT",
27
43
  SOLID = "SOLID"
@@ -122,6 +138,7 @@ export declare class DefaultPaletteProvider implements IStrokePaletteProvider, I
122
138
  static createEmpty(): DefaultPaletteProvider;
123
139
  strokePaletteMode: EStrokePaletteMode;
124
140
  fillPaletteMode: EFillPaletteMode;
141
+ protected parentSeries: IRenderableSeries;
125
142
  /**
126
143
  * @inheritDoc
127
144
  */
@@ -130,6 +147,14 @@ export declare class DefaultPaletteProvider implements IStrokePaletteProvider, I
130
147
  * @inheritDoc
131
148
  */
132
149
  onDetached(): void;
150
+ /**
151
+ * @inheritDoc
152
+ */
153
+ get isRangeIndependant(): boolean;
154
+ /**
155
+ * @inheritDoc
156
+ */
157
+ shouldUpdatePalette(): boolean;
133
158
  /**
134
159
  * @inheritDoc
135
160
  */
@@ -30,8 +30,6 @@ var DefaultPaletteProvider = /** @class */ (function () {
30
30
  }
31
31
  DefaultPaletteProvider.createEmpty = function () {
32
32
  var pp = new DefaultPaletteProvider();
33
- pp.onAttached = undefined;
34
- pp.onDetached = undefined;
35
33
  pp.overrideFillArgb = undefined;
36
34
  pp.overrideStrokeArgb = undefined;
37
35
  pp.overridePointMarkerArgb = undefined;
@@ -40,13 +38,31 @@ var DefaultPaletteProvider = /** @class */ (function () {
40
38
  /**
41
39
  * @inheritDoc
42
40
  */
43
- // tslint:disable-next-line:no-empty
44
- DefaultPaletteProvider.prototype.onAttached = function (parentSeries) { };
41
+ DefaultPaletteProvider.prototype.onAttached = function (parentSeries) {
42
+ this.parentSeries = parentSeries;
43
+ };
44
+ /**
45
+ * @inheritDoc
46
+ */
47
+ DefaultPaletteProvider.prototype.onDetached = function () {
48
+ this.parentSeries = undefined;
49
+ };
50
+ Object.defineProperty(DefaultPaletteProvider.prototype, "isRangeIndependant", {
51
+ /**
52
+ * @inheritDoc
53
+ */
54
+ get: function () {
55
+ return false;
56
+ },
57
+ enumerable: false,
58
+ configurable: true
59
+ });
45
60
  /**
46
61
  * @inheritDoc
47
62
  */
48
- // tslint:disable-next-line:no-empty
49
- DefaultPaletteProvider.prototype.onDetached = function () { };
63
+ DefaultPaletteProvider.prototype.shouldUpdatePalette = function () {
64
+ return false;
65
+ };
50
66
  /**
51
67
  * @inheritDoc
52
68
  */
@@ -66,7 +82,7 @@ var DefaultPaletteProvider = /** @class */ (function () {
66
82
  return undefined;
67
83
  };
68
84
  DefaultPaletteProvider.prototype.toJSON = function () {
69
- // No need to serialise this as it is created automatiicaly if a palletprovider is not specified.
85
+ // No need to serialise this as it is created automaticaly if a palletprovider is not specified.
70
86
  return undefined;
71
87
  };
72
88
  return DefaultPaletteProvider;
@@ -1,6 +1,7 @@
1
1
  import { NumberRange } from "../../Core/NumberRange";
2
2
  import { NumberArray } from "../../types/NumberArray";
3
3
  import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
4
+ import { EYRangeMode } from "../../types/YRangeMode";
4
5
  import { SeriesAnimation } from "../Visuals/RenderableSeries/Animations/SeriesAnimation";
5
6
  import { BaseDataSeries, IBaseDataSeriesOptions } from "./BaseDataSeries";
6
7
  import { EDataSeriesType, EDataSeriesValueType } from "./IDataSeries";
@@ -199,7 +200,7 @@ export declare class OhlcDataSeries extends BaseDataSeries {
199
200
  /** @inheritDoc */
200
201
  delete(): void;
201
202
  /** @inheritDoc */
202
- getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType): NumberRange;
203
+ getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType, yRangeMode?: EYRangeMode): NumberRange;
203
204
  /** @inheritDoc */
204
205
  createAnimationVectors(): void;
205
206
  /** @inheritDoc */
@@ -21,6 +21,7 @@ var Guard_1 = require("../../Core/Guard");
21
21
  var NumberRange_1 = require("../../Core/NumberRange");
22
22
  var NumberArray_1 = require("../../types/NumberArray");
23
23
  var SearchMode_1 = require("../../types/SearchMode");
24
+ var YRangeMode_1 = require("../../types/YRangeMode");
24
25
  var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
25
26
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
26
27
  var BaseDataSeries_1 = require("./BaseDataSeries");
@@ -353,9 +354,10 @@ var OhlcDataSeries = /** @class */ (function (_super) {
353
354
  _super.prototype.delete.call(this);
354
355
  };
355
356
  /** @inheritDoc */
356
- OhlcDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType) {
357
+ OhlcDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode) {
357
358
  if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }
358
359
  if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }
360
+ if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }
359
361
  var _a = this.getOHLCValues(dataSeriesValueType), closeValues = _a.closeValues, highValues = _a.highValues, lowValues = _a.lowValues;
360
362
  if (this.count() === 1) {
361
363
  var y = closeValues.get(0);
@@ -363,7 +365,7 @@ var OhlcDataSeries = /** @class */ (function (_super) {
363
365
  }
364
366
  var indicesRange = isXCategoryAxis
365
367
  ? xRange
366
- : this.getIndicesRange(xRange, false, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
368
+ : this.getIndicesRange(xRange, false, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);
367
369
  var yMin = Number.MAX_VALUE;
368
370
  var yMax = Number.MIN_VALUE;
369
371
  var iMin = Math.max(indicesRange.min, 0);
@@ -1,6 +1,7 @@
1
1
  import { NumberRange } from "../../Core/NumberRange";
2
2
  import { NumberArray } from "../../types/NumberArray";
3
3
  import { SCRTDoubleVector, TSciChart } from "../../types/TSciChart";
4
+ import { EYRangeMode } from "../../types/YRangeMode";
4
5
  import { SeriesAnimation } from "../Visuals/RenderableSeries/Animations/SeriesAnimation";
5
6
  import { BaseDataSeries, IBaseDataSeriesOptions } from "./BaseDataSeries";
6
7
  import { EDataSeriesType, EDataSeriesValueType } from "./IDataSeries";
@@ -148,7 +149,7 @@ export declare class XyyDataSeries extends BaseDataSeries {
148
149
  */
149
150
  clear(): void;
150
151
  /** @inheritDoc */
151
- getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType): NumberRange;
152
+ getWindowedYRange(xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis?: boolean, dataSeriesValueType?: EDataSeriesValueType, yRangeMode?: EYRangeMode): NumberRange;
152
153
  /** @inheritDoc */
153
154
  delete(): void;
154
155
  createAnimationVectors(): void;
@@ -21,6 +21,7 @@ var Guard_1 = require("../../Core/Guard");
21
21
  var NumberRange_1 = require("../../Core/NumberRange");
22
22
  var NumberArray_1 = require("../../types/NumberArray");
23
23
  var SearchMode_1 = require("../../types/SearchMode");
24
+ var YRangeMode_1 = require("../../types/YRangeMode");
24
25
  var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
25
26
  var isRealNumber_1 = require("../../utils/isRealNumber");
26
27
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
@@ -290,9 +291,10 @@ var XyyDataSeries = /** @class */ (function (_super) {
290
291
  }
291
292
  };
292
293
  /** @inheritDoc */
293
- XyyDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType) {
294
+ XyyDataSeries.prototype.getWindowedYRange = function (xRange, getPositiveRange, isXCategoryAxis, dataSeriesValueType, yRangeMode) {
294
295
  if (isXCategoryAxis === void 0) { isXCategoryAxis = false; }
295
296
  if (dataSeriesValueType === void 0) { dataSeriesValueType = IDataSeries_1.EDataSeriesValueType.Default; }
297
+ if (yRangeMode === void 0) { yRangeMode = YRangeMode_1.EYRangeMode.Visible; }
296
298
  var _a = this.getYY1Values(dataSeriesValueType), yValues = _a.yValues, y1Values = _a.y1Values;
297
299
  // TODO: getPositiveRange
298
300
  // if one point
@@ -303,7 +305,7 @@ var XyyDataSeries = /** @class */ (function (_super) {
303
305
  }
304
306
  var indicesRange = isXCategoryAxis
305
307
  ? xRange
306
- : this.getIndicesRange(xRange, false, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
308
+ : this.getIndicesRange(xRange, false, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundUp : SearchMode_1.ESearchMode.RoundDown, yRangeMode === YRangeMode_1.EYRangeMode.Visible ? SearchMode_1.ESearchMode.RoundDown : SearchMode_1.ESearchMode.RoundUp);
307
309
  var iMin = Math.max(Math.floor(indicesRange.min), 0);
308
310
  var iMax = Math.min(Math.ceil(indicesRange.max), this.count() - 1);
309
311
  if (iMax < iMin) {
@@ -809,8 +809,8 @@ var AnnotationBase = /** @class */ (function (_super) {
809
809
  case ECoordinateMode.Relative: {
810
810
  // Value is 0.5 means 50% of the viewport size
811
811
  return this.isSvgAnnotation
812
- ? (value * calculator.viewportDimension) / DpiHelper_1.DpiHelper.PIXEL_RATIO
813
- : value * calculator.viewportDimension;
812
+ ? (value * calculator.viewportDimension + calculator.offset) / DpiHelper_1.DpiHelper.PIXEL_RATIO
813
+ : value * calculator.viewportDimension + calculator.offset;
814
814
  }
815
815
  default: {
816
816
  throw new Error("AnnotationBase.getCoordinate with CoordinateMode.".concat(coordinateMode, " is not implemented"));
@@ -948,7 +948,7 @@ var AnnotationBase = /** @class */ (function (_super) {
948
948
  return value !== undefined && value !== null ? calculator.getDataValue(value) : undefined;
949
949
  }
950
950
  case ECoordinateMode.Relative: {
951
- return value / calculator.viewportDimension;
951
+ return (value - calculator.offset) / calculator.viewportDimension;
952
952
  }
953
953
  default: {
954
954
  throw new Error("Not implemented");
@@ -1,12 +1,13 @@
1
1
  import { TSeriesDefinition } from "../../../Builder/buildSeries";
2
2
  import { SeriesAnimationFiniteStateMachine } from "../../../Core/Animations/AnimationFiniteStateMachine";
3
+ import { DeletableEntity } from "../../../Core/DeletableEntity";
3
4
  import { EventHandler } from "../../../Core/EventHandler";
4
5
  import { NumberRange } from "../../../Core/NumberRange";
5
6
  import { ESeriesType } from "../../../types/SeriesType";
6
7
  import { SCRTDoubleVector, TSciChart } from "../../../types/TSciChart";
7
8
  import { ELineDrawMode, WebGlRenderContext2D } from "../../Drawing/WebGlRenderContext2D";
8
9
  import { SeriesInfo } from "../../Model/ChartData/SeriesInfo";
9
- import { IDataSeries } from "../../Model/IDataSeries";
10
+ import { IDataChangeArgs, IDataSeries } from "../../Model/IDataSeries";
10
11
  import { IPaletteProvider } from "../../Model/IPaletteProvider";
11
12
  import { IPointSeries } from "../../Model/PointSeries/IPointSeries";
12
13
  import { XyPointSeriesResampled } from "../../Model/PointSeries/XyPointSeriesResampled";
@@ -21,19 +22,20 @@ import { IPointMarker } from "../PointMarkers/IPointMarker";
21
22
  import { SciChartSurface } from "../SciChartSurface";
22
23
  import { TDpiChangedEventArgs } from "../TextureManager/DpiHelper";
23
24
  import { SeriesAnimation } from "./Animations/SeriesAnimation";
25
+ import { BaseDataLabelProvider } from "./DataLabels/BaseDataLabelProvider";
24
26
  import { TPalettingState } from "./DrawingProviders/BaseSeriesDrawingProvider";
25
27
  import { ISeriesDrawingProvider } from "./DrawingProviders/ISeriesDrawingProvider";
26
28
  import { HitTestInfo } from "./HitTest/HitTestInfo";
27
29
  import { IHitTestProvider } from "./HitTest/IHitTestProvider";
28
30
  import { IBaseRenderableSeriesOptions } from "./IBaseRenderableSeriesOptions";
29
31
  import { IRenderableSeries } from "./IRenderableSeries";
32
+ import { IRenderDataTransform } from "./RenderDataTransforms/BaseRenderDataTransform";
30
33
  import { RolloverModifierRenderableSeriesProps } from "./RolloverModifier/RolloverModifierRenderableSeriesProps";
31
34
  import { SeriesHoveredArgs } from "./SeriesHoveredArgs";
32
35
  import { SeriesSelectedArgs } from "./SeriesSelectedArgs";
33
36
  import { SeriesVisibleChangedArgs } from "./SeriesVisibleChangedArgs";
34
37
  import { ShaderEffect } from "./ShaderEffect";
35
- import { BaseDataLabelProvider } from "./DataLabels/BaseDataLabelProvider";
36
- import { DeletableEntity } from "../../../Core/DeletableEntity";
38
+ import { EYRangeMode } from "../../../types/YRangeMode";
37
39
  /**
38
40
  * @summary Defines the base class to a Render Series (or Chart Type) in SciChart's High Performance Real-time
39
41
  * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
@@ -71,6 +73,7 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
71
73
  protected animationQueue: SeriesAnimation[];
72
74
  protected paletteProviderProperty: IPaletteProvider;
73
75
  protected dataLabelProviderProperty: BaseDataLabelProvider;
76
+ protected renderDataTransformProperty: IRenderDataTransform;
74
77
  protected typeMap: Map<string, string>;
75
78
  protected resamplerHelper: ExtremeResamplerHelper;
76
79
  protected pointSeries: XyPointSeriesResampled;
@@ -92,6 +95,7 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
92
95
  private resamplingModeProperty;
93
96
  private resamplingPrecisionProperty;
94
97
  private clipToYRangeProperty;
98
+ private yRangeModeProperty;
95
99
  /**
96
100
  * Creates an instance of the {@link BaseRenderableSeries}
97
101
  * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing
@@ -194,6 +198,9 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
194
198
  get clipToYRange(): boolean;
195
199
  set clipToYRange(value: boolean);
196
200
  /** @inheritDoc */
201
+ get yRangeMode(): EYRangeMode;
202
+ set yRangeMode(value: EYRangeMode);
203
+ /** @inheritDoc */
197
204
  get isSpline(): boolean;
198
205
  /** @inheritDoc */
199
206
  draw(renderContext: WebGlRenderContext2D, renderPassData: RenderPassData): void;
@@ -281,6 +288,10 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
281
288
  /** @inheritDoc */
282
289
  set dataLabelProvider(provider: BaseDataLabelProvider);
283
290
  /** @inheritDoc */
291
+ get renderDataTransform(): IRenderDataTransform;
292
+ /** @inheritDoc */
293
+ set renderDataTransform(transform: IRenderDataTransform);
294
+ /** @inheritDoc */
284
295
  resolveAutoColors(index: number, maxSeries: number, theme: IThemeProvider): void;
285
296
  /** @inheritDoc */
286
297
  adjustAutoColor(propertyName: string, color: string): string;
@@ -316,7 +327,7 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
316
327
  * Is being called when the data for the underlying DataSeries changes
317
328
  * @protected
318
329
  */
319
- protected dataSeriesDataChanged(): void;
330
+ protected dataSeriesDataChanged(args: IDataChangeArgs): void;
320
331
  protected valueChanged(oldValue: any, newValue: any): boolean;
321
332
  protected setPaletteProvider(paletteProvider: IPaletteProvider): void;
322
333
  private invalidateParent;
@@ -18,10 +18,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.getDelta = exports.getDataPointWidth = exports.BaseRenderableSeries = void 0;
19
19
  var classFactory_1 = require("../../../Builder/classFactory");
20
20
  var AnimationFiniteStateMachine_1 = require("../../../Core/Animations/AnimationFiniteStateMachine");
21
+ var DeletableEntity_1 = require("../../../Core/DeletableEntity");
21
22
  var Deleter_1 = require("../../../Core/Deleter");
22
23
  var EventHandler_1 = require("../../../Core/EventHandler");
24
+ var Rect_1 = require("../../../Core/Rect");
23
25
  var AnimationType_1 = require("../../../types/AnimationType");
24
26
  var BaseType_1 = require("../../../types/BaseType");
27
+ var DataLabelProviderType_1 = require("../../../types/DataLabelProviderType");
25
28
  var PaletteProviderType_1 = require("../../../types/PaletteProviderType");
26
29
  var PointMarkerType_1 = require("../../../types/PointMarkerType");
27
30
  var SeriesType_1 = require("../../../types/SeriesType");
@@ -32,6 +35,7 @@ var HlcSeriesInfo_1 = require("../../Model/ChartData/HlcSeriesInfo");
32
35
  var OhlcSeriesInfo_1 = require("../../Model/ChartData/OhlcSeriesInfo");
33
36
  var XySeriesInfo_1 = require("../../Model/ChartData/XySeriesInfo");
34
37
  var XyySeriesInfo_1 = require("../../Model/ChartData/XyySeriesInfo");
38
+ var XyzSeriesInfo_1 = require("../../Model/ChartData/XyzSeriesInfo");
35
39
  var IDataSeries_1 = require("../../Model/IDataSeries");
36
40
  var IPaletteProvider_1 = require("../../Model/IPaletteProvider");
37
41
  var XyPointSeriesResampled_1 = require("../../Model/PointSeries/XyPointSeriesResampled");
@@ -49,10 +53,7 @@ var RolloverModifierRenderableSeriesProps_1 = require("./RolloverModifier/Rollov
49
53
  var SeriesHoveredArgs_1 = require("./SeriesHoveredArgs");
50
54
  var SeriesSelectedArgs_1 = require("./SeriesSelectedArgs");
51
55
  var SeriesVisibleChangedArgs_1 = require("./SeriesVisibleChangedArgs");
52
- var DataLabelProviderType_1 = require("../../../types/DataLabelProviderType");
53
- var Rect_1 = require("../../../Core/Rect");
54
- var DeletableEntity_1 = require("../../../Core/DeletableEntity");
55
- var XyzSeriesInfo_1 = require("../../Model/ChartData/XyzSeriesInfo");
56
+ var YRangeMode_1 = require("../../../types/YRangeMode");
56
57
  /**
57
58
  * @summary Defines the base class to a Render Series (or Chart Type) in SciChart's High Performance Real-time
58
59
  * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
@@ -73,7 +74,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
73
74
  */
74
75
  function BaseRenderableSeries(webAssemblyContext, options) {
75
76
  var _this = this;
76
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
77
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
77
78
  _this = _super.call(this) || this;
78
79
  /** @inheritDoc */
79
80
  _this.rolloverModifierProps = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(_this);
@@ -101,6 +102,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
101
102
  _this.resamplingModeProperty = ResamplingMode_1.EResamplingMode.Auto;
102
103
  _this.resamplingPrecisionProperty = 0;
103
104
  _this.clipToYRangeProperty = false;
105
+ _this.yRangeModeProperty = YRangeMode_1.EYRangeMode.Drawn;
104
106
  _this.isStacked = false;
105
107
  _this.webAssemblyContext = webAssemblyContext;
106
108
  _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();
@@ -158,6 +160,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
158
160
  _this.isSelected = (_q = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _q !== void 0 ? _q : false;
159
161
  _this.isHovered = (_r = options === null || options === void 0 ? void 0 : options.isHovered) !== null && _r !== void 0 ? _r : false;
160
162
  _this.clipToYRangeProperty = (_s = options === null || options === void 0 ? void 0 : options.clipToYRange) !== null && _s !== void 0 ? _s : _this.clipToYRangeProperty;
163
+ _this.yRangeModeProperty = (_t = options === null || options === void 0 ? void 0 : options.yRangeMode) !== null && _t !== void 0 ? _t : _this.yRangeModeProperty;
161
164
  if (options === null || options === void 0 ? void 0 : options.onIsVisibleChanged) {
162
165
  if (typeof options.onIsVisibleChanged === "string") {
163
166
  _this.typeMap.set("onIsVisibleChanged", options.onIsVisibleChanged);
@@ -583,6 +586,20 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
583
586
  enumerable: false,
584
587
  configurable: true
585
588
  });
589
+ Object.defineProperty(BaseRenderableSeries.prototype, "yRangeMode", {
590
+ /** @inheritDoc */
591
+ get: function () {
592
+ return this.yRangeModeProperty;
593
+ },
594
+ set: function (value) {
595
+ if (this.yRangeModeProperty !== value) {
596
+ this.yRangeModeProperty = value;
597
+ this.notifyPropertyChanged(constants_1.PROPERTY.YRANGEMODE);
598
+ }
599
+ },
600
+ enumerable: false,
601
+ configurable: true
602
+ });
586
603
  Object.defineProperty(BaseRenderableSeries.prototype, "isSpline", {
587
604
  /** @inheritDoc */
588
605
  get: function () {
@@ -593,6 +610,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
593
610
  });
594
611
  /** @inheritDoc */
595
612
  BaseRenderableSeries.prototype.draw = function (renderContext, renderPassData) {
613
+ var _this = this;
596
614
  var _a, _b;
597
615
  this.currentRenderPassData = renderPassData;
598
616
  (_a = this.hitTestProvider) === null || _a === void 0 ? void 0 : _a.update(renderPassData);
@@ -613,7 +631,15 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
613
631
  nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);
614
632
  }
615
633
  }
616
- this.drawingProviders.forEach(function (dp) { return dp.draw(renderContext, renderPassData); });
634
+ this.drawingProviders.forEach(function (dp) {
635
+ if (_this.renderDataTransform && _this.renderDataTransform.drawingProviders.includes(dp)) {
636
+ var transformedRPD = _this.renderDataTransform.runTransform(renderPassData);
637
+ dp.draw(renderContext, transformedRPD);
638
+ }
639
+ else {
640
+ dp.draw(renderContext, renderPassData);
641
+ }
642
+ });
617
643
  }
618
644
  finally {
619
645
  if (this.clipToYRange) {
@@ -638,6 +664,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
638
664
  this.resamplerHelper = (0, Deleter_1.deleteSafe)(this.resamplerHelper);
639
665
  this.pointSeries = (0, Deleter_1.deleteSafe)(this.pointSeries);
640
666
  this.dataLabelProviderProperty = (0, Deleter_1.deleteSafe)(this.dataLabelProvider);
667
+ this.renderDataTransformProperty = (0, Deleter_1.deleteSafe)(this.renderDataTransform);
641
668
  };
642
669
  /** @inheritDoc */
643
670
  BaseRenderableSeries.prototype.getXRange = function () {
@@ -649,7 +676,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
649
676
  var dataSeriesValueType = this.isRunningDataAnimation
650
677
  ? IDataSeries_1.EDataSeriesValueType.FinalAnimationValues
651
678
  : IDataSeries_1.EDataSeriesValueType.Default;
652
- return this.dataSeries.getWindowedYRange(xVisibleRange, true, isXCategoryAxis, dataSeriesValueType);
679
+ return this.dataSeries.getWindowedYRange(xVisibleRange, true, isXCategoryAxis, dataSeriesValueType, this.yRangeMode);
653
680
  };
654
681
  /** @inheritDoc */
655
682
  BaseRenderableSeries.prototype.notifyPropertyChanged = function (propertyName) {
@@ -799,6 +826,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
799
826
  resamplingMode: this.resamplingMode,
800
827
  resamplingPrecision: this.resamplingPrecision,
801
828
  clipToYRange: this.clipToYRange,
829
+ yRangeMode: this.yRangeMode,
802
830
  // @ts-ignore
803
831
  dataLabelProvider: (_c = this.dataLabelProvider) === null || _c === void 0 ? void 0 : _c.toJSON()
804
832
  // onSelectedChanged: this.onSelectedChanged
@@ -983,6 +1011,22 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
983
1011
  enumerable: false,
984
1012
  configurable: true
985
1013
  });
1014
+ Object.defineProperty(BaseRenderableSeries.prototype, "renderDataTransform", {
1015
+ /** @inheritDoc */
1016
+ get: function () {
1017
+ return this.renderDataTransformProperty;
1018
+ },
1019
+ /** @inheritDoc */
1020
+ set: function (transform) {
1021
+ if (transform.parentSeries !== this) {
1022
+ throw new Error("renderDataTransform can only be added to the series it was created with");
1023
+ }
1024
+ this.renderDataTransformProperty = transform;
1025
+ this.notifyPropertyChanged(constants_1.PROPERTY.SERIES_TEXT_PROVIDER);
1026
+ },
1027
+ enumerable: false,
1028
+ configurable: true
1029
+ });
986
1030
  /** @inheritDoc */
987
1031
  BaseRenderableSeries.prototype.resolveAutoColors = function (index, maxSeries, theme) {
988
1032
  if (this.strokeProperty.startsWith(IThemeProvider_1.AUTO_COLOR)) {
@@ -1063,7 +1107,10 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
1063
1107
  * Is being called when the data for the underlying DataSeries changes
1064
1108
  * @protected
1065
1109
  */
1066
- BaseRenderableSeries.prototype.dataSeriesDataChanged = function () {
1110
+ BaseRenderableSeries.prototype.dataSeriesDataChanged = function (args) {
1111
+ if (this.renderDataTransform) {
1112
+ this.renderDataTransform.onDataChange(args);
1113
+ }
1067
1114
  this.invalidateParent();
1068
1115
  };
1069
1116
  BaseRenderableSeries.prototype.valueChanged = function (oldValue, newValue) {