highcharts-rails 4.2.3 → 4.2.4
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 +56 -0
- data/README.markdown +2 -3
- data/app/assets/javascripts/highcharts.js +343 -203
- data/app/assets/javascripts/highcharts/highcharts-3d.js +119 -14
- data/app/assets/javascripts/highcharts/highcharts-more.js +61 -39
- data/app/assets/javascripts/highcharts/modules/boost.js +28 -6
- data/app/assets/javascripts/highcharts/modules/broken-axis.js +5 -7
- data/app/assets/javascripts/highcharts/modules/canvas-tools.js +1 -1
- data/app/assets/javascripts/highcharts/modules/data.js +1 -1
- data/app/assets/javascripts/highcharts/modules/drilldown.js +23 -15
- data/app/assets/javascripts/highcharts/modules/exporting.js +1 -1
- data/app/assets/javascripts/highcharts/modules/funnel.js +2 -10
- data/app/assets/javascripts/highcharts/modules/heatmap.js +1 -1
- data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +2 -2
- data/app/assets/javascripts/highcharts/modules/offline-exporting.js +1 -1
- data/app/assets/javascripts/highcharts/modules/solid-gauge.js +1 -1
- data/app/assets/javascripts/highcharts/modules/treemap.js +26 -12
- data/lib/highcharts/version.rb +1 -1
- metadata +2 -2
@@ -2,7 +2,7 @@
|
|
2
2
|
// @compilation_level SIMPLE_OPTIMIZATIONS
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @license Highcharts JS v4.2.
|
5
|
+
* @license Highcharts JS v4.2.4 (2016-04-14)
|
6
6
|
*
|
7
7
|
* 3D features for Highcharts JS
|
8
8
|
*
|
@@ -19,7 +19,8 @@
|
|
19
19
|
/**
|
20
20
|
Shorthands for often used function
|
21
21
|
*/
|
22
|
-
var
|
22
|
+
var animObject = Highcharts.animObject,
|
23
|
+
each = Highcharts.each,
|
23
24
|
extend = Highcharts.extend,
|
24
25
|
inArray = Highcharts.inArray,
|
25
26
|
merge = Highcharts.merge,
|
@@ -46,7 +47,8 @@
|
|
46
47
|
function perspective(points, chart, insidePlotArea) {
|
47
48
|
var options3d = chart.options.chart.options3d,
|
48
49
|
inverted = false,
|
49
|
-
origin
|
50
|
+
origin,
|
51
|
+
scale = chart.scale3d || 1;
|
50
52
|
|
51
53
|
if (insidePlotArea) {
|
52
54
|
inverted = chart.inverted;
|
@@ -115,10 +117,12 @@
|
|
115
117
|
py = py * (vd / (pz + ze + vd));
|
116
118
|
}
|
117
119
|
|
120
|
+
|
118
121
|
//Apply translation
|
119
|
-
px = px + xe;
|
120
|
-
py = py + ye;
|
121
|
-
pz = pz + ze;
|
122
|
+
px = px * scale + xe;
|
123
|
+
py = py * scale + ye;
|
124
|
+
pz = pz * scale + ze;
|
125
|
+
|
122
126
|
|
123
127
|
result.push({
|
124
128
|
x: (inverted ? py : px),
|
@@ -486,13 +490,9 @@
|
|
486
490
|
delete params.alpha;
|
487
491
|
delete params.beta;
|
488
492
|
|
489
|
-
animation = pick(animation, this.renderer.globalAnimation);
|
493
|
+
animation = animObject(pick(animation, this.renderer.globalAnimation));
|
490
494
|
|
491
|
-
if (animation) {
|
492
|
-
if (typeof animation !== 'object') {
|
493
|
-
animation = {};
|
494
|
-
}
|
495
|
-
|
495
|
+
if (animation.duration) {
|
496
496
|
params = merge(params); // Don't mutate the original object
|
497
497
|
ca = suckOutCustom(params);
|
498
498
|
|
@@ -725,6 +725,106 @@
|
|
725
725
|
return this.options.chart.options3d && this.options.chart.options3d.enabled; // #4280
|
726
726
|
};
|
727
727
|
|
728
|
+
/**
|
729
|
+
* Extend the getMargins method to calculate scale of the 3D view. That is required to
|
730
|
+
* fit chart's 3D projection into the actual plotting area. Reported as #4933.
|
731
|
+
*/
|
732
|
+
Highcharts.wrap(Highcharts.Chart.prototype, 'getMargins', function (proceed) {
|
733
|
+
var chart = this,
|
734
|
+
options3d = chart.options.chart.options3d,
|
735
|
+
bbox3d = {
|
736
|
+
minX: Number.MAX_VALUE,
|
737
|
+
maxX: -Number.MAX_VALUE,
|
738
|
+
minY: Number.MAX_VALUE,
|
739
|
+
maxY: -Number.MAX_VALUE
|
740
|
+
},
|
741
|
+
plotLeft = chart.plotLeft,
|
742
|
+
plotRight = chart.plotWidth + plotLeft,
|
743
|
+
plotTop = chart.plotTop,
|
744
|
+
plotBottom = chart.plotHeight + plotTop,
|
745
|
+
originX = plotLeft + chart.plotWidth / 2,
|
746
|
+
originY = plotTop + chart.plotHeight / 2,
|
747
|
+
scale = 1,
|
748
|
+
corners = [],
|
749
|
+
i;
|
750
|
+
|
751
|
+
proceed.apply(this, [].slice.call(arguments, 1));
|
752
|
+
|
753
|
+
if (this.is3d()) {
|
754
|
+
if (options3d.fitToPlot === true) {
|
755
|
+
// Clear previous scale in case of updates:
|
756
|
+
chart.scale3d = 1;
|
757
|
+
|
758
|
+
// Top left corners:
|
759
|
+
corners = [{
|
760
|
+
x: plotLeft,
|
761
|
+
y: plotTop,
|
762
|
+
z: 0
|
763
|
+
}, {
|
764
|
+
x: plotLeft,
|
765
|
+
y: plotTop,
|
766
|
+
z: options3d.depth
|
767
|
+
}];
|
768
|
+
|
769
|
+
// Top right corners:
|
770
|
+
for (i = 0; i < 2; i++) {
|
771
|
+
corners.push({
|
772
|
+
x: plotRight,
|
773
|
+
y: corners[i].y,
|
774
|
+
z: corners[i].z
|
775
|
+
});
|
776
|
+
}
|
777
|
+
|
778
|
+
// All bottom corners:
|
779
|
+
for (i = 0; i < 4; i++) {
|
780
|
+
corners.push({
|
781
|
+
x: corners[i].x,
|
782
|
+
y: plotBottom,
|
783
|
+
z: corners[i].z
|
784
|
+
});
|
785
|
+
}
|
786
|
+
|
787
|
+
// Calculate 3D corners:
|
788
|
+
corners = perspective(corners, chart, false);
|
789
|
+
|
790
|
+
// Get bounding box of 3D element:
|
791
|
+
each(corners, function (corner) {
|
792
|
+
bbox3d.minX = Math.min(bbox3d.minX, corner.x);
|
793
|
+
bbox3d.maxX = Math.max(bbox3d.maxX, corner.x);
|
794
|
+
bbox3d.minY = Math.min(bbox3d.minY, corner.y);
|
795
|
+
bbox3d.maxY = Math.max(bbox3d.maxY, corner.y);
|
796
|
+
});
|
797
|
+
|
798
|
+
// Left edge:
|
799
|
+
if (plotLeft > bbox3d.minX) {
|
800
|
+
scale = Math.min(scale, 1 - Math.abs((plotLeft + originX) / (bbox3d.minX + originX)) % 1);
|
801
|
+
}
|
802
|
+
|
803
|
+
// Right edge:
|
804
|
+
if (plotRight < bbox3d.maxX) {
|
805
|
+
scale = Math.min(scale, (plotRight - originX) / (bbox3d.maxX - originX));
|
806
|
+
}
|
807
|
+
|
808
|
+
// Top edge:
|
809
|
+
if (plotTop > bbox3d.minY) {
|
810
|
+
if (bbox3d.minY < 0) {
|
811
|
+
scale = Math.min(scale, (plotTop + originY) / (-bbox3d.minY + plotTop + originY));
|
812
|
+
} else {
|
813
|
+
scale = Math.min(scale, 1 - (plotTop + originY) / (bbox3d.minY + originY) % 1);
|
814
|
+
}
|
815
|
+
}
|
816
|
+
|
817
|
+
// Bottom edge:
|
818
|
+
if (plotBottom < bbox3d.maxY) {
|
819
|
+
scale = Math.min(scale, Math.abs((plotBottom - originY) / (bbox3d.maxY - originY)));
|
820
|
+
}
|
821
|
+
|
822
|
+
// Set scale, used later in perspective method():
|
823
|
+
chart.scale3d = scale;
|
824
|
+
}
|
825
|
+
}
|
826
|
+
});
|
827
|
+
|
728
828
|
Highcharts.wrap(Highcharts.Chart.prototype, 'isInsidePlot', function (proceed) {
|
729
829
|
return this.is3d() || proceed.apply(this, [].slice.call(arguments, 1));
|
730
830
|
});
|
@@ -735,6 +835,7 @@
|
|
735
835
|
alpha: 0,
|
736
836
|
beta: 0,
|
737
837
|
depth: 100,
|
838
|
+
fitToPlot: true,
|
738
839
|
viewDistance: 25,
|
739
840
|
frame: {
|
740
841
|
bottom: { size: 1, color: 'rgba(255,255,255,0)' },
|
@@ -1213,7 +1314,7 @@
|
|
1213
1314
|
shapeArgs.insidePlotArea = true;
|
1214
1315
|
|
1215
1316
|
// Translate the tooltip position in 3d space
|
1216
|
-
tooltipPos = perspective([{ x: tooltipPos[0], y: tooltipPos[1], z: z }], chart,
|
1317
|
+
tooltipPos = perspective([{ x: tooltipPos[0], y: tooltipPos[1], z: z }], chart, true)[0];
|
1217
1318
|
point.tooltipPos = [tooltipPos.x, tooltipPos.y];
|
1218
1319
|
}
|
1219
1320
|
});
|
@@ -1495,7 +1596,7 @@
|
|
1495
1596
|
// #4584 Check if has graphic - null points don't have it
|
1496
1597
|
if (graphic) {
|
1497
1598
|
// Hide null or 0 points (#3006, 3650)
|
1498
|
-
graphic[point.y ? 'show' : 'hide']();
|
1599
|
+
graphic[point.y && point.visible ? 'show' : 'hide']();
|
1499
1600
|
}
|
1500
1601
|
});
|
1501
1602
|
}
|
@@ -1653,6 +1754,10 @@
|
|
1653
1754
|
this.axisTypes = ['xAxis', 'yAxis', 'zAxis'];
|
1654
1755
|
this.pointArrayMap = ['x', 'y', 'z'];
|
1655
1756
|
this.parallelArrays = ['x', 'y', 'z'];
|
1757
|
+
|
1758
|
+
// Require direct touch rather than using the k-d-tree, because the k-d-tree currently doesn't
|
1759
|
+
// take the xyz coordinate system into account (#4552)
|
1760
|
+
this.directTouch = true;
|
1656
1761
|
}
|
1657
1762
|
|
1658
1763
|
var result = proceed.apply(this, [chart, options]);
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// @compilation_level SIMPLE_OPTIMIZATIONS
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @license Highcharts JS v4.2.
|
5
|
+
* @license Highcharts JS v4.2.4 (2016-04-14)
|
6
6
|
*
|
7
7
|
* (c) 2009-2016 Torstein Honsi
|
8
8
|
*
|
@@ -24,6 +24,7 @@ var arrayMin = Highcharts.arrayMin,
|
|
24
24
|
map = Highcharts.map,
|
25
25
|
pick = Highcharts.pick,
|
26
26
|
pInt = Highcharts.pInt,
|
27
|
+
correctFloat = Highcharts.correctFloat,
|
27
28
|
defaultPlotOptions = Highcharts.getOptions().plotOptions,
|
28
29
|
seriesTypes = Highcharts.seriesTypes,
|
29
30
|
extendClass = Highcharts.extendClass,
|
@@ -971,7 +972,10 @@ var arrayMin = Highcharts.arrayMin,
|
|
971
972
|
var series = this,
|
972
973
|
yAxis = series.yAxis,
|
973
974
|
xAxis = series.xAxis,
|
975
|
+
startAngleRad = xAxis.startAngleRad,
|
976
|
+
start,
|
974
977
|
chart = series.chart,
|
978
|
+
isRadial = series.xAxis.isRadial,
|
975
979
|
plotHigh;
|
976
980
|
|
977
981
|
colProto.translate.apply(series);
|
@@ -989,7 +993,7 @@ var arrayMin = Highcharts.arrayMin,
|
|
989
993
|
|
990
994
|
// adjust shape
|
991
995
|
y = plotHigh;
|
992
|
-
height = point.plotY - plotHigh;
|
996
|
+
height = pick(point.rectPlotY, point.plotY) - plotHigh;
|
993
997
|
|
994
998
|
// Adjust for minPointLength
|
995
999
|
if (Math.abs(height) < minPointLength) {
|
@@ -1003,19 +1007,28 @@ var arrayMin = Highcharts.arrayMin,
|
|
1003
1007
|
y -= height;
|
1004
1008
|
}
|
1005
1009
|
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1010
|
+
if (isRadial) {
|
1011
|
+
|
1012
|
+
start = point.barX + startAngleRad;
|
1013
|
+
point.shapeType = 'path';
|
1014
|
+
point.shapeArgs = {
|
1015
|
+
d: series.polarArc(y + height, y, start, start + point.pointWidth)
|
1016
|
+
};
|
1017
|
+
} else {
|
1018
|
+
shapeArgs.height = height;
|
1019
|
+
shapeArgs.y = y;
|
1020
|
+
|
1021
|
+
point.tooltipPos = chart.inverted ?
|
1022
|
+
[
|
1023
|
+
yAxis.len + yAxis.pos - chart.plotLeft - y - height / 2,
|
1024
|
+
xAxis.len + xAxis.pos - chart.plotTop - shapeArgs.x - shapeArgs.width / 2,
|
1025
|
+
height
|
1026
|
+
] : [
|
1027
|
+
xAxis.left - chart.plotLeft + shapeArgs.x + shapeArgs.width / 2,
|
1028
|
+
yAxis.pos - chart.plotTop + y + height / 2,
|
1029
|
+
height
|
1030
|
+
]; // don't inherit from column tooltip position - #3372
|
1031
|
+
}
|
1019
1032
|
});
|
1020
1033
|
},
|
1021
1034
|
directTouch: true,
|
@@ -1025,8 +1038,13 @@ var arrayMin = Highcharts.arrayMin,
|
|
1025
1038
|
pointAttrToOptions: colProto.pointAttrToOptions,
|
1026
1039
|
drawPoints: colProto.drawPoints,
|
1027
1040
|
drawTracker: colProto.drawTracker,
|
1028
|
-
|
1029
|
-
|
1041
|
+
getColumnMetrics: colProto.getColumnMetrics,
|
1042
|
+
animate: function () {
|
1043
|
+
return colProto.animate.apply(this, arguments);
|
1044
|
+
},
|
1045
|
+
polarArc: function () {
|
1046
|
+
return colProto.polarArc.apply(this, arguments);
|
1047
|
+
}
|
1030
1048
|
});
|
1031
1049
|
}());
|
1032
1050
|
|
@@ -1096,6 +1114,7 @@ var arrayMin = Highcharts.arrayMin,
|
|
1096
1114
|
// chart.angular will be set to true when a gauge series is present, and this will
|
1097
1115
|
// be used on the axes
|
1098
1116
|
angular: true,
|
1117
|
+
directTouch: true, // #5063
|
1099
1118
|
drawGraph: noop,
|
1100
1119
|
fixedBox: true,
|
1101
1120
|
forceDL: true,
|
@@ -1658,9 +1677,9 @@ var arrayMin = Highcharts.arrayMin,
|
|
1658
1677
|
// override point value for sums
|
1659
1678
|
// #3710 Update point does not propagate to sum
|
1660
1679
|
if (point.isSum) {
|
1661
|
-
point.y = yValue;
|
1680
|
+
point.y = correctFloat(yValue);
|
1662
1681
|
} else if (point.isIntermediateSum) {
|
1663
|
-
point.y = yValue - previousIntermediate; // #3840
|
1682
|
+
point.y = correctFloat(yValue - previousIntermediate); // #3840
|
1664
1683
|
}
|
1665
1684
|
// up points
|
1666
1685
|
y = mathMax(previousY, previousY + point.y) + range[0];
|
@@ -1740,9 +1759,9 @@ var arrayMin = Highcharts.arrayMin,
|
|
1740
1759
|
point = points && points[i] ? points[i] : {};
|
1741
1760
|
|
1742
1761
|
if (y === 'sum' || point.isSum) {
|
1743
|
-
yData[i] = sum;
|
1762
|
+
yData[i] = correctFloat(sum);
|
1744
1763
|
} else if (y === 'intermediateSum' || point.isIntermediateSum) {
|
1745
|
-
yData[i] = subSum;
|
1764
|
+
yData[i] = correctFloat(subSum);
|
1746
1765
|
} else {
|
1747
1766
|
sum += y;
|
1748
1767
|
subSum += y;
|
@@ -2194,7 +2213,7 @@ var arrayMin = Highcharts.arrayMin,
|
|
2194
2213
|
|
2195
2214
|
if (range > 0) {
|
2196
2215
|
while (i--) {
|
2197
|
-
if (typeof data[i] === 'number') {
|
2216
|
+
if (typeof data[i] === 'number' && axis.dataMin <= data[i] && data[i] <= axis.dataMax) {
|
2198
2217
|
radius = series.radii[i];
|
2199
2218
|
pxMin = Math.min(((data[i] - min) * transA) - radius, pxMin);
|
2200
2219
|
pxMax = Math.max(((data[i] - min) * transA) + radius, pxMax);
|
@@ -2529,6 +2548,24 @@ var arrayMin = Highcharts.arrayMin,
|
|
2529
2548
|
if (seriesTypes.column) {
|
2530
2549
|
|
2531
2550
|
colProto = seriesTypes.column.prototype;
|
2551
|
+
|
2552
|
+
colProto.polarArc = function (low, high, start, end) {
|
2553
|
+
var center = this.xAxis.center,
|
2554
|
+
len = this.yAxis.len;
|
2555
|
+
|
2556
|
+
return this.chart.renderer.symbols.arc(
|
2557
|
+
center[0],
|
2558
|
+
center[1],
|
2559
|
+
len - high,
|
2560
|
+
null,
|
2561
|
+
{
|
2562
|
+
start: start,
|
2563
|
+
end: end,
|
2564
|
+
innerR: len - pick(low, len)
|
2565
|
+
}
|
2566
|
+
);
|
2567
|
+
};
|
2568
|
+
|
2532
2569
|
/**
|
2533
2570
|
* Define the animate method for columnseries
|
2534
2571
|
*/
|
@@ -2541,10 +2578,7 @@ var arrayMin = Highcharts.arrayMin,
|
|
2541
2578
|
wrap(colProto, 'translate', function (proceed) {
|
2542
2579
|
|
2543
2580
|
var xAxis = this.xAxis,
|
2544
|
-
len = this.yAxis.len,
|
2545
|
-
center = xAxis.center,
|
2546
2581
|
startAngleRad = xAxis.startAngleRad,
|
2547
|
-
renderer = this.chart.renderer,
|
2548
2582
|
start,
|
2549
2583
|
points,
|
2550
2584
|
point,
|
@@ -2563,23 +2597,11 @@ var arrayMin = Highcharts.arrayMin,
|
|
2563
2597
|
point = points[i];
|
2564
2598
|
start = point.barX + startAngleRad;
|
2565
2599
|
point.shapeType = 'path';
|
2566
|
-
point.shapeArgs =
|
2567
|
-
d: renderer.symbols.arc(
|
2568
|
-
center[0],
|
2569
|
-
center[1],
|
2570
|
-
len - point.plotY,
|
2571
|
-
null,
|
2572
|
-
{
|
2573
|
-
start: start,
|
2574
|
-
end: start + point.pointWidth,
|
2575
|
-
innerR: len - pick(point.yBottom, len)
|
2576
|
-
}
|
2577
|
-
)
|
2578
|
-
};
|
2600
|
+
point.shapeArgs = this.polarArc(point.yBottom, point.plotY, start, start + point.pointWidth);
|
2579
2601
|
// Provide correct plotX, plotY for tooltip
|
2580
2602
|
this.toXY(point);
|
2581
2603
|
point.tooltipPos = [point.plotX, point.plotY];
|
2582
|
-
point.ttBelow = point.plotY > center[1];
|
2604
|
+
point.ttBelow = point.plotY > xAxis.center[1];
|
2583
2605
|
}
|
2584
2606
|
}
|
2585
2607
|
});
|
@@ -11,7 +11,8 @@
|
|
11
11
|
* - Column range.
|
12
12
|
* - Heatmap.
|
13
13
|
* - Treemap.
|
14
|
-
* - Check how it works with Highstock and data grouping.
|
14
|
+
* - Check how it works with Highstock and data grouping. Currently it only works when navigator.adaptToUpdatedData
|
15
|
+
* is false. It is also recommended to set scrollbar.liveRedraw to false.
|
15
16
|
* - Check inverted charts.
|
16
17
|
* - Check reversed axes.
|
17
18
|
* - Chart callback should be async after last series is drawn. (But not necessarily, we don't do
|
@@ -29,7 +30,8 @@
|
|
29
30
|
*
|
30
31
|
* Notes for boost mode
|
31
32
|
* - Area lines are not drawn
|
32
|
-
* - Point markers are not drawn
|
33
|
+
* - Point markers are not drawn on line-type series
|
34
|
+
* - Lines are not drawn on scatter charts
|
33
35
|
* - Zones and negativeColor don't work
|
34
36
|
* - Columns are always one pixel wide. Don't set the threshold too low.
|
35
37
|
*
|
@@ -64,6 +66,7 @@
|
|
64
66
|
extend = H.extend,
|
65
67
|
addEvent = H.addEvent,
|
66
68
|
fireEvent = H.fireEvent,
|
69
|
+
grep = H.grep,
|
67
70
|
merge = H.merge,
|
68
71
|
pick = H.pick,
|
69
72
|
wrap = H.wrap,
|
@@ -160,7 +163,7 @@
|
|
160
163
|
|
161
164
|
H.extend(Series.prototype, {
|
162
165
|
pointRange: 0,
|
163
|
-
|
166
|
+
allowDG: false, // No data grouping, let boost handle large data
|
164
167
|
hasExtremes: function (checkX) {
|
165
168
|
var options = this.options,
|
166
169
|
data = options.data,
|
@@ -222,8 +225,8 @@
|
|
222
225
|
ctx.clearRect(0, 0, width, height);
|
223
226
|
}
|
224
227
|
|
225
|
-
this.canvas.
|
226
|
-
this.canvas.
|
228
|
+
this.canvas.width = width;
|
229
|
+
this.canvas.height = height;
|
227
230
|
this.image.attr({
|
228
231
|
width: width,
|
229
232
|
height: height
|
@@ -534,7 +537,6 @@
|
|
534
537
|
|
535
538
|
// Rect is twice as fast as arc, should be used for small markers
|
536
539
|
seriesTypes.scatter.prototype.cvsMarkerSquare = function (ctx, clientX, plotY, r) {
|
537
|
-
ctx.moveTo(clientX, plotY);
|
538
540
|
ctx.rect(clientX - r, plotY - r, r * 2, r * 2);
|
539
541
|
};
|
540
542
|
seriesTypes.scatter.prototype.fill = true;
|
@@ -583,6 +585,26 @@
|
|
583
585
|
return point;
|
584
586
|
};
|
585
587
|
|
588
|
+
/**
|
589
|
+
* Extend series.destroy to also remove the fake k-d-tree points (#5137). Normally
|
590
|
+
* this is handled by Series.destroy that calls Point.destroy, but the fake
|
591
|
+
* search points are not registered like that.
|
592
|
+
*/
|
593
|
+
wrap(Series.prototype, 'destroy', function (proceed) {
|
594
|
+
var series = this,
|
595
|
+
chart = series.chart;
|
596
|
+
if (chart.hoverPoints) {
|
597
|
+
chart.hoverPoints = grep(chart.hoverPoints, function (point) {
|
598
|
+
return point.series === series;
|
599
|
+
});
|
600
|
+
}
|
601
|
+
|
602
|
+
if (chart.hoverPoint && chart.hoverPoint.series === series) {
|
603
|
+
chart.hoverPoint = null;
|
604
|
+
}
|
605
|
+
proceed.call(this);
|
606
|
+
});
|
607
|
+
|
586
608
|
/**
|
587
609
|
* Return a point instance from the k-d-tree
|
588
610
|
*/
|