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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v5.0.14 (2017-07-28)
2
+ * @license Highcharts JS v6.0.0 (2017-10-04)
3
3
  * GridAxis
4
4
  *
5
5
  * (c) 2016 Lars A. V. Cabrera
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v5.0.14 (2017-07-28)
2
+ * @license Highcharts JS v6.0.0 (2017-10-04)
3
3
  *
4
4
  * (c) 2009-2017 Torstein Honsi
5
5
  *
@@ -41,14 +41,120 @@
41
41
  };
42
42
  extend(ColorAxis.prototype, Axis.prototype);
43
43
  extend(ColorAxis.prototype, {
44
- /**
44
+ /**
45
+ * A color axis for choropleth maps and heat maps. Visually, the color axis
46
+ * will appear as a gradient or as separate items inside the legend,
47
+ * depending on whether the axis is scalar or based on data classes.
48
+ *
49
+ * For supported color formats, see the
50
+ * [docs article about colors](http://www.highcharts.com/docs/chart-design-and-style/colors).
51
+ *
52
+ * A scalar color axis is represented by a gradient. The colors either range
53
+ * between the [minColor](#colorAxis.minColor) and the [maxColor](#colorAxis.maxColor),
54
+ * or for more fine grained control the colors can be
55
+ * defined in [stops](#colorAxis.stops). Often times, the color axis needs
56
+ * to be adjusted to get the right color spread for the data. In addition to
57
+ * stops, consider using a logarithmic [axis type](#colorAxis.type), or
58
+ * setting [min](#colorAxis.min) and [max](#colorAxis.max) to avoid the
59
+ * colors being determined by outliers.
60
+ *
61
+ * When [dataClasses](#colorAxis.dataClasses) are used, the ranges are
62
+ * subdivided into separate classes like categories based on their values.
63
+ * This can be used for ranges between two values, but also for a true
64
+ * category. However, when your data is categorized, it may be as convenient
65
+ * to add each category to a separate series.
66
+ *
67
+ * See [the Axis object](#Axis) for programmatic access to the axis.
45
68
  * @extends {xAxis}
69
+ * @excluding allowDecimals,alternateGridColor,breaks,categories,crosshair,
70
+ * dateTimeLabelFormats,lineWidth,linkedTo,maxZoom,minRange,
71
+ * minTickInterval,offset,opposite,plotBands,plotLines,showEmpty,
72
+ * title
73
+ * @product highcharts highmaps
46
74
  * @optionparent colorAxis
47
75
  */
48
76
  defaultColorAxisOptions: {
49
77
 
50
78
  /**
79
+ * Whether to allow decimals on the color axis.
80
+ * @type {Boolean}
81
+ * @default true
82
+ * @product highcharts highmaps
83
+ * @apioption colorAxis.allowDecimals
84
+ */
85
+
86
+ /**
87
+ * Determines how to set each data class' color if no individual color
88
+ * is set. The default value, `tween`, computes intermediate colors
89
+ * between `minColor` and `maxColor`. The other possible value, `category`,
90
+ * pulls colors from the global or chart specific [colors](#colors)
91
+ * array.
92
+ *
93
+ * @validvalue ["tween", "category"]
94
+ * @type {String}
95
+ * @sample {highmaps} maps/coloraxis/dataclasscolor/ Category colors
96
+ * @default tween
97
+ * @product highcharts highmaps
98
+ * @apioption colorAxis.dataClassColor
99
+ */
100
+
101
+ /**
102
+ * An array of data classes or ranges for the choropleth map. If none
103
+ * given, the color axis is scalar and values are distributed as a gradient
104
+ * between the minimum and maximum colors.
105
+ *
106
+ * @type {Array<Object>}
107
+ * @sample {highmaps} maps/demo/data-class-ranges/ Multiple ranges
108
+ * @sample {highmaps} maps/demo/data-class-two-ranges/ Two ranges
109
+ * @product highcharts highmaps
110
+ * @apioption colorAxis.dataClasses
111
+ */
112
+
113
+ /**
114
+ * The color of each data class. If not set, the color is pulled from
115
+ * the global or chart-specific [colors](#colors) array. In
116
+ * styled mode, this option is ignored. Instead, use colors defined in
117
+ * CSS.
118
+ *
119
+ * @type {Color}
120
+ * @sample {highmaps} maps/demo/data-class-two-ranges/ Explicit colors
121
+ * @product highcharts highmaps
122
+ * @apioption colorAxis.dataClasses.color
51
123
  */
124
+
125
+ /**
126
+ * The start of the value range that the data class represents, relating
127
+ * to the point value.
128
+ *
129
+ * @type {Number}
130
+ * @product highcharts highmaps
131
+ * @apioption colorAxis.dataClasses.from
132
+ */
133
+
134
+ /**
135
+ * The name of the data class as it appears in the legend. If no name
136
+ * is given, it is automatically created based on the `from` and `to`
137
+ * values. For full programmatic control, [legend.labelFormatter](#legend.
138
+ * labelFormatter) can be used. In the formatter, `this.from` and `this.
139
+ * to` can be accessed.
140
+ *
141
+ * @type {String}
142
+ * @sample {highmaps} maps/coloraxis/dataclasses-name/ Named data classes
143
+ * @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/ Formatted data classes
144
+ * @product highcharts highmaps
145
+ * @apioption colorAxis.dataClasses.name
146
+ */
147
+
148
+ /**
149
+ * The end of the value range that the data class represents, relating
150
+ * to the point value.
151
+ *
152
+ * @type {Number}
153
+ * @product highcharts highmaps
154
+ * @apioption colorAxis.dataClasses.to
155
+ */
156
+
157
+ /** @ignore */
52
158
  lineWidth: 0,
53
159
 
54
160
  /**
@@ -56,19 +162,53 @@
56
162
  * padding of 0.05 will make a 100px axis 5px longer.
57
163
  *
58
164
  * @type {Number}
59
- * @product highmaps
165
+ * @product highcharts highmaps
60
166
  */
61
167
  minPadding: 0,
62
168
 
169
+ /**
170
+ * The maximum value of the axis in terms of map point values. If `null`,
171
+ * the max value is automatically calculated. If the `endOnTick` option
172
+ * is true, the max value might be rounded up.
173
+ *
174
+ * @type {Number}
175
+ * @sample {highmaps} maps/coloraxis/gridlines/
176
+ * Explicit min and max to reduce the effect of outliers
177
+ * @product highcharts highmaps
178
+ * @apioption colorAxis.max
179
+ */
180
+
181
+ /**
182
+ * The minimum value of the axis in terms of map point values. If `null`,
183
+ * the min value is automatically calculated. If the `startOnTick`
184
+ * option is true, the min value might be rounded down.
185
+ *
186
+ * @type {Number}
187
+ * @sample {highmaps} maps/coloraxis/gridlines/
188
+ * Explicit min and max to reduce the effect of outliers
189
+ * @product highcharts highmaps
190
+ * @apioption colorAxis.min
191
+ */
192
+
63
193
  /**
64
194
  * Padding of the max value relative to the length of the axis. A
65
195
  * padding of 0.05 will make a 100px axis 5px longer.
66
196
  *
67
197
  * @type {Number}
68
- * @product highmaps
198
+ * @product highcharts highmaps
69
199
  */
70
200
  maxPadding: 0,
71
201
 
202
+ /**
203
+ * Color of the grid lines extending from the axis across the gradient.
204
+ *
205
+ * @type {Color}
206
+ * @sample {highmaps} maps/coloraxis/gridlines/ Grid lines demonstrated
207
+ * @default #e6e6e6
208
+ * @product highcharts highmaps
209
+ * @apioption colorAxis.gridLineColor
210
+ */
211
+
72
212
  /**
73
213
  * The width of the grid lines extending from the axis across the
74
214
  * gradient of a scalar color axis.
@@ -76,17 +216,26 @@
76
216
  * @type {Number}
77
217
  * @sample {highmaps} maps/coloraxis/gridlines/ Grid lines demonstrated
78
218
  * @default 1
79
- * @product highmaps
219
+ * @product highcharts highmaps
80
220
  */
81
221
  gridLineWidth: 1,
82
222
 
223
+ /**
224
+ * The interval of the tick marks in axis units. When `null`, the tick
225
+ * interval is computed to approximately follow the `tickPixelInterval`.
226
+ *
227
+ * @type {Number}
228
+ * @product highcharts highmaps
229
+ * @apioption colorAxis.tickInterval
230
+ */
231
+
83
232
  /**
84
233
  * If [tickInterval](#colorAxis.tickInterval) is `null` this option
85
234
  * sets the approximate pixel interval of the tick marks.
86
235
  *
87
236
  * @type {Number}
88
237
  * @default 72
89
- * @product highmaps
238
+ * @product highcharts highmaps
90
239
  */
91
240
  tickPixelInterval: 72,
92
241
 
@@ -96,7 +245,7 @@
96
245
  *
97
246
  * @type {Boolean}
98
247
  * @default true
99
- * @product highmaps
248
+ * @product highcharts highmaps
100
249
  */
101
250
  startOnTick: true,
102
251
 
@@ -107,12 +256,11 @@
107
256
  *
108
257
  * @type {Boolean}
109
258
  * @default true
110
- * @product highmaps
259
+ * @product highcharts highmaps
111
260
  */
112
261
  endOnTick: true,
113
262
 
114
- /**
115
- */
263
+ /** @ignore */
116
264
  offset: 0,
117
265
 
118
266
  /**
@@ -122,7 +270,7 @@
122
270
  *
123
271
  * @type {Object}
124
272
  * @sample {highmaps} maps/coloraxis/marker/ Black marker
125
- * @product highmaps
273
+ * @product highcharts highmaps
126
274
  */
127
275
  marker: {
128
276
 
@@ -131,17 +279,13 @@
131
279
  * to disable animation. Defaults to `{ duration: 50 }`.
132
280
  *
133
281
  * @type {Object|Boolean}
134
- * @product highmaps
282
+ * @product highcharts highmaps
135
283
  */
136
284
  animation: {
137
-
138
- /**
139
- */
140
285
  duration: 50
141
286
  },
142
287
 
143
- /**
144
- */
288
+ /** @ignore */
145
289
  width: 0.01,
146
290
 
147
291
 
@@ -150,7 +294,7 @@
150
294
  *
151
295
  * @type {Color}
152
296
  * @default #999999
153
- * @product highmaps
297
+ * @product highcharts highmaps
154
298
  */
155
299
  color: '#999999'
156
300
 
@@ -164,25 +308,23 @@
164
308
  *
165
309
  * @type {Object}
166
310
  * @extends xAxis.labels
167
- * @product highmaps
311
+ * @product highcharts highmaps
168
312
  */
169
313
  labels: {
170
314
 
171
315
  /**
172
- * How to handle overflowing labels on horizontal axis. Can be undefined
173
- * or "justify". If "justify", labels will not render outside the
174
- * plot area. If there is room to move it, it will be aligned to
175
- * the edge, else it will be removed.
316
+ * How to handle overflowing labels on horizontal color axis. Can be
317
+ * undefined or "justify". If "justify", labels will not render
318
+ * outside the legend area. If there is room to move it, it will be
319
+ * aligned to the edge, else it will be removed.
176
320
  *
177
321
  * @validvalue [null, "justify"]
178
322
  * @type {String}
179
323
  * @default justify
180
- * @product highmaps
324
+ * @product highcharts highmaps
181
325
  */
182
326
  overflow: 'justify',
183
327
 
184
- /**
185
- */
186
328
  rotation: 0
187
329
  },
188
330
 
@@ -199,7 +341,7 @@
199
341
  * @sample {highmaps} maps/coloraxis/mincolor-maxcolor/ Min and max colors on scalar (gradient) axis
200
342
  * @sample {highmaps} maps/coloraxis/mincolor-maxcolor-dataclasses/ On data classes
201
343
  * @default #e6ebf5
202
- * @product highmaps
344
+ * @product highcharts highmaps
203
345
  */
204
346
  minColor: '#e6ebf5',
205
347
 
@@ -216,22 +358,57 @@
216
358
  * @sample {highmaps} maps/coloraxis/mincolor-maxcolor/ Min and max colors on scalar (gradient) axis
217
359
  * @sample {highmaps} maps/coloraxis/mincolor-maxcolor-dataclasses/ On data classes
218
360
  * @default #003399
219
- * @product highmaps
361
+ * @product highcharts highmaps
220
362
  */
221
363
  maxColor: '#003399',
222
364
 
223
365
  /**
366
+ * Color stops for the gradient of a scalar color axis. Use this in
367
+ * cases where a linear gradient between a `minColor` and `maxColor`
368
+ * is not sufficient. The stops is an array of tuples, where the first
369
+ * item is a float between 0 and 1 assigning the relative position in
370
+ * the gradient, and the second item is the color.
371
+ *
372
+ * @type {Array<Array>}
373
+ * @sample {highmaps} maps/demo/heatmap/ Heatmap with three color stops
374
+ * @product highcharts highmaps
375
+ * @apioption colorAxis.stops
376
+ */
377
+
378
+ /**
379
+ * The pixel length of the main tick marks on the color axis.
224
380
  */
225
381
  tickLength: 5,
226
382
 
383
+ /**
384
+ * The type of interpolation to use for the color axis. Can be `linear`
385
+ * or `logarithmic`.
386
+ *
387
+ * @validvalue ["linear", "logarithmic"]
388
+ * @type {String}
389
+ * @default linear
390
+ * @product highcharts highmaps
391
+ * @apioption colorAxis.type
392
+ */
393
+
394
+ /**
395
+ * Whether to reverse the axis so that the highest number is closest
396
+ * to the origin. Defaults to `false` in a horizontal legend and `true`
397
+ * in a vertical legend, where the smallest value starts on top.
398
+ *
399
+ * @type {Boolean}
400
+ * @product highcharts highmaps
401
+ * @apioption colorAxis.reversed
402
+ */
403
+
227
404
  /**
228
405
  * Whether to display the colorAxis in the legend.
229
406
  *
230
407
  * @type {Boolean}
231
- * @see [heatmap.showInLegend](#series<heatmap>.showInLegend)
408
+ * @see [heatmap.showInLegend](#series.heatmap.showInLegend)
232
409
  * @default true
233
410
  * @since 4.2.7
234
- * @product highmaps
411
+ * @product highcharts highmaps
235
412
  */
236
413
  showInLegend: true
237
414
  },
@@ -920,102 +1097,123 @@
920
1097
  seriesType = H.seriesType,
921
1098
  seriesTypes = H.seriesTypes;
922
1099
 
923
- // The Heatmap series type
924
1100
 
925
1101
  /**
1102
+ * A heatmap is a graphical representation of data where the individual values
1103
+ * contained in a matrix are represented as colors.
1104
+ *
1105
+ * @sample highcharts/demo/heatmap/
1106
+ * Simple heatmap
1107
+ * @sample highcharts/demo/heatmap-canvas/
1108
+ * Heavy heatmap
926
1109
  * @extends {plotOptions.scatter}
1110
+ * @excluding marker,pointRange
1111
+ * @product highcharts highmaps
927
1112
  * @optionparent plotOptions.heatmap
928
1113
  */
929
1114
  seriesType('heatmap', 'scatter', {
930
1115
 
931
1116
  /**
1117
+ * Animation is disabled by default on the heatmap series.
932
1118
  */
933
1119
  animation: false,
934
1120
 
935
1121
  /**
1122
+ * The border width for each heat map item.
936
1123
  */
937
1124
  borderWidth: 0,
938
1125
 
1126
+ /**
1127
+ * Padding between the points in the heatmap.
1128
+ *
1129
+ * @type {Number}
1130
+ * @default 0
1131
+ * @since 6.0
1132
+ * @apioption plotOptions.heatmap.pointPadding
1133
+ */
939
1134
 
940
1135
  /**
1136
+ * The main color of the series. In heat maps this color is rarely used,
1137
+ * as we mostly use the color to denote the value of each point. Unless
1138
+ * options are set in the [colorAxis](#colorAxis), the default value
1139
+ * is pulled from the [options.colors](#colors) array.
1140
+ *
1141
+ * @type {Color}
1142
+ * @default null
1143
+ * @since 4.0
1144
+ * @product highcharts
1145
+ * @apioption plotOptions.heatmap.color
941
1146
  */
942
- nullColor: '#f7f7f7',
1147
+
1148
+ /**
1149
+ * The column size - how many X axis units each column in the heatmap
1150
+ * should span.
1151
+ *
1152
+ * @type {Number}
1153
+ * @sample {highcharts} maps/demo/heatmap/ One day
1154
+ * @sample {highmaps} maps/demo/heatmap/ One day
1155
+ * @default 1
1156
+ * @since 4.0
1157
+ * @product highcharts highmaps
1158
+ * @apioption plotOptions.heatmap.colsize
1159
+ */
1160
+
943
1161
 
944
1162
 
945
1163
  /**
1164
+ * The color applied to null points. In styled mode, a general CSS class is
1165
+ * applied instead.
1166
+ *
1167
+ * @type {Color}
946
1168
  */
1169
+ nullColor: '#f7f7f7',
1170
+
1171
+
947
1172
  dataLabels: {
948
1173
 
949
- /**
950
- */
951
1174
  formatter: function() { // #2945
952
1175
  return this.point.value;
953
1176
  },
954
-
955
- /**
956
- */
957
1177
  inside: true,
958
-
959
- /**
960
- */
961
1178
  verticalAlign: 'middle',
962
-
963
- /**
964
- */
965
1179
  crop: false,
966
-
967
- /**
968
- */
969
1180
  overflow: false,
970
-
971
- /**
972
- */
973
1181
  padding: 0 // #3837
974
1182
  },
975
1183
 
976
- /**
977
- */
1184
+ /** @ignore */
978
1185
  marker: null,
979
1186
 
980
- /**
981
- */
1187
+ /** @ignore */
982
1188
  pointRange: null, // dynamically set to colsize by default
983
1189
 
984
- /**
985
- */
986
1190
  tooltip: {
987
-
988
- /**
989
- */
990
1191
  pointFormat: '{point.x}, {point.y}: {point.value}<br/>'
991
1192
  },
992
1193
 
993
- /**
994
- */
995
1194
  states: {
996
1195
 
997
- /**
998
- */
999
1196
  normal: {
1000
-
1001
- /**
1002
- */
1003
1197
  animation: true
1004
1198
  },
1005
1199
 
1006
- /**
1007
- */
1008
1200
  hover: {
1009
-
1010
- /**
1011
- */
1012
- halo: false, // #3406, halo is not required on heatmaps
1013
-
1014
- /**
1015
- */
1201
+ halo: false, // #3406, halo is disabled on heatmaps by default
1016
1202
  brightness: 0.2
1017
1203
  }
1018
1204
  }
1205
+ /**
1206
+ * The row size - how many Y axis units each heatmap row should span.
1207
+ *
1208
+ * @type {Number}
1209
+ * @sample {highcharts} maps/demo/heatmap/ 1 by default
1210
+ * @sample {highmaps} maps/demo/heatmap/ 1 by default
1211
+ * @default 1
1212
+ * @since 4.0
1213
+ * @product highcharts highmaps
1214
+ * @apioption plotOptions.heatmap.rowsize
1215
+ */
1216
+
1019
1217
  }, merge(colorSeriesMixin, {
1020
1218
  pointArrayMap: ['y', 'value'],
1021
1219
  hasPointSpecificOptions: true,
@@ -1039,6 +1237,7 @@
1039
1237
  options = series.options,
1040
1238
  xAxis = series.xAxis,
1041
1239
  yAxis = series.yAxis,
1240
+ seriesPointPadding = options.pointPadding || 0,
1042
1241
  between = function(x, a, b) {
1043
1242
  return Math.min(Math.max(a, x), b);
1044
1243
  };
@@ -1065,7 +1264,8 @@
1065
1264
  ),
1066
1265
  y2 = between(
1067
1266
  Math.round(yAxis.translate(point.y + yPad, 0, 1, 0, 1)), -yAxis.len, 2 * yAxis.len
1068
- );
1267
+ ),
1268
+ pointPadding = pick(point.pointPadding, seriesPointPadding);
1069
1269
 
1070
1270
  // Set plotX and plotY for use in K-D-Tree and more
1071
1271
  point.plotX = point.clientX = (x1 + x2) / 2;
@@ -1073,10 +1273,10 @@
1073
1273
 
1074
1274
  point.shapeType = 'rect';
1075
1275
  point.shapeArgs = {
1076
- x: Math.min(x1, x2),
1077
- y: Math.min(y1, y2),
1078
- width: Math.abs(x2 - x1),
1079
- height: Math.abs(y2 - y1)
1276
+ x: Math.min(x1, x2) + pointPadding,
1277
+ y: Math.min(y1, y2) + pointPadding,
1278
+ width: Math.abs(x2 - x1) - pointPadding * 2,
1279
+ height: Math.abs(y2 - y1) - pointPadding * 2
1080
1280
  };
1081
1281
  });
1082
1282
 
@@ -1105,7 +1305,133 @@
1105
1305
  Series.prototype.getExtremes.call(this);
1106
1306
  }
1107
1307
 
1108
- }), colorPointMixin);
1308
+ }), H.extend({
1309
+ haloPath: function(size) {
1310
+ if (!size) {
1311
+ return [];
1312
+ }
1313
+ var rect = this.shapeArgs;
1314
+ return [
1315
+ 'M', rect.x - size, rect.y - size,
1316
+ 'L', rect.x - size, rect.y + rect.height + size,
1317
+ rect.x + rect.width + size, rect.y + rect.height + size,
1318
+ rect.x + rect.width + size, rect.y - size,
1319
+ 'Z'
1320
+ ];
1321
+ }
1322
+ }, colorPointMixin));
1323
+ /**
1324
+ * A `heatmap` series. If the [type](#series.heatmap.type) option is
1325
+ * not specified, it is inherited from [chart.type](#chart.type).
1326
+ *
1327
+ * For options that apply to multiple series, it is recommended to add
1328
+ * them to the [plotOptions.series](#plotOptions.series) options structure.
1329
+ * To apply to all series of this specific type, apply it to [plotOptions.
1330
+ * heatmap](#plotOptions.heatmap).
1331
+ *
1332
+ * @type {Object}
1333
+ * @extends series,plotOptions.heatmap
1334
+ * @excluding dataParser,dataURL,stack
1335
+ * @product highcharts highmaps
1336
+ * @apioption series.heatmap
1337
+ */
1338
+
1339
+ /**
1340
+ * An array of data points for the series. For the `heatmap` series
1341
+ * type, points can be given in the following ways:
1342
+ *
1343
+ * 1. An array of arrays with 3 or 2 values. In this case, the values
1344
+ * correspond to `x,y,value`. If the first value is a string, it is
1345
+ * applied as the name of the point, and the `x` value is inferred.
1346
+ * The `x` value can also be omitted, in which case the inner arrays
1347
+ * should be of length 2\. Then the `x` value is automatically calculated,
1348
+ * either starting at 0 and incremented by 1, or from `pointStart`
1349
+ * and `pointInterval` given in the series options.
1350
+ *
1351
+ * ```js
1352
+ * data: [
1353
+ * [0, 9, 7],
1354
+ * [1, 10, 4],
1355
+ * [2, 6, 3]
1356
+ * ]
1357
+ * ```
1358
+ *
1359
+ * 2. An array of objects with named values. The objects are point
1360
+ * configuration objects as seen below. If the total number of data
1361
+ * points exceeds the series' [turboThreshold](#series.heatmap.turboThreshold),
1362
+ * this option is not available.
1363
+ *
1364
+ * ```js
1365
+ * data: [{
1366
+ * x: 1,
1367
+ * y: 3,
1368
+ * value: 10,
1369
+ * name: "Point2",
1370
+ * color: "#00FF00"
1371
+ * }, {
1372
+ * x: 1,
1373
+ * y: 7,
1374
+ * value: 10,
1375
+ * name: "Point1",
1376
+ * color: "#FF00FF"
1377
+ * }]
1378
+ * ```
1379
+ *
1380
+ * @type {Array<Object|Array>}
1381
+ * @extends series.line.data
1382
+ * @excluding marker
1383
+ * @sample {highcharts} highcharts/chart/reflow-true/ Numerical values
1384
+ * @sample {highcharts} highcharts/series/data-array-of-arrays/ Arrays of numeric x and y
1385
+ * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/ Arrays of datetime x and y
1386
+ * @sample {highcharts} highcharts/series/data-array-of-name-value/ Arrays of point.name and y
1387
+ * @sample {highcharts} highcharts/series/data-array-of-objects/ Config objects
1388
+ * @product highcharts highmaps
1389
+ * @apioption series.heatmap.data
1390
+ */
1391
+
1392
+ /**
1393
+ * The color of the point. In heat maps the point color is rarely set
1394
+ * explicitly, as we use the color to denote the `value`. Options for
1395
+ * this are set in the [colorAxis](#colorAxis) configuration.
1396
+ *
1397
+ * @type {Color}
1398
+ * @product highcharts highmaps
1399
+ * @apioption series.heatmap.data.color
1400
+ */
1401
+
1402
+ /**
1403
+ * The value of the point, resulting in a color controled by options
1404
+ * as set in the [colorAxis](#colorAxis) configuration.
1405
+ *
1406
+ * @type {Number}
1407
+ * @product highcharts highmaps
1408
+ * @apioption series.heatmap.data.value
1409
+ */
1410
+
1411
+ /**
1412
+ * The x coordinate of the point.
1413
+ *
1414
+ * @type {Number}
1415
+ * @product highmaps
1416
+ * @apioption series.heatmap.data.x
1417
+ */
1418
+
1419
+ /**
1420
+ * The y coordinate of the point.
1421
+ *
1422
+ * @type {Number}
1423
+ * @product highmaps
1424
+ * @apioption series.heatmap.data.y
1425
+ */
1426
+
1427
+ /**
1428
+ * Point padding for a single point.
1429
+ *
1430
+ * @type {Number}
1431
+ * @sample maps/plotoptions/tilemap-pointpadding Point padding on tiles
1432
+ * @apioption series.heatmap.data.pointPadding
1433
+ */
1434
+
1109
1435
 
1110
1436
  }(Highcharts));
1111
1437
  }));