highcharts-rails 6.0.1 → 6.0.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.markdown +16 -0
- data/app/assets/javascripts/highcharts.js +188 -51
- data/app/assets/javascripts/highcharts/highcharts-3d.js +3 -4
- data/app/assets/javascripts/highcharts/highcharts-more.js +21 -5
- data/app/assets/javascripts/highcharts/modules/accessibility.js +4 -2
- data/app/assets/javascripts/highcharts/modules/annotations.js +2 -2
- data/app/assets/javascripts/highcharts/modules/boost-canvas.js +50 -195
- data/app/assets/javascripts/highcharts/modules/boost.js +202 -135
- data/app/assets/javascripts/highcharts/modules/broken-axis.js +1 -1
- data/app/assets/javascripts/highcharts/modules/bullet.js +1 -1
- data/app/assets/javascripts/highcharts/modules/data.js +88 -59
- data/app/assets/javascripts/highcharts/modules/drag-panes.js +1 -1
- data/app/assets/javascripts/highcharts/modules/drilldown.js +25 -2
- data/app/assets/javascripts/highcharts/modules/export-data.js +6 -2
- data/app/assets/javascripts/highcharts/modules/exporting.js +1 -1
- data/app/assets/javascripts/highcharts/modules/funnel.js +1 -1
- data/app/assets/javascripts/highcharts/modules/gantt.js +2 -2
- data/app/assets/javascripts/highcharts/modules/grid-axis.js +1 -1
- data/app/assets/javascripts/highcharts/modules/heatmap.js +826 -820
- data/app/assets/javascripts/highcharts/modules/histogram-bellcurve.js +1 -1
- data/app/assets/javascripts/highcharts/modules/item-series.js +1 -1
- data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +1 -1
- data/app/assets/javascripts/highcharts/modules/offline-exporting.js +2 -2
- data/app/assets/javascripts/highcharts/modules/oldie.js +16 -2
- data/app/assets/javascripts/highcharts/modules/overlapping-datalabels.js +1 -1
- data/app/assets/javascripts/highcharts/modules/parallel-coordinates.js +1 -1
- data/app/assets/javascripts/highcharts/modules/pareto.js +1 -1
- data/app/assets/javascripts/highcharts/modules/sankey.js +39 -9
- data/app/assets/javascripts/highcharts/modules/series-label.js +8 -3
- data/app/assets/javascripts/highcharts/modules/solid-gauge.js +1 -1
- data/app/assets/javascripts/highcharts/modules/static-scale.js +6 -2
- data/app/assets/javascripts/highcharts/modules/stock.js +19 -47
- data/app/assets/javascripts/highcharts/modules/streamgraph.js +1 -1
- data/app/assets/javascripts/highcharts/modules/sunburst.js +40 -15
- data/app/assets/javascripts/highcharts/modules/tilemap.js +7 -6
- data/app/assets/javascripts/highcharts/modules/treemap.js +13 -3
- data/app/assets/javascripts/highcharts/modules/variable-pie.js +1 -1
- data/app/assets/javascripts/highcharts/modules/variwide.js +1 -1
- data/app/assets/javascripts/highcharts/modules/vector.js +1 -1
- data/app/assets/javascripts/highcharts/modules/windbarb.js +1 -1
- data/app/assets/javascripts/highcharts/modules/wordcloud.js +130 -37
- data/app/assets/javascripts/highcharts/modules/xrange.js +2 -2
- data/app/assets/javascripts/highcharts/themes/avocado.js +1 -1
- data/app/assets/javascripts/highcharts/themes/dark-blue.js +1 -1
- data/app/assets/javascripts/highcharts/themes/dark-green.js +1 -1
- data/app/assets/javascripts/highcharts/themes/dark-unica.js +1 -1
- data/app/assets/javascripts/highcharts/themes/gray.js +1 -1
- data/app/assets/javascripts/highcharts/themes/grid-light.js +1 -1
- data/app/assets/javascripts/highcharts/themes/grid.js +1 -1
- data/app/assets/javascripts/highcharts/themes/sand-signika.js +1 -1
- data/app/assets/javascripts/highcharts/themes/skies.js +1 -1
- data/app/assets/javascripts/highcharts/themes/sunset.js +1 -1
- data/lib/highcharts/version.rb +1 -1
- metadata +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v6.0.
|
2
|
+
* @license Highcharts JS v6.0.2 (2017-10-20)
|
3
3
|
*
|
4
4
|
* 3D features for Highcharts JS
|
5
5
|
*
|
@@ -2919,7 +2919,6 @@
|
|
2919
2919
|
wrap = H.wrap;
|
2920
2920
|
|
2921
2921
|
/**
|
2922
|
-
* Options to render axis in 3 dimensions.
|
2923
2922
|
* @optionparent xAxis
|
2924
2923
|
*/
|
2925
2924
|
var extendedOptions = {
|
@@ -3013,7 +3012,7 @@
|
|
3013
3012
|
wrap(Axis.prototype, 'setOptions', function(proceed, userOptions) {
|
3014
3013
|
var options;
|
3015
3014
|
proceed.call(this, userOptions);
|
3016
|
-
if (this.chart.is3d() && this.coll !== 'colorAxis') {
|
3015
|
+
if (this.chart.is3d && this.chart.is3d() && this.coll !== 'colorAxis') {
|
3017
3016
|
options = this.options;
|
3018
3017
|
options.tickWidth = pick(options.tickWidth, 0);
|
3019
3018
|
options.gridLineWidth = pick(options.gridLineWidth, 1);
|
@@ -3905,7 +3904,7 @@
|
|
3905
3904
|
function pointAttribs(proceed) {
|
3906
3905
|
var attr = proceed.apply(this, [].slice.call(arguments, 1));
|
3907
3906
|
|
3908
|
-
if (this.chart.is3d()) {
|
3907
|
+
if (this.chart.is3d && this.chart.is3d()) {
|
3909
3908
|
// Set the fill color to the fill color to provide a smooth edge
|
3910
3909
|
attr.stroke = this.options.edgeColor || attr.fill;
|
3911
3910
|
attr['stroke-width'] = pick(this.options.edgeWidth, 1); // #4055
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v6.0.
|
2
|
+
* @license Highcharts JS v6.0.2 (2017-10-20)
|
3
3
|
*
|
4
4
|
* (c) 2009-2016 Torstein Honsi
|
5
5
|
*
|
@@ -337,12 +337,28 @@
|
|
337
337
|
* @product highcharts
|
338
338
|
*/
|
339
339
|
backgroundColor: {
|
340
|
+
/**
|
341
|
+
* Definition of the gradient, similar to SVG: object literal holds
|
342
|
+
* start position (x1, y1) and the end position (x2, y2) relative
|
343
|
+
* to the shape, where 0 means top/left and 1 is bottom/right.
|
344
|
+
* All positions are floats between 0 and 1.
|
345
|
+
*
|
346
|
+
* @type {Object}
|
347
|
+
*/
|
340
348
|
linearGradient: {
|
341
349
|
x1: 0,
|
342
350
|
y1: 0,
|
343
351
|
x2: 0,
|
344
352
|
y2: 1
|
345
353
|
},
|
354
|
+
/**
|
355
|
+
* The stops is an array of tuples, where the first
|
356
|
+
* item is a float between 0 and 1 assigning the relative position in
|
357
|
+
* the gradient, and the second item is the color.
|
358
|
+
*
|
359
|
+
* @default [[0, #ffffff], [1, #e6e6e6]]
|
360
|
+
* @type {Array<Array>}
|
361
|
+
*/
|
346
362
|
stops: [
|
347
363
|
[0, '#ffffff'],
|
348
364
|
[1, '#e6e6e6']
|
@@ -845,8 +861,8 @@
|
|
845
861
|
options,
|
846
862
|
chartOptions = chart.options,
|
847
863
|
paneIndex = userOptions.pane || 0,
|
848
|
-
pane = this.pane = chart.pane[paneIndex],
|
849
|
-
paneOptions = pane.options;
|
864
|
+
pane = this.pane = chart.pane && chart.pane[paneIndex],
|
865
|
+
paneOptions = pane && pane.options;
|
850
866
|
|
851
867
|
// Before prototype.init
|
852
868
|
if (angular) {
|
@@ -873,14 +889,14 @@
|
|
873
889
|
}
|
874
890
|
|
875
891
|
// A pointer back to this axis to borrow geometry
|
876
|
-
if (isCircular) {
|
892
|
+
if (pane && isCircular) {
|
877
893
|
pane.axis = this;
|
878
894
|
}
|
879
895
|
|
880
896
|
// Run prototype.init
|
881
897
|
proceed.call(this, chart, userOptions);
|
882
898
|
|
883
|
-
if (!isHidden && (angular || polar)) {
|
899
|
+
if (!isHidden && pane && (angular || polar)) {
|
884
900
|
options = this.options;
|
885
901
|
|
886
902
|
// Start and end angle options are
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v6.0.
|
2
|
+
* @license Highcharts JS v6.0.2 (2017-10-20)
|
3
3
|
* Accessibility module
|
4
4
|
*
|
5
5
|
* (c) 2010-2017 Highsoft AS
|
@@ -1502,7 +1502,9 @@
|
|
1502
1502
|
// Handle keyboard events
|
1503
1503
|
addEvent(chart.renderTo, 'keydown', keydownHandler);
|
1504
1504
|
addEvent(chart, 'destroy', function() {
|
1505
|
-
|
1505
|
+
if (chart.renderTo) {
|
1506
|
+
removeEvent(chart.renderTo, 'keydown', keydownHandler);
|
1507
|
+
}
|
1506
1508
|
});
|
1507
1509
|
};
|
1508
1510
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v6.0.
|
2
|
+
* @license Highcharts JS v6.0.2 (2017-10-20)
|
3
3
|
* Annotations module
|
4
4
|
*
|
5
5
|
* (c) 2009-2017 Torstein Honsi
|
@@ -558,7 +558,7 @@
|
|
558
558
|
**/
|
559
559
|
style: {
|
560
560
|
fontSize: '11px',
|
561
|
-
|
561
|
+
fontWeight: 'normal',
|
562
562
|
color: 'contrast'
|
563
563
|
},
|
564
564
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v6.0.
|
2
|
+
* @license Highcharts JS v6.0.2 (2017-10-20)
|
3
3
|
* Boost module
|
4
4
|
*
|
5
5
|
* (c) 2010-2017 Highsoft AS
|
@@ -19,51 +19,12 @@
|
|
19
19
|
/**
|
20
20
|
* License: www.highcharts.com/license
|
21
21
|
* Author: Torstein Honsi, Christer Vasseng
|
22
|
-
*
|
23
|
-
* This is an experimental Highcharts module that draws long data series on a canvas
|
24
|
-
* in order to increase performance of the initial load time and tooltip responsiveness.
|
25
22
|
*
|
26
|
-
*
|
23
|
+
* This module serves as a fallback for the Boost module in IE9 and IE10. Newer
|
24
|
+
* browsers support WebGL which is faster.
|
27
25
|
*
|
28
|
-
*
|
29
|
-
*
|
30
|
-
* Development plan
|
31
|
-
* - Column range.
|
32
|
-
* - Heatmap. Modify the heatmap-canvas demo so that it uses this module.
|
33
|
-
* - Treemap.
|
34
|
-
* - Check how it works with Highstock and data grouping. Currently it only works when navigator.adaptToUpdatedData
|
35
|
-
* is false. It is also recommended to set scrollbar.liveRedraw to false.
|
36
|
-
* - Check inverted charts.
|
37
|
-
* - Check reversed axes.
|
38
|
-
* - Chart callback should be async after last series is drawn. (But not necessarily, we don't do
|
39
|
-
that with initial series animation).
|
40
|
-
* - Cache full-size image so we don't have to redraw on hide/show and zoom up. But k-d-tree still
|
41
|
-
* needs to be built.
|
42
|
-
* - Test IE9 and IE10.
|
43
|
-
* - Stacking is not perhaps not correct since it doesn't use the translation given in
|
44
|
-
* the translate method. If this gets to complicated, a possible way out would be to
|
45
|
-
* have a simplified renderCanvas method that simply draws the areaPath on a canvas.
|
46
|
-
*
|
47
|
-
* If this module is taken in as part of the core
|
48
|
-
* - All the loading logic should be merged with core. Update styles in the core.
|
49
|
-
* - Most of the method wraps should probably be added directly in parent methods.
|
50
|
-
*
|
51
|
-
* Notes for boost mode
|
52
|
-
* - Area lines are not drawn
|
53
|
-
* - Point markers are not drawn on line-type series
|
54
|
-
* - Lines are not drawn on scatter charts
|
55
|
-
* - Zones and negativeColor don't work
|
56
|
-
* - Initial point colors aren't rendered
|
57
|
-
* - Columns are always one pixel wide. Don't set the threshold too low.
|
58
|
-
*
|
59
|
-
* Optimizing tips for users
|
60
|
-
* - For scatter plots, use a marker.radius of 1 or less. It results in a rectangle being drawn, which is
|
61
|
-
* considerably faster than a circle.
|
62
|
-
* - Set extremes (min, max) explicitly on the axes in order for Highcharts to avoid computing extremes.
|
63
|
-
* - Set enableMouseTracking to false on the series to improve total rendering time.
|
64
|
-
* - The default threshold is set based on one series. If you have multiple, dense series, the combined
|
65
|
-
* number of points drawn gets higher, and you may want to set the threshold lower in order to
|
66
|
-
* use optimizations.
|
26
|
+
* It is recommended to include this module in conditional comments targeting
|
27
|
+
* IE9 and IE10.
|
67
28
|
*/
|
68
29
|
|
69
30
|
|
@@ -84,43 +45,7 @@
|
|
84
45
|
CHUNK_SIZE = 50000,
|
85
46
|
destroyLoadingDiv;
|
86
47
|
|
87
|
-
function eachAsync(arr, fn, finalFunc, chunkSize, i) {
|
88
|
-
i = i || 0;
|
89
|
-
chunkSize = chunkSize || CHUNK_SIZE;
|
90
|
-
|
91
|
-
var threshold = i + chunkSize,
|
92
|
-
proceed = true;
|
93
|
-
|
94
|
-
while (proceed && i < threshold && i < arr.length) {
|
95
|
-
proceed = fn(arr[i], i);
|
96
|
-
i = i + 1;
|
97
|
-
}
|
98
|
-
if (proceed) {
|
99
|
-
if (i < arr.length) {
|
100
|
-
setTimeout(function() {
|
101
|
-
eachAsync(arr, fn, finalFunc, chunkSize, i);
|
102
|
-
});
|
103
|
-
} else if (finalFunc) {
|
104
|
-
finalFunc();
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
/*
|
110
|
-
* Returns true if the chart is in series boost mode
|
111
|
-
* @param chart {Highchart.Chart} - the chart to check
|
112
|
-
* @returns {Boolean} - true if the chart is in series boost mode
|
113
|
-
*/
|
114
|
-
function isChartSeriesBoosting(chart) {
|
115
|
-
var threshold = (chart.options.boost ? chart.options.boost.seriesThreshold : 0) ||
|
116
|
-
chart.options.chart.seriesBoostThreshold ||
|
117
|
-
10;
|
118
|
-
|
119
|
-
return chart.series.length >= threshold;
|
120
|
-
}
|
121
|
-
|
122
48
|
H.initCanvasBoost = function() {
|
123
|
-
|
124
49
|
if (H.seriesTypes.heatmap) {
|
125
50
|
H.wrap(H.seriesTypes.heatmap.prototype, 'drawPoints', function() {
|
126
51
|
var ctx = this.getContext();
|
@@ -157,97 +82,24 @@
|
|
157
82
|
}
|
158
83
|
|
159
84
|
|
160
|
-
/**
|
161
|
-
* Override a bunch of methods the same way. If the number of points is below the threshold,
|
162
|
-
* run the original method. If not, check for a canvas version or do nothing.
|
163
|
-
*/
|
164
|
-
// each(['translate', 'generatePoints', 'drawTracker', 'drawPoints', 'render'], function (method) {
|
165
|
-
// function branch(proceed) {
|
166
|
-
// var letItPass = this.options.stacking && (method === 'translate' || method === 'generatePoints');
|
167
|
-
// if (((this.processedXData || this.options.data).length < (this.options.boostThreshold || Number.MAX_VALUE) ||
|
168
|
-
// letItPass) || !isChartSeriesBoosting(this.chart)) {
|
169
|
-
|
170
|
-
// // Clear image
|
171
|
-
// if (method === 'render' && this.image) {
|
172
|
-
// this.image.attr({ href: '' });
|
173
|
-
// this.animate = null; // We're zooming in, don't run animation
|
174
|
-
// }
|
175
|
-
|
176
|
-
// proceed.call(this);
|
177
|
-
|
178
|
-
// // If a canvas version of the method exists, like renderCanvas(), run
|
179
|
-
// } else if (this[method + 'Canvas']) {
|
180
|
-
|
181
|
-
// this[method + 'Canvas']();
|
182
|
-
// }
|
183
|
-
// }
|
184
|
-
// wrap(Series.prototype, method, branch);
|
185
|
-
|
186
|
-
// // A special case for some types - its translate method is already wrapped
|
187
|
-
// if (method === 'translate') {
|
188
|
-
// each(['arearange', 'bubble', 'column'], function (type) {
|
189
|
-
// if (seriesTypes[type]) {
|
190
|
-
// wrap(seriesTypes[type].prototype, method, branch);
|
191
|
-
// }
|
192
|
-
// });
|
193
|
-
// }
|
194
|
-
// });
|
195
|
-
|
196
85
|
H.extend(Series.prototype, {
|
197
|
-
directTouch: false,
|
198
|
-
pointRange: 0,
|
199
|
-
allowDG: false, // No data grouping, let boost handle large data
|
200
|
-
hasExtremes: function(checkX) {
|
201
|
-
var options = this.options,
|
202
|
-
data = options.data,
|
203
|
-
xAxis = this.xAxis && this.xAxis.options,
|
204
|
-
yAxis = this.yAxis && this.yAxis.options;
|
205
|
-
return data.length > (options.boostThreshold || Number.MAX_VALUE) && isNumber(yAxis.min) && isNumber(yAxis.max) &&
|
206
|
-
(!checkX || (isNumber(xAxis.min) && isNumber(xAxis.max)));
|
207
|
-
},
|
208
86
|
|
209
87
|
/**
|
210
|
-
*
|
211
|
-
* methods in Highcharts.
|
212
|
-
*/
|
213
|
-
destroyGraphics: function() {
|
214
|
-
var series = this,
|
215
|
-
points = this.points,
|
216
|
-
point,
|
217
|
-
i;
|
218
|
-
|
219
|
-
if (points) {
|
220
|
-
for (i = 0; i < points.length; i = i + 1) {
|
221
|
-
point = points[i];
|
222
|
-
if (point && point.graphic) {
|
223
|
-
point.graphic = point.graphic.destroy();
|
224
|
-
}
|
225
|
-
}
|
226
|
-
}
|
227
|
-
|
228
|
-
each(['graph', 'area', 'tracker'], function(prop) {
|
229
|
-
if (series[prop]) {
|
230
|
-
series[prop] = series[prop].destroy();
|
231
|
-
}
|
232
|
-
});
|
233
|
-
},
|
234
|
-
|
235
|
-
/**
|
236
|
-
* Create a hidden canvas to draw the graph on. The contents is later copied over
|
88
|
+
* Create a hidden canvas to draw the graph on. The contents is later copied over
|
237
89
|
* to an SVG image element.
|
238
90
|
*/
|
239
91
|
getContext: function() {
|
240
92
|
var chart = this.chart,
|
241
93
|
width = chart.chartWidth,
|
242
94
|
height = chart.chartHeight,
|
243
|
-
targetGroup = this.group,
|
95
|
+
targetGroup = chart.seriesGroup || this.group,
|
244
96
|
target = this,
|
245
97
|
ctx,
|
246
98
|
swapXY = function(proceed, x, y, a, b, c, d) {
|
247
99
|
proceed.call(this, y, x, a, b, c, d);
|
248
100
|
};
|
249
101
|
|
250
|
-
if (isChartSeriesBoosting(
|
102
|
+
if (chart.isChartSeriesBoosting()) {
|
251
103
|
target = chart;
|
252
104
|
targetGroup = chart.seriesGroup;
|
253
105
|
}
|
@@ -257,7 +109,7 @@
|
|
257
109
|
if (!target.canvas) {
|
258
110
|
target.canvas = doc.createElement('canvas');
|
259
111
|
|
260
|
-
target.
|
112
|
+
target.renderTarget = chart.renderer.image(
|
261
113
|
'',
|
262
114
|
0,
|
263
115
|
0,
|
@@ -273,6 +125,16 @@
|
|
273
125
|
});
|
274
126
|
}
|
275
127
|
|
128
|
+
target.boostClear = function() {
|
129
|
+
ctx.clearRect(0, 0, target.canvas.width, target.canvas.height);
|
130
|
+
|
131
|
+
if (target.renderTarget) {
|
132
|
+
target.renderTarget.attr({
|
133
|
+
href: ''
|
134
|
+
});
|
135
|
+
}
|
136
|
+
};
|
137
|
+
|
276
138
|
target.boostClipRect = chart.renderer.clipRect(
|
277
139
|
chart.plotLeft,
|
278
140
|
chart.plotTop,
|
@@ -280,7 +142,7 @@
|
|
280
142
|
chart.chartHeight
|
281
143
|
);
|
282
144
|
|
283
|
-
target.
|
145
|
+
target.renderTarget.clip(target.boostClipRect);
|
284
146
|
|
285
147
|
} else if (!(target instanceof H.Chart)) {
|
286
148
|
// ctx.clearRect(0, 0, width, height);
|
@@ -294,17 +156,18 @@
|
|
294
156
|
target.canvas.height = height;
|
295
157
|
}
|
296
158
|
|
297
|
-
target.
|
159
|
+
target.renderTarget.attr({
|
298
160
|
x: 0,
|
299
161
|
y: 0,
|
300
162
|
width: width,
|
301
163
|
height: height,
|
302
|
-
style: 'pointer-events: none'
|
164
|
+
style: 'pointer-events: none',
|
165
|
+
href: ''
|
303
166
|
});
|
304
167
|
|
305
168
|
target.boostClipRect.attr({
|
306
|
-
x:
|
307
|
-
y:
|
169
|
+
x: chart.plotLeft,
|
170
|
+
y: chart.plotTop,
|
308
171
|
width: chart.plotWidth,
|
309
172
|
height: chart.chartHeight
|
310
173
|
});
|
@@ -316,14 +179,12 @@
|
|
316
179
|
* Draw the canvas image inside an SVG image
|
317
180
|
*/
|
318
181
|
canvasToSVG: function() {
|
319
|
-
if (!
|
320
|
-
this.
|
182
|
+
if (!this.chart.isChartSeriesBoosting()) {
|
183
|
+
this.renderTarget.attr({
|
321
184
|
href: this.canvas.toDataURL('image/png')
|
322
185
|
});
|
323
|
-
} else
|
324
|
-
this.
|
325
|
-
href: ''
|
326
|
-
});
|
186
|
+
} else {
|
187
|
+
this.boostClear();
|
327
188
|
}
|
328
189
|
},
|
329
190
|
|
@@ -453,7 +314,7 @@
|
|
453
314
|
// Avoid more string concatination than required
|
454
315
|
kdIndex = clientX + ',' + plotY;
|
455
316
|
|
456
|
-
// The k-d tree requires series points. Reduce the amount of points, since the time to build the
|
317
|
+
// The k-d tree requires series points. Reduce the amount of points, since the time to build the
|
457
318
|
// tree increases exponentially.
|
458
319
|
if (enableMouseTracking && !pointTaken[kdIndex]) {
|
459
320
|
pointTaken[kdIndex] = true;
|
@@ -487,13 +348,18 @@
|
|
487
348
|
);
|
488
349
|
|
489
350
|
series.markerGroup = series.group;
|
490
|
-
|
491
|
-
|
492
|
-
|
351
|
+
addEvent(series, 'destroy', function() { // Prevent destroy twice
|
352
|
+
series.markerGroup = null;
|
353
|
+
});
|
493
354
|
|
494
355
|
points = this.points = [];
|
495
356
|
ctx = this.getContext();
|
496
|
-
series.buildKDTree = noop; // Do not start building while drawing
|
357
|
+
series.buildKDTree = noop; // Do not start building while drawing
|
358
|
+
ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
359
|
+
|
360
|
+
if (!this.visible) {
|
361
|
+
return;
|
362
|
+
}
|
497
363
|
|
498
364
|
// Display a loading indicator
|
499
365
|
if (rawData.length > 99999) {
|
@@ -518,7 +384,7 @@
|
|
518
384
|
}
|
519
385
|
|
520
386
|
// Loop over the points
|
521
|
-
eachAsync(sdata, function(d, i) {
|
387
|
+
H.eachAsync(sdata, function(d, i) {
|
522
388
|
var x,
|
523
389
|
y,
|
524
390
|
clientX,
|
@@ -671,12 +537,6 @@
|
|
671
537
|
}, 250);
|
672
538
|
}
|
673
539
|
|
674
|
-
// Pass tests in Pointer.
|
675
|
-
// Replace this with a single property, and replace when zooming in
|
676
|
-
// below boostThreshold.
|
677
|
-
series.directTouch = false;
|
678
|
-
series.options.stickyTracking = true;
|
679
|
-
|
680
540
|
delete series.buildKDTree; // Go back to prototype, ready to build
|
681
541
|
series.buildKDTree();
|
682
542
|
|
@@ -685,18 +545,13 @@
|
|
685
545
|
}
|
686
546
|
});
|
687
547
|
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
548
|
+
/*
|
549
|
+
wrap(Series.prototype, 'setData', function (proceed) {
|
550
|
+
if (!this.hasExtremes || !this.hasExtremes(true) || this.type === 'heatmap') {
|
551
|
+
proceed.apply(this, Array.prototype.slice.call(arguments, 1));
|
552
|
+
}
|
692
553
|
});
|
693
|
-
|
694
|
-
wrap(Series.prototype, 'processData', function(proceed) {
|
695
|
-
if (!this.hasExtremes || !this.hasExtremes(true) || this.type === 'heatmap') {
|
696
|
-
proceed.apply(this, Array.prototype.slice.call(arguments, 1));
|
697
|
-
}
|
698
|
-
});
|
699
|
-
|
554
|
+
*/
|
700
555
|
seriesTypes.scatter.prototype.cvsMarkerCircle = function(ctx, clientX, plotY, r) {
|
701
556
|
ctx.moveTo(clientX, plotY);
|
702
557
|
ctx.arc(clientX, plotY, r, 0, 2 * Math.PI, false);
|
@@ -740,16 +595,16 @@
|
|
740
595
|
|
741
596
|
H.Chart.prototype.callbacks.push(function(chart) {
|
742
597
|
function canvasToSVG() {
|
743
|
-
if (chart.
|
744
|
-
chart.
|
598
|
+
if (chart.renderTarget && chart.canvas) {
|
599
|
+
chart.renderTarget.attr({
|
745
600
|
href: chart.canvas.toDataURL('image/png')
|
746
601
|
});
|
747
602
|
}
|
748
603
|
}
|
749
604
|
|
750
605
|
function clear() {
|
751
|
-
if (chart.
|
752
|
-
chart.
|
606
|
+
if (chart.renderTarget) {
|
607
|
+
chart.renderTarget.attr({
|
753
608
|
href: ''
|
754
609
|
});
|
755
610
|
}
|