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,97 +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
- // Add to axisParent instead of axisGroup, to ignore the space
171
- // it takes
172
- .add(axisParent);
173
- axis.axisTitle.isNew = true;
174
- }
175
-
192
+ });
176
193
 
177
- // hide or show the title depending on whether showEmpty is set
178
- axis.axisTitle[showAxis ? 'show' : 'hide'](true);
194
+ return dimensions;
179
195
  };
180
196
 
181
197
  /**
@@ -184,106 +200,172 @@
184
200
  H.dateFormats = {
185
201
  // Week number
186
202
  W: function (timestamp) {
187
- var date = new this.Date(timestamp),
188
- day = this.get('Day', date) === 0 ? 7 : this.get('Day', date),
189
- time = date.getTime(),
190
- startOfYear = new Date(this.get('FullYear', date), 0, 1, -6),
191
- dayNumber;
192
- this.set('Date', date, this.get('Date', date) + 4 - day);
193
- dayNumber = Math.floor((time - startOfYear) / 86400000);
194
- 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;
195
211
  },
196
212
  // First letter of the day of the week, e.g. 'M' for 'Monday'.
197
213
  E: function (timestamp) {
198
- return this.dateFormat('%a', timestamp, true).charAt(0);
214
+ return dateFormat('%a', timestamp, true).charAt(0);
199
215
  }
200
216
  };
201
217
 
202
218
  /**
203
- * Prevents adding the last tick label if the axis is not a category axis.
204
- *
205
- * Since numeric labels are normally placed at starts and ends of a range of
206
- * value, and this module makes the label point at the value, an "extra" label
207
- * would appear.
208
- *
219
+ * If chart is stockChart, always return 'left' to avoid labels being placed
220
+ * inside chart. Stock charts place yAxis labels inside by default.
209
221
  * @param {function} proceed - the original function
222
+ * @return {string} 'left' if stockChart, or auto calculated alignment
210
223
  */
211
- wrap(Tick.prototype, 'addLabel', function (proceed) {
212
- var axis = this.axis,
213
- isCategoryAxis = axis.options.categories !== undefined,
214
- tickPositions = axis.tickPositions,
215
- lastTick = tickPositions[tickPositions.length - 1],
216
- isLastTick = this.pos !== lastTick;
217
-
218
- if (!axis.options.grid || isCategoryAxis || isLastTick) {
219
- 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));
220
231
  }
232
+ return retVal;
221
233
  });
222
234
 
223
235
  /**
224
- * Center tick labels vertically and horizontally between ticks
236
+ * Center tick labels in cells.
225
237
  *
226
238
  * @param {function} proceed - the original function
227
239
  *
228
240
  * @return {object} object - an object containing x and y positions
229
- * for the tick
241
+ * for the tick
230
242
  */
231
- wrap(Tick.prototype, 'getLabelPosition', function (proceed, x, y, label) {
232
- var retVal = proceed.apply(this, Array.prototype.slice.call(arguments, 1)),
233
- 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,
234
249
  options = axis.options,
235
- tickInterval = options.tickInterval || 1,
236
- newX,
237
- newPos,
238
- axisHeight,
239
- fontSize,
240
- labelMetrics,
241
- lblB,
242
- lblH,
243
- labelCenter;
244
-
245
- // Only center tick labels if axis has option grid: true
246
- if (options.grid) {
247
- fontSize = options.labels.style.fontSize;
248
- labelMetrics = axis.chart.renderer.fontMetrics(fontSize, label);
249
- lblB = labelMetrics.b;
250
- lblH = labelMetrics.h;
251
-
252
- if (axis.horiz && options.categories === undefined) {
253
- // Center x position
254
- axisHeight = axis.axisGroup.getBBox().height;
255
- newPos = this.pos + tickInterval / 2;
256
- retVal.x = axis.translate(newPos) + axis.left;
257
- labelCenter = (axisHeight / 2) + (lblH / 2) - Math.abs(lblH - lblB);
258
-
259
- // Center y position
260
- if (axis.side === axisSide.top) {
261
- retVal.y = y - labelCenter;
262
- } else {
263
- retVal.y = y + labelCenter;
264
- }
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;
265
285
  } else {
266
- // Center y position
267
- if (options.categories === undefined) {
268
- newPos = this.pos + (tickInterval / 2);
269
- retVal.y = axis.translate(newPos) + axis.top + (lblB / 2);
270
- }
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
+ }
271
293
 
272
- // Center x position
273
- newX = (this.getLabelWidth() / 2) - (axis.maxLabelLength / 2);
274
- if (axis.side === axisSide.left) {
275
- retVal.x += newX;
276
- } else {
277
- retVal.x -= newX;
278
- }
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
+ );
279
358
  }
359
+
360
+ result.x += (axis.horiz && labelOpts.x || 0);
361
+ } else {
362
+ result = proceed.apply(tick, argsToArray(arguments));
280
363
  }
281
- return retVal;
364
+ return result;
282
365
  });
283
366
 
284
-
285
367
  /**
286
- * Draw vertical ticks extra long to create cell floors and roofs.
368
+ * Draw vertical axis ticks extra long to create cell floors and roofs.
287
369
  * Overrides the tickLength for vertical axes.
288
370
  *
289
371
  * @param {function} proceed - the original function
@@ -291,105 +373,400 @@
291
373
  */
292
374
  wrap(Axis.prototype, 'tickSize', function (proceed) {
293
375
  var axis = this,
294
- 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)),
295
380
  labelPadding,
296
381
  distance;
297
382
 
298
- if (axis.options.grid && !axis.horiz) {
383
+ if (gridOptions.enabled === true) {
299
384
  labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
300
- if (!axis.maxLabelLength) {
301
- axis.maxLabelLength = axis.getMaxLabelLength();
302
- }
303
- distance = axis.maxLabelLength + labelPadding;
385
+ distance = labelPadding +
386
+ (axis.horiz ? dimensions.height : dimensions.width);
304
387
 
305
- retVal[0] = distance;
388
+ if (isArray(retVal)) {
389
+ retVal[0] = distance;
390
+ } else {
391
+ retVal = [distance];
392
+ }
306
393
  }
307
394
  return retVal;
308
395
  });
309
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
+
310
449
  /**
311
- * Disregards space required by axisTitle, by adding axisTitle to axisParent
312
- * instead of axisGroup, and disregarding margins and offsets related to
313
- * axisTitle.
314
- *
315
- * @param {function} proceed - the original function
450
+ * Avoid altering tickInterval when reserving space.
316
451
  */
317
- wrap(Axis.prototype, 'getOffset', function (proceed) {
452
+ wrap(Axis.prototype, 'unsquish', function (proceed) {
318
453
  var axis = this,
319
- axisOffset = axis.chart.axisOffset,
320
- side = axis.side,
321
- axisHeight,
322
- tickSize,
323
454
  options = axis.options,
324
- axisTitleOptions = options.title,
325
- addTitle = axisTitleOptions &&
326
- axisTitleOptions.text &&
327
- axisTitleOptions.enabled !== false;
455
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {};
328
456
 
329
- if (axis.options.grid && isObject(axis.options.title)) {
457
+ if (gridOptions.enabled === true && this.categories) {
458
+ return this.tickInterval;
459
+ }
330
460
 
331
- tickSize = axis.tickSize('tick')[0];
332
- if (axisOffset[side] && tickSize) {
333
- axisHeight = axisOffset[side] + tickSize;
334
- }
461
+ return proceed.apply(this, argsToArray(arguments));
462
+ });
335
463
 
336
- if (addTitle) {
337
- // Use the custom addTitle() to add it, while preventing making room
338
- // for it
339
- axis.addTitle();
340
- }
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
+ },
341
501
 
342
- proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
502
+ grid: {
503
+ borderWidth: 1
504
+ },
343
505
 
344
- 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
+ }
345
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
+ }
346
623
 
347
- // Put axis options back after original Axis.getOffset() has been called
348
- 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
+ }
349
645
 
350
- } else {
351
- proceed.apply(axis, Array.prototype.slice.call(arguments, 1));
352
646
  }
353
647
  });
354
648
 
355
649
  /**
356
- * Prevents rotation of labels when squished, as rotating them would not
357
- * 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
+ * ^
358
660
  *
359
661
  * @param {function} proceed - the original function
662
+ * @param {object} options - the pure axis options as input by the user
360
663
  */
361
- wrap(Axis.prototype, 'renderUnsquish', function (proceed) {
362
- if (this.options.grid) {
363
- this.labelRotation = 0;
364
- 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
+ }
365
696
  }
366
- proceed.apply(this);
697
+
698
+ proceed.apply(axis, argsToArray(arguments));
367
699
  });
368
700
 
701
+ // TODO: Does this function do what the drawing says? Seems to affect ticks and
702
+ // not the labels directly?
369
703
  /**
370
- * Places leftmost tick at the start of the axis, to create a left wall.
371
- *
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
+ * ^
372
716
  * @param {function} proceed - the original function
373
717
  */
374
- wrap(Axis.prototype, 'setOptions', function (proceed, userOptions) {
375
- var axis = this;
376
- if (userOptions.grid && axis.horiz) {
377
- userOptions.startOnTick = true;
378
- userOptions.minPadding = 0;
379
- 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
+ }
380
748
  }
381
- proceed.apply(this, Array.prototype.slice.call(arguments, 1));
749
+
750
+ proceed.apply(axis, argsToArray(arguments));
382
751
  });
383
752
 
384
753
  /**
385
- * Draw an extra line on the far side of the the axisLine,
386
- * 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
+ * ___|____|____|____|____|__
387
763
  *
388
764
  * @param {function} proceed - the original function
389
765
  */
390
766
  wrap(Axis.prototype, 'render', function (proceed) {
391
767
  var axis = this,
392
768
  options = axis.options,
769
+ gridOptions = (options && isObject(options.grid)) ? options.grid : {},
393
770
  labelPadding,
394
771
  distance,
395
772
  lineWidth,
@@ -399,14 +776,21 @@
399
776
  xStartIndex,
400
777
  xEndIndex,
401
778
  renderer = axis.chart.renderer,
779
+ horiz = axis.horiz,
402
780
  axisGroupBox;
403
781
 
404
- 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.
405
785
  labelPadding = (Math.abs(axis.defaultLeftAxisOptions.labels.x) * 2);
406
- distance = axis.maxLabelLength + labelPadding;
786
+ axis.maxLabelDimensions = axis.getMaxLabelDimensions(
787
+ axis.ticks,
788
+ axis.tickPositions
789
+ );
790
+ distance = axis.maxLabelDimensions.width + labelPadding;
407
791
  lineWidth = options.lineWidth;
408
792
 
409
- // Remove right wall before rendering
793
+ // Remove right wall before rendering if updating
410
794
  if (axis.rightWall) {
411
795
  axis.rightWall.destroy();
412
796
  }
@@ -417,27 +801,17 @@
417
801
 
418
802
  axisGroupBox = axis.axisGroup.getBBox();
419
803
 
420
- // Add right wall on horizontal axes
421
- if (axis.horiz) {
422
- axis.rightWall = renderer.path([
423
- 'M',
424
- axisGroupBox.x + axis.width + 1, // account for left wall
425
- axisGroupBox.y,
426
- 'L',
427
- axisGroupBox.x + axis.width + 1, // account for left wall
428
- axisGroupBox.y + axisGroupBox.height
429
- ])
430
- .attr({
431
- stroke: options.tickColor || '#ccd6eb',
432
- 'stroke-width': options.tickWidth || 1,
433
- zIndex: 7,
434
- class: 'grid-wall'
435
- })
436
- .add(axis.axisGroup);
437
- }
438
-
804
+ /*
805
+ * Draw an extra axis line on outer axes
806
+ * >
807
+ * Make this: |______|______|______|___
808
+ *
809
+ * > _________________________
810
+ * Into this: |______|______|______|__|
811
+ *
812
+ */
439
813
  if (axis.isOuterAxis() && axis.axisLine) {
440
- if (axis.horiz) {
814
+ if (horiz) {
441
815
  // -1 to avoid adding distance each time the chart updates
442
816
  distance = axisGroupBox.height - 1;
443
817
  }
@@ -455,7 +829,7 @@
455
829
  }
456
830
 
457
831
  // If axis is horizontal, reposition line path vertically
458
- if (axis.horiz) {
832
+ if (horiz) {
459
833
  linePath[yStartIndex] = linePath[yStartIndex] + distance;
460
834
  linePath[yEndIndex] = linePath[yEndIndex] + distance;
461
835
  } else {
@@ -467,10 +841,10 @@
467
841
  if (!axis.axisLineExtra) {
468
842
  axis.axisLineExtra = renderer.path(linePath)
469
843
  .attr({
470
- stroke: options.lineColor,
471
- 'stroke-width': lineWidth,
844
+
472
845
  zIndex: 7
473
846
  })
847
+ .addClass('highcharts-axis-line')
474
848
  .add(axis.axisGroup);
475
849
  } else {
476
850
  axis.axisLineExtra.animate({
@@ -482,62 +856,130 @@
482
856
  axis.axisLine[axis.showAxis ? 'show' : 'hide'](true);
483
857
  }
484
858
  }
859
+
485
860
  } else {
486
861
  proceed.apply(axis);
487
862
  }
488
863
  });
489
864
 
490
865
  /**
491
- * Wraps chart rendering with the following customizations:
492
- * 1. Prohibit timespans of multitudes of a time unit
493
- * 2. Draw cell walls on vertical axes
866
+ * Wraps axis init to draw cell walls on vertical axes.
494
867
  *
495
868
  * @param {function} proceed - the original function
496
869
  */
497
- wrap(Chart.prototype, 'render', function (proceed) {
498
- // 25 is optimal height for default fontSize (11px)
499
- // 25 / 11 ≈ 2.28
500
- var fontSizeToCellHeightRatio = 25 / 11,
501
- fontMetrics,
502
- fontSize;
503
-
504
- each(this.axes, function (axis) {
505
- var options = axis.options;
506
- if (options.grid) {
507
- fontSize = options.labels.style.fontSize;
870
+ wrap(Axis.prototype, 'init', function (proceed, chart, userOptions) {
871
+ var axis = this,
872
+ gridOptions = (
873
+ (userOptions && isObject(userOptions.grid)) ?
874
+ userOptions.grid :
875
+ {}
876
+ ),
877
+ columnOptions,
878
+ column,
879
+ columnIndex,
880
+ i;
881
+ function applyGridOptions(axis) {
882
+ var options = axis.options,
883
+ // TODO: Consider using cell margins defined in % of font size?
884
+ // 25 is optimal height for default fontSize (11px)
885
+ // 25 / 11 ≈ 2.28
886
+ fontSizeToCellHeightRatio = 25 / 11,
887
+ fontSize = options.labels.style.fontSize,
508
888
  fontMetrics = axis.chart.renderer.fontMetrics(fontSize);
509
889
 
510
- // Prohibit timespans of multitudes of a time unit,
511
- // e.g. two days, three weeks, etc.
512
- if (options.type === 'datetime') {
513
- options.units = [
514
- ['millisecond', [1]],
515
- ['second', [1]],
516
- ['minute', [1]],
517
- ['hour', [1]],
518
- ['day', [1]],
519
- ['week', [1]],
520
- ['month', [1]],
521
- ['year', null]
522
- ];
523
- }
890
+ // Center-align by default
891
+ if (!options.labels) {
892
+ options.labels = {};
893
+ }
894
+ options.labels.align = pick(options.labels.align, 'center');
895
+
896
+ // TODO: Check against tickLabelPlacement between/on etc
897
+ /**
898
+ * Prevents adding the last tick label if the axis is not a category
899
+ * axis.
900
+ *
901
+ * Since numeric labels are normally placed at starts and ends of a
902
+ * range of value, and this module makes the label point at the value,
903
+ * an "extra" label would appear.
904
+ */
905
+ if (!axis.categories) {
906
+ options.showLastLabel = false;
907
+ }
524
908
 
525
- // Make tick marks taller, creating cell walls of a grid.
526
- // Use cellHeight axis option if set
527
- if (axis.horiz) {
528
- options.tickLength = options.cellHeight ||
529
- fontMetrics.h * fontSizeToCellHeightRatio;
530
- } else {
531
- options.tickWidth = 1;
532
- if (!options.lineWidth) {
533
- options.lineWidth = 1;
534
- }
535
- }
909
+ /**
910
+ * Make tick marks taller, creating cell walls of a grid.
911
+ * Use cellHeight axis option if set
912
+ */
913
+ if (axis.horiz) {
914
+ options.tickLength = gridOptions.cellHeight ||
915
+ fontMetrics.h * fontSizeToCellHeightRatio;
536
916
  }
537
- });
538
917
 
539
- // Call original Chart.render()
540
- proceed.apply(this);
918
+ /**
919
+ * Prevents rotation of labels when squished, as rotating them would not
920
+ * help.
921
+ */
922
+ axis.labelRotation = 0;
923
+ options.labels.rotation = 0;
924
+ }
925
+
926
+ if (gridOptions.enabled) {
927
+ if (defined(gridOptions.borderColor)) {
928
+ userOptions.tickColor =
929
+ userOptions.lineColor = gridOptions.borderColor;
930
+ }
931
+
932
+ // Handle columns, each column is a grid axis
933
+ if (isArray(gridOptions.columns)) {
934
+ columnIndex = 0;
935
+ i = gridOptions.columns.length;
936
+ while (i--) {
937
+ columnOptions = merge(
938
+ userOptions,
939
+ gridOptions.columns[i],
940
+ {
941
+ // Force to behave like category axis
942
+ type: 'category'
943
+ }
944
+ );
945
+
946
+ delete columnOptions.grid.columns; // Prevent recursion
947
+
948
+ column = new Axis(chart, columnOptions);
949
+ column.isColumn = true;
950
+ column.columnIndex = columnIndex;
951
+
952
+ wrap(column, 'labelFormatter', function (proceed) {
953
+ var axis = this.axis,
954
+ tickPos = axis.tickPositions,
955
+ value = this.value,
956
+ series = axis.series[0],
957
+ isFirst = value === tickPos[0],
958
+ isLast = value === tickPos[tickPos.length - 1],
959
+ point = H.find(series.options.data, function (p) {
960
+ return p[axis.isXAxis ? 'x' : 'y'] === value;
961
+ });
962
+
963
+ // Make additional properties available for the formatter
964
+ this.isFirst = isFirst;
965
+ this.isLast = isLast;
966
+ this.point = point;
967
+
968
+ // Call original labelFormatter
969
+ return proceed.call(this);
970
+ });
971
+
972
+ columnIndex++;
973
+ }
974
+ } else {
975
+ // Call original Axis.init()
976
+ proceed.apply(axis, argsToArray(arguments));
977
+ applyGridOptions(axis);
978
+ }
979
+ } else {
980
+ // Call original Axis.init()
981
+ proceed.apply(axis, argsToArray(arguments));
982
+ }
541
983
  });
542
984
 
543
985
  }(Highcharts));