highcharts-rails 4.2.3 → 4.2.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* Highcharts JS v4.2.
|
2
|
+
* Highcharts JS v4.2.4 (2016-04-14)
|
3
3
|
* Highcharts Broken Axis module
|
4
4
|
*
|
5
5
|
* License: www.highcharts.com/license
|
@@ -289,21 +289,19 @@
|
|
289
289
|
|
290
290
|
function drawPointsWrapped(proceed) {
|
291
291
|
proceed.apply(this);
|
292
|
-
this.drawBreaks();
|
292
|
+
this.drawBreaks(this.xAxis, ['x']);
|
293
|
+
this.drawBreaks(this.yAxis, pick(this.pointArrayMap, ['y']));
|
293
294
|
}
|
294
295
|
|
295
|
-
H.Series.prototype.drawBreaks = function () {
|
296
|
+
H.Series.prototype.drawBreaks = function (axis, keys) {
|
296
297
|
var series = this,
|
297
298
|
points = series.points,
|
298
|
-
axis,
|
299
299
|
breaks,
|
300
300
|
threshold,
|
301
|
-
axisName = 'Axis',
|
302
301
|
eventName,
|
303
302
|
y;
|
304
303
|
|
305
|
-
each(
|
306
|
-
axis = series[key + axisName];
|
304
|
+
each(keys, function (key) {
|
307
305
|
breaks = axis.breakArray || [];
|
308
306
|
threshold = axis.isXAxis ? axis.min : pick(series.options.threshold, axis.min);
|
309
307
|
each(points, function (point) {
|
@@ -2908,7 +2908,7 @@ if (CanvasRenderingContext2D) {
|
|
2908
2908
|
});
|
2909
2909
|
}
|
2910
2910
|
}/**
|
2911
|
-
* @license Highcharts JS v4.2.
|
2911
|
+
* @license Highcharts JS v4.2.4 (2016-04-14)
|
2912
2912
|
* CanVGRenderer Extension module
|
2913
2913
|
*
|
2914
2914
|
* (c) 2011-2016 Torstein Honsi, Erik Olsson
|
@@ -350,6 +350,9 @@
|
|
350
350
|
}
|
351
351
|
}
|
352
352
|
|
353
|
+
// Fire a once-off event after all series have been drilled up (#5158)
|
354
|
+
fireEvent(chart, 'drillupall');
|
355
|
+
|
353
356
|
this.redraw();
|
354
357
|
|
355
358
|
if (this.drilldownLevels.length === 0) {
|
@@ -526,7 +529,7 @@
|
|
526
529
|
});
|
527
530
|
}
|
528
531
|
|
529
|
-
H.Point.prototype.doDrilldown = function (_holdRedraw, category) {
|
532
|
+
H.Point.prototype.doDrilldown = function (_holdRedraw, category, originalEvent) {
|
530
533
|
var series = this.series,
|
531
534
|
chart = series.chart,
|
532
535
|
drilldown = chart.options.drilldown,
|
@@ -550,29 +553,34 @@
|
|
550
553
|
point: this,
|
551
554
|
seriesOptions: seriesOptions,
|
552
555
|
category: category,
|
556
|
+
originalEvent: originalEvent,
|
553
557
|
points: category !== undefined && this.series.xAxis.ddPoints[category].slice(0)
|
558
|
+
}, function (e) {
|
559
|
+
var chart = e.point.series && e.point.series.chart,
|
560
|
+
seriesOptions = e.seriesOptions;
|
561
|
+
if (chart && seriesOptions) {
|
562
|
+
if (_holdRedraw) {
|
563
|
+
chart.addSingleSeriesAsDrilldown(e.point, seriesOptions);
|
564
|
+
} else {
|
565
|
+
chart.addSeriesAsDrilldown(e.point, seriesOptions);
|
566
|
+
}
|
567
|
+
}
|
554
568
|
});
|
555
569
|
|
556
|
-
|
557
|
-
if (_holdRedraw) {
|
558
|
-
chart.addSingleSeriesAsDrilldown(this, seriesOptions);
|
559
|
-
} else {
|
560
|
-
chart.addSeriesAsDrilldown(this, seriesOptions);
|
561
|
-
}
|
562
|
-
}
|
570
|
+
|
563
571
|
};
|
564
572
|
|
565
573
|
/**
|
566
574
|
* Drill down to a given category. This is the same as clicking on an axis label.
|
567
575
|
*/
|
568
|
-
H.Axis.prototype.drilldownCategory = function (x) {
|
576
|
+
H.Axis.prototype.drilldownCategory = function (x, e) {
|
569
577
|
var key,
|
570
578
|
point,
|
571
579
|
ddPointsX = this.ddPoints[x];
|
572
580
|
for (key in ddPointsX) {
|
573
581
|
point = ddPointsX[key];
|
574
582
|
if (point && point.series && point.series.visible && point.doDrilldown) { // #3197
|
575
|
-
point.doDrilldown(true, x);
|
583
|
+
point.doDrilldown(true, x, e);
|
576
584
|
}
|
577
585
|
}
|
578
586
|
this.chart.applyDrilldown();
|
@@ -612,8 +620,8 @@
|
|
612
620
|
label
|
613
621
|
.addClass('highcharts-drilldown-axis-label')
|
614
622
|
.css(axis.chart.options.drilldown.activeAxisLabelStyle)
|
615
|
-
.on('click', function () {
|
616
|
-
axis.drilldownCategory(pos);
|
623
|
+
.on('click', function (e) {
|
624
|
+
axis.drilldownCategory(pos, e);
|
617
625
|
});
|
618
626
|
|
619
627
|
} else if (label && label.basicStyles) {
|
@@ -645,11 +653,11 @@
|
|
645
653
|
if (point.drilldown) {
|
646
654
|
|
647
655
|
// Add the click event to the point
|
648
|
-
H.addEvent(point, 'click', function () {
|
656
|
+
H.addEvent(point, 'click', function (e) {
|
649
657
|
if (series.xAxis && series.chart.options.drilldown.allowPointDrilldown === false) {
|
650
|
-
series.xAxis.drilldownCategory(x);
|
658
|
+
series.xAxis.drilldownCategory(x, e);
|
651
659
|
} else {
|
652
|
-
point.doDrilldown();
|
660
|
+
point.doDrilldown(undefined, undefined, e);
|
653
661
|
}
|
654
662
|
});
|
655
663
|
/*wrap(point, 'importEvents', function (proceed) { // wrapping importEvents makes point.click event work
|
@@ -23,8 +23,7 @@ var defaultOptions = Highcharts.getOptions(),
|
|
23
23
|
seriesTypes = Highcharts.seriesTypes,
|
24
24
|
merge = Highcharts.merge,
|
25
25
|
noop = function () {},
|
26
|
-
each = Highcharts.each
|
27
|
-
pick = Highcharts.pick;
|
26
|
+
each = Highcharts.each;
|
28
27
|
|
29
28
|
// set default options
|
30
29
|
defaultPlotOptions.funnel = merge(defaultPlotOptions.pie, {
|
@@ -229,24 +228,17 @@ seriesTypes.funnel = Highcharts.extendClass(seriesTypes.pie, {
|
|
229
228
|
*/
|
230
229
|
drawPoints: function () {
|
231
230
|
var series = this,
|
232
|
-
options = series.options,
|
233
231
|
chart = series.chart,
|
234
232
|
renderer = chart.renderer,
|
235
|
-
pointOptions,
|
236
233
|
pointAttr,
|
237
234
|
shapeArgs,
|
238
235
|
graphic;
|
239
236
|
|
240
237
|
each(series.data, function (point) {
|
241
|
-
pointOptions = point.options;
|
242
238
|
graphic = point.graphic;
|
243
239
|
shapeArgs = point.shapeArgs;
|
244
240
|
|
245
|
-
pointAttr =
|
246
|
-
fill: point.color,
|
247
|
-
stroke: pick(pointOptions.borderColor, options.borderColor),
|
248
|
-
'stroke-width': pick(pointOptions.borderWidth, options.borderWidth)
|
249
|
-
};
|
241
|
+
pointAttr = point.pointAttr[point.selected ? 'select' : ''];
|
250
242
|
|
251
243
|
if (!graphic) { // Create the shapes
|
252
244
|
point.graphic = renderer.path(shapeArgs)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v4.2.
|
2
|
+
* @license Highcharts JS v4.2.4 (2016-04-14)
|
3
3
|
* Plugin for displaying a message when there is no data visible in chart.
|
4
4
|
*
|
5
5
|
* (c) 2010-2016 Highsoft AS
|
@@ -52,7 +52,7 @@
|
|
52
52
|
return !!this.points.length; /* != 0 */
|
53
53
|
}
|
54
54
|
|
55
|
-
each(['pie', 'gauge', 'waterfall', 'bubble'], function (type) {
|
55
|
+
each(['pie', 'gauge', 'waterfall', 'bubble', 'treemap'], function (type) {
|
56
56
|
if (seriesTypes[type]) {
|
57
57
|
seriesTypes[type].prototype.hasData = hasDataPie;
|
58
58
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v4.2.
|
2
|
+
* @license Highcharts JS v4.2.4 (2016-04-14)
|
3
3
|
*
|
4
4
|
* (c) 2014 Highsoft AS
|
5
5
|
* Authors: Jon Arild Nygard / Oystein Moseng
|
@@ -47,6 +47,7 @@
|
|
47
47
|
return previous;
|
48
48
|
},
|
49
49
|
// @todo find correct name for this function.
|
50
|
+
// @todo Similar to reduce, this function is likely redundant
|
50
51
|
recursive = function (item, func, context) {
|
51
52
|
var next;
|
52
53
|
context = context || this;
|
@@ -79,10 +80,12 @@
|
|
79
80
|
layoutStartingDirection: 'vertical',
|
80
81
|
alternateStartingDirection: false,
|
81
82
|
levelIsConstant: true,
|
83
|
+
opacity: 0.15,
|
82
84
|
states: {
|
83
85
|
hover: {
|
84
86
|
borderColor: '#A0A0A0',
|
85
87
|
brightness: seriesTypes.heatmap ? 0 : 0.1,
|
88
|
+
opacity: 0.75,
|
86
89
|
shadow: false
|
87
90
|
}
|
88
91
|
},
|
@@ -156,6 +159,7 @@
|
|
156
159
|
|
157
160
|
series.nodeMap = [];
|
158
161
|
tree = series.buildNode('', -1, 0, parentList, null);
|
162
|
+
// Parents of the root node is by default visible
|
159
163
|
recursive(this.nodeMap[this.rootNode], function (node) {
|
160
164
|
var next = false,
|
161
165
|
p = node.parent;
|
@@ -165,6 +169,7 @@
|
|
165
169
|
}
|
166
170
|
return next;
|
167
171
|
});
|
172
|
+
// Children of the root node is by default visible
|
168
173
|
recursive(this.nodeMap[this.rootNode].children, function (children) {
|
169
174
|
var next = false;
|
170
175
|
each(children, function (child) {
|
@@ -314,7 +319,7 @@
|
|
314
319
|
y1,
|
315
320
|
y2;
|
316
321
|
// Points which is ignored, have no values.
|
317
|
-
if (values) {
|
322
|
+
if (values && node.visible) {
|
318
323
|
x1 = Math.round(xAxis.translate(values.x, 0, 0, 0, 1));
|
319
324
|
x2 = Math.round(xAxis.translate(values.x + values.width, 0, 0, 0, 1));
|
320
325
|
y1 = Math.round(yAxis.translate(values.y, 0, 0, 0, 1));
|
@@ -587,11 +592,13 @@
|
|
587
592
|
}
|
588
593
|
|
589
594
|
// Update axis extremes according to the root node.
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
+
if (this.options.allowDrillToNode) {
|
596
|
+
val = this.nodeMap[this.rootNode].pointValues;
|
597
|
+
this.xAxis.setExtremes(val.x, val.x + val.width, false);
|
598
|
+
this.yAxis.setExtremes(val.y, val.y + val.height, false);
|
599
|
+
this.xAxis.setScale();
|
600
|
+
this.yAxis.setScale();
|
601
|
+
}
|
595
602
|
|
596
603
|
// Assign values to points.
|
597
604
|
this.setPointValues();
|
@@ -628,6 +635,9 @@
|
|
628
635
|
// Set dataLabel width to the width of the point shape.
|
629
636
|
if (point.shapeArgs) {
|
630
637
|
options.style.width = point.shapeArgs.width;
|
638
|
+
if (point.dataLabel) {
|
639
|
+
point.dataLabel.css({ width: point.shapeArgs.width + 'px' });
|
640
|
+
}
|
631
641
|
}
|
632
642
|
|
633
643
|
// Merge custom options with point options
|
@@ -644,7 +654,8 @@
|
|
644
654
|
var level = this.levelMap[point.node.levelDynamic] || {},
|
645
655
|
options = this.options,
|
646
656
|
attr,
|
647
|
-
stateOptions = (state && options.states[state]) || {}
|
657
|
+
stateOptions = (state && options.states[state]) || {},
|
658
|
+
opacity;
|
648
659
|
|
649
660
|
// Set attributes by precedence. Point trumps level trumps series. Stroke width uses pick
|
650
661
|
// because it can be 0.
|
@@ -661,14 +672,17 @@
|
|
661
672
|
attr.fill = 'none';
|
662
673
|
attr['stroke-width'] = 0;
|
663
674
|
} else if (!point.node.isLeaf) {
|
664
|
-
// If not a leaf,
|
665
|
-
|
666
|
-
|
675
|
+
// If not a leaf, either set opacity or remove fill
|
676
|
+
if (pick(options.interactByLeaf, !options.allowDrillToNode)) {
|
677
|
+
attr.fill = 'none';
|
678
|
+
} else {
|
679
|
+
opacity = pick(stateOptions.opacity, options.opacity);
|
680
|
+
attr.fill = Color(attr.fill).setOpacity(opacity).get();
|
681
|
+
}
|
667
682
|
} else if (state) {
|
668
683
|
// Brighten and hoist the hover nodes
|
669
684
|
attr.fill = Color(attr.fill).brighten(stateOptions.brightness).get();
|
670
685
|
}
|
671
|
-
|
672
686
|
return attr;
|
673
687
|
},
|
674
688
|
|
data/lib/highcharts/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: highcharts-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
4
|
+
version: 4.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Per Christian B. Viken
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|