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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.markdown +16 -0
  3. data/app/assets/javascripts/highcharts.js +188 -51
  4. data/app/assets/javascripts/highcharts/highcharts-3d.js +3 -4
  5. data/app/assets/javascripts/highcharts/highcharts-more.js +21 -5
  6. data/app/assets/javascripts/highcharts/modules/accessibility.js +4 -2
  7. data/app/assets/javascripts/highcharts/modules/annotations.js +2 -2
  8. data/app/assets/javascripts/highcharts/modules/boost-canvas.js +50 -195
  9. data/app/assets/javascripts/highcharts/modules/boost.js +202 -135
  10. data/app/assets/javascripts/highcharts/modules/broken-axis.js +1 -1
  11. data/app/assets/javascripts/highcharts/modules/bullet.js +1 -1
  12. data/app/assets/javascripts/highcharts/modules/data.js +88 -59
  13. data/app/assets/javascripts/highcharts/modules/drag-panes.js +1 -1
  14. data/app/assets/javascripts/highcharts/modules/drilldown.js +25 -2
  15. data/app/assets/javascripts/highcharts/modules/export-data.js +6 -2
  16. data/app/assets/javascripts/highcharts/modules/exporting.js +1 -1
  17. data/app/assets/javascripts/highcharts/modules/funnel.js +1 -1
  18. data/app/assets/javascripts/highcharts/modules/gantt.js +2 -2
  19. data/app/assets/javascripts/highcharts/modules/grid-axis.js +1 -1
  20. data/app/assets/javascripts/highcharts/modules/heatmap.js +826 -820
  21. data/app/assets/javascripts/highcharts/modules/histogram-bellcurve.js +1 -1
  22. data/app/assets/javascripts/highcharts/modules/item-series.js +1 -1
  23. data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +1 -1
  24. data/app/assets/javascripts/highcharts/modules/offline-exporting.js +2 -2
  25. data/app/assets/javascripts/highcharts/modules/oldie.js +16 -2
  26. data/app/assets/javascripts/highcharts/modules/overlapping-datalabels.js +1 -1
  27. data/app/assets/javascripts/highcharts/modules/parallel-coordinates.js +1 -1
  28. data/app/assets/javascripts/highcharts/modules/pareto.js +1 -1
  29. data/app/assets/javascripts/highcharts/modules/sankey.js +39 -9
  30. data/app/assets/javascripts/highcharts/modules/series-label.js +8 -3
  31. data/app/assets/javascripts/highcharts/modules/solid-gauge.js +1 -1
  32. data/app/assets/javascripts/highcharts/modules/static-scale.js +6 -2
  33. data/app/assets/javascripts/highcharts/modules/stock.js +19 -47
  34. data/app/assets/javascripts/highcharts/modules/streamgraph.js +1 -1
  35. data/app/assets/javascripts/highcharts/modules/sunburst.js +40 -15
  36. data/app/assets/javascripts/highcharts/modules/tilemap.js +7 -6
  37. data/app/assets/javascripts/highcharts/modules/treemap.js +13 -3
  38. data/app/assets/javascripts/highcharts/modules/variable-pie.js +1 -1
  39. data/app/assets/javascripts/highcharts/modules/variwide.js +1 -1
  40. data/app/assets/javascripts/highcharts/modules/vector.js +1 -1
  41. data/app/assets/javascripts/highcharts/modules/windbarb.js +1 -1
  42. data/app/assets/javascripts/highcharts/modules/wordcloud.js +130 -37
  43. data/app/assets/javascripts/highcharts/modules/xrange.js +2 -2
  44. data/app/assets/javascripts/highcharts/themes/avocado.js +1 -1
  45. data/app/assets/javascripts/highcharts/themes/dark-blue.js +1 -1
  46. data/app/assets/javascripts/highcharts/themes/dark-green.js +1 -1
  47. data/app/assets/javascripts/highcharts/themes/dark-unica.js +1 -1
  48. data/app/assets/javascripts/highcharts/themes/gray.js +1 -1
  49. data/app/assets/javascripts/highcharts/themes/grid-light.js +1 -1
  50. data/app/assets/javascripts/highcharts/themes/grid.js +1 -1
  51. data/app/assets/javascripts/highcharts/themes/sand-signika.js +1 -1
  52. data/app/assets/javascripts/highcharts/themes/skies.js +1 -1
  53. data/app/assets/javascripts/highcharts/themes/sunset.js +1 -1
  54. data/lib/highcharts/version.rb +1 -1
  55. metadata +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.1 (2017-10-05)
2
+ * @license Highcharts JS v6.0.2 (2017-10-20)
3
3
  * Boost module
4
4
  *
5
5
  * (c) 2010-2017 Highsoft AS
@@ -271,6 +271,7 @@
271
271
  var win = H.win,
272
272
  doc = win.document,
273
273
  noop = function() {},
274
+ Chart = H.Chart,
274
275
  Color = H.Color,
275
276
  Series = H.Series,
276
277
  seriesTypes = H.seriesTypes,
@@ -460,7 +461,11 @@
460
461
  r = -Number.MAX_VALUE;
461
462
 
462
463
  each(args, function(t) {
463
- if (typeof t !== 'undefined' && typeof t.length !== 'undefined') {
464
+ if (
465
+ typeof t !== 'undefined' &&
466
+ t !== null &&
467
+ typeof t.length !== 'undefined'
468
+ ) {
464
469
  // r = r < t.length ? t.length : r;
465
470
  if (t.length > 0) {
466
471
  r = t.length;
@@ -529,29 +534,35 @@
529
534
  * @param chart {Highchart.Chart} - the chart to check
530
535
  * @returns {Boolean} - true if the chart is in series boost mode
531
536
  */
532
- function isChartSeriesBoosting(chart) {
537
+ Chart.prototype.isChartSeriesBoosting = function() {
533
538
  var threshold = 50;
534
539
 
535
- threshold = chart.options.boost && typeof chart.options.boost.seriesThreshold !== 'undefined' ?
536
- chart.options.boost.seriesThreshold : threshold;
540
+ threshold = (
541
+ this.options.boost &&
542
+ typeof this.options.boost.seriesThreshold !== 'undefined'
543
+ ) ?
544
+ this.options.boost.seriesThreshold :
545
+ threshold;
537
546
 
538
- return threshold <= chart.series.length ||
539
- shouldForceChartSeriesBoosting(chart);
540
- }
547
+ return threshold <= this.series.length ||
548
+ shouldForceChartSeriesBoosting(this);
549
+ };
541
550
 
542
551
  /*
543
552
  * Returns true if the series is in boost mode
544
553
  * @param series {Highchart.Series} - the series to check
545
554
  * @returns {boolean} - true if the series is in boost mode
546
555
  */
556
+ /*
547
557
  function isSeriesBoosting(series, overrideThreshold) {
548
- return isChartSeriesBoosting(series.chart) ||
549
- patientMax(
550
- series.processedXData,
551
- series.options.data,
552
- series.points
553
- ) >= (overrideThreshold || series.options.boostThreshold || Number.MAX_VALUE);
558
+ return isChartSeriesBoosting(series.chart) ||
559
+ patientMax(
560
+ series.processedXData,
561
+ series.options.data,
562
+ series.points
563
+ ) >= (overrideThreshold || series.options.boostThreshold || Number.MAX_VALUE);
554
564
  }
565
+ */
555
566
 
556
567
  // START OF WEBGL ABSTRACTIONS
557
568
 
@@ -1239,7 +1250,7 @@
1239
1250
  xData,
1240
1251
  s;
1241
1252
 
1242
- if (isSeriesBoosting(series)) {
1253
+ if (series.isSeriesBoosting) {
1243
1254
  isStacked = !!series.options.stacking;
1244
1255
  xData = series.xData || series.options.xData || series.processedXData;
1245
1256
  s = (isStacked ? series.data : (xData || series.options.data)).length;
@@ -1267,7 +1278,7 @@
1267
1278
  }
1268
1279
 
1269
1280
  each(chart.series, function(series) {
1270
- if (isSeriesBoosting(series)) {
1281
+ if (series.isSeriesBoosting) {
1271
1282
  s += seriesPointCount(series);
1272
1283
  }
1273
1284
  });
@@ -1282,7 +1293,7 @@
1282
1293
  return;
1283
1294
  }
1284
1295
 
1285
- if (isSeriesBoosting(series)) {
1296
+ if (series.isSeriesBoosting) {
1286
1297
  s = seriesPointCount(series);
1287
1298
  }
1288
1299
 
@@ -2305,7 +2316,7 @@
2305
2316
  '1.1'
2306
2317
  );
2307
2318
 
2308
- if (isChartSeriesBoosting(chart)) {
2319
+ if (chart.isChartSeriesBoosting()) {
2309
2320
  target = chart;
2310
2321
  } else {
2311
2322
  target = series;
@@ -2451,7 +2462,7 @@
2451
2462
  if (renderer &&
2452
2463
  series.renderTarget &&
2453
2464
  series.canvas &&
2454
- !isChartSeriesBoosting(chart || series.chart)
2465
+ !(chart || series.chart).isChartSeriesBoosting()
2455
2466
  ) {
2456
2467
  renderer.render(chart || series.chart);
2457
2468
  }
@@ -2461,23 +2472,24 @@
2461
2472
  if (renderer &&
2462
2473
  series.renderTarget &&
2463
2474
  series.canvas &&
2464
- !isChartSeriesBoosting(series.chart)
2475
+ !series.chart.isChartSeriesBoosting()
2465
2476
  ) {
2466
2477
  renderer.allocateBufferForSingleSeries(series);
2467
2478
  }
2468
2479
  }
2469
2480
 
2470
2481
  /*
2471
- * An "async" foreach loop.
2472
- * Uses a setTimeout to keep the loop from blocking the UI thread
2482
+ * An "async" foreach loop. Uses a setTimeout to keep the loop from blocking the
2483
+ * UI thread.
2484
+ *
2473
2485
  * @param arr {Array} - the array to loop through
2474
2486
  * @param fn {Function} - the callback to call for each item
2475
2487
  * @param finalFunc {Function} - the callback to call when done
2476
- * @param chunkSize {Number} - the number of iterations per. timeout
2488
+ * @param chunkSize {Number} - the number of iterations per timeout
2477
2489
  * @param i {Number} - the current index
2478
2490
  * @param noTimeout {Boolean} - set to true to skip timeouts
2479
2491
  */
2480
- function eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout) {
2492
+ H.eachAsync = function(arr, fn, finalFunc, chunkSize, i, noTimeout) {
2481
2493
  i = i || 0;
2482
2494
  chunkSize = chunkSize || CHUNK_SIZE;
2483
2495
 
@@ -2493,15 +2505,15 @@
2493
2505
  if (i < arr.length) {
2494
2506
 
2495
2507
  if (noTimeout) {
2496
- eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout);
2508
+ H.eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout);
2497
2509
  } else if (win.requestAnimationFrame) {
2498
2510
  // If available, do requestAnimationFrame - shaves off a few ms
2499
2511
  win.requestAnimationFrame(function() {
2500
- eachAsync(arr, fn, finalFunc, chunkSize, i);
2512
+ H.eachAsync(arr, fn, finalFunc, chunkSize, i);
2501
2513
  });
2502
2514
  } else {
2503
2515
  setTimeout(function() {
2504
- eachAsync(arr, fn, finalFunc, chunkSize, i);
2516
+ H.eachAsync(arr, fn, finalFunc, chunkSize, i);
2505
2517
  });
2506
2518
  }
2507
2519
 
@@ -2509,7 +2521,7 @@
2509
2521
  finalFunc();
2510
2522
  }
2511
2523
  }
2512
- }
2524
+ };
2513
2525
 
2514
2526
  // /////////////////////////////////////////////////////////////////////////////
2515
2527
  // Following is the parts of the boost that's common between OGL/Legacy
@@ -2584,7 +2596,7 @@
2584
2596
  * to hasExtremes to the methods directly.
2585
2597
  */
2586
2598
  wrap(Series.prototype, 'getExtremes', function(proceed) {
2587
- if (!isSeriesBoosting(this) || (!this.hasExtremes || !this.hasExtremes())) {
2599
+ if (!this.isSeriesBoosting || (!this.hasExtremes || !this.hasExtremes())) {
2588
2600
  return proceed.apply(this, Array.prototype.slice.call(arguments, 1));
2589
2601
  }
2590
2602
  });
@@ -2626,37 +2638,13 @@
2626
2638
  this.chart.options.boost.enabled;
2627
2639
  }
2628
2640
 
2629
- if (!isSeriesBoosting(this) ||
2641
+ if (!this.isSeriesBoosting ||
2630
2642
  letItPass ||
2631
2643
  !enabled ||
2632
2644
  this.type === 'heatmap' ||
2633
2645
  this.type === 'treemap'
2634
2646
  ) {
2635
2647
 
2636
- // Clear image
2637
- if (method === 'render') {
2638
- this.stickyTracking = (this.options || {}).stickyTracking;
2639
-
2640
- if (this.boostClear) {
2641
- this.boostClear();
2642
- this.animate = null; // We're zooming in, don't run animation
2643
- }
2644
- }
2645
-
2646
- if (!this.options.stacking && method === 'translate' &&
2647
- this.type !== 'treemap' &&
2648
- this.type !== 'heatmap') {
2649
- // We call generate points and check if we're now boosting
2650
- // so that we don't have to call series.translate
2651
- // when zooming out from SVG mode (which is very, very expensive)
2652
-
2653
- this.generatePoints();
2654
-
2655
- if (isSeriesBoosting(this)) {
2656
- return;
2657
- }
2658
- }
2659
-
2660
2648
  proceed.call(this);
2661
2649
 
2662
2650
  // If a canvas version of the method exists, like renderCanvas(), run
@@ -2691,6 +2679,158 @@
2691
2679
  }
2692
2680
  });
2693
2681
 
2682
+ /** If the series is a heatmap or treemap, or if the series is not boosting
2683
+ * do the default behaviour. Otherwise, process if the series has no
2684
+ * extremes.
2685
+ */
2686
+ wrap(Series.prototype, 'processData', function(proceed) {
2687
+
2688
+ var series = this,
2689
+ dataToMeasure = this.options.data;
2690
+
2691
+ // Used twice in this function, first on this.options.data, the second
2692
+ // time it runs the check again after processedXData is built.
2693
+ // @todo Check what happens with data grouping
2694
+ function getSeriesBoosting(data) {
2695
+ return series.chart.isChartSeriesBoosting() || (
2696
+ (data ? data.length : 0) >=
2697
+ (series.options.boostThreshold || Number.MAX_VALUE)
2698
+ );
2699
+ }
2700
+
2701
+ // If there are no extremes given in the options, we also need to process
2702
+ // the data to read the data extremes. If this is a heatmap, do default
2703
+ // behaviour.
2704
+ if (!getSeriesBoosting(dataToMeasure) || // First pass with options.data
2705
+ this.type === 'heatmap' ||
2706
+ this.type === 'treemap' ||
2707
+ !this.hasExtremes ||
2708
+ !this.hasExtremes(true)
2709
+ ) {
2710
+ proceed.apply(this, Array.prototype.slice.call(arguments, 1));
2711
+ dataToMeasure = this.processedXData;
2712
+ }
2713
+
2714
+ /*
2715
+ if (!this.hasExtremes || !this.hasExtremes(true)) {
2716
+ proceed.apply(this, Array.prototype.slice.call(arguments, 1));
2717
+ }
2718
+ */
2719
+
2720
+ // Set the isBoosting flag, second pass with processedXData to see if we
2721
+ // have zoomed.
2722
+ this.isSeriesBoosting = getSeriesBoosting(dataToMeasure);
2723
+
2724
+ // Enter or exit boost mode
2725
+ if (this.isSeriesBoosting) {
2726
+ this.enterBoost();
2727
+ } else if (this.exitBoost) {
2728
+ this.exitBoost();
2729
+ }
2730
+ });
2731
+
2732
+ wrap(Series.prototype, 'setVisible', function(proceed, vis, redraw) {
2733
+ proceed.call(this, vis, redraw);
2734
+ if (this.visible === false && this.canvas && this.renderTarget) {
2735
+ if (this.ogl) {
2736
+ this.ogl.clear();
2737
+ }
2738
+ this.boostClear();
2739
+ }
2740
+ });
2741
+
2742
+ /**
2743
+ * Enter boost mode and apply boost-specific properties.
2744
+ */
2745
+ Series.prototype.enterBoost = function() {
2746
+
2747
+ this.alteredByBoost = [];
2748
+
2749
+ // Save the original values, including whether it was an own property or
2750
+ // inherited from the prototype.
2751
+ each(['allowDG', 'directTouch', 'stickyTracking'], function(prop) {
2752
+ this.alteredByBoost.push({
2753
+ prop: prop,
2754
+ val: this[prop],
2755
+ own: this.hasOwnProperty(prop)
2756
+ });
2757
+ }, this);
2758
+
2759
+ this.allowDG = false;
2760
+ this.directTouch = false;
2761
+ this.stickyTracking = true;
2762
+
2763
+ // Once we've been in boost mode, we don't want animation when returning to
2764
+ // vanilla mode.
2765
+ this.animate = null;
2766
+
2767
+ // Hide series label if any
2768
+ if (this.labelBySeries) {
2769
+ this.labelBySeries = this.labelBySeries.destroy();
2770
+ }
2771
+ };
2772
+
2773
+ /**
2774
+ * Exit from boost mode and restore non-boost properties.
2775
+ */
2776
+ Series.prototype.exitBoost = function() {
2777
+ // Reset instance properties and/or delete instance properties and go back
2778
+ // to prototype
2779
+ each(this.alteredByBoost || [], function(setting) {
2780
+ if (setting.own) {
2781
+ this[setting.prop] = setting.val;
2782
+ } else {
2783
+ // Revert to prototype
2784
+ delete this[setting.prop];
2785
+ }
2786
+ }, this);
2787
+
2788
+ // Clear previous run
2789
+ if (this.boostClear) {
2790
+ this.boostClear();
2791
+ }
2792
+
2793
+ };
2794
+
2795
+ Series.prototype.hasExtremes = function(checkX) {
2796
+ var options = this.options,
2797
+ data = options.data,
2798
+ xAxis = this.xAxis && this.xAxis.options,
2799
+ yAxis = this.yAxis && this.yAxis.options;
2800
+
2801
+ return data.length > (options.boostThreshold || Number.MAX_VALUE) &&
2802
+ isNumber(yAxis.min) && isNumber(yAxis.max) &&
2803
+ (!checkX || (isNumber(xAxis.min) && isNumber(xAxis.max)));
2804
+ };
2805
+
2806
+ /**
2807
+ * If implemented in the core, parts of this can probably be
2808
+ * shared with other similar methods in Highcharts.
2809
+ */
2810
+ Series.prototype.destroyGraphics = function() {
2811
+ var series = this,
2812
+ points = this.points,
2813
+ point,
2814
+ i;
2815
+
2816
+ if (points) {
2817
+ for (i = 0; i < points.length; i = i + 1) {
2818
+ point = points[i];
2819
+ if (point && point.graphic) {
2820
+ point.graphic = point.graphic.destroy();
2821
+ }
2822
+ }
2823
+ }
2824
+
2825
+ each(['graph', 'area', 'tracker'], function(prop) {
2826
+ if (series[prop]) {
2827
+ series[prop] = series[prop].destroy();
2828
+ }
2829
+ });
2830
+ };
2831
+
2832
+
2833
+
2694
2834
  /*
2695
2835
  * Returns true if the current browser supports webgl
2696
2836
  */
@@ -2729,7 +2869,7 @@
2729
2869
  this.chart.options.boost.enabled;
2730
2870
  }
2731
2871
 
2732
- if (!enabled || !isSeriesBoosting(this)) {
2872
+ if (!enabled || !this.isSeriesBoosting) {
2733
2873
  return proceed.call(this);
2734
2874
  }
2735
2875
 
@@ -2761,63 +2901,9 @@
2761
2901
  // /////////////////////////////////////////////////////////////////////////
2762
2902
  // GL-SPECIFIC WRAPPINGS FOLLOWS
2763
2903
 
2764
- /** If the series is a heatmap or treemap, or if the series is not boosting
2765
- * do the default behaviour. Otherwise, process if the series has no
2766
- * extremes.
2767
- */
2768
- wrap(Series.prototype, 'processData', function(proceed) {
2769
- // If this is a heatmap, do default behaviour
2770
- if (!isSeriesBoosting(this) ||
2771
- this.type === 'heatmap' ||
2772
- this.type === 'treemap') {
2773
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
2774
- }
2775
2904
 
2776
- if (!this.hasExtremes || !this.hasExtremes(true)) {
2777
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
2778
- }
2779
- });
2780
2905
 
2781
2906
  H.extend(Series.prototype, {
2782
- pointRange: 0,
2783
- directTouch: false,
2784
- allowDG: false, // No data grouping, let boost handle large data
2785
- hasExtremes: function(checkX) {
2786
- var options = this.options,
2787
- data = options.data,
2788
- xAxis = this.xAxis && this.xAxis.options,
2789
- yAxis = this.yAxis && this.yAxis.options;
2790
-
2791
- return data.length > (options.boostThreshold || Number.MAX_VALUE) &&
2792
- isNumber(yAxis.min) && isNumber(yAxis.max) &&
2793
- (!checkX || (isNumber(xAxis.min) && isNumber(xAxis.max)));
2794
- },
2795
-
2796
- /**
2797
- * If implemented in the core, parts of this can probably be
2798
- * shared with other similar methods in Highcharts.
2799
- */
2800
- destroyGraphics: function() {
2801
- var series = this,
2802
- points = this.points,
2803
- point,
2804
- i;
2805
-
2806
- if (points) {
2807
- for (i = 0; i < points.length; i = i + 1) {
2808
- point = points[i];
2809
- if (point && point.graphic) {
2810
- point.graphic = point.graphic.destroy();
2811
- }
2812
- }
2813
- }
2814
-
2815
- each(['graph', 'area', 'tracker'], function(prop) {
2816
- if (series[prop]) {
2817
- series[prop] = series[prop].destroy();
2818
- }
2819
- });
2820
- },
2821
2907
 
2822
2908
  renderCanvas: function() {
2823
2909
  var series = this,
@@ -2888,9 +2974,6 @@
2888
2974
 
2889
2975
  boostOptions = renderer.settings;
2890
2976
 
2891
- // Force sticky tracking
2892
- this.stickyTracking = true;
2893
-
2894
2977
  if (!this.visible) {
2895
2978
  return;
2896
2979
  }
@@ -2904,7 +2987,7 @@
2904
2987
 
2905
2988
  // If we're rendering per. series we should create the marker groups
2906
2989
  // as usual.
2907
- if (!isChartSeriesBoosting(chart)) {
2990
+ if (!chart.isChartSeriesBoosting()) {
2908
2991
  this.markerGroup = series.plotGroup(
2909
2992
  'markerGroup',
2910
2993
  'markers',
@@ -3017,11 +3100,6 @@
3017
3100
 
3018
3101
  function doneProcessing() {
3019
3102
  fireEvent(series, 'renderedCanvas');
3020
- // Pass tests in Pointer.
3021
- // Replace this with a single property, and replace when zooming
3022
- // in below boostThreshold.
3023
- series.directTouch = false;
3024
- series.options.stickyTracking = true;
3025
3103
 
3026
3104
  // Go back to prototype, ready to build
3027
3105
  delete series.buildKDTree;
@@ -3038,7 +3116,7 @@
3038
3116
  console.time('kd tree building'); // eslint-disable-line no-console
3039
3117
  }
3040
3118
 
3041
- eachAsync(
3119
+ H.eachAsync(
3042
3120
  isStacked ? series.data : (xData || rawData),
3043
3121
  processPoint,
3044
3122
  doneProcessing
@@ -3058,7 +3136,6 @@
3058
3136
  function(t) {
3059
3137
  if (seriesTypes[t]) {
3060
3138
  wrap(seriesTypes[t].prototype, 'drawPoints', pointDrawHandler);
3061
- seriesTypes[t].prototype.directTouch = false; // Use k-d-tree
3062
3139
  }
3063
3140
  }
3064
3141
  );
@@ -3067,14 +3144,14 @@
3067
3144
  // By default, the bubble series does not use the KD-tree, so force it
3068
3145
  // to.
3069
3146
  delete seriesTypes.bubble.prototype.buildKDTree;
3070
- seriesTypes.bubble.prototype.directTouch = false;
3147
+ // seriesTypes.bubble.prototype.directTouch = false;
3071
3148
 
3072
3149
  // Needed for markers to work correctly
3073
3150
  wrap(
3074
3151
  seriesTypes.bubble.prototype,
3075
3152
  'markerAttribs',
3076
3153
  function(proceed) {
3077
- if (isSeriesBoosting(this)) {
3154
+ if (this.isSeriesBoosting) {
3078
3155
  return false;
3079
3156
  }
3080
3157
  return proceed.apply(this, [].slice.call(arguments, 1));
@@ -3096,16 +3173,6 @@
3096
3173
  sampling: true
3097
3174
  });
3098
3175
 
3099
- wrap(Series.prototype, 'setVisible', function(proceed, vis, redraw) {
3100
- proceed.call(this, vis, redraw);
3101
- if (this.visible === false && this.canvas && this.renderTarget) {
3102
- if (this.ogl) {
3103
- this.ogl.clear();
3104
- }
3105
- this.boostClear();
3106
- }
3107
- });
3108
-
3109
3176
  /**
3110
3177
  * Take care of the canvas blitting
3111
3178
  */
@@ -3113,7 +3180,7 @@
3113
3180
 
3114
3181
  /* Convert chart-level canvas to image */
3115
3182
  function canvasToSVG() {
3116
- if (chart.ogl && isChartSeriesBoosting(chart)) {
3183
+ if (chart.ogl && chart.isChartSeriesBoosting()) {
3117
3184
  chart.ogl.render(chart);
3118
3185
  }
3119
3186
  }
@@ -3125,7 +3192,7 @@
3125
3192
  chart.boostForceChartBoost = shouldForceChartSeriesBoosting(chart);
3126
3193
  chart.isBoosting = false;
3127
3194
 
3128
- if (!isChartSeriesBoosting(chart) && chart.didBoost) {
3195
+ if (!chart.isChartSeriesBoosting() && chart.didBoost) {
3129
3196
  chart.didBoost = false;
3130
3197
  }
3131
3198
 
@@ -3134,7 +3201,7 @@
3134
3201
  chart.boostClear();
3135
3202
  }
3136
3203
 
3137
- if (chart.canvas && chart.ogl && isChartSeriesBoosting(chart)) {
3204
+ if (chart.canvas && chart.ogl && chart.isChartSeriesBoosting()) {
3138
3205
  chart.didBoost = true;
3139
3206
 
3140
3207
  // Allocate