highcharts-rails 6.0.1 → 6.0.2

Sign up to get free protection for your applications and to get access to all the features.
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