highcharts-rails 3.0.8 → 3.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ffe4fc2fd86a3187d89a3ce8046f2d1d4b5b09db
4
- data.tar.gz: 58fee3a500a3aecb4238587ef347183be0711710
3
+ metadata.gz: e24562dd01a4658fb93f40796dca0312b6f9ac68
4
+ data.tar.gz: 44ff0bfcf4d78c5e8aef8a354f8c3b7f0fe450c9
5
5
  SHA512:
6
- metadata.gz: 448e927dd38767e45a5ccad29c39e553efcfa070fceb7de324336f4e7db35514ca0c130c791881c64be3190f609b234b01656a9914311208483d3aecb99448ae
7
- data.tar.gz: 9f52f7f8544553d6911d290699facef3330e49c464634c5390bd683c7ee048acc011b755a6e744acaef6b649eaf24923942ed811dfab26ce4065473961c80b28
6
+ metadata.gz: 15b919d02b6e1d2f84fa4d56f70214c12c2babac3031aac05dda8f094e476ac76eba920396999bdb52407934333601098607053727d70a9ff95a451365b61144
7
+ data.tar.gz: 832f0b1bde80d4cf886f5d760dfb6ec2173b30a038582a4403eb5f2a3851adafb8d0714a22ff3ff3fcdaee345711510659326e250f69b104b529ad78243192d3
checksums.yaml.gz.asc CHANGED
@@ -2,17 +2,17 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQIcBAABAgAGBQJSzv3QAAoJEH1ncb0Txu7XdFAQAKHvA/HFaZ6t8jlWORdsXZqu
6
- RRZhR7VOCV0XwaZ4jK3zgWbkpBbURvk8o+qJALQFy0K3hiqndusMfdRYbAWgaTkf
7
- 7gox1ttKjPRFiI2FNaHuT+PWdGZYRqL2ZcA8+K1jbY9YnuYoxPGuYUN/xBKRRd9a
8
- xxfmfMGbe+3RAZ5gosLUwUUs2XQbBAzXxoMqE8w8ulWnayNnPhpjAdAGxd7DiFHe
9
- +1e0GQI0C+fxLnwikyS1k8euDcnmLozWdu+Zjh6khd1mENf20VEpEyJta49UD+iK
10
- kWSIbNQI9IC+HJRGMJo75mPO8DrGSCC5/WDO2QZEMRMfCa8jgE3+ZG4GLcaUhXaA
11
- nTEt++nZ0/pI4Jy0ONitMFDQNmBGtITBp5yhdORaHs4n46M8KOnYDlhb79GpM9af
12
- lUZVGMp463l0d6sXjOAMAftKeJ7tR24XbpnSKGCjyB/UC35INChTwzVEf8SELFJ+
13
- DsMzyh0NGQF8aJ0LkLfgzhU8vPP5KUf6K/kQHwxJIWT3UH6RALnJjg1M09xPQHWd
14
- ZzQk1E1yC8Xa16gDzYNEubCQTrp4IkP9K/Nxx92hnoeYi5L63/h+gMfA9nAf7vss
15
- cvtiLjpe4BQT7swuSxSMtJw7UPr7DO78ffhyMN4DhDLgPN/xxBVXRe+ft9rviVcW
16
- ezBHT00xL3ihCzp2Ie75
17
- =rGT3
5
+ iQIcBAABAgAGBQJS1mNAAAoJEH1ncb0Txu7X14wP+wVxkh+IpSrYl9UobGQGiEtg
6
+ UKL72qT4iyLmmhDjZ6uoWUV4vqLZ5o9fRda1UDME/dypHZ34itoLeiTC8NWPvstF
7
+ 5gdte22q2TWT2+/7Hq1oUyd1LO2FQRJgcrcypi8gNZrhzFvMgNjh0T3mVo9vP28Z
8
+ JV4BKakda/uqKvj3f2crubtAKMJzlVzeUYJWLTuYXXFCUC6N6Ii/cUjdVF5o2xX5
9
+ tSTyX/KNt3eEe8cfxPs9aGRKy8/0lZDwPtYSZqzLrBtkjDlfKOcu8Vt16TazdEOO
10
+ eLujL7DAYe7hJVWxpVOIL5xYsxYC53nxkY7wT8Le/SOcvwp4ljtMEIFahT/n4rY1
11
+ pGV5k8HZgdRkrQXIkvw6cGc3YUcfSPZ+Cd6iOpmt8E4+rGIDu/fQ8r08545/UzMF
12
+ 3ymNmNBCkvf3dFbkGMBd+CrNfl+OC4VFXG4VYOahUm1oR0flxr9wvdYFitYHueVQ
13
+ 2f8hYHOTwZOT/JrmdLPXcS9WXVTu11jBvTDfAfre3fgRPdHprE1SKkwYURoEGVOJ
14
+ K9gTka4Fi4phXoitTHBq8U8PCkNjaEJQrZHue3PnXFvXfljoaAVpLTnoPr4Rn6Yu
15
+ CLp7V3AUrLZIaZ/DzbwwemJ3cTkb7rFgZiT9mccxBUMllaPIgKBUeVEHgwSCVz58
16
+ DTkBqgruP1mZW6+jLh15
17
+ =ArMS
18
18
  -----END PGP SIGNATURE-----
data.tar.gz.asc CHANGED
@@ -2,17 +2,17 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQIcBAABAgAGBQJSzv3QAAoJEH1ncb0Txu7XlgcQAItfq2CwLTlI8mvoYb5f4Unl
6
- oiRWCDug9omLVklafLZFSgJm3T/bMNPYN4XJfItC9mBxBB8MW8HdngqTSjyyo9N2
7
- QO6ATnhZqrUslhsa7X9toyZZ1gWGGwWSzHIdeWfxMztiDuZzhiAjTkx94e/QnRjH
8
- FlCt4Xwid7kBGZWJdDZRSTcgzWh+6VlJe1UJHcIHfM6YnhPNKRrT+gCMhwCn1gLc
9
- Kdid5jf+83XlPxh5UDvObyEHsWxKsweY6GLdi0ucipV9ORDwS7/9L/qXwN+c/Zv+
10
- H/MjWFs1Xp6B0JBfv5lxisKXGtbVWjOw8swQ8MZV7D7oKFV+Tvl9kWhtODXZ/Qck
11
- eE5pjU0S2J0d+3uu6AcOdZwgfILWD6Hq3PRknE/sB476KBq45T46A7EE+sX3hU9d
12
- pqUW+9/S1vuHrVLvxOHBTm8ThCrc21fTzqa0JY5ixlYql9meOfHook9CfbEbR5H4
13
- 8U36ct526BSccI9gO38ansrmu/K2JP+yfjapy8qlH+DSTvF7QFszjKtGyn/yk/rl
14
- GbyUpG0rMrI5rMsqVYOJXwtW1B9EM5AVyk1n9V9faA3tPilFIBOMthJrQJHvN2OS
15
- c0ymzuBSKAkCMkBzJF0mb8qyavAK6rXVirbbFZonlvfQT0YZtVaprLTAbEnNFE47
16
- 9a7xpRZX1jVEL00VN91c
17
- =709u
5
+ iQIcBAABAgAGBQJS1mNAAAoJEH1ncb0Txu7XwbQQALDnpvWuEFOtD6jgkTz+j5jy
6
+ hCGBBzp0ntgiSYKOxUnDSOhpKRaYC3KVsi5u/SUE/QgXbBSeq34Trwzu6eLf5OUd
7
+ JI+M6V77Ys4JSOdhmbUoP3MYhsOEUFScy+o1/PRijxTwoITfGcgU2R4b54h7V/5B
8
+ E/SjBp0McUmgvgkgBFzf+ePD4bZML/SWAMGAh74ln5jHtbT1BcNZACTzZlcwYMjS
9
+ JJ83hVyqZCyX81ybTHhCKlCXIxutkKiDBKDhbQ3VKBlbbBCfFHzSC5fo9JNUI+mY
10
+ SyDx7vltGoOEwHlemiJup9m1IgzjURNn8kb3iUWNhV5M2SF2pr8WJeWAFg3IYCVD
11
+ vM0yh/Kb4/IBN3hAhLIvAuOezBvYD6+S2QxnVRaD+3lZLR+EBnN0ActgObzbMmQ0
12
+ wh3nyfWKHsN1rj4hvwg9S+mgGrUX+L3MCn/6tVFtKqQqv/eyiBO9jrp19JKrRIR9
13
+ 9b4QhzBpC/Ndyao8BxrLi/LZTV9RaPAQ3ViWjpzLPqEEVPD18u9vmlNNLk5YtNyU
14
+ VPYuYy6uKRJfEt3OalxPGHE0Q5uy43rVqUaFtzpJvniI2yLgDksY4LhMGu7+BxO6
15
+ 6lw288GM5J8serY04nHyRPFpwDVh0pODO3LUzvaeO3PhhRWloraQrdR4q0Sn5TGw
16
+ utTFR5Gct1/T+ggURhWP
17
+ =Edn+
18
18
  -----END PGP SIGNATURE-----
data/CHANGELOG.markdown CHANGED
@@ -1,3 +1,23 @@
1
+ # 3.0.9 / 2014-01-15
2
+
3
+ * Updated Highcharts to 3.0.9
4
+ * Added bower.json file. Closes #2244.
5
+ * Fixed JS error on quickly moving the mouse out of a chart. Related to #2499.
6
+ * Fixed issue with text positioning in modern IE when CSS line height was much smaller than font size. Closes #2444. Closes #2568. Closes #2569. Affects #2591.
7
+ * Fixed issue with crosshairs not exactly following the tooltip, mostly visible ou touch devices. Closes #2582
8
+ * Fixed issue with categorized Y axis on gauges being positioned wrong. Closes #2593.
9
+ * Reverted optimization that skipped individual handling of point attributes. Closes #2549. Closes #2587.
10
+ * Fixed issue with adding a point in the middle of a line series failing. Issue #1109.
11
+ * Fixed regression with datetime tooltip header format falling back to full years. Closes #2581.
12
+ * Fixed rounding error in stack labels. Closes #2576.
13
+ * Implemented new option, switchRowsAndColumns, in the data module.
14
+ * Fixed regression in 3.0.8 with hover color of columns having individual color option. Closes #2579.
15
+ * Fixed issue with fillColor on box plots not honored when colorByPoint is true. Closes #2574.
16
+
17
+ # 3.0.8 / 2014-01-09
18
+
19
+ * Updated Highcharts to 3.0.8
20
+
1
21
  # 3.0.7 / 2013-10-24
2
22
 
3
23
  * Updated Highcharts to 3.0.7
@@ -2,7 +2,7 @@
2
2
  // @compilation_level SIMPLE_OPTIMIZATIONS
3
3
 
4
4
  /**
5
- * @license Highcharts JS v3.0.8 (2014-01-09)
5
+ * @license Highcharts JS v3.0.9 (2014-01-15)
6
6
  *
7
7
  * (c) 2009-2014 Torstein Honsi
8
8
  *
@@ -55,7 +55,7 @@ var UNDEFINED,
55
55
  noop = function () {},
56
56
  charts = [],
57
57
  PRODUCT = 'Highcharts',
58
- VERSION = '3.0.8',
58
+ VERSION = '3.0.9',
59
59
 
60
60
  // some constants for frequently used strings
61
61
  DIV = 'div',
@@ -1303,8 +1303,7 @@ defaultLabelOptions = {
1303
1303
  style: {
1304
1304
  color: '#666',
1305
1305
  cursor: 'default',
1306
- fontSize: '11px',
1307
- lineHeight: '14px'
1306
+ fontSize: '11px'
1308
1307
  }
1309
1308
  };
1310
1309
 
@@ -1326,9 +1325,9 @@ defaultOptions = {
1326
1325
  },
1327
1326
  global: {
1328
1327
  useUTC: true,
1329
- //timezoneOffset: 0, // docs: highcharts/global/timezoneoffset
1330
- canvasToolsURL: 'http://code.highcharts.com/3.0.8/modules/canvas-tools.js',
1331
- VMLRadialGradientURL: 'http://code.highcharts.com/3.0.8/gfx/vml-radial-gradient.png'
1328
+ //timezoneOffset: 0,
1329
+ canvasToolsURL: 'http://code.highcharts.com/3.0.9/modules/canvas-tools.js',
1330
+ VMLRadialGradientURL: 'http://code.highcharts.com/3.0.9/gfx/vml-radial-gradient.png'
1332
1331
  },
1333
1332
  chart: {
1334
1333
  //animation: true,
@@ -2489,8 +2488,8 @@ SVGElement.prototype = {
2489
2488
  width = bBox.width;
2490
2489
  height = bBox.height;
2491
2490
 
2492
- // Workaround for wrong bounding box in IE9 and IE10 (#1101, #1505, #1669)
2493
- if (isIE && styles && styles.fontSize === '11px' && height.toPrecision(3) === '22.7') {
2491
+ // Workaround for wrong bounding box in IE9 and IE10 (#1101, #1505, #1669, #2568)
2492
+ if (isIE && styles && styles.fontSize === '11px' && height.toPrecision(3) === '16.9') {
2494
2493
  bBox.height = height = 14;
2495
2494
  }
2496
2495
 
@@ -2894,7 +2893,16 @@ SVGRenderer.prototype = {
2894
2893
  textStyles = wrapper.styles,
2895
2894
  width = wrapper.textWidth,
2896
2895
  textLineHeight = textStyles && textStyles.lineHeight,
2897
- i = childNodes.length;
2896
+ i = childNodes.length,
2897
+ getLineHeight = function (tspan) {
2898
+ return textLineHeight ?
2899
+ pInt(textLineHeight) :
2900
+ renderer.fontMetrics(
2901
+ /px$/.test(tspan && tspan.style.fontSize) ?
2902
+ tspan.style.fontSize :
2903
+ (textStyles.fontSize || 11)
2904
+ ).h;
2905
+ };
2898
2906
 
2899
2907
  /// remove old text
2900
2908
  while (i--) {
@@ -2963,11 +2971,7 @@ SVGRenderer.prototype = {
2963
2971
  attr(
2964
2972
  tspan,
2965
2973
  'dy',
2966
- textLineHeight || renderer.fontMetrics(
2967
- /px$/.test(tspan.style.fontSize) ?
2968
- tspan.style.fontSize :
2969
- textStyles.fontSize
2970
- ).h,
2974
+ getLineHeight(tspan),
2971
2975
  // Safari 6.0.2 - too optimized for its own good (#1539)
2972
2976
  // TODO: revisit this with future versions of Safari
2973
2977
  isWebKit && tspan.offsetHeight
@@ -2982,12 +2986,12 @@ SVGRenderer.prototype = {
2982
2986
  // check width and apply soft breaks
2983
2987
  if (width) {
2984
2988
  var words = span.replace(/([^\^])-/g, '$1- ').split(' '), // #1273
2985
- hasWhiteSpace = words.length > 1 && textStyles.whiteSpace !== 'nowrap', // docs: nowrap
2989
+ hasWhiteSpace = words.length > 1 && textStyles.whiteSpace !== 'nowrap',
2986
2990
  tooLong,
2987
2991
  actualWidth,
2988
2992
  clipHeight = wrapper._clipHeight,
2989
2993
  rest = [],
2990
- dy = pInt(textLineHeight || 16),
2994
+ dy = getLineHeight(),
2991
2995
  softLineNo = 1,
2992
2996
  bBox;
2993
2997
 
@@ -5788,7 +5792,6 @@ Tick.prototype = {
5788
5792
  labelEdge = axis.labelEdge,
5789
5793
  justifyLabel = axis.justifyLabels && (isFirst || isLast);
5790
5794
 
5791
- // docs: auto step pulls out overlapping labels
5792
5795
  // Hide it if it now overlaps the neighbour label
5793
5796
  if (labelEdge[line] === UNDEFINED || pxPos + leftSide > labelEdge[line]) {
5794
5797
  labelEdge[line] = pxPos + rightSide;
@@ -9265,7 +9268,7 @@ Pointer.prototype = {
9265
9268
 
9266
9269
  // Draw independent crosshairs
9267
9270
  each(chart.axes, function (axis) {
9268
- axis.drawCrosshair(e, pick(hoverPoint, point));
9271
+ axis.drawCrosshair(e, pick(point, hoverPoint));
9269
9272
  });
9270
9273
  },
9271
9274
 
@@ -9770,7 +9773,7 @@ Pointer.prototype = {
9770
9773
  onTrackerMouseOut: function (e) {
9771
9774
  var series = this.chart.hoverSeries,
9772
9775
  relatedTarget = e.relatedTarget || e.toElement,
9773
- relatedSeries = relatedTarget.point && relatedTarget.point.series; // #2499
9776
+ relatedSeries = relatedTarget && relatedTarget.point && relatedTarget.point.series; // #2499
9774
9777
 
9775
9778
  if (series && !series.options.stickyTracking && !this.inClass(relatedTarget, PREFIX + 'tooltip') &&
9776
9779
  relatedSeries !== series) {
@@ -10840,14 +10843,14 @@ var LegendSymbolMixin = Highcharts.LegendSymbolMixin = {
10840
10843
  * @param {Object} item The series (this) or point
10841
10844
  */
10842
10845
  drawRectangle: function (legend, item) {
10843
- var symbolHeight = legend.options.symbolHeight || 12; // docs
10846
+ var symbolHeight = legend.options.symbolHeight || 12;
10844
10847
 
10845
10848
  item.legendSymbol = this.chart.renderer.rect(
10846
10849
  0,
10847
10850
  legend.baseline - 5 - (symbolHeight / 2),
10848
10851
  legend.symbolWidth,
10849
10852
  symbolHeight,
10850
- pick(legend.options.symbolRadius, 2) // docs
10853
+ pick(legend.options.symbolRadius, 2)
10851
10854
  ).attr({
10852
10855
  zIndex: 3
10853
10856
  }).add(item.legendGroup);
@@ -13611,10 +13614,10 @@ Series.prototype = {
13611
13614
 
13612
13615
  // Percent stacked areas
13613
13616
  } else {
13614
- stack.total += mathAbs(y) || 0;
13617
+ stack.total = correctFloat(stack.total + (mathAbs(y) || 0));
13615
13618
  }
13616
13619
  } else {
13617
- stack.total += y || 0;
13620
+ stack.total = correctFloat(stack.total + (y || 0));
13618
13621
  }
13619
13622
 
13620
13623
  stack.cum = (stack.cum || 0) + (y || 0);
@@ -13889,7 +13892,7 @@ Series.prototype = {
13889
13892
  var series = this,
13890
13893
  tooltipOptions = series.tooltipOptions,
13891
13894
  dateTimeLabelFormats = tooltipOptions.dateTimeLabelFormats,
13892
- xDateFormat = tooltipOptions.xDateFormat || dateTimeLabelFormats.year, // #2546
13895
+ xDateFormat = tooltipOptions.xDateFormat,
13893
13896
  xAxis = series.xAxis,
13894
13897
  isDateTime = xAxis && xAxis.options.type === 'datetime',
13895
13898
  headerFormat = tooltipOptions.headerFormat,
@@ -13908,6 +13911,9 @@ Series.prototype = {
13908
13911
  } else {
13909
13912
  xDateFormat = dateTimeLabelFormats.day;
13910
13913
  }
13914
+
13915
+ xDateFormat = xDateFormat || dateTimeLabelFormats.year; // #2546, 2581
13916
+
13911
13917
  }
13912
13918
 
13913
13919
  // Insert the header date format if any
@@ -14082,7 +14088,6 @@ Series.prototype = {
14082
14088
  graphic,
14083
14089
  options = series.options,
14084
14090
  seriesMarkerOptions = options.marker,
14085
- seriesPointAttr = series.pointAttr[''],
14086
14091
  pointMarkerOptions,
14087
14092
  enabled,
14088
14093
  isInside,
@@ -14104,7 +14109,7 @@ Series.prototype = {
14104
14109
  if (enabled && plotY !== UNDEFINED && !isNaN(plotY) && point.y !== null) {
14105
14110
 
14106
14111
  // shortcuts
14107
- pointAttr = point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE] || seriesPointAttr;
14112
+ pointAttr = point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE];
14108
14113
  radius = pointAttr.r;
14109
14114
  symbol = pick(pointMarkerOptions.symbol, series.symbol);
14110
14115
  isImage = symbol.indexOf('url') === 0;
@@ -14192,9 +14197,10 @@ Series.prototype = {
14192
14197
  pointAttr,
14193
14198
  pointAttrToOptions = series.pointAttrToOptions,
14194
14199
  hasPointSpecificOptions,
14195
- turboThreshold = seriesOptions.turboThreshold,
14196
14200
  negativeColor = seriesOptions.negativeColor,
14197
14201
  defaultLineColor = normalOptions.lineColor,
14202
+ defaultFillColor = normalOptions.fillColor,
14203
+ attr,
14198
14204
  key;
14199
14205
 
14200
14206
  // series type specific modifications
@@ -14229,78 +14235,79 @@ Series.prototype = {
14229
14235
  // options are given. If not, create a referance to the series wide point
14230
14236
  // attributes
14231
14237
  i = points.length;
14232
- if (!turboThreshold || i < turboThreshold) {
14233
- while (i--) {
14234
- point = points[i];
14235
- normalOptions = (point.options && point.options.marker) || point.options;
14236
- if (normalOptions && normalOptions.enabled === false) {
14237
- normalOptions.radius = 0;
14238
- }
14238
+ while (i--) {
14239
+ point = points[i];
14240
+ normalOptions = (point.options && point.options.marker) || point.options;
14241
+ if (normalOptions && normalOptions.enabled === false) {
14242
+ normalOptions.radius = 0;
14243
+ }
14239
14244
 
14240
- if (point.negative && negativeColor) {
14241
- point.color = point.fillColor = negativeColor;
14242
- }
14245
+ if (point.negative && negativeColor) {
14246
+ point.color = point.fillColor = negativeColor;
14247
+ }
14243
14248
 
14244
- hasPointSpecificOptions = seriesOptions.colorByPoint || point.color; // #868
14249
+ hasPointSpecificOptions = seriesOptions.colorByPoint || point.color; // #868
14245
14250
 
14246
- // check if the point has specific visual options
14247
- if (point.options) {
14248
- for (key in pointAttrToOptions) {
14249
- if (defined(normalOptions[pointAttrToOptions[key]])) {
14250
- hasPointSpecificOptions = true;
14251
- }
14251
+ // check if the point has specific visual options
14252
+ if (point.options) {
14253
+ for (key in pointAttrToOptions) {
14254
+ if (defined(normalOptions[pointAttrToOptions[key]])) {
14255
+ hasPointSpecificOptions = true;
14252
14256
  }
14253
14257
  }
14258
+ }
14254
14259
 
14255
- // a specific marker config object is defined for the individual point:
14256
- // create it's own attribute collection
14257
- if (hasPointSpecificOptions) {
14258
- normalOptions = normalOptions || {};
14259
- pointAttr = [];
14260
- stateOptions = normalOptions.states || {}; // reassign for individual point
14261
- pointStateOptionsHover = stateOptions[HOVER_STATE] = stateOptions[HOVER_STATE] || {};
14262
-
14263
- // Handle colors for column and pies
14264
- if (!seriesOptions.marker) { // column, bar, point
14265
- // if no hover color is given, brighten the normal color
14266
- pointStateOptionsHover.color = pointStateOptionsHover.color || stateOptionsHover.color ||
14267
- Color(point.color)
14268
- .brighten(pointStateOptionsHover.brightness || stateOptionsHover.brightness)
14269
- .get();
14260
+ // a specific marker config object is defined for the individual point:
14261
+ // create it's own attribute collection
14262
+ if (hasPointSpecificOptions) {
14263
+ normalOptions = normalOptions || {};
14264
+ pointAttr = [];
14265
+ stateOptions = normalOptions.states || {}; // reassign for individual point
14266
+ pointStateOptionsHover = stateOptions[HOVER_STATE] = stateOptions[HOVER_STATE] || {};
14270
14267
 
14271
- }
14268
+ // Handle colors for column and pies
14269
+ if (!seriesOptions.marker) { // column, bar, point
14270
+ // if no hover color is given, brighten the normal color
14271
+ pointStateOptionsHover.color =
14272
+ Color(pointStateOptionsHover.color || point.color)
14273
+ .brighten(pointStateOptionsHover.brightness ||
14274
+ stateOptionsHover.brightness).get();
14272
14275
 
14273
- // normal point state inherits series wide normal state
14274
- pointAttr[NORMAL_STATE] = series.convertAttribs(extend({
14275
- color: point.color, // #868
14276
- fillColor: point.color, // Individual point color or negative color markers (#2219)
14277
- lineColor: defaultLineColor === null ? point.color : UNDEFINED // Bubbles take point color, line markers use white
14278
- }, normalOptions), seriesPointAttr[NORMAL_STATE]);
14279
-
14280
- // inherit from point normal and series hover
14281
- pointAttr[HOVER_STATE] = series.convertAttribs(
14282
- stateOptions[HOVER_STATE],
14283
- seriesPointAttr[HOVER_STATE],
14284
- pointAttr[NORMAL_STATE]
14285
- );
14276
+ }
14286
14277
 
14287
- // inherit from point normal and series hover
14288
- pointAttr[SELECT_STATE] = series.convertAttribs(
14289
- stateOptions[SELECT_STATE],
14290
- seriesPointAttr[SELECT_STATE],
14291
- pointAttr[NORMAL_STATE]
14292
- );
14278
+ // normal point state inherits series wide normal state
14279
+ attr = { color: point.color }; // #868
14280
+ if (!defaultFillColor) { // Individual point color or negative color markers (#2219)
14281
+ attr.fillColor = point.color;
14282
+ }
14283
+ if (!defaultLineColor) {
14284
+ attr.lineColor = point.color; // Bubbles take point color, line markers use white
14285
+ }
14286
+ pointAttr[NORMAL_STATE] = series.convertAttribs(extend(attr, normalOptions), seriesPointAttr[NORMAL_STATE]);
14293
14287
 
14288
+ // inherit from point normal and series hover
14289
+ pointAttr[HOVER_STATE] = series.convertAttribs(
14290
+ stateOptions[HOVER_STATE],
14291
+ seriesPointAttr[HOVER_STATE],
14292
+ pointAttr[NORMAL_STATE]
14293
+ );
14294
14294
 
14295
- // no marker config object is created: copy a reference to the series-wide
14296
- // attribute collection
14297
- } else {
14298
- pointAttr = seriesPointAttr;
14299
- }
14295
+ // inherit from point normal and series hover
14296
+ pointAttr[SELECT_STATE] = series.convertAttribs(
14297
+ stateOptions[SELECT_STATE],
14298
+ seriesPointAttr[SELECT_STATE],
14299
+ pointAttr[NORMAL_STATE]
14300
+ );
14300
14301
 
14301
- point.pointAttr = pointAttr;
14302
14302
 
14303
+ // no marker config object is created: copy a reference to the series-wide
14304
+ // attribute collection
14305
+ } else {
14306
+ pointAttr = seriesPointAttr;
14303
14307
  }
14308
+
14309
+ point.pointAttr = pointAttr;
14310
+
14304
14311
  }
14305
14312
  },
14306
14313
 
@@ -15230,7 +15237,7 @@ extend(Series.prototype, {
15230
15237
  }
15231
15238
  }
15232
15239
 
15233
- series.updateParallelArrays(point, 'splice', i); // insert undefined item
15240
+ series.updateParallelArrays(point, 'splice', i, 0, 0); // insert undefined item
15234
15241
  series.updateParallelArrays(point, i); // update it
15235
15242
 
15236
15243
  if (names) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v3.0.8 (2014-01-09)
2
+ * @license Highcharts JS v3.0.9 (2014-01-15)
3
3
  * MooTools adapter
4
4
  *
5
5
  * (c) 2010-2014 Torstein Honsi
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v3.0.8 (2014-01-09)
2
+ * @license Highcharts JS v3.0.9 (2014-01-15)
3
3
  * Prototype adapter
4
4
  *
5
5
  * @author Michael Nelson, Torstein Honsi.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v3.0.8 (2014-01-09)
2
+ * @license Highcharts JS v3.0.9 (2014-01-15)
3
3
  *
4
4
  * Standalone Highcharts Framework
5
5
  *
@@ -2,7 +2,7 @@
2
2
  // @compilation_level SIMPLE_OPTIMIZATIONS
3
3
 
4
4
  /**
5
- * @license Highcharts JS v3.0.8 (2014-01-09)
5
+ * @license Highcharts JS v3.0.9 (2014-01-15)
6
6
  *
7
7
  * (c) 2009-2014 Torstein Honsi
8
8
  *
@@ -274,6 +274,10 @@ var radialAxisMixin = {
274
274
  if (this.isXAxis) {
275
275
  this.minPixelPadding = this.transA * this.minPointOffset +
276
276
  (this.reversed ? (this.endAngleRad - this.startAngleRad) / 4 : 0); // ???
277
+ } else {
278
+ // This is a workaround for regression #2593, but categories still don't position correctly.
279
+ // TODO: Implement true handling of Y axis categories on gauges.
280
+ this.minPixelPadding = 0;
277
281
  }
278
282
  }
279
283
  },
@@ -578,8 +582,7 @@ wrap(tickProto, 'getLabelPosition', function (proceed, x, y, label, horiz, label
578
582
 
579
583
  // Vertically centered
580
584
  } else if (optionsY === null) {
581
- optionsY = pInt(label.styles.lineHeight) * 0.9 - label.getBBox().height / 2;
582
-
585
+ optionsY = axis.chart.renderer.fontMetrics(label.styles.fontSize).b - label.getBBox().height / 2;
583
586
  }
584
587
 
585
588
  // Automatic alignment
@@ -2908,7 +2908,7 @@ if (CanvasRenderingContext2D) {
2908
2908
  });
2909
2909
  }
2910
2910
  }/**
2911
- * @license Highcharts JS v3.0.8 (2014-01-09)
2911
+ * @license Highcharts JS v3.0.9 (2014-01-15)
2912
2912
  * CanVGRenderer Extension module
2913
2913
  *
2914
2914
  * (c) 2011-2012 Torstein Honsi, Erik Olsson
@@ -72,6 +72,10 @@
72
72
  * - startRow : Integer
73
73
  * In tabular input data, the first row (indexed by 0) to use.
74
74
  *
75
+ * - switchRowsAndColumns : Boolean
76
+ * Switch rows and columns of the input data, so that this.columns effectively becomes the
77
+ * rows of the data set, and the rows are interpreted as series.
78
+ *
75
79
  * - table : String|HTMLElement
76
80
  * A HTML table or the id of such to be parsed as input data. Related options ara startRow,
77
81
  * endRow, startColumn and endColumn to delimit what part of the table is used.
@@ -144,8 +148,16 @@
144
148
  };
145
149
  },
146
150
 
147
-
151
+ /**
152
+ * When the data is parsed into columns, either by CSV, table, GS or direct input,
153
+ * continue with other operations.
154
+ */
148
155
  dataFound: function () {
156
+
157
+ if (this.options.switchRowsAndColumns) {
158
+ this.columns = this.rowsToColumns(this.columns);
159
+ }
160
+
149
161
  // Interpret the values into right types
150
162
  this.parseTypes();
151
163
 
@@ -250,8 +262,6 @@
250
262
  },
251
263
 
252
264
  /**
253
- * TODO:
254
- * - switchRowsAndColumns
255
265
  */
256
266
  parseGoogleSpreadsheet: function () {
257
267
  var self = this,
@@ -341,7 +351,6 @@
341
351
 
342
352
  /**
343
353
  * Parse numeric cells in to number types and date types in to true dates.
344
- * @param {Object} columns
345
354
  */
346
355
  parseTypes: function () {
347
356
  var columns = this.columns,
@@ -386,7 +395,11 @@
386
395
  }
387
396
  }
388
397
  },
389
- //*
398
+
399
+ /**
400
+ * A collection of available date formats, extendable from the outside to support
401
+ * custom date formats.
402
+ */
390
403
  dateFormats: {
391
404
  'YYYY-mm-dd': {
392
405
  regex: '^([0-9]{4})-([0-9]{2})-([0-9]{2})$',
@@ -395,7 +408,7 @@
395
408
  }
396
409
  }
397
410
  },
398
- // */
411
+
399
412
  /**
400
413
  * Parse a date and return it as a number. Overridable through options.parseDate.
401
414
  */
@@ -146,22 +146,30 @@
146
146
  Chart.prototype.showDrillUpButton = function () {
147
147
  var chart = this,
148
148
  backText = this.getDrilldownBackText(),
149
- buttonOptions = chart.options.drilldown.drillUpButton;
149
+ buttonOptions = chart.options.drilldown.drillUpButton,
150
+ attr,
151
+ states;
150
152
 
151
153
 
152
154
  if (!this.drillUpButton) {
155
+ attr = buttonOptions.theme;
156
+ states = attr && attr.states;
157
+
153
158
  this.drillUpButton = this.renderer.button(
154
159
  backText,
155
160
  null,
156
161
  null,
157
162
  function () {
158
163
  chart.drillUp();
159
- }
164
+ },
165
+ attr,
166
+ states && states.hover,
167
+ states && states.select
160
168
  )
161
- .attr(extend({
169
+ .attr({
162
170
  align: buttonOptions.position.align,
163
171
  zIndex: 9
164
- }, buttonOptions.theme))
172
+ })
165
173
  .add()
166
174
  .align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox');
167
175
  } else {
@@ -350,7 +358,7 @@
350
358
  var series = this.series,
351
359
  chart = series.chart,
352
360
  drilldown = chart.options.drilldown,
353
- i = drilldown.series.length,
361
+ i = (drilldown.series || []).length,
354
362
  seriesOptions;
355
363
 
356
364
  while (i-- && !seriesOptions) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v3.0.8 (2014-01-09)
2
+ * @license Highcharts JS v3.0.9 (2014-01-15)
3
3
  * Exporting module
4
4
  *
5
5
  * (c) 2010-2014 Torstein Honsi
@@ -167,7 +167,7 @@ Highcharts.post = function (url, data, formAttributes) {
167
167
  method: 'post',
168
168
  action: url,
169
169
  enctype: 'multipart/form-data'
170
- }, formAttributes), { // docs
170
+ }, formAttributes), {
171
171
  display: NONE
172
172
  }, doc.body);
173
173
 
@@ -326,7 +326,7 @@ extend(Chart.prototype, {
326
326
 
327
327
  /**
328
328
  * Submit the SVG representation of the chart to the server
329
- * @param {Object} options Exporting options. Possible members are url, type and width.
329
+ * @param {Object} options Exporting options. Possible members are url, type, width and formAttributes.
330
330
  * @param {Object} chartOptions Additional chart options for the SVG representation of the chart
331
331
  */
332
332
  exportChart: function (options, chartOptions) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v3.0.8 (2014-01-09)
2
+ * @license Highcharts JS v3.0.9 (2014-01-15)
3
3
  * Plugin for displaying a message when there is no data visible in chart.
4
4
  *
5
5
  * (c) 2010-2014 Highsoft AS
@@ -1,3 +1,3 @@
1
1
  module Highcharts
2
- VERSION = "3.0.8"
2
+ VERSION = "3.0.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: highcharts-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.8
4
+ version: 3.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Per Christian B. Viken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-09 00:00:00.000000000 Z
11
+ date: 2014-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
metadata.gz.asc CHANGED
@@ -2,17 +2,17 @@
2
2
  Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
3
3
  Comment: GPGTools - http://gpgtools.org
4
4
 
5
- iQIcBAABAgAGBQJSzv3QAAoJEH1ncb0Txu7XGvIP/3uD8tWpRVNgA2nEnMOqjX1f
6
- 4cr1BrXgCJFr6KnrJNuzdZsYTg8xw64bW5TBGs+Sv0jvAg87iOwWWdlo+a4QtHIT
7
- X21XH0HtxXhmzl48qQ1FBkVS3FfSkSL5Oz5leF3rAYMo29ORWCqnIjq+3Lt1FkZI
8
- iXuqGHGjjcEp7fhgoHA+oOIm2zx0YxsNN5LxCos8GLIQtXFrD0Ku3+keDxQPmI7e
9
- cnfiAPdTYi2tyiBDa2VJ9QwQRQN8v2I/wBlE5Kd4vo01LVwemNvQKy1l+oFBCexh
10
- KQ2jjSiAD84YuTH//9RdI492WeZf49+Z+22Uv1Vj23QHiKZ5QSdnZnsvVzpljOKZ
11
- v3C/ZgvVRGPnG2CQEsq15NErseKkJ2v7wsYVusf1KQsfTWQZ0ZkVZNXTQaS9ktWr
12
- T6+Zkpoo/VN0CTtzc3y/illdKH8aWwy9f6eVcpuo9VkLzYlWW9AoCfq2R0UjvHfX
13
- pbu+jqpc2UcJEYpcmIuXtmraZN8Gr60c5bEJv2dxMiKRDm8xLCv9Q/V9uHEcgSsE
14
- Uct+LRG+5qwxKepISNdNsbXGYu3wUCWBkG5TygOnpr83BEa5qcoUhRUTVPnvwSkN
15
- RalC1Td2bDVzHQDqwEARyA+JlG3kP/wL9XRmzWZXVFV7MSxG90FgrBbm/sQJhvFo
16
- 5GdfcwoqoF7VwSYNgLrX
17
- =ocae
5
+ iQIcBAABAgAGBQJS1mNAAAoJEH1ncb0Txu7XfV4P/05oGakw9qagcBIc6WuZdZnu
6
+ iIuVVp2bHuMWgwaogJtEAINLR/6egMzAvsHKte/tdVJccEQ2xDaCI6o8bvl7DXhu
7
+ Rssn1xaNW2ov3IVPMXlB6gpo4RVKrLWaJp2ZXvO/owqUG/mvmIWnkZdbRvoc4NTg
8
+ /GZz/ftwsaKmB7QmOXfbhafpIiCh6b3pYAbby603u+upqcmO4vwQaDhdpaPVjLCI
9
+ qyf8M6JQkJOCu3Hlli7sxc4vWC/yjlNP4b1006WWRcn19Z2TJNjfsN9FHW0JZyCG
10
+ ZkL2nOSW6BGufsTIA+WHcZCKwWKEMIZtL6PcWEMhq6c5WcLNaMGsYjhknBDBxKNp
11
+ 3mM+1ZB/m0k+tQ//AQFtNdEtFmB8Fo8hmGfscRa3hDegMR8OIuB9tlWhq7ZBy5nK
12
+ NtZ0+6Zbr/wfeVOdjmKZaXL+TkPnmsuP+8S43A4R/T7jtqYUb2DwTaQO77HorIOJ
13
+ iWQ/H9AqCsGMwKLRfcPAxHYBjkYRNsF//OIT45nYrW5jgxvcb5hshVEdgJpdGeC/
14
+ M1ABEiVK3LlHP61w6Xh8QYSH3R5CLkO4iG304uWMNltTPkptiYVKQ5sPxASqzbWk
15
+ 9F41iBwQeDI9Ke4MTtJyAbqmqfirkBmTQKazBMkzPHiFBMR3LAguSvhd+WmBqQun
16
+ bI5BUHBiFL+xuuFSIarU
17
+ =u2+l
18
18
  -----END PGP SIGNATURE-----