highcharts 6.1.1 → 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 (871) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +29 -0
  3. package/css/highcharts.scss +25 -1
  4. package/css/themes/dark-unica.css +29 -0
  5. package/css/themes/grid-light.css +29 -0
  6. package/css/themes/sand-signika.css +29 -0
  7. package/es-modules/indicators/accumulation-distribution.src.js +1 -1
  8. package/es-modules/indicators/atr.src.js +1 -1
  9. package/es-modules/indicators/bollinger-bands.src.js +2 -2
  10. package/es-modules/indicators/cci.src.js +1 -1
  11. package/es-modules/indicators/cmf.src.js +1 -1
  12. package/es-modules/indicators/ema.src.js +1 -1
  13. package/es-modules/indicators/ichimoku-kinko-hyo.src.js +1 -1
  14. package/es-modules/indicators/indicators.src.js +29 -14
  15. package/es-modules/indicators/macd.src.js +4 -4
  16. package/es-modules/indicators/mfi.src.js +1 -1
  17. package/es-modules/indicators/momentum.src.js +2 -2
  18. package/es-modules/indicators/pivot-points.src.js +7 -2
  19. package/es-modules/indicators/price-envelopes.src.js +2 -2
  20. package/es-modules/indicators/psar.src.js +1 -1
  21. package/es-modules/indicators/roc.src.js +1 -1
  22. package/es-modules/indicators/rsi.src.js +1 -1
  23. package/es-modules/indicators/stochastic.src.js +9 -7
  24. package/es-modules/indicators/volume-by-price.src.js +1 -1
  25. package/es-modules/indicators/vwap.src.js +1 -1
  26. package/es-modules/indicators/wma.src.js +1 -1
  27. package/es-modules/indicators/zigzag.src.js +1 -1
  28. package/es-modules/masters/highcharts-gantt.src.js +11 -0
  29. package/es-modules/masters/modules/annotations.src.js +1 -1
  30. package/es-modules/masters/modules/arrow-symbols.src.js +12 -0
  31. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  32. package/es-modules/masters/modules/current-date-indicator.src.js +12 -0
  33. package/es-modules/masters/modules/data.src.js +1 -1
  34. package/es-modules/masters/modules/draggable-points.src.js +9 -0
  35. package/es-modules/masters/modules/export-data.src.js +1 -1
  36. package/es-modules/masters/modules/exporting.src.js +1 -1
  37. package/es-modules/masters/modules/funnel.src.js +1 -1
  38. package/es-modules/masters/modules/gantt.src.js +2 -1
  39. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  40. package/es-modules/masters/modules/heatmap.src.js +1 -1
  41. package/es-modules/masters/modules/item-series.src.js +1 -1
  42. package/es-modules/masters/modules/map.src.js +1 -1
  43. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  44. package/es-modules/masters/modules/pathfinder.src.js +12 -0
  45. package/es-modules/masters/modules/sankey.src.js +1 -1
  46. package/es-modules/masters/modules/series-label.src.js +1 -1
  47. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  48. package/es-modules/masters/modules/stock.src.js +1 -1
  49. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  50. package/es-modules/masters/modules/treegrid.src.js +12 -0
  51. package/es-modules/masters/modules/variwide.src.js +1 -1
  52. package/es-modules/masters/modules/vector.src.js +1 -1
  53. package/es-modules/masters/modules/windbarb.src.js +1 -1
  54. package/es-modules/masters/modules/xrange.src.js +1 -1
  55. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  56. package/es-modules/masters/themes/dark-green.src.js +1 -1
  57. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  58. package/es-modules/masters/themes/gray.src.js +1 -1
  59. package/es-modules/masters/themes/grid-light.src.js +1 -1
  60. package/es-modules/masters/themes/grid.src.js +1 -1
  61. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  62. package/es-modules/masters/themes/skies.src.js +1 -1
  63. package/es-modules/mixins/centered-series.js +36 -5
  64. package/es-modules/mixins/on-series.js +1 -1
  65. package/es-modules/mixins/polygon.js +4 -4
  66. package/es-modules/modules/annotations.src.js +2 -2
  67. package/es-modules/modules/boost-canvas.src.js +19 -8
  68. package/es-modules/modules/boost.src.js +300 -137
  69. package/es-modules/modules/broken-axis.src.js +169 -134
  70. package/es-modules/modules/bullet.src.js +2 -2
  71. package/es-modules/modules/data.src.js +8 -6
  72. package/es-modules/modules/draggable-points.src.js +2257 -0
  73. package/es-modules/modules/drilldown.src.js +4 -2
  74. package/es-modules/modules/export-data.src.js +11 -1
  75. package/es-modules/modules/exporting.src.js +62 -36
  76. package/es-modules/modules/funnel.src.js +5 -5
  77. package/es-modules/modules/histogram.src.js +30 -28
  78. package/es-modules/modules/item-series.src.js +36 -11
  79. package/es-modules/modules/keyboard-navigation.src.js +81 -44
  80. package/es-modules/modules/no-data-to-display.src.js +5 -5
  81. package/es-modules/modules/oldie.src.js +14 -9
  82. package/es-modules/modules/overlapping-datalabels.src.js +45 -21
  83. package/es-modules/modules/parallel-coordinates.src.js +4 -3
  84. package/es-modules/modules/pareto.src.js +1 -1
  85. package/es-modules/modules/sankey.src.js +28 -10
  86. package/es-modules/modules/series-label.src.js +6 -6
  87. package/es-modules/modules/solid-gauge.src.js +10 -7
  88. package/es-modules/modules/static-scale.src.js +67 -28
  89. package/es-modules/modules/streamgraph.src.js +4 -4
  90. package/es-modules/modules/sunburst.src.js +4 -4
  91. package/es-modules/modules/tilemap.src.js +231 -134
  92. package/es-modules/modules/treemap.src.js +30 -27
  93. package/es-modules/modules/variable-pie.src.js +3 -3
  94. package/es-modules/modules/variwide.src.js +36 -24
  95. package/es-modules/modules/vector.src.js +98 -28
  96. package/es-modules/modules/windbarb.src.js +4 -4
  97. package/es-modules/modules/wordcloud.src.js +133 -48
  98. package/es-modules/modules/xrange.src.js +258 -78
  99. package/es-modules/parts/AreaSeries.js +83 -50
  100. package/es-modules/parts/AreaSplineSeries.js +66 -29
  101. package/es-modules/parts/Axis.js +2184 -745
  102. package/es-modules/parts/BarSeries.js +70 -53
  103. package/es-modules/parts/CandlestickSeries.js +20 -10
  104. package/es-modules/parts/Chart.js +349 -157
  105. package/es-modules/parts/Color.js +74 -25
  106. package/es-modules/parts/ColumnSeries.js +274 -147
  107. package/es-modules/parts/DataGrouping.js +36 -3
  108. package/es-modules/parts/DataLabels.js +318 -144
  109. package/es-modules/parts/DateTimeAxis.js +27 -5
  110. package/es-modules/parts/Dynamics.js +236 -144
  111. package/es-modules/parts/FlagsSeries.js +49 -7
  112. package/es-modules/parts/Globals.js +4 -3
  113. package/es-modules/parts/Html.js +82 -16
  114. package/es-modules/parts/Interaction.js +198 -65
  115. package/es-modules/parts/Legend.js +181 -31
  116. package/es-modules/parts/LogarithmicAxis.js +36 -3
  117. package/es-modules/parts/MSPointer.js +31 -4
  118. package/es-modules/parts/Navigator.js +479 -187
  119. package/es-modules/parts/OHLCSeries.js +11 -5
  120. package/es-modules/parts/Options.js +1052 -686
  121. package/es-modules/parts/OrdinalAxis.js +20 -6
  122. package/es-modules/parts/PieSeries.js +258 -142
  123. package/es-modules/parts/PlotBandSeries.experimental.js +2 -2
  124. package/es-modules/parts/PlotLineOrBand.js +671 -35
  125. package/es-modules/parts/Point.js +189 -73
  126. package/es-modules/parts/Pointer.js +263 -62
  127. package/es-modules/parts/RangeSelector.js +601 -91
  128. package/es-modules/parts/Responsive.js +82 -36
  129. package/es-modules/parts/ScatterSeries.js +59 -27
  130. package/es-modules/parts/ScrollablePlotArea.js +30 -9
  131. package/es-modules/parts/Scrollbar.js +284 -113
  132. package/es-modules/parts/Series.js +1105 -836
  133. package/es-modules/parts/SplineSeries.js +53 -31
  134. package/es-modules/parts/Stacking.js +108 -7
  135. package/es-modules/parts/StockChart.js +26 -8
  136. package/es-modules/parts/SvgRenderer.js +1251 -613
  137. package/es-modules/parts/Tick.js +164 -30
  138. package/es-modules/parts/Time.js +171 -71
  139. package/es-modules/parts/Tooltip.js +271 -49
  140. package/es-modules/parts/TouchPointer.js +70 -3
  141. package/es-modules/parts/Utilities.js +1024 -429
  142. package/es-modules/parts-3d/Axis.js +4 -3
  143. package/es-modules/parts-3d/Chart.js +8 -9
  144. package/es-modules/parts-3d/Column.js +1 -1
  145. package/es-modules/parts-3d/Math.js +1 -1
  146. package/es-modules/parts-3d/Pie.js +1 -1
  147. package/es-modules/parts-3d/SVGRenderer.js +13 -10
  148. package/es-modules/parts-3d/Scatter.js +4 -4
  149. package/es-modules/parts-3d/Series.js +1 -1
  150. package/es-modules/parts-3d/VMLRenderer.js +1 -1
  151. package/es-modules/parts-gantt/ArrowSymbols.js +110 -0
  152. package/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
  153. package/es-modules/parts-gantt/GanttChart.js +111 -0
  154. package/es-modules/parts-gantt/GanttSeries.js +376 -0
  155. package/es-modules/parts-gantt/GridAxis.js +965 -0
  156. package/es-modules/parts-gantt/Pathfinder.js +1247 -0
  157. package/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
  158. package/es-modules/parts-gantt/Tree.js +146 -0
  159. package/es-modules/parts-gantt/TreeGrid.js +917 -0
  160. package/es-modules/parts-map/ColorAxis.js +4 -5
  161. package/es-modules/parts-map/ColorSeriesMixin.js +3 -1
  162. package/es-modules/parts-map/GeoJSON.js +1 -1
  163. package/es-modules/parts-map/HeatmapSeries.js +126 -55
  164. package/es-modules/parts-map/Map.js +144 -51
  165. package/es-modules/parts-map/MapAxis.js +1 -1
  166. package/es-modules/parts-map/MapBubbleSeries.js +6 -5
  167. package/es-modules/parts-map/MapLineSeries.js +4 -4
  168. package/es-modules/parts-map/MapNavigation.js +50 -12
  169. package/es-modules/parts-map/MapPointSeries.js +3 -3
  170. package/es-modules/parts-map/MapPointer.js +1 -1
  171. package/es-modules/parts-map/MapSeries.js +7 -7
  172. package/es-modules/parts-more/AreaRangeSeries.js +82 -40
  173. package/es-modules/parts-more/AreaSplineRangeSeries.js +3 -3
  174. package/es-modules/parts-more/BoxPlotSeries.js +3 -3
  175. package/es-modules/parts-more/BubbleSeries.js +9 -4
  176. package/es-modules/parts-more/ColumnRangeSeries.js +3 -3
  177. package/es-modules/parts-more/ErrorBarSeries.js +6 -4
  178. package/es-modules/parts-more/GaugeSeries.js +3 -3
  179. package/es-modules/parts-more/Pane.js +3 -2
  180. package/es-modules/parts-more/Polar.js +1 -1
  181. package/es-modules/parts-more/PolygonSeries.js +3 -3
  182. package/es-modules/parts-more/RadialAxis.js +5 -4
  183. package/es-modules/parts-more/WaterfallSeries.js +9 -4
  184. package/es-modules/supplemental.docs.js +0 -1955
  185. package/es-modules/themes/dark-blue.js +1 -1
  186. package/es-modules/themes/dark-green.js +1 -1
  187. package/es-modules/themes/dark-unica.js +1 -1
  188. package/es-modules/themes/gray.js +1 -1
  189. package/es-modules/themes/grid-light.js +1 -1
  190. package/es-modules/themes/grid.js +1 -1
  191. package/es-modules/themes/sand-signika.js +1 -1
  192. package/es-modules/themes/skies.js +1 -1
  193. package/highcharts-3d.js +77 -75
  194. package/highcharts-3d.js.map +1 -8
  195. package/highcharts-3d.src.js +39 -32
  196. package/highcharts-gantt.js +503 -0
  197. package/highcharts-gantt.js.map +1 -0
  198. package/highcharts-gantt.src.js +49289 -0
  199. package/highcharts-more.js +66 -64
  200. package/highcharts-more.js.map +1 -8
  201. package/highcharts-more.src.js +135 -75
  202. package/highcharts.js +413 -403
  203. package/highcharts.js.map +1 -8
  204. package/highcharts.src.js +11114 -4781
  205. package/highmaps.js +442 -433
  206. package/highmaps.js.map +1 -8
  207. package/highmaps.src.js +10740 -4598
  208. package/highstock.js +553 -540
  209. package/highstock.js.map +1 -8
  210. package/highstock.src.js +12807 -5343
  211. package/indicators/accumulation-distribution.js +4 -3
  212. package/indicators/accumulation-distribution.js.map +1 -8
  213. package/indicators/accumulation-distribution.src.js +6 -2
  214. package/indicators/atr.js +4 -3
  215. package/indicators/atr.js.map +1 -8
  216. package/indicators/atr.src.js +6 -2
  217. package/indicators/bollinger-bands.js +7 -6
  218. package/indicators/bollinger-bands.js.map +1 -8
  219. package/indicators/bollinger-bands.src.js +7 -3
  220. package/indicators/cci.js +4 -3
  221. package/indicators/cci.js.map +1 -8
  222. package/indicators/cci.src.js +6 -2
  223. package/indicators/cmf.js +5 -4
  224. package/indicators/cmf.js.map +1 -8
  225. package/indicators/cmf.src.js +6 -2
  226. package/indicators/ema.js +4 -3
  227. package/indicators/ema.js.map +1 -8
  228. package/indicators/ema.src.js +6 -2
  229. package/indicators/ichimoku-kinko-hyo.js +10 -9
  230. package/indicators/ichimoku-kinko-hyo.js.map +1 -8
  231. package/indicators/ichimoku-kinko-hyo.src.js +6 -2
  232. package/indicators/indicators.js +6 -5
  233. package/indicators/indicators.js.map +1 -8
  234. package/indicators/indicators.src.js +34 -15
  235. package/indicators/macd.js +11 -10
  236. package/indicators/macd.js.map +1 -8
  237. package/indicators/macd.src.js +10 -6
  238. package/indicators/mfi.js +5 -3
  239. package/indicators/mfi.js.map +1 -8
  240. package/indicators/mfi.src.js +6 -2
  241. package/indicators/momentum.js +4 -3
  242. package/indicators/momentum.js.map +1 -8
  243. package/indicators/momentum.src.js +7 -3
  244. package/indicators/pivot-points.js +8 -7
  245. package/indicators/pivot-points.js.map +1 -8
  246. package/indicators/pivot-points.src.js +12 -3
  247. package/indicators/price-envelopes.js +7 -6
  248. package/indicators/price-envelopes.js.map +1 -8
  249. package/indicators/price-envelopes.src.js +7 -3
  250. package/indicators/psar.js +5 -4
  251. package/indicators/psar.js.map +1 -8
  252. package/indicators/psar.src.js +6 -2
  253. package/indicators/roc.js +4 -3
  254. package/indicators/roc.js.map +1 -8
  255. package/indicators/roc.src.js +6 -2
  256. package/indicators/rsi.js +4 -3
  257. package/indicators/rsi.js.map +1 -8
  258. package/indicators/rsi.src.js +6 -2
  259. package/indicators/stochastic.js +7 -5
  260. package/indicators/stochastic.js.map +1 -8
  261. package/indicators/stochastic.src.js +14 -8
  262. package/indicators/volume-by-price.js +13 -12
  263. package/indicators/volume-by-price.js.map +1 -8
  264. package/indicators/volume-by-price.src.js +6 -2
  265. package/indicators/vwap.js +4 -3
  266. package/indicators/vwap.js.map +1 -8
  267. package/indicators/vwap.src.js +6 -2
  268. package/indicators/wma.js +4 -3
  269. package/indicators/wma.js.map +1 -8
  270. package/indicators/wma.src.js +6 -2
  271. package/indicators/zigzag.js +5 -3
  272. package/indicators/zigzag.js.map +1 -8
  273. package/indicators/zigzag.src.js +6 -2
  274. package/js/es-modules/indicators/accumulation-distribution.src.js +1 -1
  275. package/js/es-modules/indicators/atr.src.js +1 -1
  276. package/js/es-modules/indicators/bollinger-bands.src.js +2 -2
  277. package/js/es-modules/indicators/cci.src.js +1 -1
  278. package/js/es-modules/indicators/cmf.src.js +1 -1
  279. package/js/es-modules/indicators/ema.src.js +1 -1
  280. package/js/es-modules/indicators/ichimoku-kinko-hyo.src.js +1 -1
  281. package/js/es-modules/indicators/indicators.src.js +29 -14
  282. package/js/es-modules/indicators/macd.src.js +4 -4
  283. package/js/es-modules/indicators/mfi.src.js +1 -1
  284. package/js/es-modules/indicators/momentum.src.js +2 -2
  285. package/js/es-modules/indicators/pivot-points.src.js +7 -2
  286. package/js/es-modules/indicators/price-envelopes.src.js +2 -2
  287. package/js/es-modules/indicators/psar.src.js +1 -1
  288. package/js/es-modules/indicators/roc.src.js +1 -1
  289. package/js/es-modules/indicators/rsi.src.js +1 -1
  290. package/js/es-modules/indicators/stochastic.src.js +9 -7
  291. package/js/es-modules/indicators/volume-by-price.src.js +1 -1
  292. package/js/es-modules/indicators/vwap.src.js +1 -1
  293. package/js/es-modules/indicators/wma.src.js +1 -1
  294. package/js/es-modules/indicators/zigzag.src.js +1 -1
  295. package/js/es-modules/masters/highcharts-gantt.src.js +11 -0
  296. package/js/es-modules/masters/modules/annotations.src.js +1 -1
  297. package/js/es-modules/masters/modules/arrow-symbols.src.js +12 -0
  298. package/js/es-modules/masters/modules/broken-axis.src.js +1 -1
  299. package/js/es-modules/masters/modules/current-date-indicator.src.js +12 -0
  300. package/js/es-modules/masters/modules/data.src.js +1 -1
  301. package/js/es-modules/masters/modules/draggable-points.src.js +9 -0
  302. package/js/es-modules/masters/modules/export-data.src.js +1 -1
  303. package/js/es-modules/masters/modules/exporting.src.js +1 -1
  304. package/js/es-modules/masters/modules/funnel.src.js +1 -1
  305. package/js/es-modules/masters/modules/gantt.src.js +2 -1
  306. package/js/es-modules/masters/modules/grid-axis.src.js +1 -1
  307. package/js/es-modules/masters/modules/heatmap.src.js +1 -1
  308. package/js/es-modules/masters/modules/item-series.src.js +1 -1
  309. package/js/es-modules/masters/modules/map.src.js +1 -1
  310. package/js/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  311. package/js/es-modules/masters/modules/pathfinder.src.js +12 -0
  312. package/js/es-modules/masters/modules/sankey.src.js +1 -1
  313. package/js/es-modules/masters/modules/series-label.src.js +1 -1
  314. package/js/es-modules/masters/modules/solid-gauge.src.js +1 -1
  315. package/js/es-modules/masters/modules/stock.src.js +1 -1
  316. package/js/es-modules/masters/modules/streamgraph.src.js +1 -1
  317. package/js/es-modules/masters/modules/treegrid.src.js +12 -0
  318. package/js/es-modules/masters/modules/variwide.src.js +1 -1
  319. package/js/es-modules/masters/modules/vector.src.js +1 -1
  320. package/js/es-modules/masters/modules/windbarb.src.js +1 -1
  321. package/js/es-modules/masters/modules/xrange.src.js +1 -1
  322. package/js/es-modules/masters/themes/dark-blue.src.js +1 -1
  323. package/js/es-modules/masters/themes/dark-green.src.js +1 -1
  324. package/js/es-modules/masters/themes/dark-unica.src.js +1 -1
  325. package/js/es-modules/masters/themes/gray.src.js +1 -1
  326. package/js/es-modules/masters/themes/grid-light.src.js +1 -1
  327. package/js/es-modules/masters/themes/grid.src.js +1 -1
  328. package/js/es-modules/masters/themes/sand-signika.src.js +1 -1
  329. package/js/es-modules/masters/themes/skies.src.js +1 -1
  330. package/js/es-modules/mixins/centered-series.js +36 -5
  331. package/js/es-modules/mixins/on-series.js +1 -1
  332. package/js/es-modules/mixins/polygon.js +4 -4
  333. package/js/es-modules/modules/annotations.src.js +2 -2
  334. package/js/es-modules/modules/boost-canvas.src.js +19 -8
  335. package/js/es-modules/modules/boost.src.js +300 -137
  336. package/js/es-modules/modules/broken-axis.src.js +169 -134
  337. package/js/es-modules/modules/bullet.src.js +2 -2
  338. package/js/es-modules/modules/data.src.js +8 -6
  339. package/js/es-modules/modules/draggable-points.src.js +2257 -0
  340. package/js/es-modules/modules/drilldown.src.js +4 -2
  341. package/js/es-modules/modules/export-data.src.js +11 -1
  342. package/js/es-modules/modules/exporting.src.js +62 -36
  343. package/js/es-modules/modules/funnel.src.js +5 -5
  344. package/js/es-modules/modules/histogram.src.js +30 -28
  345. package/js/es-modules/modules/item-series.src.js +36 -11
  346. package/js/es-modules/modules/keyboard-navigation.src.js +81 -44
  347. package/js/es-modules/modules/no-data-to-display.src.js +5 -5
  348. package/js/es-modules/modules/oldie.src.js +14 -9
  349. package/js/es-modules/modules/overlapping-datalabels.src.js +45 -21
  350. package/js/es-modules/modules/parallel-coordinates.src.js +4 -3
  351. package/js/es-modules/modules/pareto.src.js +1 -1
  352. package/js/es-modules/modules/sankey.src.js +23 -7
  353. package/js/es-modules/modules/series-label.src.js +6 -6
  354. package/js/es-modules/modules/solid-gauge.src.js +8 -5
  355. package/js/es-modules/modules/static-scale.src.js +67 -28
  356. package/js/es-modules/modules/streamgraph.src.js +4 -4
  357. package/js/es-modules/modules/sunburst.src.js +4 -4
  358. package/js/es-modules/modules/tilemap.src.js +231 -134
  359. package/js/es-modules/modules/treemap.src.js +29 -26
  360. package/js/es-modules/modules/variable-pie.src.js +3 -3
  361. package/js/es-modules/modules/variwide.src.js +36 -24
  362. package/js/es-modules/modules/vector.src.js +98 -28
  363. package/js/es-modules/modules/windbarb.src.js +4 -4
  364. package/js/es-modules/modules/wordcloud.src.js +133 -48
  365. package/js/es-modules/modules/xrange.src.js +256 -69
  366. package/js/es-modules/parts/AreaSeries.js +83 -50
  367. package/js/es-modules/parts/AreaSplineSeries.js +66 -29
  368. package/js/es-modules/parts/Axis.js +2089 -694
  369. package/js/es-modules/parts/BarSeries.js +70 -53
  370. package/js/es-modules/parts/CandlestickSeries.js +20 -10
  371. package/js/es-modules/parts/Chart.js +349 -157
  372. package/js/es-modules/parts/Color.js +74 -25
  373. package/js/es-modules/parts/ColumnSeries.js +241 -128
  374. package/js/es-modules/parts/DataGrouping.js +36 -3
  375. package/js/es-modules/parts/DataLabels.js +287 -116
  376. package/js/es-modules/parts/DateTimeAxis.js +27 -5
  377. package/js/es-modules/parts/Dynamics.js +236 -144
  378. package/js/es-modules/parts/FlagsSeries.js +49 -7
  379. package/js/es-modules/parts/Globals.js +4 -3
  380. package/js/es-modules/parts/Html.js +82 -16
  381. package/js/es-modules/parts/Interaction.js +187 -67
  382. package/js/es-modules/parts/Legend.js +181 -31
  383. package/js/es-modules/parts/LogarithmicAxis.js +36 -3
  384. package/js/es-modules/parts/MSPointer.js +31 -4
  385. package/js/es-modules/parts/Navigator.js +432 -162
  386. package/js/es-modules/parts/OHLCSeries.js +5 -5
  387. package/js/es-modules/parts/Options.js +855 -592
  388. package/js/es-modules/parts/OrdinalAxis.js +20 -6
  389. package/js/es-modules/parts/PieSeries.js +247 -134
  390. package/js/es-modules/parts/PlotBandSeries.experimental.js +2 -2
  391. package/js/es-modules/parts/PlotLineOrBand.js +671 -35
  392. package/js/es-modules/parts/Point.js +182 -70
  393. package/js/es-modules/parts/Pointer.js +263 -62
  394. package/js/es-modules/parts/RangeSelector.js +579 -91
  395. package/js/es-modules/parts/Responsive.js +82 -36
  396. package/js/es-modules/parts/ScatterSeries.js +58 -27
  397. package/js/es-modules/parts/ScrollablePlotArea.js +30 -9
  398. package/js/es-modules/parts/Scrollbar.js +201 -71
  399. package/js/es-modules/parts/Series.js +995 -745
  400. package/js/es-modules/parts/SplineSeries.js +53 -31
  401. package/js/es-modules/parts/Stacking.js +108 -7
  402. package/js/es-modules/parts/StockChart.js +26 -8
  403. package/js/es-modules/parts/SvgRenderer.js +1208 -598
  404. package/js/es-modules/parts/Tick.js +164 -30
  405. package/js/es-modules/parts/Time.js +171 -71
  406. package/js/es-modules/parts/Tooltip.js +276 -49
  407. package/js/es-modules/parts/TouchPointer.js +70 -3
  408. package/js/es-modules/parts/Utilities.js +1024 -429
  409. package/js/es-modules/parts-3d/Axis.js +4 -3
  410. package/js/es-modules/parts-3d/Chart.js +8 -9
  411. package/js/es-modules/parts-3d/Column.js +1 -1
  412. package/js/es-modules/parts-3d/Math.js +1 -1
  413. package/js/es-modules/parts-3d/Pie.js +1 -1
  414. package/js/es-modules/parts-3d/SVGRenderer.js +13 -10
  415. package/js/es-modules/parts-3d/Scatter.js +4 -4
  416. package/js/es-modules/parts-3d/Series.js +1 -1
  417. package/js/es-modules/parts-3d/VMLRenderer.js +1 -1
  418. package/js/es-modules/parts-gantt/ArrowSymbols.js +110 -0
  419. package/js/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
  420. package/js/es-modules/parts-gantt/GanttChart.js +111 -0
  421. package/js/es-modules/parts-gantt/GanttSeries.js +371 -0
  422. package/js/es-modules/parts-gantt/GridAxis.js +962 -0
  423. package/js/es-modules/parts-gantt/Pathfinder.js +1225 -0
  424. package/js/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
  425. package/js/es-modules/parts-gantt/Tree.js +146 -0
  426. package/js/es-modules/parts-gantt/TreeGrid.js +891 -0
  427. package/js/es-modules/parts-map/ColorAxis.js +4 -5
  428. package/js/es-modules/parts-map/ColorSeriesMixin.js +3 -1
  429. package/js/es-modules/parts-map/GeoJSON.js +1 -1
  430. package/js/es-modules/parts-map/HeatmapSeries.js +124 -54
  431. package/js/es-modules/parts-map/Map.js +136 -47
  432. package/js/es-modules/parts-map/MapAxis.js +1 -1
  433. package/js/es-modules/parts-map/MapBubbleSeries.js +6 -5
  434. package/js/es-modules/parts-map/MapLineSeries.js +4 -4
  435. package/js/es-modules/parts-map/MapNavigation.js +50 -12
  436. package/js/es-modules/parts-map/MapPointSeries.js +3 -3
  437. package/js/es-modules/parts-map/MapPointer.js +1 -1
  438. package/js/es-modules/parts-map/MapSeries.js +5 -5
  439. package/js/es-modules/parts-more/AreaRangeSeries.js +82 -40
  440. package/js/es-modules/parts-more/AreaSplineRangeSeries.js +3 -3
  441. package/js/es-modules/parts-more/BoxPlotSeries.js +3 -3
  442. package/js/es-modules/parts-more/BubbleSeries.js +9 -4
  443. package/js/es-modules/parts-more/ColumnRangeSeries.js +3 -3
  444. package/js/es-modules/parts-more/ErrorBarSeries.js +6 -4
  445. package/js/es-modules/parts-more/GaugeSeries.js +3 -3
  446. package/js/es-modules/parts-more/Pane.js +3 -2
  447. package/js/es-modules/parts-more/Polar.js +1 -1
  448. package/js/es-modules/parts-more/PolygonSeries.js +3 -3
  449. package/js/es-modules/parts-more/RadialAxis.js +5 -4
  450. package/js/es-modules/parts-more/WaterfallSeries.js +9 -4
  451. package/js/es-modules/supplemental.docs.js +0 -1955
  452. package/js/es-modules/themes/dark-blue.js +1 -1
  453. package/js/es-modules/themes/dark-green.js +1 -1
  454. package/js/es-modules/themes/dark-unica.js +1 -1
  455. package/js/es-modules/themes/gray.js +1 -1
  456. package/js/es-modules/themes/grid-light.js +1 -1
  457. package/js/es-modules/themes/grid.js +1 -1
  458. package/js/es-modules/themes/sand-signika.js +1 -1
  459. package/js/es-modules/themes/skies.js +1 -1
  460. package/js/highcharts-3d.js +75 -74
  461. package/js/highcharts-3d.js.map +1 -8
  462. package/js/highcharts-3d.src.js +39 -32
  463. package/js/highcharts-gantt.js +480 -0
  464. package/js/highcharts-gantt.js.map +1 -0
  465. package/js/highcharts-gantt.src.js +47011 -0
  466. package/js/highcharts-more.js +63 -61
  467. package/js/highcharts-more.js.map +1 -8
  468. package/js/highcharts-more.src.js +135 -75
  469. package/js/highcharts.js +396 -387
  470. package/js/highcharts.js.map +1 -8
  471. package/js/highcharts.src.js +10765 -4659
  472. package/js/highmaps.js +419 -411
  473. package/js/highmaps.js.map +1 -8
  474. package/js/highmaps.src.js +10198 -4285
  475. package/js/highstock.js +529 -516
  476. package/js/highstock.js.map +1 -8
  477. package/js/highstock.src.js +12108 -4962
  478. package/js/indicators/accumulation-distribution.js +4 -3
  479. package/js/indicators/accumulation-distribution.js.map +1 -8
  480. package/js/indicators/accumulation-distribution.src.js +6 -2
  481. package/js/indicators/atr.js +4 -3
  482. package/js/indicators/atr.js.map +1 -8
  483. package/js/indicators/atr.src.js +6 -2
  484. package/js/indicators/bollinger-bands.js +7 -6
  485. package/js/indicators/bollinger-bands.js.map +1 -8
  486. package/js/indicators/bollinger-bands.src.js +7 -3
  487. package/js/indicators/cci.js +4 -3
  488. package/js/indicators/cci.js.map +1 -8
  489. package/js/indicators/cci.src.js +6 -2
  490. package/js/indicators/cmf.js +5 -4
  491. package/js/indicators/cmf.js.map +1 -8
  492. package/js/indicators/cmf.src.js +6 -2
  493. package/js/indicators/ema.js +4 -3
  494. package/js/indicators/ema.js.map +1 -8
  495. package/js/indicators/ema.src.js +6 -2
  496. package/js/indicators/ichimoku-kinko-hyo.js +10 -9
  497. package/js/indicators/ichimoku-kinko-hyo.js.map +1 -8
  498. package/js/indicators/ichimoku-kinko-hyo.src.js +6 -2
  499. package/js/indicators/indicators.js +6 -5
  500. package/js/indicators/indicators.js.map +1 -8
  501. package/js/indicators/indicators.src.js +34 -15
  502. package/js/indicators/macd.js +11 -10
  503. package/js/indicators/macd.js.map +1 -8
  504. package/js/indicators/macd.src.js +10 -6
  505. package/js/indicators/mfi.js +5 -3
  506. package/js/indicators/mfi.js.map +1 -8
  507. package/js/indicators/mfi.src.js +6 -2
  508. package/js/indicators/momentum.js +4 -3
  509. package/js/indicators/momentum.js.map +1 -8
  510. package/js/indicators/momentum.src.js +7 -3
  511. package/js/indicators/pivot-points.js +8 -7
  512. package/js/indicators/pivot-points.js.map +1 -8
  513. package/js/indicators/pivot-points.src.js +12 -3
  514. package/js/indicators/price-envelopes.js +7 -6
  515. package/js/indicators/price-envelopes.js.map +1 -8
  516. package/js/indicators/price-envelopes.src.js +7 -3
  517. package/js/indicators/psar.js +5 -4
  518. package/js/indicators/psar.js.map +1 -8
  519. package/js/indicators/psar.src.js +6 -2
  520. package/js/indicators/roc.js +4 -3
  521. package/js/indicators/roc.js.map +1 -8
  522. package/js/indicators/roc.src.js +6 -2
  523. package/js/indicators/rsi.js +4 -3
  524. package/js/indicators/rsi.js.map +1 -8
  525. package/js/indicators/rsi.src.js +6 -2
  526. package/js/indicators/stochastic.js +7 -5
  527. package/js/indicators/stochastic.js.map +1 -8
  528. package/js/indicators/stochastic.src.js +14 -8
  529. package/js/indicators/volume-by-price.js +13 -12
  530. package/js/indicators/volume-by-price.js.map +1 -8
  531. package/js/indicators/volume-by-price.src.js +6 -2
  532. package/js/indicators/vwap.js +4 -3
  533. package/js/indicators/vwap.js.map +1 -8
  534. package/js/indicators/vwap.src.js +6 -2
  535. package/js/indicators/wma.js +4 -3
  536. package/js/indicators/wma.js.map +1 -8
  537. package/js/indicators/wma.src.js +6 -2
  538. package/js/indicators/zigzag.js +5 -3
  539. package/js/indicators/zigzag.js.map +1 -8
  540. package/js/indicators/zigzag.src.js +6 -2
  541. package/js/modules/accessibility.js +52 -51
  542. package/js/modules/accessibility.js.map +1 -8
  543. package/js/modules/accessibility.src.js +86 -45
  544. package/js/modules/annotations.js +22 -21
  545. package/js/modules/annotations.js.map +1 -8
  546. package/js/modules/annotations.src.js +8 -4
  547. package/js/modules/arrow-symbols.js +13 -0
  548. package/js/modules/arrow-symbols.js.map +1 -0
  549. package/js/modules/arrow-symbols.src.js +138 -0
  550. package/js/modules/boost-canvas.js +15 -13
  551. package/js/modules/boost-canvas.js.map +1 -8
  552. package/js/modules/boost-canvas.src.js +24 -9
  553. package/js/modules/boost.js +57 -52
  554. package/js/modules/boost.js.map +1 -8
  555. package/js/modules/boost.src.js +305 -138
  556. package/js/modules/broken-axis.js +12 -10
  557. package/js/modules/broken-axis.js.map +1 -8
  558. package/js/modules/broken-axis.src.js +175 -136
  559. package/js/modules/bullet.js +3 -2
  560. package/js/modules/bullet.js.map +1 -8
  561. package/js/modules/bullet.src.js +7 -3
  562. package/js/modules/current-date-indicator.js +13 -0
  563. package/js/modules/current-date-indicator.js.map +1 -0
  564. package/js/modules/current-date-indicator.src.js +120 -0
  565. package/js/modules/data.js +25 -24
  566. package/js/modules/data.js.map +1 -8
  567. package/js/modules/data.src.js +14 -8
  568. package/js/modules/drag-panes.js +9 -8
  569. package/js/modules/drag-panes.js.map +1 -8
  570. package/js/modules/drag-panes.src.js +5 -1
  571. package/js/modules/draggable-points.js +38 -0
  572. package/js/modules/draggable-points.js.map +1 -0
  573. package/js/modules/draggable-points.src.js +2281 -0
  574. package/js/modules/drilldown.js +20 -19
  575. package/js/modules/drilldown.js.map +1 -8
  576. package/js/modules/drilldown.src.js +9 -3
  577. package/js/modules/export-data.js +20 -19
  578. package/js/modules/export-data.js.map +1 -8
  579. package/js/modules/export-data.src.js +17 -3
  580. package/js/modules/exporting.js +24 -23
  581. package/js/modules/exporting.js.map +1 -8
  582. package/js/modules/exporting.src.js +68 -38
  583. package/js/modules/funnel.js +8 -6
  584. package/js/modules/funnel.js.map +1 -8
  585. package/js/modules/funnel.src.js +11 -7
  586. package/js/modules/gantt.js +81 -18
  587. package/js/modules/gantt.js.map +1 -8
  588. package/js/modules/gantt.src.js +5494 -372
  589. package/js/modules/grid-axis.js +16 -10
  590. package/js/modules/grid-axis.js.map +1 -8
  591. package/js/modules/grid-axis.src.js +735 -293
  592. package/js/modules/heatmap.js +22 -21
  593. package/js/modules/heatmap.js.map +1 -8
  594. package/js/modules/heatmap.src.js +137 -62
  595. package/js/modules/histogram-bellcurve.js +9 -8
  596. package/js/modules/histogram-bellcurve.js.map +1 -8
  597. package/js/modules/histogram-bellcurve.src.js +35 -29
  598. package/js/modules/item-series.js +6 -4
  599. package/js/modules/item-series.js.map +1 -8
  600. package/js/modules/item-series.src.js +42 -13
  601. package/js/modules/map.js +63 -62
  602. package/js/modules/map.js.map +1 -8
  603. package/js/modules/map.src.js +353 -145
  604. package/js/modules/no-data-to-display.js +5 -4
  605. package/js/modules/no-data-to-display.js.map +1 -8
  606. package/js/modules/no-data-to-display.src.js +10 -6
  607. package/js/modules/offline-exporting.js +14 -13
  608. package/js/modules/offline-exporting.js.map +1 -8
  609. package/js/modules/offline-exporting.src.js +6 -2
  610. package/js/modules/oldie.js +29 -27
  611. package/js/modules/oldie.js.map +1 -8
  612. package/js/modules/oldie.src.js +20 -11
  613. package/js/modules/overlapping-datalabels.js +4 -3
  614. package/js/modules/overlapping-datalabels.js.map +1 -8
  615. package/js/modules/overlapping-datalabels.src.js +6 -2
  616. package/js/modules/parallel-coordinates.js +10 -9
  617. package/js/modules/parallel-coordinates.js.map +1 -8
  618. package/js/modules/parallel-coordinates.src.js +9 -4
  619. package/js/modules/pareto.js +5 -4
  620. package/js/modules/pareto.js.map +1 -8
  621. package/js/modules/pareto.src.js +6 -2
  622. package/js/modules/pathfinder.js +34 -0
  623. package/js/modules/pathfinder.js.map +1 -0
  624. package/js/modules/pathfinder.src.js +2106 -0
  625. package/js/modules/pattern-fill.js +13 -12
  626. package/js/modules/pattern-fill.js.map +1 -8
  627. package/js/modules/pattern-fill.src.js +5 -1
  628. package/js/modules/sankey.js +13 -12
  629. package/js/modules/sankey.js.map +1 -8
  630. package/js/modules/sankey.src.js +29 -9
  631. package/js/modules/series-label.js +17 -15
  632. package/js/modules/series-label.js.map +1 -8
  633. package/js/modules/series-label.src.js +12 -8
  634. package/js/modules/solid-gauge.js +9 -8
  635. package/js/modules/solid-gauge.js.map +1 -8
  636. package/js/modules/solid-gauge.src.js +14 -7
  637. package/js/modules/static-scale.js +4 -3
  638. package/js/modules/static-scale.js.map +1 -8
  639. package/js/modules/static-scale.src.js +69 -26
  640. package/js/modules/stock.js +136 -132
  641. package/js/modules/stock.js.map +1 -8
  642. package/js/modules/stock.src.js +1543 -499
  643. package/js/modules/streamgraph.js +4 -3
  644. package/js/modules/streamgraph.js.map +1 -8
  645. package/js/modules/streamgraph.src.js +10 -6
  646. package/js/modules/sunburst.js +40 -39
  647. package/js/modules/sunburst.js.map +1 -8
  648. package/js/modules/sunburst.src.js +38 -31
  649. package/js/modules/tilemap.js +19 -18
  650. package/js/modules/tilemap.js.map +1 -8
  651. package/js/modules/tilemap.src.js +363 -190
  652. package/js/modules/treegrid.js +51 -0
  653. package/js/modules/treegrid.js.map +1 -0
  654. package/js/modules/treegrid.src.js +2759 -0
  655. package/js/modules/treemap.js +27 -26
  656. package/js/modules/treemap.js.map +1 -8
  657. package/js/modules/treemap.src.js +34 -27
  658. package/js/modules/variable-pie.js +8 -7
  659. package/js/modules/variable-pie.js.map +1 -8
  660. package/js/modules/variable-pie.src.js +8 -4
  661. package/js/modules/variwide.js +8 -7
  662. package/js/modules/variwide.js.map +1 -8
  663. package/js/modules/variwide.src.js +42 -26
  664. package/js/modules/vector.js +7 -6
  665. package/js/modules/vector.js.map +1 -8
  666. package/js/modules/vector.src.js +104 -30
  667. package/js/modules/windbarb.js +11 -10
  668. package/js/modules/windbarb.js.map +1 -8
  669. package/js/modules/windbarb.src.js +11 -7
  670. package/js/modules/wordcloud.js +18 -15
  671. package/js/modules/wordcloud.js.map +1 -8
  672. package/js/modules/wordcloud.src.js +142 -53
  673. package/js/modules/xrange.js +12 -10
  674. package/js/modules/xrange.js.map +1 -8
  675. package/js/modules/xrange.src.js +262 -71
  676. package/js/themes/avocado.js +3 -2
  677. package/js/themes/avocado.js.map +1 -8
  678. package/js/themes/avocado.src.js +5 -1
  679. package/js/themes/dark-blue.js +9 -8
  680. package/js/themes/dark-blue.js.map +1 -8
  681. package/js/themes/dark-blue.src.js +7 -3
  682. package/js/themes/dark-green.js +9 -8
  683. package/js/themes/dark-green.js.map +1 -8
  684. package/js/themes/dark-green.src.js +7 -3
  685. package/js/themes/dark-unica.js +9 -7
  686. package/js/themes/dark-unica.js.map +1 -8
  687. package/js/themes/dark-unica.src.js +7 -3
  688. package/js/themes/gray.js +10 -8
  689. package/js/themes/gray.js.map +1 -8
  690. package/js/themes/gray.src.js +7 -3
  691. package/js/themes/grid-light.js +5 -4
  692. package/js/themes/grid-light.js.map +1 -8
  693. package/js/themes/grid-light.src.js +7 -3
  694. package/js/themes/grid.js +6 -5
  695. package/js/themes/grid.js.map +1 -8
  696. package/js/themes/grid.src.js +7 -3
  697. package/js/themes/sand-signika.js +6 -5
  698. package/js/themes/sand-signika.js.map +1 -8
  699. package/js/themes/sand-signika.src.js +7 -3
  700. package/js/themes/skies.js +6 -5
  701. package/js/themes/skies.js.map +1 -8
  702. package/js/themes/skies.src.js +7 -3
  703. package/js/themes/sunset.js +3 -2
  704. package/js/themes/sunset.js.map +1 -8
  705. package/js/themes/sunset.src.js +5 -1
  706. package/modules/accessibility.js +53 -51
  707. package/modules/accessibility.js.map +1 -8
  708. package/modules/accessibility.src.js +86 -45
  709. package/modules/annotations.js +24 -22
  710. package/modules/annotations.js.map +1 -8
  711. package/modules/annotations.src.js +8 -4
  712. package/modules/arrow-symbols.js +13 -0
  713. package/modules/arrow-symbols.js.map +1 -0
  714. package/modules/arrow-symbols.src.js +138 -0
  715. package/modules/boost-canvas.js +15 -13
  716. package/modules/boost-canvas.js.map +1 -8
  717. package/modules/boost-canvas.src.js +24 -9
  718. package/modules/boost.js +57 -52
  719. package/modules/boost.js.map +1 -8
  720. package/modules/boost.src.js +305 -138
  721. package/modules/broken-axis.js +12 -10
  722. package/modules/broken-axis.js.map +1 -8
  723. package/modules/broken-axis.src.js +175 -136
  724. package/modules/bullet.js +6 -5
  725. package/modules/bullet.js.map +1 -8
  726. package/modules/bullet.src.js +7 -3
  727. package/modules/current-date-indicator.js +13 -0
  728. package/modules/current-date-indicator.js.map +1 -0
  729. package/modules/current-date-indicator.src.js +120 -0
  730. package/modules/data.js +25 -24
  731. package/modules/data.js.map +1 -8
  732. package/modules/data.src.js +14 -8
  733. package/modules/drag-panes.js +9 -8
  734. package/modules/drag-panes.js.map +1 -8
  735. package/modules/drag-panes.src.js +5 -1
  736. package/modules/draggable-points.js +38 -0
  737. package/modules/draggable-points.js.map +1 -0
  738. package/modules/draggable-points.src.js +2281 -0
  739. package/modules/drilldown.js +16 -15
  740. package/modules/drilldown.js.map +1 -8
  741. package/modules/drilldown.src.js +9 -3
  742. package/modules/export-data.js +20 -19
  743. package/modules/export-data.js.map +1 -8
  744. package/modules/export-data.src.js +17 -3
  745. package/modules/exporting.js +23 -21
  746. package/modules/exporting.js.map +1 -8
  747. package/modules/exporting.src.js +68 -38
  748. package/modules/funnel.js +8 -7
  749. package/modules/funnel.js.map +1 -8
  750. package/modules/funnel.src.js +11 -7
  751. package/modules/gantt.js +84 -19
  752. package/modules/gantt.js.map +1 -8
  753. package/modules/gantt.src.js +5557 -379
  754. package/modules/grid-axis.js +17 -10
  755. package/modules/grid-axis.js.map +1 -8
  756. package/modules/grid-axis.src.js +736 -293
  757. package/modules/heatmap.js +22 -21
  758. package/modules/heatmap.js.map +1 -8
  759. package/modules/heatmap.src.js +139 -63
  760. package/modules/histogram-bellcurve.js +9 -8
  761. package/modules/histogram-bellcurve.js.map +1 -8
  762. package/modules/histogram-bellcurve.src.js +35 -29
  763. package/modules/item-series.js +6 -4
  764. package/modules/item-series.js.map +1 -8
  765. package/modules/item-series.src.js +42 -13
  766. package/modules/map.js +65 -64
  767. package/modules/map.js.map +1 -8
  768. package/modules/map.src.js +365 -152
  769. package/modules/no-data-to-display.js +5 -4
  770. package/modules/no-data-to-display.js.map +1 -8
  771. package/modules/no-data-to-display.src.js +10 -6
  772. package/modules/offline-exporting.js +14 -12
  773. package/modules/offline-exporting.js.map +1 -8
  774. package/modules/offline-exporting.src.js +6 -2
  775. package/modules/oldie.js +29 -27
  776. package/modules/oldie.js.map +1 -8
  777. package/modules/oldie.src.js +20 -11
  778. package/modules/overlapping-datalabels.js +4 -3
  779. package/modules/overlapping-datalabels.js.map +1 -8
  780. package/modules/overlapping-datalabels.src.js +6 -2
  781. package/modules/parallel-coordinates.js +10 -9
  782. package/modules/parallel-coordinates.js.map +1 -8
  783. package/modules/parallel-coordinates.src.js +9 -4
  784. package/modules/pareto.js +5 -4
  785. package/modules/pareto.js.map +1 -8
  786. package/modules/pareto.src.js +6 -2
  787. package/modules/pathfinder.js +35 -0
  788. package/modules/pathfinder.js.map +1 -0
  789. package/modules/pathfinder.src.js +2128 -0
  790. package/modules/pattern-fill.js +13 -12
  791. package/modules/pattern-fill.js.map +1 -8
  792. package/modules/pattern-fill.src.js +5 -1
  793. package/modules/sankey.js +13 -12
  794. package/modules/sankey.js.map +1 -8
  795. package/modules/sankey.src.js +34 -12
  796. package/modules/series-label.js +17 -15
  797. package/modules/series-label.js.map +1 -8
  798. package/modules/series-label.src.js +12 -8
  799. package/modules/solid-gauge.js +9 -8
  800. package/modules/solid-gauge.js.map +1 -8
  801. package/modules/solid-gauge.src.js +16 -9
  802. package/modules/static-scale.js +4 -3
  803. package/modules/static-scale.js.map +1 -8
  804. package/modules/static-scale.src.js +69 -26
  805. package/modules/stock.js +143 -139
  806. package/modules/stock.js.map +1 -8
  807. package/modules/stock.src.js +1701 -566
  808. package/modules/streamgraph.js +4 -3
  809. package/modules/streamgraph.js.map +1 -8
  810. package/modules/streamgraph.src.js +10 -6
  811. package/modules/sunburst.js +42 -41
  812. package/modules/sunburst.js.map +1 -8
  813. package/modules/sunburst.src.js +39 -32
  814. package/modules/tilemap.js +18 -17
  815. package/modules/tilemap.js.map +1 -8
  816. package/modules/tilemap.src.js +365 -191
  817. package/modules/treegrid.js +52 -0
  818. package/modules/treegrid.js.map +1 -0
  819. package/modules/treegrid.src.js +2797 -0
  820. package/modules/treemap.js +29 -28
  821. package/modules/treemap.js.map +1 -8
  822. package/modules/treemap.src.js +35 -28
  823. package/modules/variable-pie.js +8 -7
  824. package/modules/variable-pie.js.map +1 -8
  825. package/modules/variable-pie.src.js +8 -4
  826. package/modules/variwide.js +8 -7
  827. package/modules/variwide.js.map +1 -8
  828. package/modules/variwide.src.js +42 -26
  829. package/modules/vector.js +7 -6
  830. package/modules/vector.js.map +1 -8
  831. package/modules/vector.src.js +104 -30
  832. package/modules/windbarb.js +11 -10
  833. package/modules/windbarb.js.map +1 -8
  834. package/modules/windbarb.src.js +11 -7
  835. package/modules/wordcloud.js +18 -15
  836. package/modules/wordcloud.js.map +1 -8
  837. package/modules/wordcloud.src.js +142 -53
  838. package/modules/xrange.js +13 -11
  839. package/modules/xrange.js.map +1 -8
  840. package/modules/xrange.src.js +264 -80
  841. package/package.json +1 -1
  842. package/themes/avocado.js +3 -2
  843. package/themes/avocado.js.map +1 -8
  844. package/themes/avocado.src.js +5 -1
  845. package/themes/dark-blue.js +9 -8
  846. package/themes/dark-blue.js.map +1 -8
  847. package/themes/dark-blue.src.js +7 -3
  848. package/themes/dark-green.js +9 -8
  849. package/themes/dark-green.js.map +1 -8
  850. package/themes/dark-green.src.js +7 -3
  851. package/themes/dark-unica.js +9 -7
  852. package/themes/dark-unica.js.map +1 -8
  853. package/themes/dark-unica.src.js +7 -3
  854. package/themes/gray.js +10 -8
  855. package/themes/gray.js.map +1 -8
  856. package/themes/gray.src.js +7 -3
  857. package/themes/grid-light.js +5 -4
  858. package/themes/grid-light.js.map +1 -8
  859. package/themes/grid-light.src.js +7 -3
  860. package/themes/grid.js +6 -5
  861. package/themes/grid.js.map +1 -8
  862. package/themes/grid.src.js +7 -3
  863. package/themes/sand-signika.js +6 -5
  864. package/themes/sand-signika.js.map +1 -8
  865. package/themes/sand-signika.src.js +7 -3
  866. package/themes/skies.js +6 -5
  867. package/themes/skies.js.map +1 -8
  868. package/themes/skies.src.js +7 -3
  869. package/themes/sunset.js +3 -2
  870. package/themes/sunset.js.map +1 -8
  871. package/themes/sunset.src.js +5 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v6.1.1 (2018-06-27)
2
+ * @license Highcharts JS v6.2.0 (2018-10-17)
3
3
  * GridAxis
4
4
  *
5
5
  * (c) 2016 Lars A. V. Cabrera
@@ -12,6 +12,10 @@
12
12
  (function (factory) {
13
13
  if (typeof module === 'object' && module.exports) {
14
14
  module.exports = factory;
15
+ } else if (typeof define === 'function' && define.amd) {
16
+ define(function () {
17
+ return factory;
18
+ });
15
19
  } else {
16
20
  factory(Highcharts);
17
21
  }
@@ -24,14 +28,78 @@
24
28
  * License: www.highcharts.com/license
25
29
  */
26
30
 
27
- var each = H.each,
28
- isObject = H.isObject,
31
+ var argsToArray = function (args) {
32
+ return Array.prototype.slice.call(args, 1);
33
+ },
34
+ dateFormat = H.dateFormat,
35
+ defined = H.defined,
36
+ each = H.each,
37
+ isArray = H.isArray,
38
+ isNumber = H.isNumber,
39
+ isObject = function (x) {
40
+ // Always use strict mode
41
+ return H.isObject(x, true);
42
+ },
43
+ merge = H.merge,
29
44
  pick = H.pick,
30
45
  wrap = H.wrap,
31
46
  Axis = H.Axis,
32
- Chart = H.Chart,
33
47
  Tick = H.Tick;
34
48
 
49
+ /**
50
+ * Set grid options for the axis labels. Requires Highcharts Gantt.
51
+ *
52
+ * @type {object}
53
+ * @since 6.2.0
54
+ * @product gantt
55
+ * @apioption xAxis.grid
56
+ */
57
+
58
+ /**
59
+ * Enable grid on the axis labels. Defaults to true for Gantt charts.
60
+ *
61
+ * @type {boolean}
62
+ * @since 6.2.0
63
+ * @default true
64
+ * @product gantt
65
+ * @apioption xAxis.grid.enabled
66
+ */
67
+
68
+ /**
69
+ * Set specific options for each column (or row for horizontal axes) in the
70
+ * grid. Each extra column/row is its own axis, and the axis options can be set
71
+ * here.
72
+ *
73
+ * @type {Array<object>}
74
+ * @sample gantt/demo/left-axis-table
75
+ * Left axis as a table
76
+ * @apioption xAxis.grid.columns
77
+ */
78
+
79
+ /**
80
+ * Set border color for the label grid lines.
81
+ *
82
+ * @type {Highcharts.ColorString}
83
+ * @apioption xAxis.grid.borderColor
84
+ */
85
+
86
+ /**
87
+ * Set border width of the label grid lines.
88
+ *
89
+ * @type {number}
90
+ * @default 1
91
+ * @apioption xAxis.grid.borderWidth
92
+ */
93
+
94
+ /**
95
+ * Set cell height for grid axis labels. By default this is calculated from font
96
+ * size.
97
+ *
98
+ * @type {number}
99
+ * @default null
100
+ * @apioption xAxis.grid.cellHeight
101
+ */
102
+
35
103
 
36
104
  // Enum for which side the axis is on.
37
105
  // Maps to axis.side
@@ -46,6 +114,14 @@
46
114
  3: 'left'
47
115
  };
48
116
 
117
+ /**
118
+ * Checks if an axis is a navigator axis.
119
+ * @return {Boolean} true if axis is found in axis.chart.navigator
120
+ */
121
+ Axis.prototype.isNavigatorAxis = function () {
122
+ return /highcharts-navigator-[xy]axis/.test(this.options.className);
123
+ };
124
+
49
125
  /**
50
126
  * Checks if an axis is the outer axis in its dimension. Since
51
127
  * axes are placed outwards in order, the axis with the highest
@@ -60,11 +136,12 @@
60
136
  */
61
137
  Axis.prototype.isOuterAxis = function () {
62
138
  var axis = this,
139
+ chart = axis.chart,
63
140
  thisIndex = -1,
64
141
  isOuter = true;
65
142
 
66
- each(this.chart.axes, function (otherAxis, index) {
67
- if (otherAxis.side === axis.side) {
143
+ each(chart.axes, function (otherAxis, index) {
144
+ if (otherAxis.side === axis.side && !otherAxis.isNavigatorAxis()) {
68
145
  if (otherAxis === axis) {
69
146
  // Get the index of the axis in question
70
147
  thisIndex = index;
@@ -73,9 +150,8 @@
73
150
  // not been found yet
74
151
  } else if (thisIndex >= 0 && index > thisIndex) {
75
152
  // There was an axis on the same side with a
76
- // higher index. Exit the loop.
153
+ // higher index.
77
154
  isOuter = false;
78
- return;
79
155
  }
80
156
  }
81
157
  });
@@ -85,99 +161,37 @@
85
161
  };
86
162
 
87
163
  /**
88
- * Shortcut function to Tick.label.getBBox().width.
89
- *
90
- * @return {number} width - the width of the tick label
164
+ * Get the largest label width and height.
165
+ * @param {object} ticks All the ticks on one axis.
166
+ * @param {array} tickPositions All the tick positions on one axis.
167
+ * @return {object} object containing the properties height and width.
91
168
  */
92
- Tick.prototype.getLabelWidth = function () {
93
- return this.label.getBBox().width;
94
- };
95
-
96
- /**
97
- * Get the maximum label length.
98
- * This function can be used in states where the axis.maxLabelLength has not
99
- * been set.
100
- *
101
- * @param {boolean} force - Optional parameter to force a new calculation, even
102
- * if a value has already been set
103
- * @return {number} maxLabelLength - the maximum label length of the axis
104
- */
105
- Axis.prototype.getMaxLabelLength = function (force) {
106
- var tickPositions = this.tickPositions,
107
- ticks = this.ticks,
108
- maxLabelLength = 0;
109
-
110
- if (!this.maxLabelLength || force) {
111
- each(tickPositions, function (tick) {
112
- tick = ticks[tick];
113
- if (tick && tick.labelLength > maxLabelLength) {
114
- maxLabelLength = tick.labelLength;
115
- }
116
- });
117
- this.maxLabelLength = maxLabelLength;
118
- }
119
- return this.maxLabelLength;
120
- };
121
-
122
- /**
123
- * Adds the axis defined in axis.options.title
124
- */
125
- Axis.prototype.addTitle = function () {
126
- var axis = this,
127
- renderer = axis.chart.renderer,
128
- axisParent = axis.axisParent,
129
- horiz = axis.horiz,
130
- opposite = axis.opposite,
131
- options = axis.options,
132
- axisTitleOptions = options.title,
133
- hasData,
134
- showAxis,
135
- textAlign;
136
-
137
- // For reuse in Axis.render
138
- hasData = axis.hasData();
139
- axis.showAxis = showAxis = hasData || pick(options.showEmpty, true);
140
-
141
- // Disregard title generation in original Axis.getOffset()
142
- options.title = '';
143
-
144
- if (!axis.axisTitle) {
145
- textAlign = axisTitleOptions.textAlign;
146
- if (!textAlign) {
147
- textAlign = (horiz ? {
148
- low: 'left',
149
- middle: 'center',
150
- high: 'right'
151
- } : {
152
- low: opposite ? 'right' : 'left',
153
- middle: 'center',
154
- high: opposite ? 'left' : 'right'
155
- })[axisTitleOptions.align];
169
+ Axis.prototype.getMaxLabelDimensions = function (ticks, tickPositions) {
170
+ var dimensions = {
171
+ width: 0,
172
+ height: 0
173
+ };
174
+
175
+ each(tickPositions, function (pos) {
176
+ var tick = ticks[pos],
177
+ tickHeight = 0,
178
+ tickWidth = 0,
179
+ label;
180
+
181
+ if (isObject(tick)) {
182
+ label = isObject(tick.label) ? tick.label : {};
183
+
184
+ // Find width and height of tick
185
+ tickHeight = label.getBBox ? label.getBBox().height : 0;
186
+ tickWidth = isNumber(label.textPxLength) ? label.textPxLength : 0;
187
+
188
+ // Update the result if width and/or height are larger
189
+ dimensions.height = Math.max(tickHeight, dimensions.height);
190
+ dimensions.width = Math.max(tickWidth, dimensions.width);
156
191
  }
157
- axis.axisTitle = renderer.text(
158
- axisTitleOptions.text,
159
- 0,
160
- 0,
161
- axisTitleOptions.useHTML
162
- )
163
- .attr({
164
- zIndex: 7,
165
- rotation: axisTitleOptions.rotation || 0,
166
- align: textAlign
167
- })
168
- .addClass('highcharts-axis-title')
169
-
170
- .css(axisTitleOptions.style)
171
-
172
- // Add to axisParent instead of axisGroup, to ignore the space
173
- // it takes
174
- .add(axisParent);
175
- axis.axisTitle.isNew = true;
176
- }
177
-
192
+ });
178
193
 
179
- // hide or show the title depending on whether showEmpty is set
180
- axis.axisTitle[showAxis ? 'show' : 'hide'](true);
194
+ return dimensions;
181
195
  };
182
196
 
183
197
  /**
@@ -186,106 +200,172 @@
186
200
  H.dateFormats = {
187
201
  // Week number
188
202
  W: function (timestamp) {
189
- var date = new this.Date(timestamp),
190
- day = this.get('Day', date) === 0 ? 7 : this.get('Day', date),
191
- time = date.getTime(),
192
- startOfYear = new Date(this.get('FullYear', date), 0, 1, -6),
193
- dayNumber;
194
- this.set('Date', date, this.get('Date', date) + 4 - day);
195
- dayNumber = Math.floor((time - startOfYear) / 86400000);
196
- return 1 + Math.floor(dayNumber / 7);
203
+ var d = new Date(timestamp),
204
+ yearStart,
205
+ weekNo;
206
+ d.setHours(0, 0, 0, 0);
207
+ d.setDate(d.getDate() - (d.getDay() || 7));
208
+ yearStart = new Date(d.getFullYear(), 0, 1);
209
+ weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
210
+ return weekNo;
197
211
  },
198
212
  // First letter of the day of the week, e.g. 'M' for 'Monday'.
199
213
  E: function (timestamp) {
200
- return this.dateFormat('%a', timestamp, true).charAt(0);
214
+ return dateFormat('%a', timestamp, true).charAt(0);
201
215
  }
202
216
  };
203
217
 
204
218
  /**
205
- * Prevents adding the last tick label if the axis is not a category axis.
206
- *
207
- * Since numeric labels are normally placed at starts and ends of a range of
208
- * value, and this module makes the label point at the value, an "extra" label
209
- * would appear.
210
- *
219
+ * If chart is stockChart, always return 'left' to avoid labels being placed
220
+ * inside chart. Stock charts place yAxis labels inside by default.
211
221
  * @param {function} proceed - the original function
222
+ * @return {string} 'left' if stockChart, or auto calculated alignment
212
223
  */
213
- wrap(Tick.prototype, 'addLabel', function (proceed) {
214
- var axis = this.axis,
215
- isCategoryAxis = axis.options.categories !== undefined,
216
- tickPositions = axis.tickPositions,
217
- lastTick = tickPositions[tickPositions.length - 1],
218
- isLastTick = this.pos !== lastTick;
219
-
220
- if (!axis.options.grid || isCategoryAxis || isLastTick) {
221
- proceed.apply(this);
224
+ wrap(Axis.prototype, 'autoLabelAlign', function (proceed) {
225
+ var axis = this,
226
+ retVal;
227
+ if (axis.chart.isStock) {
228
+ retVal = 'left';
229
+ } else {
230
+ retVal = proceed.apply(axis, argsToArray(arguments));
222
231
  }
232
+ return retVal;
223
233
  });
224
234
 
225
235
  /**
226
- * Center tick labels vertically and horizontally between ticks
236
+ * Center tick labels in cells.
227
237
  *
228
238
  * @param {function} proceed - the original function
229
239
  *
230
240
  * @return {object} object - an object containing x and y positions
231
- * for the tick
241
+ * for the tick
232
242
  */
233
- wrap(Tick.prototype, 'getLabelPosition', function (proceed, x, y, label) {
234
- var retVal = proceed.apply(this, Array.prototype.slice.call(arguments, 1)),
235
- axis = this.axis,
243
+ wrap(Tick.prototype, 'getLabelPosition', function (proceed, x, y, label, horiz,
244
+ labelOpts, tickmarkOffset, index) {
245
+ var tick = this,
246
+ axis = tick.axis,
247
+ reversed = axis.reversed,
248
+ chart = axis.chart,
236
249
  options = axis.options,
237
- tickInterval = options.tickInterval || 1,
238
- newX,
239
- newPos,
240
- axisHeight,
241
- fontSize,
242
- labelMetrics,
243
- lblB,
244
- lblH,
245
- labelCenter;
246
-
247
- // Only center tick labels if axis has option grid: true
248
- if (options.grid) {
249
- fontSize = options.labels.style.fontSize;
250
- labelMetrics = axis.chart.renderer.fontMetrics(fontSize, label);
251
- lblB = labelMetrics.b;
252
- lblH = labelMetrics.h;
253
-
254
- if (axis.horiz && options.categories === undefined) {
255
- // Center x position
256
- axisHeight = axis.axisGroup.getBBox().height;
257
- newPos = this.pos + tickInterval / 2;
258
- retVal.x = axis.translate(newPos) + axis.left;
259
- labelCenter = (axisHeight / 2) + (lblH / 2) - Math.abs(lblH - lblB);
260
-
261
- // Center y position
262
- if (axis.side === axisSide.top) {
263
- retVal.y = y - labelCenter;
264
- } else {
265
- retVal.y = y + labelCenter;
266
- }
250
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
251
+ align = labelOpts.align,
252
+ // verticalAlign is currently not supported for axis.labels.
253
+ verticalAlign = 'middle', // labelOpts.verticalAlign,
254
+ side = axisSide[axis.side],
255
+ tickPositions = axis.tickPositions,
256
+ tickPos = tick.pos - tickmarkOffset,
257
+ nextTickPos = (
258
+ isNumber(tickPositions[index + 1]) ?
259
+ tickPositions[index + 1] - tickmarkOffset :
260
+ axis.max + tickmarkOffset
261
+ ),
262
+ tickSize = axis.tickSize('tick', true),
263
+ tickWidth = isArray(tickSize) ? tickSize[0] : 0,
264
+ crispCorr = tickSize && tickSize[1] / 2,
265
+ labelHeight,
266
+ lblMetrics,
267
+ lines,
268
+ result,
269
+ bottom,
270
+ top,
271
+ left,
272
+ right;
273
+
274
+ // Only center tick labels in grid axes
275
+ if (gridOptions.enabled === true) {
276
+ /**
277
+ * Calculate top and bottom positions of the cell.
278
+ */
279
+ if (side === 'top') {
280
+ bottom = axis.top + axis.offset;
281
+ top = bottom - tickWidth;
282
+ } else if (side === 'bottom') {
283
+ top = chart.chartHeight - axis.bottom + axis.offset;
284
+ bottom = top + tickWidth;
267
285
  } else {
268
- // Center y position
269
- if (options.categories === undefined) {
270
- newPos = this.pos + (tickInterval / 2);
271
- retVal.y = axis.translate(newPos) + axis.top + (lblB / 2);
272
- }
286
+ bottom = axis.top + axis.len - axis.translate(
287
+ reversed ? nextTickPos : tickPos
288
+ );
289
+ top = axis.top + axis.len - axis.translate(
290
+ reversed ? tickPos : nextTickPos
291
+ );
292
+ }
273
293
 
274
- // Center x position
275
- newX = (this.getLabelWidth() / 2) - (axis.maxLabelLength / 2);
276
- if (axis.side === axisSide.left) {
277
- retVal.x += newX;
278
- } else {
279
- retVal.x -= newX;
280
- }
294
+ /**
295
+ * Calculate left and right positions of the cell.
296
+ */
297
+ if (side === 'right') {
298
+ left = chart.chartWidth - axis.right + axis.offset;
299
+ right = left + tickWidth;
300
+ } else if (side === 'left') {
301
+ right = axis.left + axis.offset;
302
+ left = right - tickWidth;
303
+ } else {
304
+ left = Math.round(axis.left + axis.translate(
305
+ reversed ? nextTickPos : tickPos
306
+ )) - crispCorr;
307
+ right = Math.round(axis.left + axis.translate(
308
+ reversed ? tickPos : nextTickPos
309
+ )) - crispCorr;
310
+ }
311
+
312
+ tick.slotWidth = right - left;
313
+
314
+ /**
315
+ * Calculate the positioning of the label based on alignment.
316
+ */
317
+ result = {
318
+ x: (
319
+ align === 'left' ?
320
+ left :
321
+ align === 'right' ?
322
+ right :
323
+ left + ((right - left) / 2) // default to center
324
+ ),
325
+ y: (
326
+ verticalAlign === 'top' ?
327
+ top :
328
+ verticalAlign === 'bottom' ?
329
+ bottom :
330
+ top + ((bottom - top) / 2) // default to middle
331
+ )
332
+ };
333
+
334
+ lblMetrics = chart.renderer.fontMetrics(
335
+ labelOpts.style.fontSize,
336
+ label.element
337
+ );
338
+ labelHeight = label.getBBox().height;
339
+
340
+ // Adjustment to y position to align the label correctly.
341
+ // Would be better to have a setter or similar for this.
342
+ if (!labelOpts.useHTML) {
343
+ lines = Math.round(labelHeight / lblMetrics.h);
344
+ result.y += (
345
+ // Center the label
346
+ // TODO: why does this actually center the label?
347
+ ((lblMetrics.b - (lblMetrics.h - lblMetrics.f)) / 2) +
348
+ // Adjust for height of additional lines.
349
+ -(((lines - 1) * lblMetrics.h) / 2)
350
+ );
351
+ } else {
352
+ result.y += (
353
+ // Readjust yCorr in htmlUpdateTransform
354
+ lblMetrics.b +
355
+ // Adjust for height of html label
356
+ -(labelHeight / 2)
357
+ );
281
358
  }
359
+
360
+ result.x += (axis.horiz && labelOpts.x || 0);
361
+ } else {
362
+ result = proceed.apply(tick, argsToArray(arguments));
282
363
  }
283
- return retVal;
364
+ return result;
284
365
  });
285
366
 
286
-
287
367
  /**
288
- * Draw vertical ticks extra long to create cell floors and roofs.
368
+ * Draw vertical axis ticks extra long to create cell floors and roofs.
289
369
  * Overrides the tickLength for vertical axes.
290
370
  *
291
371
  * @param {function} proceed - the original function
@@ -293,105 +373,400 @@
293
373
  */
294
374
  wrap(Axis.prototype, 'tickSize', function (proceed) {
295
375
  var axis = this,
296
- retVal = proceed.apply(axis, Array.prototype.slice.call(arguments, 1)),
376
+ dimensions = axis.maxLabelDimensions,
377
+ options = axis.options,
378
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
379
+ retVal = proceed.apply(axis, argsToArray(arguments)),
297
380
  labelPadding,
298
381
  distance;
299
382
 
300
- if (axis.options.grid && !axis.horiz) {
383
+ if (gridOptions.enabled === true) {
301
384
  labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
302
- if (!axis.maxLabelLength) {
303
- axis.maxLabelLength = axis.getMaxLabelLength();
304
- }
305
- distance = axis.maxLabelLength + labelPadding;
385
+ distance = labelPadding +
386
+ (axis.horiz ? dimensions.height : dimensions.width);
306
387
 
307
- retVal[0] = distance;
388
+ if (isArray(retVal)) {
389
+ retVal[0] = distance;
390
+ } else {
391
+ retVal = [distance];
392
+ }
308
393
  }
309
394
  return retVal;
310
395
  });
311
396
 
397
+ wrap(Axis.prototype, 'getTitlePosition', function (proceed) {
398
+ var axis = this,
399
+ options = axis.options,
400
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {};
401
+
402
+ if (gridOptions.enabled === true) {
403
+ // compute anchor points for each of the title align options
404
+ var title = axis.axisTitle,
405
+ titleWidth = title && title.getBBox().width,
406
+ horiz = axis.horiz,
407
+ axisLeft = axis.left,
408
+ axisTop = axis.top,
409
+ axisWidth = axis.width,
410
+ axisHeight = axis.height,
411
+ axisTitleOptions = options.title,
412
+ opposite = axis.opposite,
413
+ offset = axis.offset,
414
+ tickSize = axis.tickSize() || [0],
415
+ xOption = axisTitleOptions.x || 0,
416
+ yOption = axisTitleOptions.y || 0,
417
+ titleMargin = pick(axisTitleOptions.margin, horiz ? 5 : 10),
418
+ titleFontSize = axis.chart.renderer.fontMetrics(
419
+ axisTitleOptions.style && axisTitleOptions.style.fontSize,
420
+ title
421
+ ).f,
422
+ // TODO account for alignment
423
+ // the position in the perpendicular direction of the axis
424
+ offAxis = (horiz ? axisTop + axisHeight : axisLeft) +
425
+ (horiz ? 1 : -1) * // horizontal axis reverses the margin
426
+ (opposite ? -1 : 1) * // so does opposite axes
427
+ (tickSize[0] / 2) +
428
+ (axis.side === axisSide.bottom ? titleFontSize : 0);
429
+
430
+ return {
431
+ x: horiz ?
432
+ axisLeft - titleWidth / 2 - titleMargin + xOption :
433
+ offAxis + (opposite ? axisWidth : 0) + offset + xOption,
434
+ y: horiz ?
435
+ (
436
+ offAxis -
437
+ (opposite ? axisHeight : 0) +
438
+ (opposite ? titleFontSize : -titleFontSize) / 2 +
439
+ offset +
440
+ yOption
441
+ ) :
442
+ axisTop - titleMargin + yOption
443
+ };
444
+ }
445
+
446
+ return proceed.apply(this, argsToArray(arguments));
447
+ });
448
+
312
449
  /**
313
- * Disregards space required by axisTitle, by adding axisTitle to axisParent
314
- * instead of axisGroup, and disregarding margins and offsets related to
315
- * axisTitle.
316
- *
317
- * @param {function} proceed - the original function
450
+ * Avoid altering tickInterval when reserving space.
318
451
  */
319
- wrap(Axis.prototype, 'getOffset', function (proceed) {
452
+ wrap(Axis.prototype, 'unsquish', function (proceed) {
320
453
  var axis = this,
321
- axisOffset = axis.chart.axisOffset,
322
- side = axis.side,
323
- axisHeight,
324
- tickSize,
325
454
  options = axis.options,
326
- axisTitleOptions = options.title,
327
- addTitle = axisTitleOptions &&
328
- axisTitleOptions.text &&
329
- axisTitleOptions.enabled !== false;
455
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {};
330
456
 
331
- if (axis.options.grid && isObject(axis.options.title)) {
457
+ if (gridOptions.enabled === true && this.categories) {
458
+ return this.tickInterval;
459
+ }
332
460
 
333
- tickSize = axis.tickSize('tick')[0];
334
- if (axisOffset[side] && tickSize) {
335
- axisHeight = axisOffset[side] + tickSize;
336
- }
461
+ return proceed.apply(this, argsToArray(arguments));
462
+ });
337
463
 
338
- if (addTitle) {
339
- // Use the custom addTitle() to add it, while preventing making room
340
- // for it
341
- axis.addTitle();
342
- }
464
+ /**
465
+ * Creates a left and right wall on horizontal axes:
466
+ * - Places leftmost tick at the start of the axis, to create a left wall
467
+ * - Ensures that the rightmost tick is at the end of the axis, to create a
468
+ * right wall.
469
+ *
470
+ * @param {function} proceed - the original function
471
+ * @param {object} options - the pure axis options as input by the user
472
+ */
473
+ H.addEvent(Axis, 'afterSetOptions', function (e) {
474
+ var options = this.options,
475
+ userOptions = e.userOptions,
476
+ gridAxisOptions,
477
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {};
478
+
479
+ if (gridOptions.enabled === true) {
480
+
481
+ // Merge the user options into default grid axis options so that when a
482
+ // user option is set, it takes presedence.
483
+ gridAxisOptions = merge(true, {
484
+
485
+ className: 'highcharts-grid-axis ' + (userOptions.className || ''),
486
+
487
+ dateTimeLabelFormats: {
488
+ hour: {
489
+ list: ['%H:%M', '%H']
490
+ },
491
+ day: {
492
+ list: ['%A, %e. %B', '%a, %e. %b', '%E']
493
+ },
494
+ week: {
495
+ list: ['Week %W', 'W%W']
496
+ },
497
+ month: {
498
+ list: ['%B', '%b', '%o']
499
+ }
500
+ },
343
501
 
344
- proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
502
+ grid: {
503
+ borderWidth: 1
504
+ },
345
505
 
346
- axisOffset[side] = pick(axisHeight, axisOffset[side]);
506
+ labels: {
507
+ padding: 2,
508
+ style: {
509
+ fontSize: '13px'
510
+ }
511
+ },
512
+
513
+ title: {
514
+ text: null,
515
+ reserveSpace: false,
516
+ rotation: 0
517
+ },
518
+
519
+ // In a grid axis, only allow one unit of certain types, for example
520
+ // we shouln't have one grid cell spanning two days.
521
+ units: [[
522
+ 'millisecond', // unit name
523
+ [1, 10, 100]
524
+ ], [
525
+ 'second',
526
+ [1, 10]
527
+ ], [
528
+ 'minute',
529
+ [1, 5, 15]
530
+ ], [
531
+ 'hour',
532
+ [1, 6]
533
+ ], [
534
+ 'day',
535
+ [1]
536
+ ], [
537
+ 'week',
538
+ [1]
539
+ ], [
540
+ 'month',
541
+ [1]
542
+ ], [
543
+ 'year',
544
+ null
545
+ ]]
546
+ }, userOptions);
547
+
548
+ // X-axis specific options
549
+ if (this.coll === 'xAxis') {
550
+
551
+ // For linked axes, tickPixelInterval is used only if the
552
+ // tickPositioner below doesn't run or returns undefined (like
553
+ // multiple years)
554
+ if (
555
+ defined(userOptions.linkedTo) &&
556
+ !defined(userOptions.tickPixelInterval)
557
+ ) {
558
+ gridAxisOptions.tickPixelInterval = 350;
559
+ }
347
560
 
561
+ // For the secondary grid axis, use the primary axis' tick intervals
562
+ // and return ticks one level higher.
563
+ if (
564
+ // Check for tick pixel interval in options
565
+ !defined(userOptions.tickPixelInterval) &&
566
+
567
+ // Only for linked axes
568
+ defined(userOptions.linkedTo) &&
569
+
570
+ !defined(userOptions.tickPositioner) &&
571
+ !defined(userOptions.tickInterval)
572
+ ) {
573
+ gridAxisOptions.tickPositioner = function (min, max) {
574
+
575
+ var parentInfo = (
576
+ this.linkedParent &&
577
+ this.linkedParent.tickPositions &&
578
+ this.linkedParent.tickPositions.info
579
+ );
580
+
581
+ if (parentInfo) {
582
+
583
+ var unitIdx,
584
+ count,
585
+ unitName,
586
+ i,
587
+ units = gridAxisOptions.units,
588
+ unitRange;
589
+
590
+ for (i = 0; i < units.length; i++) {
591
+ if (units[i][0] === parentInfo.unitName) {
592
+ unitIdx = i;
593
+ break;
594
+ }
595
+ }
596
+
597
+ // Spanning multiple years, go default
598
+ if (!units[unitIdx][1]) {
599
+ return;
600
+ }
601
+
602
+ // Get the first allowed count on the next unit.
603
+ if (units[unitIdx + 1]) {
604
+ unitName = units[unitIdx + 1][0];
605
+ count = (units[unitIdx + 1][1] || [1])[0];
606
+ }
607
+
608
+ unitRange = H.timeUnits[unitName];
609
+ this.tickInterval = unitRange * count;
610
+ return this.getTimeTicks(
611
+ {
612
+ unitRange: unitRange,
613
+ count: count,
614
+ unitName: unitName
615
+ },
616
+ min,
617
+ max,
618
+ this.options.startOfWeek
619
+ );
620
+ }
621
+ };
622
+ }
348
623
 
349
- // Put axis options back after original Axis.getOffset() has been called
350
- options.title = axisTitleOptions;
624
+ }
625
+
626
+ // Now merge the combined options into the axis options
627
+ merge(true, this.options, gridAxisOptions);
628
+
629
+ if (this.horiz) {
630
+ /** _________________________
631
+ * Make this: ___|_____|_____|_____|__|
632
+ * ^ ^
633
+ * _________________________
634
+ * Into this: |_____|_____|_____|_____|
635
+ * ^ ^
636
+ */
637
+ options.minPadding = pick(userOptions.minPadding, 0);
638
+ options.maxPadding = pick(userOptions.maxPadding, 0);
639
+ }
640
+
641
+ // If borderWidth is set, then use its value for tick and line width.
642
+ if (isNumber(options.grid.borderWidth)) {
643
+ options.tickWidth = options.lineWidth = gridOptions.borderWidth;
644
+ }
351
645
 
352
- } else {
353
- proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
354
646
  }
355
647
  });
356
648
 
357
649
  /**
358
- * Prevents rotation of labels when squished, as rotating them would not
359
- * help.
650
+ * Ensures a left wall on horizontal axes with series inheriting from column.
651
+ * ColumnSeries normally sets pointRange to null, resulting in Axis to select
652
+ * other values for point ranges. This enforces the above Axis.setOptions()
653
+ * override.
654
+ * _________________________
655
+ * Enforce this: ___|_____|_____|_____|__|
656
+ * ^
657
+ * _________________________
658
+ * To be this: |_____|_____|_____|_____|
659
+ * ^
360
660
  *
361
661
  * @param {function} proceed - the original function
662
+ * @param {object} options - the pure axis options as input by the user
362
663
  */
363
- wrap(Axis.prototype, 'renderUnsquish', function (proceed) {
364
- if (this.options.grid) {
365
- this.labelRotation = 0;
366
- this.options.labels.rotation = 0;
664
+ wrap(Axis.prototype, 'setAxisTranslation', function (proceed) {
665
+ var axis = this,
666
+ options = axis.options,
667
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
668
+ tickInfo = this.tickPositions && this.tickPositions.info,
669
+ userLabels = this.userOptions.labels || {};
670
+
671
+ if (this.horiz) {
672
+ if (gridOptions.enabled === true) {
673
+ each(axis.series, function (series) {
674
+ series.options.pointRange = 0;
675
+ });
676
+ }
677
+
678
+ // Lower level time ticks, like hours or minutes, represent points in
679
+ // time and not ranges. These should be aligned left in the grid cell
680
+ // by default. The same applies to years of higher order.
681
+ if (
682
+ tickInfo &&
683
+ (
684
+ options.dateTimeLabelFormats[tickInfo.unitName]
685
+ .range === false ||
686
+ tickInfo.count > 1 // years
687
+ ) &&
688
+ !defined(userLabels.align)
689
+ ) {
690
+ options.labels.align = 'left';
691
+
692
+ if (!defined(userLabels.x)) {
693
+ options.labels.x = 3;
694
+ }
695
+ }
367
696
  }
368
- proceed.apply(this);
697
+
698
+ proceed.apply(axis, argsToArray(arguments));
369
699
  });
370
700
 
701
+ // TODO: Does this function do what the drawing says? Seems to affect ticks and
702
+ // not the labels directly?
371
703
  /**
372
- * Places leftmost tick at the start of the axis, to create a left wall.
373
- *
704
+ * Makes tick labels which are usually ignored in a linked axis displayed if
705
+ * they are within range of linkedParent.min.
706
+ * _____________________________
707
+ * | | | | |
708
+ * Make this: | | 2 | 3 | 4 |
709
+ * |___|_______|_______|_______|
710
+ * ^
711
+ * _____________________________
712
+ * | | | | |
713
+ * Into this: | 1 | 2 | 3 | 4 |
714
+ * |___|_______|_______|_______|
715
+ * ^
374
716
  * @param {function} proceed - the original function
375
717
  */
376
- wrap(Axis.prototype, 'setOptions', function (proceed, userOptions) {
377
- var axis = this;
378
- if (userOptions.grid && axis.horiz) {
379
- userOptions.startOnTick = true;
380
- userOptions.minPadding = 0;
381
- userOptions.endOnTick = true;
718
+ wrap(Axis.prototype, 'trimTicks', function (proceed) {
719
+ var axis = this,
720
+ options = axis.options,
721
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
722
+ categoryAxis = axis.categories,
723
+ tickPositions = axis.tickPositions,
724
+ firstPos = tickPositions[0],
725
+ lastPos = tickPositions[tickPositions.length - 1],
726
+ linkedMin = axis.linkedParent && axis.linkedParent.min,
727
+ linkedMax = axis.linkedParent && axis.linkedParent.max,
728
+ min = linkedMin || axis.min,
729
+ max = linkedMax || axis.max,
730
+ tickInterval = axis.tickInterval,
731
+ moreThanMin = firstPos > min,
732
+ lessThanMax = lastPos < max,
733
+ endMoreThanMin = firstPos < min && firstPos + tickInterval > min,
734
+ startLessThanMax = lastPos > max && lastPos - tickInterval < max;
735
+
736
+ if (
737
+ gridOptions.enabled === true &&
738
+ !categoryAxis &&
739
+ (axis.horiz || axis.isLinked)
740
+ ) {
741
+ if ((moreThanMin || endMoreThanMin) && !options.startOnTick) {
742
+ tickPositions[0] = min;
743
+ }
744
+
745
+ if ((lessThanMax || startLessThanMax) && !options.endOnTick) {
746
+ tickPositions[tickPositions.length - 1] = max;
747
+ }
382
748
  }
383
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
749
+
750
+ proceed.apply(axis, argsToArray(arguments));
384
751
  });
385
752
 
386
753
  /**
387
- * Draw an extra line on the far side of the the axisLine,
388
- * creating cell roofs of a grid.
754
+ * Draw an extra line on the far side of the outermost axis,
755
+ * creating floor/roof/wall of a grid. And some padding.
756
+ *
757
+ * Make this:
758
+ * (axis.min) __________________________ (axis.max)
759
+ * | | | | |
760
+ * Into this:
761
+ * (axis.min) __________________________ (axis.max)
762
+ * ___|____|____|____|____|__
389
763
  *
390
764
  * @param {function} proceed - the original function
391
765
  */
392
766
  wrap(Axis.prototype, 'render', function (proceed) {
393
767
  var axis = this,
394
768
  options = axis.options,
769
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
395
770
  labelPadding,
396
771
  distance,
397
772
  lineWidth,
@@ -401,14 +776,21 @@
401
776
  xStartIndex,
402
777
  xEndIndex,
403
778
  renderer = axis.chart.renderer,
779
+ horiz = axis.horiz,
404
780
  axisGroupBox;
405
781
 
406
- if (options.grid) {
782
+ if (gridOptions.enabled === true) {
783
+ // TODO acutual label padding (top, bottom, left, right)
784
+ // Label padding is needed to figure out where to draw the outer line.
407
785
  labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
408
- distance = axis.maxLabelLength + labelPadding;
786
+ axis.maxLabelDimensions = axis.getMaxLabelDimensions(
787
+ axis.ticks,
788
+ axis.tickPositions
789
+ );
790
+ distance = axis.maxLabelDimensions.width + labelPadding;
409
791
  lineWidth = options.lineWidth;
410
792
 
411
- // Remove right wall before rendering
793
+ // Remove right wall before rendering if updating
412
794
  if (axis.rightWall) {
413
795
  axis.rightWall.destroy();
414
796
  }
@@ -419,27 +801,17 @@
419
801
 
420
802
  axisGroupBox = axis.axisGroup.getBBox();
421
803
 
422
- // Add right wall on horizontal axes
423
- if (axis.horiz) {
424
- axis.rightWall = renderer.path([
425
- 'M',
426
- axisGroupBox.x + axis.width + 1, // account for left wall
427
- axisGroupBox.y,
428
- 'L',
429
- axisGroupBox.x + axis.width + 1, // account for left wall
430
- axisGroupBox.y + axisGroupBox.height
431
- ])
432
- .attr({
433
- stroke: options.tickColor || '#ccd6eb',
434
- 'stroke-width': options.tickWidth || 1,
435
- zIndex: 7,
436
- class: 'grid-wall'
437
- })
438
- .add(axis.axisGroup);
439
- }
440
-
804
+ /*
805
+ * Draw an extra axis line on outer axes
806
+ * >
807
+ * Make this: |______|______|______|___
808
+ *
809
+ * > _________________________
810
+ * Into this: |______|______|______|__|
811
+ *
812
+ */
441
813
  if (axis.isOuterAxis() && axis.axisLine) {
442
- if (axis.horiz) {
814
+ if (horiz) {
443
815
  // -1 to avoid adding distance each time the chart updates
444
816
  distance = axisGroupBox.height - 1;
445
817
  }
@@ -457,7 +829,7 @@
457
829
  }
458
830
 
459
831
  // If axis is horizontal, reposition line path vertically
460
- if (axis.horiz) {
832
+ if (horiz) {
461
833
  linePath[yStartIndex] = linePath[yStartIndex] + distance;
462
834
  linePath[yEndIndex] = linePath[yEndIndex] + distance;
463
835
  } else {
@@ -469,10 +841,13 @@
469
841
  if (!axis.axisLineExtra) {
470
842
  axis.axisLineExtra = renderer.path(linePath)
471
843
  .attr({
844
+
472
845
  stroke: options.lineColor,
473
846
  'stroke-width': lineWidth,
847
+
474
848
  zIndex: 7
475
849
  })
850
+ .addClass('highcharts-axis-line')
476
851
  .add(axis.axisGroup);
477
852
  } else {
478
853
  axis.axisLineExtra.animate({
@@ -484,62 +859,130 @@
484
859
  axis.axisLine[axis.showAxis ? 'show' : 'hide'](true);
485
860
  }
486
861
  }
862
+
487
863
  } else {
488
864
  proceed.apply(axis);
489
865
  }
490
866
  });
491
867
 
492
868
  /**
493
- * Wraps chart rendering with the following customizations:
494
- * 1. Prohibit timespans of multitudes of a time unit
495
- * 2. Draw cell walls on vertical axes
869
+ * Wraps axis init to draw cell walls on vertical axes.
496
870
  *
497
871
  * @param {function} proceed - the original function
498
872
  */
499
- wrap(Chart.prototype, 'render', function (proceed) {
500
- // 25 is optimal height for default fontSize (11px)
501
- // 25 / 11 ≈ 2.28
502
- var fontSizeToCellHeightRatio = 25 / 11,
503
- fontMetrics,
504
- fontSize;
505
-
506
- each(this.axes, function (axis) {
507
- var options = axis.options;
508
- if (options.grid) {
509
- fontSize = options.labels.style.fontSize;
873
+ wrap(Axis.prototype, 'init', function (proceed, chart, userOptions) {
874
+ var axis = this,
875
+ gridOptions = (
876
+ (userOptions && isObject(userOptions.grid)) ?
877
+ userOptions.grid :
878
+ {}
879
+ ),
880
+ columnOptions,
881
+ column,
882
+ columnIndex,
883
+ i;
884
+ function applyGridOptions(axis) {
885
+ var options = axis.options,
886
+ // TODO: Consider using cell margins defined in % of font size?
887
+ // 25 is optimal height for default fontSize (11px)
888
+ // 25 / 11 ≈ 2.28
889
+ fontSizeToCellHeightRatio = 25 / 11,
890
+ fontSize = options.labels.style.fontSize,
510
891
  fontMetrics = axis.chart.renderer.fontMetrics(fontSize);
511
892
 
512
- // Prohibit timespans of multitudes of a time unit,
513
- // e.g. two days, three weeks, etc.
514
- if (options.type === 'datetime') {
515
- options.units = [
516
- ['millisecond', [1]],
517
- ['second', [1]],
518
- ['minute', [1]],
519
- ['hour', [1]],
520
- ['day', [1]],
521
- ['week', [1]],
522
- ['month', [1]],
523
- ['year', null]
524
- ];
525
- }
893
+ // Center-align by default
894
+ if (!options.labels) {
895
+ options.labels = {};
896
+ }
897
+ options.labels.align = pick(options.labels.align, 'center');
898
+
899
+ // TODO: Check against tickLabelPlacement between/on etc
900
+ /**
901
+ * Prevents adding the last tick label if the axis is not a category
902
+ * axis.
903
+ *
904
+ * Since numeric labels are normally placed at starts and ends of a
905
+ * range of value, and this module makes the label point at the value,
906
+ * an "extra" label would appear.
907
+ */
908
+ if (!axis.categories) {
909
+ options.showLastLabel = false;
910
+ }
526
911
 
527
- // Make tick marks taller, creating cell walls of a grid.
528
- // Use cellHeight axis option if set
529
- if (axis.horiz) {
530
- options.tickLength = options.cellHeight ||
531
- fontMetrics.h * fontSizeToCellHeightRatio;
532
- } else {
533
- options.tickWidth = 1;
534
- if (!options.lineWidth) {
535
- options.lineWidth = 1;
536
- }
537
- }
912
+ /**
913
+ * Make tick marks taller, creating cell walls of a grid.
914
+ * Use cellHeight axis option if set
915
+ */
916
+ if (axis.horiz) {
917
+ options.tickLength = gridOptions.cellHeight ||
918
+ fontMetrics.h * fontSizeToCellHeightRatio;
538
919
  }
539
- });
540
920
 
541
- // Call original Chart.render()
542
- proceed.apply(this);
921
+ /**
922
+ * Prevents rotation of labels when squished, as rotating them would not
923
+ * help.
924
+ */
925
+ axis.labelRotation = 0;
926
+ options.labels.rotation = 0;
927
+ }
928
+
929
+ if (gridOptions.enabled) {
930
+ if (defined(gridOptions.borderColor)) {
931
+ userOptions.tickColor =
932
+ userOptions.lineColor = gridOptions.borderColor;
933
+ }
934
+
935
+ // Handle columns, each column is a grid axis
936
+ if (isArray(gridOptions.columns)) {
937
+ columnIndex = 0;
938
+ i = gridOptions.columns.length;
939
+ while (i--) {
940
+ columnOptions = merge(
941
+ userOptions,
942
+ gridOptions.columns[i],
943
+ {
944
+ // Force to behave like category axis
945
+ type: 'category'
946
+ }
947
+ );
948
+
949
+ delete columnOptions.grid.columns; // Prevent recursion
950
+
951
+ column = new Axis(chart, columnOptions);
952
+ column.isColumn = true;
953
+ column.columnIndex = columnIndex;
954
+
955
+ wrap(column, 'labelFormatter', function (proceed) {
956
+ var axis = this.axis,
957
+ tickPos = axis.tickPositions,
958
+ value = this.value,
959
+ series = axis.series[0],
960
+ isFirst = value === tickPos[0],
961
+ isLast = value === tickPos[tickPos.length - 1],
962
+ point = H.find(series.options.data, function (p) {
963
+ return p[axis.isXAxis ? 'x' : 'y'] === value;
964
+ });
965
+
966
+ // Make additional properties available for the formatter
967
+ this.isFirst = isFirst;
968
+ this.isLast = isLast;
969
+ this.point = point;
970
+
971
+ // Call original labelFormatter
972
+ return proceed.call(this);
973
+ });
974
+
975
+ columnIndex++;
976
+ }
977
+ } else {
978
+ // Call original Axis.init()
979
+ proceed.apply(axis, argsToArray(arguments));
980
+ applyGridOptions(axis);
981
+ }
982
+ } else {
983
+ // Call original Axis.init()
984
+ proceed.apply(axis, argsToArray(arguments));
985
+ }
543
986
  });
544
987
 
545
988
  }(Highcharts));