scichart 3.2.491 → 3.2.509

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 (55) hide show
  1. package/Charting/ChartModifiers/CursorModifier.js +3 -7
  2. package/Charting/ChartModifiers/RolloverModifier.js +1 -2
  3. package/Charting/ChartModifiers/VerticalSliceModifier.js +6 -0
  4. package/Charting/LayoutManager/SynchronizedLayoutManager.js +12 -0
  5. package/Charting/Numerics/TickCoordinateProviders/DefaultTickCoordinatesProvider.d.ts +5 -0
  6. package/Charting/Numerics/TickCoordinateProviders/DefaultTickCoordinatesProvider.js +11 -1
  7. package/Charting/Numerics/TickCoordinateProviders/StaticTickCoordinatesProvider.d.ts +19 -0
  8. package/Charting/Numerics/TickCoordinateProviders/StaticTickCoordinatesProvider.js +86 -0
  9. package/Charting/Numerics/TickCoordinateProviders/TickCoordinatesProvider.d.ts +2 -0
  10. package/Charting/Numerics/TickProviders/LogarithmicTickProvider.d.ts +1 -0
  11. package/Charting/Numerics/TickProviders/LogarithmicTickProvider.js +6 -1
  12. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.d.ts +1 -2
  13. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +2 -3
  14. package/Charting/Visuals/Annotations/RolloverMarkerSvgAnnotation.js +1 -1
  15. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.d.ts +1 -2
  16. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +16 -17
  17. package/Charting/Visuals/Annotations/SvgAnnotationBase.d.ts +2 -0
  18. package/Charting/Visuals/Annotations/SvgAnnotationBase.js +9 -4
  19. package/Charting/Visuals/Axis/AxisBase2D.d.ts +14 -1
  20. package/Charting/Visuals/Axis/AxisBase2D.js +51 -19
  21. package/Charting/Visuals/Axis/AxisCore.d.ts +1 -1
  22. package/Charting/Visuals/Axis/DeltaCalculator/LogarithmicDeltaCalculator.d.ts +1 -0
  23. package/Charting/Visuals/Axis/DeltaCalculator/LogarithmicDeltaCalculator.js +13 -4
  24. package/Charting/Visuals/Axis/LogarithmicAxis.d.ts +6 -1
  25. package/Charting/Visuals/Axis/LogarithmicAxis.js +27 -10
  26. package/Charting/Visuals/Axis/constants.d.ts +2 -1
  27. package/Charting/Visuals/Axis/constants.js +1 -0
  28. package/Charting/Visuals/Helpers/createPen.js +8 -0
  29. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +7 -0
  30. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +41 -16
  31. package/Charting/Visuals/RenderableSeries/DataLabels/DataLabelProvider.js +1 -1
  32. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +5 -0
  33. package/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.js +7 -2
  34. package/Charting/Visuals/RenderableSeries/constants.d.ts +2 -1
  35. package/Charting/Visuals/RenderableSeries/constants.js +1 -0
  36. package/Charting/Visuals/SciChartOverview.js +3 -2
  37. package/Charting/Visuals/SciChartPieSurface/IPieSurfaceOptions.d.ts +1 -0
  38. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +9 -8
  39. package/Charting/Visuals/SciChartSurfaceBase.js +5 -1
  40. package/Charting3D/Visuals/Axis/AxisBase3D.d.ts +1 -1
  41. package/Core/BuildStamp.d.ts +1 -1
  42. package/Core/BuildStamp.js +2 -2
  43. package/README.md +6 -1
  44. package/_wasm/scichart.browser.js +1 -1
  45. package/_wasm/scichart2d.js +1 -1
  46. package/_wasm/scichart2d.wasm +0 -0
  47. package/_wasm/scichart3d.js +1 -1
  48. package/_wasm/scichart3d.wasm +0 -0
  49. package/index.d.ts +1 -0
  50. package/index.dev.js +305 -103
  51. package/index.js +13 -11
  52. package/index.min.js +1 -1
  53. package/package.json +1 -1
  54. package/types/TSciChart.d.ts +18 -17
  55. package/types/TSciChart3D.d.ts +1 -0
@@ -11,6 +11,7 @@ export declare class LogarithmicDeltaCalculator extends DeltaCalculator {
11
11
  * Gets or sets the logarithmic base. Defaults to 10
12
12
  */
13
13
  logarithmicBase: number;
14
+ isHighPrecisionTicks: boolean;
14
15
  private webAssemblyContext;
15
16
  /**
16
17
  * Creates an instance of the {@link LogarithmicDeltaCalculator}
@@ -36,6 +36,7 @@ var LogarithmicDeltaCalculator = /** @class */ (function (_super) {
36
36
  * Gets or sets the logarithmic base. Defaults to 10
37
37
  */
38
38
  _this.logarithmicBase = 10;
39
+ _this.isHighPrecisionTicks = true;
39
40
  _this.webAssemblyContext = webAssemblyContext;
40
41
  return _this;
41
42
  }
@@ -54,10 +55,18 @@ var LogarithmicDeltaCalculator = /** @class */ (function (_super) {
54
55
  min = max;
55
56
  max = temp;
56
57
  }
57
- var delta = this.webAssemblyContext.NiceLogScale.CalculateTickSpacing(min, max, this.logarithmicBase, minorsPerMajor, maxTicks);
58
- var tsDelta = new NumberRange_1.NumberRange(delta.minD, delta.maxD);
59
- delta.delete();
60
- return tsDelta;
58
+ if (this.isHighPrecisionTicks) {
59
+ var delta = this.webAssemblyContext.NiceLogScale.CalculateTickSpacing(min, max, this.logarithmicBase, minorsPerMajor, maxTicks);
60
+ var tsDelta = new NumberRange_1.NumberRange(delta.minD, delta.maxD);
61
+ delta.delete();
62
+ return tsDelta;
63
+ }
64
+ else {
65
+ var delta = this.webAssemblyContext.NiceLogScale.CalculateLowPrecisionTickSpacing(min, max, this.logarithmicBase, minorsPerMajor, maxTicks);
66
+ var tsDelta = new NumberRange_1.NumberRange(delta.minD, delta.maxD);
67
+ delta.delete();
68
+ return tsDelta;
69
+ }
61
70
  };
62
71
  return LogarithmicDeltaCalculator;
63
72
  }(DeltaCalculator_1.DeltaCalculator));
@@ -34,6 +34,8 @@ export interface ILogarithmicAxisOptions extends INumericAxisOptions {
34
34
  * the first linear minor tick would be more than 70% of the major tick)
35
35
  */
36
36
  minorTickMode?: ELogarithmicMinorTickMode;
37
+ /** If false, only ticks that are whole number multiples of the log base will be used */
38
+ isHighPrecisionTicks?: boolean;
37
39
  }
38
40
  /**
39
41
  * Creates an instance of a {@link LogarithmicAxis}
@@ -45,6 +47,7 @@ export declare class LogarithmicAxis extends AxisBase2D {
45
47
  readonly type = EAxisType.LogarithmicAxis;
46
48
  private logBaseProperty;
47
49
  private isNegativeProperty;
50
+ private isHighPrecisionTicksProperty;
48
51
  constructor(wasmContext: TSciChart, options?: ILogarithmicAxisOptions);
49
52
  /**
50
53
  * Gets or sets the Logarithmic Base for the axis. Defaults to 10
@@ -56,6 +59,8 @@ export declare class LogarithmicAxis extends AxisBase2D {
56
59
  set logBase(logBase: number);
57
60
  get isNegative(): boolean;
58
61
  set isNegative(isNegative: boolean);
62
+ get isHighPrecisionTicks(): boolean;
63
+ set isHighPrecisionTicks(isHighPrecisionTicks: boolean);
59
64
  getDefaultNonZeroRange(): NumberRange;
60
65
  hasValidVisibleRange(): boolean;
61
66
  get tickProvider(): TickProvider;
@@ -102,5 +107,5 @@ export declare class LogarithmicAxis extends AxisBase2D {
102
107
  protected getCurrentCoordinateCalculatorInternal(): CoordinateCalculatorBase;
103
108
  protected getMaxXRange(): NumberRange;
104
109
  private get logTickProvider();
105
- private updateLogarithmicBase;
110
+ private updateProviders;
106
111
  }
@@ -39,10 +39,11 @@ var LogarithmicAxis = /** @class */ (function (_super) {
39
39
  __extends(LogarithmicAxis, _super);
40
40
  function LogarithmicAxis(wasmContext, options) {
41
41
  var _this = this;
42
- var _a, _b, _c;
42
+ var _a, _b, _c, _d;
43
43
  _this = _super.call(this, wasmContext, options) || this;
44
44
  _this.type = AxisType_1.EAxisType.LogarithmicAxis;
45
45
  _this.logBaseProperty = 10;
46
+ _this.isHighPrecisionTicksProperty = true;
46
47
  _this.tickProvider = new LogarithmicTickProvider_1.LogarithmicTickProvider(wasmContext);
47
48
  _this.deltaCalculator = new LogarithmicDeltaCalculator_1.LogarithmicDeltaCalculator(wasmContext);
48
49
  _this.labelProvider =
@@ -52,6 +53,7 @@ var LogarithmicAxis = /** @class */ (function (_super) {
52
53
  _this.visibleRange = (options === null || options === void 0 ? void 0 : options.visibleRange) || _this.getDefaultNonZeroRange();
53
54
  _this.majorTickMode = (options === null || options === void 0 ? void 0 : options.majorTickMode) || _this.majorTickMode;
54
55
  _this.minorTickMode = (options === null || options === void 0 ? void 0 : options.minorTickMode) || _this.minorTickMode;
56
+ _this.isHighPrecisionTicks = (_d = options === null || options === void 0 ? void 0 : options.isHighPrecisionTicks) !== null && _d !== void 0 ? _d : _this.isHighPrecisionTicksProperty;
55
57
  if (options === null || options === void 0 ? void 0 : options.visibleRangeLimit) {
56
58
  _this.visibleRangeLimit = options.visibleRangeLimit;
57
59
  }
@@ -80,7 +82,7 @@ var LogarithmicAxis = /** @class */ (function (_super) {
80
82
  if (this.logBaseProperty !== logBase) {
81
83
  this.logBaseProperty = logBase;
82
84
  this.clearCoordCalcCache();
83
- this.updateLogarithmicBase(this.logBase);
85
+ this.updateProviders();
84
86
  this.notifyPropertyChanged(constants_1.PROPERTY.LOG_BASE);
85
87
  }
86
88
  },
@@ -104,6 +106,18 @@ var LogarithmicAxis = /** @class */ (function (_super) {
104
106
  enumerable: false,
105
107
  configurable: true
106
108
  });
109
+ Object.defineProperty(LogarithmicAxis.prototype, "isHighPrecisionTicks", {
110
+ get: function () {
111
+ return this.isHighPrecisionTicksProperty;
112
+ },
113
+ set: function (isHighPrecisionTicks) {
114
+ this.isHighPrecisionTicksProperty = isHighPrecisionTicks;
115
+ this.updateProviders();
116
+ this.notifyPropertyChanged(constants_1.PROPERTY.HIGH_PRECISION_TICKS);
117
+ },
118
+ enumerable: false,
119
+ configurable: true
120
+ });
107
121
  LogarithmicAxis.prototype.getDefaultNonZeroRange = function () {
108
122
  var adj = this.isNegativeProperty ? -1 : 1;
109
123
  return new NumberRange_1.NumberRange(adj * Math.pow(this.logBase, -1), adj * Math.pow(this.logBase, 2));
@@ -117,7 +131,7 @@ var LogarithmicAxis = /** @class */ (function (_super) {
117
131
  },
118
132
  set: function (tickProvider) {
119
133
  this.tickProviderProperty = tickProvider;
120
- this.updateLogarithmicBase(this.logBase);
134
+ this.updateProviders();
121
135
  this.notifyPropertyChanged(constants_1.PROPERTY.TICK_PROVIDER);
122
136
  },
123
137
  enumerable: false,
@@ -129,7 +143,7 @@ var LogarithmicAxis = /** @class */ (function (_super) {
129
143
  },
130
144
  set: function (deltaCalculator) {
131
145
  this.deltaCalculatorProperty = deltaCalculator;
132
- this.updateLogarithmicBase(this.logBase);
146
+ this.updateProviders();
133
147
  this.notifyPropertyChanged(constants_1.PROPERTY.DELTA_CALCULATOR);
134
148
  },
135
149
  enumerable: false,
@@ -141,7 +155,7 @@ var LogarithmicAxis = /** @class */ (function (_super) {
141
155
  },
142
156
  set: function (labelProvider) {
143
157
  this.labelProviderProperty = labelProvider;
144
- this.updateLogarithmicBase(this.logBase);
158
+ this.updateProviders();
145
159
  this.notifyPropertyChanged(constants_1.PROPERTY.LABEL_PROVIDER);
146
160
  },
147
161
  enumerable: false,
@@ -268,7 +282,8 @@ var LogarithmicAxis = /** @class */ (function (_super) {
268
282
  logBase: this.logBase,
269
283
  isNegative: this.isNegative,
270
284
  majorTickMode: this.majorTickMode,
271
- minorTickMode: this.minorTickMode
285
+ minorTickMode: this.minorTickMode,
286
+ isHighPrecisionTicks: this.isHighPrecisionTicks
272
287
  };
273
288
  Object.assign(json.options, options);
274
289
  return json;
@@ -300,18 +315,20 @@ var LogarithmicAxis = /** @class */ (function (_super) {
300
315
  enumerable: false,
301
316
  configurable: true
302
317
  });
303
- LogarithmicAxis.prototype.updateLogarithmicBase = function (logBase) {
318
+ LogarithmicAxis.prototype.updateProviders = function () {
304
319
  var logTickProvider = this.tickProvider;
305
320
  if (logTickProvider) {
306
- logTickProvider.logarithmicBase = logBase;
321
+ logTickProvider.logarithmicBase = this.logBase;
322
+ logTickProvider.isHighPrecisionTicks = this.isHighPrecisionTicks;
307
323
  }
308
324
  var logDeltaCalculator = this.deltaCalculator;
309
325
  if (logDeltaCalculator) {
310
- logDeltaCalculator.logarithmicBase = logBase;
326
+ logDeltaCalculator.logarithmicBase = this.logBase;
327
+ logDeltaCalculator.isHighPrecisionTicks = this.isHighPrecisionTicks;
311
328
  }
312
329
  var logLabelProvider = this.labelProvider;
313
330
  if (logLabelProvider) {
314
- logLabelProvider.logarithmicBase = logBase;
331
+ logLabelProvider.logarithmicBase = this.logBase;
315
332
  }
316
333
  };
317
334
  return LogarithmicAxis;
@@ -46,5 +46,6 @@ export declare enum PROPERTY {
46
46
  TICK_PROVIDER = "TICK_PROVIDER",
47
47
  VIEW_RECT = "VIEW_RECT",
48
48
  ZOOMEXTENTS_RANGE = "ZOOMEXTENTS_RANGE",
49
- DRAW_ONLY_WITHIN_XRANGE = "DRAW_ONLY_WITHIN_XRANGE"
49
+ DRAW_ONLY_WITHIN_XRANGE = "DRAW_ONLY_WITHIN_XRANGE",
50
+ HIGH_PRECISION_TICKS = "HIGH_PRECISION_TICKS"
50
51
  }
@@ -51,4 +51,5 @@ var PROPERTY;
51
51
  PROPERTY["VIEW_RECT"] = "VIEW_RECT";
52
52
  PROPERTY["ZOOMEXTENTS_RANGE"] = "ZOOMEXTENTS_RANGE";
53
53
  PROPERTY["DRAW_ONLY_WITHIN_XRANGE"] = "DRAW_ONLY_WITHIN_XRANGE";
54
+ PROPERTY["HIGH_PRECISION_TICKS"] = "HIGH_PRECISION_TICKS";
54
55
  })(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSCRTPen = void 0;
4
4
  var app_1 = require("../../../constants/app");
5
+ var MemoryUsageHelper_1 = require("../../../utils/MemoryUsageHelper");
5
6
  var colorUtil_1 = require("../../../utils/colorUtil");
6
7
  var parseColor_1 = require("../../../utils/parseColor");
7
8
  /**
@@ -27,6 +28,13 @@ var createSCRTPen = function (wasmContext, htmlColorCode, strokeThickness, opaci
27
28
  if (strokeDashArray && strokeDashArray.length) {
28
29
  // Create a dashed pen
29
30
  var strokeDashFloatVector_1 = new wasmContext.FloatVector();
31
+ if (process.env.NODE_ENV !== "production") {
32
+ // prevent unnecessary warning
33
+ if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {
34
+ var vectorId = MemoryUsageHelper_1.MemoryUsageHelper.objectRegistry.getObjectId(strokeDashFloatVector_1);
35
+ MemoryUsageHelper_1.MemoryUsageHelper.unregister(vectorId);
36
+ }
37
+ }
30
38
  strokeDashArray.forEach(function (item) { return strokeDashFloatVector_1.push_back(item); });
31
39
  return wasmContext.SCRTCreateDahedPen(colorArgb, strokeThickness, antiAliased, strokeDashFloatVector_1);
32
40
  }
@@ -91,6 +91,7 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
91
91
  private isHoveredProperty;
92
92
  private resamplingModeProperty;
93
93
  private resamplingPrecisionProperty;
94
+ private clipToYRangeProperty;
94
95
  /**
95
96
  * Creates an instance of the {@link BaseRenderableSeries}
96
97
  * @param webAssemblyContext The {@link TSciChart | SciChart WebAssembly Context} containing
@@ -186,6 +187,12 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
186
187
  */
187
188
  get resamplingPrecision(): number;
188
189
  set resamplingPrecision(value: number);
190
+ /**
191
+ * If true, the drawing will be clipped to the visibleRange of the associated Y Axis.
192
+ * This is only really relevant if you are using Stacked Y Axes and do not want the series to be drawn outside that axis range
193
+ */
194
+ get clipToYRange(): boolean;
195
+ set clipToYRange(value: boolean);
189
196
  /** @inheritDoc */
190
197
  get isSpline(): boolean;
191
198
  /** @inheritDoc */
@@ -50,6 +50,7 @@ var SeriesHoveredArgs_1 = require("./SeriesHoveredArgs");
50
50
  var SeriesSelectedArgs_1 = require("./SeriesSelectedArgs");
51
51
  var SeriesVisibleChangedArgs_1 = require("./SeriesVisibleChangedArgs");
52
52
  var DataLabelProviderType_1 = require("../../../types/DataLabelProviderType");
53
+ var Rect_1 = require("../../../Core/Rect");
53
54
  var DeletableEntity_1 = require("../../../Core/DeletableEntity");
54
55
  var XyzSeriesInfo_1 = require("../../Model/ChartData/XyzSeriesInfo");
55
56
  /**
@@ -72,7 +73,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
72
73
  */
73
74
  function BaseRenderableSeries(webAssemblyContext, options) {
74
75
  var _this = this;
75
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
76
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
76
77
  _this = _super.call(this) || this;
77
78
  /** @inheritDoc */
78
79
  _this.rolloverModifierProps = new RolloverModifierRenderableSeriesProps_1.RolloverModifierRenderableSeriesProps(_this);
@@ -99,6 +100,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
99
100
  _this.isDigitalLineProperty = false;
100
101
  _this.resamplingModeProperty = ResamplingMode_1.EResamplingMode.Auto;
101
102
  _this.resamplingPrecisionProperty = 0;
103
+ _this.clipToYRangeProperty = false;
102
104
  _this.isStacked = false;
103
105
  _this.webAssemblyContext = webAssemblyContext;
104
106
  _this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : (0, guid_1.generateGuid)();
@@ -155,6 +157,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
155
157
  _this.hitTestProvider = _this.newHitTestProvider();
156
158
  _this.isSelected = (_q = options === null || options === void 0 ? void 0 : options.isSelected) !== null && _q !== void 0 ? _q : false;
157
159
  _this.isHovered = (_r = options === null || options === void 0 ? void 0 : options.isHovered) !== null && _r !== void 0 ? _r : false;
160
+ _this.clipToYRangeProperty = (_s = options === null || options === void 0 ? void 0 : options.clipToYRange) !== null && _s !== void 0 ? _s : _this.clipToYRangeProperty;
158
161
  if (options === null || options === void 0 ? void 0 : options.onIsVisibleChanged) {
159
162
  if (typeof options.onIsVisibleChanged === "string") {
160
163
  _this.typeMap.set("onIsVisibleChanged", options.onIsVisibleChanged);
@@ -563,6 +566,23 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
563
566
  enumerable: false,
564
567
  configurable: true
565
568
  });
569
+ Object.defineProperty(BaseRenderableSeries.prototype, "clipToYRange", {
570
+ /**
571
+ * If true, the drawing will be clipped to the visibleRange of the associated Y Axis.
572
+ * This is only really relevant if you are using Stacked Y Axes and do not want the series to be drawn outside that axis range
573
+ */
574
+ get: function () {
575
+ return this.clipToYRangeProperty;
576
+ },
577
+ set: function (value) {
578
+ if (this.clipToYRangeProperty !== value) {
579
+ this.clipToYRangeProperty = value;
580
+ this.notifyPropertyChanged(constants_1.PROPERTY.CLIPTOYRANGE);
581
+ }
582
+ },
583
+ enumerable: false,
584
+ configurable: true
585
+ });
566
586
  Object.defineProperty(BaseRenderableSeries.prototype, "isSpline", {
567
587
  /** @inheritDoc */
568
588
  get: function () {
@@ -573,29 +593,33 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
573
593
  });
574
594
  /** @inheritDoc */
575
595
  BaseRenderableSeries.prototype.draw = function (renderContext, renderPassData) {
576
- var _a;
596
+ var _a, _b;
577
597
  this.currentRenderPassData = renderPassData;
578
598
  (_a = this.hitTestProvider) === null || _a === void 0 ? void 0 : _a.update(renderPassData);
579
599
  if (this.canDraw) {
580
- // const nativeContext = renderContext.getNativeContext();
581
- // const viewRect = this.parentSurface.seriesViewRect;
600
+ var nativeContext = renderContext.getNativeContext();
601
+ var viewRect = (_b = this.parentSurface) === null || _b === void 0 ? void 0 : _b.seriesViewRect;
582
602
  try {
583
603
  renderContext.pushShaderEffect(this.effect);
584
- // This is prep for clipping series to the axis range. Need to add an option to AxisBase to drive it.
585
- // need to handle case where clipping is only set for one axis
586
- // const { offset: x, viewportDimension: width } = renderPassData.xCoordinateCalculator;
587
- // const { offset: y, viewportDimension: height } = renderPassData.yCoordinateCalculator;
588
- // if (renderPassData.isVerticalChart) {
589
- // const clipRect = new Rect(viewRect.x + y, viewRect.y + x, height, width);
590
- // nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);
591
- // } else {
592
- // const clipRect = new Rect(viewRect.x + x, viewRect.y + y, width, height);
593
- // nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);
594
- // }
604
+ if (this.clipToYRange) {
605
+ var _c = renderPassData.xCoordinateCalculator, x = _c.offset, width = _c.viewportDimension;
606
+ var _d = renderPassData.yCoordinateCalculator, y = _d.offset, height = _d.viewportDimension;
607
+ if (renderPassData.isVerticalChart) {
608
+ var clipRect = new Rect_1.Rect(viewRect.x + y, viewRect.y + x, height, width);
609
+ nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);
610
+ }
611
+ else {
612
+ var clipRect = new Rect_1.Rect(viewRect.x + x, viewRect.y + y, width, height);
613
+ nativeContext.SetClipRect(clipRect.x, clipRect.y, clipRect.width, clipRect.height);
614
+ }
615
+ }
595
616
  this.drawingProviders.forEach(function (dp) { return dp.draw(renderContext, renderPassData); });
596
617
  }
597
618
  finally {
598
- //nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
619
+ if (this.clipToYRange) {
620
+ // Reset clip rect
621
+ nativeContext.SetClipRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);
622
+ }
599
623
  renderContext.popShaderEffect();
600
624
  }
601
625
  if (this.dataLabelProvider) {
@@ -774,6 +798,7 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
774
798
  animation: this.animation,
775
799
  resamplingMode: this.resamplingMode,
776
800
  resamplingPrecision: this.resamplingPrecision,
801
+ clipToYRange: this.clipToYRange,
777
802
  // @ts-ignore
778
803
  dataLabelProvider: (_c = this.dataLabelProvider) === null || _c === void 0 ? void 0 : _c.toJSON()
779
804
  // onSelectedChanged: this.onSelectedChanged
@@ -271,7 +271,7 @@ var DataLabelProvider = /** @class */ (function (_super) {
271
271
  var firstlabel = this.getText(state);
272
272
  var bounds = (0, NativeObject_1.getTextBounds)(this.webAssemblyContext);
273
273
  state.font.CalculateStringBounds(firstlabel !== null && firstlabel !== void 0 ? firstlabel : "", bounds, (_b = (_a = this.style) === null || _a === void 0 ? void 0 : _a.lineSpacing) !== null && _b !== void 0 ? _b : 2);
274
- return state.pointGap > bounds.m_fWidth * this.pointGapThreshold;
274
+ return state.pointGap >= bounds.m_fWidth * this.pointGapThreshold;
275
275
  };
276
276
  DataLabelProvider.prototype.getPosition = function (state, textBounds) {
277
277
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -180,4 +180,9 @@ export interface IBaseRenderableSeriesOptions {
180
180
  * A {@link SeriesTextProvider} used for creating and drawing per-point text.
181
181
  */
182
182
  dataLabelProvider?: BaseDataLabelProvider | TDataLabelProviderDefinition;
183
+ /**
184
+ * If true, the drawing will be clipped to the visibleRange of the associated Y Axis.
185
+ * This is only really relevant if you are using Stacked Y Axes and do not want the series to be drawn outside that axis range
186
+ */
187
+ clipToYRange?: boolean;
183
188
  }
@@ -126,9 +126,14 @@ var RolloverModifierRenderableSeriesProps = /** @class */ (function () {
126
126
  configurable: true
127
127
  });
128
128
  RolloverModifierRenderableSeriesProps.prototype.delete = function () {
129
+ var _a, _b;
129
130
  this.rolloverModifier = undefined;
130
- this.marker = (0, Deleter_1.deleteSafe)(this.marker);
131
- this.tooltip = (0, Deleter_1.deleteSafe)(this.tooltip);
131
+ if (!((_a = this.marker) === null || _a === void 0 ? void 0 : _a.isDeleted)) {
132
+ this.marker = (0, Deleter_1.deleteSafe)(this.marker);
133
+ }
134
+ if (!((_b = this.tooltip) === null || _b === void 0 ? void 0 : _b.isDeleted)) {
135
+ this.tooltip = (0, Deleter_1.deleteSafe)(this.tooltip);
136
+ }
132
137
  };
133
138
  RolloverModifierRenderableSeriesProps.prototype.notifyPropertyChanged = function (propertyName) {
134
139
  if (this.invalidateParentCallback) {
@@ -61,5 +61,6 @@ export declare enum PROPERTY {
61
61
  Z_MIN = "Z_MIN",
62
62
  Z_MULTIPLIER = "Z_MULTIPLIER",
63
63
  Z_LABEL_PROVIDER = "Z_LABEL_PROVIDER",
64
- SERIES_TEXT_PROVIDER = "SERIES_TEXT_PROVIDER"
64
+ SERIES_TEXT_PROVIDER = "SERIES_TEXT_PROVIDER",
65
+ CLIPTOYRANGE = "CLIPTOYRANGE"
65
66
  }
@@ -66,4 +66,5 @@ var PROPERTY;
66
66
  PROPERTY["Z_MULTIPLIER"] = "Z_MULTIPLIER";
67
67
  PROPERTY["Z_LABEL_PROVIDER"] = "Z_LABEL_PROVIDER";
68
68
  PROPERTY["SERIES_TEXT_PROVIDER"] = "SERIES_TEXT_PROVIDER";
69
+ PROPERTY["CLIPTOYRANGE"] = "CLIPTOYRANGE";
69
70
  })(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));
@@ -170,8 +170,9 @@ var SciChartOverview = /** @class */ (function (_super) {
170
170
  };
171
171
  /** @inheritDoc */
172
172
  SciChartOverview.prototype.delete = function () {
173
- var _a;
174
- (_a = this.overviewSciChartSurface) === null || _a === void 0 ? void 0 : _a.delete();
173
+ if (this.overviewSciChartSurface && !this.overviewSciChartSurface.isDeleted) {
174
+ this.overviewSciChartSurface.delete();
175
+ }
175
176
  this.overviewWasmContext = undefined;
176
177
  };
177
178
  return SciChartOverview;
@@ -50,6 +50,7 @@ export interface IPieSurfaceOptions extends ISurfaceOptionsBase {
50
50
  valueMode?: EPieValueMode;
51
51
  /**
52
52
  * Use this to adjust the position of the labels. 1 is the default. Larger values will shift the labels outwards.
53
+ * For Pie charts, 1.7 will place the labels outside the pie.
53
54
  * If you want more detailed control you can override calcTitlePosition.
54
55
  */
55
56
  labelRadiusAdjustment?: number;
@@ -102,7 +102,7 @@ var SciChartPieSurface = /** @class */ (function (_super) {
102
102
  function SciChartPieSurface(canvases, options) {
103
103
  if (canvases === void 0) { canvases = {}; }
104
104
  var _this = this;
105
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
105
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
106
106
  _this = _super.call(this) || this;
107
107
  _this.animate = true;
108
108
  /* The number of frames for the animation. Default 30. A frame will be trigged every 20ms. */
@@ -166,18 +166,19 @@ var SciChartPieSurface = /** @class */ (function (_super) {
166
166
  _this.animate = (_f = options === null || options === void 0 ? void 0 : options.animate) !== null && _f !== void 0 ? _f : _this.animate;
167
167
  _this.holeRadiusSizingModeProperty = (_g = options === null || options === void 0 ? void 0 : options.holeRadiusSizingMode) !== null && _g !== void 0 ? _g : _this.holeRadiusSizingModeProperty;
168
168
  _this.seriesSpacingProperty = (_h = options === null || options === void 0 ? void 0 : options.seriesSpacing) !== null && _h !== void 0 ? _h : _this.seriesSpacingProperty;
169
- _this.legend.showLegend = (_j = options === null || options === void 0 ? void 0 : options.showLegend) !== null && _j !== void 0 ? _j : _this.legend.showLegend;
170
- _this.legend.animate = (_k = options === null || options === void 0 ? void 0 : options.animateLegend) !== null && _k !== void 0 ? _k : _this.legend.animate;
171
- _this.legend.showCheckboxes = (_l = options === null || options === void 0 ? void 0 : options.showLegendCheckBoxes) !== null && _l !== void 0 ? _l : _this.legend.showCheckboxes;
172
- _this.legend.showSeriesMarkers = (_m = options === null || options === void 0 ? void 0 : options.showLegendSeriesMarkers) !== null && _m !== void 0 ? _m : _this.legend.showSeriesMarkers;
173
- _this.paddingProperty = (_o = options === null || options === void 0 ? void 0 : options.padding) !== null && _o !== void 0 ? _o : _this.paddingProperty;
169
+ _this.labelRadiusProperty = (_j = options === null || options === void 0 ? void 0 : options.labelRadiusAdjustment) !== null && _j !== void 0 ? _j : _this.labelRadiusProperty;
170
+ _this.legend.showLegend = (_k = options === null || options === void 0 ? void 0 : options.showLegend) !== null && _k !== void 0 ? _k : _this.legend.showLegend;
171
+ _this.legend.animate = (_l = options === null || options === void 0 ? void 0 : options.animateLegend) !== null && _l !== void 0 ? _l : _this.legend.animate;
172
+ _this.legend.showCheckboxes = (_m = options === null || options === void 0 ? void 0 : options.showLegendCheckBoxes) !== null && _m !== void 0 ? _m : _this.legend.showCheckboxes;
173
+ _this.legend.showSeriesMarkers = (_o = options === null || options === void 0 ? void 0 : options.showLegendSeriesMarkers) !== null && _o !== void 0 ? _o : _this.legend.showSeriesMarkers;
174
+ _this.paddingProperty = (_p = options === null || options === void 0 ? void 0 : options.padding) !== null && _p !== void 0 ? _p : _this.paddingProperty;
174
175
  if (options === null || options === void 0 ? void 0 : options.labelProvider) {
175
176
  if (!("getSegmentText" in (options === null || options === void 0 ? void 0 : options.labelProvider))) {
176
177
  options.labelProvider = (0, classFactory_1.createType)(BaseType_1.EBaseType.LabelProvider, options.labelProvider.type, undefined, options.labelProvider.options);
177
178
  }
178
179
  }
179
- _this.labelProvider = (_p = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _p !== void 0 ? _p : new PieLabelProvider_1.PieLabelProvider();
180
- _this.valueModeProperty = (_q = options === null || options === void 0 ? void 0 : options.valueMode) !== null && _q !== void 0 ? _q : _this.valueModeProperty;
180
+ _this.labelProvider = (_q = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _q !== void 0 ? _q : new PieLabelProvider_1.PieLabelProvider();
181
+ _this.valueModeProperty = (_r = options === null || options === void 0 ? void 0 : options.valueMode) !== null && _r !== void 0 ? _r : _this.valueModeProperty;
181
182
  return _this;
182
183
  }
183
184
  /**
@@ -133,11 +133,15 @@ var SciChartSurfaceBase = /** @class */ (function (_super) {
133
133
  if (process.env.NODE_ENV !== "production") {
134
134
  if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {
135
135
  var rootContainer = document.body;
136
+ var wasAttached_1 = false;
136
137
  var observer_1 = new MutationObserver(function () {
137
138
  var isInDom = _this.domChartRoot.isConnected;
138
- if (!isInDom && !_this.isDeleted) {
139
+ if (wasAttached_1 && !isInDom && !_this.isDeleted) {
139
140
  console.warn("The chart root element \"".concat(_this.domChartRoot.id, "\" was detached before the surface ").concat(_this.id, " was properly disposed! Make sure to call \"delete\" method on the surface when it is not longer needed."));
140
141
  }
142
+ if (isInDom) {
143
+ wasAttached_1 = true;
144
+ }
141
145
  });
142
146
  observer_1.observe(rootContainer, { childList: true, subtree: true });
143
147
  _this.addDeletable({
@@ -224,7 +224,7 @@ export declare abstract class AxisBase3D extends AxisCore implements IThemeable
224
224
  /**
225
225
  * gets the axis size from the WorldDimensions, depending on whether it is an X,Y or ZAxis
226
226
  */
227
- protected getAxisSize(): number;
227
+ getAxisSize(): number;
228
228
  /**
229
229
  * Given an array of numeric values for axis labels, returns a list of strings. Uses {@link labelProvider} property to format labels
230
230
  * @param majorTicks The major tick values as numbers to be converted to labels
@@ -1,4 +1,4 @@
1
1
  import { TSciChart } from "../types/TSciChart";
2
2
  import { TSciChart3D } from "../types/TSciChart3D";
3
- export declare const libraryVersion = "3.2.491";
3
+ export declare const libraryVersion = "3.2.509";
4
4
  export declare const checkBuildStamp: (wasmContext: TSciChart | TSciChart3D) => boolean;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkBuildStamp = exports.libraryVersion = void 0;
4
- var buildStamp = "2023-10-18T00:00:00";
4
+ var buildStamp = "2023-11-07T00:00:00";
5
5
  var result;
6
6
  // tslint:disable-next-line:no-var-requires
7
- exports.libraryVersion = "3.2.491";
7
+ exports.libraryVersion = "3.2.509";
8
8
  var checkBuildStamp = function (wasmContext) {
9
9
  if (result !== undefined)
10
10
  return result;
package/README.md CHANGED
@@ -9,7 +9,12 @@ which WebGL and WebAssembly to achieve incredible real-time and big-data perform
9
9
 
10
10
  [![SciChart.js 2D 3D chart types](https://www.scichart.com/wp-content/uploads/2022/12/sc-home-collage.png)](https://www.scichart.com/javascript-chart-features)
11
11
 
12
- SciChart.JS v3 is released! Check out [what's new](https://www.scichart.com/scichart-js-v3-0-released). There should not be any breaking changes.
12
+ SciChart.JS v3.2 is released! Check out
13
+
14
+ - [Latest Changes](https://www.scichart.com/cbxchangelog/scichart-js-changelog/)
15
+ - [v3.2 Release notes](https://www.scichart.com/scichart-js-v3-2-released/)
16
+ - [v3.1 Release notes](https://www.scichart.com/scichart-js-v3-1-released/)
17
+ - [v3.0 Release notes](https://www.scichart.com/scichart-js-v3-0-released) There should not be any breaking changes from v2.
13
18
 
14
19
  ## License
15
20