highcharts-rails 5.0.12 → 5.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.markdown +59 -0
- data/app/assets/javascripts/highcharts.js +6250 -788
- data/app/assets/javascripts/highcharts/highcharts-3d.js +210 -25
- data/app/assets/javascripts/highcharts/highcharts-more.js +908 -22
- data/app/assets/javascripts/highcharts/modules/accessibility.js +272 -64
- data/app/assets/javascripts/highcharts/modules/annotations.js +1 -1
- data/app/assets/javascripts/highcharts/modules/boost.js +89 -66
- data/app/assets/javascripts/highcharts/modules/broken-axis.js +65 -4
- data/app/assets/javascripts/highcharts/modules/data.js +1 -1
- data/app/assets/javascripts/highcharts/modules/drilldown.js +234 -17
- data/app/assets/javascripts/highcharts/modules/exporting.js +508 -69
- data/app/assets/javascripts/highcharts/modules/funnel.js +129 -8
- data/app/assets/javascripts/highcharts/modules/grid-axis.js +1 -1
- data/app/assets/javascripts/highcharts/modules/heatmap.js +361 -44
- data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +64 -1
- data/app/assets/javascripts/highcharts/modules/offline-exporting.js +44 -44
- data/app/assets/javascripts/highcharts/modules/overlapping-datalabels.js +26 -3
- data/app/assets/javascripts/highcharts/modules/series-label.js +19 -1
- data/app/assets/javascripts/highcharts/modules/solid-gauge.js +14 -5
- data/app/assets/javascripts/highcharts/modules/stock.js +1122 -86
- data/app/assets/javascripts/highcharts/modules/treemap.js +265 -43
- data/app/assets/javascripts/highcharts/modules/xrange-series.js +1 -1
- data/lib/highcharts/version.rb +1 -1
- metadata +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Highcharts JS v5.0.
|
2
|
+
* @license Highcharts JS v5.0.13 (2017-07-27)
|
3
3
|
*
|
4
4
|
* (c) 2014 Highsoft AS
|
5
5
|
* Authors: Jon Arild Nygard / Oystein Moseng
|
@@ -62,44 +62,281 @@
|
|
62
62
|
};
|
63
63
|
|
64
64
|
// The Treemap series type
|
65
|
+
/**
|
66
|
+
* @extends {plotOptions.scatter}
|
67
|
+
* @optionparent plotOptions.treemap
|
68
|
+
*/
|
65
69
|
seriesType('treemap', 'scatter', {
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Whether to display this series type or specific series item in the
|
73
|
+
* legend.
|
74
|
+
*
|
75
|
+
* @type {Boolean}
|
76
|
+
* @default false
|
77
|
+
* @product highcharts
|
78
|
+
*/
|
66
79
|
showInLegend: false,
|
80
|
+
|
81
|
+
/**
|
82
|
+
*/
|
67
83
|
marker: false,
|
84
|
+
|
85
|
+
/**
|
86
|
+
* @extends plotOptions.heatmap.dataLabels
|
87
|
+
* @since 4.1.0
|
88
|
+
* @product highcharts
|
89
|
+
*/
|
68
90
|
dataLabels: {
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Enable or disable the data labels.
|
94
|
+
*
|
95
|
+
* @type {Boolean}
|
96
|
+
* @sample {highcharts} highcharts/plotoptions/series-datalabels-enabled/ Data labels enabled
|
97
|
+
* @default true
|
98
|
+
* @since 4.1.0
|
99
|
+
* @product highcharts
|
100
|
+
*/
|
69
101
|
enabled: true,
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Whether to defer displaying the data labels until the initial series
|
105
|
+
* animation has finished.
|
106
|
+
*
|
107
|
+
* @type {Boolean}
|
108
|
+
* @default false
|
109
|
+
* @since 4.1.0
|
110
|
+
* @product highcharts
|
111
|
+
*/
|
70
112
|
defer: false,
|
113
|
+
|
114
|
+
/**
|
115
|
+
* The vertical alignment of a data label. Can be one of top, middle
|
116
|
+
* or bottom. The default value depends on the data, for instance
|
117
|
+
* in a column chart, the label is above positive values and below
|
118
|
+
* negative values.
|
119
|
+
*
|
120
|
+
* @type {String}
|
121
|
+
* @default middle
|
122
|
+
* @since 4.1.0
|
123
|
+
* @product highcharts
|
124
|
+
*/
|
71
125
|
verticalAlign: 'middle',
|
126
|
+
|
127
|
+
/**
|
128
|
+
*/
|
72
129
|
formatter: function() { // #2945
|
73
130
|
return this.point.name || this.point.id;
|
74
131
|
},
|
132
|
+
|
133
|
+
/**
|
134
|
+
* Whether to align the data label inside the box or to the actual
|
135
|
+
* value point.
|
136
|
+
*
|
137
|
+
* @type {Boolean}
|
138
|
+
* @default true
|
139
|
+
* @since 4.1.0
|
140
|
+
* @product highcharts
|
141
|
+
*/
|
75
142
|
inside: true
|
76
143
|
},
|
144
|
+
|
145
|
+
/**
|
146
|
+
* @extends plotOptions.heatmap.tooltip
|
147
|
+
* @since 4.1.0
|
148
|
+
* @product highcharts
|
149
|
+
*/
|
77
150
|
tooltip: {
|
151
|
+
|
152
|
+
/**
|
153
|
+
* The HTML of the tooltip header line. Variables are enclosed by
|
154
|
+
* curly brackets. Available variables are point.key, series.name,
|
155
|
+
* series.color and other members from the point and series objects.
|
156
|
+
* The point.key variable contains the category name, x value or
|
157
|
+
* datetime string depending on the type of axis. For datetime axes,
|
158
|
+
* the point.key date format can be set using tooltip.xDateFormat.
|
159
|
+
*
|
160
|
+
* @type {String}
|
161
|
+
* @sample {highcharts} highcharts/tooltip/footerformat/ A HTML table in the tooltip
|
162
|
+
* @default ""
|
163
|
+
* @since 4.1.0
|
164
|
+
* @product highcharts
|
165
|
+
*/
|
78
166
|
headerFormat: '',
|
167
|
+
|
168
|
+
/**
|
169
|
+
* The HTML of the point's line in the tooltip. Variables are enclosed
|
170
|
+
* by curly brackets. Available variables are point.x, point.y, series.
|
171
|
+
* name and series.color and other properties on the same form. Furthermore,
|
172
|
+
* point.y can be extended by the tooltip.yPrefix and tooltip.ySuffix
|
173
|
+
* variables. This can also be overridden for each series, which makes
|
174
|
+
* it a good hook for displaying units.
|
175
|
+
*
|
176
|
+
* @type {String}
|
177
|
+
* @sample {highcharts} highcharts/tooltip/pointformat/ A different point format with value suffix
|
178
|
+
* @default "<b>{point.name}</b>: {point.value}</b><br/>"
|
179
|
+
* @since 4.1.0
|
180
|
+
* @product highcharts
|
181
|
+
*/
|
79
182
|
pointFormat: '<b>{point.name}</b>: {point.value}</b><br/>'
|
80
183
|
},
|
184
|
+
|
185
|
+
/**
|
186
|
+
* Whether to ignore hidden points when the layout algorithm runs.
|
187
|
+
* If `false`, hidden points will leave open spaces.
|
188
|
+
*
|
189
|
+
* @type {Boolean}
|
190
|
+
* @default true
|
191
|
+
* @since 5.0.8
|
192
|
+
* @product highcharts
|
193
|
+
*/
|
81
194
|
ignoreHiddenPoint: true,
|
195
|
+
|
196
|
+
/**
|
197
|
+
* This option decides which algorithm is used for setting position
|
198
|
+
* and dimensions of the points. Can be one of `sliceAndDice`, `stripes`,
|
199
|
+
* `squarified` or `strip`.
|
200
|
+
*
|
201
|
+
* @validvalue ["sliceAndDice", "stripes", "squarified", "strip"]
|
202
|
+
* @type {String}
|
203
|
+
* @see [How to write your own algorithm](http://www.highcharts.com/docs/chart-
|
204
|
+
* and-series-types/treemap)
|
205
|
+
* @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-sliceanddice/ SliceAndDice by default
|
206
|
+
* @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-stripes/ Stripes
|
207
|
+
* @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-squarified/ Squarified
|
208
|
+
* @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-strip/ Strip
|
209
|
+
* @default sliceAndDice
|
210
|
+
* @since 4.1.0
|
211
|
+
* @product highcharts
|
212
|
+
*/
|
82
213
|
layoutAlgorithm: 'sliceAndDice',
|
214
|
+
|
215
|
+
/**
|
216
|
+
* Defines which direction the layout algorithm will start drawing.
|
217
|
+
* Possible values are "vertical" and "horizontal".
|
218
|
+
*
|
219
|
+
* @validvalue ["vertical", "horizontal"]
|
220
|
+
* @type {String}
|
221
|
+
* @default vertical
|
222
|
+
* @since 4.1.0
|
223
|
+
* @product highcharts
|
224
|
+
*/
|
83
225
|
layoutStartingDirection: 'vertical',
|
226
|
+
|
227
|
+
/**
|
228
|
+
* Enabling this option will make the treemap alternate the drawing
|
229
|
+
* direction between vertical and horizontal. The next levels starting
|
230
|
+
* direction will always be the opposite of the previous.
|
231
|
+
*
|
232
|
+
* @type {Boolean}
|
233
|
+
* @sample {highcharts} highcharts/plotoptions/treemap-alternatestartingdirection-true/ Enabled
|
234
|
+
* @default false
|
235
|
+
* @since 4.1.0
|
236
|
+
* @product highcharts
|
237
|
+
*/
|
84
238
|
alternateStartingDirection: false,
|
239
|
+
|
240
|
+
/**
|
241
|
+
* Used together with the levels and allowDrillToNode options. When
|
242
|
+
* set to false the first level visible when drilling is considered
|
243
|
+
* to be level one. Otherwise the level will be the same as the tree
|
244
|
+
* structure.
|
245
|
+
*
|
246
|
+
* @validvalue [true, false]
|
247
|
+
* @type {Boolean}
|
248
|
+
* @default true
|
249
|
+
* @since 4.1.0
|
250
|
+
* @product highcharts
|
251
|
+
*/
|
85
252
|
levelIsConstant: true,
|
253
|
+
|
254
|
+
/**
|
255
|
+
*/
|
86
256
|
drillUpButton: {
|
257
|
+
|
258
|
+
/**
|
259
|
+
*/
|
87
260
|
position: {
|
261
|
+
|
262
|
+
/**
|
263
|
+
*/
|
88
264
|
align: 'right',
|
265
|
+
|
266
|
+
/**
|
267
|
+
*/
|
89
268
|
x: -10,
|
269
|
+
|
270
|
+
/**
|
271
|
+
*/
|
90
272
|
y: 10
|
91
273
|
}
|
92
274
|
},
|
93
275
|
|
94
276
|
// Presentational options
|
277
|
+
|
278
|
+
/**
|
279
|
+
* The color of the border surrounding each tree map item.
|
280
|
+
*
|
281
|
+
* @type {Color}
|
282
|
+
* @default #e6e6e6
|
283
|
+
* @product highcharts
|
284
|
+
*/
|
95
285
|
borderColor: '#e6e6e6',
|
286
|
+
|
287
|
+
/**
|
288
|
+
*/
|
96
289
|
borderWidth: 1,
|
290
|
+
|
291
|
+
/**
|
292
|
+
* The opacity of a point in treemap. When a point has children, the
|
293
|
+
* visibility of the children is determined by the opacity.
|
294
|
+
*
|
295
|
+
* @type {Number}
|
296
|
+
* @default 0.15
|
297
|
+
* @since 4.2.4
|
298
|
+
* @product highcharts
|
299
|
+
*/
|
97
300
|
opacity: 0.15,
|
301
|
+
|
302
|
+
/**
|
303
|
+
* A wrapper object for all the series options in specific states.
|
304
|
+
*
|
305
|
+
* @extends plotOptions.heatmap.states
|
306
|
+
* @product highcharts
|
307
|
+
*/
|
98
308
|
states: {
|
309
|
+
|
310
|
+
/**
|
311
|
+
* Options for the hovered series
|
312
|
+
*
|
313
|
+
* @extends plotOptions.heatmap.states.hover
|
314
|
+
* @excluding halo
|
315
|
+
* @product highcharts
|
316
|
+
*/
|
99
317
|
hover: {
|
318
|
+
|
319
|
+
/**
|
320
|
+
*/
|
100
321
|
borderColor: '#999999',
|
322
|
+
|
323
|
+
/**
|
324
|
+
*/
|
101
325
|
brightness: seriesTypes.heatmap ? 0 : 0.1,
|
326
|
+
|
327
|
+
/**
|
328
|
+
* The opacity of a point in treemap. When a point has children,
|
329
|
+
* the visibility of the children is determined by the opacity.
|
330
|
+
*
|
331
|
+
* @type {Number}
|
332
|
+
* @default 0.75
|
333
|
+
* @since 4.2.4
|
334
|
+
* @product highcharts
|
335
|
+
*/
|
102
336
|
opacity: 0.75,
|
337
|
+
|
338
|
+
/**
|
339
|
+
*/
|
103
340
|
shadow: false
|
104
341
|
}
|
105
342
|
}
|
@@ -109,6 +346,7 @@
|
|
109
346
|
}, {
|
110
347
|
pointArrayMap: ['value'],
|
111
348
|
axisTypes: seriesTypes.heatmap ? ['xAxis', 'yAxis', 'colorAxis'] : ['xAxis', 'yAxis'],
|
349
|
+
directTouch: true,
|
112
350
|
optionalAxis: 'colorAxis',
|
113
351
|
getSymbol: noop,
|
114
352
|
parallelArrays: ['x', 'y', 'value', 'colorValue'],
|
@@ -196,51 +434,13 @@
|
|
196
434
|
children = [],
|
197
435
|
val,
|
198
436
|
point = series.points[tree.i];
|
199
|
-
// Parents of the root node is by default visible
|
200
|
-
recursive(series.nodeMap[series.rootNode], function(node) {
|
201
|
-
var next = false,
|
202
|
-
p = node.parent;
|
203
|
-
node.visible = true;
|
204
|
-
if (p || p === '') {
|
205
|
-
next = series.nodeMap[p];
|
206
|
-
}
|
207
|
-
return next;
|
208
|
-
});
|
209
|
-
// Children of the root node is by default visible
|
210
|
-
recursive(series.nodeMap[series.rootNode].children, function(children) {
|
211
|
-
var next = false;
|
212
|
-
each(children, function(child) {
|
213
|
-
child.visible = true;
|
214
|
-
if (child.children.length) {
|
215
|
-
next = (next || []).concat(child.children);
|
216
|
-
}
|
217
|
-
});
|
218
|
-
return next;
|
219
|
-
});
|
220
437
|
|
221
438
|
// First give the children some values
|
222
439
|
each(tree.children, function(child) {
|
223
440
|
child = series.setTreeValues(child);
|
224
441
|
children.push(child);
|
225
|
-
|
226
442
|
if (!child.ignore) {
|
227
443
|
childrenTotal += child.val;
|
228
|
-
} else {
|
229
|
-
// @todo Add predicate to avoid looping already ignored children
|
230
|
-
recursive(child.children, function(children) {
|
231
|
-
var next = false;
|
232
|
-
each(children, function(node) {
|
233
|
-
extend(node, {
|
234
|
-
ignore: true,
|
235
|
-
isLeaf: false,
|
236
|
-
visible: false
|
237
|
-
});
|
238
|
-
if (node.children.length) {
|
239
|
-
next = (next || []).concat(node.children);
|
240
|
-
}
|
241
|
-
});
|
242
|
-
return next;
|
243
|
-
});
|
244
444
|
}
|
245
445
|
});
|
246
446
|
// Sort the children
|
@@ -258,7 +458,7 @@
|
|
258
458
|
// Ignore this node if point is not visible
|
259
459
|
ignore: !(pick(point && point.visible, true) && (val > 0)),
|
260
460
|
isLeaf: tree.visible && !childrenTotal,
|
261
|
-
levelDynamic:
|
461
|
+
levelDynamic: tree.level - (options.levelIsConstant ? series.nodeMap[series.rootNode].level : 0),
|
262
462
|
name: pick(point && point.name, ''),
|
263
463
|
sortIndex: pick(point && point.sortIndex, -val),
|
264
464
|
val: val
|
@@ -607,6 +807,27 @@
|
|
607
807
|
rootId = series.rootNode;
|
608
808
|
rootNode = series.nodeMap[rootId];
|
609
809
|
}
|
810
|
+
// Parents of the root node is by default visible
|
811
|
+
recursive(series.nodeMap[series.rootNode], function(node) {
|
812
|
+
var next = false,
|
813
|
+
p = node.parent;
|
814
|
+
node.visible = true;
|
815
|
+
if (p || p === '') {
|
816
|
+
next = series.nodeMap[p];
|
817
|
+
}
|
818
|
+
return next;
|
819
|
+
});
|
820
|
+
// Children of the root node is by default visible
|
821
|
+
recursive(series.nodeMap[series.rootNode].children, function(children) {
|
822
|
+
var next = false;
|
823
|
+
each(children, function(child) {
|
824
|
+
child.visible = true;
|
825
|
+
if (child.children.length) {
|
826
|
+
next = (next || []).concat(child.children);
|
827
|
+
}
|
828
|
+
});
|
829
|
+
return next;
|
830
|
+
});
|
610
831
|
series.setTreeValues(tree);
|
611
832
|
|
612
833
|
// Calculate plotting values.
|
@@ -696,8 +917,9 @@
|
|
696
917
|
alignDataLabel: function(point) {
|
697
918
|
seriesTypes.column.prototype.alignDataLabel.apply(this, arguments);
|
698
919
|
if (point.dataLabel) {
|
920
|
+
// point.node.zIndex could be undefined (#6956)
|
699
921
|
point.dataLabel.attr({
|
700
|
-
zIndex: point.node.zIndex + 1
|
922
|
+
zIndex: (point.node.zIndex || 0) + 1
|
701
923
|
});
|
702
924
|
}
|
703
925
|
},
|
@@ -795,7 +1017,7 @@
|
|
795
1017
|
* Finds the drill id for a parent node.
|
796
1018
|
* Returns false if point should not have a click event
|
797
1019
|
* @param {Object} point
|
798
|
-
* @return {
|
1020
|
+
* @return {String|Boolean} Drill to id or false when point should not have a click event
|
799
1021
|
*/
|
800
1022
|
drillToByGroup: function(point) {
|
801
1023
|
var series = this,
|
@@ -809,7 +1031,7 @@
|
|
809
1031
|
* Finds the drill id for a leaf node.
|
810
1032
|
* Returns false if point should not have a click event
|
811
1033
|
* @param {Object} point
|
812
|
-
* @return {
|
1034
|
+
* @return {String|Boolean} Drill to id or false when point should not have a click event
|
813
1035
|
*/
|
814
1036
|
drillToByLeaf: function(point) {
|
815
1037
|
var series = this,
|
data/lib/highcharts/version.rb
CHANGED