highcharts-rails 4.1.3 → 4.1.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 +22 -0
- data/app/assets/javascripts/highcharts.js +68 -38
- data/app/assets/javascripts/highcharts/adapters/standalone-framework.js +1 -1
- data/app/assets/javascripts/highcharts/highcharts-3d.js +14 -9
- data/app/assets/javascripts/highcharts/highcharts-more.js +4 -2
- data/app/assets/javascripts/highcharts/modules/broken-axis.js +1 -1
- data/app/assets/javascripts/highcharts/modules/canvas-tools.js +1 -1
- data/app/assets/javascripts/highcharts/modules/data.js +2 -3
- data/app/assets/javascripts/highcharts/modules/drilldown.js +19 -11
- data/app/assets/javascripts/highcharts/modules/exporting.js +1 -17
- data/app/assets/javascripts/highcharts/modules/heatmap.js +21 -12
- data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +1 -1
- data/app/assets/javascripts/highcharts/modules/solid-gauge.js +1 -1
- data/app/assets/javascripts/highcharts/modules/treemap.js +1 -1
- data/lib/highcharts/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a7d99b4cb1d1ab05f71178ae10706be52327a3b
|
4
|
+
data.tar.gz: a7da74086801908f0f8bc9307b897d3785a72ef6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 869e6f15881a96a6e4ea3702577060313f26390f05a6000824915dad2257e4750c3cfd580da5b241de82c097f565373e3b2a0c6c2f35c624ec48987b1a13529f
|
7
|
+
data.tar.gz: 0a94857739a4ae98560cded6a9475ef03e53e3ecaacacd3be7cc368d6e33968fa7ece801cbf03585ad8e1920dc34df467a0139ca7bba486a00de38d7154fa904
|
data/CHANGELOG.markdown
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
# 4.1.4 / 2015-03-10
|
2
|
+
|
3
|
+
* Updated Highcharts to 4.1.4
|
4
|
+
* Added originalEvent to wrapped event argument for point and series click. Closed #3913.
|
5
|
+
* Changed description for error 23 (related to #3920).
|
6
|
+
* Fixed data.parseDate callback.
|
7
|
+
* Fixed #1093, chart was resized after cancelling print.
|
8
|
+
* Fixed #3890, errors on box plots and error bar series when stacking was set in general plot options.
|
9
|
+
* Fixed #3891, axis label rotation not working outside -90 to 90.
|
10
|
+
* Fixed #3899, tooltip on column range only working on one point per X value.
|
11
|
+
* Fixed #3901, tooltip displaying for null points.
|
12
|
+
* Fixed #3904, shared tooltip gave errors with null points.
|
13
|
+
* Fixed #3911, data label duplication on WebKit with Retina displays.
|
14
|
+
* Fixed #3919, click event always triggered on the same point with a shared tooltip.
|
15
|
+
* Fixed #3920, color tweening with gradient fills caused black result.
|
16
|
+
* Fixed #3926, tooltip not showing when entering the plot directly on a column.
|
17
|
+
* Fixed #3932, shadow was not applied when negativeColor was used.
|
18
|
+
* Fixed #3934, pie chart did not update when legend was hidden.
|
19
|
+
* Fixed #3937, pointer events not reset after chart destroy.
|
20
|
+
* Fixed #3945, tooltip did't work afer resize.
|
21
|
+
* Fixed regression causing mouseover to not work with a single series.
|
22
|
+
|
1
23
|
# 4.1.3 / 2015-02-27
|
2
24
|
|
3
25
|
* Updated Highcharts to 4.1.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// @compilation_level SIMPLE_OPTIMIZATIONS
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @license Highcharts JS v4.1.
|
5
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
6
6
|
*
|
7
7
|
* (c) 2009-2014 Torstein Honsi
|
8
8
|
*
|
@@ -56,7 +56,7 @@ var UNDEFINED,
|
|
56
56
|
charts = [],
|
57
57
|
chartCount = 0,
|
58
58
|
PRODUCT = 'Highcharts',
|
59
|
-
VERSION = '4.1.
|
59
|
+
VERSION = '4.1.4',
|
60
60
|
|
61
61
|
// some constants for frequently used strings
|
62
62
|
DIV = 'div',
|
@@ -149,8 +149,8 @@ function merge() {
|
|
149
149
|
value = original[key];
|
150
150
|
|
151
151
|
// Copy the contents of objects, but not arrays or DOM nodes
|
152
|
-
if (value && typeof value === 'object' && Object.prototype.toString.call(value) !== '[object Array]'
|
153
|
-
|
152
|
+
if (value && typeof value === 'object' && Object.prototype.toString.call(value) !== '[object Array]' &&
|
153
|
+
key !== 'renderTo' && typeof value.nodeType !== 'number') {
|
154
154
|
copy[key] = doCopy(copy[key] || {}, value);
|
155
155
|
|
156
156
|
// Primitives and arrays are copied over directly
|
@@ -1259,8 +1259,8 @@ defaultOptions = {
|
|
1259
1259
|
global: {
|
1260
1260
|
useUTC: true,
|
1261
1261
|
//timezoneOffset: 0,
|
1262
|
-
canvasToolsURL: 'http://code.highcharts.com/4.1.
|
1263
|
-
VMLRadialGradientURL: 'http://code.highcharts.com/4.1.
|
1262
|
+
canvasToolsURL: 'http://code.highcharts.com/4.1.4/modules/canvas-tools.js',
|
1263
|
+
VMLRadialGradientURL: 'http://code.highcharts.com/4.1.4/gfx/vml-radial-gradient.png'
|
1264
1264
|
},
|
1265
1265
|
chart: {
|
1266
1266
|
//animation: true,
|
@@ -1768,7 +1768,8 @@ var Color = function (input) {
|
|
1768
1768
|
get: get,
|
1769
1769
|
brighten: brighten,
|
1770
1770
|
rgba: rgba,
|
1771
|
-
setOpacity: setOpacity
|
1771
|
+
setOpacity: setOpacity,
|
1772
|
+
raw: input
|
1772
1773
|
};
|
1773
1774
|
};
|
1774
1775
|
|
@@ -2858,17 +2859,22 @@ SVGElement.prototype = {
|
|
2858
2859
|
otherZIndex,
|
2859
2860
|
element = this.element,
|
2860
2861
|
inserted,
|
2862
|
+
run = this.added,
|
2861
2863
|
i;
|
2862
2864
|
|
2863
2865
|
if (defined(value)) {
|
2864
2866
|
element.setAttribute(key, value); // So we can read it for other elements in the group
|
2865
|
-
|
2867
|
+
value = +value;
|
2868
|
+
if (this[key] === value) { // Only update when needed (#3865)
|
2869
|
+
run = false;
|
2870
|
+
}
|
2871
|
+
this[key] = value;
|
2866
2872
|
}
|
2867
2873
|
|
2868
2874
|
// Insert according to this and other elements' zIndex. Before .add() is called,
|
2869
2875
|
// nothing is done. Then on add, or by later calls to zIndexSetter, the node
|
2870
2876
|
// is placed on the right place in the DOM.
|
2871
|
-
if (
|
2877
|
+
if (run) {
|
2872
2878
|
value = this.zIndex;
|
2873
2879
|
|
2874
2880
|
if (value && parentGroup) {
|
@@ -4152,7 +4158,11 @@ SVGRenderer.prototype = {
|
|
4152
4158
|
if (x !== text.x || y !== text.y) {
|
4153
4159
|
text.attr('x', x);
|
4154
4160
|
if (y !== UNDEFINED) {
|
4155
|
-
|
4161
|
+
// As a workaround for #3649, use translation instead of y attribute. #3649
|
4162
|
+
// is a rendering bug in WebKit for Retina (Mac, iOS, PhantomJS) that
|
4163
|
+
// results in duplicated text when an y attribute is used in combination
|
4164
|
+
// with a CSS text-style.
|
4165
|
+
text.attr(text.element.nodeName === 'SPAN' ? 'y' : 'translateY', y);
|
4156
4166
|
}
|
4157
4167
|
}
|
4158
4168
|
|
@@ -7193,17 +7203,18 @@ Axis.prototype = {
|
|
7193
7203
|
linkedParent = axis.linkedParent,
|
7194
7204
|
ordinalCorrection,
|
7195
7205
|
hasCategories = !!axis.categories,
|
7196
|
-
transA = axis.transA
|
7206
|
+
transA = axis.transA,
|
7207
|
+
isXAxis = axis.isXAxis;
|
7197
7208
|
|
7198
7209
|
// Adjust translation for padding. Y axis with categories need to go through the same (#1784).
|
7199
|
-
if (
|
7210
|
+
if (isXAxis || hasCategories || pointRange) {
|
7200
7211
|
if (linkedParent) {
|
7201
7212
|
minPointOffset = linkedParent.minPointOffset;
|
7202
7213
|
pointRangePadding = linkedParent.pointRangePadding;
|
7203
7214
|
|
7204
7215
|
} else {
|
7205
7216
|
each(axis.series, function (series) {
|
7206
|
-
var seriesPointRange = hasCategories ? 1 : (
|
7217
|
+
var seriesPointRange = hasCategories ? 1 : (isXAxis ? series.pointRange : (axis.axisPointRange || 0)), // #2806
|
7207
7218
|
pointPlacement = series.options.pointPlacement,
|
7208
7219
|
seriesClosestPointRange = series.closestPointRange;
|
7209
7220
|
|
@@ -7249,7 +7260,9 @@ Axis.prototype = {
|
|
7249
7260
|
// closestPointRange means the closest distance between points. In columns
|
7250
7261
|
// it is mostly equal to pointRange, but in lines pointRange is 0 while closestPointRange
|
7251
7262
|
// is some other value
|
7252
|
-
|
7263
|
+
if (isXAxis) {
|
7264
|
+
axis.closestPointRange = closestPointRange;
|
7265
|
+
}
|
7253
7266
|
}
|
7254
7267
|
|
7255
7268
|
// Secondary values
|
@@ -7886,7 +7899,7 @@ Axis.prototype = {
|
|
7886
7899
|
each(autoRotation, function (rot) {
|
7887
7900
|
var score;
|
7888
7901
|
|
7889
|
-
if (rot && rot >= -90 && rot <= 90) {
|
7902
|
+
if (rot === rotationOption || (rot && rot >= -90 && rot <= 90)) { // #3891
|
7890
7903
|
|
7891
7904
|
step = getStep(mathAbs(labelMetrics.h / mathSin(deg2rad * rot)));
|
7892
7905
|
|
@@ -9528,6 +9541,7 @@ Pointer.prototype = {
|
|
9528
9541
|
}
|
9529
9542
|
}
|
9530
9543
|
|
9544
|
+
// Handle shared tooltip or cases where a series is not yet hovered
|
9531
9545
|
if (!(hoverSeries && hoverSeries.noSharedTooltip) && (shared || !hoverSeries)) { // #3821
|
9532
9546
|
// Find nearest points on all series
|
9533
9547
|
each(series, function (s) {
|
@@ -9549,35 +9563,43 @@ Pointer.prototype = {
|
|
9549
9563
|
kdpoint = p;
|
9550
9564
|
}
|
9551
9565
|
}
|
9552
|
-
//point = kdpoints[0];
|
9553
9566
|
});
|
9567
|
+
|
9568
|
+
// Handle non-shared tooltips
|
9554
9569
|
} else {
|
9555
|
-
|
9570
|
+
// If it has a hoverPoint and that series requires direct touch (like columns), use the hoverPoint (#3899).
|
9571
|
+
// Otherwise, search the k-d tree (like scatter).
|
9572
|
+
kdpoint = (hoverSeries.directTouch && hoverPoint) || (hoverSeries && hoverSeries.searchPoint(e));
|
9556
9573
|
}
|
9557
9574
|
|
9558
|
-
// Refresh tooltip for kdpoint
|
9559
|
-
if (kdpoint && kdpoint !== hoverPoint) {
|
9575
|
+
// Refresh tooltip for kdpoint if new hover point or tooltip was hidden // #3926
|
9576
|
+
if (kdpoint && (kdpoint !== hoverPoint || (tooltip && tooltip.isHidden))) {
|
9560
9577
|
// Draw tooltip if necessary
|
9561
9578
|
if (shared && !kdpoint.series.noSharedTooltip) {
|
9562
9579
|
i = kdpoints.length;
|
9563
9580
|
trueXkd = kdpoint.clientX;
|
9564
9581
|
while (i--) {
|
9565
9582
|
trueX = kdpoints[i].clientX;
|
9566
|
-
if (kdpoints[i].x !== kdpoint.x || trueX !== trueXkd ||
|
9583
|
+
if (kdpoints[i].x !== kdpoint.x || trueX !== trueXkd || (kdpoints[i].series.noSharedTooltip || false)) {
|
9567
9584
|
kdpoints.splice(i, 1);
|
9568
9585
|
}
|
9569
9586
|
}
|
9570
|
-
if (tooltip) {
|
9587
|
+
if (kdpoints.length && tooltip) {
|
9571
9588
|
tooltip.refresh(kdpoints, e);
|
9572
9589
|
}
|
9590
|
+
|
9591
|
+
// do mouseover on all points except the closest
|
9573
9592
|
each(kdpoints, function (point) {
|
9574
|
-
point
|
9575
|
-
|
9593
|
+
if (point !== kdpoint) {
|
9594
|
+
point.onMouseOver(e);
|
9595
|
+
}
|
9596
|
+
});
|
9597
|
+
kdpoint.onMouseOver(e); // #3919 do mouseover on the closest point last to ensure it is the hoverpoint
|
9576
9598
|
} else {
|
9577
|
-
if (tooltip) {
|
9599
|
+
if (tooltip) {
|
9578
9600
|
tooltip.refresh(kdpoint, e);
|
9579
9601
|
}
|
9580
|
-
kdpoint.onMouseOver(e);
|
9602
|
+
kdpoint.onMouseOver(e);
|
9581
9603
|
}
|
9582
9604
|
|
9583
9605
|
// Update positions (regardless of kdpoint or hoverPoint)
|
@@ -9592,7 +9614,9 @@ Pointer.prototype = {
|
|
9592
9614
|
// Start the event listener to pick up the tooltip
|
9593
9615
|
if (tooltip && !pointer._onDocumentMouseMove) {
|
9594
9616
|
pointer._onDocumentMouseMove = function (e) {
|
9595
|
-
|
9617
|
+
if (charts[hoverChartIndex]) {
|
9618
|
+
charts[hoverChartIndex].pointer.onDocumentMouseMove(e);
|
9619
|
+
}
|
9596
9620
|
};
|
9597
9621
|
addEvent(doc, 'mousemove', pointer._onDocumentMouseMove);
|
9598
9622
|
}
|
@@ -9968,6 +9992,7 @@ Pointer.prototype = {
|
|
9968
9992
|
plotTop = chart.plotTop;
|
9969
9993
|
|
9970
9994
|
e = this.normalize(e);
|
9995
|
+
e.originalEvent = e; // #3913
|
9971
9996
|
e.cancelBubble = true; // IE specific
|
9972
9997
|
|
9973
9998
|
if (!chart.cancelClick) {
|
@@ -11900,7 +11925,7 @@ Chart.prototype = {
|
|
11900
11925
|
|
11901
11926
|
// Width and height checks for display:none. Target is doc in IE8 and Opera,
|
11902
11927
|
// win in Firefox, Chrome and IE9.
|
11903
|
-
if (!chart.hasUserSize && width && height && (target === win || target === doc)) {
|
11928
|
+
if (!chart.hasUserSize && !chart.isPrinting && width && height && (target === win || target === doc)) { // #1093
|
11904
11929
|
if (width !== chart.containerWidth || height !== chart.containerHeight) {
|
11905
11930
|
clearTimeout(chart.reflowTimeout);
|
11906
11931
|
if (e) { // Called from window.resize
|
@@ -14256,7 +14281,7 @@ Series.prototype = {
|
|
14256
14281
|
series[graphKey] = series.chart.renderer.path(graphPath)
|
14257
14282
|
.attr(attribs)
|
14258
14283
|
.add(series.group)
|
14259
|
-
.shadow(
|
14284
|
+
.shadow((i < 2) && options.shadow); // add shadow to normal series (0) or to first zone (1) #3932
|
14260
14285
|
}
|
14261
14286
|
});
|
14262
14287
|
},
|
@@ -14550,6 +14575,7 @@ Series.prototype = {
|
|
14550
14575
|
var series = this,
|
14551
14576
|
chart = series.chart,
|
14552
14577
|
wasDirtyData = series.isDirtyData, // cache it here as it is set to false in render, but used after
|
14578
|
+
wasDirty = series.isDirty,
|
14553
14579
|
group = series.group,
|
14554
14580
|
xAxis = series.xAxis,
|
14555
14581
|
yAxis = series.yAxis;
|
@@ -14571,11 +14597,12 @@ Series.prototype = {
|
|
14571
14597
|
|
14572
14598
|
series.translate();
|
14573
14599
|
series.render();
|
14574
|
-
|
14575
14600
|
if (wasDirtyData) {
|
14576
|
-
delete this.kdTree; // #3868 recalculate the kdtree with dirty data
|
14577
14601
|
fireEvent(series, 'updatedData');
|
14578
14602
|
}
|
14603
|
+
if (wasDirty || wasDirtyData) { // #3945 recalculate the kdtree when dirty
|
14604
|
+
delete this.kdTree; // #3868 recalculate the kdtree with dirty data
|
14605
|
+
}
|
14579
14606
|
},
|
14580
14607
|
|
14581
14608
|
/**
|
@@ -14629,9 +14656,12 @@ Series.prototype = {
|
|
14629
14656
|
}
|
14630
14657
|
}
|
14631
14658
|
|
14632
|
-
// Start the recursive build process with a clone of the points array (#3873)
|
14659
|
+
// Start the recursive build process with a clone of the points array and null points filtered out (#3873)
|
14633
14660
|
function startRecursive() {
|
14634
|
-
|
14661
|
+
var points = grep(series.points, function (point) {
|
14662
|
+
return point.y !== null;
|
14663
|
+
});
|
14664
|
+
series.kdTree = _kdtree(points, dimensions, dimensions);
|
14635
14665
|
}
|
14636
14666
|
|
14637
14667
|
delete series.kdTree;
|
@@ -15195,7 +15225,7 @@ extend(Point.prototype, {
|
|
15195
15225
|
chart.isDirtyBox = true;
|
15196
15226
|
}
|
15197
15227
|
|
15198
|
-
if (seriesOptions.legendType === 'point') { // #1831, #1885
|
15228
|
+
if (chart.legend.display && seriesOptions.legendType === 'point') { // #1831, #1885, #3934
|
15199
15229
|
series.updateTotals();
|
15200
15230
|
chart.legend.clearItems();
|
15201
15231
|
}
|
@@ -17535,7 +17565,7 @@ if (seriesTypes.column) {
|
|
17535
17565
|
|
17536
17566
|
|
17537
17567
|
/**
|
17538
|
-
* Highcharts JS v4.1.
|
17568
|
+
* Highcharts JS v4.1.4 (2015-03-10)
|
17539
17569
|
* Highcharts module to hide overlapping data labels. This module is included by default in Highmaps.
|
17540
17570
|
*
|
17541
17571
|
* (c) 2010-2014 Torstein Honsi
|
@@ -17649,10 +17679,6 @@ var TrackerMixin = Highcharts.TrackerMixin = {
|
|
17649
17679
|
var target = e.target,
|
17650
17680
|
point;
|
17651
17681
|
|
17652
|
-
if (chart.hoverSeries !== series) {
|
17653
|
-
series.onMouseOver();
|
17654
|
-
}
|
17655
|
-
|
17656
17682
|
while (target && !point) {
|
17657
17683
|
point = target.point;
|
17658
17684
|
target = target.parentNode;
|
@@ -18046,6 +18072,10 @@ extend(Point.prototype, {
|
|
18046
18072
|
tooltip = chart.tooltip,
|
18047
18073
|
hoverPoint = chart.hoverPoint;
|
18048
18074
|
|
18075
|
+
if (chart.hoverSeries !== series) {
|
18076
|
+
series.onMouseOver();
|
18077
|
+
}
|
18078
|
+
|
18049
18079
|
// set normal state to previous series
|
18050
18080
|
if (hoverPoint && hoverPoint !== point) {
|
18051
18081
|
hoverPoint.onMouseOut();
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// @compilation_level SIMPLE_OPTIMIZATIONS
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @license Highcharts JS v4.1.
|
5
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
6
6
|
*
|
7
7
|
* (c) 2009-2013 Torstein Hønsi
|
8
8
|
*
|
@@ -579,16 +579,21 @@ Highcharts.wrap(Highcharts.Chart.prototype, 'redraw', function (proceed) {
|
|
579
579
|
proceed.apply(this, [].slice.call(arguments, 1));
|
580
580
|
});
|
581
581
|
|
582
|
-
// Draw the series in the reverse order (#3803)
|
583
|
-
Highcharts.Chart.prototype
|
584
|
-
var
|
582
|
+
// Draw the series in the reverse order (#3803, #3917)
|
583
|
+
Highcharts.wrap(Highcharts.Chart.prototype, 'renderSeries', function (proceed) {
|
584
|
+
var series,
|
585
585
|
i = this.series.length;
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
586
|
+
|
587
|
+
if (this.is3d()) {
|
588
|
+
while (i--) {
|
589
|
+
series = this.series[i];
|
590
|
+
series.translate();
|
591
|
+
series.render();
|
592
|
+
}
|
593
|
+
} else {
|
594
|
+
proceed.call(this);
|
590
595
|
}
|
591
|
-
};
|
596
|
+
});
|
592
597
|
|
593
598
|
Highcharts.Chart.prototype.retrieveStacks = function (stacking) {
|
594
599
|
var series = this.series,
|
@@ -2,7 +2,7 @@
|
|
2
2
|
// @compilation_level SIMPLE_OPTIMIZATIONS
|
3
3
|
|
4
4
|
/**
|
5
|
-
* @license Highcharts JS v4.1.
|
5
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
6
6
|
*
|
7
7
|
* (c) 2009-2014 Torstein Honsi
|
8
8
|
*
|
@@ -975,6 +975,7 @@ seriesTypes.areasplinerange = extendClass(seriesTypes.arearange, {
|
|
975
975
|
shapeArgs.y = y;
|
976
976
|
});
|
977
977
|
},
|
978
|
+
directTouch: true,
|
978
979
|
trackerGroups: ['group', 'dataLabelsGroup'],
|
979
980
|
drawGraph: noop,
|
980
981
|
pointAttrToOptions: colProto.pointAttrToOptions,
|
@@ -1487,7 +1488,8 @@ seriesTypes.boxplot = extendClass(seriesTypes.column, {
|
|
1487
1488
|
}
|
1488
1489
|
});
|
1489
1490
|
|
1490
|
-
}
|
1491
|
+
},
|
1492
|
+
setStackedPoints: noop // #3890
|
1491
1493
|
|
1492
1494
|
|
1493
1495
|
});
|
@@ -2908,7 +2908,7 @@ if (CanvasRenderingContext2D) {
|
|
2908
2908
|
});
|
2909
2909
|
}
|
2910
2910
|
}/**
|
2911
|
-
* @license Highcharts JS v4.1.
|
2911
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
2912
2912
|
* CanVGRenderer Extension module
|
2913
2913
|
*
|
2914
2914
|
* (c) 2011-2012 Torstein Honsi, Erik Olsson
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v4.1.
|
2
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
3
3
|
* Data module
|
4
4
|
*
|
5
5
|
* (c) 2012-2014 Torstein Honsi
|
@@ -520,9 +520,8 @@
|
|
520
520
|
|
521
521
|
if (parseDate) {
|
522
522
|
ret = parseDate(val);
|
523
|
-
}
|
524
523
|
|
525
|
-
if (typeof val === 'string') {
|
524
|
+
} else if (typeof val === 'string') {
|
526
525
|
// Auto-detect the date format the first time
|
527
526
|
if (!dateFormat) {
|
528
527
|
for (key in this.dateFormats) {
|
@@ -31,24 +31,32 @@
|
|
31
31
|
// Utilities
|
32
32
|
/*
|
33
33
|
* Return an intermediate color between two colors, according to pos where 0
|
34
|
-
* is the from color and 1 is the to color
|
34
|
+
* is the from color and 1 is the to color. This method is copied from ColorAxis.js
|
35
|
+
* and should always be kept updated, until we get AMD support.
|
35
36
|
*/
|
36
37
|
function tweenColors(from, to, pos) {
|
37
38
|
// Check for has alpha, because rgba colors perform worse due to lack of
|
38
39
|
// support in WebKit.
|
39
|
-
var hasAlpha
|
40
|
+
var hasAlpha,
|
41
|
+
ret;
|
40
42
|
|
41
|
-
|
42
|
-
to
|
43
|
-
hasAlpha = (to[3] !== 1 || from[3] !== 1);
|
44
|
-
if (!to.length || !from.length) {
|
43
|
+
// Unsupported color, return to-color (#3920)
|
44
|
+
if (!to.rgba.length || !from.rgba.length) {
|
45
45
|
Highcharts.error(23);
|
46
|
+
ret = to.raw;
|
47
|
+
|
48
|
+
// Interpolate
|
49
|
+
} else {
|
50
|
+
from = from.rgba;
|
51
|
+
to = to.rgba;
|
52
|
+
hasAlpha = (to[3] !== 1 || from[3] !== 1);
|
53
|
+
ret = (hasAlpha ? 'rgba(' : 'rgb(') +
|
54
|
+
Math.round(to[0] + (from[0] - to[0]) * (1 - pos)) + ',' +
|
55
|
+
Math.round(to[1] + (from[1] - to[1]) * (1 - pos)) + ',' +
|
56
|
+
Math.round(to[2] + (from[2] - to[2]) * (1 - pos)) +
|
57
|
+
(hasAlpha ? (',' + (to[3] + (from[3] - to[3]) * (1 - pos))) : '') + ')';
|
46
58
|
}
|
47
|
-
return
|
48
|
-
Math.round(to[0] + (from[0] - to[0]) * (1 - pos)) + ',' +
|
49
|
-
Math.round(to[1] + (from[1] - to[1]) * (1 - pos)) + ',' +
|
50
|
-
Math.round(to[2] + (from[2] - to[2]) * (1 - pos)) +
|
51
|
-
(hasAlpha ? (',' + (to[3] + (from[3] - to[3]) * (1 - pos))) : '') + ')';
|
59
|
+
return ret;
|
52
60
|
}
|
53
61
|
/**
|
54
62
|
* Handle animation of the color attributes directly
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v4.1.
|
2
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
3
3
|
* Exporting module
|
4
4
|
*
|
5
5
|
* (c) 2010-2014 Torstein Honsi
|
@@ -209,22 +209,6 @@ extend(Chart.prototype, {
|
|
209
209
|
.replace(/<\/svg>.*?$/, '</svg>')
|
210
210
|
// Batik doesn't support rgba fills and strokes (#3095)
|
211
211
|
.replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/g, '$1="rgb($2)" $1-opacity="$3"')
|
212
|
-
|
213
|
-
// An issue with PhantomJS as of 2015-01-11. Revisit with newer versions. (#3649)
|
214
|
-
.replace(/(text-shadow:)([^;"]+)([;"])/g, function (s, $1, $2, $3) {
|
215
|
-
// Escape commas within rgb and rgba definitions
|
216
|
-
$2 = $2.replace(/\([^\)]+\)/g, function (s) {
|
217
|
-
return s.replace(/,/g, '|');
|
218
|
-
});
|
219
|
-
// Keep the first definition
|
220
|
-
$2 = $2.split(',')[0];
|
221
|
-
// Re-inert commas
|
222
|
-
$2 = $2.replace(/\([^\)]+\)/g, function (s) {
|
223
|
-
return s.replace(/\|/g, ',');
|
224
|
-
});
|
225
|
-
s = $1 + $2 + $3;
|
226
|
-
return s;
|
227
|
-
})
|
228
212
|
/* This fails in IE < 8
|
229
213
|
.replace(/([0-9]+)\.([0-9]+)/g, function(s1, s2, s3) { // round off to save weight
|
230
214
|
return s2 +'.'+ s3[0];
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v4.1.
|
2
|
+
* @license Highcharts JS v4.1.4 (2015-03-10)
|
3
3
|
*
|
4
4
|
* (c) 2011-2014 Torstein Honsi
|
5
5
|
*
|
@@ -96,24 +96,33 @@ extend(ColorAxis.prototype, {
|
|
96
96
|
|
97
97
|
/*
|
98
98
|
* Return an intermediate color between two colors, according to pos where 0
|
99
|
-
* is the from color and 1 is the to color
|
99
|
+
* is the from color and 1 is the to color.
|
100
|
+
* NOTE: Changes here should be copied
|
101
|
+
* to the same function in drilldown.src.js.
|
100
102
|
*/
|
101
103
|
tweenColors: function (from, to, pos) {
|
102
104
|
// Check for has alpha, because rgba colors perform worse due to lack of
|
103
105
|
// support in WebKit.
|
104
|
-
var hasAlpha
|
106
|
+
var hasAlpha,
|
107
|
+
ret;
|
105
108
|
|
106
|
-
|
107
|
-
to
|
108
|
-
hasAlpha = (to[3] !== 1 || from[3] !== 1);
|
109
|
-
if (!to.length || !from.length) {
|
109
|
+
// Unsupported color, return to-color (#3920)
|
110
|
+
if (!to.rgba.length || !from.rgba.length) {
|
110
111
|
Highcharts.error(23);
|
112
|
+
ret = to.raw;
|
113
|
+
|
114
|
+
// Interpolate
|
115
|
+
} else {
|
116
|
+
from = from.rgba;
|
117
|
+
to = to.rgba;
|
118
|
+
hasAlpha = (to[3] !== 1 || from[3] !== 1);
|
119
|
+
ret = (hasAlpha ? 'rgba(' : 'rgb(') +
|
120
|
+
Math.round(to[0] + (from[0] - to[0]) * (1 - pos)) + ',' +
|
121
|
+
Math.round(to[1] + (from[1] - to[1]) * (1 - pos)) + ',' +
|
122
|
+
Math.round(to[2] + (from[2] - to[2]) * (1 - pos)) +
|
123
|
+
(hasAlpha ? (',' + (to[3] + (from[3] - to[3]) * (1 - pos))) : '') + ')';
|
111
124
|
}
|
112
|
-
return
|
113
|
-
Math.round(to[0] + (from[0] - to[0]) * (1 - pos)) + ',' +
|
114
|
-
Math.round(to[1] + (from[1] - to[1]) * (1 - pos)) + ',' +
|
115
|
-
Math.round(to[2] + (from[2] - to[2]) * (1 - pos)) +
|
116
|
-
(hasAlpha ? (',' + (to[3] + (from[3] - to[3]) * (1 - pos))) : '') + ')';
|
125
|
+
return ret;
|
117
126
|
},
|
118
127
|
|
119
128
|
initDataClasses: function (userOptions) {
|
data/lib/highcharts/version.rb
CHANGED