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
@@ -0,0 +1,917 @@
1
+ /**
2
+ * (c) 2016 Highsoft AS
3
+ * Authors: Jon Arild Nygard
4
+ *
5
+ * License: www.highcharts.com/license
6
+ */
7
+ /* eslint no-console: 0 */
8
+ 'use strict';
9
+ import H from '../parts/Globals.js';
10
+ import '../parts/Utilities.js';
11
+ import './GridAxis.js';
12
+ import Tree from './Tree.js';
13
+ import mixinTreeSeries from '../mixins/tree-series.js';
14
+ import '../modules/broken-axis.src.js';
15
+ var argsToArray = function (args) {
16
+ return Array.prototype.slice.call(args, 1);
17
+ },
18
+ defined = H.defined,
19
+ each = H.each,
20
+ extend = H.extend,
21
+ find = H.find,
22
+ fireEvent = H.fireEvent,
23
+ getLevelOptions = mixinTreeSeries.getLevelOptions,
24
+ map = H.map,
25
+ merge = H.merge,
26
+ inArray = H.inArray,
27
+ isBoolean = function (x) {
28
+ return typeof x === 'boolean';
29
+ },
30
+ isNumber = H.isNumber,
31
+ isObject = function (x) {
32
+ // Always use strict mode.
33
+ return H.isObject(x, true);
34
+ },
35
+ isString = H.isString,
36
+ keys = H.keys,
37
+ pick = H.pick,
38
+ reduce = H.reduce,
39
+ wrap = H.wrap,
40
+ GridAxis = H.Axis,
41
+ GridAxisTick = H.Tick;
42
+
43
+ /**
44
+ * some - Equivalent of Array.prototype.some
45
+ *
46
+ * @param {Array} arr Array to look for matching elements in.
47
+ * @param {function} condition The condition to check against.
48
+ * @return {boolean} Whether some elements pass the condition.
49
+ */
50
+ var some = function (arr, condition) {
51
+ var result = false;
52
+ each(arr, function (element, index, array) {
53
+ if (!result) {
54
+ result = condition(element, index, array);
55
+ }
56
+ });
57
+ return result;
58
+ };
59
+
60
+ var override = function (obj, methods) {
61
+ var method,
62
+ func;
63
+ for (method in methods) {
64
+ if (methods.hasOwnProperty(method)) {
65
+ func = methods[method];
66
+ wrap(obj, method, func);
67
+ }
68
+ }
69
+ };
70
+
71
+ /**
72
+ * getCategoriesFromTree - getCategories based on a tree
73
+ *
74
+ * @param {object} tree Root of tree to collect categories from
75
+ * @return {Array} Array of categories
76
+ */
77
+ var getCategoriesFromTree = function (tree) {
78
+ var categories = [];
79
+ if (tree.data) {
80
+ categories.push(tree.data.name);
81
+ }
82
+ each(tree.children, function (child) {
83
+ categories = categories.concat(getCategoriesFromTree(child));
84
+ });
85
+ return categories;
86
+ };
87
+
88
+ var mapTickPosToNode = function (node, categories) {
89
+ var map = {},
90
+ name = node.data && node.data.name,
91
+ pos = inArray(name, categories);
92
+ map[pos] = node;
93
+ each(node.children, function (child) {
94
+ extend(map, mapTickPosToNode(child, categories));
95
+ });
96
+ return map;
97
+ };
98
+
99
+ var getBreakFromNode = function (node, max) {
100
+ var from = node.collapseStart,
101
+ to = node.collapseEnd;
102
+
103
+ // In broken-axis, the axis.max is minimized until it is not within a break.
104
+ // Therefore, if break.to is larger than axis.max, the axis.to should not
105
+ // add the 0.5 axis.tickMarkOffset, to avoid adding a break larger than
106
+ // axis.max
107
+ // TODO consider simplifying broken-axis and this might solve itself
108
+ if (to >= max) {
109
+ from -= 0.5;
110
+ }
111
+
112
+ return {
113
+ from: from,
114
+ to: to,
115
+ showPoints: false
116
+ };
117
+ };
118
+
119
+ /**
120
+ * Creates a list of positions for the ticks on the axis. Filters out positions
121
+ * that are outside min and max, or is inside an axis break.
122
+ *
123
+ * @param {Object} axis The Axis to get the tick positions from.
124
+ * @param {number} axis.min The minimum value of the axis.
125
+ * @param {number} axis.max The maximum value of the axis.
126
+ * @param {function} axis.isInAnyBreak Function to determine if a position is
127
+ * inside any breaks on the axis.
128
+ * @returns {number[]} List of positions.
129
+ */
130
+ var getTickPositions = function (axis) {
131
+ return reduce(
132
+ keys(axis.mapOfPosToGridNode),
133
+ function (arr, key) {
134
+ var pos = +key;
135
+ if (
136
+ axis.min <= pos &&
137
+ axis.max >= pos &&
138
+ !axis.isInAnyBreak(pos)
139
+ ) {
140
+ arr.push(pos);
141
+ }
142
+ return arr;
143
+ },
144
+ []
145
+ );
146
+ };
147
+ /**
148
+ * Check if a node is collapsed.
149
+ * @param {object} axis The axis to check against.
150
+ * @param {object} node The node to check if is collapsed.
151
+ * @param {number} pos The tick position to collapse.
152
+ * @returns {boolean} Returns true if collapsed, false if expanded.
153
+ */
154
+ var isCollapsed = function (axis, node) {
155
+ var breaks = (axis.options.breaks || []),
156
+ obj = getBreakFromNode(node, axis.max);
157
+ return some(breaks, function (b) {
158
+ return b.from === obj.from && b.to === obj.to;
159
+ });
160
+ };
161
+
162
+ /**
163
+ * Calculates the new axis breaks to collapse a node.
164
+ * @param {object} axis The axis to check against.
165
+ * @param {object} node The node to collapse.
166
+ * @param {number} pos The tick position to collapse.
167
+ * @returns {array} Returns an array of the new breaks for the axis.
168
+ */
169
+ var collapse = function (axis, node) {
170
+ var breaks = (axis.options.breaks || []),
171
+ obj = getBreakFromNode(node, axis.max);
172
+ breaks.push(obj);
173
+ return breaks;
174
+ };
175
+
176
+ /**
177
+ * Calculates the new axis breaks to expand a node.
178
+ * @param {object} axis The axis to check against.
179
+ * @param {object} node The node to expand.
180
+ * @param {number} pos The tick position to expand.
181
+ * @returns {array} Returns an array of the new breaks for the axis.
182
+ */
183
+ var expand = function (axis, node) {
184
+ var breaks = (axis.options.breaks || []),
185
+ obj = getBreakFromNode(node, axis.max);
186
+ // Remove the break from the axis breaks array.
187
+ return reduce(breaks, function (arr, b) {
188
+ if (b.to !== obj.to || b.from !== obj.from) {
189
+ arr.push(b);
190
+ }
191
+ return arr;
192
+ }, []);
193
+ };
194
+
195
+ /**
196
+ * Calculates the new axis breaks after toggling the collapse/expand state of a
197
+ * node. If it is collapsed it will be expanded, and if it is exapended it will
198
+ * be collapsed.
199
+ * @param {object} axis The axis to check against.
200
+ * @param {object} node The node to toggle.
201
+ * @param {number} pos The tick position to toggle.
202
+ * @returns {array} Returns an array of the new breaks for the axis.
203
+ */
204
+ var toggleCollapse = function (axis, node) {
205
+ return (
206
+ isCollapsed(axis, node) ?
207
+ expand(axis, node) :
208
+ collapse(axis, node)
209
+ );
210
+ };
211
+ var renderLabelIcon = function (tick, params) {
212
+ var icon = tick.labelIcon,
213
+ isNew = !icon,
214
+ renderer = params.renderer,
215
+ labelBox = params.xy,
216
+ options = params.options,
217
+ width = options.width,
218
+ height = options.height,
219
+ iconCenter = {
220
+ x: labelBox.x - (width / 2) - options.padding,
221
+ y: labelBox.y - (height / 2)
222
+ },
223
+ rotation = params.collapsed ? 90 : 180,
224
+ shouldRender = params.show && H.isNumber(iconCenter.y);
225
+
226
+ if (isNew) {
227
+ tick.labelIcon = icon = renderer.path(renderer.symbols[options.type](
228
+ options.x,
229
+ options.y,
230
+ width,
231
+ height
232
+ ))
233
+ .addClass('highcharts-label-icon')
234
+ .add(params.group);
235
+ }
236
+
237
+ // Set the new position, and show or hide
238
+ if (!shouldRender) {
239
+ icon.attr({ y: -9999 }); // #1338
240
+ }
241
+
242
+
243
+ // Presentational attributes
244
+ icon
245
+ .attr({
246
+ 'stroke-width': 1,
247
+ 'fill': pick(params.color, '#666666')
248
+ })
249
+ .css({
250
+ cursor: 'pointer',
251
+ stroke: options.lineColor,
252
+ strokeWidth: options.lineWidth
253
+ });
254
+
255
+
256
+ // Update the icon positions
257
+ icon[isNew ? 'attr' : 'animate']({
258
+ translateX: iconCenter.x,
259
+ translateY: iconCenter.y,
260
+ rotation: rotation
261
+ });
262
+
263
+ };
264
+ var onTickHover = function (label) {
265
+ label.addClass('highcharts-treegrid-node-active');
266
+
267
+ label.css({
268
+ textDecoration: 'underline'
269
+ });
270
+
271
+ };
272
+ var onTickHoverExit = function (label, options) {
273
+ var css = defined(options.style) ? options.style : {};
274
+ label.removeClass('highcharts-treegrid-node-active');
275
+
276
+ label.css({
277
+ textDecoration: css.textDecoration
278
+ });
279
+
280
+ };
281
+
282
+ /**
283
+ * Creates a tree structure of the data, and the treegrid. Calculates
284
+ * categories, and y-values of points based on the tree.
285
+ * @param {Array} data All the data points to display in the axis.
286
+ * @param {boolean} uniqueNames Wether or not the data node with the same name
287
+ * should share grid cell. If true they do share cell. False by default.
288
+ * @returns {object} Returns an object containing categories, mapOfIdToNode,
289
+ * mapOfPosToGridNode, and tree.
290
+ * @todo There should be only one point per line.
291
+ * @todo It should be optional to have one category per point, or merge cells
292
+ * @todo Add unit-tests.
293
+ */
294
+ var getTreeGridFromData = function (data, uniqueNames, numberOfSeries) {
295
+ var categories = [],
296
+ collapsedNodes = [],
297
+ mapOfIdToNode = {},
298
+ mapOfPosToGridNode = {},
299
+ posIterator = -1,
300
+ uniqueNamesEnabled = isBoolean(uniqueNames) ? uniqueNames : false,
301
+ tree,
302
+ treeParams,
303
+ updateYValuesAndTickPos;
304
+
305
+ // Build the tree from the series data.
306
+ treeParams = {
307
+ // After the children has been created.
308
+ after: function (node) {
309
+ var gridNode = mapOfPosToGridNode[node.pos],
310
+ height = 0,
311
+ descendants = 0;
312
+ each(gridNode.children, function (child) {
313
+ descendants += child.descendants + 1;
314
+ height = Math.max(child.height + 1, height);
315
+ });
316
+ gridNode.descendants = descendants;
317
+ gridNode.height = height;
318
+ if (gridNode.collapsed) {
319
+ collapsedNodes.push(gridNode);
320
+ }
321
+ },
322
+ // Before the children has been created.
323
+ before: function (node) {
324
+ var data = isObject(node.data) ? node.data : {},
325
+ name = isString(data.name) ? data.name : '',
326
+ parentNode = mapOfIdToNode[node.parent],
327
+ parentGridNode = (
328
+ isObject(parentNode) ?
329
+ mapOfPosToGridNode[parentNode.pos] :
330
+ null
331
+ ),
332
+ hasSameName = function (x) {
333
+ return x.name === name;
334
+ },
335
+ gridNode,
336
+ pos;
337
+
338
+ // If not unique names, look for a sibling node with the same name.
339
+ if (
340
+ uniqueNamesEnabled &&
341
+ isObject(parentGridNode) &&
342
+ !!(gridNode = find(parentGridNode.children, hasSameName))
343
+ ) {
344
+ // If if there is a gridNode with the same name, reuse position.
345
+ pos = gridNode.pos;
346
+ // Add data node to list of nodes in the grid node.
347
+ gridNode.nodes.push(node);
348
+ } else {
349
+ // If it is a new grid node, increment position.
350
+ pos = posIterator++;
351
+ }
352
+
353
+ // Add new grid node to map.
354
+ if (!mapOfPosToGridNode[pos]) {
355
+ mapOfPosToGridNode[pos] = gridNode = {
356
+ depth: parentGridNode ? parentGridNode.depth + 1 : 0,
357
+ name: name,
358
+ nodes: [node],
359
+ children: [],
360
+ pos: pos
361
+ };
362
+
363
+ // If not root, then add name to categories.
364
+ if (pos !== -1) {
365
+ categories.push(name);
366
+ }
367
+
368
+ // Add name to list of children.
369
+ if (isObject(parentGridNode)) {
370
+ parentGridNode.children.push(gridNode);
371
+ }
372
+ }
373
+
374
+ // Add data node to map
375
+ if (isString(node.id)) {
376
+ mapOfIdToNode[node.id] = node;
377
+ }
378
+
379
+ // If one of the points are collapsed, then start the grid node in
380
+ // collapsed state.
381
+ if (data.collapsed === true) {
382
+ gridNode.collapsed = true;
383
+ }
384
+
385
+ // Assign pos to data node
386
+ node.pos = pos;
387
+ }
388
+ };
389
+
390
+ updateYValuesAndTickPos = function (map, numberOfSeries) {
391
+ var setValues = function (gridNode, start, result) {
392
+ var nodes = gridNode.nodes,
393
+ end = start + (start === -1 ? 0 : numberOfSeries - 1),
394
+ diff = (end - start) / 2,
395
+ padding = 0.5,
396
+ pos = start + diff;
397
+
398
+ each(nodes, function (node) {
399
+ var data = node.data;
400
+ if (isObject(data)) {
401
+ // Update point
402
+ data.y = start + data.seriesIndex;
403
+ // Remove the property once used
404
+ delete data.seriesIndex;
405
+ }
406
+ node.pos = pos;
407
+ });
408
+
409
+ result[pos] = gridNode;
410
+
411
+ gridNode.pos = pos;
412
+ gridNode.tickmarkOffset = diff + padding;
413
+ gridNode.collapseStart = end + padding;
414
+
415
+
416
+ each(gridNode.children, function (child) {
417
+ setValues(child, end + 1, result);
418
+ end = child.collapseEnd - padding;
419
+ });
420
+ // Set collapseEnd to the end of the last child node.
421
+ gridNode.collapseEnd = end + padding;
422
+
423
+ return result;
424
+ };
425
+
426
+ return setValues(map['-1'], -1, {});
427
+ };
428
+
429
+ // Create tree from data
430
+ tree = Tree.getTree(data, treeParams);
431
+
432
+ // Update y values of data, and set calculate tick positions.
433
+ mapOfPosToGridNode = updateYValuesAndTickPos(
434
+ mapOfPosToGridNode,
435
+ numberOfSeries
436
+ );
437
+
438
+ // Return the resulting data.
439
+ return {
440
+ categories: categories,
441
+ mapOfIdToNode: mapOfIdToNode,
442
+ mapOfPosToGridNode: mapOfPosToGridNode,
443
+ collapsedNodes: collapsedNodes,
444
+ tree: tree
445
+ };
446
+ };
447
+
448
+ override(GridAxis.prototype, {
449
+ init: function (proceed, chart, userOptions) {
450
+ var axis = this,
451
+ removeFoundExtremesEvent,
452
+ isTreeGrid = userOptions.type === 'treegrid';
453
+ // Set default and forced options for TreeGrid
454
+ if (isTreeGrid) {
455
+ userOptions = merge({
456
+ // Default options
457
+ grid: {
458
+ enabled: true
459
+ },
460
+ // TODO: add support for align in treegrid.
461
+ labels: {
462
+ align: 'left',
463
+
464
+ /**
465
+ * Set options on specific levels in a tree grid axis. Takes
466
+ * precedence over labels options.
467
+ *
468
+ * @product gantt
469
+ * @sample {gantt} gantt/treegrid-axis/labels-levels
470
+ * Levels on TreeGrid Labels
471
+ * @type {Array<Object>}
472
+ * @apioption yAxis.labels.levels
473
+ */
474
+ levels: [{
475
+ /**
476
+ * Specify the level which the options within this object
477
+ * applies to.
478
+ *
479
+ * @sample {gantt} gantt/treegrid-axis/labels-levels
480
+ */
481
+ level: undefined
482
+ }, {
483
+ level: 1,
484
+ style: {
485
+ fontWeight: 'bold'
486
+ }
487
+ }],
488
+
489
+ /**
490
+ * The symbol for the collapse and expand icon in a
491
+ * treegrid.
492
+ *
493
+ * @product gantt
494
+ * @optionparent yAxis.labels.symbol
495
+ */
496
+ symbol: {
497
+ /**
498
+ * The symbol type. Points to a definition function in
499
+ * the `Highcharts.Renderer.symbols` collection.
500
+ *
501
+ * @validvalue ['arc', 'circle', 'diamond', 'square', 'triangle', 'triangle-down']
502
+ */
503
+ type: 'triangle',
504
+ x: -5,
505
+ y: -5,
506
+ height: 10,
507
+ width: 10,
508
+ padding: 5
509
+ }
510
+ },
511
+ uniqueNames: false
512
+
513
+ }, userOptions, { // User options
514
+ // Forced options
515
+ reversed: true,
516
+ // grid.columns is not supported in treegrid
517
+ grid: {
518
+ columns: undefined
519
+ }
520
+ });
521
+ }
522
+
523
+ // Now apply the original function with the original arguments,
524
+ // which are sliced off this function's arguments
525
+ proceed.apply(axis, [chart, userOptions]);
526
+ if (isTreeGrid) {
527
+ H.addEvent(axis.chart, 'beforeRender', function () {
528
+ var labelOptions = axis.options && axis.options.labels;
529
+
530
+ // beforeRender is fired after all the series is initialized,
531
+ // which is an ideal time to update the axis.categories.
532
+ axis.updateYNames();
533
+
534
+ // Update yData now that we have calculated the y values
535
+ // TODO: it would be better to be able to calculate y values
536
+ // before Series.setData
537
+ each(axis.series, function (series) {
538
+ series.yData = map(series.options.data, function (data) {
539
+ return data.y;
540
+ });
541
+ });
542
+
543
+ // Calculate the label options for each level in the tree.
544
+ axis.mapOptionsToLevel = getLevelOptions({
545
+ defaults: labelOptions,
546
+ from: 1,
547
+ levels: labelOptions.levels,
548
+ to: axis.tree.height
549
+ });
550
+
551
+ // Collapse all the nodes belonging to a point where collapsed
552
+ // equals true.
553
+ // Can be called from beforeRender, if getBreakFromNode removes
554
+ // its dependency on axis.max.
555
+ removeFoundExtremesEvent =
556
+ H.addEvent(axis, 'foundExtremes', function () {
557
+ each(axis.collapsedNodes, function (node) {
558
+ var breaks = collapse(axis, node);
559
+ axis.setBreaks(breaks, false);
560
+ });
561
+ removeFoundExtremesEvent();
562
+ });
563
+ });
564
+ axis.hasNames = true;
565
+ axis.options.showLastLabel = true;
566
+ }
567
+ },
568
+ /**
569
+ * Override to add indentation to axis.maxLabelDimensions.
570
+ * @param {Function} proceed the original function
571
+ * @returns {undefined}
572
+ */
573
+ getMaxLabelDimensions: function (proceed) {
574
+ var axis = this,
575
+ options = axis.options,
576
+ labelOptions = options && options.labels,
577
+ indentation = (
578
+ labelOptions && isNumber(labelOptions.indentation) ?
579
+ options.labels.indentation :
580
+ 0
581
+ ),
582
+ retVal = proceed.apply(axis, argsToArray(arguments)),
583
+ isTreeGrid = axis.options.type === 'treegrid',
584
+ treeDepth;
585
+
586
+ if (isTreeGrid) {
587
+ treeDepth = axis.mapOfPosToGridNode[-1].height;
588
+ retVal.width += indentation * (treeDepth - 1);
589
+ }
590
+
591
+ return retVal;
592
+ },
593
+ /**
594
+ * Generates a tick for initial positioning.
595
+ *
596
+ * @private
597
+ * @param {function} proceed The original generateTick function.
598
+ * @param {number} pos The tick position in axis values.
599
+ */
600
+ generateTick: function (proceed, pos) {
601
+ var axis = this,
602
+ mapOptionsToLevel = (
603
+ isObject(axis.mapOptionsToLevel) ? axis.mapOptionsToLevel : {}
604
+ ),
605
+ isTreeGrid = axis.options.type === 'treegrid',
606
+ ticks = axis.ticks,
607
+ tick = ticks[pos],
608
+ levelOptions,
609
+ options,
610
+ gridNode;
611
+
612
+ if (isTreeGrid) {
613
+ gridNode = axis.mapOfPosToGridNode[pos];
614
+ levelOptions = mapOptionsToLevel[gridNode.depth];
615
+
616
+ if (levelOptions) {
617
+ options = {
618
+ labels: levelOptions
619
+ };
620
+ }
621
+
622
+ if (!tick) {
623
+ ticks[pos] = tick =
624
+ new GridAxisTick(axis, pos, null, undefined, {
625
+ category: gridNode.name,
626
+ tickmarkOffset: gridNode.tickmarkOffset,
627
+ options: options
628
+ });
629
+ } else {
630
+ // update labels depending on tick interval
631
+ tick.parameters.category = gridNode.name;
632
+ tick.options = options;
633
+ tick.addLabel();
634
+ }
635
+ } else {
636
+ proceed.apply(axis, argsToArray(arguments));
637
+ }
638
+ },
639
+ /**
640
+ * Set the tick positions, tickInterval, axis min and max.
641
+ *
642
+ * @private
643
+ */
644
+ setTickInterval: function (proceed) {
645
+ var axis = this,
646
+ options = axis.options,
647
+ isTreeGrid = options.type === 'treegrid';
648
+
649
+ if (isTreeGrid) {
650
+ axis.min = pick(axis.userMin, options.min, axis.dataMin);
651
+ axis.max = pick(axis.userMax, options.max, axis.dataMax);
652
+
653
+ fireEvent(axis, 'foundExtremes');
654
+
655
+ // setAxisTranslation modifies the min and max according to
656
+ // axis breaks.
657
+ axis.setAxisTranslation(true);
658
+
659
+ axis.tickmarkOffset = 0.5;
660
+ axis.tickInterval = 1;
661
+ axis.tickPositions = getTickPositions(axis);
662
+ } else {
663
+ proceed.apply(axis, argsToArray(arguments));
664
+ }
665
+ }
666
+ });
667
+ override(GridAxisTick.prototype, {
668
+ getLabelPosition: function (
669
+ proceed,
670
+ x,
671
+ y,
672
+ label,
673
+ horiz,
674
+ labelOptions,
675
+ tickmarkOffset,
676
+ index,
677
+ step
678
+ ) {
679
+ var tick = this,
680
+ lbOptions = pick(
681
+ tick.options && tick.options.labels,
682
+ labelOptions
683
+ ),
684
+ pos = tick.pos,
685
+ axis = tick.axis,
686
+ options = axis.options,
687
+ isTreeGrid = options.type === 'treegrid',
688
+ result = proceed.apply(
689
+ tick,
690
+ [x, y, label, horiz, lbOptions, tickmarkOffset, index, step]
691
+ ),
692
+ symbolOptions,
693
+ indentation,
694
+ mapOfPosToGridNode,
695
+ node,
696
+ level;
697
+
698
+ if (isTreeGrid) {
699
+ symbolOptions = (
700
+ lbOptions && isObject(lbOptions.symbol) ?
701
+ lbOptions.symbol :
702
+ {}
703
+ );
704
+ indentation = (
705
+ lbOptions && isNumber(lbOptions.indentation) ?
706
+ lbOptions.indentation :
707
+ 0
708
+ );
709
+ mapOfPosToGridNode = axis.mapOfPosToGridNode;
710
+ node = mapOfPosToGridNode && mapOfPosToGridNode[pos];
711
+ level = (node && node.depth) || 1;
712
+ result.x += (
713
+ // Add space for symbols
714
+ ((symbolOptions.width) + (symbolOptions.padding * 2)) +
715
+ // Apply indentation
716
+ ((level - 1) * indentation)
717
+ );
718
+ }
719
+
720
+ return result;
721
+ },
722
+ renderLabel: function (proceed) {
723
+ var tick = this,
724
+ pos = tick.pos,
725
+ axis = tick.axis,
726
+ label = tick.label,
727
+ mapOfPosToGridNode = axis.mapOfPosToGridNode,
728
+ options = axis.options,
729
+ labelOptions = pick(
730
+ tick.options && tick.options.labels,
731
+ options && options.labels
732
+ ),
733
+ symbolOptions = (
734
+ labelOptions && isObject(labelOptions.symbol) ?
735
+ labelOptions.symbol :
736
+ {}
737
+ ),
738
+ node = mapOfPosToGridNode && mapOfPosToGridNode[pos],
739
+ level = node && node.depth,
740
+ isTreeGrid = options.type === 'treegrid',
741
+ hasLabel = !!(label && label.element),
742
+ shouldRender = inArray(pos, axis.tickPositions) > -1,
743
+ prefixClassName = 'highcharts-treegrid-node-',
744
+ collapsed,
745
+ addClassName,
746
+ removeClassName;
747
+
748
+ if (isTreeGrid && node) {
749
+ // Add class name for hierarchical styling.
750
+ if (hasLabel) {
751
+ label.addClass(prefixClassName + 'level-' + level);
752
+ }
753
+ }
754
+
755
+ proceed.apply(tick, argsToArray(arguments));
756
+
757
+ if (isTreeGrid && node && hasLabel && node.descendants > 0) {
758
+ collapsed = isCollapsed(axis, node);
759
+
760
+ renderLabelIcon(
761
+ tick,
762
+ {
763
+
764
+ color: label.styles.color,
765
+
766
+ collapsed: collapsed,
767
+ group: label.parentGroup,
768
+ options: symbolOptions,
769
+ renderer: label.renderer,
770
+ show: shouldRender,
771
+ xy: label.xy
772
+ }
773
+ );
774
+
775
+ // Add class name for the node.
776
+ addClassName = prefixClassName +
777
+ (collapsed ? 'collapsed' : 'expanded');
778
+ removeClassName = prefixClassName +
779
+ (collapsed ? 'expanded' : 'collapsed');
780
+
781
+ label
782
+ .addClass(addClassName)
783
+ .removeClass(removeClassName);
784
+
785
+
786
+ label.css({
787
+ cursor: 'pointer'
788
+ });
789
+
790
+
791
+ // Add events to both label text and icon
792
+ each([label, tick.labelIcon], function (object) {
793
+ if (!object.attachedTreeGridEvents) {
794
+ // On hover
795
+ H.addEvent(object.element, 'mouseover', function () {
796
+ onTickHover(label);
797
+ });
798
+
799
+ // On hover out
800
+ H.addEvent(object.element, 'mouseout', function () {
801
+ onTickHoverExit(label, labelOptions);
802
+ });
803
+
804
+ H.addEvent(object.element, 'click', function () {
805
+ tick.toggleCollapse();
806
+ });
807
+ object.attachedTreeGridEvents = true;
808
+ }
809
+ });
810
+ }
811
+ }
812
+ });
813
+
814
+ extend(GridAxisTick.prototype, /** @lends Highcharts.Tick.prototype */{
815
+ /**
816
+ * Collapse the grid cell. Used when axis is of type treegrid.
817
+ * @param {boolean} [redraw=true] Whether to redraw the chart or wait for
818
+ * an explicit call to {@link Highcharts.Chart#redraw}
819
+ * @sample {gantt} gantt/treegrid-axis/collapsed-dynamically/demo.js
820
+ * Dynamically collapse
821
+ */
822
+ collapse: function (redraw) {
823
+ var tick = this,
824
+ axis = tick.axis,
825
+ pos = tick.pos,
826
+ node = axis.mapOfPosToGridNode[pos],
827
+ breaks = collapse(axis, node);
828
+ axis.setBreaks(breaks, pick(redraw, true));
829
+ },
830
+ /**
831
+ * Expand the grid cell. Used when axis is of type treegrid.
832
+ *
833
+ * @param {boolean} [redraw=true] Whether to redraw the chart or wait for
834
+ * an explicit call to {@link Highcharts.Chart#redraw}
835
+ * @sample {gantt} gantt/treegrid-axis/collapsed-dynamically/demo.js
836
+ * Dynamically collapse
837
+ */
838
+ expand: function (redraw) {
839
+ var tick = this,
840
+ axis = tick.axis,
841
+ pos = tick.pos,
842
+ node = axis.mapOfPosToGridNode[pos],
843
+ breaks = expand(axis, node);
844
+ axis.setBreaks(breaks, pick(redraw, true));
845
+ },
846
+ /**
847
+ * Toggle the collapse/expand state of the grid cell. Used when axis is of
848
+ * type treegrid.
849
+ *
850
+ * @param {boolean} [redraw=true] Whether to redraw the chart or wait for
851
+ * an explicit call to {@link Highcharts.Chart#redraw}
852
+ * @sample {gantt} gantt/treegrid-axis/collapsed-dynamically/demo.js
853
+ * Dynamically collapse
854
+ */
855
+ toggleCollapse: function (redraw) {
856
+ var tick = this,
857
+ axis = tick.axis,
858
+ pos = tick.pos,
859
+ node = axis.mapOfPosToGridNode[pos],
860
+ breaks = toggleCollapse(axis, node);
861
+ axis.setBreaks(breaks, pick(redraw, true));
862
+ }
863
+ });
864
+
865
+ GridAxis.prototype.updateYNames = function () {
866
+ var axis = this,
867
+ options = axis.options,
868
+ isTreeGrid = options.type === 'treegrid',
869
+ uniqueNames = options.uniqueNames,
870
+ isYAxis = !axis.isXAxis,
871
+ series = axis.series,
872
+ numberOfSeries = 0,
873
+ treeGrid,
874
+ data;
875
+
876
+ if (isTreeGrid && isYAxis) {
877
+ // Concatenate data from all series assigned to this axis.
878
+ data = reduce(series, function (arr, s) {
879
+ if (s.visible) {
880
+ // Push all data to array
881
+ each(s.options.data, function (data) {
882
+ if (isObject(data)) {
883
+ // Set series index on data. Removed again after use.
884
+ data.seriesIndex = numberOfSeries;
885
+ arr.push(data);
886
+ }
887
+ });
888
+
889
+ // Increment series index
890
+ if (uniqueNames === true) {
891
+ numberOfSeries++;
892
+ }
893
+ }
894
+ return arr;
895
+ }, []);
896
+
897
+ // Calculate categories and the hierarchy for the grid.
898
+ treeGrid = getTreeGridFromData(
899
+ data,
900
+ uniqueNames,
901
+ (uniqueNames === true) ? numberOfSeries : 1
902
+ );
903
+
904
+ // Assign values to the axis.
905
+ axis.categories = treeGrid.categories;
906
+ axis.mapOfPosToGridNode = treeGrid.mapOfPosToGridNode;
907
+ // Used on init to start a node as collapsed
908
+ axis.collapsedNodes = treeGrid.collapsedNodes;
909
+ axis.hasNames = true;
910
+ axis.tree = treeGrid.tree;
911
+ }
912
+ };
913
+
914
+ // Make utility functions available for testing.
915
+ GridAxis.prototype.utils = {
916
+ getNode: Tree.getNode
917
+ };