highcharts 6.1.4 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +17 -0
  3. package/css/highcharts.scss +14 -0
  4. package/css/themes/dark-unica.css +17 -0
  5. package/css/themes/grid-light.css +17 -0
  6. package/css/themes/sand-signika.css +17 -0
  7. package/es-modules/indicators/momentum.src.js +1 -1
  8. package/es-modules/indicators/pivot-points.src.js +6 -1
  9. package/es-modules/masters/highcharts-gantt.src.js +11 -0
  10. package/es-modules/masters/modules/annotations.src.js +1 -1
  11. package/es-modules/masters/modules/arrow-symbols.src.js +12 -0
  12. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  13. package/es-modules/masters/modules/current-date-indicator.src.js +12 -0
  14. package/es-modules/masters/modules/data.src.js +1 -1
  15. package/es-modules/masters/modules/draggable-points.src.js +9 -0
  16. package/es-modules/masters/modules/export-data.src.js +1 -1
  17. package/es-modules/masters/modules/exporting.src.js +1 -1
  18. package/es-modules/masters/modules/funnel.src.js +1 -1
  19. package/es-modules/masters/modules/gantt.src.js +2 -1
  20. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  21. package/es-modules/masters/modules/heatmap.src.js +1 -1
  22. package/es-modules/masters/modules/item-series.src.js +1 -1
  23. package/es-modules/masters/modules/map.src.js +1 -1
  24. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  25. package/es-modules/masters/modules/pathfinder.src.js +12 -0
  26. package/es-modules/masters/modules/sankey.src.js +1 -1
  27. package/es-modules/masters/modules/series-label.src.js +1 -1
  28. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  29. package/es-modules/masters/modules/stock.src.js +1 -1
  30. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  31. package/es-modules/masters/modules/treegrid.src.js +12 -0
  32. package/es-modules/masters/modules/variwide.src.js +1 -1
  33. package/es-modules/masters/modules/vector.src.js +1 -1
  34. package/es-modules/masters/modules/windbarb.src.js +1 -1
  35. package/es-modules/masters/modules/xrange.src.js +1 -1
  36. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  37. package/es-modules/masters/themes/dark-green.src.js +1 -1
  38. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  39. package/es-modules/masters/themes/gray.src.js +1 -1
  40. package/es-modules/masters/themes/grid-light.src.js +1 -1
  41. package/es-modules/masters/themes/grid.src.js +1 -1
  42. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  43. package/es-modules/masters/themes/skies.src.js +1 -1
  44. package/es-modules/mixins/centered-series.js +1 -1
  45. package/es-modules/mixins/on-series.js +1 -1
  46. package/es-modules/modules/boost.src.js +22 -14
  47. package/es-modules/modules/broken-axis.src.js +169 -134
  48. package/es-modules/modules/data.src.js +2 -2
  49. package/es-modules/modules/draggable-points.src.js +2257 -0
  50. package/es-modules/modules/drilldown.src.js +1 -0
  51. package/es-modules/modules/export-data.src.js +1 -1
  52. package/es-modules/modules/exporting.src.js +1 -1
  53. package/es-modules/modules/funnel.src.js +1 -1
  54. package/es-modules/modules/item-series.src.js +1 -1
  55. package/es-modules/modules/no-data-to-display.src.js +5 -5
  56. package/es-modules/modules/oldie.src.js +1 -1
  57. package/es-modules/modules/overlapping-datalabels.src.js +38 -22
  58. package/es-modules/modules/parallel-coordinates.src.js +3 -2
  59. package/es-modules/modules/sankey.src.js +1 -1
  60. package/es-modules/modules/series-label.src.js +2 -2
  61. package/es-modules/modules/solid-gauge.src.js +1 -1
  62. package/es-modules/modules/static-scale.src.js +67 -28
  63. package/es-modules/modules/streamgraph.src.js +1 -1
  64. package/es-modules/modules/tilemap.src.js +231 -134
  65. package/es-modules/modules/variwide.src.js +1 -1
  66. package/es-modules/modules/vector.src.js +92 -22
  67. package/es-modules/modules/windbarb.src.js +1 -1
  68. package/es-modules/modules/xrange.src.js +257 -77
  69. package/es-modules/parts/AreaSeries.js +77 -77
  70. package/es-modules/parts/AreaSplineSeries.js +64 -27
  71. package/es-modules/parts/Axis.js +160 -67
  72. package/es-modules/parts/BarSeries.js +68 -51
  73. package/es-modules/parts/CandlestickSeries.js +1 -1
  74. package/es-modules/parts/Chart.js +31 -55
  75. package/es-modules/parts/Color.js +29 -18
  76. package/es-modules/parts/ColumnSeries.js +264 -142
  77. package/es-modules/parts/DataGrouping.js +9 -6
  78. package/es-modules/parts/DataLabels.js +261 -210
  79. package/es-modules/parts/DateTimeAxis.js +26 -7
  80. package/es-modules/parts/Dynamics.js +5 -2
  81. package/es-modules/parts/FlagsSeries.js +1 -1
  82. package/es-modules/parts/Globals.js +1 -1
  83. package/es-modules/parts/Html.js +64 -12
  84. package/es-modules/parts/Interaction.js +187 -63
  85. package/es-modules/parts/Legend.js +7 -3
  86. package/es-modules/parts/LogarithmicAxis.js +35 -4
  87. package/es-modules/parts/MSPointer.js +1 -1
  88. package/es-modules/parts/Navigator.js +27 -5
  89. package/es-modules/parts/OHLCSeries.js +1 -1
  90. package/es-modules/parts/Options.js +15 -13
  91. package/es-modules/parts/OrdinalAxis.js +1 -1
  92. package/es-modules/parts/PieSeries.js +256 -140
  93. package/es-modules/parts/PlotBandSeries.experimental.js +1 -1
  94. package/es-modules/parts/PlotLineOrBand.js +7 -40
  95. package/es-modules/parts/Point.js +28 -4
  96. package/es-modules/parts/Pointer.js +8 -6
  97. package/es-modules/parts/RangeSelector.js +1 -1
  98. package/es-modules/parts/Responsive.js +82 -36
  99. package/es-modules/parts/ScatterSeries.js +57 -25
  100. package/es-modules/parts/ScrollablePlotArea.js +17 -7
  101. package/es-modules/parts/Scrollbar.js +9 -2
  102. package/es-modules/parts/Series.js +22 -9
  103. package/es-modules/parts/SplineSeries.js +51 -29
  104. package/es-modules/parts/Stacking.js +100 -6
  105. package/es-modules/parts/StockChart.js +9 -3
  106. package/es-modules/parts/SvgRenderer.js +15 -10
  107. package/es-modules/parts/Tick.js +150 -30
  108. package/es-modules/parts/Time.js +23 -5
  109. package/es-modules/parts/Tooltip.js +2 -2
  110. package/es-modules/parts/TouchPointer.js +1 -1
  111. package/es-modules/parts/Utilities.js +16 -1
  112. package/es-modules/parts-3d/Axis.js +1 -1
  113. package/es-modules/parts-3d/Chart.js +1 -1
  114. package/es-modules/parts-3d/Column.js +1 -1
  115. package/es-modules/parts-3d/Math.js +1 -1
  116. package/es-modules/parts-3d/Pie.js +1 -1
  117. package/es-modules/parts-3d/SVGRenderer.js +1 -1
  118. package/es-modules/parts-3d/Scatter.js +1 -1
  119. package/es-modules/parts-3d/Series.js +1 -1
  120. package/es-modules/parts-3d/VMLRenderer.js +1 -1
  121. package/es-modules/parts-gantt/ArrowSymbols.js +110 -0
  122. package/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
  123. package/es-modules/parts-gantt/GanttChart.js +111 -0
  124. package/es-modules/parts-gantt/GanttSeries.js +376 -0
  125. package/es-modules/parts-gantt/GridAxis.js +965 -0
  126. package/es-modules/parts-gantt/Pathfinder.js +1247 -0
  127. package/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
  128. package/es-modules/parts-gantt/Tree.js +146 -0
  129. package/es-modules/parts-gantt/TreeGrid.js +917 -0
  130. package/es-modules/parts-map/ColorAxis.js +1 -1
  131. package/es-modules/parts-map/ColorSeriesMixin.js +1 -1
  132. package/es-modules/parts-map/GeoJSON.js +1 -1
  133. package/es-modules/parts-map/HeatmapSeries.js +124 -53
  134. package/es-modules/parts-map/Map.js +1 -1
  135. package/es-modules/parts-map/MapAxis.js +1 -1
  136. package/es-modules/parts-map/MapBubbleSeries.js +1 -1
  137. package/es-modules/parts-map/MapLineSeries.js +1 -1
  138. package/es-modules/parts-map/MapNavigation.js +1 -1
  139. package/es-modules/parts-map/MapPointSeries.js +1 -1
  140. package/es-modules/parts-map/MapPointer.js +1 -1
  141. package/es-modules/parts-map/MapSeries.js +2 -2
  142. package/es-modules/parts-more/AreaRangeSeries.js +80 -38
  143. package/es-modules/parts-more/AreaSplineRangeSeries.js +1 -1
  144. package/es-modules/parts-more/BoxPlotSeries.js +1 -1
  145. package/es-modules/parts-more/BubbleSeries.js +1 -1
  146. package/es-modules/parts-more/ColumnRangeSeries.js +1 -1
  147. package/es-modules/parts-more/ErrorBarSeries.js +1 -1
  148. package/es-modules/parts-more/GaugeSeries.js +1 -1
  149. package/es-modules/parts-more/Pane.js +2 -1
  150. package/es-modules/parts-more/Polar.js +1 -1
  151. package/es-modules/parts-more/PolygonSeries.js +1 -1
  152. package/es-modules/parts-more/RadialAxis.js +5 -4
  153. package/es-modules/parts-more/WaterfallSeries.js +1 -1
  154. package/es-modules/supplemental.docs.js +0 -1955
  155. package/es-modules/themes/dark-blue.js +1 -1
  156. package/es-modules/themes/dark-green.js +1 -1
  157. package/es-modules/themes/dark-unica.js +1 -1
  158. package/es-modules/themes/gray.js +1 -1
  159. package/es-modules/themes/grid-light.js +1 -1
  160. package/es-modules/themes/grid.js +1 -1
  161. package/es-modules/themes/sand-signika.js +1 -1
  162. package/es-modules/themes/skies.js +1 -1
  163. package/highcharts-3d.js +1 -1
  164. package/highcharts-3d.src.js +10 -10
  165. package/highcharts-gantt.js +503 -0
  166. package/highcharts-gantt.js.map +1 -0
  167. package/highcharts-gantt.src.js +49289 -0
  168. package/highcharts-more.js +65 -64
  169. package/highcharts-more.js.map +1 -1
  170. package/highcharts-more.src.js +97 -53
  171. package/highcharts.js +415 -410
  172. package/highcharts.js.map +1 -1
  173. package/highcharts.src.js +2170 -1128
  174. package/highmaps.js +443 -438
  175. package/highmaps.js.map +1 -1
  176. package/highmaps.src.js +1647 -849
  177. package/highstock.js +553 -548
  178. package/highstock.js.map +1 -1
  179. package/highstock.src.js +2398 -1283
  180. package/indicators/accumulation-distribution.js +1 -1
  181. package/indicators/accumulation-distribution.src.js +1 -1
  182. package/indicators/atr.js +1 -1
  183. package/indicators/atr.src.js +1 -1
  184. package/indicators/bollinger-bands.js +1 -1
  185. package/indicators/bollinger-bands.src.js +1 -1
  186. package/indicators/cci.js +1 -1
  187. package/indicators/cci.src.js +1 -1
  188. package/indicators/cmf.js +1 -1
  189. package/indicators/cmf.src.js +1 -1
  190. package/indicators/ema.js +1 -1
  191. package/indicators/ema.src.js +1 -1
  192. package/indicators/ichimoku-kinko-hyo.js +1 -1
  193. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  194. package/indicators/indicators.js +1 -1
  195. package/indicators/indicators.src.js +1 -1
  196. package/indicators/macd.js +1 -1
  197. package/indicators/macd.src.js +1 -1
  198. package/indicators/mfi.js +1 -1
  199. package/indicators/mfi.src.js +1 -1
  200. package/indicators/momentum.js +1 -1
  201. package/indicators/momentum.src.js +2 -2
  202. package/indicators/pivot-points.js +4 -4
  203. package/indicators/pivot-points.js.map +1 -1
  204. package/indicators/pivot-points.src.js +7 -2
  205. package/indicators/price-envelopes.js +1 -1
  206. package/indicators/price-envelopes.src.js +1 -1
  207. package/indicators/psar.js +1 -1
  208. package/indicators/psar.src.js +1 -1
  209. package/indicators/roc.js +1 -1
  210. package/indicators/roc.src.js +1 -1
  211. package/indicators/rsi.js +1 -1
  212. package/indicators/rsi.src.js +1 -1
  213. package/indicators/stochastic.js +1 -1
  214. package/indicators/stochastic.src.js +1 -1
  215. package/indicators/volume-by-price.js +1 -1
  216. package/indicators/volume-by-price.src.js +1 -1
  217. package/indicators/vwap.js +1 -1
  218. package/indicators/vwap.src.js +1 -1
  219. package/indicators/wma.js +1 -1
  220. package/indicators/wma.src.js +1 -1
  221. package/indicators/zigzag.js +1 -1
  222. package/indicators/zigzag.src.js +1 -1
  223. package/js/es-modules/indicators/momentum.src.js +1 -1
  224. package/js/es-modules/indicators/pivot-points.src.js +6 -1
  225. package/js/es-modules/masters/highcharts-gantt.src.js +11 -0
  226. package/js/es-modules/masters/modules/annotations.src.js +1 -1
  227. package/js/es-modules/masters/modules/arrow-symbols.src.js +12 -0
  228. package/js/es-modules/masters/modules/broken-axis.src.js +1 -1
  229. package/js/es-modules/masters/modules/current-date-indicator.src.js +12 -0
  230. package/js/es-modules/masters/modules/data.src.js +1 -1
  231. package/js/es-modules/masters/modules/draggable-points.src.js +9 -0
  232. package/js/es-modules/masters/modules/export-data.src.js +1 -1
  233. package/js/es-modules/masters/modules/exporting.src.js +1 -1
  234. package/js/es-modules/masters/modules/funnel.src.js +1 -1
  235. package/js/es-modules/masters/modules/gantt.src.js +2 -1
  236. package/js/es-modules/masters/modules/grid-axis.src.js +1 -1
  237. package/js/es-modules/masters/modules/heatmap.src.js +1 -1
  238. package/js/es-modules/masters/modules/item-series.src.js +1 -1
  239. package/js/es-modules/masters/modules/map.src.js +1 -1
  240. package/js/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  241. package/js/es-modules/masters/modules/pathfinder.src.js +12 -0
  242. package/js/es-modules/masters/modules/sankey.src.js +1 -1
  243. package/js/es-modules/masters/modules/series-label.src.js +1 -1
  244. package/js/es-modules/masters/modules/solid-gauge.src.js +1 -1
  245. package/js/es-modules/masters/modules/stock.src.js +1 -1
  246. package/js/es-modules/masters/modules/streamgraph.src.js +1 -1
  247. package/js/es-modules/masters/modules/treegrid.src.js +12 -0
  248. package/js/es-modules/masters/modules/variwide.src.js +1 -1
  249. package/js/es-modules/masters/modules/vector.src.js +1 -1
  250. package/js/es-modules/masters/modules/windbarb.src.js +1 -1
  251. package/js/es-modules/masters/modules/xrange.src.js +1 -1
  252. package/js/es-modules/masters/themes/dark-blue.src.js +1 -1
  253. package/js/es-modules/masters/themes/dark-green.src.js +1 -1
  254. package/js/es-modules/masters/themes/dark-unica.src.js +1 -1
  255. package/js/es-modules/masters/themes/gray.src.js +1 -1
  256. package/js/es-modules/masters/themes/grid-light.src.js +1 -1
  257. package/js/es-modules/masters/themes/grid.src.js +1 -1
  258. package/js/es-modules/masters/themes/sand-signika.src.js +1 -1
  259. package/js/es-modules/masters/themes/skies.src.js +1 -1
  260. package/js/es-modules/mixins/centered-series.js +1 -1
  261. package/js/es-modules/mixins/on-series.js +1 -1
  262. package/js/es-modules/modules/boost.src.js +22 -14
  263. package/js/es-modules/modules/broken-axis.src.js +169 -134
  264. package/js/es-modules/modules/data.src.js +2 -2
  265. package/js/es-modules/modules/draggable-points.src.js +2257 -0
  266. package/js/es-modules/modules/drilldown.src.js +1 -0
  267. package/js/es-modules/modules/export-data.src.js +1 -1
  268. package/js/es-modules/modules/exporting.src.js +1 -1
  269. package/js/es-modules/modules/funnel.src.js +1 -1
  270. package/js/es-modules/modules/item-series.src.js +1 -1
  271. package/js/es-modules/modules/no-data-to-display.src.js +5 -5
  272. package/js/es-modules/modules/oldie.src.js +1 -1
  273. package/js/es-modules/modules/overlapping-datalabels.src.js +38 -22
  274. package/js/es-modules/modules/parallel-coordinates.src.js +3 -2
  275. package/js/es-modules/modules/sankey.src.js +1 -1
  276. package/js/es-modules/modules/series-label.src.js +2 -2
  277. package/js/es-modules/modules/solid-gauge.src.js +1 -1
  278. package/js/es-modules/modules/static-scale.src.js +67 -28
  279. package/js/es-modules/modules/streamgraph.src.js +1 -1
  280. package/js/es-modules/modules/tilemap.src.js +231 -134
  281. package/js/es-modules/modules/variwide.src.js +1 -1
  282. package/js/es-modules/modules/vector.src.js +92 -22
  283. package/js/es-modules/modules/windbarb.src.js +1 -1
  284. package/js/es-modules/modules/xrange.src.js +255 -68
  285. package/js/es-modules/parts/AreaSeries.js +77 -77
  286. package/js/es-modules/parts/AreaSplineSeries.js +64 -27
  287. package/js/es-modules/parts/Axis.js +160 -67
  288. package/js/es-modules/parts/BarSeries.js +68 -51
  289. package/js/es-modules/parts/CandlestickSeries.js +1 -1
  290. package/js/es-modules/parts/Chart.js +31 -55
  291. package/js/es-modules/parts/Color.js +29 -18
  292. package/js/es-modules/parts/ColumnSeries.js +231 -123
  293. package/js/es-modules/parts/DataGrouping.js +9 -6
  294. package/js/es-modules/parts/DataLabels.js +230 -182
  295. package/js/es-modules/parts/DateTimeAxis.js +26 -7
  296. package/js/es-modules/parts/Dynamics.js +5 -2
  297. package/js/es-modules/parts/FlagsSeries.js +1 -1
  298. package/js/es-modules/parts/Globals.js +1 -1
  299. package/js/es-modules/parts/Html.js +64 -12
  300. package/js/es-modules/parts/Interaction.js +178 -61
  301. package/js/es-modules/parts/Legend.js +7 -3
  302. package/js/es-modules/parts/LogarithmicAxis.js +35 -4
  303. package/js/es-modules/parts/MSPointer.js +1 -1
  304. package/js/es-modules/parts/Navigator.js +27 -5
  305. package/js/es-modules/parts/OHLCSeries.js +1 -1
  306. package/js/es-modules/parts/Options.js +13 -12
  307. package/js/es-modules/parts/OrdinalAxis.js +1 -1
  308. package/js/es-modules/parts/PieSeries.js +245 -132
  309. package/js/es-modules/parts/PlotBandSeries.experimental.js +1 -1
  310. package/js/es-modules/parts/PlotLineOrBand.js +7 -40
  311. package/js/es-modules/parts/Point.js +28 -4
  312. package/js/es-modules/parts/Pointer.js +8 -6
  313. package/js/es-modules/parts/RangeSelector.js +1 -1
  314. package/js/es-modules/parts/Responsive.js +82 -36
  315. package/js/es-modules/parts/ScatterSeries.js +56 -25
  316. package/js/es-modules/parts/ScrollablePlotArea.js +17 -7
  317. package/js/es-modules/parts/Scrollbar.js +9 -2
  318. package/js/es-modules/parts/Series.js +22 -9
  319. package/js/es-modules/parts/SplineSeries.js +51 -29
  320. package/js/es-modules/parts/Stacking.js +100 -6
  321. package/js/es-modules/parts/StockChart.js +9 -3
  322. package/js/es-modules/parts/SvgRenderer.js +15 -10
  323. package/js/es-modules/parts/Tick.js +150 -30
  324. package/js/es-modules/parts/Time.js +23 -5
  325. package/js/es-modules/parts/Tooltip.js +2 -2
  326. package/js/es-modules/parts/TouchPointer.js +1 -1
  327. package/js/es-modules/parts/Utilities.js +16 -1
  328. package/js/es-modules/parts-3d/Axis.js +1 -1
  329. package/js/es-modules/parts-3d/Chart.js +1 -1
  330. package/js/es-modules/parts-3d/Column.js +1 -1
  331. package/js/es-modules/parts-3d/Math.js +1 -1
  332. package/js/es-modules/parts-3d/Pie.js +1 -1
  333. package/js/es-modules/parts-3d/SVGRenderer.js +1 -1
  334. package/js/es-modules/parts-3d/Scatter.js +1 -1
  335. package/js/es-modules/parts-3d/Series.js +1 -1
  336. package/js/es-modules/parts-3d/VMLRenderer.js +1 -1
  337. package/js/es-modules/parts-gantt/ArrowSymbols.js +110 -0
  338. package/js/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
  339. package/js/es-modules/parts-gantt/GanttChart.js +111 -0
  340. package/js/es-modules/parts-gantt/GanttSeries.js +371 -0
  341. package/js/es-modules/parts-gantt/GridAxis.js +962 -0
  342. package/js/es-modules/parts-gantt/Pathfinder.js +1225 -0
  343. package/js/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
  344. package/js/es-modules/parts-gantt/Tree.js +146 -0
  345. package/js/es-modules/parts-gantt/TreeGrid.js +891 -0
  346. package/js/es-modules/parts-map/ColorAxis.js +1 -1
  347. package/js/es-modules/parts-map/ColorSeriesMixin.js +1 -1
  348. package/js/es-modules/parts-map/GeoJSON.js +1 -1
  349. package/js/es-modules/parts-map/HeatmapSeries.js +122 -52
  350. package/js/es-modules/parts-map/Map.js +1 -1
  351. package/js/es-modules/parts-map/MapAxis.js +1 -1
  352. package/js/es-modules/parts-map/MapBubbleSeries.js +1 -1
  353. package/js/es-modules/parts-map/MapLineSeries.js +1 -1
  354. package/js/es-modules/parts-map/MapNavigation.js +1 -1
  355. package/js/es-modules/parts-map/MapPointSeries.js +1 -1
  356. package/js/es-modules/parts-map/MapPointer.js +1 -1
  357. package/js/es-modules/parts-map/MapSeries.js +2 -2
  358. package/js/es-modules/parts-more/AreaRangeSeries.js +80 -38
  359. package/js/es-modules/parts-more/AreaSplineRangeSeries.js +1 -1
  360. package/js/es-modules/parts-more/BoxPlotSeries.js +1 -1
  361. package/js/es-modules/parts-more/BubbleSeries.js +1 -1
  362. package/js/es-modules/parts-more/ColumnRangeSeries.js +1 -1
  363. package/js/es-modules/parts-more/ErrorBarSeries.js +1 -1
  364. package/js/es-modules/parts-more/GaugeSeries.js +1 -1
  365. package/js/es-modules/parts-more/Pane.js +2 -1
  366. package/js/es-modules/parts-more/Polar.js +1 -1
  367. package/js/es-modules/parts-more/PolygonSeries.js +1 -1
  368. package/js/es-modules/parts-more/RadialAxis.js +5 -4
  369. package/js/es-modules/parts-more/WaterfallSeries.js +1 -1
  370. package/js/es-modules/supplemental.docs.js +0 -1955
  371. package/js/es-modules/themes/dark-blue.js +1 -1
  372. package/js/es-modules/themes/dark-green.js +1 -1
  373. package/js/es-modules/themes/dark-unica.js +1 -1
  374. package/js/es-modules/themes/gray.js +1 -1
  375. package/js/es-modules/themes/grid-light.js +1 -1
  376. package/js/es-modules/themes/grid.js +1 -1
  377. package/js/es-modules/themes/sand-signika.js +1 -1
  378. package/js/es-modules/themes/skies.js +1 -1
  379. package/js/highcharts-3d.js +1 -1
  380. package/js/highcharts-3d.src.js +10 -10
  381. package/js/highcharts-gantt.js +480 -0
  382. package/js/highcharts-gantt.js.map +1 -0
  383. package/js/highcharts-gantt.src.js +47011 -0
  384. package/js/highcharts-more.js +62 -61
  385. package/js/highcharts-more.js.map +1 -1
  386. package/js/highcharts-more.src.js +97 -53
  387. package/js/highcharts.js +394 -390
  388. package/js/highcharts.js.map +1 -1
  389. package/js/highcharts.src.js +2083 -1070
  390. package/js/highmaps.js +420 -416
  391. package/js/highmaps.js.map +1 -1
  392. package/js/highmaps.src.js +1569 -798
  393. package/js/highstock.js +526 -520
  394. package/js/highstock.js.map +1 -1
  395. package/js/highstock.src.js +2311 -1225
  396. package/js/indicators/accumulation-distribution.js +1 -1
  397. package/js/indicators/accumulation-distribution.src.js +1 -1
  398. package/js/indicators/atr.js +1 -1
  399. package/js/indicators/atr.src.js +1 -1
  400. package/js/indicators/bollinger-bands.js +1 -1
  401. package/js/indicators/bollinger-bands.src.js +1 -1
  402. package/js/indicators/cci.js +1 -1
  403. package/js/indicators/cci.src.js +1 -1
  404. package/js/indicators/cmf.js +1 -1
  405. package/js/indicators/cmf.src.js +1 -1
  406. package/js/indicators/ema.js +1 -1
  407. package/js/indicators/ema.src.js +1 -1
  408. package/js/indicators/ichimoku-kinko-hyo.js +1 -1
  409. package/js/indicators/ichimoku-kinko-hyo.src.js +1 -1
  410. package/js/indicators/indicators.js +1 -1
  411. package/js/indicators/indicators.src.js +1 -1
  412. package/js/indicators/macd.js +1 -1
  413. package/js/indicators/macd.src.js +1 -1
  414. package/js/indicators/mfi.js +1 -1
  415. package/js/indicators/mfi.src.js +1 -1
  416. package/js/indicators/momentum.js +1 -1
  417. package/js/indicators/momentum.src.js +2 -2
  418. package/js/indicators/pivot-points.js +4 -4
  419. package/js/indicators/pivot-points.js.map +1 -1
  420. package/js/indicators/pivot-points.src.js +7 -2
  421. package/js/indicators/price-envelopes.js +1 -1
  422. package/js/indicators/price-envelopes.src.js +1 -1
  423. package/js/indicators/psar.js +1 -1
  424. package/js/indicators/psar.src.js +1 -1
  425. package/js/indicators/roc.js +1 -1
  426. package/js/indicators/roc.src.js +1 -1
  427. package/js/indicators/rsi.js +1 -1
  428. package/js/indicators/rsi.src.js +1 -1
  429. package/js/indicators/stochastic.js +1 -1
  430. package/js/indicators/stochastic.src.js +1 -1
  431. package/js/indicators/volume-by-price.js +1 -1
  432. package/js/indicators/volume-by-price.src.js +1 -1
  433. package/js/indicators/vwap.js +1 -1
  434. package/js/indicators/vwap.src.js +1 -1
  435. package/js/indicators/wma.js +1 -1
  436. package/js/indicators/wma.src.js +1 -1
  437. package/js/indicators/zigzag.js +1 -1
  438. package/js/indicators/zigzag.src.js +1 -1
  439. package/js/modules/accessibility.js +1 -1
  440. package/js/modules/accessibility.src.js +1 -1
  441. package/js/modules/annotations.js +2 -2
  442. package/js/modules/annotations.src.js +2 -2
  443. package/js/modules/arrow-symbols.js +13 -0
  444. package/js/modules/arrow-symbols.js.map +1 -0
  445. package/js/modules/arrow-symbols.src.js +138 -0
  446. package/js/modules/boost-canvas.js +1 -1
  447. package/js/modules/boost-canvas.src.js +1 -1
  448. package/js/modules/boost.js +43 -43
  449. package/js/modules/boost.js.map +1 -1
  450. package/js/modules/boost.src.js +23 -15
  451. package/js/modules/broken-axis.js +11 -10
  452. package/js/modules/broken-axis.js.map +1 -1
  453. package/js/modules/broken-axis.src.js +171 -136
  454. package/js/modules/bullet.js +1 -1
  455. package/js/modules/bullet.src.js +1 -1
  456. package/js/modules/current-date-indicator.js +13 -0
  457. package/js/modules/current-date-indicator.js.map +1 -0
  458. package/js/modules/current-date-indicator.src.js +120 -0
  459. package/js/modules/data.js +2 -2
  460. package/js/modules/data.src.js +4 -4
  461. package/js/modules/drag-panes.js +1 -1
  462. package/js/modules/drag-panes.src.js +1 -1
  463. package/js/modules/draggable-points.js +38 -0
  464. package/js/modules/draggable-points.js.map +1 -0
  465. package/js/modules/draggable-points.src.js +2281 -0
  466. package/js/modules/drilldown.js +1 -1
  467. package/js/modules/drilldown.js.map +1 -1
  468. package/js/modules/drilldown.src.js +2 -1
  469. package/js/modules/export-data.js +2 -2
  470. package/js/modules/export-data.src.js +3 -3
  471. package/js/modules/exporting.js +2 -2
  472. package/js/modules/exporting.src.js +3 -3
  473. package/js/modules/funnel.js +2 -2
  474. package/js/modules/funnel.src.js +3 -3
  475. package/js/modules/gantt.js +80 -18
  476. package/js/modules/gantt.js.map +1 -1
  477. package/js/modules/gantt.src.js +5490 -372
  478. package/js/modules/grid-axis.js +15 -11
  479. package/js/modules/grid-axis.js.map +1 -1
  480. package/js/modules/grid-axis.src.js +731 -293
  481. package/js/modules/heatmap.js +2 -2
  482. package/js/modules/heatmap.js.map +1 -1
  483. package/js/modules/heatmap.src.js +126 -56
  484. package/js/modules/histogram-bellcurve.js +1 -1
  485. package/js/modules/histogram-bellcurve.src.js +1 -1
  486. package/js/modules/item-series.js +2 -2
  487. package/js/modules/item-series.src.js +3 -3
  488. package/js/modules/map.js +2 -2
  489. package/js/modules/map.js.map +1 -1
  490. package/js/modules/map.src.js +137 -67
  491. package/js/modules/no-data-to-display.js +1 -1
  492. package/js/modules/no-data-to-display.src.js +6 -6
  493. package/js/modules/offline-exporting.js +2 -2
  494. package/js/modules/offline-exporting.src.js +2 -2
  495. package/js/modules/oldie.js +2 -2
  496. package/js/modules/oldie.src.js +3 -3
  497. package/js/modules/overlapping-datalabels.js +2 -2
  498. package/js/modules/overlapping-datalabels.src.js +2 -2
  499. package/js/modules/parallel-coordinates.js +9 -9
  500. package/js/modules/parallel-coordinates.js.map +1 -1
  501. package/js/modules/parallel-coordinates.src.js +4 -3
  502. package/js/modules/pareto.js +1 -1
  503. package/js/modules/pareto.src.js +1 -1
  504. package/js/modules/pathfinder.js +34 -0
  505. package/js/modules/pathfinder.js.map +1 -0
  506. package/js/modules/pathfinder.src.js +2106 -0
  507. package/js/modules/pattern-fill.js +1 -1
  508. package/js/modules/pattern-fill.src.js +1 -1
  509. package/js/modules/sankey.js +2 -2
  510. package/js/modules/sankey.src.js +3 -3
  511. package/js/modules/series-label.js +2 -2
  512. package/js/modules/series-label.src.js +4 -4
  513. package/js/modules/solid-gauge.js +2 -2
  514. package/js/modules/solid-gauge.src.js +3 -3
  515. package/js/modules/static-scale.js +3 -3
  516. package/js/modules/static-scale.js.map +1 -1
  517. package/js/modules/static-scale.src.js +65 -26
  518. package/js/modules/stock.js +135 -134
  519. package/js/modules/stock.js.map +1 -1
  520. package/js/modules/stock.src.js +230 -157
  521. package/js/modules/streamgraph.js +2 -2
  522. package/js/modules/streamgraph.src.js +3 -3
  523. package/js/modules/sunburst.js +1 -1
  524. package/js/modules/sunburst.src.js +1 -1
  525. package/js/modules/tilemap.js +1 -1
  526. package/js/modules/tilemap.js.map +1 -1
  527. package/js/modules/tilemap.src.js +355 -188
  528. package/js/modules/treegrid.js +51 -0
  529. package/js/modules/treegrid.js.map +1 -0
  530. package/js/modules/treegrid.src.js +2759 -0
  531. package/js/modules/treemap.js +1 -1
  532. package/js/modules/treemap.src.js +1 -1
  533. package/js/modules/variable-pie.js +1 -1
  534. package/js/modules/variable-pie.src.js +1 -1
  535. package/js/modules/variwide.js +2 -2
  536. package/js/modules/variwide.src.js +3 -3
  537. package/js/modules/vector.js +2 -2
  538. package/js/modules/vector.js.map +1 -1
  539. package/js/modules/vector.src.js +94 -24
  540. package/js/modules/windbarb.js +2 -2
  541. package/js/modules/windbarb.src.js +4 -4
  542. package/js/modules/wordcloud.js +1 -1
  543. package/js/modules/wordcloud.src.js +1 -1
  544. package/js/modules/xrange.js +11 -10
  545. package/js/modules/xrange.js.map +1 -1
  546. package/js/modules/xrange.src.js +257 -70
  547. package/js/themes/avocado.js +1 -1
  548. package/js/themes/avocado.src.js +1 -1
  549. package/js/themes/dark-blue.js +2 -2
  550. package/js/themes/dark-blue.src.js +3 -3
  551. package/js/themes/dark-green.js +2 -2
  552. package/js/themes/dark-green.src.js +3 -3
  553. package/js/themes/dark-unica.js +2 -2
  554. package/js/themes/dark-unica.src.js +3 -3
  555. package/js/themes/gray.js +2 -2
  556. package/js/themes/gray.src.js +3 -3
  557. package/js/themes/grid-light.js +2 -2
  558. package/js/themes/grid-light.src.js +3 -3
  559. package/js/themes/grid.js +2 -2
  560. package/js/themes/grid.src.js +3 -3
  561. package/js/themes/sand-signika.js +2 -2
  562. package/js/themes/sand-signika.src.js +3 -3
  563. package/js/themes/skies.js +2 -2
  564. package/js/themes/skies.src.js +3 -3
  565. package/js/themes/sunset.js +1 -1
  566. package/js/themes/sunset.src.js +1 -1
  567. package/modules/accessibility.js +1 -1
  568. package/modules/accessibility.src.js +1 -1
  569. package/modules/annotations.js +2 -2
  570. package/modules/annotations.src.js +2 -2
  571. package/modules/arrow-symbols.js +13 -0
  572. package/modules/arrow-symbols.js.map +1 -0
  573. package/modules/arrow-symbols.src.js +138 -0
  574. package/modules/boost-canvas.js +1 -1
  575. package/modules/boost-canvas.src.js +1 -1
  576. package/modules/boost.js +36 -36
  577. package/modules/boost.js.map +1 -1
  578. package/modules/boost.src.js +23 -15
  579. package/modules/broken-axis.js +11 -10
  580. package/modules/broken-axis.js.map +1 -1
  581. package/modules/broken-axis.src.js +171 -136
  582. package/modules/bullet.js +1 -1
  583. package/modules/bullet.src.js +1 -1
  584. package/modules/current-date-indicator.js +13 -0
  585. package/modules/current-date-indicator.js.map +1 -0
  586. package/modules/current-date-indicator.src.js +120 -0
  587. package/modules/data.js +2 -2
  588. package/modules/data.src.js +4 -4
  589. package/modules/drag-panes.js +1 -1
  590. package/modules/drag-panes.src.js +1 -1
  591. package/modules/draggable-points.js +38 -0
  592. package/modules/draggable-points.js.map +1 -0
  593. package/modules/draggable-points.src.js +2281 -0
  594. package/modules/drilldown.js +1 -1
  595. package/modules/drilldown.js.map +1 -1
  596. package/modules/drilldown.src.js +2 -1
  597. package/modules/export-data.js +2 -2
  598. package/modules/export-data.src.js +3 -3
  599. package/modules/exporting.js +2 -2
  600. package/modules/exporting.src.js +3 -3
  601. package/modules/funnel.js +2 -2
  602. package/modules/funnel.src.js +3 -3
  603. package/modules/gantt.js +83 -19
  604. package/modules/gantt.js.map +1 -1
  605. package/modules/gantt.src.js +5553 -379
  606. package/modules/grid-axis.js +16 -11
  607. package/modules/grid-axis.js.map +1 -1
  608. package/modules/grid-axis.src.js +732 -293
  609. package/modules/heatmap.js +2 -2
  610. package/modules/heatmap.js.map +1 -1
  611. package/modules/heatmap.src.js +128 -57
  612. package/modules/histogram-bellcurve.js +1 -1
  613. package/modules/histogram-bellcurve.src.js +1 -1
  614. package/modules/item-series.js +2 -2
  615. package/modules/item-series.src.js +3 -3
  616. package/modules/map.js +2 -2
  617. package/modules/map.js.map +1 -1
  618. package/modules/map.src.js +139 -68
  619. package/modules/no-data-to-display.js +1 -1
  620. package/modules/no-data-to-display.src.js +6 -6
  621. package/modules/offline-exporting.js +2 -2
  622. package/modules/offline-exporting.src.js +2 -2
  623. package/modules/oldie.js +2 -2
  624. package/modules/oldie.src.js +3 -3
  625. package/modules/overlapping-datalabels.js +2 -2
  626. package/modules/overlapping-datalabels.src.js +2 -2
  627. package/modules/parallel-coordinates.js +8 -8
  628. package/modules/parallel-coordinates.js.map +1 -1
  629. package/modules/parallel-coordinates.src.js +4 -3
  630. package/modules/pareto.js +1 -1
  631. package/modules/pareto.src.js +1 -1
  632. package/modules/pathfinder.js +35 -0
  633. package/modules/pathfinder.js.map +1 -0
  634. package/modules/pathfinder.src.js +2128 -0
  635. package/modules/pattern-fill.js +1 -1
  636. package/modules/pattern-fill.src.js +1 -1
  637. package/modules/sankey.js +2 -2
  638. package/modules/sankey.src.js +3 -3
  639. package/modules/series-label.js +2 -2
  640. package/modules/series-label.src.js +4 -4
  641. package/modules/solid-gauge.js +2 -2
  642. package/modules/solid-gauge.src.js +3 -3
  643. package/modules/static-scale.js +3 -3
  644. package/modules/static-scale.js.map +1 -1
  645. package/modules/static-scale.src.js +65 -26
  646. package/modules/stock.js +142 -142
  647. package/modules/stock.js.map +1 -1
  648. package/modules/stock.src.js +230 -157
  649. package/modules/streamgraph.js +2 -2
  650. package/modules/streamgraph.src.js +3 -3
  651. package/modules/sunburst.js +1 -1
  652. package/modules/sunburst.src.js +1 -1
  653. package/modules/tilemap.js +1 -1
  654. package/modules/tilemap.js.map +1 -1
  655. package/modules/tilemap.src.js +357 -189
  656. package/modules/treegrid.js +52 -0
  657. package/modules/treegrid.js.map +1 -0
  658. package/modules/treegrid.src.js +2797 -0
  659. package/modules/treemap.js +1 -1
  660. package/modules/treemap.src.js +1 -1
  661. package/modules/variable-pie.js +1 -1
  662. package/modules/variable-pie.src.js +1 -1
  663. package/modules/variwide.js +2 -2
  664. package/modules/variwide.src.js +3 -3
  665. package/modules/vector.js +2 -2
  666. package/modules/vector.js.map +1 -1
  667. package/modules/vector.src.js +94 -24
  668. package/modules/windbarb.js +2 -2
  669. package/modules/windbarb.src.js +4 -4
  670. package/modules/wordcloud.js +1 -1
  671. package/modules/wordcloud.src.js +1 -1
  672. package/modules/xrange.js +12 -11
  673. package/modules/xrange.js.map +1 -1
  674. package/modules/xrange.src.js +259 -79
  675. package/package.json +1 -1
  676. package/themes/avocado.js +1 -1
  677. package/themes/avocado.src.js +1 -1
  678. package/themes/dark-blue.js +2 -2
  679. package/themes/dark-blue.src.js +3 -3
  680. package/themes/dark-green.js +2 -2
  681. package/themes/dark-green.src.js +3 -3
  682. package/themes/dark-unica.js +2 -2
  683. package/themes/dark-unica.src.js +3 -3
  684. package/themes/gray.js +2 -2
  685. package/themes/gray.src.js +3 -3
  686. package/themes/grid-light.js +2 -2
  687. package/themes/grid-light.src.js +3 -3
  688. package/themes/grid.js +2 -2
  689. package/themes/grid.src.js +3 -3
  690. package/themes/sand-signika.js +2 -2
  691. package/themes/sand-signika.src.js +3 -3
  692. package/themes/skies.js +2 -2
  693. package/themes/skies.src.js +3 -3
  694. package/themes/sunset.js +1 -1
  695. package/themes/sunset.src.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highmaps JS v6.1.4 (2018-09-25)
2
+ * @license Highmaps JS v6.2.0 (2018-10-17)
3
3
  *
4
4
  * (c) 2011-2016 Torstein Honsi
5
5
  *
@@ -21,7 +21,7 @@
21
21
  }(typeof window !== 'undefined' ? window : this, function (win) {
22
22
  var Highcharts = (function () {
23
23
  /**
24
- * (c) 2010-2017 Torstein Honsi
24
+ * (c) 2010-2018 Torstein Honsi
25
25
  *
26
26
  * License: www.highcharts.com/license
27
27
  */
@@ -47,7 +47,7 @@
47
47
 
48
48
  var Highcharts = glob.Highcharts ? glob.Highcharts.error(16, true) : {
49
49
  product: 'Highmaps',
50
- version: '6.1.4',
50
+ version: '6.2.0',
51
51
  deg2rad: Math.PI * 2 / 360,
52
52
  doc: doc,
53
53
  hasBidiBug: hasBidiBug,
@@ -83,7 +83,7 @@
83
83
  }());
84
84
  (function (H) {
85
85
  /**
86
- * (c) 2010-2017 Torstein Honsi
86
+ * (c) 2010-2018 Torstein Honsi
87
87
  *
88
88
  * License: www.highcharts.com/license
89
89
  */
@@ -1399,6 +1399,21 @@
1399
1399
 
1400
1400
 
1401
1401
 
1402
+ /**
1403
+ * Recursively converts all Date properties to timestamps.
1404
+ *
1405
+ * @param {Object} object - any object to convert properties of
1406
+ */
1407
+ H.datePropsToTimestamps = function (object) {
1408
+ H.objectEach(object, function (val, key) {
1409
+ if (H.isObject(val) && typeof val.getTime === 'function') {
1410
+ object[key] = val.getTime();
1411
+ } else if (H.isObject(val) || H.isArray(val)) {
1412
+ H.datePropsToTimestamps(val);
1413
+ }
1414
+ });
1415
+ };
1416
+
1402
1417
  /**
1403
1418
  * Format a single variable. Similar to sprintf, without the % prefix.
1404
1419
  *
@@ -2738,7 +2753,7 @@
2738
2753
  }(Highcharts));
2739
2754
  (function (H) {
2740
2755
  /**
2741
- * (c) 2010-2017 Torstein Honsi
2756
+ * (c) 2010-2018 Torstein Honsi
2742
2757
  *
2743
2758
  * License: www.highcharts.com/license
2744
2759
  */
@@ -2753,6 +2768,8 @@
2753
2768
  * @typedef {string} Highcharts.ColorString
2754
2769
  */
2755
2770
 
2771
+
2772
+
2756
2773
  var each = H.each,
2757
2774
  isNumber = H.isNumber,
2758
2775
  map = H.map,
@@ -2762,8 +2779,9 @@
2762
2779
  /**
2763
2780
  * Handle color operations. The object methods are chainable.
2764
2781
  *
2765
- * @ignore
2766
- * @class Highcharts.Color
2782
+ * @private
2783
+ * @class
2784
+ * @name Highcharts.Color
2767
2785
  *
2768
2786
  * @param {Highcharts.ColorString} input
2769
2787
  * The input color in either rbga or hex format
@@ -2813,10 +2831,8 @@
2813
2831
  * @private
2814
2832
  * @function Highcharts.Color#init
2815
2833
  *
2816
- * @param {Highcharts.ColorString} input
2817
- * The input color in either rbga or hex format
2818
- *
2819
- * @return {void}
2834
+ * @param {Highcharts.ColorString} input
2835
+ * The input color in either rbga or hex format
2820
2836
  */
2821
2837
  init: function (input) {
2822
2838
  var result,
@@ -2890,8 +2906,8 @@
2890
2906
  *
2891
2907
  * @function Highcharts.Color#get
2892
2908
  *
2893
- * @param {string} format
2894
- * Possible values are 'a', 'rgb', undefined
2909
+ * @param {string} format
2910
+ * Possible values are 'a', 'rgb', undefined
2895
2911
  *
2896
2912
  * @return {Highcharts.ColorString}
2897
2913
  * This color as a string.
@@ -2928,8 +2944,8 @@
2928
2944
  *
2929
2945
  * @function Highcharts.Color#brighten
2930
2946
  *
2931
- * @param {number} alpha
2932
- * The alpha value.
2947
+ * @param {number} alpha
2948
+ * The alpha value.
2933
2949
  *
2934
2950
  * @return {Highcharts.ColorString}
2935
2951
  * This color with modifications.
@@ -2963,8 +2979,8 @@
2963
2979
  *
2964
2980
  * @function Highcharts.Color#setOpacity
2965
2981
  *
2966
- * @param {number} alpha
2967
- * Opacity between 0 and 1.
2982
+ * @param {number} alpha
2983
+ * Opacity between 0 and 1.
2968
2984
  *
2969
2985
  * @return {Highcharts.ColorString}
2970
2986
  * Color with modifications.
@@ -2979,12 +2995,12 @@
2979
2995
  *
2980
2996
  * @function Highcharts.Color#tweenTo
2981
2997
  *
2982
- * @param {Highcharts.Color} to
2983
- * The color object to tween to.
2998
+ * @param {Highcharts.Color} to
2999
+ * The color object to tween to.
2984
3000
  *
2985
- * @param {number} pos
2986
- * The intermediate position, where 0 is the from color (current
2987
- * color item), and 1 is the `to` color.
3001
+ * @param {number} pos
3002
+ * The intermediate position, where 0 is the from color (current
3003
+ * color item), and 1 is the `to` color.
2988
3004
  *
2989
3005
  * @return {Highcharts.ColorString}
2990
3006
  * The intermediate color in rgba notation.
@@ -3023,6 +3039,16 @@
3023
3039
  return ret;
3024
3040
  }
3025
3041
  };
3042
+
3043
+ /**
3044
+ * Creates a color instance out of a color string.
3045
+ *
3046
+ * @private
3047
+ * @function Highcharts.color
3048
+ *
3049
+ * @param {Highcharts.ColorString} input
3050
+ * The input color in either rbga or hex format
3051
+ */
3026
3052
  H.color = function (input) {
3027
3053
  return new H.Color(input);
3028
3054
  };
@@ -3030,7 +3056,7 @@
3030
3056
  }(Highcharts));
3031
3057
  (function (Highcharts) {
3032
3058
  /**
3033
- * (c) 2010-2017 Torstein Honsi
3059
+ * (c) 2010-2018 Torstein Honsi
3034
3060
  *
3035
3061
  * License: www.highcharts.com/license
3036
3062
  */
@@ -3201,7 +3227,7 @@
3201
3227
  *
3202
3228
  * @type {*}
3203
3229
  * @since 4.0.4
3204
- * @product highcharts highstock
3230
+ * @product highcharts highstock gantt
3205
3231
  * @apioption time.Date
3206
3232
  */
3207
3233
 
@@ -3219,7 +3245,7 @@
3219
3245
  *
3220
3246
  * @type {Function}
3221
3247
  * @since 4.1.0
3222
- * @product highcharts highstock
3248
+ * @product highcharts highstock gantt
3223
3249
  * @apioption time.getTimezoneOffset
3224
3250
  */
3225
3251
 
@@ -3238,7 +3264,7 @@
3238
3264
  *
3239
3265
  * @type {string}
3240
3266
  * @since 5.0.7
3241
- * @product highcharts highstock
3267
+ * @product highcharts highstock gantt
3242
3268
  * @apioption time.timezone
3243
3269
  */
3244
3270
 
@@ -3256,7 +3282,7 @@
3256
3282
  * @type {number}
3257
3283
  * @default 0
3258
3284
  * @since 3.0.8
3259
- * @product highcharts highstock
3285
+ * @product highcharts highstock gantt
3260
3286
  * @apioption time.timezoneOffset
3261
3287
  */
3262
3288
 
@@ -3629,6 +3655,24 @@
3629
3655
  format;
3630
3656
  },
3631
3657
 
3658
+ /**
3659
+ * Resolve legacy formats of dateTimeLabelFormats (strings and arrays) into
3660
+ * an object.
3661
+ * @param {String|Array|Object} f General format description
3662
+ * @return {Object} The object definition
3663
+ */
3664
+ resolveDTLFormat: function (f) {
3665
+ if (!H.isObject(f, true)) {
3666
+ f = H.splat(f);
3667
+ return {
3668
+ main: f[0],
3669
+ from: f[1],
3670
+ to: f[2]
3671
+ };
3672
+ }
3673
+ return f;
3674
+ },
3675
+
3632
3676
  /**
3633
3677
  * Return an array with time positions distributed on round time values
3634
3678
  * right and right after min and max. Used in datetime axes as well as for
@@ -3866,7 +3910,7 @@
3866
3910
  }(Highcharts));
3867
3911
  (function (H) {
3868
3912
  /**
3869
- * (c) 2010-2017 Torstein Honsi
3913
+ * (c) 2010-2018 Torstein Honsi
3870
3914
  *
3871
3915
  * License: www.highcharts.com/license
3872
3916
  */
@@ -4231,7 +4275,7 @@
4231
4275
  *
4232
4276
  * @type {boolean}
4233
4277
  * @default true
4234
- * @product highcharts highstock
4278
+ * @product highcharts highstock gantt
4235
4279
  * @apioption chart.alignTicks
4236
4280
  */
4237
4281
 
@@ -4540,7 +4584,7 @@
4540
4584
  *
4541
4585
  * @type {string}
4542
4586
  * @since 4.0.3
4543
- * @product highcharts
4587
+ * @product highcharts gantt
4544
4588
  * @validvalue ["alt", "ctrl", "meta", "shift"]
4545
4589
  * @apioption chart.panKey
4546
4590
  */
@@ -4560,7 +4604,7 @@
4560
4604
  * @default {highcharts} false
4561
4605
  * @default {highstock} true
4562
4606
  * @since 4.0.3
4563
- * @product highcharts highstock
4607
+ * @product highcharts highstock gantt
4564
4608
  * @apioption chart.panning
4565
4609
  */
4566
4610
 
@@ -4578,7 +4622,7 @@
4578
4622
  * @default {highcharts} undefined
4579
4623
  * @default {highstock} x
4580
4624
  * @since 3.0
4581
- * @product highcharts highstock
4625
+ * @product highcharts highstock gantt
4582
4626
  * @validvalue ["x", "y", "xy"]
4583
4627
  * @apioption chart.pinchType
4584
4628
  */
@@ -4642,7 +4686,7 @@
4642
4686
  * False
4643
4687
  *
4644
4688
  * @since 1.2.0
4645
- * @product highcharts highstock
4689
+ * @product highcharts highstock gantt
4646
4690
  */
4647
4691
  ignoreHiddenSeries: true,
4648
4692
 
@@ -4665,7 +4709,7 @@
4665
4709
  *
4666
4710
  * @type {boolean}
4667
4711
  * @default false
4668
- * @product highcharts highstock
4712
+ * @product highcharts highstock gantt
4669
4713
  * @apioption chart.inverted
4670
4714
  */
4671
4715
 
@@ -4910,7 +4954,7 @@
4910
4954
  *
4911
4955
  * @type {boolean}
4912
4956
  * @since 1.2.5
4913
- * @product highcharts
4957
+ * @product highcharts gantt
4914
4958
  * @apioption chart.showAxes
4915
4959
  */
4916
4960
 
@@ -5060,7 +5104,7 @@
5060
5104
  * Xy
5061
5105
  *
5062
5106
  * @type {string}
5063
- * @product highcharts highstock
5107
+ * @product highcharts highstock gantt
5064
5108
  * @validvalue ["x", "y", "xy"]
5065
5109
  * @apioption chart.zoomType
5066
5110
  */
@@ -5537,6 +5581,7 @@
5537
5581
  *
5538
5582
  * @default {highstock} false
5539
5583
  * @default {highmaps} true
5584
+ * @default {gantt} false
5540
5585
  */
5541
5586
  enabled: true,
5542
5587
 
@@ -5718,7 +5763,7 @@
5718
5763
  * @type {number}
5719
5764
  * @default 16
5720
5765
  * @since 2.0
5721
- * @product highcharts
5766
+ * @product highcharts gantt
5722
5767
  * @apioption legend.lineHeight
5723
5768
  */
5724
5769
 
@@ -6488,7 +6533,7 @@
6488
6533
  * A different format
6489
6534
  *
6490
6535
  * @type {string}
6491
- * @product highcharts highstock
6536
+ * @product highcharts highstock gantt
6492
6537
  * @apioption tooltip.xDateFormat
6493
6538
  */
6494
6539
 
@@ -6544,7 +6589,7 @@
6544
6589
  * @see [xAxis.dateTimeLabelFormats](#xAxis.dateTimeLabelFormats)
6545
6590
  *
6546
6591
  * @type {Highcharts.Dictionary<string>}
6547
- * @product highcharts highstock
6592
+ * @product highcharts highstock gantt
6548
6593
  */
6549
6594
  dateTimeLabelFormats: {
6550
6595
  millisecond: '%A, %b %e, %H:%M:%S.%L',
@@ -6821,7 +6866,7 @@
6821
6866
  }(Highcharts));
6822
6867
  (function (H) {
6823
6868
  /**
6824
- * (c) 2010-2017 Torstein Honsi
6869
+ * (c) 2010-2018 Torstein Honsi
6825
6870
  *
6826
6871
  * License: www.highcharts.com/license
6827
6872
  */
@@ -8291,6 +8336,7 @@
8291
8336
  toggleTextShadowShim,
8292
8337
  cache = renderer.cache,
8293
8338
  cacheKeys = renderer.cacheKeys,
8339
+ isSVG = element.namespaceURI === wrapper.SVG_NS,
8294
8340
  cacheKey;
8295
8341
 
8296
8342
  rotation = pick(rot, wrapper.rotation);
@@ -8334,7 +8380,7 @@
8334
8380
  if (!bBox) {
8335
8381
 
8336
8382
  // SVG elements
8337
- if (element.namespaceURI === wrapper.SVG_NS || renderer.forExport) {
8383
+ if (isSVG || renderer.forExport) {
8338
8384
  try { // Fails in Firefox if the container has display: none.
8339
8385
 
8340
8386
  // When the text shadow shim is used, we need to hide the
@@ -8401,12 +8447,16 @@
8401
8447
  // Also vertical positioning is affected.
8402
8448
  // https://jsfiddle.net/highcharts/em37nvuj/
8403
8449
  // (#1101, #1505, #1669, #2568, #6213).
8404
- if (
8405
- styles &&
8406
- styles.fontSize === '11px' &&
8407
- Math.round(height) === 17
8408
- ) {
8409
- bBox.height = height = 14;
8450
+ if (isSVG) {
8451
+ bBox.height = height = (
8452
+ {
8453
+ '11px,17': 14,
8454
+ '13px,20': 16
8455
+ }[
8456
+ styles && styles.fontSize + ',' + Math.round(height)
8457
+ ] ||
8458
+ height
8459
+ );
8410
8460
  }
8411
8461
 
8412
8462
  // Adjust for rotated text
@@ -9098,7 +9148,7 @@
9098
9148
  // Add description
9099
9149
  desc = this.createElement('desc').add();
9100
9150
  desc.element.appendChild(
9101
- doc.createTextNode('Created with Highmaps 6.1.4')
9151
+ doc.createTextNode('Created with Highmaps 6.2.0')
9102
9152
  );
9103
9153
 
9104
9154
  /**
@@ -9380,7 +9430,7 @@
9380
9430
  } catch (e) {}
9381
9431
 
9382
9432
  // Legacy
9383
- } else {
9433
+ } else if (renderer.getSpanWidth) { // #9058 jsdom
9384
9434
  updateTSpan(getString(text || words, charEnd));
9385
9435
  lengths[end] = startAt +
9386
9436
  renderer.getSpanWidth(wrapper, tspan);
@@ -10867,7 +10917,7 @@
10867
10917
  if (y) {
10868
10918
  attribs.y = Math.round(y);
10869
10919
  }
10870
- if (str || str === 0) {
10920
+ if (defined(str)) {
10871
10921
  attribs.text = str;
10872
10922
  }
10873
10923
 
@@ -11367,11 +11417,13 @@
11367
11417
  }(Highcharts));
11368
11418
  (function (H) {
11369
11419
  /**
11370
- * (c) 2010-2017 Torstein Honsi
11420
+ * (c) 2010-2018 Torstein Honsi
11371
11421
  *
11372
11422
  * License: www.highcharts.com/license
11373
11423
  */
11374
11424
 
11425
+
11426
+
11375
11427
  var attr = H.attr,
11376
11428
  createElement = H.createElement,
11377
11429
  css = H.css,
@@ -11388,11 +11440,19 @@
11388
11440
  win = H.win,
11389
11441
  wrap = H.wrap;
11390
11442
 
11391
- // Extend SvgElement for useHTML option
11443
+ // Extend SvgElement for useHTML option.
11392
11444
  extend(SVGElement.prototype, /** @lends SVGElement.prototype */ {
11445
+
11393
11446
  /**
11394
11447
  * Apply CSS to HTML elements. This is used in text within SVG rendering and
11395
11448
  * by the VML renderer
11449
+ *
11450
+ * @private
11451
+ * @function Highcharts.SVGElement#htmlCss
11452
+ *
11453
+ * @param {Highcharts.CSSObject} styles
11454
+ *
11455
+ * @return {Highcharts.SVGElement}
11396
11456
  */
11397
11457
  htmlCss: function (styles) {
11398
11458
  var wrapper = this,
@@ -11425,13 +11485,18 @@
11425
11485
  },
11426
11486
 
11427
11487
  /**
11428
- * VML and useHTML method for calculating the bounding box based on offsets
11429
- * @param {Boolean} refresh Whether to force a fresh value from the DOM or
11430
- * to use the cached value.
11488
+ * VML and useHTML method for calculating the bounding box based on offsets.
11489
+ *
11490
+ * @private
11491
+ * @function Highcharts.SVGElement#htmlGetBBox
11492
+ *
11493
+ * @param {boolean} refresh
11494
+ * Whether to force a fresh value from the DOM or to use the cached
11495
+ * value.
11431
11496
  *
11432
- * @return {Object} A hash containing values for x, y, width and height
11497
+ * @return {Highcharts.BBoxObject}
11498
+ * A hash containing values for x, y, width and height.
11433
11499
  */
11434
-
11435
11500
  htmlGetBBox: function () {
11436
11501
  var wrapper = this,
11437
11502
  element = wrapper.element;
@@ -11446,7 +11511,10 @@
11446
11511
 
11447
11512
  /**
11448
11513
  * VML override private method to update elements based on internal
11449
- * properties based on SVG transform
11514
+ * properties based on SVG transform.
11515
+ *
11516
+ * @private
11517
+ * @function Highcharts.SVGElement#htmlUpdateTransform
11450
11518
  */
11451
11519
  htmlUpdateTransform: function () {
11452
11520
  // aligning non added elements is expensive
@@ -11576,7 +11644,16 @@
11576
11644
  },
11577
11645
 
11578
11646
  /**
11579
- * Set the rotation of an individual HTML span
11647
+ * Set the rotation of an individual HTML span.
11648
+ *
11649
+ * @private
11650
+ * @function Highcharts.SVGElement#setSpanRotation
11651
+ *
11652
+ * @param {number} rotation
11653
+ *
11654
+ * @param {number} alignCorrection
11655
+ *
11656
+ * @param {number} baseline
11580
11657
  */
11581
11658
  setSpanRotation: function (rotation, alignCorrection, baseline) {
11582
11659
  var rotationStyle = {},
@@ -11592,6 +11669,15 @@
11592
11669
 
11593
11670
  /**
11594
11671
  * Get the correction in X and Y positioning as the element is rotated.
11672
+ *
11673
+ * @private
11674
+ * @function Highcharts.SVGElement#getSpanCorrection
11675
+ *
11676
+ * @param {number} width
11677
+ *
11678
+ * @param {number} baseline
11679
+ *
11680
+ * @param {number} alignCorrection
11595
11681
  */
11596
11682
  getSpanCorrection: function (width, baseline, alignCorrection) {
11597
11683
  this.xCorr = -width * alignCorrection;
@@ -11602,6 +11688,12 @@
11602
11688
  // Extend SvgRenderer for useHTML option.
11603
11689
  extend(SVGRenderer.prototype, /** @lends SVGRenderer.prototype */ {
11604
11690
 
11691
+ /**
11692
+ * @private
11693
+ * @function Highcharts.SVGRenderer#getTransformKey
11694
+ *
11695
+ * @return {string}
11696
+ */
11605
11697
  getTransformKey: function () {
11606
11698
  return isMS && !/Edge/.test(win.navigator.userAgent) ?
11607
11699
  '-ms-transform' :
@@ -11618,9 +11710,19 @@
11618
11710
  * Create HTML text node. This is used by the VML renderer as well as the
11619
11711
  * SVG renderer through the useHTML option.
11620
11712
  *
11621
- * @param {String} str
11622
- * @param {Number} x
11623
- * @param {Number} y
11713
+ * @private
11714
+ * @function Highcharts.SVGRenderer#html
11715
+ *
11716
+ * @param {string} str
11717
+ * The text of (subset) HTML to draw.
11718
+ *
11719
+ * @param {number} x
11720
+ * The x position of the text's lower left corner.
11721
+ *
11722
+ * @param {number} y
11723
+ * The y position of the text's lower left corner.
11724
+ *
11725
+ * @return {Highcharts.HTMLDOMElement}
11624
11726
  */
11625
11727
  html: function (str, x, y) {
11626
11728
  var wrapper = this.createElement('span'),
@@ -11829,10 +11931,13 @@
11829
11931
  }(Highcharts));
11830
11932
  (function (H) {
11831
11933
  /**
11832
- * (c) 2010-2017 Torstein Honsi
11934
+ * (c) 2010-2018 Torstein Honsi
11833
11935
  *
11834
11936
  * License: www.highcharts.com/license
11835
11937
  */
11938
+
11939
+
11940
+
11836
11941
  var correctFloat = H.correctFloat,
11837
11942
  defined = H.defined,
11838
11943
  destroyObjectProperties = H.destroyObjectProperties,
@@ -11843,24 +11948,51 @@
11843
11948
  deg2rad = H.deg2rad;
11844
11949
 
11845
11950
  /**
11846
- * The Tick class
11847
- * @ignore
11951
+ * The Tick class.
11952
+ *
11953
+ * @private
11954
+ * @class
11955
+ * @name Highcharts.Tick
11956
+ *
11957
+ * @param {Highcharts.Axis} axis
11958
+ *
11959
+ * @param {number} pos The position of the tick on the axis.
11960
+ *
11961
+ * @param {string} [type] The type of tick.
11962
+ *
11963
+ * @param {boolean} [noLabel=false] Wether to disable the label or not. Defaults to
11964
+ * false.
11965
+ *
11966
+ * @param {object} [parameters] Optional parameters for the tick.
11967
+ *
11968
+ * @param {object} [parameters.tickmarkOffset] Set tickmarkOffset for the tick.
11969
+ *
11970
+ * @param {object} [parameters.category] Set category for the tick.
11848
11971
  */
11849
- H.Tick = function (axis, pos, type, noLabel) {
11972
+ H.Tick = function (axis, pos, type, noLabel, parameters) {
11850
11973
  this.axis = axis;
11851
11974
  this.pos = pos;
11852
11975
  this.type = type || '';
11853
11976
  this.isNew = true;
11854
11977
  this.isNewLabel = true;
11978
+ this.parameters = parameters || {};
11979
+ // Usually undefined, numeric for grid axes
11980
+ this.tickmarkOffset = this.parameters.tickmarkOffset;
11855
11981
 
11982
+ this.options = this.parameters.options;
11856
11983
  if (!type && !noLabel) {
11857
11984
  this.addLabel();
11858
11985
  }
11859
11986
  };
11860
11987
 
11988
+ /** @lends Highcharts.Tick.prototype */
11861
11989
  H.Tick.prototype = {
11990
+
11862
11991
  /**
11863
- * Write the tick label
11992
+ * Write the tick label.
11993
+ *
11994
+ * @private
11995
+ * @function Highcharts.Tick#addLabel
11864
11996
  */
11865
11997
  addLabel: function () {
11866
11998
  var tick = this,
@@ -11870,44 +12002,82 @@
11870
12002
  categories = axis.categories,
11871
12003
  names = axis.names,
11872
12004
  pos = tick.pos,
11873
- labelOptions = options.labels,
12005
+ labelOptions = pick(
12006
+ tick.options && tick.options.labels,
12007
+ options.labels
12008
+ ),
11874
12009
  str,
11875
12010
  tickPositions = axis.tickPositions,
11876
12011
  isFirst = pos === tickPositions[0],
11877
12012
  isLast = pos === tickPositions[tickPositions.length - 1],
11878
- value = categories ?
11879
- pick(categories[pos], names[pos], pos) :
11880
- pos,
12013
+ value = this.parameters.category || (
12014
+ categories ?
12015
+ pick(categories[pos], names[pos], pos) :
12016
+ pos
12017
+ ),
11881
12018
  label = tick.label,
11882
12019
  tickPositionInfo = tickPositions.info,
11883
12020
  dateTimeLabelFormat,
11884
- params;
12021
+ dateTimeLabelFormats,
12022
+ i,
12023
+ list;
11885
12024
 
11886
12025
  // Set the datetime label format. If a higher rank is set for this
11887
12026
  // position, use that. If not, use the general format.
11888
12027
  if (axis.isDatetimeAxis && tickPositionInfo) {
11889
- dateTimeLabelFormat =
12028
+ dateTimeLabelFormats = chart.time.resolveDTLFormat(
11890
12029
  options.dateTimeLabelFormats[
11891
- tickPositionInfo.higherRanks[pos] ||
12030
+ (
12031
+ !options.grid &&
12032
+ tickPositionInfo.higherRanks[pos]
12033
+ ) ||
11892
12034
  tickPositionInfo.unitName
11893
- ];
12035
+ ]
12036
+ );
12037
+ dateTimeLabelFormat = dateTimeLabelFormats.main;
11894
12038
  }
12039
+
11895
12040
  // set properties for access in render method
11896
12041
  tick.isFirst = isFirst;
11897
12042
  tick.isLast = isLast;
11898
12043
 
11899
- // Get the string. Provide params both as scope (legacy) and as first
11900
- // parameter which allows use in arrow functions (#8580).
11901
- params = {
12044
+ // Get the string
12045
+ tick.formatCtx = {
11902
12046
  axis: axis,
11903
12047
  chart: chart,
11904
12048
  isFirst: isFirst,
11905
12049
  isLast: isLast,
11906
12050
  dateTimeLabelFormat: dateTimeLabelFormat,
12051
+ tickPositionInfo: tickPositionInfo,
11907
12052
  value: axis.isLog ? correctFloat(axis.lin2log(value)) : value,
11908
12053
  pos: pos
11909
12054
  };
11910
- str = axis.labelFormatter.call(params, params);
12055
+ str = axis.labelFormatter.call(tick.formatCtx, this.formatCtx);
12056
+
12057
+ // Set up conditional formatting based on the format list if existing.
12058
+ list = dateTimeLabelFormats && dateTimeLabelFormats.list;
12059
+ if (list) {
12060
+ tick.shortenLabel = function () {
12061
+ for (i = 0; i < list.length; i++) {
12062
+ label.attr({
12063
+ text: axis.labelFormatter.call(H.extend(
12064
+ tick.formatCtx,
12065
+ { dateTimeLabelFormat: list[i] }
12066
+ ))
12067
+ });
12068
+ if (
12069
+ label.getBBox().width <
12070
+ axis.getSlotWidth(tick) - 2 *
12071
+ pick(labelOptions.padding, 5)
12072
+ ) {
12073
+ return;
12074
+ }
12075
+ }
12076
+ label.attr({
12077
+ text: ''
12078
+ });
12079
+ };
12080
+ }
11911
12081
 
11912
12082
  // first call
11913
12083
  if (!defined(label)) {
@@ -11951,6 +12121,11 @@
11951
12121
 
11952
12122
  /**
11953
12123
  * Get the offset height or width of the label
12124
+ *
12125
+ * @private
12126
+ * @function Highcharts.Tick#getLabelSize
12127
+ *
12128
+ * @return {number}
11954
12129
  */
11955
12130
  getLabelSize: function () {
11956
12131
  return this.label ?
@@ -11961,6 +12136,11 @@
11961
12136
  /**
11962
12137
  * Handle the label overflow by adjusting the labels to the left and right
11963
12138
  * edge, or hide them if they collide into the neighbour label.
12139
+ *
12140
+ * @private
12141
+ * @function Highcharts.Tick#handleOverflow
12142
+ *
12143
+ * @param {Highcharts.PositionObject} xy
11964
12144
  */
11965
12145
  handleOverflow: function (xy) {
11966
12146
  var tick = this,
@@ -12044,16 +12224,35 @@
12044
12224
  }
12045
12225
 
12046
12226
  if (textWidth) {
12047
- css.width = textWidth;
12048
- if (!(labelOptions.style || {}).textOverflow) {
12049
- css.textOverflow = 'ellipsis';
12227
+ if (tick.shortenLabel) {
12228
+ tick.shortenLabel();
12229
+ } else {
12230
+ css.width = textWidth;
12231
+ if (!(labelOptions.style || {}).textOverflow) {
12232
+ css.textOverflow = 'ellipsis';
12233
+ }
12234
+ label.css(css);
12050
12235
  }
12051
- label.css(css);
12052
12236
  }
12053
12237
  },
12054
12238
 
12055
12239
  /**
12056
12240
  * Get the x and y position for ticks and labels
12241
+ *
12242
+ * @private
12243
+ * @function Highcharts.Tick#getPosition
12244
+ *
12245
+ * @param {boolean} horiz
12246
+ *
12247
+ * @param {number} tickPos
12248
+ *
12249
+ * @param {number} tickmarkOffset
12250
+ *
12251
+ * @param {boolean} [old]
12252
+ *
12253
+ * @return {number}
12254
+ *
12255
+ * @fires Highcharts.Tick#event:afterGetPosition
12057
12256
  */
12058
12257
  getPosition: function (horiz, tickPos, tickmarkOffset, old) {
12059
12258
  var axis = this.axis,
@@ -12106,6 +12305,9 @@
12106
12305
 
12107
12306
  /**
12108
12307
  * Get the x, y position of the tick label
12308
+ *
12309
+ * @private
12310
+ *
12109
12311
  */
12110
12312
  getLabelPosition: function (
12111
12313
  x,
@@ -12178,6 +12380,9 @@
12178
12380
 
12179
12381
  /**
12180
12382
  * Extendible method to return the path of the marker
12383
+ *
12384
+ * @private
12385
+ *
12181
12386
  */
12182
12387
  getMarkPath: function (x, y, tickLength, tickWidth, horiz, renderer) {
12183
12388
  return renderer.crispLine([
@@ -12192,6 +12397,9 @@
12192
12397
 
12193
12398
  /**
12194
12399
  * Renders the gridLine.
12400
+ *
12401
+ * @private
12402
+ *
12195
12403
  * @param {Boolean} old Whether or not the tick is old
12196
12404
  * @param {number} opacity The opacity of the grid line
12197
12405
  * @param {number} reverseCrisp Modifier for avoiding overlapping 1 or -1
@@ -12206,7 +12414,7 @@
12206
12414
  attribs = {},
12207
12415
  pos = tick.pos,
12208
12416
  type = tick.type,
12209
- tickmarkOffset = axis.tickmarkOffset,
12417
+ tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset),
12210
12418
  renderer = axis.chart.renderer;
12211
12419
 
12212
12420
 
@@ -12217,7 +12425,7 @@
12217
12425
  attribs.zIndex = 1;
12218
12426
  }
12219
12427
  if (old) {
12220
- attribs.opacity = 0;
12428
+ opacity = 0;
12221
12429
  }
12222
12430
  tick.gridLine = gridLine = renderer.path()
12223
12431
  .attr(attribs)
@@ -12225,18 +12433,21 @@
12225
12433
  'highcharts-' + (type ? type + '-' : '') + 'grid-line'
12226
12434
  )
12227
12435
  .add(axis.gridGroup);
12436
+
12228
12437
  }
12229
12438
 
12230
- // If the parameter 'old' is set, the current call will be followed
12231
- // by another call, therefore do not do any animations this time
12232
- if (!old && gridLine) {
12439
+ if (gridLine) {
12233
12440
  gridLinePath = axis.getPlotLinePath(
12234
12441
  pos + tickmarkOffset,
12235
12442
  gridLine.strokeWidth() * reverseCrisp,
12236
- old, true
12443
+ old,
12444
+ 'pass'
12237
12445
  );
12446
+
12447
+ // If the parameter 'old' is set, the current call will be followed
12448
+ // by another call, therefore do not do any animations this time
12238
12449
  if (gridLinePath) {
12239
- gridLine[tick.isNew ? 'attr' : 'animate']({
12450
+ gridLine[old || tick.isNew ? 'attr' : 'animate']({
12240
12451
  d: gridLinePath,
12241
12452
  opacity: opacity
12242
12453
  });
@@ -12246,6 +12457,9 @@
12246
12457
 
12247
12458
  /**
12248
12459
  * Renders the tick mark.
12460
+ *
12461
+ * @private
12462
+ *
12249
12463
  * @param {Object} xy The position vector of the mark
12250
12464
  * @param {number} xy.x The x position of the mark
12251
12465
  * @param {number} xy.y The y position of the mark
@@ -12301,6 +12515,9 @@
12301
12515
  * Renders the tick label.
12302
12516
  * Note: The label should already be created in init(), so it should only
12303
12517
  * have to be moved into place.
12518
+ *
12519
+ * @private
12520
+ *
12304
12521
  * @param {Object} xy The position vector of the label
12305
12522
  * @param {number} xy.x The x position of the label
12306
12523
  * @param {number} xy.y The y position of the label
@@ -12317,7 +12534,7 @@
12317
12534
  label = tick.label,
12318
12535
  labelOptions = options.labels,
12319
12536
  step = labelOptions.step,
12320
- tickmarkOffset = axis.tickmarkOffset,
12537
+ tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset),
12321
12538
  show = true,
12322
12539
  x = xy.x,
12323
12540
  y = xy.y;
@@ -12382,6 +12599,8 @@
12382
12599
  /**
12383
12600
  * Put everything in place
12384
12601
  *
12602
+ * @private
12603
+ *
12385
12604
  * @param index {Number}
12386
12605
  * @param old {Boolean} Use old coordinates to prepare an animation into new
12387
12606
  * position
@@ -12391,7 +12610,7 @@
12391
12610
  axis = tick.axis,
12392
12611
  horiz = axis.horiz,
12393
12612
  pos = tick.pos,
12394
- tickmarkOffset = axis.tickmarkOffset,
12613
+ tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset),
12395
12614
  xy = tick.getPosition(horiz, pos, tickmarkOffset, old),
12396
12615
  x = xy.x,
12397
12616
  y = xy.y,
@@ -12417,6 +12636,9 @@
12417
12636
 
12418
12637
  /**
12419
12638
  * Destructor for the tick prototype
12639
+ *
12640
+ * @private
12641
+ * @function Highcharts.Tick#destroy
12420
12642
  */
12421
12643
  destroy: function () {
12422
12644
  destroyObjectProperties(this, this.axis);
@@ -12426,7 +12648,7 @@
12426
12648
  }(Highcharts));
12427
12649
  var Axis = (function (H) {
12428
12650
  /**
12429
- * (c) 2010-2017 Torstein Honsi
12651
+ * (c) 2010-2018 Torstein Honsi
12430
12652
  *
12431
12653
  * License: www.highcharts.com/license
12432
12654
  */
@@ -12589,7 +12811,7 @@
12589
12811
  *
12590
12812
  * @type {boolean}
12591
12813
  * @default true
12592
- * @product highcharts highstock
12814
+ * @product highcharts highstock gantt
12593
12815
  * @apioption xAxis.alignTicks
12594
12816
  */
12595
12817
 
@@ -12640,7 +12862,7 @@
12640
12862
  *
12641
12863
  * @type {Array<*>}
12642
12864
  * @since 4.1.0
12643
- * @product highcharts highstock
12865
+ * @product highcharts highstock gantt
12644
12866
  * @apioption xAxis.breaks
12645
12867
  */
12646
12868
 
@@ -12653,7 +12875,7 @@
12653
12875
  * @type {number}
12654
12876
  * @default 0
12655
12877
  * @since 4.1.0
12656
- * @product highcharts highstock
12878
+ * @product highcharts highstock gantt
12657
12879
  * @apioption xAxis.breaks.breakSize
12658
12880
  */
12659
12881
 
@@ -12662,7 +12884,7 @@
12662
12884
  *
12663
12885
  * @type {number}
12664
12886
  * @since 4.1.0
12665
- * @product highcharts highstock
12887
+ * @product highcharts highstock gantt
12666
12888
  * @apioption xAxis.breaks.from
12667
12889
  */
12668
12890
 
@@ -12673,7 +12895,7 @@
12673
12895
  * @type {number}
12674
12896
  * @default 0
12675
12897
  * @since 4.1.0
12676
- * @product highcharts highstock
12898
+ * @product highcharts highstock gantt
12677
12899
  * @apioption xAxis.breaks.repeat
12678
12900
  */
12679
12901
 
@@ -12682,7 +12904,7 @@
12682
12904
  *
12683
12905
  * @type {number}
12684
12906
  * @since 4.1.0
12685
- * @product highcharts highstock
12907
+ * @product highcharts highstock gantt
12686
12908
  * @apioption xAxis.breaks.to
12687
12909
  */
12688
12910
 
@@ -12717,7 +12939,7 @@
12717
12939
  *
12718
12940
  * @type {number}
12719
12941
  * @since 4.0
12720
- * @product highcharts highstock
12942
+ * @product highcharts highstock gantt
12721
12943
  * @apioption xAxis.ceiling
12722
12944
  */
12723
12945
 
@@ -12982,17 +13204,37 @@
12982
13204
  * @sample {highstock} stock/xaxis/datetimelabelformats/
12983
13205
  * More information in x axis labels
12984
13206
  *
12985
- * @product highcharts highstock
13207
+ * @product highcharts highstock gantt
12986
13208
  */
12987
13209
  dateTimeLabelFormats: {
12988
- millisecond: '%H:%M:%S.%L',
12989
- second: '%H:%M:%S',
12990
- minute: '%H:%M',
12991
- hour: '%H:%M',
12992
- day: '%e. %b',
12993
- week: '%e. %b',
12994
- month: '%b \'%y',
12995
- year: '%Y'
13210
+ millisecond: {
13211
+ main: '%H:%M:%S.%L',
13212
+ range: false
13213
+ },
13214
+ second: {
13215
+ main: '%H:%M:%S',
13216
+ range: false
13217
+ },
13218
+ minute: {
13219
+ main: '%H:%M',
13220
+ range: false
13221
+ },
13222
+ hour: {
13223
+ main: '%H:%M',
13224
+ range: false
13225
+ },
13226
+ day: {
13227
+ main: '%e. %b'
13228
+ },
13229
+ week: {
13230
+ main: '%e. %b'
13231
+ },
13232
+ month: {
13233
+ main: '%b \'%y'
13234
+ },
13235
+ year: {
13236
+ main: '%Y'
13237
+ }
12996
13238
  },
12997
13239
 
12998
13240
  /**
@@ -13043,7 +13285,7 @@
13043
13285
  *
13044
13286
  * @type {Function}
13045
13287
  * @since 4.1.0
13046
- * @product highcharts
13288
+ * @product highcharts gantt
13047
13289
  * @apioption xAxis.events.afterBreaks
13048
13290
  */
13049
13291
 
@@ -13078,7 +13320,7 @@
13078
13320
  *
13079
13321
  * @type {Function}
13080
13322
  * @since 4.1.0
13081
- * @product highcharts
13323
+ * @product highcharts gantt
13082
13324
  * @context Axis
13083
13325
  * @apioption xAxis.events.pointBreak
13084
13326
  */
@@ -13087,7 +13329,7 @@
13087
13329
  * An event fired when a point falls inside a break from this axis.
13088
13330
  *
13089
13331
  * @type {Function}
13090
- * @product highcharts highstock
13332
+ * @product highcharts highstock gantt
13091
13333
  * @context Axis
13092
13334
  * @apioption xAxis.events.pointInBreak
13093
13335
  */
@@ -13125,7 +13367,7 @@
13125
13367
  *
13126
13368
  * @type {number}
13127
13369
  * @since 4.0
13128
- * @product highcharts highstock
13370
+ * @product highcharts highstock gantt
13129
13371
  * @apioption xAxis.floor
13130
13372
  */
13131
13373
 
@@ -13157,7 +13399,7 @@
13157
13399
  *
13158
13400
  * @type {number}
13159
13401
  * @default 1
13160
- * @product highcharts highstock
13402
+ * @product highcharts highstock gantt
13161
13403
  * @apioption xAxis.gridZIndex
13162
13404
  */
13163
13405
 
@@ -13223,7 +13465,7 @@
13223
13465
  * @type {Array<number>}
13224
13466
  * @default [-45]
13225
13467
  * @since 4.1.0
13226
- * @product highcharts highstock
13468
+ * @product highcharts highstock gantt
13227
13469
  * @apioption xAxis.labels.autoRotation
13228
13470
  */
13229
13471
 
@@ -13240,7 +13482,7 @@
13240
13482
  * @type {number}
13241
13483
  * @default 80
13242
13484
  * @since 4.1.5
13243
- * @product highcharts
13485
+ * @product highcharts gantt
13244
13486
  * @apioption xAxis.labels.autoRotationLimit
13245
13487
  */
13246
13488
 
@@ -13250,7 +13492,7 @@
13250
13492
  *
13251
13493
  * @type {number}
13252
13494
  * @default 15
13253
- * @product highcharts
13495
+ * @product highcharts gantt
13254
13496
  * @apioption xAxis.labels.distance
13255
13497
  */
13256
13498
 
@@ -13262,7 +13504,7 @@
13262
13504
  * @sample {highstock} stock/xaxis/labels-enabled/
13263
13505
  * X axis labels disabled
13264
13506
  *
13265
- * @default {highcharts|highstock} true
13507
+ * @default {highcharts|highstock|gantt} true
13266
13508
  * @default {highmaps} false
13267
13509
  */
13268
13510
  enabled: true,
@@ -13304,6 +13546,18 @@
13304
13546
  * @apioption xAxis.labels.formatter
13305
13547
  */
13306
13548
 
13549
+ /**
13550
+ * The number of pixels to indent the labels per level in a treegrid
13551
+ * axis.
13552
+ *
13553
+ * @product gantt
13554
+ * @sample gantt/treegrid-axis/demo
13555
+ * Indentation 10px by default.
13556
+ * @sample gantt/treegrid-axis/indentation-0px
13557
+ * Indentation set to 0px.
13558
+ */
13559
+ indentation: 10,
13560
+
13307
13561
  /**
13308
13562
  * Horizontal axis only. When `staggerLines` is not set,
13309
13563
  * `maxStaggerLines` defines how many lines the axis is allowed to
@@ -13314,7 +13568,6 @@
13314
13568
  * @type {number}
13315
13569
  * @default 5
13316
13570
  * @since 1.3.3
13317
- * @product highstock highmaps
13318
13571
  * @apioption xAxis.labels.maxStaggerLines
13319
13572
  */
13320
13573
 
@@ -13337,7 +13590,7 @@
13337
13590
  *
13338
13591
  * @type {number}
13339
13592
  * @default 5
13340
- * @product highcharts
13593
+ * @product highcharts gantt
13341
13594
  * @apioption xAxis.labels.padding
13342
13595
  */
13343
13596
 
@@ -13362,7 +13615,7 @@
13362
13615
  *
13363
13616
  * @type {boolean}
13364
13617
  * @since 4.1.10
13365
- * @product highcharts
13618
+ * @product highcharts gantt
13366
13619
  * @apioption xAxis.labels.reserveSpace
13367
13620
  */
13368
13621
 
@@ -13470,7 +13723,7 @@
13470
13723
  *
13471
13724
  * @type {number}
13472
13725
  * @since 2.0.2
13473
- * @product highcharts highstock
13726
+ * @product highcharts highstock gantt
13474
13727
  * @apioption xAxis.linkedTo
13475
13728
  */
13476
13729
 
@@ -13685,7 +13938,7 @@
13685
13938
  * @default {highcharts} 0.01
13686
13939
  * @default {highstock|highmaps} 0
13687
13940
  * @since 1.2.0
13688
- * @product highcharts highstock
13941
+ * @product highcharts highstock gantt
13689
13942
  */
13690
13943
  minPadding: 0.01,
13691
13944
 
@@ -13923,7 +14176,7 @@
13923
14176
  *
13924
14177
  * @type {boolean}
13925
14178
  * @default true
13926
- * @product highcharts highstock
14179
+ * @product highcharts highstock gantt
13927
14180
  * @apioption xAxis.showLastLabel
13928
14181
  */
13929
14182
 
@@ -13937,7 +14190,7 @@
13937
14190
  *
13938
14191
  * @type {number}
13939
14192
  * @since 5.0.1
13940
- * @product highcharts highstock
14193
+ * @product highcharts highstock gantt
13941
14194
  * @apioption xAxis.softMax
13942
14195
  */
13943
14196
 
@@ -13951,7 +14204,7 @@
13951
14204
  *
13952
14205
  * @type {number}
13953
14206
  * @since 5.0.1
13954
- * @product highcharts highstock
14207
+ * @product highcharts highstock gantt
13955
14208
  * @apioption xAxis.softMin
13956
14209
  */
13957
14210
 
@@ -13968,7 +14221,7 @@
13968
14221
  * @sample {highstock} stock/xaxis/startofweek-0
13969
14222
  * Sunday
13970
14223
  *
13971
- * @product highcharts highstock
14224
+ * @product highcharts highstock gantt
13972
14225
  */
13973
14226
  startOfWeek: 1,
13974
14227
 
@@ -14007,7 +14260,7 @@
14007
14260
  *
14008
14261
  * @type {number}
14009
14262
  * @since 4.1.0
14010
- * @product highcharts highstock
14263
+ * @product highcharts highstock gantt
14011
14264
  * @apioption xAxis.tickAmount
14012
14265
  */
14013
14266
 
@@ -14086,7 +14339,7 @@
14086
14339
  * @sample {highcharts} highcharts/xaxis/tickmarkplacement-on/
14087
14340
  * "on"
14088
14341
  *
14089
- * @product highcharts
14342
+ * @product highcharts gantt
14090
14343
  * @validvalue [null, "on", "between"]
14091
14344
  */
14092
14345
  tickmarkPlacement: 'between',
@@ -14215,7 +14468,7 @@
14215
14468
  * @type {boolean}
14216
14469
  * @default true
14217
14470
  * @since 5.0.11
14218
- * @product highcharts highstock
14471
+ * @product highcharts highstock gantt
14219
14472
  * @apioption xAxis.title.reserveSpace
14220
14473
  */
14221
14474
 
@@ -14276,7 +14529,7 @@
14276
14529
  *
14277
14530
  * @type {boolean}
14278
14531
  * @default false
14279
- * @product highcharts highstock
14532
+ * @product highcharts highstock gantt
14280
14533
  * @apioption xAxis.title.useHTML
14281
14534
  */
14282
14535
 
@@ -14286,7 +14539,7 @@
14286
14539
  * @type {number}
14287
14540
  * @default 0
14288
14541
  * @since 4.1.6
14289
- * @product highcharts highstock
14542
+ * @product highcharts highstock gantt
14290
14543
  * @apioption xAxis.title.x
14291
14544
  */
14292
14545
 
@@ -14294,7 +14547,7 @@
14294
14547
  * Vertical pixel offset of the title position.
14295
14548
  *
14296
14549
  * @type {number}
14297
- * @product highcharts highstock
14550
+ * @product highcharts highstock gantt
14298
14551
  * @apioption xAxis.title.y
14299
14552
  */
14300
14553
 
@@ -14341,11 +14594,34 @@
14341
14594
  * @sample {highcharts} highcharts/yaxis/type-log-negative/
14342
14595
  * Logarithmic with extension to emulate negative values
14343
14596
  *
14344
- * @product highcharts
14597
+ * @product highcharts gantt
14345
14598
  * @validvalue ["linear", "logarithmic", "datetime", "category"]
14346
14599
  */
14347
14600
  type: 'linear',
14348
14601
 
14602
+ /**
14603
+ * The type of axis. Can be one of `linear`, `logarithmic`, `datetime`,
14604
+ * `category` or `treegrid`. Defaults to `treegrid` for Gantt charts,
14605
+ * `linear` for other chart types.
14606
+ *
14607
+ * In a datetime axis, the numbers are given in milliseconds, and tick
14608
+ * marks are placed on appropriate values, like full hours or days. In a
14609
+ * category or treegrid axis, the [point names](#series.line.data.name)
14610
+ * of the chart's series are used for categories, if a
14611
+ * [categories](#xAxis.categories) array is not defined.
14612
+ *
14613
+ * @sample {highcharts} highcharts/yaxis/type-log-minorgrid/
14614
+ * Logarithmic with minor grid lines
14615
+ * @sample {highcharts} highcharts/yaxis/type-log-negative/
14616
+ * Logarithmic with extension to emulate negative values
14617
+ *
14618
+ * @product highcharts gantt
14619
+ * @validvalue ["linear", "logarithmic", "datetime", "category", "treegrid"]
14620
+ * @default {highcharts} linear
14621
+ * @default {gantt} treegrid
14622
+ * @apioption yAxis.type
14623
+ */
14624
+
14349
14625
  /**
14350
14626
  * Applies only when the axis `type` is `category`. When `uniqueNames`
14351
14627
  * is true, points are placed on the X axis according to their names.
@@ -14363,7 +14639,7 @@
14363
14639
  * @type {boolean}
14364
14640
  * @default true
14365
14641
  * @since 4.2.7
14366
- * @product highcharts
14642
+ * @product highcharts gantt
14367
14643
  * @apioption xAxis.uniqueNames
14368
14644
  */
14369
14645
 
@@ -14400,7 +14676,7 @@
14400
14676
  * ]]</pre>
14401
14677
  *
14402
14678
  * @type {Array<Array<string|Array<number>>>}
14403
- * @product highcharts highstock
14679
+ * @product highcharts highstock gantt
14404
14680
  * @apioption xAxis.units
14405
14681
  */
14406
14682
 
@@ -14411,7 +14687,7 @@
14411
14687
  * @type {boolean}
14412
14688
  * @default true
14413
14689
  * @since 4.1.9
14414
- * @product highcharts highstock
14690
+ * @product highcharts highstock gantt
14415
14691
  * @apioption xAxis.visible
14416
14692
  */
14417
14693
 
@@ -14429,7 +14705,7 @@
14429
14705
  * access to the axis.
14430
14706
  *
14431
14707
  * @extends xAxis
14432
- * @excluding ordinal, overscroll
14708
+ * @excluding ordinal,overscroll,currentDateIndicator
14433
14709
  * @optionparent yAxis
14434
14710
  */
14435
14711
  defaultYAxisOptions: {
@@ -14523,6 +14799,7 @@
14523
14799
  * @default {highcharts} false
14524
14800
  * @default {highstock} false
14525
14801
  * @default {highmaps} true
14802
+ * @default {gantt} true
14526
14803
  * @apioption yAxis.reversed
14527
14804
  */
14528
14805
 
@@ -14574,7 +14851,7 @@
14574
14851
  *
14575
14852
  * @type {number}
14576
14853
  * @default 0
14577
- * @product highcharts highstock
14854
+ * @product highcharts highstock gantt
14578
14855
  * @apioption yAxis.tickWidth
14579
14856
  */
14580
14857
 
@@ -14622,7 +14899,7 @@
14622
14899
  * Greater min- and maxPadding
14623
14900
  *
14624
14901
  * @since 1.2.0
14625
- * @product highcharts highstock
14902
+ * @product highcharts highstock gantt
14626
14903
  */
14627
14904
  maxPadding: 0.05,
14628
14905
 
@@ -14639,7 +14916,7 @@
14639
14916
  * Greater min- and maxPadding
14640
14917
  *
14641
14918
  * @since 1.2.0
14642
- * @product highcharts highstock
14919
+ * @product highcharts highstock gantt
14643
14920
  */
14644
14921
  minPadding: 0.05,
14645
14922
 
@@ -14655,7 +14932,7 @@
14655
14932
  * @type {boolean}
14656
14933
  * @default {highstock} true
14657
14934
  * @default {highcharts} false
14658
- * @product highstock highcharts
14935
+ * @product highstock highcharts gantt
14659
14936
  * @apioption yAxis.opposite
14660
14937
  */
14661
14938
 
@@ -14825,7 +15102,7 @@
14825
15102
  *
14826
15103
  * @type {number}
14827
15104
  * @since 5.0.1
14828
- * @product highcharts highstock
15105
+ * @product highcharts highstock gantt
14829
15106
  * @apioption yAxis.softMax
14830
15107
  */
14831
15108
 
@@ -14843,7 +15120,7 @@
14843
15120
  *
14844
15121
  * @type {number}
14845
15122
  * @since 5.0.1
14846
- * @product highcharts highstock
15123
+ * @product highcharts highstock gantt
14847
15124
  * @apioption yAxis.softMin
14848
15125
  */
14849
15126
 
@@ -14980,7 +15257,7 @@
14980
15257
  * False for Y axis
14981
15258
  *
14982
15259
  * @since 1.2.0
14983
- * @product highcharts highstock
15260
+ * @product highcharts highstock gantt
14984
15261
  */
14985
15262
  startOnTick: true,
14986
15263
 
@@ -15018,7 +15295,7 @@
15018
15295
  *
15019
15296
  * @default {highcharts} Values
15020
15297
  * @default {highstock} undefined
15021
- * @product highcharts highstock
15298
+ * @product highcharts highstock gantt
15022
15299
  */
15023
15300
  text: 'Values'
15024
15301
  },
@@ -15295,10 +15572,25 @@
15295
15572
  // Flag, if axis is linked to another axis
15296
15573
  axis.isLinked = defined(options.linkedTo);
15297
15574
 
15298
- // Major ticks
15575
+ /**
15576
+ * List of major ticks mapped by postition on axis.
15577
+ *
15578
+ * @name ticks
15579
+ * @memberOf Axis
15580
+ * @type {Object.<number, Highcharts.Tick>}
15581
+ * @see Highcharts.Tick
15582
+ */
15299
15583
  axis.ticks = {};
15300
15584
  axis.labelEdge = [];
15301
- // Minor ticks
15585
+ /**
15586
+ * List of minor ticks mapped by position on the axis.
15587
+ *
15588
+ * @name minorTicks
15589
+ * @memberOf Axis
15590
+ * @type {Object.<number, Highcharts.Tick>}
15591
+ *
15592
+ * @see Highcharts.Tick
15593
+ */
15302
15594
  axis.minorTicks = {};
15303
15595
 
15304
15596
  // List of plotLines/Bands
@@ -15772,9 +16064,11 @@
15772
16064
  * @param {boolean} [old=false]
15773
16065
  * Use old coordinates (for resizing and rescaling).
15774
16066
  *
15775
- * @param {boolean} [force=false]
16067
+ * @param {boolean|string} [force=false]
15776
16068
  * If `false`, the function will return null when it falls outside
15777
- * the axis bounds.
16069
+ * the axis bounds. If `true`, the function will return a path
16070
+ * aligned to the plot area sides if it falls outside. If `pass`, it
16071
+ * will return a path outside.
15778
16072
  *
15779
16073
  * @param {number} [translatedValue]
15780
16074
  * If given, return the plot line path of a pixel position on the
@@ -15801,7 +16095,7 @@
15801
16095
  * or skip, depending on the force parameter.
15802
16096
  */
15803
16097
  between = function (x, a, b) {
15804
- if (x < a || x > b) {
16098
+ if (force !== 'pass' && x < a || x > b) {
15805
16099
  if (force) {
15806
16100
  x = Math.min(Math.max(a, x), b);
15807
16101
  } else {
@@ -16324,7 +16618,7 @@
16324
16618
  axis.oldTransA = transA;
16325
16619
  }
16326
16620
  axis.translationSlope = axis.transA = transA =
16327
- axis.options.staticScale ||
16621
+ axis.staticScale ||
16328
16622
  axis.len / ((range + pointRangePadding) || 1);
16329
16623
 
16330
16624
  // Translation addend
@@ -17446,7 +17740,7 @@
17446
17740
  * @return {number}
17447
17741
  * The pixel width allocated to each axis label.
17448
17742
  */
17449
- getSlotWidth: function () {
17743
+ getSlotWidth: function (tick) {
17450
17744
  // #5086, #1580, #1931
17451
17745
  var chart = this.chart,
17452
17746
  horiz = this.horiz,
@@ -17458,6 +17752,9 @@
17458
17752
  marginLeft = chart.margin[3];
17459
17753
 
17460
17754
  return (
17755
+ tick &&
17756
+ tick.slotWidth // Used by grid axis
17757
+ ) || (
17461
17758
  horiz &&
17462
17759
  (labelOptions.step || 0) < 2 &&
17463
17760
  !labelOptions.rotation && // #4415
@@ -17611,11 +17908,14 @@
17611
17908
  label = tick && tick.label,
17612
17909
  widthOption = labelStyleOptions.width,
17613
17910
  css = {};
17911
+
17614
17912
  if (label) {
17615
17913
  // This needs to go before the CSS in old IE (#4502)
17616
17914
  label.attr(attr);
17617
17915
 
17618
- if (
17916
+ if (tick.shortenLabel) {
17917
+ tick.shortenLabel();
17918
+ } else if (
17619
17919
  commonWidth &&
17620
17920
  !widthOption &&
17621
17921
  // Setting width in this case messes with the bounding box
@@ -17650,7 +17950,7 @@
17650
17950
  delete label.specificTextOverflow;
17651
17951
  tick.rotation = attr.rotation;
17652
17952
  }
17653
- });
17953
+ }, this);
17654
17954
 
17655
17955
  // Note: Why is this not part of getLabelPosition?
17656
17956
  this.tickRotCorr = renderer.rotCorr(
@@ -17763,7 +18063,8 @@
17763
18063
  },
17764
18064
 
17765
18065
  /**
17766
- * Render the tick labels to a preliminary position to get their sizes.
18066
+ /**
18067
+ * Render the tick labels to a preliminary position to get their sizes
17767
18068
  *
17768
18069
  * @private
17769
18070
  * @function Highcharts.Axis#getOffset
@@ -17797,7 +18098,7 @@
17797
18098
  className = options.className,
17798
18099
  axisParent = axis.axisParent, // Used in color axis
17799
18100
  lineHeightCorrection,
17800
- tickSize = this.tickSize('tick');
18101
+ tickSize;
17801
18102
 
17802
18103
  // For reuse in Axis.render
17803
18104
  hasData = axis.hasData();
@@ -17923,6 +18224,17 @@
17923
18224
 
17924
18225
  axis.axisTitleMargin = pick(titleOffsetOption, labelOffsetPadded);
17925
18226
 
18227
+ if (axis.getMaxLabelDimensions) {
18228
+ axis.maxLabelDimensions = axis.getMaxLabelDimensions(
18229
+ ticks,
18230
+ tickPositions
18231
+ );
18232
+ }
18233
+
18234
+ // Due to GridAxis.tickSize, tickSize should be calculated after ticks
18235
+ // has rendered.
18236
+ tickSize = this.tickSize('tick');
18237
+
17926
18238
  axisOffset[side] = Math.max(
17927
18239
  axisOffset[side],
17928
18240
  axis.axisTitleMargin + titleOffset + directionFactor * axis.offset,
@@ -18114,10 +18426,13 @@
18114
18426
  if (!ticks[pos]) {
18115
18427
  ticks[pos] = new Tick(this, pos);
18116
18428
  }
18117
-
18429
+ // NOTE this seems like overkill. Could be handled in tick.render by
18430
+ // setting old position in attr, then set new position in animate.
18118
18431
  // render new ticks in old position
18119
18432
  if (slideInTicks && ticks[pos].isNew) {
18120
- ticks[pos].render(i, true, 0.1);
18433
+ // Start with negative opacity so that it is visible from
18434
+ // halfway into the animation
18435
+ ticks[pos].render(i, true, -1);
18121
18436
  }
18122
18437
 
18123
18438
  ticks[pos].render(i);
@@ -18540,23 +18855,38 @@
18540
18855
  }(Highcharts));
18541
18856
  (function (H) {
18542
18857
  /**
18543
- * (c) 2010-2017 Torstein Honsi
18858
+ * (c) 2010-2018 Torstein Honsi
18544
18859
  *
18545
18860
  * License: www.highcharts.com/license
18546
18861
  */
18862
+
18863
+
18864
+
18547
18865
  var Axis = H.Axis,
18548
18866
  getMagnitude = H.getMagnitude,
18549
18867
  map = H.map,
18550
18868
  normalizeTickInterval = H.normalizeTickInterval,
18551
18869
  pick = H.pick;
18552
- /**
18870
+
18871
+ /*
18553
18872
  * Methods defined on the Axis prototype
18554
18873
  */
18555
18874
 
18556
18875
  /**
18557
- * Set the tick positions of a logarithmic axis
18876
+ * Set the tick positions of a logarithmic axis.
18558
18877
  *
18559
- * @ignore
18878
+ * @private
18879
+ * @function Highcharts.Axis#getLogTickPositions
18880
+ *
18881
+ * @param {number} interval
18882
+ *
18883
+ * @param {number} min
18884
+ *
18885
+ * @param {number} max
18886
+ *
18887
+ * @param {number} minor
18888
+ *
18889
+ * @return {Array<number>}
18560
18890
  */
18561
18891
  Axis.prototype.getLogTickPositions = function (interval, min, max, minor) {
18562
18892
  var axis = this,
@@ -18667,10 +18997,26 @@
18667
18997
  return positions;
18668
18998
  };
18669
18999
 
19000
+ /**
19001
+ * @private
19002
+ * @function Highcharts.Axis#log2lin
19003
+ *
19004
+ * @param {number} num
19005
+ *
19006
+ * @return {number}
19007
+ */
18670
19008
  Axis.prototype.log2lin = function (num) {
18671
19009
  return Math.log(num) / Math.LN10;
18672
19010
  };
18673
19011
 
19012
+ /**
19013
+ * @private
19014
+ * @function Highcharts.Axis#lin2log
19015
+ *
19016
+ * @param {number} num
19017
+ *
19018
+ * @return {number}
19019
+ */
18674
19020
  Axis.prototype.lin2log = function (num) {
18675
19021
  return Math.pow(10, num);
18676
19022
  };
@@ -18678,7 +19024,7 @@
18678
19024
  }(Highcharts));
18679
19025
  (function (H, Axis) {
18680
19026
  /**
18681
- * (c) 2010-2017 Torstein Honsi
19027
+ * (c) 2010-2018 Torstein Honsi
18682
19028
  *
18683
19029
  * License: www.highcharts.com/license
18684
19030
  */
@@ -18749,6 +19095,9 @@
18749
19095
  * @return {Highcharts.PlotLineOrBand|undefined}
18750
19096
  */
18751
19097
  render: function () {
19098
+
19099
+ H.fireEvent(this, 'render');
19100
+
18752
19101
  var plotLine = this,
18753
19102
  axis = plotLine.axis,
18754
19103
  horiz = axis.horiz,
@@ -18974,7 +19323,7 @@
18974
19323
  * perimeter of the gauge.
18975
19324
  *
18976
19325
  * @type {Array<*>}
18977
- * @product highcharts highstock
19326
+ * @product highcharts highstock gantt
18978
19327
  * @apioption xAxis.plotBands
18979
19328
  */
18980
19329
 
@@ -18982,7 +19331,6 @@
18982
19331
  * Border color for the plot band. Also requires `borderWidth` to be set.
18983
19332
  *
18984
19333
  * @type {Highcharts.ColorString}
18985
- * @product highcharts highstock
18986
19334
  * @apioption xAxis.plotBands.borderColor
18987
19335
  */
18988
19336
 
@@ -18991,7 +19339,6 @@
18991
19339
  *
18992
19340
  * @type {number}
18993
19341
  * @default 0
18994
- * @product highcharts highstock
18995
19342
  * @apioption xAxis.plotBands.borderWidth
18996
19343
  */
18997
19344
 
@@ -19013,7 +19360,6 @@
19013
19360
  * Plot band on Y axis
19014
19361
  *
19015
19362
  * @type {Highcharts.ColorString}
19016
- * @product highcharts highstock
19017
19363
  * @apioption xAxis.plotBands.color
19018
19364
  */
19019
19365
 
@@ -19025,7 +19371,6 @@
19025
19371
  * Mouse events demonstrated
19026
19372
  *
19027
19373
  * @since 1.2
19028
- * @product highcharts highstock
19029
19374
  * @context PlotLineOrBand
19030
19375
  * @apioption xAxis.plotBands.events
19031
19376
  */
@@ -19041,7 +19386,6 @@
19041
19386
  * Plot band on Y axis
19042
19387
  *
19043
19388
  * @type {number}
19044
- * @product highcharts highstock
19045
19389
  * @apioption xAxis.plotBands.from
19046
19390
  */
19047
19391
 
@@ -19054,7 +19398,6 @@
19054
19398
  * Remove plot band by id
19055
19399
  *
19056
19400
  * @type {string}
19057
- * @product highcharts highstock
19058
19401
  * @apioption xAxis.plotBands.id
19059
19402
  */
19060
19403
 
@@ -19069,7 +19412,6 @@
19069
19412
  * Plot band on Y axis
19070
19413
  *
19071
19414
  * @type {number}
19072
- * @product highcharts highstock
19073
19415
  * @apioption xAxis.plotBands.to
19074
19416
  */
19075
19417
 
@@ -19088,14 +19430,13 @@
19088
19430
  *
19089
19431
  * @type {number}
19090
19432
  * @since 1.2
19091
- * @product highcharts highstock
19092
19433
  * @apioption xAxis.plotBands.zIndex
19093
19434
  */
19094
19435
 
19095
19436
  /**
19096
19437
  * Text labels for the plot bands
19097
19438
  *
19098
- * @product highcharts highstock
19439
+ * @product highcharts highstock gantt
19099
19440
  * @apioption xAxis.plotBands.label
19100
19441
  */
19101
19442
 
@@ -19111,7 +19452,6 @@
19111
19452
  * @type {string}
19112
19453
  * @default center
19113
19454
  * @since 2.1
19114
- * @product highcharts highstock
19115
19455
  * @apioption xAxis.plotBands.label.align
19116
19456
  */
19117
19457
 
@@ -19124,7 +19464,6 @@
19124
19464
  * @type {number}
19125
19465
  * @default 0
19126
19466
  * @since 2.1
19127
- * @product highcharts highstock
19128
19467
  * @apioption xAxis.plotBands.label.rotation
19129
19468
  */
19130
19469
 
@@ -19139,7 +19478,6 @@
19139
19478
  *
19140
19479
  * @type {Highcharts.CSSObject}
19141
19480
  * @since 2.1
19142
- * @product highcharts highstock
19143
19481
  * @apioption xAxis.plotBands.label.style
19144
19482
  */
19145
19483
 
@@ -19148,7 +19486,6 @@
19148
19486
  *
19149
19487
  * @type {string}
19150
19488
  * @since 2.1
19151
- * @product highcharts
19152
19489
  * @apioption xAxis.plotBands.label.text
19153
19490
  */
19154
19491
 
@@ -19163,7 +19500,6 @@
19163
19500
  *
19164
19501
  * @type {string}
19165
19502
  * @since 2.1
19166
- * @product highcharts highstock
19167
19503
  * @validvalue ["center", "left", "right"]
19168
19504
  * @apioption xAxis.plotBands.label.textAlign
19169
19505
  */
@@ -19175,7 +19511,6 @@
19175
19511
  * @type {boolean}
19176
19512
  * @default false
19177
19513
  * @since 3.0.3
19178
- * @product highcharts highstock
19179
19514
  * @apioption xAxis.plotBands.label.useHTML
19180
19515
  */
19181
19516
 
@@ -19191,7 +19526,6 @@
19191
19526
  * @type {string}
19192
19527
  * @default top
19193
19528
  * @since 2.1
19194
- * @product highcharts highstock
19195
19529
  * @validvalue ["bottom", "middle", "top"]
19196
19530
  * @apioption xAxis.plotBands.label.verticalAlign
19197
19531
  */
@@ -19207,7 +19541,6 @@
19207
19541
  *
19208
19542
  * @type {number}
19209
19543
  * @since 2.1
19210
- * @product highcharts highstock
19211
19544
  * @apioption xAxis.plotBands.label.x
19212
19545
  */
19213
19546
 
@@ -19222,7 +19555,6 @@
19222
19555
  *
19223
19556
  * @type {number}
19224
19557
  * @since 2.1
19225
- * @product highcharts highstock
19226
19558
  * @apioption xAxis.plotBands.label.y
19227
19559
  */
19228
19560
 
@@ -19234,7 +19566,7 @@
19234
19566
  * `.highcharts-plot-line` class in addition to the `className` option.
19235
19567
  *
19236
19568
  * @type {Array<*>}
19237
- * @product highcharts highstock
19569
+ * @product highcharts highstock gantt
19238
19570
  * @apioption xAxis.plotLines
19239
19571
  */
19240
19572
 
@@ -19256,7 +19588,6 @@
19256
19588
  * Plot line on Y axis
19257
19589
  *
19258
19590
  * @type {Highcharts.ColorString}
19259
- * @product highcharts highstock
19260
19591
  * @apioption xAxis.plotLines.color
19261
19592
  */
19262
19593
 
@@ -19274,7 +19605,6 @@
19274
19605
  * @type {string}
19275
19606
  * @default Solid
19276
19607
  * @since 1.2
19277
- * @product highcharts highstock
19278
19608
  * @validvalue ["Solid", "ShortDash", "ShortDot", "ShortDashDot",
19279
19609
  * "ShortDashDotDot", "Dot", "Dash" ,"LongDash", "DashDot",
19280
19610
  * "LongDashDot", "LongDashDotDot"]
@@ -19290,7 +19620,6 @@
19290
19620
  *
19291
19621
  * @type {*}
19292
19622
  * @since 1.2
19293
- * @product highcharts highstock
19294
19623
  * @context PlotLineOrBand
19295
19624
  * @apioption xAxis.plotLines.events
19296
19625
  */
@@ -19302,7 +19631,6 @@
19302
19631
  * Remove plot line by id
19303
19632
  *
19304
19633
  * @type {string}
19305
- * @product highcharts highstock
19306
19634
  * @apioption xAxis.plotLines.id
19307
19635
  */
19308
19636
 
@@ -19315,7 +19643,6 @@
19315
19643
  * Plot line on Y axis
19316
19644
  *
19317
19645
  * @type {number}
19318
- * @product highcharts highstock
19319
19646
  * @apioption xAxis.plotLines.value
19320
19647
  */
19321
19648
 
@@ -19328,7 +19655,6 @@
19328
19655
  * Plot line on Y axis
19329
19656
  *
19330
19657
  * @type {number}
19331
- * @product highcharts highstock
19332
19658
  * @apioption xAxis.plotLines.width
19333
19659
  */
19334
19660
 
@@ -19344,14 +19670,12 @@
19344
19670
  *
19345
19671
  * @type {number}
19346
19672
  * @since 1.2
19347
- * @product highcharts highstock
19348
19673
  * @apioption xAxis.plotLines.zIndex
19349
19674
  */
19350
19675
 
19351
19676
  /**
19352
19677
  * Text labels for the plot bands
19353
19678
  *
19354
- * @product highcharts highstock
19355
19679
  * @apioption xAxis.plotLines.label
19356
19680
  */
19357
19681
 
@@ -19367,7 +19691,6 @@
19367
19691
  * @type {string}
19368
19692
  * @default left
19369
19693
  * @since 2.1
19370
- * @product highcharts highstock
19371
19694
  * @validvalue ["center", "left", "right"]
19372
19695
  * @apioption xAxis.plotLines.label.align
19373
19696
  */
@@ -19381,7 +19704,6 @@
19381
19704
  *
19382
19705
  * @type {number}
19383
19706
  * @since 2.1
19384
- * @product highcharts highstock
19385
19707
  * @apioption xAxis.plotLines.label.rotation
19386
19708
  */
19387
19709
 
@@ -19396,7 +19718,6 @@
19396
19718
  *
19397
19719
  * @type {Highcharts.CSSObject}
19398
19720
  * @since 2.1
19399
- * @product highcharts highstock
19400
19721
  * @apioption xAxis.plotLines.label.style
19401
19722
  */
19402
19723
 
@@ -19405,7 +19726,6 @@
19405
19726
  *
19406
19727
  * @type {string}
19407
19728
  * @since 2.1
19408
- * @product highcharts
19409
19729
  * @apioption xAxis.plotLines.label.text
19410
19730
  */
19411
19731
 
@@ -19420,7 +19740,6 @@
19420
19740
  *
19421
19741
  * @type {string}
19422
19742
  * @since 2.1
19423
- * @product highcharts highstock
19424
19743
  * @apioption xAxis.plotLines.label.textAlign
19425
19744
  */
19426
19745
 
@@ -19431,7 +19750,6 @@
19431
19750
  * @type {boolean}
19432
19751
  * @default false
19433
19752
  * @since 3.0.3
19434
- * @product highcharts highstock
19435
19753
  * @apioption xAxis.plotLines.label.useHTML
19436
19754
  */
19437
19755
 
@@ -19446,7 +19764,6 @@
19446
19764
  * @default {highcharts} top
19447
19765
  * @default {highstock} top
19448
19766
  * @since 2.1
19449
- * @product highcharts highstock
19450
19767
  * @validvalue ["top", "middle", "bottom"]
19451
19768
  * @apioption xAxis.plotLines.label.verticalAlign
19452
19769
  */
@@ -19462,7 +19779,6 @@
19462
19779
  *
19463
19780
  * @type {number}
19464
19781
  * @since 2.1
19465
- * @product highcharts highstock
19466
19782
  * @apioption xAxis.plotLines.label.x
19467
19783
  */
19468
19784
 
@@ -19477,7 +19793,6 @@
19477
19793
  *
19478
19794
  * @type {number}
19479
19795
  * @since 2.1
19480
- * @product highcharts highstock
19481
19796
  * @apioption xAxis.plotLines.label.y
19482
19797
  */
19483
19798
 
@@ -19486,7 +19801,6 @@
19486
19801
  *
19487
19802
  * @type {Array<*>}
19488
19803
  * @extends xAxis.plotBands
19489
- * @product highcharts highstock
19490
19804
  * @apioption yAxis.plotBands
19491
19805
  */
19492
19806
 
@@ -19543,7 +19857,6 @@
19543
19857
  *
19544
19858
  * @type {Array<*>}
19545
19859
  * @extends xAxis.plotLines
19546
- * @product highcharts highstock
19547
19860
  * @apioption yAxis.plotLines
19548
19861
  */
19549
19862
 
@@ -19759,7 +20072,7 @@
19759
20072
  }(Highcharts, Axis));
19760
20073
  (function (H) {
19761
20074
  /**
19762
- * (c) 2010-2017 Torstein Honsi
20075
+ * (c) 2010-2018 Torstein Honsi
19763
20076
  *
19764
20077
  * License: www.highcharts.com/license
19765
20078
  */
@@ -20819,7 +21132,7 @@
20819
21132
  }
20820
21133
 
20821
21134
  if (n) {
20822
- format = dateTimeLabelFormats[n];
21135
+ format = time.resolveDTLFormat(dateTimeLabelFormats[n]).main;
20823
21136
  }
20824
21137
 
20825
21138
  return format;
@@ -20946,7 +21259,7 @@
20946
21259
  }(Highcharts));
20947
21260
  (function (Highcharts) {
20948
21261
  /**
20949
- * (c) 2010-2017 Torstein Honsi
21262
+ * (c) 2010-2018 Torstein Honsi
20950
21263
  *
20951
21264
  * License: www.highcharts.com/license
20952
21265
  */
@@ -21589,11 +21902,13 @@
21589
21902
  if (tooltip.shared && hoverPoints) { // #8284
21590
21903
  each(hoverPoints, function (point) {
21591
21904
  point.setState(point.state, true);
21592
- if (point.series.xAxis.crosshair) {
21593
- point.series.xAxis.drawCrosshair(null, point);
21594
- }
21595
- if (point.series.yAxis.crosshair) {
21596
- point.series.yAxis.drawCrosshair(null, point);
21905
+ if (point.series.isCartesian) {
21906
+ if (point.series.xAxis.crosshair) {
21907
+ point.series.xAxis.drawCrosshair(null, point);
21908
+ }
21909
+ if (point.series.yAxis.crosshair) {
21910
+ point.series.yAxis.drawCrosshair(null, point);
21911
+ }
21597
21912
  }
21598
21913
  });
21599
21914
  } else if (hoverPoint) { // #2500
@@ -22235,7 +22550,7 @@
22235
22550
  }(Highcharts));
22236
22551
  (function (H) {
22237
22552
  /**
22238
- * (c) 2010-2017 Torstein Honsi
22553
+ * (c) 2010-2018 Torstein Honsi
22239
22554
  *
22240
22555
  * License: www.highcharts.com/license
22241
22556
  */
@@ -22633,7 +22948,7 @@
22633
22948
  }(Highcharts));
22634
22949
  (function (H) {
22635
22950
  /**
22636
- * (c) 2010-2017 Torstein Honsi
22951
+ * (c) 2010-2018 Torstein Honsi
22637
22952
  *
22638
22953
  * License: www.highcharts.com/license
22639
22954
  */
@@ -22806,7 +23121,7 @@
22806
23121
  }(Highcharts));
22807
23122
  (function (Highcharts) {
22808
23123
  /**
22809
- * (c) 2010-2017 Torstein Honsi
23124
+ * (c) 2010-2018 Torstein Honsi
22810
23125
  *
22811
23126
  * License: www.highcharts.com/license
22812
23127
  */
@@ -23120,8 +23435,12 @@
23120
23435
  left: (alignAttr.translateX + item.checkboxOffset +
23121
23436
  checkbox.x - 20) + 'px',
23122
23437
  top: top + 'px',
23123
- display: top > translateY - 6 && top < translateY +
23124
- clipHeight - 6 ? '' : 'none'
23438
+ display: this.proximate || (
23439
+ top > translateY - 6 &&
23440
+ top < translateY + clipHeight - 6
23441
+ ) ?
23442
+ '' :
23443
+ 'none'
23125
23444
  });
23126
23445
  }
23127
23446
  }, this);
@@ -24088,7 +24407,7 @@
24088
24407
  }(Highcharts));
24089
24408
  (function (H) {
24090
24409
  /**
24091
- * (c) 2010-2017 Torstein Honsi
24410
+ * (c) 2010-2018 Torstein Honsi
24092
24411
  *
24093
24412
  * License: www.highcharts.com/license
24094
24413
  */
@@ -24184,25 +24503,13 @@
24184
24503
  * @class
24185
24504
  * @name Highcharts.Chart
24186
24505
  *
24187
- * @param {Highcharts.Options} options
24188
- * The chart options structure.
24189
- *
24190
- * @param {Highcharts.ChartCallbackFunction|undefined} [callback]
24191
- * Function to run when the chart has loaded and and all external images
24192
- * are loaded. Defining a
24193
- * {@link https://api.highcharts.com/highcharts/chart.events.load|chart.event.load}
24194
- * handler is equivalent.
24195
- *//**
24196
- * @class
24197
- * @name Highcharts.Chart
24198
- *
24199
- * @param {string|Highcharts.HTMLDOMElement} renderTo
24506
+ * @param {string|Highcharts.HTMLDOMElement} [renderTo]
24200
24507
  * The DOM element to render to, or its id.
24201
24508
  *
24202
24509
  * @param {Highcharts.Options} options
24203
24510
  * The chart options structure.
24204
24511
  *
24205
- * @param {Highcharts.ChartCallbackFunction|undefined} [callback]
24512
+ * @param {Highcharts.ChartCallbackFunction} [callback]
24206
24513
  * Function to run when the chart has loaded and and all external images
24207
24514
  * are loaded. Defining a
24208
24515
  * {@link https://api.highcharts.com/highcharts/chart.events.load|chart.event.load}
@@ -24228,27 +24535,13 @@
24228
24535
  *
24229
24536
  * @function Highcharts.chart
24230
24537
  *
24231
- * @param {Highcharts.Options} options
24232
- * The chart options structure.
24233
- *
24234
- * @param {Highcharts.ChartCallbackFunction|undefined} [callback]
24235
- * Function to run when the chart has loaded and and all external images
24236
- * are loaded. Defining a
24237
- * {@link https://api.highcharts.com/highcharts/chart.events.load|chart.event.load}
24238
- * handler is equivalent.
24239
- *
24240
- * @return {Highcharts.Chart}
24241
- * Returns the Chart object.
24242
- *//**
24243
- * @function Highcharts.chart
24244
- *
24245
- * @param {string|Highcharts.HTMLDOMElement} renderTo
24538
+ * @param {string|Highcharts.HTMLDOMElement} [renderTo]
24246
24539
  * The DOM element to render to, or its id.
24247
24540
  *
24248
24541
  * @param {Highcharts.Options} options
24249
24542
  * The chart options structure.
24250
24543
  *
24251
- * @param {Highcharts.ChartCallbackFunction|undefined} [callback]
24544
+ * @param {Highcharts.ChartCallbackFunction} [callback]
24252
24545
  * Function to run when the chart has loaded and and all external images
24253
24546
  * are loaded. Defining a
24254
24547
  * {@link https://api.highcharts.com/highcharts/chart.events.load|chart.event.load}
@@ -24301,7 +24594,7 @@
24301
24594
  * @param {Highcharts.Options} userOptions
24302
24595
  * Custom options.
24303
24596
  *
24304
- * @param {Function|undefined} [callback]
24597
+ * @param {Function} [callback]
24305
24598
  * Function to run when the chart has loaded and and all external
24306
24599
  * images are loaded.
24307
24600
  *
@@ -24540,7 +24833,7 @@
24540
24833
  *
24541
24834
  * @function Highcharts.Chart#redraw
24542
24835
  *
24543
- * @param {boolean|Highcharts.AnimationOptionsObject|undefined} [animation]
24836
+ * @param {boolean|Highcharts.AnimationOptionsObject} [animation]
24544
24837
  * If or how to apply animation to the redraw.
24545
24838
  *
24546
24839
  * @fires Highcharts.Chart#event:afterSetExtremes
@@ -24650,6 +24943,10 @@
24650
24943
  // set axes scales
24651
24944
  each(axes, function (axis) {
24652
24945
  axis.updateNames();
24946
+ // Update categories in a Gantt chart
24947
+ if (axis.updateYNames) {
24948
+ axis.updateYNames();
24949
+ }
24653
24950
  axis.setScale();
24654
24951
  });
24655
24952
  }
@@ -24963,7 +25260,7 @@
24963
25260
  * @private
24964
25261
  * @function Highcharts.Chart#layOutTitles
24965
25262
  *
24966
- * @param {boolean|undefined} [redraw=true]
25263
+ * @param {boolean} [redraw=true]
24967
25264
  */
24968
25265
  layOutTitles: function (redraw) {
24969
25266
  var titleOffset = 0,
@@ -25021,8 +25318,6 @@
25021
25318
  * {@link Chart.chartHeight}.
25022
25319
  *
25023
25320
  * @function Highcharts.Chart#getChartSize
25024
- *
25025
- * @return {void}
25026
25321
  */
25027
25322
  getChartSize: function () {
25028
25323
  var chart = this,
@@ -25286,7 +25581,7 @@
25286
25581
  * @private
25287
25582
  * @function Highcharts.Chart#getMargins
25288
25583
  *
25289
- * @param {boolean} skipAxes
25584
+ * @param {boolean} skipAxes
25290
25585
  *
25291
25586
  * @fires Highcharts.Chart#event:getMargins
25292
25587
  */
@@ -25364,9 +25659,9 @@
25364
25659
  *
25365
25660
  * @function Highcharts.Chart#reflow
25366
25661
  *
25367
- * @param {global.Event} e
25368
- * Event arguments. Used primarily when the function is called
25369
- * internally as a response to window resize.
25662
+ * @param {global.Event} e
25663
+ * Event arguments. Used primarily when the function is called
25664
+ * internally as a response to window resize.
25370
25665
  */
25371
25666
  reflow: function (e) {
25372
25667
  var chart = this,
@@ -25416,7 +25711,7 @@
25416
25711
  * @private
25417
25712
  * @function Highcharts.Chart#setReflow
25418
25713
  *
25419
- * @param {boolean} reflow
25714
+ * @param {boolean} reflow
25420
25715
  */
25421
25716
  setReflow: function (reflow) {
25422
25717
 
@@ -25460,19 +25755,19 @@
25460
25755
  *
25461
25756
  * @function Highcharts.Chart#setSize
25462
25757
  *
25463
- * @param {number|null|undefined} [width]
25464
- * The new pixel width of the chart. Since v4.2.6, the argument can
25465
- * be `undefined` in order to preserve the current value (when
25466
- * setting height only), or `null` to adapt to the width of the
25467
- * containing element.
25758
+ * @param {number|null} [width]
25759
+ * The new pixel width of the chart. Since v4.2.6, the argument can
25760
+ * be `undefined` in order to preserve the current value (when
25761
+ * setting height only), or `null` to adapt to the width of the
25762
+ * containing element.
25468
25763
  *
25469
- * @param {number|null|undefined} [height]
25470
- * The new pixel height of the chart. Since v4.2.6, the argument can
25471
- * be `undefined` in order to preserve the current value, or `null`
25472
- * in order to adapt to the height of the containing element.
25764
+ * @param {number|null} [height]
25765
+ * The new pixel height of the chart. Since v4.2.6, the argument can
25766
+ * be `undefined` in order to preserve the current value, or `null`
25767
+ * in order to adapt to the height of the containing element.
25473
25768
  *
25474
- * @param {Highcharts.AnimationOptionsObject|undefined} [animation=true]
25475
- * Whether and how to apply animation.
25769
+ * @param {Highcharts.AnimationOptionsObject} [animation=true]
25770
+ * Whether and how to apply animation.
25476
25771
  *
25477
25772
  * @fires Highcharts.Chart#event:endResize
25478
25773
  * @fires Highcharts.Chart#event:resize
@@ -25541,7 +25836,7 @@
25541
25836
  * @private
25542
25837
  * @function Highcharts.Chart#setChartSize
25543
25838
  *
25544
- * @param {boolean} skipAxes
25839
+ * @param {boolean} skipAxes
25545
25840
  *
25546
25841
  * @fires Highcharts.Chart#event:afterSetChartSize
25547
25842
  */
@@ -26027,8 +26322,8 @@
26027
26322
  *
26028
26323
  * @function Highcharts.Chart#addCredits
26029
26324
  *
26030
- * @param {Highcharts.CreditsOptions} options
26031
- * A configuration object for the new credits.
26325
+ * @param {Highcharts.CreditsOptions} options
26326
+ * A configuration object for the new credits.
26032
26327
  */
26033
26328
  addCredits: function (credits) {
26034
26329
  var chart = this;
@@ -26266,7 +26561,7 @@
26266
26561
  }(Highcharts));
26267
26562
  (function (Highcharts) {
26268
26563
  /**
26269
- * (c) 2010-2017 Torstein Honsi
26564
+ * (c) 2010-2018 Torstein Honsi
26270
26565
  *
26271
26566
  * License: www.highcharts.com/license
26272
26567
  */
@@ -26312,7 +26607,6 @@
26312
26607
 
26313
26608
  var Point,
26314
26609
  H = Highcharts,
26315
-
26316
26610
  each = H.each,
26317
26611
  extend = H.extend,
26318
26612
  erase = H.erase,
@@ -26321,6 +26615,8 @@
26321
26615
  isArray = H.isArray,
26322
26616
  isNumber = H.isNumber,
26323
26617
  pick = H.pick,
26618
+ uniqueKey = H.uniqueKey,
26619
+ defined = H.defined,
26324
26620
  removeEvent = H.removeEvent;
26325
26621
 
26326
26622
  /**
@@ -26374,6 +26670,9 @@
26374
26670
 
26375
26671
  point.applyOptions(options, x);
26376
26672
 
26673
+ // Add a unique ID to the point if none is assigned
26674
+ point.id = defined(point.id) ? point.id : uniqueKey();
26675
+
26377
26676
  if (series.options.colorByPoint) {
26378
26677
 
26379
26678
 
@@ -26445,6 +26744,9 @@
26445
26744
  if (options.group) {
26446
26745
  delete point.group;
26447
26746
  }
26747
+ if (options.dataLabels) {
26748
+ delete point.dataLabels;
26749
+ }
26448
26750
 
26449
26751
  /**
26450
26752
  * The y value of the point.
@@ -26684,8 +26986,8 @@
26684
26986
  point.onMouseOut();
26685
26987
  }
26686
26988
 
26687
- // Remove all events
26688
- if (point.graphic || point.dataLabel) {
26989
+ // Remove all events and elements
26990
+ if (point.graphic || point.dataLabel || point.dataLabels) {
26689
26991
  removeEvent(point);
26690
26992
  point.destroyElements();
26691
26993
  }
@@ -26722,6 +27024,23 @@
26722
27024
  point[prop] = point[prop].destroy();
26723
27025
  }
26724
27026
  }
27027
+ // Handle point.dataLabels and point.connectors
27028
+ if (point.dataLabels) {
27029
+ each(point.dataLabels, function (label) {
27030
+ if (label.element) {
27031
+ label.destroy();
27032
+ }
27033
+ });
27034
+ delete point.dataLabels;
27035
+ }
27036
+ if (point.connectors) {
27037
+ each(point.connectors, function (connector) {
27038
+ if (connector.element) {
27039
+ connector.destroy();
27040
+ }
27041
+ });
27042
+ delete point.connectors;
27043
+ }
26725
27044
  },
26726
27045
 
26727
27046
  /**
@@ -26901,7 +27220,7 @@
26901
27220
  }(Highcharts));
26902
27221
  (function (H) {
26903
27222
  /**
26904
- * (c) 2010-2017 Torstein Honsi
27223
+ * (c) 2010-2018 Torstein Honsi
26905
27224
  *
26906
27225
  * License: www.highcharts.com/license
26907
27226
  */
@@ -27317,7 +27636,7 @@
27317
27636
  * @type {boolean}
27318
27637
  * @default false
27319
27638
  * @since 4.1.6
27320
- * @product highcharts highstock
27639
+ * @product highcharts highstock gantt
27321
27640
  * @apioption plotOptions.series.getExtremesFromAll
27322
27641
  */
27323
27642
 
@@ -27342,6 +27661,7 @@
27342
27661
  * The line cap used for line ends and line joins on the graph.
27343
27662
  *
27344
27663
  * @type {string}
27664
+ * @default round
27345
27665
  * @product highcharts highstock
27346
27666
  * @validvalue ["round", "square"]
27347
27667
  * @apioption plotOptions.series.linecap
@@ -27358,7 +27678,7 @@
27358
27678
  *
27359
27679
  * @type {string}
27360
27680
  * @since 3.0
27361
- * @product highcharts highstock
27681
+ * @product highcharts highstock gantt
27362
27682
  * @apioption plotOptions.series.linkedTo
27363
27683
  */
27364
27684
 
@@ -27437,7 +27757,7 @@
27437
27757
  *
27438
27758
  * @type {number}
27439
27759
  * @default 1
27440
- * @product highcharts highstock
27760
+ * @product highcharts highstock gantt
27441
27761
  * @apioption plotOptions.series.pointInterval
27442
27762
  */
27443
27763
 
@@ -27459,7 +27779,7 @@
27459
27779
  *
27460
27780
  * @type {string}
27461
27781
  * @since 4.1.0
27462
- * @product highcharts highstock
27782
+ * @product highcharts highstock gantt
27463
27783
  * @validvalue ["day", "month", "year"]
27464
27784
  * @apioption plotOptions.series.pointIntervalUnit
27465
27785
  */
@@ -27484,6 +27804,10 @@
27484
27804
  * #plotOptions.series.pointRange) to work. For column series this is
27485
27805
  * computed, but for line-type series it needs to be set.
27486
27806
  *
27807
+ * For the `xrange` series type and gantt charts, if the Y axis is a
27808
+ * category axis, the `pointPlacement` applies to the Y axis rather than
27809
+ * the (typically datetime) X axis.
27810
+ *
27487
27811
  * Defaults to `undefined` in cartesian charts, `"between"` in polar charts.
27488
27812
  *
27489
27813
  * @see [xAxis.tickmarkPlacement](#xAxis.tickmarkPlacement)
@@ -27495,7 +27819,7 @@
27495
27819
  *
27496
27820
  * @type {string|number}
27497
27821
  * @since 2.3.0
27498
- * @product highcharts highstock
27822
+ * @product highcharts highstock gantt
27499
27823
  * @apioption plotOptions.series.pointPlacement
27500
27824
  */
27501
27825
 
@@ -27513,7 +27837,7 @@
27513
27837
  *
27514
27838
  * @type {number}
27515
27839
  * @default 0
27516
- * @product highcharts highstock
27840
+ * @product highcharts highstock gantt
27517
27841
  * @apioption plotOptions.series.pointStart
27518
27842
  */
27519
27843
 
@@ -28139,9 +28463,17 @@
28139
28463
  /**
28140
28464
  * Options for the series data labels, appearing next to each data point.
28141
28465
  *
28466
+ * Since v6.2.0, multiple data labels can be applied to each single point by
28467
+ * defining them as an array of configs.
28468
+ *
28142
28469
  * In styled mode, the data labels can be styled with the
28143
28470
  * `.highcharts-data-label-box` and `.highcharts-data-label` class names
28144
28471
  * ([see example](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/css/series-datalabels)).
28472
+ *
28473
+ * @sample highcharts/plotoptions/series-datalabels-enabled
28474
+ * Data labels enabled
28475
+ * @sample highcharts/plotoptions/series-datalabels-multiple
28476
+ * Multiple data labels on a bar series
28145
28477
  */
28146
28478
  dataLabels: {
28147
28479
 
@@ -28263,7 +28595,7 @@
28263
28595
  * @type {boolean}
28264
28596
  * @default true
28265
28597
  * @since 4.0
28266
- * @product highcharts highstock
28598
+ * @product highcharts highstock gantt
28267
28599
  * @apioption plotOptions.series.dataLabels.defer
28268
28600
  */
28269
28601
 
@@ -28725,7 +29057,7 @@
28725
29057
  * data checking and indexing in long series. Set it to `0` disable.
28726
29058
  *
28727
29059
  * @since 2.2
28728
- * @product highcharts highstock
29060
+ * @product highcharts highstock gantt
28729
29061
  */
28730
29062
  turboThreshold: 1000,
28731
29063
 
@@ -31840,7 +32172,7 @@
31840
32172
  }(Highcharts));
31841
32173
  (function (H) {
31842
32174
  /**
31843
- * (c) 2010-2017 Torstein Honsi
32175
+ * (c) 2010-2018 Torstein Honsi
31844
32176
  *
31845
32177
  * License: www.highcharts.com/license
31846
32178
  */
@@ -32326,7 +32658,9 @@
32326
32658
  });
32327
32659
 
32328
32660
  each(itemsForRemoval, function (item) {
32329
- item.remove(false);
32661
+ if (item.remove) {
32662
+ item.remove(false);
32663
+ }
32330
32664
  });
32331
32665
 
32332
32666
  if (updateAllAxes) {
@@ -32738,6 +33072,7 @@
32738
33072
 
32739
33073
  // Destroy elements
32740
33074
  series.destroy();
33075
+ series.remove = null; // Prevent from doing again (#9097)
32741
33076
 
32742
33077
  // Redraw
32743
33078
  chart.isDirtyLegend = chart.isDirtyBox = true;
@@ -33046,14 +33381,30 @@
33046
33381
  }(Highcharts));
33047
33382
  (function (H) {
33048
33383
  /**
33049
- * (c) 2010-2017 Torstein Honsi
33384
+ * (c) 2010-2018 Torstein Honsi
33050
33385
  *
33051
33386
  * License: www.highcharts.com/license
33052
33387
  */
33388
+
33389
+ /**
33390
+ * Adjusted width and x offset of the columns for grouping.
33391
+ *
33392
+ * @typedef Highcharts.ColumnMetricsObject
33393
+ *
33394
+ * @property {number} width
33395
+ * Width of the columns.
33396
+ *
33397
+ * @property {number} offset
33398
+ * Offset of the columns.
33399
+ */
33400
+
33401
+
33402
+
33053
33403
  var animObject = H.animObject,
33054
33404
  color = H.color,
33055
33405
  each = H.each,
33056
33406
  extend = H.extend,
33407
+ defined = H.defined,
33057
33408
  isNumber = H.isNumber,
33058
33409
  LegendSymbolMixin = H.LegendSymbolMixin,
33059
33410
  merge = H.merge,
@@ -33062,35 +33413,41 @@
33062
33413
  Series = H.Series,
33063
33414
  seriesType = H.seriesType,
33064
33415
  svg = H.svg;
33416
+
33065
33417
  /**
33066
33418
  * The column series type.
33067
33419
  *
33068
- * @constructor seriesTypes.column
33069
- * @augments Series
33420
+ * @private
33421
+ * @class
33422
+ * @name Highcharts.seriesTypes.column
33423
+ *
33424
+ * @augments Highcharts.Series
33070
33425
  */
33426
+ seriesType('column', 'line'
33071
33427
 
33072
33428
  /**
33073
33429
  * Column series display one column per value along an X axis.
33074
33430
  *
33075
- * @sample {highcharts} highcharts/demo/column-basic/ Column chart
33076
- * @sample {highstock} stock/demo/column/ Column chart
33431
+ * @sample {highcharts} highcharts/demo/column-basic/
33432
+ * Column chart
33433
+ * @sample {highstock} stock/demo/column/
33434
+ * Column chart
33077
33435
  *
33078
- * @extends {plotOptions.line}
33436
+ * @extends plotOptions.line
33437
+ * @excluding connectNulls, dashStyle, gapSize, gapUnit, linecap,
33438
+ * lineWidth, marker, connectEnds, step
33079
33439
  * @product highcharts highstock
33080
- * @excluding connectNulls,dashStyle,gapSize,gapUnit,linecap,lineWidth,
33081
- * marker,connectEnds,step
33082
33440
  * @optionparent plotOptions.column
33083
33441
  */
33084
- seriesType('column', 'line', {
33442
+ , {
33085
33443
 
33086
33444
  /**
33087
33445
  * The corner radius of the border surrounding each column or bar.
33088
33446
  *
33089
- * @type {Number}
33090
- * @sample {highcharts} highcharts/plotoptions/column-borderradius/
33091
- * Rounded columns
33092
- * @default 0
33093
- * @product highcharts highstock
33447
+ * @sample {highcharts} highcharts/plotoptions/column-borderradius/
33448
+ * Rounded columns
33449
+ *
33450
+ * @product highcharts highstock gantt
33094
33451
  */
33095
33452
  borderRadius: 0,
33096
33453
 
@@ -33104,15 +33461,17 @@
33104
33461
  * and instead this option gives the points individual color class names on
33105
33462
  * the form `highcharts-color-{n}`.
33106
33463
  *
33107
- * @type {Boolean}
33108
- * @see [series colors](#plotOptions.column.colors)
33109
- * @sample {highcharts} highcharts/plotoptions/column-colorbypoint-false/
33110
- * False by default
33111
- * @sample {highcharts} highcharts/plotoptions/column-colorbypoint-true/
33112
- * True
33464
+ * @see [series colors](#plotOptions.column.colors)
33465
+ *
33466
+ * @sample {highcharts} highcharts/plotoptions/column-colorbypoint-false/
33467
+ * False by default
33468
+ * @sample {highcharts} highcharts/plotoptions/column-colorbypoint-true/
33469
+ * True
33470
+ *
33471
+ * @type {boolean}
33113
33472
  * @default false
33114
33473
  * @since 2.0
33115
- * @product highcharts highstock
33474
+ * @product highcharts highstock gantt
33116
33475
  * @apioption plotOptions.column.colorByPoint
33117
33476
  */
33118
33477
 
@@ -33121,9 +33480,9 @@
33121
33480
  * of the global [colors](#colors) when [colorByPoint](
33122
33481
  * #plotOptions.column.colorByPoint) is true.
33123
33482
  *
33124
- * @type {Array<Color>}
33483
+ * @type {Array<Highcharts.ColorString>}
33125
33484
  * @since 3.0
33126
- * @product highcharts highstock
33485
+ * @product highcharts highstock gantt
33127
33486
  * @apioption plotOptions.column.colors
33128
33487
  */
33129
33488
 
@@ -33135,21 +33494,23 @@
33135
33494
  * to `false` may look better, even though each column is rendered
33136
33495
  * blurry.
33137
33496
  *
33138
- * @sample {highcharts} highcharts/plotoptions/column-crisp-false/
33139
- * Crisp is false
33497
+ * @sample {highcharts} highcharts/plotoptions/column-crisp-false/
33498
+ * Crisp is false
33499
+ *
33140
33500
  * @since 5.0.10
33141
- * @product highcharts highstock
33501
+ * @product highcharts highstock gantt
33142
33502
  */
33143
33503
  crisp: true,
33144
33504
 
33145
33505
  /**
33146
33506
  * Padding between each value groups, in x axis units.
33147
33507
  *
33148
- * @sample {highcharts} highcharts/plotoptions/column-grouppadding-default/
33149
- * 0.2 by default
33150
- * @sample {highcharts} highcharts/plotoptions/column-grouppadding-none/
33151
- * No group padding - all columns are evenly spaced
33152
- * @product highcharts highstock
33508
+ * @sample {highcharts} highcharts/plotoptions/column-grouppadding-default/
33509
+ * 0.2 by default
33510
+ * @sample {highcharts} highcharts/plotoptions/column-grouppadding-none/
33511
+ * No group padding - all columns are evenly spaced
33512
+ *
33513
+ * @product highcharts highstock gantt
33153
33514
  */
33154
33515
  groupPadding: 0.2,
33155
33516
 
@@ -33158,14 +33519,15 @@
33158
33519
  * of each other. Non-grouped columns will be laid out individually
33159
33520
  * and overlap each other.
33160
33521
  *
33161
- * @type {Boolean}
33162
- * @sample {highcharts} highcharts/plotoptions/column-grouping-false/
33163
- * Grouping disabled
33164
- * @sample {highstock} highcharts/plotoptions/column-grouping-false/
33165
- * Grouping disabled
33522
+ * @sample {highcharts} highcharts/plotoptions/column-grouping-false/
33523
+ * Grouping disabled
33524
+ * @sample {highstock} highcharts/plotoptions/column-grouping-false/
33525
+ * Grouping disabled
33526
+ *
33527
+ * @type {boolean}
33166
33528
  * @default true
33167
33529
  * @since 2.3.0
33168
- * @product highcharts highstock
33530
+ * @product highcharts highstock gantt
33169
33531
  * @apioption plotOptions.column.grouping
33170
33532
  */
33171
33533
 
@@ -33179,28 +33541,30 @@
33179
33541
  * of a bar in a bar chart. This prevents the columns from becoming
33180
33542
  * too wide when there is a small number of points in the chart.
33181
33543
  *
33182
- * @type {Number}
33183
- * @see [pointWidth](#plotOptions.column.pointWidth)
33184
- * @sample {highcharts} highcharts/plotoptions/column-maxpointwidth-20/
33185
- * Limited to 50
33186
- * @sample {highstock} highcharts/plotoptions/column-maxpointwidth-20/
33187
- * Limited to 50
33188
- * @default null
33544
+ * @see [pointWidth](#plotOptions.column.pointWidth)
33545
+ *
33546
+ * @sample {highcharts} highcharts/plotoptions/column-maxpointwidth-20/
33547
+ * Limited to 50
33548
+ * @sample {highstock} highcharts/plotoptions/column-maxpointwidth-20/
33549
+ * Limited to 50
33550
+ *
33551
+ * @type {number}
33189
33552
  * @since 4.1.8
33190
- * @product highcharts highstock
33553
+ * @product highcharts highstock gantt
33191
33554
  * @apioption plotOptions.column.maxPointWidth
33192
33555
  */
33193
33556
 
33194
33557
  /**
33195
33558
  * Padding between each column or bar, in x axis units.
33196
33559
  *
33197
- * @sample {highcharts} highcharts/plotoptions/column-pointpadding-default/
33198
- * 0.1 by default
33199
- * @sample {highcharts} highcharts/plotoptions/column-pointpadding-025/
33560
+ * @sample {highcharts} highcharts/plotoptions/column-pointpadding-default/
33561
+ * 0.1 by default
33562
+ * @sample {highcharts} highcharts/plotoptions/column-pointpadding-025/
33200
33563
  * 0.25
33201
- * @sample {highcharts} highcharts/plotoptions/column-pointpadding-none/
33202
- * 0 for tightly packed columns
33203
- * @product highcharts highstock
33564
+ * @sample {highcharts} highcharts/plotoptions/column-pointpadding-none/
33565
+ * 0 for tightly packed columns
33566
+ *
33567
+ * @product highcharts highstock gantt
33204
33568
  */
33205
33569
  pointPadding: 0.1,
33206
33570
 
@@ -33209,17 +33573,30 @@
33209
33573
  * `null`, the width is calculated from the `pointPadding` and
33210
33574
  * `groupPadding`.
33211
33575
  *
33212
- * @type {Number}
33213
- * @see [maxPointWidth](#plotOptions.column.maxPointWidth)
33214
- * @sample {highcharts} highcharts/plotoptions/column-pointwidth-20/
33215
- * 20px wide columns regardless of chart width or the amount
33216
- * of data points
33217
- * @default null
33576
+ * @see [maxPointWidth](#plotOptions.column.maxPointWidth)
33577
+ *
33578
+ * @sample {highcharts} highcharts/plotoptions/column-pointwidth-20/
33579
+ * 20px wide columns regardless of chart width or the amount of data
33580
+ * points
33581
+ *
33582
+ * @type {number}
33218
33583
  * @since 1.2.5
33219
- * @product highcharts highstock
33584
+ * @product highcharts highstock gantt
33220
33585
  * @apioption plotOptions.column.pointWidth
33221
33586
  */
33222
33587
 
33588
+ /**
33589
+ * A pixel value specifying a fixed width for the column or bar. Overrides
33590
+ * pointWidth on the series.
33591
+ *
33592
+ * @type {Number}
33593
+ * @see [series.pointWidth](#plotOptions.column.pointWidth)
33594
+ * @default undefined
33595
+ * @since 7.0.0
33596
+ * @product highcharts highstock gantt
33597
+ * @apioption series.column.data.pointWidth
33598
+ */
33599
+
33223
33600
  /**
33224
33601
  * The minimal height for a column or width for a bar. By default,
33225
33602
  * 0 values are not shown. To visualize a 0 (or close to zero) point,
@@ -33227,13 +33604,12 @@
33227
33604
  * column charts, minPointLength might not be respected for tightly
33228
33605
  * packed values.
33229
33606
  *
33230
- * @sample {highcharts}
33231
- * highcharts/plotoptions/column-minpointlength/
33232
- * Zero base value
33233
- * @sample {highcharts}
33234
- * highcharts/plotoptions/column-minpointlength-pos-and-neg/
33235
- * Positive and negative close to zero values
33236
- * @product highcharts highstock
33607
+ * @sample {highcharts} highcharts/plotoptions/column-minpointlength/
33608
+ * Zero base value
33609
+ * @sample {highcharts} highcharts/plotoptions/column-minpointlength-pos-and-neg/
33610
+ * Positive and negative close to zero values
33611
+ *
33612
+ * @product highcharts highstock gantt
33237
33613
  */
33238
33614
  minPointLength: 0,
33239
33615
 
@@ -33245,9 +33621,9 @@
33245
33621
  * On the other hand, when the series contains more points than the
33246
33622
  * crop threshold, the series data is cropped to only contain points
33247
33623
  * that fall within the plot area. The advantage of cropping away invisible
33248
- * points is to increase performance on large series. .
33624
+ * points is to increase performance on large series.
33249
33625
  *
33250
- * @product highcharts highstock
33626
+ * @product highcharts highstock gantt
33251
33627
  */
33252
33628
  cropThreshold: 50,
33253
33629
 
@@ -33261,12 +33637,13 @@
33261
33637
  * The default `null` means it is computed automatically, but this option
33262
33638
  * can be used to override the automatic value.
33263
33639
  *
33264
- * @type {Number}
33265
- * @sample {highcharts} highcharts/plotoptions/column-pointrange/
33266
- * Set the point range to one day on a data set with one week
33267
- * between the points
33640
+ * @sample {highcharts} highcharts/plotoptions/column-pointrange/
33641
+ * Set the point range to one day on a data set with one week
33642
+ * between the points
33643
+ *
33644
+ * @type {number|null}
33268
33645
  * @since 2.3
33269
- * @product highcharts highstock
33646
+ * @product highcharts highstock gantt
33270
33647
  */
33271
33648
  pointRange: null,
33272
33649
 
@@ -33277,40 +33654,55 @@
33277
33654
  * state options when a point is moused over or touched.
33278
33655
  *
33279
33656
  * @extends plotOptions.series.states.hover
33280
- * @excluding halo,lineWidth,lineWidthPlus,marker
33281
- * @product highcharts highstock
33657
+ * @excluding halo, lineWidth, lineWidthPlus, marker
33658
+ * @product highcharts highstock gantt
33282
33659
  */
33283
33660
  hover: {
33284
33661
 
33285
- /** @ignore-option */
33662
+ /**
33663
+ * @ignore-option
33664
+ */
33286
33665
  halo: false,
33287
33666
 
33288
33667
  /**
33289
33668
  * A specific border color for the hovered point. Defaults to
33290
33669
  * inherit the normal state border color.
33291
33670
  *
33292
- * @type {Color}
33293
- * @product highcharts
33671
+ * @type {Highcharts.ColorString}
33672
+ * @product highcharts gantt
33294
33673
  * @apioption plotOptions.column.states.hover.borderColor
33295
33674
  */
33296
33675
 
33297
33676
  /**
33298
33677
  * A specific color for the hovered point.
33299
33678
  *
33300
- * @type {Color}
33301
- * @default undefined
33302
- * @product highcharts
33679
+ * @type {Highcharts.ColorString}
33680
+ * @product highcharts gantt
33303
33681
  * @apioption plotOptions.column.states.hover.color
33304
33682
  */
33305
33683
 
33306
33684
 
33307
33685
  }
33686
+
33308
33687
 
33688
+
33309
33689
  },
33310
33690
 
33311
33691
  dataLabels: {
33692
+
33693
+ /**
33694
+ * @type {string|null}
33695
+ */
33312
33696
  align: null, // auto
33697
+
33698
+ /**
33699
+ * @type {string|null}
33700
+ */
33313
33701
  verticalAlign: null, // auto
33702
+
33703
+ /**
33704
+ * @type {number|null}
33705
+ */
33314
33706
  y: null
33315
33707
  },
33316
33708
 
@@ -33366,9 +33758,8 @@
33366
33758
  * Initialize the series. Extends the basic Series.init method by
33367
33759
  * marking other series of the same type as dirty.
33368
33760
  *
33369
- * @function #init
33370
- * @memberof seriesTypes.column
33371
- *
33761
+ * @private
33762
+ * @function Highcharts.seriesTypes.column#init
33372
33763
  */
33373
33764
  init: function () {
33374
33765
  Series.prototype.init.apply(this, arguments);
@@ -33390,6 +33781,11 @@
33390
33781
  /**
33391
33782
  * Return the width and x offset of the columns adjusted for grouping,
33392
33783
  * groupPadding, pointPadding, pointWidth etc.
33784
+ *
33785
+ * @private
33786
+ * @function Highcharts.seriesTypes.column#getColumnMetrics
33787
+ *
33788
+ * @return {Highcharts.ColumnMetricsObject}
33393
33789
  */
33394
33790
  getColumnMetrics: function () {
33395
33791
 
@@ -33480,6 +33876,19 @@
33480
33876
 
33481
33877
  /**
33482
33878
  * Make the columns crisp. The edges are rounded to the nearest full pixel.
33879
+ *
33880
+ * @private
33881
+ * @function Highcharts.seriesTypes.column#crispCol
33882
+ *
33883
+ * @param {number} x
33884
+ *
33885
+ * @param {number} y
33886
+ *
33887
+ * @param {number} w
33888
+ *
33889
+ * @param {number} h
33890
+ *
33891
+ * @return {*}
33483
33892
  */
33484
33893
  crispCol: function (x, y, w, h) {
33485
33894
  var chart = this.chart,
@@ -33525,6 +33934,9 @@
33525
33934
  /**
33526
33935
  * Translate each point to the plot area coordinate system and find shape
33527
33936
  * positions
33937
+ *
33938
+ * @private
33939
+ * @function Highcharts.seriesTypes.column#translate
33528
33940
  */
33529
33941
  translate: function () {
33530
33942
  var series = this,
@@ -33542,11 +33954,11 @@
33542
33954
  yAxis.getThreshold(threshold),
33543
33955
  minPointLength = pick(options.minPointLength, 5),
33544
33956
  metrics = series.getColumnMetrics(),
33545
- pointWidth = metrics.width,
33957
+ seriesPointWidth = metrics.width,
33546
33958
  // postprocessed for border width
33547
33959
  seriesBarW = series.barW =
33548
- Math.max(pointWidth, 1 + 2 * borderWidth),
33549
- pointXOffset = series.pointXOffset = metrics.offset;
33960
+ Math.max(seriesPointWidth, 1 + 2 * borderWidth),
33961
+ seriesXOffset = series.pointXOffset = metrics.offset;
33550
33962
 
33551
33963
  if (chart.inverted) {
33552
33964
  translatedThreshold -= 0.5; // #3355
@@ -33565,11 +33977,12 @@
33565
33977
  each(series.points, function (point) {
33566
33978
  var yBottom = pick(point.yBottom, translatedThreshold),
33567
33979
  safeDistance = 999 + Math.abs(yBottom),
33980
+ pointWidth = seriesPointWidth,
33568
33981
  plotY = Math.min(
33569
33982
  Math.max(-safeDistance, point.plotY),
33570
33983
  yAxis.len + safeDistance
33571
33984
  ), // Don't draw too far outside plot area (#1303, #2241, #4264)
33572
- barX = point.plotX + pointXOffset,
33985
+ barX = point.plotX + seriesXOffset,
33573
33986
  barW = seriesBarW,
33574
33987
  barY = Math.min(plotY, yBottom),
33575
33988
  up,
@@ -33599,6 +34012,13 @@
33599
34012
  translatedThreshold - (up ? minPointLength : 0);
33600
34013
  }
33601
34014
 
34015
+ // Handle point.options.pointWidth
34016
+ // TODO: Handle grouping/stacking as well. Calculate offset properly
34017
+ if (defined(point.options.pointWidth)) {
34018
+ pointWidth = barW = Math.ceil(point.options.pointWidth);
34019
+ barX -= Math.round((pointWidth - seriesPointWidth) / 2);
34020
+ }
34021
+
33602
34022
  // Cache for access in polar
33603
34023
  point.barX = barX;
33604
34024
  point.pointWidth = pointWidth;
@@ -33630,12 +34050,24 @@
33630
34050
 
33631
34051
  /**
33632
34052
  * Use a solid rectangle like the area series types
34053
+ *
34054
+ * @private
34055
+ * @function Highcharts.seriesTypes.column#drawLegendSymbol
34056
+ *
34057
+ * @param {Highcharts.Legend} legend
34058
+ * The legend object
34059
+ *
34060
+ * @param {Highcharts.Series|Highcharts.Point} item
34061
+ * The series (this) or point
33633
34062
  */
33634
34063
  drawLegendSymbol: LegendSymbolMixin.drawRectangle,
33635
34064
 
33636
34065
 
33637
34066
  /**
33638
34067
  * Columns have no graph
34068
+ *
34069
+ * @private
34070
+ * @function Highcharts.seriesTypes.column#drawGraph
33639
34071
  */
33640
34072
  drawGraph: function () {
33641
34073
  this.group[
@@ -33649,6 +34081,9 @@
33649
34081
  * Draw the columns. For bars, the series.group is rotated, so the same
33650
34082
  * coordinates apply for columns and bars. This method is inherited by
33651
34083
  * scatter series.
34084
+ *
34085
+ * @private
34086
+ * @function Highcharts.seriesTypes.column#drawPoints
33652
34087
  */
33653
34088
  drawPoints: function () {
33654
34089
  var series = this,
@@ -33698,8 +34133,13 @@
33698
34133
  },
33699
34134
 
33700
34135
  /**
33701
- * Animate the column heights one by one from zero
33702
- * @param {Boolean} init Whether to initialize the animation or run it
34136
+ * Animate the column heights one by one from zero.
34137
+ *
34138
+ * @private
34139
+ * @function Highcharts.seriesTypes.column#animate
34140
+ *
34141
+ * @param {boolean} init
34142
+ * Whether to initialize the animation or run it
33703
34143
  */
33704
34144
  animate: function (init) {
33705
34145
  var series = this,
@@ -33750,6 +34190,9 @@
33750
34190
 
33751
34191
  /**
33752
34192
  * Remove this series from the chart
34193
+ *
34194
+ * @private
34195
+ * @function Highcharts.seriesTypes.column#remove
33753
34196
  */
33754
34197
  remove: function () {
33755
34198
  var series = this,
@@ -33774,26 +34217,13 @@
33774
34217
  * A `column` series. If the [type](#series.column.type) option is
33775
34218
  * not specified, it is inherited from [chart.type](#chart.type).
33776
34219
  *
33777
- * @type {Object}
33778
34220
  * @extends series,plotOptions.column
33779
- * @excluding connectNulls,dashStyle,dataParser,dataURL,gapSize,gapUnit,linecap,
33780
- * lineWidth,marker,connectEnds,step
34221
+ * @excluding connectNulls, dashStyle, dataParser, dataURL, gapSize, gapUnit,
34222
+ * linecap, lineWidth, marker, connectEnds, step
33781
34223
  * @product highcharts highstock
33782
34224
  * @apioption series.column
33783
34225
  */
33784
34226
 
33785
- /**
33786
- * @excluding halo,lineWidth,lineWidthPlus,marker
33787
- * @product highcharts highstock
33788
- * @apioption series.column.states.hover
33789
- */
33790
-
33791
- /**
33792
- * @excluding halo,lineWidth,lineWidthPlus,marker
33793
- * @product highcharts highstock
33794
- * @apioption series.column.states.select
33795
- */
33796
-
33797
34227
  /**
33798
34228
  * An array of data points for the series. For the `column` series type,
33799
34229
  * points can be given in the following ways:
@@ -33839,19 +34269,20 @@
33839
34269
  * }]
33840
34270
  * ```
33841
34271
  *
33842
- * @type {Array<Object|Array|Number>}
34272
+ * @sample {highcharts} highcharts/chart/reflow-true/
34273
+ * Numerical values
34274
+ * @sample {highcharts} highcharts/series/data-array-of-arrays/
34275
+ * Arrays of numeric x and y
34276
+ * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
34277
+ * Arrays of datetime x and y
34278
+ * @sample {highcharts} highcharts/series/data-array-of-name-value/
34279
+ * Arrays of point.name and y
34280
+ * @sample {highcharts} highcharts/series/data-array-of-objects/
34281
+ * Config objects
34282
+ *
34283
+ * @type {Array<number|Array<number|string|Date>|*>}
33843
34284
  * @extends series.line.data
33844
34285
  * @excluding marker
33845
- * @sample {highcharts} highcharts/chart/reflow-true/
33846
- * Numerical values
33847
- * @sample {highcharts} highcharts/series/data-array-of-arrays/
33848
- * Arrays of numeric x and y
33849
- * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
33850
- * Arrays of datetime x and y
33851
- * @sample {highcharts} highcharts/series/data-array-of-name-value/
33852
- * Arrays of point.name and y
33853
- * @sample {highcharts} highcharts/series/data-array-of-objects/
33854
- * Config objects
33855
34286
  * @product highcharts highstock
33856
34287
  * @apioption series.column.data
33857
34288
  */
@@ -33862,10 +34293,10 @@
33862
34293
  * In styled mode, the border stroke can be set with the `.highcharts-point`
33863
34294
  * rule.
33864
34295
  *
33865
- * @type {Color}
33866
- * @sample {highcharts} highcharts/plotoptions/column-bordercolor/
33867
- * Dark gray border
33868
- * @default undefined
34296
+ * @sample {highcharts} highcharts/plotoptions/column-bordercolor/
34297
+ * Dark gray border
34298
+ *
34299
+ * @type {Highcharts.ColorString}
33869
34300
  * @product highcharts highstock
33870
34301
  * @apioption series.column.data.borderColor
33871
34302
  */
@@ -33876,50 +34307,80 @@
33876
34307
  * In styled mode, the stroke width can be set with the `.highcharts-point`
33877
34308
  * rule.
33878
34309
  *
33879
- * @type {Number}
33880
- * @sample {highcharts} highcharts/plotoptions/column-borderwidth/
33881
- * 2px black border
33882
- * @default undefined
34310
+ * @sample {highcharts} highcharts/plotoptions/column-borderwidth/
34311
+ * 2px black border
34312
+ *
34313
+ * @type {number}
33883
34314
  * @product highcharts highstock
33884
34315
  * @apioption series.column.data.borderWidth
33885
34316
  */
33886
34317
 
34318
+ /**
34319
+ * @excluding halo, lineWidth, lineWidthPlus, marker
34320
+ * @product highcharts highstock
34321
+ * @apioption series.column.states.hover
34322
+ */
34323
+
34324
+ /**
34325
+ * @excluding halo, lineWidth, lineWidthPlus, marker
34326
+ * @product highcharts highstock
34327
+ * @apioption series.column.states.select
34328
+ */
34329
+
33887
34330
  }(Highcharts));
33888
34331
  (function (H) {
33889
34332
  /**
33890
- * (c) 2010-2017 Torstein Honsi
34333
+ * (c) 2010-2018 Torstein Honsi
33891
34334
  *
33892
34335
  * License: www.highcharts.com/license
33893
34336
  */
34337
+
34338
+
34339
+
33894
34340
  var Series = H.Series,
33895
34341
  seriesType = H.seriesType;
33896
34342
 
33897
34343
  /**
33898
- * A scatter plot uses cartesian coordinates to display values for two variables
33899
- * for a set of data.
34344
+ * Scatter series type.
34345
+ *
34346
+ * @private
34347
+ * @class
34348
+ * @name Highcharts.seriesTypes.scatter
34349
+ *
34350
+ * @augments Highcharts.Series
34351
+ */
34352
+ seriesType('scatter', 'line'
34353
+
34354
+ /**
34355
+ * A scatter plot uses cartesian coordinates to display values for two
34356
+ * variables for a set of data.
34357
+ *
34358
+ * @sample {highcharts} highcharts/demo/scatter/
34359
+ * Scatter plot
33900
34360
  *
33901
- * @sample {highcharts} highcharts/demo/scatter/
33902
- * Scatter plot
33903
- * @extends {plotOptions.line}
34361
+ * @extends plotOptions.line
33904
34362
  * @excluding pointPlacement, shadow
33905
34363
  * @product highcharts highstock
33906
34364
  * @optionparent plotOptions.scatter
33907
34365
  */
33908
- seriesType('scatter', 'line', {
34366
+ , {
33909
34367
 
33910
34368
  /**
33911
34369
  * The width of the line connecting the data points.
33912
34370
  *
33913
- * @sample {highcharts} highcharts/plotoptions/scatter-linewidth-none/
33914
- * 0 by default
33915
- * @sample {highcharts} highcharts/plotoptions/scatter-linewidth-1/
33916
- * 1px
34371
+ * @sample {highcharts} highcharts/plotoptions/scatter-linewidth-none/
34372
+ * 0 by default
34373
+ * @sample {highcharts} highcharts/plotoptions/scatter-linewidth-1/
34374
+ * 1px
34375
+ *
33917
34376
  * @product highcharts highstock
33918
34377
  */
33919
34378
  lineWidth: 0,
33920
34379
 
33921
34380
  findNearestPointBy: 'xy',
34381
+
33922
34382
  marker: {
34383
+
33923
34384
  enabled: true // Overrides auto-enabling in line series (#3647)
33924
34385
  },
33925
34386
 
@@ -33932,7 +34393,7 @@
33932
34393
  * is false and `tooltip.shared` is false, the tooltip will be hidden
33933
34394
  * when moving the mouse between series.
33934
34395
  *
33935
- * @type {Boolean}
34396
+ * @type {boolean}
33936
34397
  * @default false
33937
34398
  * @product highcharts highstock
33938
34399
  * @apioption plotOptions.scatter.stickyTracking
@@ -33949,13 +34410,21 @@
33949
34410
  * @product highcharts highstock
33950
34411
  */
33951
34412
  tooltip: {
34413
+
33952
34414
 
33953
34415
 
34416
+ /**
34417
+ * @default ● {series.name}
34418
+ */
33954
34419
  headerFormat:
33955
34420
  '<span class="highcharts-color-{point.colorIndex}">\u25CF</span> ' +
33956
34421
  '<span class="highcharts-header"> {series.name}</span><br/>',
34422
+
33957
34423
 
33958
34424
 
34425
+ /**
34426
+ * @default x: {point.x} y: {point.y}
34427
+ */
33959
34428
  pointFormat: 'x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>'
33960
34429
  }
33961
34430
 
@@ -33966,6 +34435,11 @@
33966
34435
  noSharedTooltip: true,
33967
34436
  trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
33968
34437
  takeOrdinalPosition: false, // #2342
34438
+
34439
+ /**
34440
+ * @private
34441
+ * @function Highcharts.seriesTypes.scatter#drawGraph
34442
+ */
33969
34443
  drawGraph: function () {
33970
34444
  if (this.options.lineWidth) {
33971
34445
  Series.prototype.drawGraph.call(this);
@@ -33977,9 +34451,8 @@
33977
34451
  * A `scatter` series. If the [type](#series.scatter.type) option is
33978
34452
  * not specified, it is inherited from [chart.type](#chart.type).
33979
34453
  *
33980
- * @type {Object}
33981
34454
  * @extends series,plotOptions.scatter
33982
- * @excluding dataParser,dataURL
34455
+ * @excluding dataParser, dataURL
33983
34456
  * @product highcharts highstock
33984
34457
  * @apioption series.scatter
33985
34458
  */
@@ -34029,18 +34502,19 @@
34029
34502
  * }]
34030
34503
  * ```
34031
34504
  *
34032
- * @type {Array<Object|Array|Number>}
34505
+ * @sample {highcharts} highcharts/chart/reflow-true/
34506
+ * Numerical values
34507
+ * @sample {highcharts} highcharts/series/data-array-of-arrays/
34508
+ * Arrays of numeric x and y
34509
+ * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
34510
+ * Arrays of datetime x and y
34511
+ * @sample {highcharts} highcharts/series/data-array-of-name-value/
34512
+ * Arrays of point.name and y
34513
+ * @sample {highcharts} highcharts/series/data-array-of-objects/
34514
+ * Config objects
34515
+ *
34516
+ * @type {Array<number|Array<number>|*>}
34033
34517
  * @extends series.line.data
34034
- * @sample {highcharts} highcharts/chart/reflow-true/
34035
- * Numerical values
34036
- * @sample {highcharts} highcharts/series/data-array-of-arrays/
34037
- * Arrays of numeric x and y
34038
- * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
34039
- * Arrays of datetime x and y
34040
- * @sample {highcharts} highcharts/series/data-array-of-name-value/
34041
- * Arrays of point.name and y
34042
- * @sample {highcharts} highcharts/series/data-array-of-objects/
34043
- * Config objects
34044
34518
  * @product highcharts highstock
34045
34519
  * @apioption series.scatter.data
34046
34520
  */
@@ -34048,46 +34522,12 @@
34048
34522
  }(Highcharts));
34049
34523
  (function (H) {
34050
34524
  /**
34051
- * (c) 2010-2017 Torstein Honsi
34525
+ * (c) 2010-2018 Torstein Honsi
34052
34526
  *
34053
34527
  * License: www.highcharts.com/license
34054
34528
  */
34055
34529
 
34056
- /**
34057
- * A label box.
34058
- *
34059
- * @typedef {object} Highcharts.DataLabelBoxObject
34060
- *
34061
- * @property {number} align
34062
- *
34063
- * @property {number} pos
34064
- *
34065
- * @property {number} rank
34066
- *
34067
- * @property {number} size
34068
- *
34069
- * @property {number} target
34070
- */
34071
34530
 
34072
- /**
34073
- * Alignment offset for a label.
34074
- *
34075
- * @typedef {object} Highcharts.DataLabelAlignObject
34076
- *
34077
- * @property {number} x
34078
- *
34079
- * @property {number} y
34080
- */
34081
-
34082
- /**
34083
- * Label position for a pie slice.
34084
- *
34085
- * @typedef {Array<number|string>} Highcharts.DataLabelPiePosObject
34086
- *
34087
- * @property {number} x
34088
- *
34089
- * @property {number} y
34090
- */
34091
34531
 
34092
34532
  var addEvent = H.addEvent,
34093
34533
  arrayMax = H.arrayMax,
@@ -34103,8 +34543,9 @@
34103
34543
  Series = H.Series,
34104
34544
  seriesTypes = H.seriesTypes,
34105
34545
  some = H.some,
34106
- stableSort = H.stableSort;
34107
-
34546
+ stableSort = H.stableSort,
34547
+ isArray = H.isArray,
34548
+ splat = H.splat;
34108
34549
 
34109
34550
  /**
34110
34551
  * General distribution algorithm for distributing labels of differing size
@@ -34113,15 +34554,14 @@
34113
34554
  * close as possible to their targets, skipping the lowest ranked labels if
34114
34555
  * necessary.
34115
34556
  *
34557
+ * @private
34116
34558
  * @function Highcharts.distribute
34117
34559
  *
34118
- * @param {Array<Highcharts.DataLabelBoxObject>} boxes
34119
- *
34120
- * @param {number} len
34560
+ * @param {Array<object>} boxes
34121
34561
  *
34122
- * @param {number} maxDistance
34562
+ * @param {number} len
34123
34563
  *
34124
- * @return {void}
34564
+ * @param {number} maxDistance
34125
34565
  */
34126
34566
  H.distribute = function (boxes, len, maxDistance) {
34127
34567
 
@@ -34267,25 +34707,21 @@
34267
34707
  /**
34268
34708
  * Draw the data labels
34269
34709
  *
34710
+ * @private
34270
34711
  * @function Highcharts.Series#drawDataLabels
34271
34712
  *
34272
- * @return {void}
34273
- *
34274
- * @todo
34275
- * Make events official: Fires the event `afterDrawDataLabels`.
34713
+ * @fires Highcharts.Series#event:afterDrawDataLabels
34276
34714
  */
34277
34715
  Series.prototype.drawDataLabels = function () {
34278
34716
  var series = this,
34279
34717
  chart = series.chart,
34280
34718
  seriesOptions = series.options,
34281
- options = seriesOptions.dataLabels,
34719
+ seriesDlOptions = seriesOptions.dataLabels,
34282
34720
  points = series.points,
34283
34721
  pointOptions,
34284
- generalOptions,
34285
34722
  hasRendered = series.hasRendered || 0,
34286
- str,
34287
34723
  dataLabelsGroup,
34288
- defer = pick(options.defer, !!seriesOptions.animation),
34724
+ defer = pick(seriesDlOptions.defer, !!seriesOptions.animation),
34289
34725
  renderer = chart.renderer;
34290
34726
 
34291
34727
  /*
@@ -34315,19 +34751,59 @@
34315
34751
  return true;
34316
34752
  }
34317
34753
 
34318
- if (options.enabled || series._hasPointLabels) {
34319
-
34320
- // Process default alignment of data labels for columns
34321
- if (series.dlProcessOptions) {
34322
- series.dlProcessOptions(options);
34754
+ /*
34755
+ * Merge two objects that can be arrays. If one of them is an array, the
34756
+ * other is merged into each element. If both are arrays, each element is
34757
+ * merged by index. If neither are arrays, we use normal merge.
34758
+ */
34759
+ function mergeArrays(one, two) {
34760
+ var res = [],
34761
+ i;
34762
+ if (isArray(one) && !isArray(two)) {
34763
+ res = map(one, function (el) {
34764
+ return merge(el, two);
34765
+ });
34766
+ } else if (isArray(two) && !isArray(one)) {
34767
+ res = map(two, function (el) {
34768
+ return merge(one, el);
34769
+ });
34770
+ } else if (!isArray(one) && !isArray(two)) {
34771
+ res = merge(one, two);
34772
+ } else {
34773
+ i = Math.max(one.length, two.length);
34774
+ while (i--) {
34775
+ res[i] = merge(one[i], two[i]);
34776
+ }
34323
34777
  }
34778
+ return res;
34779
+ }
34780
+
34781
+
34782
+ // Merge in plotOptions.dataLabels for series
34783
+ seriesDlOptions = mergeArrays(
34784
+ mergeArrays(
34785
+ chart.options.plotOptions &&
34786
+ chart.options.plotOptions.series &&
34787
+ chart.options.plotOptions.series.dataLabels,
34788
+ chart.options.plotOptions &&
34789
+ chart.options.plotOptions[series.type] &&
34790
+ chart.options.plotOptions[series.type].dataLabels
34791
+ ),
34792
+ seriesDlOptions
34793
+ );
34794
+
34795
+ if (
34796
+ isArray(seriesDlOptions) ||
34797
+ seriesDlOptions.enabled ||
34798
+ series._hasPointLabels
34799
+ ) {
34324
34800
 
34325
34801
  // Create a separate group for the data labels to avoid rotation
34326
34802
  dataLabelsGroup = series.plotGroup(
34327
34803
  'dataLabelsGroup',
34328
34804
  'data-labels',
34329
34805
  defer && !hasRendered ? 'hidden' : 'visible', // #5133
34330
- options.zIndex || 6
34806
+ seriesDlOptions.zIndex || 6
34331
34807
  );
34332
34808
 
34333
34809
  if (defer) {
@@ -34345,120 +34821,161 @@
34345
34821
  }
34346
34822
 
34347
34823
  // Make the labels for each point
34348
- generalOptions = options;
34349
34824
  each(points, function (point) {
34350
- var enabled,
34351
- dataLabel = point.dataLabel,
34352
- labelConfig,
34353
- attr,
34354
- rotation,
34355
- connector = point.connector,
34356
- isNew = !dataLabel,
34357
- style,
34358
- formatString;
34359
34825
 
34360
- // Determine if each data label is enabled
34826
+ // Merge in series options for the point.
34361
34827
  // @note dataLabelAttribs (like pointAttribs) would eradicate
34362
34828
  // the need for dlOptions, and simplify the section below.
34363
- pointOptions = point.dlOptions || // dlOptions is used in treemaps
34364
- (point.options && point.options.dataLabels);
34365
- enabled = pick(
34366
- pointOptions && pointOptions.enabled,
34367
- generalOptions.enabled
34368
- ) && !point.isNull; // #2282, #4641, #7112
34369
-
34370
- if (enabled) {
34371
- enabled = applyFilter(point, pointOptions || options) === true;
34372
- }
34373
-
34374
- if (enabled) {
34375
- // Create individual options structure that can be extended
34376
- // without affecting others
34377
- options = merge(generalOptions, pointOptions);
34378
- labelConfig = point.getLabelConfig();
34379
- formatString = (
34380
- options[point.formatPrefix + 'Format'] ||
34381
- options.format
34382
- );
34829
+ pointOptions = splat(
34830
+ mergeArrays(
34831
+ seriesDlOptions,
34832
+ point.dlOptions || // dlOptions is used in treemaps
34833
+ (point.options && point.options.dataLabels)
34834
+ )
34835
+ );
34383
34836
 
34384
- str = defined(formatString) ?
34385
- format(formatString, labelConfig, chart.time) :
34386
- (
34387
- options[point.formatPrefix + 'Formatter'] ||
34388
- options.formatter
34389
- ).call(labelConfig, options);
34837
+ // Handle each individual data label for this point
34838
+ each(pointOptions, function (labelOptions, i) {
34839
+ // Options for one datalabel
34840
+ var labelEnabled = labelOptions.enabled &&
34841
+ !point.isNull && // #2282, #4641, #7112
34842
+ applyFilter(point, labelOptions),
34843
+ labelConfig,
34844
+ formatString,
34845
+ labelText,
34846
+ style,
34847
+ rotation,
34848
+ attr,
34849
+ dataLabel = point.dataLabels ? point.dataLabels[i] :
34850
+ point.dataLabel,
34851
+ connector = point.connectors ? point.connectors[i] :
34852
+ point.connector,
34853
+ isNew = !dataLabel;
34854
+
34855
+ if (labelEnabled) {
34856
+ // Create individual options structure that can be extended
34857
+ // without affecting others
34858
+ labelConfig = point.getLabelConfig();
34859
+ formatString = (
34860
+ labelOptions[point.formatPrefix + 'Format'] ||
34861
+ labelOptions.format
34862
+ );
34390
34863
 
34391
- style = options.style;
34392
- rotation = options.rotation;
34393
-
34864
+ labelText = defined(formatString) ?
34865
+ format(formatString, labelConfig, chart.time) :
34866
+ (
34867
+ labelOptions[point.formatPrefix + 'Formatter'] ||
34868
+ labelOptions.formatter
34869
+ ).call(labelConfig, labelOptions);
34394
34870
 
34395
- attr = {
34871
+ style = labelOptions.style;
34872
+ rotation = labelOptions.rotation;
34396
34873
 
34397
- r: options.borderRadius || 0,
34398
- rotation: rotation,
34399
- padding: options.padding,
34400
- zIndex: 1
34401
- };
34402
34874
 
34403
- // Remove unused attributes (#947)
34404
- H.objectEach(attr, function (val, name) {
34405
- if (val === undefined) {
34406
- delete attr[name];
34875
+ attr = {
34876
+
34877
+ r: labelOptions.borderRadius || 0,
34878
+ rotation: rotation,
34879
+ padding: labelOptions.padding,
34880
+ zIndex: 1
34881
+ };
34882
+
34883
+ // Remove unused attributes (#947)
34884
+ H.objectEach(attr, function (val, name) {
34885
+ if (val === undefined) {
34886
+ delete attr[name];
34887
+ }
34888
+ });
34889
+ }
34890
+
34891
+ // If the point is outside the plot area, destroy it. #678, #820
34892
+ if (dataLabel && (!labelEnabled || !defined(labelText))) {
34893
+ point.dataLabel = point.dataLabel.destroy();
34894
+ if (point.dataLabels) {
34895
+ // Remove point.dataLabels if this was the last one
34896
+ if (point.dataLabels.length === 1) {
34897
+ delete point.dataLabels;
34898
+ } else {
34899
+ delete point.dataLabels[i];
34900
+ }
34407
34901
  }
34408
- });
34409
- }
34410
- // If the point is outside the plot area, destroy it. #678, #820
34411
- if (dataLabel && (!enabled || !defined(str))) {
34412
- point.dataLabel = dataLabel = dataLabel.destroy();
34413
- if (connector) {
34414
- point.connector = connector.destroy();
34415
- }
34416
- // Individual labels are disabled if the are explicitly disabled
34417
- // in the point options, or if they fall outside the plot area.
34418
- } else if (enabled && defined(str)) {
34419
- // create new label
34420
- if (!dataLabel) {
34421
- dataLabel = point.dataLabel = rotation ?
34422
-
34423
- renderer
34424
- .text( // labels don't rotate
34425
- str,
34902
+ if (!i) {
34903
+ delete point.dataLabel;
34904
+ }
34905
+ if (connector) {
34906
+ point.connector = point.connector.destroy();
34907
+ if (point.connectors) {
34908
+ // Remove point.connectors if this was the last one
34909
+ if (point.connectors.length === 1) {
34910
+ delete point.connectors;
34911
+ } else {
34912
+ delete point.connectors[i];
34913
+ }
34914
+ }
34915
+ }
34916
+
34917
+ // Individual labels are disabled if the are explicitly disabled
34918
+ // in the point options, or if they fall outside the plot area.
34919
+ } else if (labelEnabled && defined(labelText)) {
34920
+
34921
+ if (!dataLabel) {
34922
+ // Create new label element
34923
+ point.dataLabels = point.dataLabels || [];
34924
+ dataLabel = point.dataLabels[i] = rotation ?
34925
+
34926
+ // Labels don't rotate, use text element
34927
+ renderer.text(labelText, 0, -9999)
34928
+ .addClass('highcharts-data-label') :
34929
+
34930
+ // We can use label
34931
+ renderer.label(
34932
+ labelText,
34426
34933
  0,
34427
34934
  -9999,
34428
- options.useHTML
34429
- )
34430
- .addClass('highcharts-data-label') :
34935
+ labelOptions.shape,
34936
+ null,
34937
+ null,
34938
+ labelOptions.useHTML,
34939
+ null,
34940
+ 'data-label'
34941
+ );
34431
34942
 
34432
- renderer.label(
34433
- str,
34434
- 0,
34435
- -9999,
34436
- options.shape,
34437
- null,
34438
- null,
34439
- options.useHTML,
34440
- null,
34441
- 'data-label'
34943
+ // Store for backwards compatibility
34944
+ if (!i) {
34945
+ point.dataLabel = dataLabel;
34946
+ }
34947
+
34948
+ dataLabel.addClass(
34949
+ ' highcharts-data-label-color-' + point.colorIndex +
34950
+ ' ' + (labelOptions.className || '') +
34951
+ ( // #3398
34952
+ labelOptions.useHTML ?
34953
+ ' highcharts-tracker' :
34954
+ ''
34955
+ )
34442
34956
  );
34957
+ } else {
34958
+ // Use old element and just update text
34959
+ attr.text = labelText;
34960
+ }
34443
34961
 
34444
- dataLabel.addClass(
34445
- ' highcharts-data-label-color-' + point.colorIndex +
34446
- ' ' + (options.className || '') +
34447
- (options.useHTML ? ' highcharts-tracker' : '') // #3398
34448
- );
34449
- } else {
34450
- attr.text = str;
34451
- }
34452
- dataLabel.attr(attr);
34453
-
34962
+ // Store data label options for later access
34963
+ dataLabel.options = labelOptions;
34964
+
34965
+ dataLabel.attr(attr);
34966
+
34967
+
34968
+ if (!dataLabel.added) {
34969
+ dataLabel.add(dataLabelsGroup);
34970
+ }
34454
34971
 
34455
- if (!dataLabel.added) {
34456
- dataLabel.add(dataLabelsGroup);
34972
+ // Now the data label is created and placed at 0,0, so we
34973
+ // need to align it
34974
+ series.alignDataLabel(
34975
+ point, dataLabel, labelOptions, null, isNew
34976
+ );
34457
34977
  }
34458
- // Now the data label is created and placed at 0,0, so we need
34459
- // to align it
34460
- series.alignDataLabel(point, dataLabel, options, null, isNew);
34461
- }
34978
+ });
34462
34979
  });
34463
34980
  }
34464
34981
 
@@ -34468,19 +34985,18 @@
34468
34985
  /**
34469
34986
  * Align each individual data label.
34470
34987
  *
34988
+ * @private
34471
34989
  * @function Highcharts.Series#alignDataLabel
34472
34990
  *
34473
- * @param {Highcharts.Point} point
34991
+ * @param {Highcharts.Point} point
34474
34992
  *
34475
- * @param {Highcharts.SVGElement} dataLabel
34993
+ * @param {Highcharts.SVGElement} dataLabel
34476
34994
  *
34477
- * @param {Highcharts.PlotSeriesDataLabelsOptions} options
34995
+ * @param {Highcharts.PlotSeriesDataLabelsOptions} options
34478
34996
  *
34479
- * @param {Highcharts.BBoxObject} alignTo
34997
+ * @param {Highcharts.BBoxObject} alignTo
34480
34998
  *
34481
- * @param {boolean} isNew
34482
- *
34483
- * @return {void}
34999
+ * @param {boolean} isNew
34484
35000
  */
34485
35001
  Series.prototype.alignDataLabel = function (
34486
35002
  point,
@@ -34627,17 +35143,18 @@
34627
35143
  * If data labels fall partly outside the plot area, align them back in, in a
34628
35144
  * way that doesn't hide the point.
34629
35145
  *
35146
+ * @private
34630
35147
  * @function Highcharts.Series#justifyDataLabel
34631
35148
  *
34632
- * @param {Highcharts.SVGElement} dataLabel
35149
+ * @param {Highcharts.SVGElement} dataLabel
34633
35150
  *
34634
- * @param {Highcharts.PlotSeriesDataLabelsOptions} options
35151
+ * @param {Highcharts.PlotSeriesDataLabelsOptions} options
34635
35152
  *
34636
- * @param {Highcharts.DataLabelAlignObject} alignAttr
35153
+ * @param {*} alignAttr
34637
35154
  *
34638
- * @param {Highcharts.BBoxObject} bBox
35155
+ * @param {Highcharts.BBoxObject} bBox
34639
35156
  *
34640
- * @param {boolean} isNew
35157
+ * @param {boolean} isNew
34641
35158
  *
34642
35159
  * @return {boolean}
34643
35160
  */
@@ -34712,9 +35229,8 @@
34712
35229
  /**
34713
35230
  * Override the base drawDataLabels method by pie specific functionality
34714
35231
  *
35232
+ * @private
34715
35233
  * @function Highcharts.seriesTypes.pie#drawDataLabels
34716
- *
34717
- * @return {void}
34718
35234
  */
34719
35235
  seriesTypes.pie.prototype.drawDataLabels = function () {
34720
35236
  var series = this,
@@ -34793,6 +35309,12 @@
34793
35309
 
34794
35310
  } else {
34795
35311
  point.dataLabel = point.dataLabel.destroy();
35312
+ // Workaround to make pies destroy multiple datalabels
35313
+ // correctly. This logic needs rewriting to support multiple
35314
+ // datalabels fully.
35315
+ if (point.dataLabels && point.dataLabels.length === 1) {
35316
+ delete point.dataLabels;
35317
+ }
34796
35318
  }
34797
35319
  }
34798
35320
  });
@@ -35029,9 +35551,10 @@
35029
35551
  * Extendable method for getting the path of the connector between the data
35030
35552
  * label and the pie slice.
35031
35553
  *
35554
+ * @private
35032
35555
  * @function Highcharts.seriesTypes.pie#connectorPath
35033
35556
  *
35034
- * @param {Highcharts.DataLabelPiePosObject} labelPos
35557
+ * @param {*} labelPos
35035
35558
  *
35036
35559
  * @return {Highcharts.PathObject}
35037
35560
  */
@@ -35063,9 +35586,8 @@
35063
35586
  * Perform the final placement of the data labels after we have verified
35064
35587
  * that they fall within the plot area.
35065
35588
  *
35589
+ * @private
35066
35590
  * @function Highcharts.seriesTypes.pie#placeDataLabels
35067
- *
35068
- * @return {void}
35069
35591
  */
35070
35592
  seriesTypes.pie.prototype.placeDataLabels = function () {
35071
35593
  each(this.points, function (point) {
@@ -35109,9 +35631,10 @@
35109
35631
  * translation and data label positioning to keep them inside the plot area.
35110
35632
  * Returns true when data labels are ready to draw.
35111
35633
  *
35634
+ * @private
35112
35635
  * @function Highcharts.seriesTypes.pie#verifyDataLabelOverflow
35113
35636
  *
35114
- * @param {boolean} overflow
35637
+ * @param {boolean} overflow
35115
35638
  *
35116
35639
  * @return {boolean}
35117
35640
  */
@@ -35189,19 +35712,18 @@
35189
35712
  * Override the basic data label alignment by adjusting for the position of
35190
35713
  * the column.
35191
35714
  *
35715
+ * @private
35192
35716
  * @function Highcharts.seriesTypes.column#alignDataLabel
35193
35717
  *
35194
- * @param {Highcharts.Point} point
35195
- *
35196
- * @param {Highcharts.SVGElement} dataLabel
35718
+ * @param {Highcharts.Point} point
35197
35719
  *
35198
- * @param {Highcharts.PlotSeriesDataLabelsOptions} options
35720
+ * @param {Highcharts.SVGElement} dataLabel
35199
35721
  *
35200
- * @param {Highcharts.BBoxObject} alignTo
35722
+ * @param {Highcharts.PlotSeriesDataLabelsOptions} options
35201
35723
  *
35202
- * @param {boolean} isNew
35724
+ * @param {Highcharts.BBoxObject} alignTo
35203
35725
  *
35204
- * @return {void}
35726
+ * @param {boolean} isNew
35205
35727
  */
35206
35728
  seriesTypes.column.prototype.alignDataLabel = function (
35207
35729
  point,
@@ -35280,7 +35802,7 @@
35280
35802
 
35281
35803
  // If label was justified and we have contrast, set it:
35282
35804
  if (point.isLabelJustified && point.contrastColor) {
35283
- point.dataLabel.css({
35805
+ dataLabel.css({
35284
35806
  color: point.contrastColor
35285
35807
  });
35286
35808
  }
@@ -35290,18 +35812,21 @@
35290
35812
  }(Highcharts));
35291
35813
  (function (H) {
35292
35814
  /**
35293
- * (c) 2009-2017 Torstein Honsi
35815
+ * (c) 2009-2018 Torstein Honsi
35294
35816
  *
35295
35817
  * License: www.highcharts.com/license
35296
35818
  */
35297
- /**
35819
+
35820
+
35821
+
35822
+ /*
35298
35823
  * Highcharts module to hide overlapping data labels. This module is included in
35299
35824
  * Highcharts.
35300
- *
35301
- * @ignore
35302
35825
  */
35826
+
35303
35827
  var Chart = H.Chart,
35304
35828
  each = H.each,
35829
+ isArray = H.isArray,
35305
35830
  objectEach = H.objectEach,
35306
35831
  pick = H.pick,
35307
35832
  addEvent = H.addEvent;
@@ -35330,25 +35855,32 @@
35330
35855
  });
35331
35856
 
35332
35857
  each(this.series || [], function (series) {
35333
- var dlOptions = series.options.dataLabels,
35334
- // Range series have two collections
35335
- collections = series.dataLabelCollections || ['dataLabel'];
35858
+ var dlOptions = series.options.dataLabels;
35336
35859
 
35337
35860
  if (
35338
- (dlOptions.enabled || series._hasPointLabels) &&
35339
- !dlOptions.allowOverlap &&
35340
- series.visible
35861
+ series.visible &&
35862
+ !(dlOptions.enabled === false && !series._hasPointLabels)
35341
35863
  ) { // #3866
35342
- each(collections, function (coll) {
35343
- each(series.points, function (point) {
35344
- if (point[coll] && point.visible) { // #7815
35345
- point[coll].labelrank = pick(
35864
+ each(series.points, function (point) {
35865
+ if (point.visible) {
35866
+ var dataLabels = (
35867
+ isArray(point.dataLabels) ?
35868
+ point.dataLabels :
35869
+ (point.dataLabel ? [point.dataLabel] : [])
35870
+ );
35871
+ each(dataLabels, function (label) {
35872
+ var options = label.options;
35873
+ label.labelrank = pick(
35874
+ options.labelrank,
35346
35875
  point.labelrank,
35347
35876
  point.shapeArgs && point.shapeArgs.height
35348
35877
  ); // #4118
35349
- labels.push(point[coll]);
35350
- }
35351
- });
35878
+
35879
+ if (!options.allowOverlap) {
35880
+ labels.push(label);
35881
+ }
35882
+ });
35883
+ }
35352
35884
  });
35353
35885
  }
35354
35886
  });
@@ -35359,6 +35891,11 @@
35359
35891
  /**
35360
35892
  * Hide overlapping labels. Labels are moved and faded in and out on zoom to
35361
35893
  * provide a smooth visual imression.
35894
+ *
35895
+ * @private
35896
+ * @function Highcharts.Chart#hideOverlappingLabels
35897
+ *
35898
+ * @param {Array<Highcharts.SVGElement>} labels
35362
35899
  */
35363
35900
  Chart.prototype.hideOverlappingLabels = function (labels) {
35364
35901
 
@@ -35390,7 +35927,7 @@
35390
35927
  parent,
35391
35928
  bBox,
35392
35929
  // Substract the padding if no background or border (#4333)
35393
- padding = 2 * (label.box ? 0 : (label.padding || 0)),
35930
+ padding = label.box ? 0 : (label.padding || 0),
35394
35931
  lineHeightCorrection = 0;
35395
35932
 
35396
35933
  if (
@@ -35415,10 +35952,11 @@
35415
35952
  .fontMetrics(null, label.element).h;
35416
35953
  }
35417
35954
  return {
35418
- x: pos.x + (parent.translateX || 0),
35419
- y: pos.y + (parent.translateY || 0) - lineHeightCorrection,
35420
- width: label.width - padding,
35421
- height: label.height - padding
35955
+ x: pos.x + (parent.translateX || 0) + padding,
35956
+ y: pos.y + (parent.translateY || 0) + padding -
35957
+ lineHeightCorrection,
35958
+ width: label.width - 2 * padding,
35959
+ height: label.height - 2 * padding
35422
35960
  };
35423
35961
 
35424
35962
  }
@@ -35522,10 +36060,13 @@
35522
36060
  }(Highcharts));
35523
36061
  (function (H) {
35524
36062
  /**
35525
- * (c) 2010-2017 Torstein Honsi
36063
+ * (c) 2010-2018 Torstein Honsi
35526
36064
  *
35527
36065
  * License: www.highcharts.com/license
35528
36066
  */
36067
+
36068
+
36069
+
35529
36070
  var addEvent = H.addEvent,
35530
36071
  Chart = H.Chart,
35531
36072
  createElement = H.createElement,
@@ -35550,12 +36091,18 @@
35550
36091
  /**
35551
36092
  * TrackerMixin for points and graphs.
35552
36093
  *
35553
- * @ignore
36094
+ * @private
36095
+ * @mixin Highcharts.TrackerMixin
35554
36096
  */
35555
36097
  TrackerMixin = H.TrackerMixin = {
35556
36098
 
35557
36099
  /**
35558
36100
  * Draw the tracker for a point.
36101
+ *
36102
+ * @private
36103
+ * @function Highcharts.TrackerMixin.drawTrackerPoint
36104
+ *
36105
+ * @fires Highcharts.Series#event:afterDrawTracker
35559
36106
  */
35560
36107
  drawTrackerPoint: function () {
35561
36108
  var series = this,
@@ -35612,6 +36159,11 @@
35612
36159
  * track mouse events on the graph or points. For the line type charts
35613
36160
  * the tracker uses the same graphPath, but with a greater stroke width
35614
36161
  * for better control.
36162
+ *
36163
+ * @private
36164
+ * @function Highcharts.TrackerMixin.drawTrackerGraph
36165
+ *
36166
+ * @fires Highcharts.Series#event:afterDrawTracker
35615
36167
  */
35616
36168
  drawTrackerGraph: function () {
35617
36169
  var series = this,
@@ -35716,28 +36268,53 @@
35716
36268
  /* End TrackerMixin */
35717
36269
 
35718
36270
 
35719
- /**
36271
+ /*
35720
36272
  * Add tracking event listener to the series group, so the point graphics
35721
36273
  * themselves act as trackers
35722
36274
  */
35723
36275
 
35724
36276
  if (seriesTypes.column) {
36277
+ /**
36278
+ * @private
36279
+ * @borrows Highcharts.TrackerMixin.drawTrackerPoint as Highcharts.seriesTypes.column#drawTracker
36280
+ */
35725
36281
  seriesTypes.column.prototype.drawTracker = TrackerMixin.drawTrackerPoint;
35726
36282
  }
35727
36283
 
35728
36284
  if (seriesTypes.pie) {
36285
+ /**
36286
+ * @private
36287
+ * @borrows Highcharts.TrackerMixin.drawTrackerPoint as Highcharts.seriesTypes.pie#drawTracker
36288
+ */
35729
36289
  seriesTypes.pie.prototype.drawTracker = TrackerMixin.drawTrackerPoint;
35730
36290
  }
35731
36291
 
35732
36292
  if (seriesTypes.scatter) {
36293
+ /**
36294
+ * @private
36295
+ * @borrows Highcharts.TrackerMixin.drawTrackerPoint as Highcharts.seriesTypes.scatter#drawTracker
36296
+ */
35733
36297
  seriesTypes.scatter.prototype.drawTracker = TrackerMixin.drawTrackerPoint;
35734
36298
  }
35735
36299
 
35736
- /*
35737
- * Extend Legend for item events
35738
- */
36300
+
36301
+
36302
+ // Extend Legend for item events.
35739
36303
  extend(Legend.prototype, {
35740
36304
 
36305
+ /**
36306
+ * @private
36307
+ * @function Highcharts.Legend#setItemEvents
36308
+ *
36309
+ * @param {Highcharts.Point|Highcharts.Series} item
36310
+ *
36311
+ * @param {Highcharts.SVGElement} legendItem
36312
+ *
36313
+ * @param {boolean} [useHTML=false]
36314
+ *
36315
+ * @fires Highcharts.Point#event:legendItemClick
36316
+ * @fires Highcharts.Series#event:legendItemClick
36317
+ */
35741
36318
  setItemEvents: function (item, legendItem, useHTML) {
35742
36319
  var legend = this,
35743
36320
  boxWrapper = legend.chart.renderer.boxWrapper,
@@ -35793,6 +36370,14 @@
35793
36370
  });
35794
36371
  },
35795
36372
 
36373
+ /**
36374
+ * @private
36375
+ * @function Highcharts.Legend#createCheckboxForItem
36376
+ *
36377
+ * @param {Highcharts.Point|Highcharts.Series} item
36378
+ *
36379
+ * @fires Highcharts.Series#event:checkboxClick
36380
+ */
35796
36381
  createCheckboxForItem: function (item) {
35797
36382
  var legend = this;
35798
36383
 
@@ -35820,19 +36405,16 @@
35820
36405
  }
35821
36406
  });
35822
36407
 
35823
-
35824
-
35825
-
35826
-
35827
- /*
35828
- * Extend the Chart object with interaction
35829
- */
35830
-
36408
+ // Extend the Chart object with interaction.
35831
36409
  extend(Chart.prototype, /** @lends Chart.prototype */ {
36410
+
35832
36411
  /**
35833
36412
  * Display the zoom button.
35834
36413
  *
35835
36414
  * @private
36415
+ * @function Highcharts.Chart#showResetZoom
36416
+ *
36417
+ * @fires Highcharts.Chart#event:beforeShowResetZoom
35836
36418
  */
35837
36419
  showResetZoom: function () {
35838
36420
  var chart = this,
@@ -35869,6 +36451,10 @@
35869
36451
  /**
35870
36452
  * Zoom the chart out after a user has zoomed in. See also
35871
36453
  * [Axis.setExtremes](/class-reference/Highcharts.Axis#setExtremes).
36454
+ *
36455
+ * @function Highcharts.Chart#zoomOut
36456
+ *
36457
+ * @fires Highcharts.Chart#event:selection
35872
36458
  */
35873
36459
  zoomOut: function () {
35874
36460
  fireEvent(this, 'selection', { resetSelection: true }, this.zoom);
@@ -35876,9 +36462,11 @@
35876
36462
 
35877
36463
  /**
35878
36464
  * Zoom into a given portion of the chart given by axis coordinates.
35879
- * @param {Object} event
35880
36465
  *
35881
36466
  * @private
36467
+ * @function Highcharts.Chart#zoom
36468
+ *
36469
+ * @param {Highcharts.SelectEventObject} event
35882
36470
  */
35883
36471
  zoom: function (event) {
35884
36472
  var chart = this,
@@ -35936,6 +36524,11 @@
35936
36524
  * compared to the first chartX position in the dragging operation.
35937
36525
  *
35938
36526
  * @private
36527
+ * @function Highcharts.Chart#pan
36528
+ *
36529
+ * @param {Highcharts.PointerEventObject} e
36530
+ *
36531
+ * @param {string} panning
35939
36532
  */
35940
36533
  pan: function (e, panning) {
35941
36534
 
@@ -36028,24 +36621,13 @@
36028
36621
  }
36029
36622
  });
36030
36623
 
36031
- /*
36032
- * Extend the Point object with interaction
36033
- */
36624
+ // Extend the Point object with interaction
36034
36625
  extend(Point.prototype, /** @lends Highcharts.Point.prototype */ {
36626
+
36035
36627
  /**
36036
36628
  * Toggle the selection status of a point.
36037
- * @param {Boolean} [selected]
36038
- * When `true`, the point is selected. When `false`, the point is
36039
- * unselected. When `null` or `undefined`, the selection state is
36040
- * toggled.
36041
- * @param {Boolean} [accumulate=false]
36042
- * When `true`, the selection is added to other selected points.
36043
- * When `false`, other selected points are deselected. Internally in
36044
- * Highcharts, when {@link http://api.highcharts.com/highcharts/plotOptions.series.allowPointSelect|allowPointSelect}
36045
- * is `true`, selected points are accumulated on Control, Shift or
36046
- * Cmd clicking the point.
36047
- *
36048
- * @see Highcharts.Chart#getSelectedPoints
36629
+ *
36630
+ * @see Highcharts.Chart#getSelectedPoints
36049
36631
  *
36050
36632
  * @sample highcharts/members/point-select/
36051
36633
  * Select a point from a button
@@ -36053,6 +36635,24 @@
36053
36635
  * Select a range of points through a drag selection
36054
36636
  * @sample maps/series/data-id/
36055
36637
  * Select a point in Highmaps
36638
+ *
36639
+ * @function Highcharts.Point#select
36640
+ *
36641
+ * @param {boolean} [selected]
36642
+ * When `true`, the point is selected. When `false`, the point is
36643
+ * unselected. When `null` or `undefined`, the selection state is
36644
+ * toggled.
36645
+ *
36646
+ * @param {boolean} [accumulate=false]
36647
+ * When `true`, the selection is added to other selected points.
36648
+ * When `false`, other selected points are deselected. Internally in
36649
+ * Highcharts, when
36650
+ * {@link http://api.highcharts.com/highcharts/plotOptions.series.allowPointSelect|allowPointSelect}
36651
+ * is `true`, selected points are accumulated on Control, Shift or
36652
+ * Cmd clicking the point.
36653
+ *
36654
+ * @fires Highcharts.Point#event:select
36655
+ * @fires Highcharts.Point#event:unselect
36056
36656
  */
36057
36657
  select: function (selected, accumulate) {
36058
36658
  var point = this,
@@ -36069,11 +36669,12 @@
36069
36669
 
36070
36670
  /**
36071
36671
  * Whether the point is selected or not.
36672
+ *
36072
36673
  * @see Point#select
36073
36674
  * @see Chart#getSelectedPoints
36074
- * @memberof Point
36075
- * @name selected
36076
- * @type {Boolean}
36675
+ *
36676
+ * @name Highcharts.Point#selected
36677
+ * @type {boolean}
36077
36678
  */
36078
36679
  point.selected = point.options.selected = selected;
36079
36680
  series.options.data[inArray(point, series.data)] =
@@ -36103,7 +36704,10 @@
36103
36704
  * Runs on mouse over the point. Called internally from mouse and touch
36104
36705
  * events.
36105
36706
  *
36106
- * @param {Object} e The event arguments
36707
+ * @function Highcharts.Point#onMouseOver
36708
+ *
36709
+ * @param {Highcharts.PointerEventObject} e
36710
+ * The event arguments.
36107
36711
  */
36108
36712
  onMouseOver: function (e) {
36109
36713
  var point = this,
@@ -36120,6 +36724,10 @@
36120
36724
  /**
36121
36725
  * Runs on mouse out from the point. Called internally from mouse and touch
36122
36726
  * events.
36727
+ *
36728
+ * @function Highcharts.Point#onMouseOut
36729
+ *
36730
+ * @fires Highcharts.Point#event:mouseOut
36123
36731
  */
36124
36732
  onMouseOut: function () {
36125
36733
  var point = this,
@@ -36136,6 +36744,7 @@
36136
36744
  * demand, to save processing time on hovering.
36137
36745
  *
36138
36746
  * @private
36747
+ * @function Highcharts.Point#importEvents
36139
36748
  */
36140
36749
  importEvents: function () {
36141
36750
  if (!this.hasImportedEvents) {
@@ -36155,9 +36764,17 @@
36155
36764
 
36156
36765
  /**
36157
36766
  * Set the point's state.
36158
- * @param {String} [state]
36159
- * The new state, can be one of `''` (an empty string), `hover` or
36160
- * `select`.
36767
+ *
36768
+ * @function Highcharts.Point#setState
36769
+ *
36770
+ * @param {string} [state]
36771
+ * The new state, can be one of `''` (an empty string), `hover` or
36772
+ * `select`.
36773
+ *
36774
+ * @param {boolean} [move]
36775
+ * State for animation.
36776
+ *
36777
+ * @fires Highcharts.Point#event:afterSetState
36161
36778
  */
36162
36779
  setState: function (state, move) {
36163
36780
  var point = this,
@@ -36334,9 +36951,14 @@
36334
36951
  /**
36335
36952
  * Get the path definition for the halo, which is usually a shadow-like
36336
36953
  * circle around the currently hovered point.
36337
- * @param {Number} size
36338
- * The radius of the circular halo.
36339
- * @return {Array} The path definition
36954
+ *
36955
+ * @function Highcharts.Point#haloPath
36956
+ *
36957
+ * @param {number} size
36958
+ * The radius of the circular halo.
36959
+ *
36960
+ * @return {Highcharts.SVGPathArray}
36961
+ * The path definition.
36340
36962
  */
36341
36963
  haloPath: function (size) {
36342
36964
  var series = this.series,
@@ -36351,13 +36973,15 @@
36351
36973
  }
36352
36974
  });
36353
36975
 
36354
- /*
36355
- * Extend the Series object with interaction
36356
- */
36357
-
36976
+ // Extend the Series object with interaction
36358
36977
  extend(Series.prototype, /** @lends Highcharts.Series.prototype */ {
36978
+
36359
36979
  /**
36360
36980
  * Runs on mouse over the series graphical items.
36981
+ *
36982
+ * @function Highcharts.Series#onMouseOver
36983
+ *
36984
+ * @fires Highcharts.Series#event:mouseOver
36361
36985
  */
36362
36986
  onMouseOver: function () {
36363
36987
  var series = this,
@@ -36382,6 +37006,10 @@
36382
37006
 
36383
37007
  /**
36384
37008
  * Runs on mouse out of the series graphical items.
37009
+ *
37010
+ * @function Highcharts.Series#onMouseOut
37011
+ *
37012
+ * @fires Highcharts.Series#event:mouseOut
36385
37013
  */
36386
37014
  onMouseOut: function () {
36387
37015
  // trigger the event only if listeners exist
@@ -36423,9 +37051,10 @@
36423
37051
  * operations, but it can also be called directly to visually
36424
37052
  * highlight a series.
36425
37053
  *
36426
- * @param {String} [state]
36427
- * Can be either `hover` or undefined to set to normal
36428
- * state.
37054
+ * @function Highcharts.Series#setState
37055
+ *
37056
+ * @param {string} [state]
37057
+ * Can be either `hover` or undefined to set to normal state.
36429
37058
  */
36430
37059
  setState: function (state) {
36431
37060
  var series = this,
@@ -36461,19 +37090,26 @@
36461
37090
  series.state = state;
36462
37091
 
36463
37092
 
37093
+
36464
37094
  }
36465
37095
  },
36466
37096
 
36467
37097
  /**
36468
37098
  * Show or hide the series.
36469
37099
  *
36470
- * @param {Boolean} [visible]
36471
- * True to show the series, false to hide. If undefined, the
36472
- * visibility is toggled.
36473
- * @param {Boolean} [redraw=true]
36474
- * Whether to redraw the chart after the series is altered. If doing
36475
- * more operations on the chart, it is a good idea to set redraw to
36476
- * false and call {@link Chart#redraw|chart.redraw()} after.
37100
+ * @function Highcharts.Series#setVisible
37101
+ *
37102
+ * @param {boolean} [visible]
37103
+ * True to show the series, false to hide. If undefined, the
37104
+ * visibility is toggled.
37105
+ *
37106
+ * @param {boolean} [redraw=true]
37107
+ * Whether to redraw the chart after the series is altered. If doing
37108
+ * more operations on the chart, it is a good idea to set redraw to
37109
+ * false and call {@link Chart#redraw|chart.redraw()} after.
37110
+ *
37111
+ * @fires Highcharts.Series#event:hide
37112
+ * @fires Highcharts.Series#event:show
36477
37113
  */
36478
37114
  setVisible: function (vis, redraw) {
36479
37115
  var series = this,
@@ -36551,6 +37187,10 @@
36551
37187
  *
36552
37188
  * @sample highcharts/members/series-hide/
36553
37189
  * Toggle visibility from a button
37190
+ *
37191
+ * @function Highcharts.Series#show
37192
+ *
37193
+ * @fires Highcharts.Series#event:show
36554
37194
  */
36555
37195
  show: function () {
36556
37196
  this.setVisible(true);
@@ -36564,6 +37204,10 @@
36564
37204
  *
36565
37205
  * @sample highcharts/members/series-hide/
36566
37206
  * Toggle visibility from a button
37207
+ *
37208
+ * @function Highcharts.Series#hide
37209
+ *
37210
+ * @fires Highcharts.Series#event:hide
36567
37211
  */
36568
37212
  hide: function () {
36569
37213
  this.setVisible(false);
@@ -36571,17 +37215,24 @@
36571
37215
 
36572
37216
 
36573
37217
  /**
36574
- * Select or unselect the series. This means its {@link
36575
- * Highcharts.Series.selected|selected} property is set, the checkbox in the
36576
- * legend is toggled and when selected, the series is returned by the
36577
- * {@link Highcharts.Chart#getSelectedSeries} function.
36578
- *
36579
- * @param {Boolean} [selected]
36580
- * True to select the series, false to unselect. If undefined, the
36581
- * selection state is toggled.
37218
+ * Select or unselect the series. This means its
37219
+ * {@link Highcharts.Series.selected|selected}
37220
+ * property is set, the checkbox in the legend is toggled and when selected,
37221
+ * the series is returned by the
37222
+ * {@link Highcharts.Chart#getSelectedSeries}
37223
+ * function.
36582
37224
  *
36583
37225
  * @sample highcharts/members/series-select/
36584
37226
  * Select a series from a button
37227
+ *
37228
+ * @function Highcharts.Series#select
37229
+ *
37230
+ * @param {boolean} [selected]
37231
+ * True to select the series, false to unselect. If undefined, the
37232
+ * selection state is toggled.
37233
+ *
37234
+ * @fires Highcharts.Series#event:select
37235
+ * @fires Highcharts.Series#event:unselect
36585
37236
  */
36586
37237
  select: function (selected) {
36587
37238
  var series = this;
@@ -36597,16 +37248,33 @@
36597
37248
  fireEvent(series, selected ? 'select' : 'unselect');
36598
37249
  },
36599
37250
 
37251
+ /**
37252
+ * @private
37253
+ * @borrows Highcharts.TrackerMixin.drawTrackerGraph as Highcharts.Series#drawTracker
37254
+ */
36600
37255
  drawTracker: TrackerMixin.drawTrackerGraph
36601
37256
  });
36602
37257
 
36603
37258
  }(Highcharts));
36604
37259
  (function (H) {
36605
37260
  /**
36606
- * (c) 2010-2017 Torstein Honsi
37261
+ * (c) 2010-2018 Torstein Honsi
36607
37262
  *
36608
37263
  * License: www.highcharts.com/license
36609
37264
  */
37265
+
37266
+ /**
37267
+ * A callback function to gain complete control on when the responsive rule
37268
+ * applies.
37269
+ *
37270
+ * @callback Highcharts.ResponsiveCallbackFunction
37271
+ *
37272
+ * @return {boolean}
37273
+ * Return `true` if it applies.
37274
+ */
37275
+
37276
+
37277
+
36610
37278
  var Chart = H.Chart,
36611
37279
  each = H.each,
36612
37280
  inArray = H.inArray,
@@ -36615,16 +37283,20 @@
36615
37283
  pick = H.pick,
36616
37284
  splat = H.splat;
36617
37285
 
36618
-
36619
37286
  /**
36620
37287
  * Allows setting a set of rules to apply for different screen or chart
36621
37288
  * sizes. Each rule specifies additional chart options.
36622
37289
  *
36623
- * @sample {highstock} stock/demo/responsive/ Stock chart
36624
- * @sample highcharts/responsive/axis/ Axis
36625
- * @sample highcharts/responsive/legend/ Legend
36626
- * @sample highcharts/responsive/classname/ Class name
36627
- * @since 5.0.0
37290
+ * @sample {highstock} stock/demo/responsive/
37291
+ * Stock chart
37292
+ * @sample highcharts/responsive/axis/
37293
+ * Axis
37294
+ * @sample highcharts/responsive/legend/
37295
+ * Legend
37296
+ * @sample highcharts/responsive/classname/
37297
+ * Class name
37298
+ *
37299
+ * @since 5.0.0
36628
37300
  * @apioption responsive
36629
37301
  */
36630
37302
 
@@ -36632,11 +37304,15 @@
36632
37304
  * A set of rules for responsive settings. The rules are executed from
36633
37305
  * the top down.
36634
37306
  *
36635
- * @type {Array<Object>}
36636
- * @sample {highcharts} highcharts/responsive/axis/ Axis changes
36637
- * @sample {highstock} highcharts/responsive/axis/ Axis changes
36638
- * @sample {highmaps} highcharts/responsive/axis/ Axis changes
36639
- * @since 5.0.0
37307
+ * @sample {highcharts} highcharts/responsive/axis/
37308
+ * Axis changes
37309
+ * @sample {highstock} highcharts/responsive/axis/
37310
+ * Axis changes
37311
+ * @sample {highmaps} highcharts/responsive/axis/
37312
+ * Axis changes
37313
+ *
37314
+ * @type {Array<*>}
37315
+ * @since 5.0.0
36640
37316
  * @apioption responsive.rules
36641
37317
  */
36642
37318
 
@@ -36653,20 +37329,24 @@
36653
37329
  * with two series items without an `id`, will cause the existing chart's
36654
37330
  * two series to be updated with respective options.
36655
37331
  *
36656
- * @type {Object}
36657
- * @sample {highstock} stock/demo/responsive/ Stock chart
36658
- * @sample highcharts/responsive/axis/ Axis
36659
- * @sample highcharts/responsive/legend/ Legend
36660
- * @sample highcharts/responsive/classname/ Class name
36661
- * @since 5.0.0
37332
+ * @sample {highstock} stock/demo/responsive/
37333
+ * Stock chart
37334
+ * @sample highcharts/responsive/axis/
37335
+ * Axis
37336
+ * @sample highcharts/responsive/legend/
37337
+ * Legend
37338
+ * @sample highcharts/responsive/classname/
37339
+ * Class name
37340
+ *
37341
+ * @type {Highcharts.Options}
37342
+ * @since 5.0.0
36662
37343
  * @apioption responsive.rules.chartOptions
36663
37344
  */
36664
37345
 
36665
37346
  /**
36666
37347
  * Under which conditions the rule applies.
36667
37348
  *
36668
- * @type {Object}
36669
- * @since 5.0.0
37349
+ * @since 5.0.0
36670
37350
  * @apioption responsive.rules.condition
36671
37351
  */
36672
37352
 
@@ -36676,50 +37356,57 @@
36676
37356
  * against other metrics than the chart size, or example the document
36677
37357
  * size or other elements.
36678
37358
  *
36679
- * @type {Function}
36680
- * @context Chart
36681
- * @since 5.0.0
37359
+ * @type {Highcharts.ResponsiveCallbackFunction}
37360
+ * @since 5.0.0
37361
+ * @context Highcharts.Chart
36682
37362
  * @apioption responsive.rules.condition.callback
36683
37363
  */
36684
37364
 
36685
37365
  /**
36686
37366
  * The responsive rule applies if the chart height is less than this.
36687
37367
  *
36688
- * @type {Number}
36689
- * @since 5.0.0
37368
+ * @type {number}
37369
+ * @since 5.0.0
36690
37370
  * @apioption responsive.rules.condition.maxHeight
36691
37371
  */
36692
37372
 
36693
37373
  /**
36694
37374
  * The responsive rule applies if the chart width is less than this.
36695
37375
  *
36696
- * @type {Number}
36697
- * @sample highcharts/responsive/axis/ Max width is 500
36698
- * @since 5.0.0
37376
+ * @sample highcharts/responsive/axis/
37377
+ * Max width is 500
37378
+ *
37379
+ * @type {number}
37380
+ * @since 5.0.0
36699
37381
  * @apioption responsive.rules.condition.maxWidth
36700
37382
  */
36701
37383
 
36702
37384
  /**
36703
37385
  * The responsive rule applies if the chart height is greater than this.
36704
37386
  *
36705
- * @type {Number}
36706
- * @default 0
36707
- * @since 5.0.0
37387
+ * @type {number}
37388
+ * @default 0
37389
+ * @since 5.0.0
36708
37390
  * @apioption responsive.rules.condition.minHeight
36709
37391
  */
36710
37392
 
36711
37393
  /**
36712
37394
  * The responsive rule applies if the chart width is greater than this.
36713
37395
  *
36714
- * @type {Number}
36715
- * @default 0
36716
- * @since 5.0.0
37396
+ * @type {number}
37397
+ * @default 0
37398
+ * @since 5.0.0
36717
37399
  * @apioption responsive.rules.condition.minWidth
36718
37400
  */
36719
37401
 
36720
37402
  /**
36721
37403
  * Update the chart based on the current chart/document size and options for
36722
37404
  * responsiveness.
37405
+ *
37406
+ * @private
37407
+ * @function Highcharts.Chart#setResponsive
37408
+ *
37409
+ * @param {boolean} [redraw=true]
36723
37410
  */
36724
37411
  Chart.prototype.setResponsive = function (redraw) {
36725
37412
  var options = this.options.responsive,
@@ -36775,9 +37462,17 @@
36775
37462
  };
36776
37463
 
36777
37464
  /**
36778
- * Handle a single responsiveness rule
37465
+ * Handle a single responsiveness rule.
37466
+ *
37467
+ * @private
37468
+ * @function Highcharts.Chart#matchResponsiveRule
37469
+ *
37470
+ * @param {Highcharts.ResponsiveRulesConditionOptions} rule
37471
+ *
37472
+ * @param {Array<number>} matches
36779
37473
  */
36780
37474
  Chart.prototype.matchResponsiveRule = function (rule, matches) {
37475
+
36781
37476
  var condition = rule.condition,
36782
37477
  fn = condition.callback || function () {
36783
37478
  return (
@@ -36792,13 +37487,19 @@
36792
37487
  if (fn.call(this)) {
36793
37488
  matches.push(rule._id);
36794
37489
  }
36795
-
36796
37490
  };
36797
37491
 
36798
37492
  /**
36799
37493
  * Get the current values for a given set of options. Used before we update
36800
37494
  * the chart with a new responsiveness rule.
36801
37495
  * TODO: Restore axis options (by id?)
37496
+ *
37497
+ * @private
37498
+ * @function Highcharts.Chart#currentOptions
37499
+ *
37500
+ * @param {Highcharts.Options} options
37501
+ *
37502
+ * @return {Highcharts.Options}
36802
37503
  */
36803
37504
  Chart.prototype.currentOptions = function (options) {
36804
37505
 
@@ -36845,7 +37546,7 @@
36845
37546
  }(Highcharts));
36846
37547
  (function (H) {
36847
37548
  /**
36848
- * (c) 2010-2017 Torstein Honsi
37549
+ * (c) 2010-2018 Torstein Honsi
36849
37550
  *
36850
37551
  * License: www.highcharts.com/license
36851
37552
  */
@@ -36972,7 +37673,7 @@
36972
37673
  }(Highcharts));
36973
37674
  (function (H) {
36974
37675
  /**
36975
- * (c) 2010-2017 Torstein Honsi
37676
+ * (c) 2010-2018 Torstein Honsi
36976
37677
  *
36977
37678
  * License: www.highcharts.com/license
36978
37679
  */
@@ -37970,7 +38671,7 @@
37970
38671
  }(Highcharts));
37971
38672
  (function (H) {
37972
38673
  /**
37973
- * (c) 2010-2017 Torstein Honsi
38674
+ * (c) 2010-2018 Torstein Honsi
37974
38675
  *
37975
38676
  * License: www.highcharts.com/license
37976
38677
  */
@@ -38077,7 +38778,7 @@
38077
38778
  }(Highcharts));
38078
38779
  (function (H) {
38079
38780
  /**
38080
- * (c) 2010-2017 Torstein Honsi
38781
+ * (c) 2010-2018 Torstein Honsi
38081
38782
  *
38082
38783
  * License: www.highcharts.com/license
38083
38784
  */
@@ -38424,7 +39125,7 @@
38424
39125
  }(Highcharts));
38425
39126
  (function (H) {
38426
39127
  /**
38427
- * (c) 2010-2017 Torstein Honsi
39128
+ * (c) 2010-2018 Torstein Honsi
38428
39129
  *
38429
39130
  * License: www.highcharts.com/license
38430
39131
  */
@@ -38555,7 +39256,7 @@
38555
39256
  }(Highcharts));
38556
39257
  (function (H) {
38557
39258
  /**
38558
- * (c) 2010-2017 Torstein Honsi
39259
+ * (c) 2010-2018 Torstein Honsi
38559
39260
  *
38560
39261
  * License: www.highcharts.com/license
38561
39262
  */
@@ -38580,7 +39281,7 @@
38580
39281
  * The map series is used for basic choropleth maps, where each map area has a
38581
39282
  * color based on its value.
38582
39283
  *
38583
- * @sample maps/demo/base/ Choropleth map
39284
+ * @sample maps/demo/all-maps/ Choropleth map
38584
39285
  * @extends plotOptions.scatter
38585
39286
  * @excluding marker
38586
39287
  * @product highmaps
@@ -39761,7 +40462,7 @@
39761
40462
  }(Highcharts));
39762
40463
  (function (H) {
39763
40464
  /**
39764
- * (c) 2010-2017 Torstein Honsi
40465
+ * (c) 2010-2018 Torstein Honsi
39765
40466
  *
39766
40467
  * License: www.highcharts.com/license
39767
40468
  */
@@ -39846,7 +40547,7 @@
39846
40547
  }(Highcharts));
39847
40548
  (function (H) {
39848
40549
  /**
39849
- * (c) 2010-2017 Torstein Honsi
40550
+ * (c) 2010-2018 Torstein Honsi
39850
40551
  *
39851
40552
  * License: www.highcharts.com/license
39852
40553
  */
@@ -40007,7 +40708,7 @@
40007
40708
  }(Highcharts));
40008
40709
  (function (H) {
40009
40710
  /**
40010
- * (c) 2010-2017 Torstein Honsi
40711
+ * (c) 2010-2018 Torstein Honsi
40011
40712
  *
40012
40713
  * License: www.highcharts.com/license
40013
40714
  */
@@ -40635,7 +41336,7 @@
40635
41336
  }(Highcharts));
40636
41337
  (function (H) {
40637
41338
  /**
40638
- * (c) 2010-2017 Torstein Honsi
41339
+ * (c) 2010-2018 Torstein Honsi
40639
41340
  *
40640
41341
  * License: www.highcharts.com/license
40641
41342
  */
@@ -40893,10 +41594,13 @@
40893
41594
  }(Highcharts));
40894
41595
  (function (H) {
40895
41596
  /**
40896
- * (c) 2010-2017 Torstein Honsi
41597
+ * (c) 2010-2018 Torstein Honsi
40897
41598
  *
40898
41599
  * License: www.highcharts.com/license
40899
41600
  */
41601
+
41602
+
41603
+
40900
41604
  var colorPointMixin = H.colorPointMixin,
40901
41605
  colorSeriesMixin = H.colorSeriesMixin,
40902
41606
  each = H.each,
@@ -40908,29 +41612,36 @@
40908
41612
  seriesType = H.seriesType,
40909
41613
  seriesTypes = H.seriesTypes;
40910
41614
 
41615
+ /**
41616
+ * @private
41617
+ * @class
41618
+ * @name Highcharts.seriesTypes.heatmap
41619
+ *
41620
+ * @augments Highcharts.Series
41621
+ */
41622
+ seriesType('heatmap', 'scatter'
40911
41623
 
40912
41624
  /**
40913
41625
  * A heatmap is a graphical representation of data where the individual values
40914
41626
  * contained in a matrix are represented as colors.
40915
41627
  *
40916
- * @sample highcharts/demo/heatmap/
40917
- * Simple heatmap
40918
- * @sample highcharts/demo/heatmap-canvas/
40919
- * Heavy heatmap
41628
+ * @sample highcharts/demo/heatmap/
41629
+ * Simple heatmap
41630
+ * @sample highcharts/demo/heatmap-canvas/
41631
+ * Heavy heatmap
41632
+ *
40920
41633
  * @extends {plotOptions.scatter}
40921
- * @excluding animationLimit,connectEnds,connectNulls,dashStyle,
40922
- * findNearestPointBy,getExtremesFromAll,linecap,lineWidth,marker,
40923
- * pointInterval,pointIntervalUnit,pointRange,pointStart,shadow,
40924
- * softThreshold,stacking,step,threshold
41634
+ * @excluding animationLimit, connectEnds, connectNulls, dashStyle,
41635
+ * findNearestPointBy, getExtremesFromAll, linecap, lineWidth,
41636
+ * marker, pointInterval, pointIntervalUnit, pointRange,
41637
+ * pointStart, shadow, softThreshold, stacking, step, threshold
40925
41638
  * @product highcharts highmaps
40926
41639
  * @optionparent plotOptions.heatmap
40927
41640
  */
40928
- seriesType('heatmap', 'scatter', {
41641
+ , {
40929
41642
 
40930
41643
  /**
40931
41644
  * Animation is disabled by default on the heatmap series.
40932
- *
40933
- * @type {Boolean|Object}
40934
41645
  */
40935
41646
  animation: false,
40936
41647
 
@@ -40942,9 +41653,9 @@
40942
41653
  /**
40943
41654
  * Padding between the points in the heatmap.
40944
41655
  *
40945
- * @type {Number}
40946
- * @default 0
40947
- * @since 6.0
41656
+ * @type {number}
41657
+ * @default 0
41658
+ * @since 6.0
40948
41659
  * @apioption plotOptions.heatmap.pointPadding
40949
41660
  */
40950
41661
 
@@ -40954,10 +41665,9 @@
40954
41665
  * options are set in the [colorAxis](#colorAxis), the default value
40955
41666
  * is pulled from the [options.colors](#colors) array.
40956
41667
  *
40957
- * @type {Color}
40958
- * @default null
40959
- * @since 4.0
40960
- * @product highcharts
41668
+ * @type {Highcharts.ColorString}
41669
+ * @since 4.0
41670
+ * @product highcharts
40961
41671
  * @apioption plotOptions.heatmap.color
40962
41672
  */
40963
41673
 
@@ -40965,31 +41675,36 @@
40965
41675
  * The column size - how many X axis units each column in the heatmap
40966
41676
  * should span.
40967
41677
  *
40968
- * @type {Number}
40969
- * @sample {highcharts} maps/demo/heatmap/ One day
40970
- * @sample {highmaps} maps/demo/heatmap/ One day
40971
- * @default 1
40972
- * @since 4.0
40973
- * @product highcharts highmaps
41678
+ * @sample {highcharts} maps/demo/heatmap/
41679
+ * One day
41680
+ * @sample {highmaps} maps/demo/heatmap/
41681
+ * One day
41682
+ *
41683
+ * @type {number}
41684
+ * @default 1
41685
+ * @since 4.0
41686
+ * @product highcharts highmaps
40974
41687
  * @apioption plotOptions.heatmap.colsize
40975
41688
  */
40976
41689
 
40977
41690
  /**
40978
41691
  * The row size - how many Y axis units each heatmap row should span.
40979
41692
  *
40980
- * @type {Number}
40981
- * @sample {highcharts} maps/demo/heatmap/ 1 by default
40982
- * @sample {highmaps} maps/demo/heatmap/ 1 by default
40983
- * @default 1
40984
- * @since 4.0
40985
- * @product highcharts highmaps
41693
+ * @sample {highcharts} maps/demo/heatmap/
41694
+ * 1 by default
41695
+ * @sample {highmaps} maps/demo/heatmap/
41696
+ * 1 by default
41697
+ *
41698
+ * @type {number}
41699
+ * @default 1
41700
+ * @since 4.0
41701
+ * @product highcharts highmaps
40986
41702
  * @apioption plotOptions.heatmap.rowsize
40987
41703
  */
40988
41704
 
40989
41705
 
40990
41706
 
40991
41707
  dataLabels: {
40992
-
40993
41708
  formatter: function () { // #2945
40994
41709
  return this.point.value;
40995
41710
  },
@@ -41005,7 +41720,9 @@
41005
41720
  */
41006
41721
  marker: null,
41007
41722
 
41008
- /** @ignore */
41723
+ /**
41724
+ * @ignore
41725
+ */
41009
41726
  pointRange: null, // dynamically set to colsize by default
41010
41727
 
41011
41728
  tooltip: {
@@ -41015,6 +41732,7 @@
41015
41732
  states: {
41016
41733
 
41017
41734
  hover: {
41735
+
41018
41736
  /**
41019
41737
  * @ignore
41020
41738
  */
@@ -41027,14 +41745,15 @@
41027
41745
  * In styled mode, the hover brightening is by default replaced
41028
41746
  * with a fill-opacity set in the `.highcharts-point:hover` rule.
41029
41747
  *
41030
- * @type {Number}
41031
41748
  * @product highcharts highmaps
41032
41749
  */
41033
41750
  brightness: 0.2
41034
41751
  }
41752
+
41035
41753
  }
41036
41754
 
41037
41755
  }, merge(colorSeriesMixin, {
41756
+
41038
41757
  pointArrayMap: ['y', 'value'],
41039
41758
  hasPointSpecificOptions: true,
41040
41759
  getExtremesFromAll: true,
@@ -41042,6 +41761,9 @@
41042
41761
 
41043
41762
  /**
41044
41763
  * Override the init method to add point ranges on both axes.
41764
+ *
41765
+ * @private
41766
+ * @function Highcharts.seriesTypes.heatmap#init
41045
41767
  */
41046
41768
  init: function () {
41047
41769
  var options;
@@ -41052,6 +41774,11 @@
41052
41774
  options.pointRange = pick(options.pointRange, options.colsize || 1);
41053
41775
  this.yAxis.axisPointRange = options.rowsize || 1; // general point range
41054
41776
  },
41777
+
41778
+ /**
41779
+ * @private
41780
+ * @function Highcharts.seriesTypes.heatmap#translate
41781
+ */
41055
41782
  translate: function () {
41056
41783
  var series = this,
41057
41784
  options = series.options,
@@ -41106,6 +41833,11 @@
41106
41833
 
41107
41834
  series.translateColors();
41108
41835
  },
41836
+
41837
+ /**
41838
+ * @private
41839
+ * @function Highcharts.seriesTypes.heatmap#drawPoints
41840
+ */
41109
41841
  drawPoints: function () {
41110
41842
  seriesTypes.column.prototype.drawPoints.call(this);
41111
41843
 
@@ -41117,10 +41849,37 @@
41117
41849
 
41118
41850
  }, this);
41119
41851
  },
41852
+
41853
+ /**
41854
+ * @ignore
41855
+ * @deprecated
41856
+ * @function Highcharts.seriesTypes.heatmap#animate
41857
+ */
41120
41858
  animate: noop,
41859
+
41860
+ /**
41861
+ * @ignore
41862
+ * @deprecated
41863
+ * @function Highcharts.seriesTypes.heatmap#getBox
41864
+ */
41121
41865
  getBox: noop,
41866
+
41867
+ /**
41868
+ * @private
41869
+ * @borrows Highcharts.LegendSymbolMixin.drawRectangle as Highcharts.seriesTypes.heatmap#drawLegendSymbol
41870
+ */
41122
41871
  drawLegendSymbol: LegendSymbolMixin.drawRectangle,
41872
+
41873
+ /**
41874
+ * @private
41875
+ * @borrows Highcharts.seriesTypes.column#alignDataLabel as Highcharts.seriesTypes.heatmap#alignDataLabel
41876
+ */
41123
41877
  alignDataLabel: seriesTypes.column.prototype.alignDataLabel,
41878
+
41879
+ /**
41880
+ * @private
41881
+ * @function Highcharts.seriesTypes.heatmap#getExtremes
41882
+ */
41124
41883
  getExtremes: function () {
41125
41884
  // Get the extremes from the value data
41126
41885
  Series.prototype.getExtremes.call(this, this.valueData);
@@ -41132,6 +41891,15 @@
41132
41891
  }
41133
41892
 
41134
41893
  }), H.extend({
41894
+
41895
+ /**
41896
+ * @private
41897
+ * @function Highcharts.Point#haloPath
41898
+ *
41899
+ * @param {number} size
41900
+ *
41901
+ * @return {Highcharts.SVGPathArray}
41902
+ */
41135
41903
  haloPath: function (size) {
41136
41904
  if (!size) {
41137
41905
  return [];
@@ -41146,14 +41914,14 @@
41146
41914
  ];
41147
41915
  }
41148
41916
  }, colorPointMixin));
41917
+
41149
41918
  /**
41150
41919
  * A `heatmap` series. If the [type](#series.heatmap.type) option is
41151
41920
  * not specified, it is inherited from [chart.type](#chart.type).
41152
41921
  *
41153
- * @type {Object}
41154
- * @extends series,plotOptions.heatmap
41155
- * @excluding dataParser,dataURL,marker,pointRange,stack
41156
- * @product highcharts highmaps
41922
+ * @extends series,plotOptions.heatmap
41923
+ * @excluding dataParser, dataURL, marker, pointRange, stack
41924
+ * @product highcharts highmaps
41157
41925
  * @apioption series.heatmap
41158
41926
  */
41159
41927
 
@@ -41198,9 +41966,6 @@
41198
41966
  * }]
41199
41967
  * ```
41200
41968
  *
41201
- * @type {Array<Object|Array>}
41202
- * @extends series.line.data
41203
- * @excluding marker
41204
41969
  * @sample {highcharts} highcharts/chart/reflow-true/
41205
41970
  * Numerical values
41206
41971
  * @sample {highcharts} highcharts/series/data-array-of-arrays/
@@ -41211,7 +41976,11 @@
41211
41976
  * Arrays of point.name and y
41212
41977
  * @sample {highcharts} highcharts/series/data-array-of-objects/
41213
41978
  * Config objects
41214
- * @product highcharts highmaps
41979
+ *
41980
+ * @type {Array<Array<number>|*>}
41981
+ * @extends series.line.data
41982
+ * @excluding marker
41983
+ * @product highcharts highmaps
41215
41984
  * @apioption series.heatmap.data
41216
41985
  */
41217
41986
 
@@ -41220,8 +41989,8 @@
41220
41989
  * explicitly, as we use the color to denote the `value`. Options for
41221
41990
  * this are set in the [colorAxis](#colorAxis) configuration.
41222
41991
  *
41223
- * @type {Color}
41224
- * @product highcharts highmaps
41992
+ * @type {Highcharts.ColorString}
41993
+ * @product highcharts highmaps
41225
41994
  * @apioption series.heatmap.data.color
41226
41995
  */
41227
41996
 
@@ -41229,8 +41998,8 @@
41229
41998
  * The value of the point, resulting in a color controled by options
41230
41999
  * as set in the [colorAxis](#colorAxis) configuration.
41231
42000
  *
41232
- * @type {Number}
41233
- * @product highcharts highmaps
42001
+ * @type {number}
42002
+ * @product highcharts highmaps
41234
42003
  * @apioption series.heatmap.data.value
41235
42004
  */
41236
42005
 
@@ -41238,24 +42007,26 @@
41238
42007
  * The x value of the point. For datetime axes,
41239
42008
  * the X value is the timestamp in milliseconds since 1970.
41240
42009
  *
41241
- * @type {Number}
41242
- * @product highcharts highmaps
42010
+ * @type {number}
42011
+ * @product highcharts highmaps
41243
42012
  * @apioption series.heatmap.data.x
41244
42013
  */
41245
42014
 
41246
42015
  /**
41247
42016
  * The y value of the point.
41248
42017
  *
41249
- * @type {Number}
41250
- * @product highcharts highmaps
42018
+ * @type {number}
42019
+ * @product highcharts highmaps
41251
42020
  * @apioption series.heatmap.data.y
41252
42021
  */
41253
42022
 
41254
42023
  /**
41255
42024
  * Point padding for a single point.
41256
42025
  *
41257
- * @type {Number}
41258
- * @sample maps/plotoptions/tilemap-pointpadding Point padding on tiles
42026
+ * @sample maps/plotoptions/tilemap-pointpadding
42027
+ * Point padding on tiles
42028
+ *
42029
+ * @type {number}
41259
42030
  * @apioption series.heatmap.data.pointPadding
41260
42031
  */
41261
42032
 
@@ -41263,7 +42034,7 @@
41263
42034
  }(Highcharts));
41264
42035
  (function (H) {
41265
42036
  /**
41266
- * (c) 2010-2017 Torstein Honsi
42037
+ * (c) 2010-2018 Torstein Honsi
41267
42038
  *
41268
42039
  * License: www.highcharts.com/license
41269
42040
  */
@@ -41668,7 +42439,7 @@
41668
42439
  }(Highcharts));
41669
42440
  (function (H) {
41670
42441
  /**
41671
- * (c) 2010-2017 Torstein Honsi
42442
+ * (c) 2010-2018 Torstein Honsi
41672
42443
  *
41673
42444
  * License: www.highcharts.com/license
41674
42445
  */