highcharts-rails 6.0.2 → 6.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CCBYNC-LICENSE +103 -0
  3. data/CHANGELOG.markdown +31 -0
  4. data/Highsoft-LICENSE +1 -0
  5. data/{LICENSE → MIT-LICENSE} +0 -0
  6. data/README.markdown +6 -6
  7. data/app/assets/javascripts/highcharts.js +1635 -498
  8. data/app/assets/javascripts/highcharts/highcharts-3d.js +1 -1
  9. data/app/assets/javascripts/highcharts/highcharts-more.js +2 -2
  10. data/app/assets/javascripts/highcharts/modules/accessibility.js +1072 -824
  11. data/app/assets/javascripts/highcharts/modules/annotations.js +1 -1
  12. data/app/assets/javascripts/highcharts/modules/boost-canvas.js +3 -13
  13. data/app/assets/javascripts/highcharts/modules/boost.js +29 -13
  14. data/app/assets/javascripts/highcharts/modules/broken-axis.js +1 -1
  15. data/app/assets/javascripts/highcharts/modules/bullet.js +1 -1
  16. data/app/assets/javascripts/highcharts/modules/data.js +6 -6
  17. data/app/assets/javascripts/highcharts/modules/drag-panes.js +1 -1
  18. data/app/assets/javascripts/highcharts/modules/drilldown.js +1 -1
  19. data/app/assets/javascripts/highcharts/modules/export-data.js +10 -12
  20. data/app/assets/javascripts/highcharts/modules/exporting.js +1 -1
  21. data/app/assets/javascripts/highcharts/modules/funnel.js +1 -1
  22. data/app/assets/javascripts/highcharts/modules/gantt.js +26 -78
  23. data/app/assets/javascripts/highcharts/modules/grid-axis.js +1 -1
  24. data/app/assets/javascripts/highcharts/modules/heatmap.js +1 -1
  25. data/app/assets/javascripts/highcharts/modules/histogram-bellcurve.js +1 -1
  26. data/app/assets/javascripts/highcharts/modules/item-series.js +1 -1
  27. data/app/assets/javascripts/highcharts/modules/no-data-to-display.js +6 -15
  28. data/app/assets/javascripts/highcharts/modules/offline-exporting.js +2 -2
  29. data/app/assets/javascripts/highcharts/modules/oldie.js +2 -2
  30. data/app/assets/javascripts/highcharts/modules/overlapping-datalabels.js +41 -47
  31. data/app/assets/javascripts/highcharts/modules/parallel-coordinates.js +10 -6
  32. data/app/assets/javascripts/highcharts/modules/pareto.js +9 -1
  33. data/app/assets/javascripts/highcharts/modules/sankey.js +1 -1
  34. data/app/assets/javascripts/highcharts/modules/series-label.js +1 -1
  35. data/app/assets/javascripts/highcharts/modules/solid-gauge.js +1 -1
  36. data/app/assets/javascripts/highcharts/modules/static-scale.js +2 -6
  37. data/app/assets/javascripts/highcharts/modules/stock.js +96 -30
  38. data/app/assets/javascripts/highcharts/modules/streamgraph.js +1 -1
  39. data/app/assets/javascripts/highcharts/modules/sunburst.js +82 -50
  40. data/app/assets/javascripts/highcharts/modules/tilemap.js +1 -1
  41. data/app/assets/javascripts/highcharts/modules/treemap.js +10 -2
  42. data/app/assets/javascripts/highcharts/modules/variable-pie.js +1 -1
  43. data/app/assets/javascripts/highcharts/modules/variwide.js +1 -1
  44. data/app/assets/javascripts/highcharts/modules/vector.js +1 -1
  45. data/app/assets/javascripts/highcharts/modules/windbarb.js +1 -1
  46. data/app/assets/javascripts/highcharts/modules/wordcloud.js +7 -3
  47. data/app/assets/javascripts/highcharts/modules/xrange.js +24 -76
  48. data/app/assets/javascripts/highcharts/themes/avocado.js +1 -1
  49. data/app/assets/javascripts/highcharts/themes/dark-blue.js +1 -1
  50. data/app/assets/javascripts/highcharts/themes/dark-green.js +1 -1
  51. data/app/assets/javascripts/highcharts/themes/dark-unica.js +1 -1
  52. data/app/assets/javascripts/highcharts/themes/gray.js +1 -1
  53. data/app/assets/javascripts/highcharts/themes/grid-light.js +1 -1
  54. data/app/assets/javascripts/highcharts/themes/grid.js +1 -1
  55. data/app/assets/javascripts/highcharts/themes/sand-signika.js +1 -1
  56. data/app/assets/javascripts/highcharts/themes/skies.js +1 -1
  57. data/app/assets/javascripts/highcharts/themes/sunset.js +1 -1
  58. data/highcharts-rails.gemspec +1 -0
  59. data/lib/highcharts/version.rb +1 -1
  60. metadata +9 -4
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Annotations module
4
4
  *
5
5
  * (c) 2009-2017 Torstein Honsi
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Boost module
4
4
  *
5
5
  * (c) 2010-2017 Highsoft AS
@@ -135,12 +135,7 @@
135
135
  }
136
136
  };
137
137
 
138
- target.boostClipRect = chart.renderer.clipRect(
139
- chart.plotLeft,
140
- chart.plotTop,
141
- chart.plotWidth,
142
- chart.chartHeight
143
- );
138
+ target.boostClipRect = chart.renderer.clipRect();
144
139
 
145
140
  target.renderTarget.clip(target.boostClipRect);
146
141
 
@@ -165,12 +160,7 @@
165
160
  href: ''
166
161
  });
167
162
 
168
- target.boostClipRect.attr({
169
- x: chart.plotLeft,
170
- y: chart.plotTop,
171
- width: chart.plotWidth,
172
- height: chart.chartHeight
173
- });
163
+ target.boostClipRect.attr(chart.getBoostClipRect(target));
174
164
 
175
165
  return ctx;
176
166
  },
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Boost module
4
4
  *
5
5
  * (c) 2010-2017 Highsoft AS
@@ -548,6 +548,32 @@
548
548
  shouldForceChartSeriesBoosting(this);
549
549
  };
550
550
 
551
+ /*
552
+ * Get the clip rectangle for a target, either a series or the chart. For the
553
+ * chart, we need to consider the maximum extent of its Y axes, in case of
554
+ * Highstock panes and navigator.
555
+ */
556
+ Chart.prototype.getBoostClipRect = function(target) {
557
+ var clipBox = {
558
+ x: this.plotLeft,
559
+ y: this.plotTop,
560
+ width: this.plotWidth,
561
+ height: this.plotHeight
562
+ };
563
+
564
+ if (target === this) {
565
+ each(this.yAxis, function(yAxis) {
566
+ clipBox.y = Math.min(yAxis.pos, clipBox.y);
567
+ clipBox.height = Math.max(
568
+ yAxis.pos - this.plotTop + yAxis.len,
569
+ clipBox.height
570
+ );
571
+ }, this);
572
+ }
573
+
574
+ return clipBox;
575
+ };
576
+
551
577
  /*
552
578
  * Returns true if the series is in boost mode
553
579
  * @param series {Highchart.Series} - the series to check
@@ -2395,12 +2421,7 @@
2395
2421
  }
2396
2422
  };
2397
2423
 
2398
- target.boostClipRect = chart.renderer.clipRect(
2399
- chart.plotLeft,
2400
- chart.plotTop,
2401
- chart.plotWidth,
2402
- chart.chartHeight
2403
- );
2424
+ target.boostClipRect = chart.renderer.clipRect();
2404
2425
 
2405
2426
  (target.renderTargetFo || target.renderTarget).clip(target.boostClipRect);
2406
2427
 
@@ -2414,12 +2435,7 @@
2414
2435
  target.canvas.width = width;
2415
2436
  target.canvas.height = height;
2416
2437
 
2417
- target.boostClipRect.attr({
2418
- x: chart.plotLeft,
2419
- y: chart.plotTop,
2420
- width: chart.plotWidth,
2421
- height: chart.chartHeight
2422
- });
2438
+ target.boostClipRect.attr(chart.getBoostClipRect(target));
2423
2439
 
2424
2440
  target.boostResizeTarget();
2425
2441
  target.boostClear();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  *
4
4
  * (c) 2009-2017 Torstein Honsi
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  *
4
4
  * Bullet graph series type for Highcharts
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Data module
4
4
  *
5
5
  * (c) 2012-2017 Torstein Honsi
@@ -132,13 +132,13 @@
132
132
  *
133
133
  * Valid options include:
134
134
  *
135
- * * `YYYY-mm-dd`
135
+ * * `YYYY/mm/dd`
136
136
  * * `dd/mm/YYYY`
137
137
  * * `mm/dd/YYYY`
138
138
  * * `dd/mm/YY`
139
139
  * * `mm/dd/YY`
140
140
  *
141
- * @validvalue [undefined, "YYYY-mm-dd", "dd/mm/YYYY", "mm/dd/YYYY", "dd/mm/YYYY", "dd/mm/YY", "mm/dd/YY"]
141
+ * @validvalue [undefined, "YYYY/mm/dd", "dd/mm/YYYY", "mm/dd/YYYY", "dd/mm/YYYY", "dd/mm/YY", "mm/dd/YY"]
142
142
  * @type {String}
143
143
  * @see [data.parseDate](#data.parseDate)
144
144
  * @sample {highcharts} highcharts/data/dateformat-auto/ Best guess date format
@@ -781,7 +781,7 @@
781
781
  * data is the data to deduce a format based on
782
782
  */
783
783
  function deduceDateFormat(data, limit) {
784
- var format = 'YYYY-mm-dd',
784
+ var format = 'YYYY/mm/dd',
785
785
  thing,
786
786
  guessedFormat,
787
787
  calculatedFormat,
@@ -1225,7 +1225,7 @@
1225
1225
  * custom date formats.
1226
1226
  */
1227
1227
  dateFormats: {
1228
- 'YYYY-mm-dd': {
1228
+ 'YYYY/mm/dd': {
1229
1229
  regex: /^([0-9]{4})[\-\/\.]([0-9]{1,2})[\-\/\.]([0-9]{1,2})$/,
1230
1230
  parser: function(match) {
1231
1231
  return Date.UTC(+match[1], match[2] - 1, +match[3]);
@@ -1302,7 +1302,7 @@
1302
1302
 
1303
1303
  if (!format) {
1304
1304
  // The selected format is invalid
1305
- format = this.dateFormats['YYYY-mm-dd'];
1305
+ format = this.dateFormats['YYYY/mm/dd'];
1306
1306
  }
1307
1307
 
1308
1308
  match = val.match(format.regex);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Drag-panes module
4
4
  *
5
5
  * (c) 2010-2017 Highsoft AS
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Highcharts Drilldown module
4
4
  *
5
5
  * Author: Torstein Honsi
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Exporting module
4
4
  *
5
5
  * (c) 2010-2017 Torstein Honsi
@@ -118,16 +118,14 @@
118
118
  });
119
119
 
120
120
  // Add an event listener to handle the showTable option
121
- Highcharts.Chart.prototype.callbacks.push(function(chart) {
122
- Highcharts.addEvent(chart, 'render', function() {
123
- if (
124
- chart.options &&
125
- chart.options.exporting &&
126
- chart.options.exporting.showTable
127
- ) {
128
- chart.viewData();
129
- }
130
- });
121
+ Highcharts.addEvent(Highcharts.Chart.prototype, 'render', function() {
122
+ if (
123
+ this.options &&
124
+ this.options.exporting &&
125
+ this.options.exporting.showTable
126
+ ) {
127
+ this.viewData();
128
+ }
131
129
  });
132
130
 
133
131
  // Set up key-to-axis bindings. This is used when the Y axis is datetime or
@@ -453,7 +451,7 @@
453
451
 
454
452
  if (this.options.exporting.filename) {
455
453
  name = this.options.exporting.filename;
456
- } else if (this.title) {
454
+ } else if (this.title && this.title.textStr) {
457
455
  name = this.title.textStr.replace(/ /g, '-').toLowerCase();
458
456
  } else {
459
457
  name = 'chart';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Exporting module
4
4
  *
5
5
  * (c) 2010-2017 Torstein Honsi
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Highcharts funnel module
4
4
  *
5
5
  * (c) 2010-2017 Torstein Honsi
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Gantt series
4
4
  *
5
5
  * (c) 2016 Lars A. V. Cabrera
@@ -623,7 +623,8 @@
623
623
  headerFormat: '<span style="font-size: 0.85em">{point.x} - {point.x2}</span><br/>',
624
624
  pointFormat: '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.yCategory}</b><br/>'
625
625
  },
626
- borderRadius: 3
626
+ borderRadius: 3,
627
+ pointRange: 0
627
628
  /**
628
629
  * A partial fill for each point, typically used to visualize how much of
629
630
  * a task is performed. The partial fill object can be set either on series
@@ -646,7 +647,6 @@
646
647
 
647
648
  }, {
648
649
  type: 'xrange',
649
- forceDL: true,
650
650
  parallelArrays: ['x', 'x2', 'y'],
651
651
  requireSorting: false,
652
652
  animate: seriesTypes.line.prototype.animate,
@@ -708,7 +708,10 @@
708
708
  partialFill,
709
709
  inverted = this.chart.inverted,
710
710
  borderWidth = pick(series.options.borderWidth, 1),
711
- crisper = borderWidth % 2 / 2;
711
+ crisper = borderWidth % 2 / 2,
712
+ dlLeft,
713
+ dlRight,
714
+ dlWidth;
712
715
 
713
716
  if (minPointLength) {
714
717
  widthDifference = minPointLength - length;
@@ -730,6 +733,23 @@
730
733
  r: series.options.borderRadius
731
734
  };
732
735
 
736
+ // Align data labels inside the shape and inside the plot area
737
+ dlLeft = point.shapeArgs.x;
738
+ dlRight = dlLeft + point.shapeArgs.width;
739
+ if (dlLeft < 0 || dlRight > xAxis.len) {
740
+ dlLeft = Math.min(xAxis.len, Math.max(0, dlLeft));
741
+ dlRight = Math.max(0, Math.min(dlRight, xAxis.len));
742
+ dlWidth = dlRight - dlLeft;
743
+ point.dlBox = merge(point.shapeArgs, {
744
+ x: dlLeft,
745
+ width: dlRight - dlLeft,
746
+ centerX: dlWidth ? dlWidth / 2 : null
747
+ });
748
+
749
+ } else {
750
+ point.dlBox = null;
751
+ }
752
+
733
753
  // Tooltip position
734
754
  point.tooltipPos[0] += inverted ? 0 : length / 2;
735
755
  point.tooltipPos[1] -= inverted ? length / 2 : metrics.width / 2;
@@ -769,78 +789,6 @@
769
789
  }, this);
770
790
  },
771
791
 
772
- /**
773
- * Aligns an individual dataLabel.
774
- *
775
- * TODO: Do we need this for inside datalabels? Seems to work.
776
- *
777
- * @param {Object} point the point belonging to the dataLabel
778
- * @param {Object} dataLabel the dataLabel configuration object
779
- * @param {Object} options dataLabel options for the series
780
- * @param {Object} alignTo
781
- * @param {Boolean} isNew Wheter the label is new or already existed
782
- * @return {void}
783
- * /
784
- alignDataLabel: function (point, dataLabel, options, alignTo, isNew) {
785
- var chart = this.chart,
786
- align = options.align,
787
- inverted = chart.inverted,
788
- plotX = pick(point.plotX, -9999),
789
- plotY = pick(point.plotY, -9999),
790
- verticalAlign = options.verticalAlign,
791
- inside = options.inside,
792
- pointBox = point.shapeArgs,
793
- labelBox = dataLabel.getBBox(),
794
- labelTextBox = dataLabel.text.getBBox(),
795
- attr = {},
796
- visible =
797
- this.visible &&
798
- (
799
- labelTextBox.width <= pointBox.width &&
800
- labelTextBox.height <= pointBox.height
801
- ) &&
802
- (
803
- this.forceDL ||
804
- chart.isInsidePlot(plotX, Math.round(plotY), inverted)
805
- );
806
-
807
- if (visible) {
808
- if (align === 'right') {
809
- if (inside) {
810
- attr.x = pointBox.x + pointBox.width - labelBox.width;
811
- } else {
812
- attr.x = pointBox.x - labelBox.width;
813
- }
814
- } else if (align === 'left') {
815
- if (inside) {
816
- attr.x = pointBox.x;
817
- } else {
818
- attr.x = pointBox.x + pointBox.width + labelBox.x;
819
- }
820
- } else { // Center
821
- attr.x = pointBox.x + pointBox.width / 2 - labelBox.width / 2;
822
- }
823
-
824
- if (verticalAlign === 'bottom') {
825
- if (inside) {
826
- attr.y = pointBox.y + pointBox.height - labelBox.height;
827
- } else {
828
- attr.y = pointBox.y - labelBox.height;
829
- }
830
- } else if (verticalAlign === 'top') {
831
- if (inside) {
832
- attr.y = pointBox.y;
833
- } else {
834
- attr.y = pointBox.y + pointBox.height;
835
- }
836
- } else { // Middle
837
- attr.y = pointBox.y + pointBox.height / 2 - labelBox.height / 2;
838
- }
839
-
840
- dataLabel[isNew ? 'attr' : 'animate'](attr);
841
- }
842
- },
843
- */
844
792
  /**
845
793
  * Draws a single point in the series. Needed for partial fill.
846
794
  *
@@ -1142,7 +1090,7 @@
1142
1090
  */
1143
1091
 
1144
1092
  }(Highcharts));
1145
- (function(H) {
1093
+ (function() {
1146
1094
  /**
1147
1095
  * (c) 2016 Highsoft AS
1148
1096
  * Authors: Lars A. V. Cabrera
@@ -1150,5 +1098,5 @@
1150
1098
  * License: www.highcharts.com/license
1151
1099
  */
1152
1100
  //
1153
- }(Highcharts));
1101
+ }());
1154
1102
  }));
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * GridAxis
4
4
  *
5
5
  * (c) 2016 Lars A. V. Cabrera
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  *
4
4
  * (c) 2009-2017 Torstein Honsi
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  *
4
4
  * (c) 2010-2017 Highsoft AS
5
5
  * Author: Sebastian Domas
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  *
4
4
  * Item series type for Highcharts
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.0.2 (2017-10-20)
2
+ * @license Highcharts JS v6.0.3 (2017-11-14)
3
3
  * Plugin for displaying a message when there is no data visible in chart.
4
4
  *
5
5
  * (c) 2010-2017 Highsoft AS
@@ -228,23 +228,14 @@
228
228
  };
229
229
 
230
230
  /**
231
- * Show no-data message if there is no data in sight. Otherwise, hide it.
231
+ * Add event listener to handle automatic show or hide no-data message
232
232
  */
233
- function handleNoData() {
234
- var chart = this;
235
- if (chart.hasData()) {
236
- chart.hideNoData();
233
+ H.addEvent(chartPrototype, 'render', function handleNoData() {
234
+ if (this.hasData()) {
235
+ this.hideNoData();
237
236
  } else {
238
- chart.showNoData();
237
+ this.showNoData();
239
238
  }
240
- }
241
-
242
- /**
243
- * Add event listener to handle automatic display of no-data message
244
- */
245
- chartPrototype.callbacks.push(function(chart) {
246
- H.addEvent(chart, 'load', handleNoData);
247
- H.addEvent(chart, 'redraw', handleNoData);
248
239
  });
249
240
 
250
241
  }(Highcharts));