123 lines
4.6 KiB
JavaScript
123 lines
4.6 KiB
JavaScript
|
/**
|
||
|
* @license Highcharts JS v8.1.0 (2020-05-05)
|
||
|
* @module highcharts/modules/boost
|
||
|
* @requires highcharts
|
||
|
*
|
||
|
* Boost module
|
||
|
*
|
||
|
* (c) 2010-2019 Highsoft AS
|
||
|
* Author: Torstein Honsi
|
||
|
*
|
||
|
* License: www.highcharts.com/license
|
||
|
*
|
||
|
* This is a Highcharts module that draws long data series on a canvas in order
|
||
|
* to increase performance of the initial load time and tooltip responsiveness.
|
||
|
*
|
||
|
* Compatible with WebGL compatible browsers (not IE < 11).
|
||
|
*
|
||
|
* If this module is taken in as part of the core
|
||
|
* - All the loading logic should be merged with core. Update styles in the
|
||
|
* core.
|
||
|
* - Most of the method wraps should probably be added directly in parent
|
||
|
* methods.
|
||
|
*
|
||
|
* Notes for boost mode
|
||
|
* - Area lines are not drawn
|
||
|
* - Lines are not drawn on scatter charts
|
||
|
* - Zones and negativeColor don't work
|
||
|
* - Dash styles are not rendered on lines.
|
||
|
* - Columns are always one pixel wide. Don't set the threshold too low.
|
||
|
* - Disable animations
|
||
|
* - Marker shapes are not supported: markers will always be circles, except
|
||
|
* heatmap series, where markers are always rectangles.
|
||
|
*
|
||
|
* Optimizing tips for users
|
||
|
* - Set extremes (min, max) explicitly on the axes in order for Highcharts to
|
||
|
* avoid computing extremes.
|
||
|
* - Set enableMouseTracking to false on the series to improve total rendering
|
||
|
* time.
|
||
|
* - The default threshold is set based on one series. If you have multiple,
|
||
|
* dense series, the combined number of points drawn gets higher, and you may
|
||
|
* want to set the threshold lower in order to use optimizations.
|
||
|
* - If drawing large scatter charts, it's beneficial to set the marker radius
|
||
|
* to a value less than 1. This is to add additional spacing to make the chart
|
||
|
* more readable.
|
||
|
* - If the value increments on both the X and Y axis aren't small, consider
|
||
|
* setting useGPUTranslations to true on the boost settings object. If you do
|
||
|
* this and the increments are small (e.g. datetime axis with small time
|
||
|
* increments) it may cause rendering issues due to floating point rounding
|
||
|
* errors, so your millage may vary.
|
||
|
*
|
||
|
* Settings
|
||
|
* There are two ways of setting the boost threshold:
|
||
|
* - Per series: boost based on number of points in individual series
|
||
|
* - Per chart: boost based on the number of series
|
||
|
*
|
||
|
* To set the series boost threshold, set seriesBoostThreshold on the chart
|
||
|
* object.
|
||
|
* To set the series-specific threshold, set boostThreshold on the series
|
||
|
* object.
|
||
|
*
|
||
|
* In addition, the following can be set in the boost object:
|
||
|
* {
|
||
|
* //Wether or not to use alpha blending
|
||
|
* useAlpha: boolean - default: true
|
||
|
* //Set to true to perform translations on the GPU.
|
||
|
* //Much faster, but may cause rendering issues
|
||
|
* //when using values far from 0 due to floating point
|
||
|
* //rounding issues
|
||
|
* useGPUTranslations: boolean - default: false
|
||
|
* //Use pre-allocated buffers, much faster,
|
||
|
* //but may cause rendering issues with some data sets
|
||
|
* usePreallocated: boolean - default: false
|
||
|
* }
|
||
|
*/
|
||
|
|
||
|
/* *
|
||
|
* Options for the Boost module. The Boost module allows certain series types
|
||
|
* to be rendered by WebGL instead of the default SVG. This allows hundreds of
|
||
|
* thousands of data points to be rendered in milliseconds. In addition to the
|
||
|
* WebGL rendering it saves time by skipping processing and inspection of the
|
||
|
* data wherever possible. This introduces some limitations to what features are
|
||
|
* available in boost mode. See [the docs](
|
||
|
* https://www.highcharts.com/docs/advanced-chart-features/boost-module) for
|
||
|
* details.
|
||
|
*
|
||
|
* In addition to the global `boost` option, each series has a
|
||
|
* [boostThreshold](#plotOptions.series.boostThreshold) that defines when the
|
||
|
* boost should kick in.
|
||
|
*
|
||
|
* Requires the `modules/boost.js` module.
|
||
|
*
|
||
|
* @sample {highstock} highcharts/boost/line-series-heavy-stock
|
||
|
* Stock chart
|
||
|
* @sample {highstock} highcharts/boost/line-series-heavy-dynamic
|
||
|
* Dynamic stock chart
|
||
|
* @sample highcharts/boost/line
|
||
|
* Line chart
|
||
|
* @sample highcharts/boost/line-series-heavy
|
||
|
* Line chart with hundreds of series
|
||
|
* @sample highcharts/boost/scatter
|
||
|
* Scatter chart
|
||
|
* @sample highcharts/boost/area
|
||
|
* Area chart
|
||
|
* @sample highcharts/boost/arearange
|
||
|
* Area range chart
|
||
|
* @sample highcharts/boost/column
|
||
|
* Column chart
|
||
|
* @sample highcharts/boost/columnrange
|
||
|
* Column range chart
|
||
|
* @sample highcharts/boost/bubble
|
||
|
* Bubble chart
|
||
|
* @sample highcharts/boost/heatmap
|
||
|
* Heat map
|
||
|
* @sample highcharts/boost/treemap
|
||
|
* Tree map
|
||
|
*
|
||
|
* @product highcharts highstock
|
||
|
* @apioption boost
|
||
|
* */
|
||
|
|
||
|
'use strict';
|
||
|
import '../../modules/boost/boost.js';
|