scichart 2.1.2261 → 2.1.2290

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 (43) hide show
  1. package/Builder/buildSeries.d.ts +5 -0
  2. package/Builder/buildSeries.js +4 -0
  3. package/Charting/ChartModifiers/LegendModifier.d.ts +2 -2
  4. package/Charting/Themes/IThemeProvider.d.ts +6 -0
  5. package/Charting/Themes/SciChartJSDarkTheme.d.ts +2 -0
  6. package/Charting/Themes/SciChartJSDarkTheme.js +2 -0
  7. package/Charting/Themes/SciChartJSLightTheme.d.ts +2 -0
  8. package/Charting/Themes/SciChartJSLightTheme.js +2 -0
  9. package/Charting/Visuals/Axis/CategoryAxisBase.d.ts +6 -0
  10. package/Charting/Visuals/Axis/CategoryAxisBase.js +35 -16
  11. package/Charting/Visuals/Legend/SciChartLegend.d.ts +6 -0
  12. package/Charting/Visuals/Legend/SciChartLegend.js +30 -13
  13. package/Charting/Visuals/Legend/SciChartLegendBase.d.ts +20 -6
  14. package/Charting/Visuals/Legend/SciChartLegendBase.js +22 -4
  15. package/Charting/Visuals/Legend/SciChartPieLegend.d.ts +2 -0
  16. package/Charting/Visuals/Legend/SciChartPieLegend.js +17 -6
  17. package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +1 -1
  18. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformContoursDrawingProvider.js +30 -8
  19. package/Charting/Visuals/RenderableSeries/DrawingProviders/UniformHeatmapDrawingProvider.js +6 -2
  20. package/Charting/Visuals/RenderableSeries/FastColumnRenderableSeries.d.ts +1 -1
  21. package/Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries.d.ts +84 -0
  22. package/Charting/Visuals/RenderableSeries/FastImpulseRenderableSeries.js +179 -0
  23. package/Charting/Visuals/RenderableSeries/HitTest/ImpulseSeriesHitTestProvider.d.ts +20 -0
  24. package/Charting/Visuals/RenderableSeries/HitTest/ImpulseSeriesHitTestProvider.js +100 -0
  25. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.d.ts +2 -0
  26. package/Charting/Visuals/RenderableSeries/HitTest/hitTestHelpers.js +14 -1
  27. package/Charting/Visuals/RenderableSeries/StackedColumnCollection.js +2 -1
  28. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.d.ts +3 -2
  29. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +39 -30
  30. package/Core/BuildStamp.d.ts +1 -1
  31. package/Core/BuildStamp.js +2 -2
  32. package/README.md +223 -1
  33. package/_wasm/scichart.browser.js +1 -1
  34. package/_wasm/scichart2d.js +1 -1
  35. package/_wasm/scichart2d.wasm +0 -0
  36. package/_wasm/scichart3d.js +1 -1
  37. package/_wasm/scichart3d.wasm +0 -0
  38. package/constants/performanceWarnings.js +2 -2
  39. package/package.json +1 -1
  40. package/types/SeriesType.d.ts +2 -0
  41. package/types/SeriesType.js +2 -0
  42. package/utils/pointUtil.d.ts +1 -1
  43. package/utils/pointUtil.js +3 -2
package/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
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
6
 
7
+ Open the link to find out [SciChart.js performance compared to other libraries like Chart.js, Highcharts, etc](https://www.scichart.com/javascript-chart-performance-comparison/).
8
+
7
9
  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
10
 
9
11
  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®_ will let you build apps, services and dashboards with rich charts & graphs that will delight your users.
@@ -14,6 +16,183 @@ We've prepared a short [Getting Started guide here](https://www.scichart.com/get
14
16
 
15
17
  [![Getting Started with SciChart.js](Sandbox/scichart-js-getting-started-1485.jpg)](https://www.scichart.com/getting-started-scichart-js)
16
18
 
19
+ ## Quick Start with Browser Bundle
20
+
21
+ 1. **Make sure you downloaded [the Licensing Wizard](https://www.scichart.com/getting-started-scichart-js) and started trial**
22
+
23
+ Leave the Licensing Wizard running, it is used to validate licenses.
24
+
25
+ 2. **Create scichart-example.js file with a simple chart**
26
+
27
+ ```javascript
28
+ async function initSciChart() {
29
+ // In order to load data file from the CDN we need to set dataUrl
30
+ SciChart.SciChartSurface.configure({
31
+ dataUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2261/_wasm/scichart2d.data",
32
+ wasmUrl: "https://cdn.jsdelivr.net/npm/scichart@2.1.2261/_wasm/scichart2d.wasm"
33
+ });
34
+ // Create a chart using the json builder api
35
+ await SciChart.chartBuilder.buildChart("scichart-root", {
36
+ series: {
37
+ type: "LineSeries",
38
+ options: { stroke: "steelblue" },
39
+ xyData: {
40
+ xValues: [1, 2, 5, 8, 10],
41
+ yValues: [3, 1, 7, 5, 8]
42
+ }
43
+ }
44
+ });
45
+ }
46
+
47
+ initSciChart();
48
+ ```
49
+
50
+ See the documentation for [IScichart2Ddefinition](https://www.scichart.com/documentation/js/current/typedoc/interfaces/iscichart2ddefinition.html) for all the options available.
51
+
52
+ 3. **Create html file**
53
+
54
+ The file should include **scichart.browser.js** the same version as in the code snippet above, **div element with id "scichart-root"** and deferred **scichart-example.js** script which is executed after the page is loaded.
55
+
56
+ ```html
57
+ <!DOCTYPE html>
58
+ <html lang="en">
59
+ <head>
60
+ <meta charset="utf-8" />
61
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
62
+ <!-- Include SciChart.js -->
63
+ <script
64
+ src="https://cdn.jsdelivr.net/npm/scichart@2.1.2261/_wasm/scichart.browser.js"
65
+ crossorigin="anonymous"
66
+ ></script>
67
+ <script src="scichart-example.js" defer></script>
68
+ <title>Hello, SciChart.js world!</title>
69
+ </head>
70
+ <body>
71
+ <div id="scichart-root" style="width: 800px; height: 600px;"></div>
72
+ </body>
73
+ </html>
74
+ ```
75
+
76
+ 4. **Host both files** on any web server. As a result you will see a simple line chart. Please note because we are using WebAssembly just opening the HTML file without a server will not work.
77
+
78
+ Follow [the link](https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-browser-global-module) to find source code for this example.
79
+
80
+ ## Quick Start with NPM and Webpack
81
+
82
+ SciChart.js can be loaded as an ES6 module with Babel or TypeScript transpiler.
83
+
84
+ 1. **Make sure you downloaded [the Licensing Wizard](https://www.scichart.com/getting-started-scichart-js) and started trial**
85
+
86
+ Leave the Licensing Wizard running, it is used to validate licenses.
87
+
88
+ 2. **Create a new Webpack project** or use an existing one.
89
+
90
+ ```shell
91
+ npm init -y
92
+ npm install webpack webpack-cli webpack-dev-server copy-webpack-plugin --save-dev
93
+ ```
94
+
95
+ add start script to package.json
96
+
97
+ ```
98
+ "scripts": {
99
+ "start": "webpack serve"
100
+ },
101
+ ```
102
+
103
+ 3. **Install SciChart.js**
104
+
105
+ ```shell
106
+ npm i scichart
107
+ ```
108
+
109
+ 4. **Add webpack.config.js file**
110
+
111
+ Use CopyPlugin to copy wasm and data files and serve them by webpack-dev-server. SciChart.js uses WebAssembly and those files must be loaded.
112
+
113
+ ```
114
+ const path = require('path');
115
+ const CopyPlugin = require("copy-webpack-plugin");
116
+
117
+ module.exports = {
118
+ mode: 'development',
119
+ entry: "./src/index.js",
120
+ performance: {
121
+ hints: false
122
+ },
123
+ output: {
124
+ path: path.resolve(__dirname, 'build'),
125
+ filename: 'bundle.js',
126
+ },
127
+ plugins: [
128
+ new CopyPlugin({
129
+ patterns: [
130
+ { from: "src/index.html", to: "" },
131
+ { from: "node_modules/scichart/_wasm/scichart2d.data", to: "" },
132
+ { from: "node_modules/scichart/_wasm/scichart2d.wasm", to: "" }
133
+ ]
134
+ })
135
+ ]
136
+ };
137
+ ```
138
+
139
+ 5. **Create a simple chart** by putting this into `src/index.js` file
140
+
141
+ ```javascript
142
+ import { SciChartSurface } from "scichart/Charting/Visuals/SciChartSurface";
143
+ import { NumericAxis } from "scichart/Charting/Visuals/Axis/NumericAxis";
144
+ import { XyDataSeries } from "scichart/Charting/Model/XyDataSeries";
145
+ import { FastLineRenderableSeries } from "scichart/Charting/Visuals/RenderableSeries/FastLineRenderableSeries";
146
+
147
+ // You may need this to configure from where wasm and data files are served
148
+ // SciChartSurface.configure({ dataUrl: "/custom/scichart2d.data", wasmUrl: "/other/scichart2d.wasm" });
149
+
150
+ async function initSciChart() {
151
+ // Create the SciChartSurface in the div 'scichart-root'
152
+ // The SciChartSurface, and webassembly context 'wasmContext' are paired. This wasmContext
153
+ // instance must be passed to other types that exist on the same surface.
154
+ const { sciChartSurface, wasmContext } = await SciChartSurface.create("scichart-root");
155
+
156
+ // Create an X,Y Axis and add to the chart
157
+ const yAxis = new NumericAxis(wasmContext);
158
+ sciChartSurface.xAxes.add(xAxis);
159
+ sciChartSurface.yAxes.add(yAxis);
160
+
161
+ const dataSeries = new XyDataSeries(wasmContext, {
162
+ xValues: [1, 2, 5, 8, 10],
163
+ yValues: [3, 1, 7, 5, 8]
164
+ });
165
+ const renderableSeries = new FastLineRenderableSeries(wasmContext, {
166
+ dataSeries,
167
+ stroke: "steelblue"
168
+ });
169
+ sciChartSurface.renderableSeries.add(renderableSeries);
170
+ }
171
+
172
+ initSciChart();
173
+ ```
174
+
175
+ 6. **Create src/index.html file**
176
+
177
+ ```html
178
+ <html lang="en-us">
179
+ <head>
180
+ <meta charset="utf-8" />
181
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
182
+ <title>SciChart.js Tutorial 1</title>
183
+ <script async type="text/javascript" src="bundle.js"></script>
184
+ </head>
185
+ <body>
186
+ <!-- the Div where the SciChartSurface will reside -->
187
+ <div id="scichart-root" style="width: 800px; height: 600px;"></div>
188
+ </body>
189
+ </html>
190
+ ```
191
+
192
+ 7. **Run it `npm start`**. As a result you will see a simple line chart.
193
+
194
+ Follow [the link](https://github.com/ABTSoftware/SciChart.JS.Examples/tree/master/Sandbox/demo-simple-chart) to find source code for this example.
195
+
17
196
  ## Documentation
18
197
 
19
198
  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.
@@ -26,7 +205,50 @@ An online demo version of scichart.js.examples can be seen at https://demo.scich
26
205
 
27
206
  # Release Notes
28
207
 
29
- ## Version 2 Released
208
+ ## Version 2.1 with Major Performance Improvements
209
+
210
+ We’ve used our expertise high performance computing in other platforms of SciChart to make massive improvements to chart rendering, updating and startup speed in SciChart.js v2.1.
211
+
212
+ **Performance improvements**:
213
+
214
+ - Smart Data-point Resampling was implemented. Datapoint resampling ensures the minimum viable data-set is displayed on the screen. Resampling is intended to be visually lossless, and automatic.
215
+ - Improved raw drawing speed of our underlying graphics engine by over 100%
216
+ - Added Async Label Creation option with global application or per-chart caching
217
+ - Optimised data transfers from JavaScript to WebAssembly
218
+ - Improved chart performance when using RolloverModifier and CursorModifier
219
+ - Implementation of Auto-detecting data distribution flags in DataSeries (flags dataSeries.isSorted, dataSeries.containsNaN). Specifying these flags gives better performance in big-data scenarios.
220
+ - Optimizations for Annotation notifyPropertyChange method not to be called if the property has not changed
221
+ - Display performance warnings in dev environment
222
+ - Optimisation getXRange() algorithm for unsorted data
223
+
224
+ **Documentation**:
225
+
226
+ - Added Documentation of how to use SciChart.js in vannilla HTML/Js (without npm) using our Browser Bundle served by CDN
227
+ - Added Documentation for Performance Tips & Tricks
228
+ - Added Documentation for new Data-point Resampling features
229
+ - Added Documentation & Examples for new Generic Animations API
230
+
231
+ **Live demo demo.scichart.com**:
232
+
233
+ - Added Generic Animations example to the Demo app
234
+
235
+ **Other improvements**:
236
+
237
+ - Added labels support outside of a Pie Chart
238
+ - Better error message if wasm cannot be loaded, or the wrong version loaded
239
+ - Add a property to configure stacked axis length
240
+ - Allow passing div element reference into SciChartSurface.create to make SciChart.js possible to use in shadow DOM
241
+ - Improve guard checks for data series creation
242
+ - Snap RolloverModifier vertical line to data points
243
+ - Add explanation error message for trial expired on old version
244
+ - Add AxisRenderer.axisSize property which allows setting axis label width
245
+ - Add includeAxis property to MouseWheelZoomModifier
246
+ - Add AxisRenderer.axisThickness
247
+ - Prevent CursorModifier axis labels to be cut out of the chart
248
+
249
+ See all the details at [SciChart.js v2.1 release](https://www.scichart.com/scichart-js-v2-1-released/).
250
+
251
+ ## Version 2.0
30
252
 
31
253
  SciChart.js v2 is a huge release with many new features, improvements and fixes including:
32
254