highcharts-rails 5.0.14 → 6.0.0
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 +60 -0
- data/Rakefile +54 -5
- data/app/assets/images/highcharts/earth.svg +432 -0
- data/app/assets/javascripts/highcharts.js +5103 -3147
- data/app/assets/javascripts/highcharts/highcharts-3d.js +930 -277
- data/app/assets/javascripts/highcharts/highcharts-more.js +1374 -249
- data/app/assets/javascripts/highcharts/lib/canvg.js +3073 -0
- data/app/assets/javascripts/highcharts/lib/jspdf.js +16624 -0
- data/app/assets/javascripts/highcharts/lib/rgbcolor.js +299 -0
- data/app/assets/javascripts/highcharts/lib/svg2pdf.js +3488 -0
- data/app/assets/javascripts/highcharts/modules/accessibility.js +654 -212
- data/app/assets/javascripts/highcharts/modules/annotations.js +1552 -274
- data/app/assets/javascripts/highcharts/modules/boost-canvas.js +773 -0
- data/app/assets/javascripts/highcharts/modules/boost.js +636 -210
- data/app/assets/javascripts/highcharts/modules/broken-axis.js +2 -2
- data/app/assets/javascripts/highcharts/modules/bullet.js +364 -0
- data/app/assets/javascripts/highcharts/modules/data.js +766 -38
- data/app/assets/javascripts/highcharts/modules/drag-panes.js +588 -0
- data/app/assets/javascripts/highcharts/modules/drilldown.js +106 -36
- data/app/assets/javascripts/highcharts/modules/export-data.js +597 -0
- data/app/assets/javascripts/highcharts/modules/exporting.js +424 -162
- data/app/assets/javascripts/highcharts/modules/funnel.js +144 -22
- data/app/assets/javascripts/highcharts/modules/gantt.js +1154 -0
- data/app/assets/javascripts/highcharts/modules/grid-axis.js +1 -1
- data/app/assets/javascripts/highcharts/modules/heatmap.js +406 -80
- data/app/assets/javascripts/highcharts/modules/histogram-bellcurve.js +513 -0
- data/app/assets/javascripts/highcharts/modules/item-series.js +126 -0
- data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +31 -13
- data/app/assets/javascripts/highcharts/modules/offline-exporting.js +179 -57
- data/app/assets/javascripts/highcharts/modules/oldie.js +1378 -0
- data/app/assets/javascripts/highcharts/modules/overlapping-datalabels.js +8 -6
- data/app/assets/javascripts/highcharts/modules/parallel-coordinates.js +494 -0
- data/app/assets/javascripts/highcharts/modules/pareto.js +275 -0
- data/app/assets/javascripts/highcharts/modules/sankey.js +641 -0
- data/app/assets/javascripts/highcharts/modules/series-label.js +355 -145
- data/app/assets/javascripts/highcharts/modules/solid-gauge.js +122 -1
- data/app/assets/javascripts/highcharts/modules/static-scale.js +64 -0
- data/app/assets/javascripts/highcharts/modules/stock.js +1944 -676
- data/app/assets/javascripts/highcharts/modules/streamgraph.js +139 -0
- data/app/assets/javascripts/highcharts/modules/sunburst.js +2403 -0
- data/app/assets/javascripts/highcharts/modules/tilemap.js +1199 -0
- data/app/assets/javascripts/highcharts/modules/treemap.js +538 -134
- data/app/assets/javascripts/highcharts/modules/variable-pie.js +490 -0
- data/app/assets/javascripts/highcharts/modules/variwide.js +283 -0
- data/app/assets/javascripts/highcharts/modules/vector.js +294 -0
- data/app/assets/javascripts/highcharts/modules/windbarb.js +490 -0
- data/app/assets/javascripts/highcharts/modules/wordcloud.js +681 -0
- data/app/assets/javascripts/highcharts/modules/xrange.js +615 -0
- data/app/assets/javascripts/highcharts/themes/avocado.js +54 -0
- data/app/assets/javascripts/highcharts/themes/dark-blue.js +6 -6
- data/app/assets/javascripts/highcharts/themes/dark-green.js +6 -6
- data/app/assets/javascripts/highcharts/themes/dark-unica.js +6 -6
- data/app/assets/javascripts/highcharts/themes/gray.js +14 -10
- data/app/assets/javascripts/highcharts/themes/grid-light.js +6 -6
- data/app/assets/javascripts/highcharts/themes/grid.js +7 -5
- data/app/assets/javascripts/highcharts/themes/sand-signika.js +8 -7
- data/app/assets/javascripts/highcharts/themes/skies.js +15 -9
- data/app/assets/javascripts/highcharts/themes/sunset.js +53 -0
- data/app/assets/stylesheets/highcharts/highcharts.css +802 -0
- data/app/assets/stylesheets/highcharts/highcharts.scss +665 -0
- data/lib/highcharts/version.rb +1 -1
- metadata +31 -1
@@ -0,0 +1,490 @@
|
|
1
|
+
/**
|
2
|
+
* @license Highcharts JS v6.0.0 (2017-10-04)
|
3
|
+
* Wind barb series module
|
4
|
+
*
|
5
|
+
* (c) 2010-2017 Torstein Honsi
|
6
|
+
*
|
7
|
+
* License: www.highcharts.com/license
|
8
|
+
*/
|
9
|
+
'use strict';
|
10
|
+
(function(factory) {
|
11
|
+
if (typeof module === 'object' && module.exports) {
|
12
|
+
module.exports = factory;
|
13
|
+
} else {
|
14
|
+
factory(Highcharts);
|
15
|
+
}
|
16
|
+
}(function(Highcharts) {
|
17
|
+
var onSeriesMixin = (function(H) {
|
18
|
+
/**
|
19
|
+
* (c) 2010-2017 Torstein Honsi
|
20
|
+
*
|
21
|
+
* License: www.highcharts.com/license
|
22
|
+
*/
|
23
|
+
|
24
|
+
var each = H.each,
|
25
|
+
seriesTypes = H.seriesTypes,
|
26
|
+
stableSort = H.stableSort;
|
27
|
+
|
28
|
+
var onSeriesMixin = {
|
29
|
+
/**
|
30
|
+
* Extend the translate method by placing the point on the related series
|
31
|
+
*/
|
32
|
+
translate: function() {
|
33
|
+
|
34
|
+
seriesTypes.column.prototype.translate.apply(this);
|
35
|
+
|
36
|
+
var series = this,
|
37
|
+
options = series.options,
|
38
|
+
chart = series.chart,
|
39
|
+
points = series.points,
|
40
|
+
cursor = points.length - 1,
|
41
|
+
point,
|
42
|
+
lastPoint,
|
43
|
+
optionsOnSeries = options.onSeries,
|
44
|
+
onSeries = optionsOnSeries && chart.get(optionsOnSeries),
|
45
|
+
onKey = options.onKey || 'y',
|
46
|
+
step = onSeries && onSeries.options.step,
|
47
|
+
onData = onSeries && onSeries.points,
|
48
|
+
i = onData && onData.length,
|
49
|
+
xAxis = series.xAxis,
|
50
|
+
yAxis = series.yAxis,
|
51
|
+
xAxisExt = xAxis.getExtremes(),
|
52
|
+
xOffset = 0,
|
53
|
+
leftPoint,
|
54
|
+
lastX,
|
55
|
+
rightPoint,
|
56
|
+
currentDataGrouping;
|
57
|
+
|
58
|
+
// relate to a master series
|
59
|
+
if (onSeries && onSeries.visible && i) {
|
60
|
+
xOffset = (onSeries.pointXOffset || 0) + (onSeries.barW || 0) / 2;
|
61
|
+
currentDataGrouping = onSeries.currentDataGrouping;
|
62
|
+
lastX = (
|
63
|
+
onData[i - 1].x +
|
64
|
+
(currentDataGrouping ? currentDataGrouping.totalRange : 0)
|
65
|
+
); // #2374
|
66
|
+
|
67
|
+
// sort the data points
|
68
|
+
stableSort(points, function(a, b) {
|
69
|
+
return (a.x - b.x);
|
70
|
+
});
|
71
|
+
|
72
|
+
onKey = 'plot' + onKey[0].toUpperCase() + onKey.substr(1);
|
73
|
+
while (i-- && points[cursor]) {
|
74
|
+
point = points[cursor];
|
75
|
+
leftPoint = onData[i];
|
76
|
+
if (leftPoint.x <= point.x && leftPoint[onKey] !== undefined) {
|
77
|
+
if (point.x <= lastX) { // #803
|
78
|
+
|
79
|
+
point.plotY = leftPoint[onKey];
|
80
|
+
|
81
|
+
// interpolate between points, #666
|
82
|
+
if (leftPoint.x < point.x && !step) {
|
83
|
+
rightPoint = onData[i + 1];
|
84
|
+
if (rightPoint && rightPoint[onKey] !== undefined) {
|
85
|
+
point.plotY +=
|
86
|
+
// the distance ratio, between 0 and 1
|
87
|
+
(
|
88
|
+
(point.x - leftPoint.x) /
|
89
|
+
(rightPoint.x - leftPoint.x)
|
90
|
+
) *
|
91
|
+
// the y distance
|
92
|
+
(rightPoint[onKey] - leftPoint[onKey]);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
cursor--;
|
97
|
+
i++; // check again for points in the same x position
|
98
|
+
if (cursor < 0) {
|
99
|
+
break;
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
// Add plotY position and handle stacking
|
106
|
+
each(points, function(point, i) {
|
107
|
+
|
108
|
+
var stackIndex;
|
109
|
+
|
110
|
+
// Undefined plotY means the point is either on axis, outside series
|
111
|
+
// range or hidden series. If the series is outside the range of the
|
112
|
+
// x axis it should fall through with an undefined plotY, but then
|
113
|
+
// we must remove the shapeArgs (#847).
|
114
|
+
if (point.plotY === undefined) {
|
115
|
+
if (point.x >= xAxisExt.min && point.x <= xAxisExt.max) {
|
116
|
+
// we're inside xAxis range
|
117
|
+
point.plotY = chart.chartHeight - xAxis.bottom -
|
118
|
+
(xAxis.opposite ? xAxis.height : 0) +
|
119
|
+
xAxis.offset - yAxis.top; // #3517
|
120
|
+
} else {
|
121
|
+
point.shapeArgs = {}; // 847
|
122
|
+
}
|
123
|
+
}
|
124
|
+
point.plotX += xOffset; // #2049
|
125
|
+
// if multiple flags appear at the same x, order them into a stack
|
126
|
+
lastPoint = points[i - 1];
|
127
|
+
if (lastPoint && lastPoint.plotX === point.plotX) {
|
128
|
+
if (lastPoint.stackIndex === undefined) {
|
129
|
+
lastPoint.stackIndex = 0;
|
130
|
+
}
|
131
|
+
stackIndex = lastPoint.stackIndex + 1;
|
132
|
+
}
|
133
|
+
point.stackIndex = stackIndex; // #3639
|
134
|
+
});
|
135
|
+
|
136
|
+
|
137
|
+
}
|
138
|
+
};
|
139
|
+
return onSeriesMixin;
|
140
|
+
}(Highcharts));
|
141
|
+
(function(H, onSeriesMixin) {
|
142
|
+
/**
|
143
|
+
* Wind barb series module
|
144
|
+
*
|
145
|
+
* (c) 2010-2017 Torstein Honsi
|
146
|
+
*
|
147
|
+
* License: www.highcharts.com/license
|
148
|
+
*/
|
149
|
+
|
150
|
+
var each = H.each,
|
151
|
+
seriesType = H.seriesType;
|
152
|
+
|
153
|
+
/**
|
154
|
+
* Wind barbs are a convenient way to represent wind speed and direction in one
|
155
|
+
* graphical form. Wind direction is given by the stem direction, and wind speed
|
156
|
+
* by the number and shape of barbs.
|
157
|
+
*
|
158
|
+
* @extends {plotOptions.column}
|
159
|
+
* @excluding boostThreshold,marker,connectEnds,connectNulls,cropThreshold,
|
160
|
+
* dashStyle,gapSize,gapUnit,dataGrouping,linecap,shadow,stacking,
|
161
|
+
* step
|
162
|
+
* @product highcharts highstock
|
163
|
+
* @sample {highcharts|highstock} highcharts/demo/windbarb-series/
|
164
|
+
* Wind barb series
|
165
|
+
* @since 6.0.0
|
166
|
+
* @optionparent plotOptions.windbarb
|
167
|
+
*/
|
168
|
+
seriesType('windbarb', 'column', {
|
169
|
+
/**
|
170
|
+
* The line width of the wind barb symbols.
|
171
|
+
*/
|
172
|
+
lineWidth: 2,
|
173
|
+
/**
|
174
|
+
* The id of another series in the chart that the wind barbs are projected
|
175
|
+
* on. When `null`, the wind symbols are drawn on the X axis, but offset
|
176
|
+
* up or down by the `yOffset` setting.
|
177
|
+
*
|
178
|
+
* @sample {highcharts|highstock} highcharts/plotoptions/windbarb-onseries
|
179
|
+
* Projected on area series
|
180
|
+
* @type {String|null}
|
181
|
+
*/
|
182
|
+
onSeries: null,
|
183
|
+
states: {
|
184
|
+
hover: {
|
185
|
+
lineWidthPlus: 0
|
186
|
+
}
|
187
|
+
},
|
188
|
+
tooltip: {
|
189
|
+
/**
|
190
|
+
* The default point format for the wind barb tooltip. Note the
|
191
|
+
* `point.beaufort` property that refers to the Beaufort wind scale. The
|
192
|
+
* names can be internationalized by modifying
|
193
|
+
* `Highcharts.seriesTypes.windbarb.prototype.beaufortNames`.
|
194
|
+
*/
|
195
|
+
pointFormat: '<b>{series.name}</b>: {point.value} ({point.beaufort})<br/>'
|
196
|
+
},
|
197
|
+
/**
|
198
|
+
* Pixel length of the stems.
|
199
|
+
*/
|
200
|
+
vectorLength: 20,
|
201
|
+
/**
|
202
|
+
* Vertical offset from the cartesian position, in pixels. The default value
|
203
|
+
* makes sure the symbols don't overlap the X axis when `onSeries` is
|
204
|
+
* `null`, and that they don't overlap the linked series when `onSeries` is
|
205
|
+
* given.
|
206
|
+
*/
|
207
|
+
yOffset: -20
|
208
|
+
}, {
|
209
|
+
pointArrayMap: ['value', 'direction'],
|
210
|
+
parallelArrays: ['x', 'value', 'direction'],
|
211
|
+
beaufortName: ['Calm', 'Light air', 'Light breeze',
|
212
|
+
'Gentle breeze', 'Moderate breeze', 'Fresh breeze',
|
213
|
+
'Strong breeze', 'Near gale', 'Gale', 'Strong gale', 'Storm',
|
214
|
+
'Violent storm', 'Hurricane'
|
215
|
+
],
|
216
|
+
beaufortFloor: [0, 0.3, 1.6, 3.4, 5.5, 8.0, 10.8, 13.9, 17.2, 20.8,
|
217
|
+
24.5, 28.5, 32.7
|
218
|
+
],
|
219
|
+
trackerGroups: ['markerGroup'],
|
220
|
+
|
221
|
+
/**
|
222
|
+
* Get presentational attributes.
|
223
|
+
*/
|
224
|
+
pointAttribs: function(point, state) {
|
225
|
+
var options = this.options,
|
226
|
+
stroke = this.color,
|
227
|
+
strokeWidth = this.options.lineWidth;
|
228
|
+
|
229
|
+
if (state) {
|
230
|
+
stroke = options.states[state].color || stroke;
|
231
|
+
strokeWidth =
|
232
|
+
(options.states[state].lineWidth || strokeWidth) +
|
233
|
+
(options.states[state].lineWidthPlus || 0);
|
234
|
+
}
|
235
|
+
|
236
|
+
return {
|
237
|
+
'stroke': stroke,
|
238
|
+
'stroke-width': strokeWidth
|
239
|
+
};
|
240
|
+
},
|
241
|
+
markerAttribs: function() {
|
242
|
+
return undefined;
|
243
|
+
},
|
244
|
+
/**
|
245
|
+
* Create a single wind arrow. It is later rotated around the zero
|
246
|
+
* centerpoint.
|
247
|
+
*/
|
248
|
+
windArrow: function(point) {
|
249
|
+
var knots = point.value * 1.943844,
|
250
|
+
level = point.beaufortLevel,
|
251
|
+
path,
|
252
|
+
barbs,
|
253
|
+
u = this.options.vectorLength / 20,
|
254
|
+
pos = -10;
|
255
|
+
|
256
|
+
if (point.isNull) {
|
257
|
+
return [];
|
258
|
+
}
|
259
|
+
|
260
|
+
if (level === 0) {
|
261
|
+
return this.chart.renderer.symbols.circle(-10 * u, -10 * u,
|
262
|
+
20 * u,
|
263
|
+
20 * u
|
264
|
+
);
|
265
|
+
}
|
266
|
+
|
267
|
+
// The stem and the arrow head
|
268
|
+
path = [
|
269
|
+
'M', 0, 7 * u, // base of arrow
|
270
|
+
'L', -1.5 * u, 7 * u,
|
271
|
+
0, 10 * u,
|
272
|
+
1.5 * u, 7 * u,
|
273
|
+
0, 7 * u,
|
274
|
+
0, -10 * u // top
|
275
|
+
];
|
276
|
+
|
277
|
+
// For each full 50 knots, add a pennant
|
278
|
+
barbs = (knots - knots % 50) / 50; // pennants
|
279
|
+
if (barbs > 0) {
|
280
|
+
while (barbs--) {
|
281
|
+
path.push(
|
282
|
+
pos === -10 ? 'L' : 'M',
|
283
|
+
0,
|
284
|
+
pos * u,
|
285
|
+
'L',
|
286
|
+
5 * u,
|
287
|
+
pos * u + 2,
|
288
|
+
'L',
|
289
|
+
0,
|
290
|
+
pos * u + 4
|
291
|
+
|
292
|
+
);
|
293
|
+
|
294
|
+
// Substract from the rest and move position for next
|
295
|
+
knots -= 50;
|
296
|
+
pos += 7;
|
297
|
+
}
|
298
|
+
}
|
299
|
+
|
300
|
+
// For each full 10 knots, add a full barb
|
301
|
+
barbs = (knots - knots % 10) / 10;
|
302
|
+
if (barbs > 0) {
|
303
|
+
while (barbs--) {
|
304
|
+
path.push(
|
305
|
+
pos === -10 ? 'L' : 'M',
|
306
|
+
0,
|
307
|
+
pos * u,
|
308
|
+
'L',
|
309
|
+
7 * u,
|
310
|
+
pos * u
|
311
|
+
);
|
312
|
+
knots -= 10;
|
313
|
+
pos += 3;
|
314
|
+
}
|
315
|
+
}
|
316
|
+
|
317
|
+
// For each full 5 knots, add a half barb
|
318
|
+
barbs = (knots - knots % 5) / 5; // half barbs
|
319
|
+
if (barbs > 0) {
|
320
|
+
while (barbs--) {
|
321
|
+
path.push(
|
322
|
+
pos === -10 ? 'L' : 'M',
|
323
|
+
0,
|
324
|
+
pos * u,
|
325
|
+
'L',
|
326
|
+
4 * u,
|
327
|
+
pos * u
|
328
|
+
);
|
329
|
+
knots -= 5;
|
330
|
+
pos += 3;
|
331
|
+
}
|
332
|
+
}
|
333
|
+
return path;
|
334
|
+
},
|
335
|
+
|
336
|
+
translate: function() {
|
337
|
+
var beaufortFloor = this.beaufortFloor,
|
338
|
+
beaufortName = this.beaufortName;
|
339
|
+
|
340
|
+
onSeriesMixin.translate.call(this);
|
341
|
+
|
342
|
+
each(this.points, function(point) {
|
343
|
+
var level = 0;
|
344
|
+
// Find the beaufort level (zero based)
|
345
|
+
for (; level < beaufortFloor.length; level++) {
|
346
|
+
if (beaufortFloor[level] > point.value) {
|
347
|
+
break;
|
348
|
+
}
|
349
|
+
}
|
350
|
+
point.beaufortLevel = level - 1;
|
351
|
+
point.beaufort = beaufortName[level - 1];
|
352
|
+
|
353
|
+
});
|
354
|
+
|
355
|
+
},
|
356
|
+
|
357
|
+
drawPoints: function() {
|
358
|
+
var chart = this.chart,
|
359
|
+
yAxis = this.yAxis;
|
360
|
+
each(this.points, function(point) {
|
361
|
+
var plotX = point.plotX,
|
362
|
+
plotY = point.plotY;
|
363
|
+
if (!point.graphic) {
|
364
|
+
point.graphic = this.chart.renderer
|
365
|
+
.path()
|
366
|
+
.add(this.markerGroup);
|
367
|
+
}
|
368
|
+
point.graphic
|
369
|
+
.attr({
|
370
|
+
d: this.windArrow(point),
|
371
|
+
translateX: plotX,
|
372
|
+
translateY: plotY + this.options.yOffset,
|
373
|
+
rotation: point.direction
|
374
|
+
})
|
375
|
+
.attr(this.pointAttribs(point));
|
376
|
+
|
377
|
+
// Set the tooltip anchor position
|
378
|
+
point.tooltipPos = chart.inverted ? [
|
379
|
+
yAxis.len + yAxis.pos - chart.plotLeft - plotY,
|
380
|
+
this.xAxis.len - plotX
|
381
|
+
] : [
|
382
|
+
plotX,
|
383
|
+
plotY + yAxis.pos - chart.plotTop + this.options.yOffset -
|
384
|
+
this.options.vectorLength / 2
|
385
|
+
]; // #6327
|
386
|
+
}, this);
|
387
|
+
},
|
388
|
+
|
389
|
+
/**
|
390
|
+
* Fade in the arrows on initiating series.
|
391
|
+
*/
|
392
|
+
animate: function(init) {
|
393
|
+
if (init) {
|
394
|
+
this.markerGroup.attr({
|
395
|
+
opacity: 0.01
|
396
|
+
});
|
397
|
+
} else {
|
398
|
+
this.markerGroup.animate({
|
399
|
+
opacity: 1
|
400
|
+
}, H.animObject(this.options.animation));
|
401
|
+
|
402
|
+
this.animate = null;
|
403
|
+
}
|
404
|
+
}
|
405
|
+
}, {
|
406
|
+
isValid: function() {
|
407
|
+
return H.isNumber(this.value) && this.value >= 0;
|
408
|
+
}
|
409
|
+
});
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
/**
|
414
|
+
* A `windbarb` series. If the [type](#series.windbarb.type) option is not
|
415
|
+
* specified, it is inherited from [chart.type](#chart.type).
|
416
|
+
*
|
417
|
+
* For options that apply to multiple series, it is recommended to add
|
418
|
+
* them to the [plotOptions.series](#plotOptions.series) options structure.
|
419
|
+
* To apply to all series of this specific type, apply it to [plotOptions.
|
420
|
+
* windbarb](#plotOptions.windbarb).
|
421
|
+
*
|
422
|
+
* @type {Object}
|
423
|
+
* @extends series,plotOptions.windbarb
|
424
|
+
* @excluding dataParser,dataURL
|
425
|
+
* @product highcharts highstock
|
426
|
+
* @apioption series.windbarb
|
427
|
+
*/
|
428
|
+
|
429
|
+
/**
|
430
|
+
* An array of data points for the series. For the `windbarb` series type,
|
431
|
+
* points can be given in the following ways:
|
432
|
+
*
|
433
|
+
* 1. An array of arrays with 3 values. In this case, the values correspond
|
434
|
+
* to `x,value,direction`. If the first value is a string, it is applied as
|
435
|
+
* the name of the point, and the `x` value is inferred.
|
436
|
+
*
|
437
|
+
* ```js
|
438
|
+
* data: [
|
439
|
+
* [Date.UTC(2017, 0, 1, 0), 3.3, 90],
|
440
|
+
* [Date.UTC(2017, 0, 1, 1), 12.1, 180],
|
441
|
+
* [Date.UTC(2017, 0, 1, 2), 11.1, 270]
|
442
|
+
* ]
|
443
|
+
* ```
|
444
|
+
*
|
445
|
+
* 2. An array of objects with named values. The objects are point
|
446
|
+
* configuration objects as seen below. If the total number of data
|
447
|
+
* points exceeds the series' [turboThreshold](#series.area.turboThreshold),
|
448
|
+
* this option is not available.
|
449
|
+
*
|
450
|
+
* ```js
|
451
|
+
* data: [{
|
452
|
+
* x: Date.UTC(2017, 0, 1, 0),
|
453
|
+
* value: 12.1,
|
454
|
+
* direction: 90
|
455
|
+
* }, {
|
456
|
+
* x: Date.UTC(2017, 0, 1, 1),
|
457
|
+
* value: 11.1,
|
458
|
+
* direction: 270
|
459
|
+
* }]
|
460
|
+
* ```
|
461
|
+
*
|
462
|
+
* @type {Array<Object|Array|Number>}
|
463
|
+
* @extends series.line.data
|
464
|
+
* @sample {highcharts} highcharts/chart/reflow-true/ Numerical values
|
465
|
+
* @sample {highcharts} highcharts/series/data-array-of-arrays/ Arrays of numeric x and y
|
466
|
+
* @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/ Arrays of datetime x and y
|
467
|
+
* @sample {highcharts} highcharts/series/data-array-of-name-value/ Arrays of point.name and y
|
468
|
+
* @sample {highcharts} highcharts/series/data-array-of-objects/ Config objects
|
469
|
+
* @product highcharts highstock
|
470
|
+
* @apioption series.windbarb.data
|
471
|
+
*/
|
472
|
+
|
473
|
+
/**
|
474
|
+
* The wind speed in meters per second.
|
475
|
+
*
|
476
|
+
* @type {Number}
|
477
|
+
* @product highcharts highstock
|
478
|
+
* @apioption series.windbarb.data.value
|
479
|
+
*/
|
480
|
+
|
481
|
+
/**
|
482
|
+
* The wind direction in degrees, where 0 is north (pointing towards south).
|
483
|
+
*
|
484
|
+
* @type {Number}
|
485
|
+
* @product highcharts highstock
|
486
|
+
* @apioption series.windbarb.data.direction
|
487
|
+
*/
|
488
|
+
|
489
|
+
}(Highcharts, onSeriesMixin));
|
490
|
+
}));
|