scichart 2.0.2126 → 2.0.2144

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.js +14 -4
  12. package/Charting/Visuals/Axis/AxisBase2D.d.ts +75 -52
  13. package/Charting/Visuals/Axis/AxisBase2D.js +53 -34
  14. package/Charting/Visuals/Axis/AxisCore.d.ts +7 -4
  15. package/Charting/Visuals/Axis/AxisCore.js +21 -5
  16. package/Charting/Visuals/Axis/AxisRenderer.d.ts +5 -0
  17. package/Charting/Visuals/Axis/AxisRenderer.js +58 -71
  18. package/Charting/Visuals/Axis/LogarithmicAxis.d.ts +1 -3
  19. package/Charting/Visuals/Axis/LogarithmicAxis.js +4 -11
  20. package/Charting/Visuals/RenderableSeries/Animations/BandAnimation.d.ts +2 -2
  21. package/Charting/Visuals/RenderableSeries/Animations/BandAnimation.js +2 -2
  22. package/Charting/Visuals/RenderableSeries/Animations/BubbleAnimation.d.ts +2 -2
  23. package/Charting/Visuals/RenderableSeries/Animations/BubbleAnimation.js +2 -2
  24. package/Charting/Visuals/RenderableSeries/Animations/CandlestickAnimation.d.ts +1 -1
  25. package/Charting/Visuals/RenderableSeries/Animations/ColumnAnimation.d.ts +2 -2
  26. package/Charting/Visuals/RenderableSeries/Animations/ColumnAnimation.js +2 -2
  27. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.d.ts +2 -2
  28. package/Charting/Visuals/RenderableSeries/Animations/FadeAnimation.js +2 -2
  29. package/Charting/Visuals/RenderableSeries/Animations/LineAnimation.d.ts +2 -2
  30. package/Charting/Visuals/RenderableSeries/Animations/LineAnimation.js +2 -2
  31. package/Charting/Visuals/RenderableSeries/Animations/MountainAnimation.d.ts +2 -2
  32. package/Charting/Visuals/RenderableSeries/Animations/MountainAnimation.js +2 -2
  33. package/Charting/Visuals/RenderableSeries/Animations/OhlcAnimation.d.ts +2 -2
  34. package/Charting/Visuals/RenderableSeries/Animations/OhlcAnimation.js +2 -2
  35. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.d.ts +2 -2
  36. package/Charting/Visuals/RenderableSeries/Animations/ScaleAnimation.js +2 -2
  37. package/Charting/Visuals/RenderableSeries/Animations/ScatterAnimation.d.ts +2 -2
  38. package/Charting/Visuals/RenderableSeries/Animations/ScatterAnimation.js +2 -2
  39. package/Charting/Visuals/RenderableSeries/Animations/{BaseAnimation.d.ts → SeriesAnimation.d.ts} +3 -2
  40. package/Charting/Visuals/RenderableSeries/Animations/{BaseAnimation.js → SeriesAnimation.js} +13 -13
  41. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.d.ts +2 -2
  42. package/Charting/Visuals/RenderableSeries/Animations/SweepAnimation.js +2 -2
  43. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.d.ts +2 -2
  44. package/Charting/Visuals/RenderableSeries/Animations/WaveAnimation.js +2 -2
  45. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +8 -8
  46. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +9 -9
  47. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +3 -3
  48. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.d.ts +7 -7
  49. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +1 -1
  50. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.d.ts +7 -7
  51. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +1 -1
  52. package/Charting/Visuals/RenderableSeries/IBaseRenderableSeriesOptions.d.ts +2 -2
  53. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +3 -3
  54. package/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.d.ts +5 -0
  55. package/Charting/Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps.js +29 -5
  56. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.d.ts +4 -4
  57. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.d.ts +4 -4
  58. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.d.ts +4 -4
  59. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.d.ts +1 -0
  60. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +1 -0
  61. package/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.d.ts +1 -0
  62. package/Charting/Visuals/RenderableSeries/StackedColumnRenderableSeries.js +1 -0
  63. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.d.ts +1 -0
  64. package/Charting/Visuals/RenderableSeries/StackedMountainCollection.js +1 -0
  65. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.d.ts +1 -0
  66. package/Charting/Visuals/RenderableSeries/StackedMountainRenderableSeries.js +1 -0
  67. package/Charting/Visuals/SciChartOverview.d.ts +5 -2
  68. package/Charting/Visuals/SciChartOverview.js +24 -15
  69. package/Charting/Visuals/SciChartSurface.d.ts +13 -0
  70. package/Charting/Visuals/SciChartSurface.js +38 -3
  71. package/Charting3D/Visuals/SciChart3DRenderer.js +1 -0
  72. package/Core/Animations/AnimationFiniteStateMachine.d.ts +27 -14
  73. package/Core/Animations/AnimationFiniteStateMachine.js +48 -15
  74. package/Core/Animations/Animator.d.ts +1 -9
  75. package/Core/Animations/Animator.js +1 -9
  76. package/Core/Animations/DoubleAnimator.d.ts +2 -8
  77. package/Core/Animations/DoubleAnimator.js +1 -7
  78. package/Core/Animations/GenericAnimation.d.ts +74 -0
  79. package/Core/Animations/GenericAnimation.js +74 -0
  80. package/Core/Animations/NumberRangeAnimator.d.ts +4 -3
  81. package/Core/Animations/NumberRangeAnimator.js +23 -3
  82. package/Core/NumberRange.js +6 -7
  83. package/README.md +197 -10
  84. package/_wasm/scichart.browser.js +1 -1
  85. package/_wasm/scichart2d.js +95 -95
  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 +4 -3
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenericAnimation = void 0;
4
+ var guid_1 = require("../../utils/guid");
5
+ var AnimationFiniteStateMachine_1 = require("./AnimationFiniteStateMachine");
6
+ var EasingFunctions_1 = require("./EasingFunctions");
7
+ /**
8
+ * @summary Defines Animations that can be applied directly to a {@link SciChartSurface} in SciChart's High Performance Real-time
9
+ * {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
10
+ * @remarks
11
+ * When creating the animation, use the options to specify what to update
12
+ */
13
+ var GenericAnimation = /** @class */ (function () {
14
+ function GenericAnimation(options) {
15
+ var _a, _b, _c, _d;
16
+ /**
17
+ * The animation delay
18
+ */
19
+ this.delay = 0;
20
+ /**
21
+ * The animation duration
22
+ */
23
+ this.duration = 1000;
24
+ /**
25
+ * Sets the animation easing function
26
+ */
27
+ this.ease = EasingFunctions_1.easing.linear;
28
+ this.id = (_a = options === null || options === void 0 ? void 0 : options.id) !== null && _a !== void 0 ? _a : guid_1.generateGuid();
29
+ this.delay = (_b = options === null || options === void 0 ? void 0 : options.delay) !== null && _b !== void 0 ? _b : this.delay;
30
+ this.duration = (_c = options === null || options === void 0 ? void 0 : options.duration) !== null && _c !== void 0 ? _c : this.duration;
31
+ if ((options === null || options === void 0 ? void 0 : options.ease) && typeof options.ease === "string") {
32
+ options.ease = EasingFunctions_1.easing[options.ease];
33
+ }
34
+ this.ease = (_d = options === null || options === void 0 ? void 0 : options.ease) !== null && _d !== void 0 ? _d : this.ease;
35
+ this.from = options.from;
36
+ this.to = options.to;
37
+ this.onAnimate = options.onAnimate;
38
+ this.onCompleted = options === null || options === void 0 ? void 0 : options.onCompleted;
39
+ this.animationFSM = new AnimationFiniteStateMachine_1.AnimationFiniteStateMachine(this);
40
+ }
41
+ Object.defineProperty(GenericAnimation.prototype, "isComplete", {
42
+ get: function () {
43
+ return this.animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Completed]);
44
+ },
45
+ enumerable: false,
46
+ configurable: true
47
+ });
48
+ /** Reset the animation to its initial state.
49
+ * If reset while running or onCompleted, the animation will remain in the list and run again.
50
+ */
51
+ GenericAnimation.prototype.reset = function () {
52
+ this.animationFSM = new AnimationFiniteStateMachine_1.AnimationFiniteStateMachine(this);
53
+ };
54
+ /** Advance the animation according to the time elapsed since the last frame */
55
+ GenericAnimation.prototype.update = function (timeElapsed) {
56
+ var transition = this.animationFSM.update(timeElapsed);
57
+ if ([AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Running, AnimationFiniteStateMachine_1.EAnimationStateTransition.Delayed_Running].includes(transition)) {
58
+ this.onAnimate(this.from, this.to, 0);
59
+ }
60
+ if (this.animationFSM.is([AnimationFiniteStateMachine_1.EAnimationState.Running, AnimationFiniteStateMachine_1.EAnimationState.Completed])) {
61
+ this.onAnimate(this.from, this.to, this.animationFSM.animationProgress);
62
+ }
63
+ if ([AnimationFiniteStateMachine_1.EAnimationStateTransition.Running_Completed, AnimationFiniteStateMachine_1.EAnimationStateTransition.InitialState_Completed].includes(transition)) {
64
+ if (this.onCompleted)
65
+ this.onCompleted();
66
+ }
67
+ };
68
+ /** Cancel the animation. onCompleted will not be called */
69
+ GenericAnimation.prototype.cancel = function () {
70
+ this.animationFSM.toCompleted();
71
+ };
72
+ return GenericAnimation;
73
+ }());
74
+ exports.GenericAnimation = GenericAnimation;
@@ -1,6 +1,6 @@
1
- import { AnimationToken } from "../AnimationToken";
2
1
  import { NumberRange } from "../NumberRange";
3
2
  import { TEasingFn } from "./EasingFunctions";
3
+ import { GenericAnimation } from "./GenericAnimation";
4
4
  /**
5
5
  * A class for animating a value of type {@link NumberRange}. Used throughout SciChart to animate
6
6
  * {@link AxisCore.visibleRange} when zooming or panning.
@@ -15,6 +15,7 @@ export declare class NumberRangeAnimator {
15
15
  * @param onCompleted A callback function which is called when the animation completes
16
16
  * @param easingFunction An optional easing function. See {@link IEasingMap} for a list of values
17
17
  */
18
- static animate(from: NumberRange, to: NumberRange, durationMs: number, onAnimate: (value: NumberRange) => void, onCompleted: () => void, easingFunction?: TEasingFn): AnimationToken;
19
- private static interpolate;
18
+ static animate(from: NumberRange, to: NumberRange, durationMs: number, onAnimate: (value: NumberRange) => void, onCompleted: () => void, easingFunction?: TEasingFn, isLog?: boolean): GenericAnimation<NumberRange>;
19
+ static interpolate(from: NumberRange, to: NumberRange, interpolationFactor: number): NumberRange;
20
+ static interpolateLog(from: NumberRange, to: NumberRange, interpolationFactor: number): NumberRange;
20
21
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NumberRangeAnimator = void 0;
4
4
  var NumberRange_1 = require("../NumberRange");
5
- var Animator_1 = require("./Animator");
6
5
  var EasingFunctions_1 = require("./EasingFunctions");
6
+ var GenericAnimation_1 = require("./GenericAnimation");
7
7
  /**
8
8
  * A class for animating a value of type {@link NumberRange}. Used throughout SciChart to animate
9
9
  * {@link AxisCore.visibleRange} when zooming or panning.
@@ -20,9 +20,23 @@ var NumberRangeAnimator = /** @class */ (function () {
20
20
  * @param onCompleted A callback function which is called when the animation completes
21
21
  * @param easingFunction An optional easing function. See {@link IEasingMap} for a list of values
22
22
  */
23
- NumberRangeAnimator.animate = function (from, to, durationMs, onAnimate, onCompleted, easingFunction) {
23
+ NumberRangeAnimator.animate = function (from, to, durationMs, onAnimate, onCompleted, easingFunction, isLog) {
24
24
  if (easingFunction === void 0) { easingFunction = EasingFunctions_1.easing.outExpo; }
25
- return Animator_1.animateAny(durationMs, from, to, onAnimate, NumberRangeAnimator.interpolate, onCompleted, easingFunction);
25
+ if (isLog === void 0) { isLog = false; }
26
+ var animation = new GenericAnimation_1.GenericAnimation({
27
+ from: from,
28
+ to: to,
29
+ duration: durationMs,
30
+ onAnimate: function (from, to, progress) {
31
+ var interpolate = isLog ? NumberRangeAnimator.interpolateLog : NumberRangeAnimator.interpolate;
32
+ var intermediate = interpolate(from, to, progress);
33
+ onAnimate(intermediate);
34
+ },
35
+ delay: 0,
36
+ ease: easingFunction,
37
+ onCompleted: onCompleted
38
+ });
39
+ return animation;
26
40
  };
27
41
  NumberRangeAnimator.interpolate = function (from, to, interpolationFactor) {
28
42
  var newMin = (to.min - from.min) * interpolationFactor + from.min;
@@ -30,6 +44,12 @@ var NumberRangeAnimator = /** @class */ (function () {
30
44
  var result = new NumberRange_1.NumberRange(newMin, newMax);
31
45
  return result;
32
46
  };
47
+ NumberRangeAnimator.interpolateLog = function (from, to, interpolationFactor) {
48
+ var newMin = Math.pow(to.min / from.min, interpolationFactor) * from.min;
49
+ var newMax = Math.pow(to.max / from.max, interpolationFactor) * from.max;
50
+ var result = new NumberRange_1.NumberRange(newMin, newMax);
51
+ return result;
52
+ };
33
53
  return NumberRangeAnimator;
34
54
  }());
35
55
  exports.NumberRangeAnimator = NumberRangeAnimator;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NumberRange = void 0;
4
- var app_1 = require("../constants/app");
5
4
  var isRealNumber_1 = require("../utils/isRealNumber");
6
5
  var math_1 = require("../utils/math");
7
6
  /**
@@ -57,10 +56,10 @@ var NumberRange = /** @class */ (function () {
57
56
  max = temp;
58
57
  }
59
58
  // If still zero, then expand around the zero line
60
- if (Math.abs(max - min) <= app_1.EPSILON && Math.abs(min) <= app_1.EPSILON) {
61
- min = -1.0;
62
- max = 1.0;
63
- }
59
+ // if (Math.abs(max - min) <= EPSILON && Math.abs(min) <= EPSILON) {
60
+ // min = -1.0;
61
+ // max = 1.0;
62
+ // }
64
63
  return new NumberRange(min, max);
65
64
  };
66
65
  NumberRange.prototype.growByLog = function (range, logBase) {
@@ -69,8 +68,8 @@ var NumberRange = /** @class */ (function () {
69
68
  var minExp = this.min !== 0 ? math_1.logToBase(Math.abs(this.min), logBase) : 0;
70
69
  var maxExp = this.max !== 0 ? math_1.logToBase(Math.abs(this.max), logBase) : 0;
71
70
  var expDiff = maxExp - minExp;
72
- var minExpDelta = Math.abs(expDiff * range.min);
73
- var maxExpDelta = Math.abs(expDiff * range.max);
71
+ var minExpDelta = expDiff * range.min;
72
+ var maxExpDelta = expDiff * range.max;
74
73
  var newMin = mult * (this.min !== 0 ? Math.pow(logBase, minExp - minExpDelta) : 0);
75
74
  var newMax = mult * (this.max !== 0 ? Math.pow(logBase, maxExp + maxExpDelta) : 0);
76
75
  if (newMin > newMax) {
package/README.md CHANGED
@@ -2,7 +2,29 @@
2
2
 
3
3
  [![SciChart.js Ultra High Performance Realtime JavaScript Chart library](Sandbox/scichart-js-javascript-chart-collage-1485.jpg)](https://www.scichart.com/javascript-chart-features)
4
4
 
5
- [SciChart](https://www.scichart.com) has the _**only viable solution for mission-critical charting applications**_, with our ultra-fast 2D/3D graphics technology codenamed _Visual Xccelerator&reg;_ now ported to JavaScript/TypeScript using WebGL and WebAssembly. We have cross-platform technology and provide solutions to enterprise around the world for Windows, Mobile, macOS and now JavaScript apps.
5
+ [SciChart](https://www.scichart.com) provides a High Performance JavaScript & TypeScript Chart library which uses WebGL and WebAssembly to achieve incredible real-time and big-data performance.
6
+
7
+ SciChart is the _**only viable solution for mission-critical data visualization applications**_, where high quality, fast, and feature-rich charts & graphs are a large part of the application.
8
+
9
+ Whether you are building Dashboards for business, stock-chart or trading apps, scientific or medical apps, or building a kiosk application on custom hardware with Electron, SciChart's ultra-fast 2D/3D WebGL rendering technology codenamed _Visual Xccelerator&reg;_ will let you build apps, services and dashboards with rich charts & graphs that will delight your users.
10
+
11
+ # Getting Started
12
+
13
+ We've prepared a short [Getting Started guide here](https://www.scichart.com/getting-started-scichart-js).
14
+
15
+ [![Getting Started with SciChart.js](Sandbox/scichart-js-getting-started-1485.jpg)](https://www.scichart.com/getting-started-scichart-js)
16
+
17
+ ## Documentation
18
+
19
+ We've taken the time to create hundreds of documentation pages for our JavaScript Charts, which you can find over at https://www.scichart.com/javascript-chart-documentation. Take a look here for tutorials, getting-started guides, API Docs (TypeDoc) and more.
20
+
21
+ [![JavaScript Chart Documentation](Sandbox/scichart-js-javascript-chart-documentation.PNG)](https://www.scichart.com/javascript-chart-documentation)
22
+
23
+ ## Online Demo
24
+
25
+ An online demo version of scichart.js.examples can be seen at https://demo.scichart.com. Get the source for the demos and examples at https://github.com/abtsoftware/scichart.js.examples
26
+
27
+ # Release Notes
6
28
 
7
29
  ## Version 2 Released
8
30
 
@@ -21,22 +43,187 @@ SciChart.js v2 is a huge release with many new features, improvements and fixes
21
43
 
22
44
  See all the details at [SciChart.js v2 release](https://www.scichart.com/scichart-js-v2-beta-released/).
23
45
 
24
- ## Insane performance
46
+ # Our Chart Features
47
+
48
+ An up to date list of features can be found at [scichart.com/javascript-chart-features](https://scichart.com/javascript-chart-features).
49
+
50
+ ## JavaScript Chart Types
51
+
52
+ Supports many 2D & 3D Chart types including:
53
+
54
+ - [Line Chart](https://demo.scichart.com/javascript-line-chart)
55
+ - [Digital (Step) Line Chart](https://demo.scichart.com/javascript-digital-line-chart)
56
+ - [Area / Mountain Chart](https://demo.scichart.com/javascript-mountain-chart)
57
+ - [Digital (Step) Area / Mountain Chart](https://demo.scichart.com/javascript-mountain-chart)
58
+ - [Column Chart](https://demo.scichart.com/javascript-column-chart)
59
+ - [Stacked Column Chart](https://demo.scichart.com/javascript-stacked-column-chart)
60
+ - [100% Stacked Column Chart](https://demo.scichart.com/javascript-stacked-column-chart)
61
+ - [Scatter Chart](https://demo.scichart.com/javascript-scatter-chart)
62
+ - [Bubble Chart](https://demo.scichart.com/javascript-bubble-chart)
63
+ - [Pie Chart](https://demo.scichart.com/javascript-pie-chart)
64
+ - [Donut Chart](https://demo.scichart.com/javascript-donut-chart)
65
+ - [Candlestick Chart](https://demo.scichart.com/javascript-candlestick-chart)
66
+ - [Ohlc Chart](https://demo.scichart.com/javascript-ohlc-chart)
67
+ - [Band (High low Fill) Chart](https://demo.scichart.com/javascript-band-chart)
68
+ - [Digital (Step) Band Chart](https://demo.scichart.com/javascript-digital-band-chart)
69
+ - [Heatmap or Spectrogram Chart](https://demo.scichart.com/javascript-heatmap-chart)
70
+ - [Fan Chart](https://demo.scichart.com/javascript-fan-chart)
71
+ - [Contours Chart](https://demo.scichart.com/javascript-heatmap-chart-with-contours)
72
+ - [Stacked Mountain Chart](https://demo.scichart.com/javascript-stacked-mountain-chart)
73
+ - [3D Surface Mesh or 3D Area Chart](https://demo.scichart.com/javascript-3d-surface-mesh-chart)
74
+ - [3D Bubble Chart](https://demo.scichart.com/javascript-3d-bubble-chart)
75
+ - [3D Point Cloud Chart](https://demo.scichart.com/javascript-fan-chart)
76
+
77
+ ## Insane Realtime performance
25
78
 
26
79
  [SciChart's](https://www.scichart.com) Ultra High performance [JavaScript Charts](https://www.scichart.com/javascript-chart-features/) can draw many millions of data-points, allowing you to zoom, pan, or browse big-data sets with ease. [SciChart](https://www.scichart.com) enables next-generation JavaScript &amp; TypeScript chart applications by allowing previously impossible datarates and update-rates. After all, we make 'Impossible projects possible'!
27
80
 
28
- ## Online Demo
81
+ ![SciChart.js Chart Performance](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-performance-loading-millions-datapoints-instantly.jpg)
29
82
 
30
- An online demo version of scichart.js.examples can be seen at https://demo.scichart.com. Get the source for the demos at https://github.com/abtsoftware/scichart.js.examples
83
+ ## Rich Interactive Charts
31
84
 
32
- ## Getting Started
85
+ Drag to zoom, pan, mousewheel zoom, drag axis to zoom, zoom extents or touch behaviour is all supported out of the box.
33
86
 
34
- Open this page to [get started with SciChart.js](https://www.scichart.com/getting-started-scichart-js).
87
+ ![SciChart.js Chart Interactivity](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/Scichart-js-rich-interactive-javascript-chart.jpg)
35
88
 
36
- [![Getting Started with SciChart.js](Sandbox/scichart-js-getting-started-1485.jpg)](https://www.scichart.com/getting-started-scichart-js)
89
+ ## Chart Animations
37
90
 
38
- ## Documentation
91
+ SciChart.js supports multiple types of animations to make impressive dashboards and browser applications which will delight your users.
39
92
 
40
- We've taken the time to create hundreds of documentation pages for our JavaScript Charts, which you can find over at https://www.scichart.com/javascript-chart-documentation. Take a look here for tutorials, getting-started guides, API Docs (TypeDoc) and more.
93
+ Add series animations which execute when a chart type is shown. Data animations morph or animate from one dataset to another. Style Animations - allow you to animate style (line/fill colour, line thickness) from one set of properties to another.
41
94
 
42
- [![JavaScript Chart Documentation](Sandbox/scichart-js-javascript-chart-documentation.PNG)](https://www.scichart.com/javascript-chart-documentation)
95
+ ## Cursors & Tooltips
96
+
97
+ Our JavaScript Chart library features rich cursors & tooltips out of the box, which are built on our powerful ChartModifier API
98
+
99
+ Choose from built-in Cursors, Crosshairs, Tooltips on mouse/touch or Rollover (showing vertical lines) as well as Legends. Decide what information is presented in a tooltip. Style tooltips to fit your application.
100
+
101
+ ![SciChart.js Chart Cursors](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/Scichart-js-javascript-chart-tooltips-cursors-rollovers.jpg)
102
+
103
+ ## Annotations & Markers
104
+
105
+ Our JavaScript Chart library features a powerful Annotations API which allows you to overlay Line, Text, Boxes, Shapes or Watermarks over the chart, at specific X/Y data locations. Annotations update position as you zoom or pan the chart.
106
+
107
+ ![SciChart.js Chart Annotations](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-javascript-chart-annotations-markers-text-lines-boxes-1.jpg)
108
+
109
+ ## Styling & Theming
110
+
111
+ SciChart.js features several themes out of the box, including Light Theme and Dark Theme. SciChart supports building Custom Themes either inheriting our own or completely bespoke.
112
+
113
+ Our charts support transparent background, image background, blurred or glass effect background. Style SciChart to fit your application and delight your users!
114
+
115
+ ![SciChart.js Chart Styling and Theming](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-theme-javascript-chart-background-image-transparent-background.jpg)
116
+
117
+ ## Many Axis Types and Options
118
+
119
+ SciChart.js features multiple axis types out of the box, including Numeric Axis, Category Axis (Stock Chart axis) and Logarithmic Axis.
120
+
121
+ Format labels as Dates, numbers, strings (text) or images. Multi-line text labels and rotated axis labels are supported. Full control over axis label format, label style and label / gridline interval is possible with SciChart.js. The flexibility of our JavaScript charts are second to none.
122
+
123
+ Unlike other JavaScript Charts that only support a single X and Y axis, SciChart.js supports unlimited, multiple X & Y Axis.
124
+
125
+ You can scale series independently, have left, right, top or bottom axis. You can scale axis independently.
126
+
127
+ ![SciChart.js Chart Axis](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/javascript-chart-with-multiple-x-axis.jpg)
128
+
129
+ ## Vertical Charts
130
+
131
+ SciChart.js supports vertical or rotated charts. Set a YAxis alignment to the left, and XAxis alignment to the top, and this will rotate a chart 90 degrees.
132
+
133
+ ![SciChart.js Vertical Charts](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-vertical-rotated-javascript-chart.jpg)
134
+
135
+ ## Chart Series Selection
136
+
137
+ SciChart.js features serles selection and hover events on click. We've also packaged a Chart Modifier which will apply selected or hovered series styling to the chart.
138
+
139
+ Get notified when a user clicks on a chart series. Use this to perform visual-feedback of selection or chart drill-down, making for compelling interactive browser apps.
140
+
141
+ ![SciChart.js Chart Series Selection](https://www.scichart.com/wp-content/uploads/2021/10/scichart-js-javascript-chart-series-selection.jpg%22)
142
+
143
+ ## Chart Data point selection
144
+
145
+ SciChart.js also supports data-point selection by clicking or dragging a rectangle on the chart.
146
+
147
+ Get notified when a user clicks a data-point by events and callbacks. Use this to update the selection visual and create an extra layer of interaction to data-driven apps.
148
+
149
+ ![SciChart.js Chart Datapoint Selection](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-select-datapoints-javascript-chart.jpg)
150
+
151
+ ## Per-Point Colouring
152
+
153
+ With SciChart.js you can colour data-points based on a rule e.g. would you like all data-points with value > 10 to be coloured red? With our PaletteProvider API you can do this.
154
+
155
+ Colour volume bars in a stock chart red or green based on up or down, dynamically style data-points or sections of the chart based on thresholds, custom objects and more.
156
+
157
+ ![SciChart.js Chart Per-Point Coloring](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-color-points-individually-in-javascript.jpg)
158
+
159
+ ## Financial Stock Charts
160
+
161
+ SciChart.js supports dynamic, real-time Candlestick and Ohlc charts. Connect our charts to real-time exchange data and they can tick & update in real-time. Our performance is second-to-none making SciChart.js perfect for financial stock chart apps.
162
+
163
+ ![SciChart.js Financial Stock Charts](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-candletick-financial-charts-javascript.jpg)
164
+
165
+ ## Scrolling Overview
166
+
167
+ Another stock-chart related feature, we've added a Scrolling Overview control to the SciChart.js library. This allows you to see a history of the entire chart data and scroll back & forth instantly. Perfect for financial & stock chart apps!
168
+
169
+ ![SciChart.js Scrolling Overview](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-scroll-javascript-chart-overview-control.jpg)
170
+
171
+ ## Link Multiple Charts
172
+
173
+ With SciChart.js you can link multiple charts. Synchronize Zooming and Panning across charts. Have a single tooltip shared across chart surfaces. Create multi-pane stock charts with technical indicators.
174
+
175
+ Plus, with support for hundreds of WebGL powered charts on a single webpage, you won't get caught short running out of WebGL contexts or experience slow performance with SciChart.
176
+
177
+ ![SciChart.js Link Multiple Charts](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichart-js-multi-panel-stock-chart-javascript.jpg)
178
+
179
+ ## Filters and Data Transforms
180
+
181
+ SciChart.js features a filters and data-transforms API. Add moving averages, linear trendlines to a chart. Scale and Offset a series. Calculate the ratio between two series.
182
+
183
+ All SciChart's filters update dynamically as the underlying data updates. What's more, you can create custom filters to transform your data dynamically and on the fly.
184
+
185
+ ![SciChart.js Filters and Data Transforms](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichartjs-javascript-chart-trendline-moving-average-filters-data-transforms.jpg)
186
+
187
+ ## Builder API & JSON Serialization
188
+
189
+ The Builder API - allows you to create chart definitions with JSON or JavaScript objects. It's never before been easier to create JavaScript charts with SciChart.js. Define your charts on the server, or in a re-usable React component and share them throughout your app.
190
+
191
+ With SciChart.js every type is JSON Serializable, so you can now create entire chart definitions server-side out of JSON objects and rehydrate them on the client. Save/load chart settings to JSON, allowing rich, dynamic apps with our powerful JavaScript Chart library.
192
+
193
+ ![SciChart.js Builder API and JSON Serialization](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichartjs-builder-api.jpg)
194
+
195
+ ## Accessibility
196
+
197
+ We've build Accessibility hooks into SciChart.js making it suitable for enterprise-grade applications.
198
+
199
+ Accessibility features include Voiceover (text to speech for chart parts), Theming, Scaling of fonts with Browser zoom / DPI. color and contrast, and keyboard interaction on the chart.
200
+
201
+ ## Plot 3D Scientific Charts
202
+
203
+ With SciChart.js you can plot 3D Scientific Charts such as this 3D Surface Mesh (3D Mountain or Area chart), 3D Bubble, Scatter or point-cloud.
204
+
205
+ With the help of our cross-platform Visual Xccelerator 3D engine you can plot scientific surface mesh charts in real-time with tens of thousands of cells JavaScript and TypeScript applications.
206
+
207
+ ![SciChart.js Plot 3D Scientific Charts](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichartjs-javascript-3d-mountain-surface-chart.jpg)
208
+
209
+ ## Plot 3D Point Clouds
210
+
211
+ Our 3D Scatter / Bubble and Point-cloud chart types allow you to plot 3-dimensional data with XYZ points.
212
+
213
+ For the first time you can use our powerful JavaScript 3D Chart library to visualise point-cloud outputs from LIDAR, UAV, self-driving car sensors, or plot the relationship between values in scientific, machine learning or statistical data with 3 or 4 (XYZ, Color) or 5 (XYZ, Color, Size) dimensions.
214
+
215
+ ![SciChart.js Plot 3D Point Clouds](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichartjs-javascript-3d-point-cloud-scatter-bubble-chart-2.jpg)
216
+
217
+ ## Heatmaps and Spectrograms
218
+
219
+ SciChart.js features multiple axis types out of the box, including Numeric Axis, Category Axis (Stock Chart axis) and Logarithmic Axis.
220
+
221
+ Format labels as Dates, numbers, strings (text) or images. Multi-line text labels and rotated axis labels are supported. Full control over axis label format, label style and label / gridline interval is possible with SciChart.js. The flexibility of our JavaScript charts are second to none.
222
+
223
+ ![SciChart.js Heatmaps and Spectrograms](https://abtsoftware-wpengine.netdna-ssl.com/wp-content/uploads/2021/10/scichartjs-javascript-heatmap-chart-spectrogram-ultrasound.jpg)
224
+
225
+ ## Enterprise Grade Support
226
+
227
+ With Open Source JavaScript Charts you may find yourself stuck without technical support if something goes wrong. SciChart provides enterprise grade technical support which has been 5-Star Rated for many years.
228
+
229
+ Many competitors have a limit of support, but we provide 1-year unlimited technical support and latest-version updates (subject to fair use policy) to all our customers. Our customers find our tech-support to be a huge time & money saver. If you want to build excellent quality projects, build them quickly and solve problems when they occur, choose SciChart.js