highcharts-rails 5.0.14 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.markdown +60 -0
  3. data/Rakefile +54 -5
  4. data/app/assets/images/highcharts/earth.svg +432 -0
  5. data/app/assets/javascripts/highcharts.js +5103 -3147
  6. data/app/assets/javascripts/highcharts/highcharts-3d.js +930 -277
  7. data/app/assets/javascripts/highcharts/highcharts-more.js +1374 -249
  8. data/app/assets/javascripts/highcharts/lib/canvg.js +3073 -0
  9. data/app/assets/javascripts/highcharts/lib/jspdf.js +16624 -0
  10. data/app/assets/javascripts/highcharts/lib/rgbcolor.js +299 -0
  11. data/app/assets/javascripts/highcharts/lib/svg2pdf.js +3488 -0
  12. data/app/assets/javascripts/highcharts/modules/accessibility.js +654 -212
  13. data/app/assets/javascripts/highcharts/modules/annotations.js +1552 -274
  14. data/app/assets/javascripts/highcharts/modules/boost-canvas.js +773 -0
  15. data/app/assets/javascripts/highcharts/modules/boost.js +636 -210
  16. data/app/assets/javascripts/highcharts/modules/broken-axis.js +2 -2
  17. data/app/assets/javascripts/highcharts/modules/bullet.js +364 -0
  18. data/app/assets/javascripts/highcharts/modules/data.js +766 -38
  19. data/app/assets/javascripts/highcharts/modules/drag-panes.js +588 -0
  20. data/app/assets/javascripts/highcharts/modules/drilldown.js +106 -36
  21. data/app/assets/javascripts/highcharts/modules/export-data.js +597 -0
  22. data/app/assets/javascripts/highcharts/modules/exporting.js +424 -162
  23. data/app/assets/javascripts/highcharts/modules/funnel.js +144 -22
  24. data/app/assets/javascripts/highcharts/modules/gantt.js +1154 -0
  25. data/app/assets/javascripts/highcharts/modules/grid-axis.js +1 -1
  26. data/app/assets/javascripts/highcharts/modules/heatmap.js +406 -80
  27. data/app/assets/javascripts/highcharts/modules/histogram-bellcurve.js +513 -0
  28. data/app/assets/javascripts/highcharts/modules/item-series.js +126 -0
  29. data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +31 -13
  30. data/app/assets/javascripts/highcharts/modules/offline-exporting.js +179 -57
  31. data/app/assets/javascripts/highcharts/modules/oldie.js +1378 -0
  32. data/app/assets/javascripts/highcharts/modules/overlapping-datalabels.js +8 -6
  33. data/app/assets/javascripts/highcharts/modules/parallel-coordinates.js +494 -0
  34. data/app/assets/javascripts/highcharts/modules/pareto.js +275 -0
  35. data/app/assets/javascripts/highcharts/modules/sankey.js +641 -0
  36. data/app/assets/javascripts/highcharts/modules/series-label.js +355 -145
  37. data/app/assets/javascripts/highcharts/modules/solid-gauge.js +122 -1
  38. data/app/assets/javascripts/highcharts/modules/static-scale.js +64 -0
  39. data/app/assets/javascripts/highcharts/modules/stock.js +1944 -676
  40. data/app/assets/javascripts/highcharts/modules/streamgraph.js +139 -0
  41. data/app/assets/javascripts/highcharts/modules/sunburst.js +2403 -0
  42. data/app/assets/javascripts/highcharts/modules/tilemap.js +1199 -0
  43. data/app/assets/javascripts/highcharts/modules/treemap.js +538 -134
  44. data/app/assets/javascripts/highcharts/modules/variable-pie.js +490 -0
  45. data/app/assets/javascripts/highcharts/modules/variwide.js +283 -0
  46. data/app/assets/javascripts/highcharts/modules/vector.js +294 -0
  47. data/app/assets/javascripts/highcharts/modules/windbarb.js +490 -0
  48. data/app/assets/javascripts/highcharts/modules/wordcloud.js +681 -0
  49. data/app/assets/javascripts/highcharts/modules/xrange.js +615 -0
  50. data/app/assets/javascripts/highcharts/themes/avocado.js +54 -0
  51. data/app/assets/javascripts/highcharts/themes/dark-blue.js +6 -6
  52. data/app/assets/javascripts/highcharts/themes/dark-green.js +6 -6
  53. data/app/assets/javascripts/highcharts/themes/dark-unica.js +6 -6
  54. data/app/assets/javascripts/highcharts/themes/gray.js +14 -10
  55. data/app/assets/javascripts/highcharts/themes/grid-light.js +6 -6
  56. data/app/assets/javascripts/highcharts/themes/grid.js +7 -5
  57. data/app/assets/javascripts/highcharts/themes/sand-signika.js +8 -7
  58. data/app/assets/javascripts/highcharts/themes/skies.js +15 -9
  59. data/app/assets/javascripts/highcharts/themes/sunset.js +53 -0
  60. data/app/assets/stylesheets/highcharts/highcharts.css +802 -0
  61. data/app/assets/stylesheets/highcharts/highcharts.scss +665 -0
  62. data/lib/highcharts/version.rb +1 -1
  63. metadata +31 -1
@@ -0,0 +1,615 @@
1
+ /**
2
+ * @license Highcharts JS v6.0.0 (2017-10-04)
3
+ * X-range series
4
+ *
5
+ * (c) 2010-2017 Torstein Honsi, Lars A. V. Cabrera
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
+ (function(H) {
18
+ /**
19
+ * X-range series module
20
+ *
21
+ * (c) 2010-2017 Torstein Honsi, Lars A. V. Cabrera
22
+ *
23
+ * License: www.highcharts.com/license
24
+ */
25
+
26
+ /**
27
+ * @todo
28
+ * - JSDoc
29
+ * - New series checklist
30
+ */
31
+
32
+
33
+ var defined = H.defined,
34
+ color = H.Color,
35
+ columnType = H.seriesTypes.column,
36
+ each = H.each,
37
+ isNumber = H.isNumber,
38
+ isObject = H.isObject,
39
+ merge = H.merge,
40
+ pick = H.pick,
41
+ seriesType = H.seriesType,
42
+ seriesTypes = H.seriesTypes,
43
+ wrap = H.wrap,
44
+ Axis = H.Axis,
45
+ Point = H.Point,
46
+ Series = H.Series;
47
+
48
+ /**
49
+ * The X-range series displays ranges on the X axis, typically time intervals
50
+ * with a start and end date.
51
+ *
52
+ * @extends {plotOptions.column}
53
+ * @excluding boostThreshold,crisp,cropThreshold,depth,edgeColor,edgeWidth,
54
+ * findNearestPointBy,getExtremesFromAll,grouping,groupPadding,
55
+ * negativeColor,pointInterval,pointIntervalUnit,pointPlacement,
56
+ * pointRange,pointStart,softThreshold,stacking,threshold
57
+ * @product highcharts
58
+ * @sample {highcharts} highcharts/demo/x-range/
59
+ * X-range
60
+ * @sample {highcharts} highcharts/css/x-range/
61
+ * Styled mode X-range
62
+ * @sample {highcharts} highcharts/chart/inverted-xrange/
63
+ * Inverted X-range
64
+ * @since 6.0.0
65
+ * @optionparent plotOptions.xrange
66
+ */
67
+ seriesType('xrange', 'column', {
68
+ /**
69
+ * In an X-range series, this option makes all points of the same Y-axis
70
+ * category the same color.
71
+ */
72
+ colorByPoint: true,
73
+ dataLabels: {
74
+ verticalAlign: 'middle',
75
+ inside: true,
76
+ /**
77
+ * The default formatter for X-range data labels displays the percentage
78
+ * of the partial fill amount.
79
+ */
80
+ formatter: function() {
81
+ var point = this.point,
82
+ amount = point.partialFill;
83
+ if (isObject(amount)) {
84
+ amount = amount.amount;
85
+ }
86
+ if (!defined(amount)) {
87
+ amount = 0;
88
+ }
89
+ return (amount * 100) + '%';
90
+ }
91
+ },
92
+ tooltip: {
93
+ headerFormat: '<span style="font-size: 0.85em">{point.x} - {point.x2}</span><br/>',
94
+ pointFormat: '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.yCategory}</b><br/>'
95
+ },
96
+ borderRadius: 3
97
+ /**
98
+ * A partial fill for each point, typically used to visualize how much of
99
+ * a task is performed. The partial fill object can be set either on series
100
+ * or point level.
101
+ *
102
+ * @sample {highcharts} highcharts/demo/x-range
103
+ * X-range with partial fill
104
+ * @type {Object}
105
+ * @product highcharts
106
+ * @apioption plotOptions.xrange.partialFill
107
+ */
108
+ /**
109
+ * The fill color to be used for partial fills. Defaults to a darker shade
110
+ * of the point color.
111
+ *
112
+ * @type {Color}
113
+ * @product highcharts
114
+ * @apioption plotOptions.xrange.partialFill.fill
115
+ */
116
+
117
+ }, {
118
+ type: 'xrange',
119
+ forceDL: true,
120
+ parallelArrays: ['x', 'x2', 'y'],
121
+ requireSorting: false,
122
+ animate: seriesTypes.line.prototype.animate,
123
+ cropShoulder: 1,
124
+ getExtremesFromAll: true,
125
+
126
+ /**
127
+ * Borrow the column series metrics, but with swapped axes. This gives free
128
+ * access to features like groupPadding, grouping, pointWidth etc.
129
+ */
130
+ getColumnMetrics: function() {
131
+ var metrics,
132
+ chart = this.chart;
133
+
134
+ function swapAxes() {
135
+ each(chart.series, function(s) {
136
+ var xAxis = s.xAxis;
137
+ s.xAxis = s.yAxis;
138
+ s.yAxis = xAxis;
139
+ });
140
+ }
141
+
142
+ swapAxes();
143
+
144
+ metrics = columnType.prototype.getColumnMetrics.call(this);
145
+
146
+ swapAxes();
147
+
148
+ return metrics;
149
+ },
150
+
151
+ /**
152
+ * Override cropData to show a point where x or x2 is outside visible range,
153
+ * but one of them is inside.
154
+ */
155
+ cropData: function(xData, yData, min, max) {
156
+
157
+ // Replace xData with x2Data to find the appropriate cropStart
158
+ var cropData = Series.prototype.cropData,
159
+ crop = cropData.call(this, this.x2Data, yData, min, max);
160
+
161
+ // Re-insert the cropped xData
162
+ crop.xData = xData.slice(crop.start, crop.end);
163
+
164
+ return crop;
165
+ },
166
+
167
+ translatePoint: function(point) {
168
+ var series = this,
169
+ xAxis = series.xAxis,
170
+ metrics = series.columnMetrics,
171
+ minPointLength = series.options.minPointLength || 0,
172
+ plotX = point.plotX,
173
+ posX = pick(point.x2, point.x + (point.len || 0)),
174
+ plotX2 = xAxis.translate(posX, 0, 0, 0, 1),
175
+ length = plotX2 - plotX,
176
+ widthDifference,
177
+ shapeArgs,
178
+ partialFill,
179
+ inverted = this.chart.inverted,
180
+ borderWidth = pick(series.options.borderWidth, 1),
181
+ crisper = borderWidth % 2 / 2;
182
+
183
+ if (minPointLength) {
184
+ widthDifference = minPointLength - length;
185
+ if (widthDifference < 0) {
186
+ widthDifference = 0;
187
+ }
188
+ plotX -= widthDifference / 2;
189
+ plotX2 += widthDifference / 2;
190
+ }
191
+
192
+ plotX = Math.max(plotX, -10);
193
+ plotX2 = Math.min(Math.max(plotX2, -10), xAxis.len + 10);
194
+
195
+ point.shapeArgs = {
196
+ x: Math.floor(Math.min(plotX, plotX2)) + crisper,
197
+ y: Math.floor(point.plotY + metrics.offset) + crisper,
198
+ width: Math.round(Math.abs(plotX2 - plotX)),
199
+ height: Math.round(metrics.width),
200
+ r: series.options.borderRadius
201
+ };
202
+
203
+ // Tooltip position
204
+ point.tooltipPos[0] += inverted ? 0 : length / 2;
205
+ point.tooltipPos[1] -= inverted ? length / 2 : metrics.width / 2;
206
+
207
+ // Add a partShapeArgs to the point, based on the shapeArgs property
208
+ partialFill = point.partialFill;
209
+ if (partialFill) {
210
+ // Get the partial fill amount
211
+ if (isObject(partialFill)) {
212
+ partialFill = partialFill.amount;
213
+ }
214
+ // If it was not a number, assume 0
215
+ if (!isNumber(partialFill)) {
216
+ partialFill = 0;
217
+ }
218
+ shapeArgs = point.shapeArgs;
219
+ point.partShapeArgs = {
220
+ x: shapeArgs.x,
221
+ y: shapeArgs.y,
222
+ width: shapeArgs.width,
223
+ height: shapeArgs.height,
224
+ r: series.options.borderRadius
225
+ };
226
+ point.clipRectArgs = {
227
+ x: shapeArgs.x,
228
+ y: shapeArgs.y,
229
+ width: Math.round(shapeArgs.width * partialFill),
230
+ height: shapeArgs.height
231
+ };
232
+ }
233
+ },
234
+
235
+ translate: function() {
236
+ columnType.prototype.translate.apply(this, arguments);
237
+ each(this.points, function(point) {
238
+ this.translatePoint(point);
239
+ }, this);
240
+ },
241
+
242
+ /**
243
+ * Aligns an individual dataLabel.
244
+ *
245
+ * TODO: Do we need this for inside datalabels? Seems to work.
246
+ *
247
+ * @param {Object} point the point belonging to the dataLabel
248
+ * @param {Object} dataLabel the dataLabel configuration object
249
+ * @param {Object} options dataLabel options for the series
250
+ * @param {Object} alignTo
251
+ * @param {Boolean} isNew Wheter the label is new or already existed
252
+ * @return {void}
253
+ * /
254
+ alignDataLabel: function (point, dataLabel, options, alignTo, isNew) {
255
+ var chart = this.chart,
256
+ align = options.align,
257
+ inverted = chart.inverted,
258
+ plotX = pick(point.plotX, -9999),
259
+ plotY = pick(point.plotY, -9999),
260
+ verticalAlign = options.verticalAlign,
261
+ inside = options.inside,
262
+ pointBox = point.shapeArgs,
263
+ labelBox = dataLabel.getBBox(),
264
+ labelTextBox = dataLabel.text.getBBox(),
265
+ attr = {},
266
+ visible =
267
+ this.visible &&
268
+ (
269
+ labelTextBox.width <= pointBox.width &&
270
+ labelTextBox.height <= pointBox.height
271
+ ) &&
272
+ (
273
+ this.forceDL ||
274
+ chart.isInsidePlot(plotX, Math.round(plotY), inverted)
275
+ );
276
+
277
+ if (visible) {
278
+ if (align === 'right') {
279
+ if (inside) {
280
+ attr.x = pointBox.x + pointBox.width - labelBox.width;
281
+ } else {
282
+ attr.x = pointBox.x - labelBox.width;
283
+ }
284
+ } else if (align === 'left') {
285
+ if (inside) {
286
+ attr.x = pointBox.x;
287
+ } else {
288
+ attr.x = pointBox.x + pointBox.width + labelBox.x;
289
+ }
290
+ } else { // Center
291
+ attr.x = pointBox.x + pointBox.width / 2 - labelBox.width / 2;
292
+ }
293
+
294
+ if (verticalAlign === 'bottom') {
295
+ if (inside) {
296
+ attr.y = pointBox.y + pointBox.height - labelBox.height;
297
+ } else {
298
+ attr.y = pointBox.y - labelBox.height;
299
+ }
300
+ } else if (verticalAlign === 'top') {
301
+ if (inside) {
302
+ attr.y = pointBox.y;
303
+ } else {
304
+ attr.y = pointBox.y + pointBox.height;
305
+ }
306
+ } else { // Middle
307
+ attr.y = pointBox.y + pointBox.height / 2 - labelBox.height / 2;
308
+ }
309
+
310
+ dataLabel[isNew ? 'attr' : 'animate'](attr);
311
+ }
312
+ },
313
+ */
314
+ /**
315
+ * Draws a single point in the series. Needed for partial fill.
316
+ *
317
+ * This override turns point.graphic into a group containing the original
318
+ * graphic and an overlay displaying the partial fill.
319
+ *
320
+ * @param {Object} point an instance of Point in the series
321
+ * @param {string} verb 'animate' (animates changes) or 'attr' (sets
322
+ * options)
323
+ * @returns {void}
324
+ */
325
+ drawPoint: function(point, verb) {
326
+ var series = this,
327
+ seriesOpts = series.options,
328
+ renderer = series.chart.renderer,
329
+ graphic = point.graphic,
330
+ type = point.shapeType,
331
+ shapeArgs = point.shapeArgs,
332
+ partShapeArgs = point.partShapeArgs,
333
+ clipRectArgs = point.clipRectArgs,
334
+ pfOptions = point.partialFill,
335
+ fill,
336
+ state = point.selected && 'select',
337
+ cutOff = seriesOpts.stacking && !seriesOpts.borderRadius;
338
+
339
+ if (!point.isNull) {
340
+
341
+ // Original graphic
342
+ if (graphic) { // update
343
+ point.graphicOriginal[verb](
344
+ merge(shapeArgs)
345
+ );
346
+
347
+ } else {
348
+ point.graphic = graphic = renderer.g('point')
349
+ .addClass(point.getClassName())
350
+ .add(point.group || series.group);
351
+
352
+ point.graphicOriginal = renderer[type](shapeArgs)
353
+ .addClass(point.getClassName())
354
+ .addClass('highcharts-partfill-original')
355
+ .add(graphic);
356
+ }
357
+
358
+ // Partial fill graphic
359
+ if (partShapeArgs) {
360
+ if (point.graphicOverlay) {
361
+ point.graphicOverlay[verb](
362
+ merge(partShapeArgs)
363
+ );
364
+ point.clipRect.animate(
365
+ merge(clipRectArgs)
366
+ );
367
+
368
+ } else {
369
+
370
+ point.clipRect = renderer.clipRect(
371
+ clipRectArgs.x,
372
+ clipRectArgs.y,
373
+ clipRectArgs.width,
374
+ clipRectArgs.height
375
+ );
376
+
377
+ point.graphicOverlay = renderer[type](partShapeArgs)
378
+ .addClass('highcharts-partfill-overlay')
379
+ .add(graphic)
380
+ .clip(point.clipRect);
381
+ }
382
+ }
383
+
384
+
385
+
386
+ // Presentational
387
+ point.graphicOriginal
388
+ .attr(series.pointAttribs(point, state))
389
+ .shadow(seriesOpts.shadow, null, cutOff);
390
+ if (partShapeArgs) {
391
+ // Ensure pfOptions is an object
392
+ if (!isObject(pfOptions)) {
393
+ pfOptions = {};
394
+ }
395
+ if (isObject(seriesOpts.partialFill)) {
396
+ pfOptions = merge(pfOptions, seriesOpts.partialFill);
397
+ }
398
+
399
+ fill = (
400
+ pfOptions.fill ||
401
+ color(point.color || series.color).brighten(-0.3).get()
402
+ );
403
+
404
+ point.graphicOverlay
405
+ .attr(series.pointAttribs(point, state))
406
+ .attr({
407
+ 'fill': fill
408
+ })
409
+ .shadow(seriesOpts.shadow, null, cutOff);
410
+ }
411
+
412
+
413
+ } else if (graphic) {
414
+ point.graphic = graphic.destroy(); // #1269
415
+ }
416
+ },
417
+
418
+ drawPoints: function() {
419
+ var series = this,
420
+ chart = this.chart,
421
+ options = series.options,
422
+ animationLimit = options.animationLimit || 250,
423
+ verb = chart.pointCount < animationLimit ? 'animate' : 'attr';
424
+
425
+ // draw the columns
426
+ each(series.points, function(point) {
427
+ series.drawPoint(point, verb);
428
+ });
429
+ }
430
+
431
+ /**
432
+ * Override to remove stroke from points.
433
+ * For partial fill.
434
+ * /
435
+ pointAttribs: function () {
436
+ var series = this,
437
+ retVal = columnType.prototype.pointAttribs.apply(series, arguments);
438
+
439
+ //retVal['stroke-width'] = 0;
440
+ return retVal;
441
+ }
442
+ */
443
+
444
+ // Point class properties
445
+ }, {
446
+
447
+ /**
448
+ * Extend init so that `colorByPoint` for x-range means that one color is
449
+ * applied per Y axis category.
450
+ */
451
+ init: function() {
452
+
453
+ Point.prototype.init.apply(this, arguments);
454
+
455
+ var colors,
456
+ series = this.series,
457
+ colorCount = series.chart.options.chart.colorCount;
458
+
459
+ if (!this.y) {
460
+ this.y = 0;
461
+ }
462
+
463
+
464
+ if (series.options.colorByPoint) {
465
+ colors = series.options.colors || series.chart.options.colors;
466
+ colorCount = colors.length;
467
+
468
+ if (!this.options.color && colors[this.y % colorCount]) {
469
+ this.color = colors[this.y % colorCount];
470
+ }
471
+ }
472
+
473
+ this.colorIndex = this.y % colorCount;
474
+
475
+ return this;
476
+ },
477
+
478
+ // Add x2 and yCategory to the available properties for tooltip formats
479
+ getLabelConfig: function() {
480
+ var point = this,
481
+ cfg = Point.prototype.getLabelConfig.call(point),
482
+ yCats = point.series.yAxis.categories;
483
+
484
+ cfg.x2 = point.x2;
485
+ cfg.yCategory = point.yCategory = yCats && yCats[point.y];
486
+ return cfg;
487
+ },
488
+ tooltipDateKeys: ['x', 'x2'],
489
+
490
+ isValid: function() {
491
+ return typeof this.x === 'number' &&
492
+ typeof this.x2 === 'number';
493
+ }
494
+ });
495
+
496
+ /**
497
+ * Max x2 should be considered in xAxis extremes
498
+ */
499
+ wrap(Axis.prototype, 'getSeriesExtremes', function(proceed) {
500
+ var axis = this,
501
+ axisSeries = axis.series,
502
+ dataMax,
503
+ modMax;
504
+ proceed.call(axis);
505
+ if (axis.isXAxis) {
506
+ dataMax = pick(axis.dataMax, -Number.MAX_VALUE);
507
+ each(axisSeries, function(series) {
508
+ if (series.x2Data) {
509
+ each(series.x2Data, function(val) {
510
+ if (val > dataMax) {
511
+ dataMax = val;
512
+ modMax = true;
513
+ }
514
+ });
515
+ }
516
+ });
517
+ if (modMax) {
518
+ axis.dataMax = dataMax;
519
+ }
520
+ }
521
+ });
522
+
523
+
524
+ /**
525
+ * An `xrange` series. If the [type](#series.xrange.type) option is not
526
+ * specified, it is inherited from [chart.type](#chart.type).
527
+ *
528
+ * For options that apply to multiple series, it is recommended to add
529
+ * them to the [plotOptions.series](#plotOptions.series) options structure.
530
+ * To apply to all series of this specific type, apply it to [plotOptions.
531
+ * xrange](#plotOptions.xrange).
532
+ *
533
+ * @type {Object}
534
+ * @extends series,plotOptions.xrange
535
+ * @product highcharts highstock
536
+ * @apioption series.xrange
537
+ */
538
+
539
+ /**
540
+ * An array of data points for the series. For the `xrange` series type,
541
+ * points can be given in the following ways:
542
+ *
543
+ * 1. An array of objects with named values. The objects are point
544
+ * configuration objects as seen below.
545
+ *
546
+ * ```js
547
+ * data: [{
548
+ * x: Date.UTC(2017, 0, 1),
549
+ * x2: Date.UTC(2017, 0, 3),
550
+ * name: "Test",
551
+ * y: 0,
552
+ * color: "#00FF00"
553
+ * }, {
554
+ * x: Date.UTC(2017, 0, 4),
555
+ * x2: Date.UTC(2017, 0, 5),
556
+ * name: "Deploy",
557
+ * y: 1,
558
+ * color: "#FF0000"
559
+ * }]
560
+ * ```
561
+ *
562
+ * @type {Array<Object|Array|Number>}
563
+ * @extends series.line.data
564
+ * @sample {highcharts} highcharts/chart/reflow-true/ Numerical values
565
+ * @sample {highcharts} highcharts/series/data-array-of-arrays/ Arrays of numeric x and y
566
+ * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/ Arrays of datetime x and y
567
+ * @sample {highcharts} highcharts/series/data-array-of-name-value/ Arrays of point.name and y
568
+ * @sample {highcharts} highcharts/series/data-array-of-objects/ Config objects
569
+ * @product highcharts highstock
570
+ * @apioption series.xrange.data
571
+ */
572
+
573
+
574
+ /**
575
+ * The ending X value of the range point.
576
+ *
577
+ * @sample {highcharts} highcharts/demo/x-range
578
+ * X-range
579
+ * @type {Number}
580
+ * @product highcharts
581
+ * @apioption plotOptions.xrange.data.x2
582
+ */
583
+
584
+ /**
585
+ * A partial fill for each point, typically used to visualize how much of
586
+ * a task is performed. The partial fill object can be set either on series
587
+ * or point level.
588
+ *
589
+ * @sample {highcharts} highcharts/demo/x-range
590
+ * X-range with partial fill
591
+ * @type {Object|Number}
592
+ * @product highcharts
593
+ * @apioption plotOptions.xrange.data.partialFill
594
+ */
595
+
596
+ /**
597
+ * The amount of the X-range point to be filled. Values can be 0-1 and are
598
+ * converted to percentages in the default data label formatter.
599
+ *
600
+ * @type {Number}
601
+ * @product highcharts
602
+ * @apioption plotOptions.xrange.data.partialFill.amount
603
+ */
604
+
605
+ /**
606
+ * The fill color to be used for partial fills. Defaults to a darker shade
607
+ * of the point color.
608
+ *
609
+ * @type {Color}
610
+ * @product highcharts
611
+ * @apioption plotOptions.xrange.data.partialFill.fill
612
+ */
613
+
614
+ }(Highcharts));
615
+ }));