scichart 2.0.2127 → 2.0.2146

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 (89) hide show
  1. package/Builder/buildSeries.d.ts +1 -1
  2. package/Charting/ChartModifiers/LegendModifier.js +1 -0
  3. package/Charting/ChartModifiers/OverviewRangeSelectionModifier.d.ts +7 -2
  4. package/Charting/ChartModifiers/OverviewRangeSelectionModifier.js +18 -2
  5. package/Charting/ChartModifiers/RolloverModifier.d.ts +6 -0
  6. package/Charting/ChartModifiers/RolloverModifier.js +49 -15
  7. package/Charting/Model/BaseDataSeries.d.ts +2 -2
  8. package/Charting/Model/OhlcDataSeries.d.ts +2 -2
  9. package/Charting/Model/XyyDataSeries.d.ts +2 -2
  10. package/Charting/Model/XyzDataSeries.d.ts +2 -2
  11. package/Charting/Services/SciChartRenderer.d.ts +1 -0
  12. package/Charting/Services/SciChartRenderer.js +22 -6
  13. package/Charting/Visuals/Axis/AxisBase2D.d.ts +75 -52
  14. package/Charting/Visuals/Axis/AxisBase2D.js +53 -34
  15. package/Charting/Visuals/Axis/AxisCore.d.ts +7 -4
  16. package/Charting/Visuals/Axis/AxisCore.js +21 -5
  17. package/Charting/Visuals/Axis/AxisRenderer.d.ts +5 -0
  18. package/Charting/Visuals/Axis/AxisRenderer.js +58 -71
  19. package/Charting/Visuals/Axis/LogarithmicAxis.d.ts +1 -3
  20. package/Charting/Visuals/Axis/LogarithmicAxis.js +4 -11
  21. package/Charting/Visuals/RenderableSeries/Animations/BandAnimation.d.ts +2 -2
  22. package/Charting/Visuals/RenderableSeries/Animations/BandAnimation.js +2 -2
  23. package/Charting/Visuals/RenderableSeries/Animations/BubbleAnimation.d.ts +2 -2
  24. package/Charting/Visuals/RenderableSeries/Animations/BubbleAnimation.js +2 -2
  25. package/Charting/Visuals/RenderableSeries/Animations/CandlestickAnimation.d.ts +1 -1
  26. package/Charting/Visuals/RenderableSeries/Animations/ColumnAnimation.d.ts +2 -2
  27. package/Charting/Visuals/RenderableSeries/Animations/ColumnAnimation.js +2 -2
  28. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.d.ts +2 -2
  29. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.js +2 -2
  30. package/Charting/Visuals/RenderableSeries/Animations/LineAnimation.d.ts +2 -2
  31. package/Charting/Visuals/RenderableSeries/Animations/LineAnimation.js +2 -2
  32. package/Charting/Visuals/RenderableSeries/Animations/MountainAnimation.d.ts +2 -2
  33. package/Charting/Visuals/RenderableSeries/Animations/MountainAnimation.js +2 -2
  34. package/Charting/Visuals/RenderableSeries/Animations/OhlcAnimation.d.ts +2 -2
  35. package/Charting/Visuals/RenderableSeries/Animations/OhlcAnimation.js +2 -2
  36. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.d.ts +2 -2
  37. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.js +2 -2
  38. package/Charting/Visuals/RenderableSeries/Animations/ScatterAnimation.d.ts +2 -2
  39. package/Charting/Visuals/RenderableSeries/Animations/ScatterAnimation.js +2 -2
  40. package/Charting/Visuals/RenderableSeries/Animations/{BaseAnimation.d.ts → SeriesAnimation.d.ts} +3 -2
  41. package/Charting/Visuals/RenderableSeries/Animations/{BaseAnimation.js → SeriesAnimation.js} +13 -13
  42. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.d.ts +2 -2
  43. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.js +2 -2
  44. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.d.ts +2 -2
  45. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.js +2 -2
  46. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +8 -8
  47. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +9 -9
  48. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +3 -3
  49. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +7 -7
  50. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +1 -1
  51. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.d.ts +7 -7
  52. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +1 -1
  53. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +2 -2
  54. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +3 -3
  55. package/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.d.ts +5 -0
  56. package/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.js +29 -5
  57. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.d.ts +4 -4
  58. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +4 -4
  59. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.d.ts +4 -4
  60. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.d.ts +1 -0
  61. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +1 -0
  62. package/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.d.ts +1 -0
  63. package/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.js +1 -0
  64. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +1 -0
  65. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +1 -0
  66. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.d.ts +1 -0
  67. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.js +1 -0
  68. package/Charting/Visuals/SciChartOverview.d.ts +5 -2
  69. package/Charting/Visuals/SciChartOverview.js +24 -15
  70. package/Charting/Visuals/SciChartSurface.d.ts +13 -0
  71. package/Charting/Visuals/SciChartSurface.js +38 -3
  72. package/Charting3D/Visuals/SciChart3DRenderer.js +1 -0
  73. package/Core/Animations/AnimationFiniteStateMachine.d.ts +27 -14
  74. package/Core/Animations/AnimationFiniteStateMachine.js +48 -15
  75. package/Core/Animations/Animator.d.ts +1 -9
  76. package/Core/Animations/Animator.js +1 -9
  77. package/Core/Animations/DoubleAnimator.d.ts +2 -8
  78. package/Core/Animations/DoubleAnimator.js +1 -7
  79. package/Core/Animations/GenericAnimation.d.ts +74 -0
  80. package/Core/Animations/GenericAnimation.js +74 -0
  81. package/Core/Animations/NumberRangeAnimator.d.ts +4 -3
  82. package/Core/Animations/NumberRangeAnimator.js +23 -3
  83. package/Core/NumberRange.js +6 -7
  84. package/_wasm/scichart.browser.js +1 -1
  85. package/_wasm/scichart2d.js +1 -1
  86. package/_wasm/scichart2d.wasm +0 -0
  87. package/_wasm/scichart3d.js +1 -1
  88. package/_wasm/scichart3d.wasm +0 -0
  89. package/package.json +2 -2
@@ -32,6 +32,7 @@ var NumberRange_1 = require("../../../Core/NumberRange");
32
32
  var Thickness_1 = require("../../../Core/Thickness");
33
33
  var AxisAlignment_1 = require("../../../types/AxisAlignment");
34
34
  var BaseType_1 = require("../../../types/BaseType");
35
+ var LabelAlignment_1 = require("../../../types/LabelAlignment");
35
36
  var RenderLayer_1 = require("../../../types/RenderLayer");
36
37
  var XyDirection_1 = require("../../../types/XyDirection");
37
38
  var parseColor_1 = require("../../../utils/parseColor");
@@ -48,7 +49,6 @@ var AxisLayoutState_1 = require("./AxisLayoutState");
48
49
  var AxisRenderer_1 = require("./AxisRenderer");
49
50
  var AxisTitleRenderer_1 = require("./AxisTitleRenderer");
50
51
  var constants_1 = require("./constants");
51
- var LabelAlignment_1 = require("../../../types/LabelAlignment");
52
52
  /**
53
53
  * Defines the clipping mode for scrolling operations found on {@link AxisBase2D.scroll}
54
54
  */
@@ -149,6 +149,7 @@ var AxisBase2D = /** @class */ (function (_super) {
149
149
  options.labelProvider = classFactory_1.createType(BaseType_1.EBaseType.LabelProvider, options.labelProvider.type, webAssemblyContext, options.labelProvider.options);
150
150
  }
151
151
  }
152
+ _this.autoRangeAnimationProperty = options === null || options === void 0 ? void 0 : options.autoRangeAnimation;
152
153
  return _this;
153
154
  }
154
155
  Object.defineProperty(AxisBase2D.prototype, "labelProvider", {
@@ -168,38 +169,6 @@ var AxisBase2D = /** @class */ (function (_super) {
168
169
  enumerable: false,
169
170
  configurable: true
170
171
  });
171
- /**
172
- * @inheritDoc
173
- */
174
- AxisBase2D.prototype.applyTheme = function (themeProvider) {
175
- var previousThemeProvider = this.parentSurface.previousThemeProvider;
176
- if (this.axisBandsFill === previousThemeProvider.axisBandsFill) {
177
- this.axisBandsFill = themeProvider.axisBandsFill;
178
- }
179
- if (this.labelStyle.color === previousThemeProvider.tickTextBrush) {
180
- this.labelStyle = { color: themeProvider.tickTextBrush };
181
- }
182
- if (this.minorGridLineStyle.color === previousThemeProvider.minorGridLineBrush) {
183
- this.minorGridLineStyle = { color: themeProvider.minorGridLineBrush };
184
- }
185
- if (this.majorGridLineStyle.color === previousThemeProvider.majorGridLineBrush) {
186
- this.majorGridLineStyle = { color: themeProvider.majorGridLineBrush };
187
- }
188
- if (this.minorTickLineStyle.color === previousThemeProvider.minorGridLineBrush) {
189
- this.minorTickLineStyle = { color: themeProvider.minorGridLineBrush };
190
- }
191
- if (this.majorTickLineStyle.color === previousThemeProvider.majorGridLineBrush) {
192
- this.majorTickLineStyle = { color: themeProvider.majorGridLineBrush };
193
- }
194
- if (this.axisTitleStyle.color === previousThemeProvider.axisTitleColor) {
195
- this.axisTitleStyle = { color: themeProvider.axisTitleColor };
196
- }
197
- };
198
- AxisBase2D.prototype.onAttach = function (parentSurface, isXAxis, isPrimaryAxis) {
199
- this.parentSurface = parentSurface;
200
- this.setIsXAxis(isXAxis);
201
- this.isPrimaryAxisProperty = isPrimaryAxis;
202
- };
203
172
  Object.defineProperty(AxisBase2D.prototype, "axisRenderer", {
204
173
  /**
205
174
  * Gets the {@link AxisRenderer} instance responsible for drawing the axis
@@ -469,6 +438,55 @@ var AxisBase2D = /** @class */ (function (_super) {
469
438
  enumerable: false,
470
439
  configurable: true
471
440
  });
441
+ Object.defineProperty(AxisBase2D.prototype, "autoRangeAnimation", {
442
+ /**
443
+ * Gets or sets a {@link IAutoRangeAnimationOptions} object that controls if and how the visible range is animated during autoRanging
444
+ */
445
+ get: function () {
446
+ return this.autoRangeAnimationProperty;
447
+ },
448
+ /**
449
+ * Gets or sets a {@link IAutoRangeAnimationOptions} object that controls if and how the visible range is animated during autoRanging
450
+ */
451
+ set: function (autoRangeAnimation) {
452
+ this.autoRangeAnimationProperty = __assign(__assign({}, this.autoRangeAnimation), autoRangeAnimation);
453
+ // No need to trigger a redraw. This will take effect anyway if the chart redraws.
454
+ },
455
+ enumerable: false,
456
+ configurable: true
457
+ });
458
+ /**
459
+ * @inheritDoc
460
+ */
461
+ AxisBase2D.prototype.applyTheme = function (themeProvider) {
462
+ var previousThemeProvider = this.parentSurface.previousThemeProvider;
463
+ if (this.axisBandsFill === previousThemeProvider.axisBandsFill) {
464
+ this.axisBandsFill = themeProvider.axisBandsFill;
465
+ }
466
+ if (this.labelStyle.color === previousThemeProvider.tickTextBrush) {
467
+ this.labelStyle = { color: themeProvider.tickTextBrush };
468
+ }
469
+ if (this.minorGridLineStyle.color === previousThemeProvider.minorGridLineBrush) {
470
+ this.minorGridLineStyle = { color: themeProvider.minorGridLineBrush };
471
+ }
472
+ if (this.majorGridLineStyle.color === previousThemeProvider.majorGridLineBrush) {
473
+ this.majorGridLineStyle = { color: themeProvider.majorGridLineBrush };
474
+ }
475
+ if (this.minorTickLineStyle.color === previousThemeProvider.minorGridLineBrush) {
476
+ this.minorTickLineStyle = { color: themeProvider.minorGridLineBrush };
477
+ }
478
+ if (this.majorTickLineStyle.color === previousThemeProvider.majorGridLineBrush) {
479
+ this.majorTickLineStyle = { color: themeProvider.majorGridLineBrush };
480
+ }
481
+ if (this.axisTitleStyle.color === previousThemeProvider.axisTitleColor) {
482
+ this.axisTitleStyle = { color: themeProvider.axisTitleColor };
483
+ }
484
+ };
485
+ AxisBase2D.prototype.onAttach = function (parentSurface, isXAxis, isPrimaryAxis) {
486
+ this.parentSurface = parentSurface;
487
+ this.setIsXAxis(isXAxis);
488
+ this.isPrimaryAxisProperty = isPrimaryAxis;
489
+ };
472
490
  /**
473
491
  * Called internally - measures the axis as part of the layout phase
474
492
  */
@@ -491,6 +509,7 @@ var AxisBase2D = /** @class */ (function (_super) {
491
509
  this.axisTitleRenderer.desiredHeight = 0;
492
510
  this.axisTitleRenderer.desiredWidth = 0;
493
511
  }
512
+ this.isMeasured = true;
494
513
  };
495
514
  /**
496
515
  * Called internally - prepares render data before a draw operation
@@ -694,7 +713,7 @@ var AxisBase2D = /** @class */ (function (_super) {
694
713
  var toValue = coordCalc.getDataValue(toCoord);
695
714
  var min = fromValue < toValue ? fromValue : toValue;
696
715
  var max = fromValue < toValue ? toValue : fromValue;
697
- this.animateVisibleRange(new NumberRange_1.NumberRange(min, max), duration, easingFunction);
716
+ this.parentSurface.addAnimation(this.animateVisibleRange(new NumberRange_1.NumberRange(min, max), duration, easingFunction));
698
717
  };
699
718
  AxisBase2D.prototype.scale = function (initialRange, delta, isMoreThanHalf) {
700
719
  var deltaRange = initialRange.max - initialRange.min;
@@ -1,16 +1,16 @@
1
1
  import { TEasingFn } from "../../../Core/Animations/EasingFunctions";
2
- import { AnimationToken } from "../../../Core/AnimationToken";
2
+ import { IGenericAnimation } from "../../../Core/Animations/GenericAnimation";
3
3
  import { EventHandler } from "../../../Core/EventHandler";
4
4
  import { IDeletable } from "../../../Core/IDeletable";
5
5
  import { NumberRange } from "../../../Core/NumberRange";
6
6
  import { Thickness } from "../../../Core/Thickness";
7
7
  import { EAutoRange } from "../../../types/AutoRange";
8
8
  import { EAxisType } from "../../../types/AxisType";
9
+ import { ELabelAlignment } from "../../../types/LabelAlignment";
9
10
  import { CoordinateCalculatorBase } from "../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
10
11
  import { TickCoordinatesProvider } from "../../Numerics/TickCoordinateProviders/TickCoordinatesProvider";
11
12
  import { TickProvider } from "../../Numerics/TickProviders/TickProvider";
12
13
  import { DeltaCalculator } from "./DeltaCalculator/DeltaCalculator";
13
- import { ELabelAlignment } from "../../../types/LabelAlignment";
14
14
  import { IAxisCoreOptions } from "./IAxisCoreOptions";
15
15
  import { LabelProvider } from "./LabelProvider/LabelProvider";
16
16
  import { VisibleRangeChangedArgs } from "./VisibleRangeChangedArgs";
@@ -136,6 +136,8 @@ export declare abstract class AxisCore implements IAxisParams, IDeletable {
136
136
  * @desc
137
137
  */
138
138
  visibleRangeChanged: EventHandler<VisibleRangeChangedArgs>;
139
+ /** A flag to indicate if measure has been called this frame. Properties updated after measure must trigger a redraw */
140
+ isMeasured: boolean;
139
141
  /**
140
142
  * Internal backing property for {@link AxisCore.id}. To fire {@link AxisCore.invalidateParentCallback}, set the public property
141
143
  */
@@ -271,7 +273,7 @@ export declare abstract class AxisCore implements IAxisParams, IDeletable {
271
273
  * Internal backing property for {@link AxisCore.maxAutoTicks}. To fire {@link AxisCore.invalidateParentCallback}, set the public property
272
274
  */
273
275
  protected maxAutoTicksProperty: number;
274
- protected visibleRangeAnimationToken: AnimationToken;
276
+ protected visibleRangeAnimationToken: IGenericAnimation;
275
277
  protected readonly defaultVisibleRange: NumberRange;
276
278
  /**
277
279
  * Creates an instance of an {@link AxisCore}
@@ -396,6 +398,7 @@ export declare abstract class AxisCore implements IAxisParams, IDeletable {
396
398
  * for {@link CategoryAxis} types.
397
399
  */
398
400
  set visibleRange(visibleRange: NumberRange);
401
+ get animatedVisibleRange(): NumberRange;
399
402
  /**
400
403
  * Sets and animates the visibleRange of the axis from the current value to the provided value over the duration and with
401
404
  * {@link TEasingFn | Easing Function} provided
@@ -404,7 +407,7 @@ export declare abstract class AxisCore implements IAxisParams, IDeletable {
404
407
  * @param easingFunction the {@link TEasingFn | Easing Function to use}. Default value is outCubic
405
408
  * @param onCompleted the callback function
406
409
  */
407
- animateVisibleRange(visibleRange: NumberRange, durationMs: number, easingFunction?: TEasingFn, onCompleted?: () => void): AnimationToken;
410
+ animateVisibleRange(visibleRange: NumberRange, durationMs: number, easingFunction?: TEasingFn, onCompleted?: () => void): IGenericAnimation;
408
411
  /**
409
412
  * The MajorDelta is the spacing between major gridlines and axis labels.
410
413
  * @remarks
@@ -20,11 +20,11 @@ var Guard_1 = require("../../../Core/Guard");
20
20
  var NumberRange_1 = require("../../../Core/NumberRange");
21
21
  var Thickness_1 = require("../../../Core/Thickness");
22
22
  var AutoRange_1 = require("../../../types/AutoRange");
23
+ var LabelAlignment_1 = require("../../../types/LabelAlignment");
23
24
  var isRealNumber_1 = require("../../../utils/isRealNumber");
24
25
  var SciChartSurfaceBase_1 = require("../SciChartSurfaceBase");
25
26
  var DpiHelper_1 = require("../TextureManager/DpiHelper");
26
27
  var constants_1 = require("./constants");
27
- var LabelAlignment_1 = require("../../../types/LabelAlignment");
28
28
  var VisibleRangeChangedArgs_1 = require("./VisibleRangeChangedArgs");
29
29
  /** @ignore */
30
30
  var ZeroRangeGrowBy = 0.01;
@@ -52,6 +52,8 @@ var AxisCore = /** @class */ (function () {
52
52
  * @desc
53
53
  */
54
54
  this.visibleRangeChanged = new EventHandler_1.EventHandler();
55
+ /** A flag to indicate if measure has been called this frame. Properties updated after measure must trigger a redraw */
56
+ this.isMeasured = false;
55
57
  /**
56
58
  * Internal backing property for {@link AxisCore.id}. To fire {@link AxisCore.invalidateParentCallback}, set the public property
57
59
  */
@@ -364,6 +366,17 @@ var AxisCore = /** @class */ (function () {
364
366
  enumerable: false,
365
367
  configurable: true
366
368
  });
369
+ Object.defineProperty(AxisCore.prototype, "animatedVisibleRange", {
370
+ get: function () {
371
+ if (!this.visibleRangeAnimationToken) {
372
+ return this.visibleRange;
373
+ }
374
+ var animation = this.visibleRangeAnimationToken;
375
+ return animation.to;
376
+ },
377
+ enumerable: false,
378
+ configurable: true
379
+ });
367
380
  /**
368
381
  * Sets and animates the visibleRange of the axis from the current value to the provided value over the duration and with
369
382
  * {@link TEasingFn | Easing Function} provided
@@ -383,10 +396,13 @@ var AxisCore = /** @class */ (function () {
383
396
  onCompleted();
384
397
  return undefined;
385
398
  }
386
- (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancelAnimation();
399
+ (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancel();
387
400
  this.visibleRangeAnimationToken = NumberRangeAnimator_1.NumberRangeAnimator.animate(this.visibleRange, visibleRange, durationMs, function (range) {
388
- _this.visibleRange = range;
389
- }, onCompleted, easingFunction);
401
+ _this.visibleRangeProperty = range;
402
+ }, function () {
403
+ _this.visibleRangeAnimationToken = undefined;
404
+ onCompleted();
405
+ }, easingFunction);
390
406
  return this.visibleRangeAnimationToken;
391
407
  };
392
408
  Object.defineProperty(AxisCore.prototype, "majorDelta", {
@@ -1012,7 +1028,7 @@ var AxisCore = /** @class */ (function () {
1012
1028
  if (propertyName === constants_1.PROPERTY.TICK_COORDINATES_CALCULATOR) {
1013
1029
  (_d = this.tickCoordinatesProvider) === null || _d === void 0 ? void 0 : _d.attachedToAxis(this);
1014
1030
  }
1015
- if (this.invalidateParentCallback) {
1031
+ if (this.isMeasured && this.invalidateParentCallback) {
1016
1032
  this.invalidateParentCallback();
1017
1033
  }
1018
1034
  };
@@ -56,3 +56,8 @@ export declare class AxisRenderer implements IDeletable {
56
56
  protected invalidateParent(): void;
57
57
  private drawLabelViewRects;
58
58
  }
59
+ /** @ignore */
60
+ export declare const layoutLabelsHelper: (keepLabelsWithinAxis: boolean, hideOverlappingLabels: boolean, size: number, tickCoords: number[], labelSizes: number[], isFlippedCoordinates: boolean) => {
61
+ labelCoords: number[];
62
+ labelIndexes: number[];
63
+ };
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.AxisRenderer = void 0;
14
+ exports.layoutLabelsHelper = exports.AxisRenderer = void 0;
15
15
  var app_1 = require("../../../constants/app");
16
16
  var Deleter_1 = require("../../../Core/Deleter");
17
17
  var Rect_1 = require("../../../Core/Rect");
@@ -240,76 +240,7 @@ var AxisRenderer = /** @class */ (function () {
240
240
  return xCoord;
241
241
  };
242
242
  AxisRenderer.prototype.layoutLabels = function (size, tickCoords, labelSizes, isFlippedCoordinates, padBefore, padAfter) {
243
- var labelSpacing = 0;
244
- var labelCoords = [];
245
- var labelIndexes = [];
246
- var lastLabelEnd = 0;
247
- for (var tickIndex = 0; tickIndex < labelSizes.length; tickIndex++) {
248
- var isFirstTick = tickIndex === 0;
249
- var isLastTick = tickIndex === labelSizes.length - 1;
250
- var labelSize = labelSizes[tickIndex];
251
- var centerDelta = Math.ceil(labelSize / 2);
252
- var coord = tickCoords[tickIndex];
253
- var labelEnd = 0;
254
- if (this.keepLabelsWithinAxis && isFirstTick) {
255
- if (isFlippedCoordinates) {
256
- if (coord + centerDelta < size) {
257
- labelEnd = coord - centerDelta;
258
- coord = coord - centerDelta;
259
- }
260
- else {
261
- coord = size - labelSize;
262
- labelEnd = coord;
263
- }
264
- }
265
- else {
266
- if (coord > centerDelta) {
267
- labelEnd = coord + centerDelta;
268
- coord = coord - centerDelta;
269
- }
270
- else {
271
- coord = 0;
272
- labelEnd = coord + labelSize;
273
- }
274
- }
275
- var nextCoord = tickCoords[1];
276
- var nextCenterDelta = labelSizes[1] / 2;
277
- if (this.hideOverlappingLabels) {
278
- // Skip first if it would overlap with next
279
- if (isFlippedCoordinates && labelEnd <= nextCoord + nextCenterDelta + labelSpacing) {
280
- continue;
281
- }
282
- else if (!isFlippedCoordinates && labelEnd >= nextCoord - nextCenterDelta - labelSpacing) {
283
- continue;
284
- }
285
- }
286
- }
287
- else if (this.keepLabelsWithinAxis && isLastTick) {
288
- if (isFlippedCoordinates) {
289
- coord = coord - centerDelta > 0 ? coord - centerDelta : 0;
290
- }
291
- else {
292
- coord = coord + centerDelta < size ? coord - centerDelta : size - labelSize;
293
- }
294
- }
295
- else {
296
- labelEnd = coord + centerDelta;
297
- coord -= centerDelta;
298
- }
299
- if (this.hideOverlappingLabels) {
300
- // If this label will overlap the previous, skip it.
301
- if (isFlippedCoordinates && tickIndex > 0 && labelEnd > lastLabelEnd - labelSpacing) {
302
- continue;
303
- }
304
- else if (!isFlippedCoordinates && tickIndex > 0 && coord < lastLabelEnd + labelSpacing) {
305
- continue;
306
- }
307
- }
308
- lastLabelEnd = labelEnd;
309
- labelCoords.push(coord);
310
- labelIndexes.push(tickIndex);
311
- }
312
- return { labelCoords: labelCoords, labelIndexes: labelIndexes };
243
+ return exports.layoutLabelsHelper(this.keepLabelsWithinAxis, this.hideOverlappingLabels, size, tickCoords, labelSizes, isFlippedCoordinates);
313
244
  };
314
245
  AxisRenderer.prototype.drawTicks = function (renderContext, axisAlignment, isInnerAxis, tickCoords, axisOffset, pen, tickStyle) {
315
246
  var _this = this;
@@ -422,3 +353,59 @@ var AxisRenderer = /** @class */ (function () {
422
353
  return AxisRenderer;
423
354
  }());
424
355
  exports.AxisRenderer = AxisRenderer;
356
+ /** @ignore */
357
+ exports.layoutLabelsHelper = function (keepLabelsWithinAxis, hideOverlappingLabels, size, tickCoords, labelSizes, isFlippedCoordinates) {
358
+ var labelSpacing = 0;
359
+ var labelCoords = [];
360
+ var labelIndexes = [];
361
+ var length = labelSizes.length;
362
+ var getTickCoord = function (i) { return (isFlippedCoordinates ? tickCoords[length - 1 - i] : tickCoords[i]); };
363
+ var getlabelSize = function (i) { return (isFlippedCoordinates ? labelSizes[length - 1 - i] : labelSizes[i]); };
364
+ var pushLabelIndex = function (i) {
365
+ return isFlippedCoordinates ? labelIndexes.push(length - 1 - i) : labelIndexes.push(i);
366
+ };
367
+ var lastLabelEnd = 0;
368
+ for (var tickIndex = 0; tickIndex < length; tickIndex++) {
369
+ var isFirstTick = tickIndex === 0;
370
+ var isLastTick = tickIndex === length - 1;
371
+ var labelSize = getlabelSize(tickIndex);
372
+ var centerDelta = Math.ceil(labelSize / 2);
373
+ var coord = getTickCoord(tickIndex);
374
+ var labelEnd = 0;
375
+ if (keepLabelsWithinAxis && isFirstTick) {
376
+ if (coord > centerDelta) {
377
+ labelEnd = coord + centerDelta;
378
+ coord = coord - centerDelta;
379
+ }
380
+ else {
381
+ coord = 0;
382
+ labelEnd = coord + labelSize;
383
+ }
384
+ var nextCoord = getTickCoord(1);
385
+ var nextCenterDelta = getlabelSize(1) / 2;
386
+ if (hideOverlappingLabels) {
387
+ // Skip first if it would overlap with next
388
+ if (labelEnd >= nextCoord - nextCenterDelta - labelSpacing) {
389
+ continue;
390
+ }
391
+ }
392
+ }
393
+ else if (keepLabelsWithinAxis && isLastTick) {
394
+ coord = coord + centerDelta < size ? coord - centerDelta : size - labelSize;
395
+ }
396
+ else {
397
+ labelEnd = coord + centerDelta;
398
+ coord -= centerDelta;
399
+ }
400
+ if (hideOverlappingLabels) {
401
+ // If this label will overlap the previous, skip it.
402
+ if (tickIndex > 0 && coord < lastLabelEnd + labelSpacing) {
403
+ continue;
404
+ }
405
+ }
406
+ lastLabelEnd = labelEnd;
407
+ labelCoords.push(coord);
408
+ pushLabelIndex(tickIndex);
409
+ }
410
+ return { labelCoords: labelCoords, labelIndexes: labelIndexes };
411
+ };
@@ -1,5 +1,4 @@
1
1
  import { TEasingFn } from "../../../Core/Animations/EasingFunctions";
2
- import { AnimationToken } from "../../../Core/AnimationToken";
3
2
  import { Dictionary } from "../../../Core/Dictionary";
4
3
  import { NumberRange } from "../../../Core/NumberRange";
5
4
  import { EAxisType } from "../../../types/AxisType";
@@ -96,12 +95,11 @@ export declare class LogarithmicAxis extends AxisBase2D {
96
95
  /**
97
96
  * @inheritdoc
98
97
  */
99
- animateVisibleRange(visibleRange: NumberRange, durationMs: number, easingFunction?: TEasingFn, onCompleted?: () => void): AnimationToken;
98
+ animateVisibleRange(visibleRange: NumberRange, durationMs: number, easingFunction?: TEasingFn, onCompleted?: () => void): import("../../../Core/Animations/GenericAnimation").IGenericAnimation;
100
99
  scale(initialRange: NumberRange, delta: number, isMoreThanHalf: boolean): void;
101
100
  toJSON(): import("../../../Builder/buildAxis").TAxisDefinition;
102
101
  protected getCurrentCoordinateCalculatorInternal(): CoordinateCalculatorBase;
103
102
  protected getMaxXRange(): NumberRange;
104
103
  private get logTickProvider();
105
104
  private updateLogarithmicBase;
106
- private interpolateLog;
107
105
  }
@@ -14,8 +14,8 @@ var __extends = (this && this.__extends) || (function () {
14
14
  })();
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.LogarithmicAxis = void 0;
17
- var Animator_1 = require("../../../Core/Animations/Animator");
18
17
  var EasingFunctions_1 = require("../../../Core/Animations/EasingFunctions");
18
+ var NumberRangeAnimator_1 = require("../../../Core/Animations/NumberRangeAnimator");
19
19
  var NumberRange_1 = require("../../../Core/NumberRange");
20
20
  var AxisType_1 = require("../../../types/AxisType");
21
21
  var XyDirection_1 = require("../../../types/XyDirection");
@@ -38,7 +38,6 @@ var LogarithmicAxis = /** @class */ (function (_super) {
38
38
  var _this = _super.call(this, wasmContext, options) || this;
39
39
  _this.type = AxisType_1.EAxisType.LogarithmicAxis;
40
40
  _this.logBaseProperty = 10;
41
- _this.interpolateLog = _this.interpolateLog.bind(_this);
42
41
  _this.tickProvider = new LogarithmicTickProvider_1.LogarithmicTickProvider(wasmContext);
43
42
  _this.deltaCalculator = new LogarithmicDeltaCalculator_1.LogarithmicDeltaCalculator(wasmContext);
44
43
  _this.labelProvider = (_a = options === null || options === void 0 ? void 0 : options.labelProvider) !== null && _a !== void 0 ? _a : new LogarithmicLabelProvider_1.LogarithmicLabelProvider(options);
@@ -228,10 +227,10 @@ var LogarithmicAxis = /** @class */ (function (_super) {
228
227
  onCompleted();
229
228
  return undefined;
230
229
  }
231
- (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancelAnimation();
232
- this.visibleRangeAnimationToken = Animator_1.animateAny(durationMs, this.visibleRange, visibleRange, function (range) {
230
+ (_a = this.visibleRangeAnimationToken) === null || _a === void 0 ? void 0 : _a.cancel();
231
+ this.visibleRangeAnimationToken = NumberRangeAnimator_1.NumberRangeAnimator.animate(this.visibleRange, visibleRange, durationMs, function (range) {
233
232
  _this.visibleRange = range;
234
- }, this.interpolateLog, onCompleted, easingFunction);
233
+ }, onCompleted, easingFunction, true);
235
234
  return this.visibleRangeAnimationToken;
236
235
  };
237
236
  LogarithmicAxis.prototype.scale = function (initialRange, delta, isMoreThanHalf) {
@@ -303,12 +302,6 @@ var LogarithmicAxis = /** @class */ (function (_super) {
303
302
  logLabelProvider.logarithmicBase = logBase;
304
303
  }
305
304
  };
306
- LogarithmicAxis.prototype.interpolateLog = function (from, to, interpolationFactor) {
307
- var newMin = Math.pow(to.min / from.min, interpolationFactor) * from.min;
308
- var newMax = Math.pow(to.max / from.max, interpolationFactor) * from.max;
309
- var result = new NumberRange_1.NumberRange(newMin, newMax);
310
- return result;
311
- };
312
305
  return LogarithmicAxis;
313
306
  }(AxisBase2D_1.AxisBase2D));
314
307
  exports.LogarithmicAxis = LogarithmicAxis;
@@ -2,12 +2,12 @@ import { EAnimationType } from "../../../../types/AnimationType";
2
2
  import { XyyDataSeries } from "../../../Model/XyyDataSeries";
3
3
  import { BaseBandRenderableSeries } from "../BaseBandRenderableSeries";
4
4
  import { BandAnimationStyle, IBandAnimationStyleOptions } from "./BandAnimationStyle";
5
- import { BaseAnimation, IBaseAnimationOptions } from "./BaseAnimation";
5
+ import { SeriesAnimation, IBaseAnimationOptions } from "./SeriesAnimation";
6
6
  export interface IBandAnimationOptions extends IBaseAnimationOptions {
7
7
  styles?: IBandAnimationStyleOptions;
8
8
  dataSeries?: XyyDataSeries;
9
9
  }
10
- export declare class BandAnimation extends BaseAnimation {
10
+ export declare class BandAnimation extends SeriesAnimation {
11
11
  /** @inheritDoc */
12
12
  readonly type = EAnimationType.Style;
13
13
  /** @inheritDoc */
@@ -18,7 +18,7 @@ var AnimationType_1 = require("../../../../types/AnimationType");
18
18
  var parseColor_1 = require("../../../../utils/parseColor");
19
19
  var animationHelpers_1 = require("./animationHelpers");
20
20
  var BandAnimationStyle_1 = require("./BandAnimationStyle");
21
- var BaseAnimation_1 = require("./BaseAnimation");
21
+ var SeriesAnimation_1 = require("./SeriesAnimation");
22
22
  var BandAnimation = /** @class */ (function (_super) {
23
23
  __extends(BandAnimation, _super);
24
24
  function BandAnimation(options) {
@@ -69,5 +69,5 @@ var BandAnimation = /** @class */ (function (_super) {
69
69
  }
70
70
  };
71
71
  return BandAnimation;
72
- }(BaseAnimation_1.BaseAnimation));
72
+ }(SeriesAnimation_1.SeriesAnimation));
73
73
  exports.BandAnimation = BandAnimation;
@@ -1,12 +1,12 @@
1
1
  import { EAnimationType } from "../../../../types/AnimationType";
2
2
  import { XyzDataSeries } from "../../../Model/XyzDataSeries";
3
- import { BaseAnimation, IBaseAnimationOptions } from "./BaseAnimation";
3
+ import { SeriesAnimation, IBaseAnimationOptions } from "./SeriesAnimation";
4
4
  import { IBaseAnimationStyleOptions } from "./BaseAnimationStyle";
5
5
  export interface IBubbleAnimationOptions extends IBaseAnimationOptions {
6
6
  styles?: IBaseAnimationStyleOptions;
7
7
  dataSeries?: XyzDataSeries;
8
8
  }
9
- export declare class BubbleAnimation extends BaseAnimation {
9
+ export declare class BubbleAnimation extends SeriesAnimation {
10
10
  /** @inheritDoc */
11
11
  readonly type = EAnimationType.Style;
12
12
  /** @inheritDoc */
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.BubbleAnimation = void 0;
17
17
  var AnimationType_1 = require("../../../../types/AnimationType");
18
- var BaseAnimation_1 = require("./BaseAnimation");
18
+ var SeriesAnimation_1 = require("./SeriesAnimation");
19
19
  var BaseAnimationStyle_1 = require("./BaseAnimationStyle");
20
20
  var BubbleAnimation = /** @class */ (function (_super) {
21
21
  __extends(BubbleAnimation, _super);
@@ -30,5 +30,5 @@ var BubbleAnimation = /** @class */ (function (_super) {
30
30
  return _this;
31
31
  }
32
32
  return BubbleAnimation;
33
- }(BaseAnimation_1.BaseAnimation));
33
+ }(SeriesAnimation_1.SeriesAnimation));
34
34
  exports.BubbleAnimation = BubbleAnimation;
@@ -1,7 +1,7 @@
1
1
  import { EAnimationType } from "../../../../types/AnimationType";
2
2
  import { OhlcDataSeries } from "../../../Model/OhlcDataSeries";
3
3
  import { FastCandlestickRenderableSeries } from "../FastCandlestickRenderableSeries";
4
- import { IBaseAnimationOptions } from "./BaseAnimation";
4
+ import { IBaseAnimationOptions } from "./SeriesAnimation";
5
5
  import { CandlestickAnimationStyle, ICandlestickAnimationStyleOptions } from "./CandlestickAnimationStyle";
6
6
  import { OhlcAnimation } from "./OhlcAnimation";
7
7
  export interface ICandlestickAnimationOptions extends IBaseAnimationOptions {
@@ -1,13 +1,13 @@
1
1
  import { EAnimationType } from "../../../../types/AnimationType";
2
2
  import { XyDataSeries } from "../../../Model/XyDataSeries";
3
3
  import { FastColumnRenderableSeries } from "../FastColumnRenderableSeries";
4
- import { BaseAnimation, IBaseAnimationOptions } from "./BaseAnimation";
4
+ import { SeriesAnimation, IBaseAnimationOptions } from "./SeriesAnimation";
5
5
  import { ColumnAnimationStyle, IColumnAnimationStyleOptions } from "./ColumnAnimationStyle";
6
6
  export interface IColumnAnimationOptions extends IBaseAnimationOptions {
7
7
  styles?: IColumnAnimationStyleOptions;
8
8
  dataSeries?: XyDataSeries;
9
9
  }
10
- export declare class ColumnAnimation extends BaseAnimation {
10
+ export declare class ColumnAnimation extends SeriesAnimation {
11
11
  /** @inheritDoc */
12
12
  readonly type = EAnimationType.Style;
13
13
  /** @inheritDoc */
@@ -17,7 +17,7 @@ exports.ColumnAnimation = void 0;
17
17
  var AnimationType_1 = require("../../../../types/AnimationType");
18
18
  var parseColor_1 = require("../../../../utils/parseColor");
19
19
  var animationHelpers_1 = require("./animationHelpers");
20
- var BaseAnimation_1 = require("./BaseAnimation");
20
+ var SeriesAnimation_1 = require("./SeriesAnimation");
21
21
  var ColumnAnimationStyle_1 = require("./ColumnAnimationStyle");
22
22
  var PointMarkerStyle_1 = require("./PointMarkerStyle");
23
23
  var ColumnAnimation = /** @class */ (function (_super) {
@@ -66,5 +66,5 @@ var ColumnAnimation = /** @class */ (function (_super) {
66
66
  }
67
67
  };
68
68
  return ColumnAnimation;
69
- }(BaseAnimation_1.BaseAnimation));
69
+ }(SeriesAnimation_1.SeriesAnimation));
70
70
  exports.ColumnAnimation = ColumnAnimation;
@@ -1,9 +1,9 @@
1
1
  import { EAnimationType } from "../../../../types/AnimationType";
2
2
  import { DoubleVector, TSciChart } from "../../../../types/TSciChart";
3
- import { BaseAnimation, IBaseAnimationOptions } from "./BaseAnimation";
3
+ import { SeriesAnimation, IBaseAnimationOptions } from "./SeriesAnimation";
4
4
  export interface IFadeAnimationOptions extends IBaseAnimationOptions {
5
5
  }
6
- export declare class FadeAnimation extends BaseAnimation {
6
+ export declare class FadeAnimation extends SeriesAnimation {
7
7
  /** @inheritDoc */
8
8
  readonly type = EAnimationType.Fade;
9
9
  constructor(options?: IFadeAnimationOptions);
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.FadeAnimation = void 0;
17
17
  var AnimationType_1 = require("../../../../types/AnimationType");
18
- var BaseAnimation_1 = require("./BaseAnimation");
18
+ var SeriesAnimation_1 = require("./SeriesAnimation");
19
19
  var FadeAnimation = /** @class */ (function (_super) {
20
20
  __extends(FadeAnimation, _super);
21
21
  function FadeAnimation(options) {
@@ -32,5 +32,5 @@ var FadeAnimation = /** @class */ (function (_super) {
32
32
  wasmContext.SCRTAnimationHelperFade(originalValues, progress, animationValues);
33
33
  };
34
34
  return FadeAnimation;
35
- }(BaseAnimation_1.BaseAnimation));
35
+ }(SeriesAnimation_1.SeriesAnimation));
36
36
  exports.FadeAnimation = FadeAnimation;
@@ -1,12 +1,12 @@
1
1
  import { EAnimationType } from "../../../../types/AnimationType";
2
2
  import { XyDataSeries } from "../../../Model/XyDataSeries";
3
- import { BaseAnimation, IBaseAnimationOptions } from "./BaseAnimation";
3
+ import { SeriesAnimation, IBaseAnimationOptions } from "./SeriesAnimation";
4
4
  import { IBaseAnimationStyleOptions } from "./BaseAnimationStyle";
5
5
  export interface ILineAnimationOptions extends IBaseAnimationOptions {
6
6
  styles?: IBaseAnimationStyleOptions;
7
7
  dataSeries?: XyDataSeries;
8
8
  }
9
- export declare class LineAnimation extends BaseAnimation {
9
+ export declare class LineAnimation extends SeriesAnimation {
10
10
  /** @inheritDoc */
11
11
  readonly type = EAnimationType.Style;
12
12
  /** @inheritDoc */
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.LineAnimation = void 0;
17
17
  var AnimationType_1 = require("../../../../types/AnimationType");
18
- var BaseAnimation_1 = require("./BaseAnimation");
18
+ var SeriesAnimation_1 = require("./SeriesAnimation");
19
19
  var BaseAnimationStyle_1 = require("./BaseAnimationStyle");
20
20
  var LineAnimation = /** @class */ (function (_super) {
21
21
  __extends(LineAnimation, _super);
@@ -30,5 +30,5 @@ var LineAnimation = /** @class */ (function (_super) {
30
30
  return _this;
31
31
  }
32
32
  return LineAnimation;
33
- }(BaseAnimation_1.BaseAnimation));
33
+ }(SeriesAnimation_1.SeriesAnimation));
34
34
  exports.LineAnimation = LineAnimation;