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
  * Client side exporting module
4
4
  *
5
5
  * (c) 2015 Torstein Honsi / Oystein Moseng
@@ -637,7 +637,7 @@
637
637
 
638
638
  // Extend the default options to use the local exporter logic
639
639
  merge(true, Highcharts.getOptions().exporting, {
640
- libURL: 'https://code.highcharts.com/6.0.2/lib/',
640
+ libURL: 'https://code.highcharts.com/6.0.3/lib/',
641
641
 
642
642
  // When offline-exporting is loaded, redefine the menu item definitions
643
643
  // related to download.
@@ -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
  * Old IE (v6, v7, v8) module for Highcharts v6+.
4
4
  *
5
5
  * (c) 2010-2017 Highsoft AS
@@ -69,7 +69,7 @@
69
69
  * @since 2.3.0
70
70
  */
71
71
  H.getOptions().global.VMLRadialGradientURL =
72
- 'http://code.highcharts.com/6.0.2/gfx/vml-radial-gradient.png';
72
+ 'http://code.highcharts.com/6.0.3/gfx/vml-radial-gradient.png';
73
73
 
74
74
 
75
75
  // Utilites
@@ -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
  *
@@ -32,57 +32,51 @@
32
32
  // Collect potensial overlapping data labels. Stack labels probably don't need
33
33
  // to be considered because they are usually accompanied by data labels that lie
34
34
  // inside the columns.
35
- Chart.prototype.callbacks.push(function(chart) {
36
- function collectAndHide() {
37
- var labels = [];
35
+ addEvent(Chart.prototype, 'render', function collectAndHide() {
36
+ var labels = [];
38
37
 
39
- // Consider external label collectors
40
- each(chart.labelCollectors || [], function(collector) {
41
- labels = labels.concat(collector());
42
- });
38
+ // Consider external label collectors
39
+ each(this.labelCollectors || [], function(collector) {
40
+ labels = labels.concat(collector());
41
+ });
43
42
 
44
- each(chart.yAxis || [], function(yAxis) {
45
- if (
46
- yAxis.options.stackLabels &&
47
- !yAxis.options.stackLabels.allowOverlap
48
- ) {
49
- objectEach(yAxis.stacks, function(stack) {
50
- objectEach(stack, function(stackItem) {
51
- labels.push(stackItem.label);
52
- });
43
+ each(this.yAxis || [], function(yAxis) {
44
+ if (
45
+ yAxis.options.stackLabels &&
46
+ !yAxis.options.stackLabels.allowOverlap
47
+ ) {
48
+ objectEach(yAxis.stacks, function(stack) {
49
+ objectEach(stack, function(stackItem) {
50
+ labels.push(stackItem.label);
53
51
  });
54
- }
55
- });
56
-
57
- each(chart.series || [], function(series) {
58
- var dlOptions = series.options.dataLabels,
59
- // Range series have two collections
60
- collections = series.dataLabelCollections || ['dataLabel'];
52
+ });
53
+ }
54
+ });
61
55
 
62
- if (
63
- (dlOptions.enabled || series._hasPointLabels) &&
64
- !dlOptions.allowOverlap &&
65
- series.visible
66
- ) { // #3866
67
- each(collections, function(coll) {
68
- each(series.points, function(point) {
69
- if (point[coll]) {
70
- point[coll].labelrank = pick(
71
- point.labelrank,
72
- point.shapeArgs && point.shapeArgs.height
73
- ); // #4118
74
- labels.push(point[coll]);
75
- }
76
- });
56
+ each(this.series || [], function(series) {
57
+ var dlOptions = series.options.dataLabels,
58
+ // Range series have two collections
59
+ collections = series.dataLabelCollections || ['dataLabel'];
60
+
61
+ if (
62
+ (dlOptions.enabled || series._hasPointLabels) &&
63
+ !dlOptions.allowOverlap &&
64
+ series.visible
65
+ ) { // #3866
66
+ each(collections, function(coll) {
67
+ each(series.points, function(point) {
68
+ if (point[coll]) {
69
+ point[coll].labelrank = pick(
70
+ point.labelrank,
71
+ point.shapeArgs && point.shapeArgs.height
72
+ ); // #4118
73
+ labels.push(point[coll]);
74
+ }
77
75
  });
78
- }
79
- });
80
- chart.hideOverlappingLabels(labels);
81
- }
82
-
83
- // Do it on render and after each chart redraw
84
- addEvent(chart, 'render', collectAndHide);
85
-
76
+ });
77
+ }
78
+ });
79
+ this.hideOverlappingLabels(labels);
86
80
  });
87
81
 
88
82
  /**
@@ -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
  * Support for parallel coordinates in Highcharts
5
5
  *
@@ -137,7 +137,7 @@
137
137
  /**
138
138
  * Initialize parallelCoordinates
139
139
  */
140
- wrap(ChartProto, 'init', function(proceed, options) {
140
+ wrap(ChartProto, 'init', function(proceed, options, callback) {
141
141
  var defaultyAxis = splat(options.yAxis || {}),
142
142
  yAxisLength = defaultyAxis.length,
143
143
  newYAxes = [];
@@ -186,7 +186,7 @@
186
186
  );
187
187
  }
188
188
 
189
- return proceed.call(this, options);
189
+ return proceed.call(this, options, callback);
190
190
  });
191
191
 
192
192
  /**
@@ -294,7 +294,7 @@
294
294
  * - using series.points instead of series.yData
295
295
  */
296
296
  wrap(AxisProto, 'getSeriesExtremes', function(proceed) {
297
- if (this.chart.hasParallelCoordinates && !this.isXAxis) {
297
+ if (this.chart && this.chart.hasParallelCoordinates && !this.isXAxis) {
298
298
  var index = this.parallelPosition,
299
299
  currentPoints = [];
300
300
  each(this.series, function(series) {
@@ -415,14 +415,18 @@
415
415
  });
416
416
 
417
417
  function addFormattedValue(proceed) {
418
- var chart = this.series.chart,
418
+ var chart = this.series && this.series.chart,
419
419
  config = proceed.apply(this, Array.prototype.slice.call(arguments, 1)),
420
420
  formattedValue,
421
421
  yAxisOptions,
422
422
  labelFormat,
423
423
  yAxis;
424
424
 
425
- if (chart.hasParallelCoordinates && !defined(config.formattedValue)) {
425
+ if (
426
+ chart &&
427
+ chart.hasParallelCoordinates &&
428
+ !defined(config.formattedValue)
429
+ ) {
426
430
  yAxis = chart.yAxis[this.x];
427
431
  yAxisOptions = yAxis.options;
428
432
 
@@ -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
  * Pareto series type for Highcharts
5
5
  *
@@ -259,6 +259,14 @@
259
259
  * @apioption series.pareto
260
260
  */
261
261
 
262
+ /**
263
+ * An integer identifying the index to use for the base series, or a string
264
+ * representing the id of the series.
265
+ *
266
+ * @type {Number|String}
267
+ * @default undefined
268
+ * @apioption series.pareto.baseSeries
269
+ */
262
270
 
263
271
  /**
264
272
  * An array of data points for the series. For the `pareto` series type,
@@ -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
  * Sankey diagram 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
  *
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
  * Solid angular gauge 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
  * StaticScale
4
4
  *
5
5
  * (c) 2016 Torstein Honsi, Lars A. V. Cabrera
@@ -58,11 +58,7 @@
58
58
  });
59
59
  this.initiatedScale = true;
60
60
  };
61
- Chart.prototype.callbacks.push(function(chart) {
62
- H.addEvent(this, 'render', function() {
63
- chart.adjustHeight();
64
- });
65
- });
61
+ H.addEvent(Chart.prototype, 'render', Chart.prototype.adjustHeight);
66
62
 
67
63
  }(Highcharts));
68
64
  }));
@@ -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
  * Highstock as a plugin for Highcharts
4
4
  *
5
5
  * (c) 2017 Torstein Honsi
@@ -678,7 +678,7 @@
678
678
  if (!this.options.breaks) {
679
679
  ret = tickInterval / (ordinalSlope / this.closestPointRange);
680
680
  } else {
681
- ret = this.closestPointRange;
681
+ ret = this.closestPointRange || tickInterval; // #7275
682
682
  }
683
683
  } else {
684
684
  ret = tickInterval;
@@ -1569,7 +1569,9 @@
1569
1569
  ret.push(approximations.average(arr));
1570
1570
  });
1571
1571
 
1572
- return ret;
1572
+ // Return undefined when first elem. is undefined and let
1573
+ // sum method handle null (#7377)
1574
+ return ret[0] === undefined ? undefined : ret;
1573
1575
  },
1574
1576
  open: function(arr) {
1575
1577
  return arr.length ? arr[0] : (arr.hasNulls ? null : undefined);
@@ -1752,7 +1754,9 @@
1752
1754
  pick(dataGroupingOptions.enabled, chart.options.isStock),
1753
1755
  visible = series.visible || !chart.options.chart.ignoreHiddenSeries,
1754
1756
  hasGroupedData,
1755
- skip;
1757
+ skip,
1758
+ lastDataGrouping = this.currentDataGrouping,
1759
+ currentDataGrouping;
1756
1760
 
1757
1761
  // run base method
1758
1762
  series.forceCrop = groupingEnabled; // #334
@@ -1808,7 +1812,7 @@
1808
1812
  }
1809
1813
 
1810
1814
  // record what data grouping values were used
1811
- series.currentDataGrouping = groupPositions.info;
1815
+ currentDataGrouping = groupPositions.info;
1812
1816
  series.closestPointRange = groupPositions.info.totalRange;
1813
1817
  series.groupMap = groupedData[2];
1814
1818
 
@@ -1825,9 +1829,14 @@
1825
1829
  series.processedXData = groupedXData;
1826
1830
  series.processedYData = groupedYData;
1827
1831
  } else {
1828
- series.currentDataGrouping = series.groupMap = null;
1832
+ series.groupMap = null;
1829
1833
  }
1830
1834
  series.hasGroupedData = hasGroupedData;
1835
+ series.currentDataGrouping = currentDataGrouping;
1836
+
1837
+ series.preventGraphAnimation =
1838
+ (lastDataGrouping && lastDataGrouping.totalRange) !==
1839
+ (currentDataGrouping && currentDataGrouping.totalRange);
1831
1840
  }
1832
1841
  };
1833
1842
 
@@ -3165,10 +3174,11 @@
3165
3174
  point,
3166
3175
  graphic,
3167
3176
  stackIndex,
3168
- anchorX,
3169
3177
  anchorY,
3170
3178
  outsideRight,
3171
- yAxis = series.yAxis;
3179
+ yAxis = series.yAxis,
3180
+ boxesMap = {},
3181
+ boxes = [];
3172
3182
 
3173
3183
  i = points.length;
3174
3184
  while (i--) {
@@ -3182,7 +3192,7 @@
3182
3192
  if (plotY !== undefined) {
3183
3193
  plotY = point.plotY + optionsY - (stackIndex !== undefined && stackIndex * options.stackDistance);
3184
3194
  }
3185
- anchorX = stackIndex ? undefined : point.plotX; // skip connectors for higher level stacked points
3195
+ point.anchorX = stackIndex ? undefined : point.plotX; // skip connectors for higher level stacked points
3186
3196
  anchorY = stackIndex ? undefined : point.plotY;
3187
3197
 
3188
3198
  graphic = point.graphic;
@@ -3222,6 +3232,7 @@
3222
3232
 
3223
3233
  graphic.shadow(options.shadow);
3224
3234
 
3235
+ graphic.isNew = true;
3225
3236
  }
3226
3237
 
3227
3238
  if (plotX > 0) { // #3119
@@ -3230,13 +3241,27 @@
3230
3241
 
3231
3242
  // Plant the flag
3232
3243
  graphic.attr({
3233
- text: point.options.title || options.title || 'A',
3234
- x: plotX,
3244
+ text: point.options.title || options.title || 'A'
3245
+ })[graphic.isNew ? 'attr' : 'animate']({
3235
3246
  y: plotY,
3236
- anchorX: anchorX,
3237
3247
  anchorY: anchorY
3238
3248
  });
3239
3249
 
3250
+ // Rig for the distribute function
3251
+ if (!boxesMap[point.plotX]) {
3252
+ boxesMap[point.plotX] = {
3253
+ align: 0,
3254
+ size: graphic.width,
3255
+ target: plotX,
3256
+ anchorX: plotX
3257
+ };
3258
+ } else {
3259
+ boxesMap[point.plotX].size = Math.max(
3260
+ boxesMap[point.plotX].size,
3261
+ graphic.width
3262
+ );
3263
+ }
3264
+
3240
3265
  // Set the tooltip anchor position
3241
3266
  point.tooltipPos = chart.inverted ? [yAxis.len + yAxis.pos - chart.plotLeft - plotY, series.xAxis.len - plotX] : [plotX, plotY + yAxis.pos - chart.plotTop]; // #6327
3242
3267
 
@@ -3246,6 +3271,24 @@
3246
3271
 
3247
3272
  }
3248
3273
 
3274
+ H.objectEach(boxesMap, function(box) {
3275
+ box.plotX = box.anchorX;
3276
+ boxes.push(box);
3277
+ });
3278
+
3279
+ H.distribute(boxes, this.xAxis.len);
3280
+
3281
+ each(points, function(point) {
3282
+ var box = point.graphic && boxesMap[point.plotX];
3283
+ if (box) {
3284
+ point.graphic[point.graphic.isNew ? 'attr' : 'animate']({
3285
+ x: box.pos,
3286
+ anchorX: point.anchorX
3287
+ });
3288
+ point.graphic.isNew = false;
3289
+ }
3290
+ });
3291
+
3249
3292
  // Might be a mix of SVG and HTML and we need events for both (#6303)
3250
3293
  if (options.useHTML) {
3251
3294
  H.wrap(series.markerGroup, 'on', function(proceed) {
@@ -3307,15 +3350,17 @@
3307
3350
  var anchorX = (options && options.anchorX) || x,
3308
3351
  anchorY = (options && options.anchorY) || y;
3309
3352
 
3310
- return [
3311
- 'M', anchorX, anchorY,
3312
- 'L', x, y + h,
3313
- x, y,
3314
- x + w, y,
3315
- x + w, y + h,
3316
- x, y + h,
3317
- 'Z'
3318
- ];
3353
+ return symbols.circle(anchorX - 1, anchorY - 1, 2, 2).concat(
3354
+ [
3355
+ 'M', anchorX, anchorY,
3356
+ 'L', x, y + h,
3357
+ x, y,
3358
+ x + w, y,
3359
+ x + w, y + h,
3360
+ x, y + h,
3361
+ 'Z'
3362
+ ]
3363
+ );
3319
3364
  };
3320
3365
 
3321
3366
  // create the circlepin and squarepin icons with anchor
@@ -3339,7 +3384,17 @@
3339
3384
  // if the label is below the anchor, draw the connecting line from the top edge of the label
3340
3385
  // otherwise start drawing from the bottom edge
3341
3386
  labelTopOrBottomY = (y > anchorY) ? y : y + h;
3342
- path.push('M', anchorX, labelTopOrBottomY, 'L', anchorX, anchorY);
3387
+ path.push(
3388
+ 'M',
3389
+ shape === 'circle' ? path[1] - path[4] : path[1] + path[4] / 2,
3390
+ labelTopOrBottomY,
3391
+ 'L',
3392
+ anchorX,
3393
+ anchorY
3394
+ );
3395
+ path = path.concat(
3396
+ symbols.circle(anchorX - 1, anchorY - 1, 2, 2)
3397
+ );
3343
3398
  }
3344
3399
 
3345
3400
  return path;
@@ -5162,6 +5217,7 @@
5162
5217
  * @param {Number} pxMax Pixel value maximum
5163
5218
  */
5164
5219
  render: function(min, max, pxMin, pxMax) {
5220
+
5165
5221
  var navigator = this,
5166
5222
  chart = navigator.chart,
5167
5223
  navigatorWidth,
@@ -5194,7 +5250,7 @@
5194
5250
  // it. For example hidden series, but visible navigator (#6022).
5195
5251
  if (rendered) {
5196
5252
  pxMin = 0;
5197
- pxMax = xAxis.width;
5253
+ pxMax = pick(xAxis.width, scrollbarXAxis.width);
5198
5254
  } else {
5199
5255
  return;
5200
5256
  }
@@ -6109,14 +6165,14 @@
6109
6165
 
6110
6166
  each(baseSeries, function(base) {
6111
6167
  // Link base series show/hide to navigator series visibility
6112
- addEvent(base, 'show', function(e) {
6168
+ addEvent(base, 'show', function() {
6113
6169
  if (this.navigatorSeries) {
6114
- this.navigatorSeries.setVisible(true, e.redraw);
6170
+ this.navigatorSeries.setVisible(true, false);
6115
6171
  }
6116
6172
  });
6117
- addEvent(base, 'hide', function(e) {
6173
+ addEvent(base, 'hide', function() {
6118
6174
  if (this.navigatorSeries) {
6119
- this.navigatorSeries.setVisible(false, e.redraw);
6175
+ this.navigatorSeries.setVisible(false, false);
6120
6176
  }
6121
6177
  });
6122
6178
 
@@ -6352,8 +6408,11 @@
6352
6408
  ret = false;
6353
6409
 
6354
6410
  // For xy zooming, record the state of the zoom before zoom selection,
6355
- // then when the reset button is pressed, revert to this state
6356
- } else if (zoomType === 'xy') {
6411
+ // then when the reset button is pressed, revert to this state. This
6412
+ // should apply only if the chart is initialized with a range (#6612),
6413
+ // otherwise zoom all the way out.
6414
+ } else if (zoomType === 'xy' && this.options.range) {
6415
+
6357
6416
  previousZoom = this.previousZoom;
6358
6417
  if (defined(newMin)) {
6359
6418
  this.previousZoom = [this.min, this.max];
@@ -7295,7 +7354,7 @@
7295
7354
  textAlign: 'center',
7296
7355
  fontSize: chartStyle.fontSize,
7297
7356
  fontFamily: chartStyle.fontFamily,
7298
- left: '-9em' // #4798
7357
+ top: '-9999em' // #4798
7299
7358
  }, options.inputStyle));
7300
7359
 
7301
7360
 
@@ -8171,7 +8230,14 @@
8171
8230
  y: -2
8172
8231
  },
8173
8232
  opposite: opposite,
8233
+
8234
+ /**
8235
+ * @default {highcharts} true
8236
+ * @default {highstock} false
8237
+ * @apioption yAxis.showLastLabel
8238
+ */
8174
8239
  showLastLabel: false,
8240
+
8175
8241
  title: {
8176
8242
  text: null
8177
8243
  }