highcharts 6.1.4 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +17 -0
  3. package/css/highcharts.scss +14 -0
  4. package/css/themes/dark-unica.css +17 -0
  5. package/css/themes/grid-light.css +17 -0
  6. package/css/themes/sand-signika.css +17 -0
  7. package/es-modules/indicators/momentum.src.js +1 -1
  8. package/es-modules/indicators/pivot-points.src.js +6 -1
  9. package/es-modules/masters/highcharts-gantt.src.js +11 -0
  10. package/es-modules/masters/modules/annotations.src.js +1 -1
  11. package/es-modules/masters/modules/arrow-symbols.src.js +12 -0
  12. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  13. package/es-modules/masters/modules/current-date-indicator.src.js +12 -0
  14. package/es-modules/masters/modules/data.src.js +1 -1
  15. package/es-modules/masters/modules/draggable-points.src.js +9 -0
  16. package/es-modules/masters/modules/export-data.src.js +1 -1
  17. package/es-modules/masters/modules/exporting.src.js +1 -1
  18. package/es-modules/masters/modules/funnel.src.js +1 -1
  19. package/es-modules/masters/modules/gantt.src.js +2 -1
  20. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  21. package/es-modules/masters/modules/heatmap.src.js +1 -1
  22. package/es-modules/masters/modules/item-series.src.js +1 -1
  23. package/es-modules/masters/modules/map.src.js +1 -1
  24. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  25. package/es-modules/masters/modules/pathfinder.src.js +12 -0
  26. package/es-modules/masters/modules/sankey.src.js +1 -1
  27. package/es-modules/masters/modules/series-label.src.js +1 -1
  28. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  29. package/es-modules/masters/modules/stock.src.js +1 -1
  30. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  31. package/es-modules/masters/modules/treegrid.src.js +12 -0
  32. package/es-modules/masters/modules/variwide.src.js +1 -1
  33. package/es-modules/masters/modules/vector.src.js +1 -1
  34. package/es-modules/masters/modules/windbarb.src.js +1 -1
  35. package/es-modules/masters/modules/xrange.src.js +1 -1
  36. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  37. package/es-modules/masters/themes/dark-green.src.js +1 -1
  38. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  39. package/es-modules/masters/themes/gray.src.js +1 -1
  40. package/es-modules/masters/themes/grid-light.src.js +1 -1
  41. package/es-modules/masters/themes/grid.src.js +1 -1
  42. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  43. package/es-modules/masters/themes/skies.src.js +1 -1
  44. package/es-modules/mixins/centered-series.js +1 -1
  45. package/es-modules/mixins/on-series.js +1 -1
  46. package/es-modules/modules/boost.src.js +22 -14
  47. package/es-modules/modules/broken-axis.src.js +169 -134
  48. package/es-modules/modules/data.src.js +2 -2
  49. package/es-modules/modules/draggable-points.src.js +2257 -0
  50. package/es-modules/modules/drilldown.src.js +1 -0
  51. package/es-modules/modules/export-data.src.js +1 -1
  52. package/es-modules/modules/exporting.src.js +1 -1
  53. package/es-modules/modules/funnel.src.js +1 -1
  54. package/es-modules/modules/item-series.src.js +1 -1
  55. package/es-modules/modules/no-data-to-display.src.js +5 -5
  56. package/es-modules/modules/oldie.src.js +1 -1
  57. package/es-modules/modules/overlapping-datalabels.src.js +38 -22
  58. package/es-modules/modules/parallel-coordinates.src.js +3 -2
  59. package/es-modules/modules/sankey.src.js +1 -1
  60. package/es-modules/modules/series-label.src.js +2 -2
  61. package/es-modules/modules/solid-gauge.src.js +1 -1
  62. package/es-modules/modules/static-scale.src.js +67 -28
  63. package/es-modules/modules/streamgraph.src.js +1 -1
  64. package/es-modules/modules/tilemap.src.js +231 -134
  65. package/es-modules/modules/variwide.src.js +1 -1
  66. package/es-modules/modules/vector.src.js +92 -22
  67. package/es-modules/modules/windbarb.src.js +1 -1
  68. package/es-modules/modules/xrange.src.js +257 -77
  69. package/es-modules/parts/AreaSeries.js +77 -77
  70. package/es-modules/parts/AreaSplineSeries.js +64 -27
  71. package/es-modules/parts/Axis.js +160 -67
  72. package/es-modules/parts/BarSeries.js +68 -51
  73. package/es-modules/parts/CandlestickSeries.js +1 -1
  74. package/es-modules/parts/Chart.js +31 -55
  75. package/es-modules/parts/Color.js +29 -18
  76. package/es-modules/parts/ColumnSeries.js +264 -142
  77. package/es-modules/parts/DataGrouping.js +9 -6
  78. package/es-modules/parts/DataLabels.js +261 -210
  79. package/es-modules/parts/DateTimeAxis.js +26 -7
  80. package/es-modules/parts/Dynamics.js +5 -2
  81. package/es-modules/parts/FlagsSeries.js +1 -1
  82. package/es-modules/parts/Globals.js +1 -1
  83. package/es-modules/parts/Html.js +64 -12
  84. package/es-modules/parts/Interaction.js +187 -63
  85. package/es-modules/parts/Legend.js +7 -3
  86. package/es-modules/parts/LogarithmicAxis.js +35 -4
  87. package/es-modules/parts/MSPointer.js +1 -1
  88. package/es-modules/parts/Navigator.js +27 -5
  89. package/es-modules/parts/OHLCSeries.js +1 -1
  90. package/es-modules/parts/Options.js +15 -13
  91. package/es-modules/parts/OrdinalAxis.js +1 -1
  92. package/es-modules/parts/PieSeries.js +256 -140
  93. package/es-modules/parts/PlotBandSeries.experimental.js +1 -1
  94. package/es-modules/parts/PlotLineOrBand.js +7 -40
  95. package/es-modules/parts/Point.js +28 -4
  96. package/es-modules/parts/Pointer.js +8 -6
  97. package/es-modules/parts/RangeSelector.js +1 -1
  98. package/es-modules/parts/Responsive.js +82 -36
  99. package/es-modules/parts/ScatterSeries.js +57 -25
  100. package/es-modules/parts/ScrollablePlotArea.js +17 -7
  101. package/es-modules/parts/Scrollbar.js +9 -2
  102. package/es-modules/parts/Series.js +22 -9
  103. package/es-modules/parts/SplineSeries.js +51 -29
  104. package/es-modules/parts/Stacking.js +100 -6
  105. package/es-modules/parts/StockChart.js +9 -3
  106. package/es-modules/parts/SvgRenderer.js +15 -10
  107. package/es-modules/parts/Tick.js +150 -30
  108. package/es-modules/parts/Time.js +23 -5
  109. package/es-modules/parts/Tooltip.js +2 -2
  110. package/es-modules/parts/TouchPointer.js +1 -1
  111. package/es-modules/parts/Utilities.js +16 -1
  112. package/es-modules/parts-3d/Axis.js +1 -1
  113. package/es-modules/parts-3d/Chart.js +1 -1
  114. package/es-modules/parts-3d/Column.js +1 -1
  115. package/es-modules/parts-3d/Math.js +1 -1
  116. package/es-modules/parts-3d/Pie.js +1 -1
  117. package/es-modules/parts-3d/SVGRenderer.js +1 -1
  118. package/es-modules/parts-3d/Scatter.js +1 -1
  119. package/es-modules/parts-3d/Series.js +1 -1
  120. package/es-modules/parts-3d/VMLRenderer.js +1 -1
  121. package/es-modules/parts-gantt/ArrowSymbols.js +110 -0
  122. package/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
  123. package/es-modules/parts-gantt/GanttChart.js +111 -0
  124. package/es-modules/parts-gantt/GanttSeries.js +376 -0
  125. package/es-modules/parts-gantt/GridAxis.js +965 -0
  126. package/es-modules/parts-gantt/Pathfinder.js +1247 -0
  127. package/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
  128. package/es-modules/parts-gantt/Tree.js +146 -0
  129. package/es-modules/parts-gantt/TreeGrid.js +917 -0
  130. package/es-modules/parts-map/ColorAxis.js +1 -1
  131. package/es-modules/parts-map/ColorSeriesMixin.js +1 -1
  132. package/es-modules/parts-map/GeoJSON.js +1 -1
  133. package/es-modules/parts-map/HeatmapSeries.js +124 -53
  134. package/es-modules/parts-map/Map.js +1 -1
  135. package/es-modules/parts-map/MapAxis.js +1 -1
  136. package/es-modules/parts-map/MapBubbleSeries.js +1 -1
  137. package/es-modules/parts-map/MapLineSeries.js +1 -1
  138. package/es-modules/parts-map/MapNavigation.js +1 -1
  139. package/es-modules/parts-map/MapPointSeries.js +1 -1
  140. package/es-modules/parts-map/MapPointer.js +1 -1
  141. package/es-modules/parts-map/MapSeries.js +2 -2
  142. package/es-modules/parts-more/AreaRangeSeries.js +80 -38
  143. package/es-modules/parts-more/AreaSplineRangeSeries.js +1 -1
  144. package/es-modules/parts-more/BoxPlotSeries.js +1 -1
  145. package/es-modules/parts-more/BubbleSeries.js +1 -1
  146. package/es-modules/parts-more/ColumnRangeSeries.js +1 -1
  147. package/es-modules/parts-more/ErrorBarSeries.js +1 -1
  148. package/es-modules/parts-more/GaugeSeries.js +1 -1
  149. package/es-modules/parts-more/Pane.js +2 -1
  150. package/es-modules/parts-more/Polar.js +1 -1
  151. package/es-modules/parts-more/PolygonSeries.js +1 -1
  152. package/es-modules/parts-more/RadialAxis.js +5 -4
  153. package/es-modules/parts-more/WaterfallSeries.js +1 -1
  154. package/es-modules/supplemental.docs.js +0 -1955
  155. package/es-modules/themes/dark-blue.js +1 -1
  156. package/es-modules/themes/dark-green.js +1 -1
  157. package/es-modules/themes/dark-unica.js +1 -1
  158. package/es-modules/themes/gray.js +1 -1
  159. package/es-modules/themes/grid-light.js +1 -1
  160. package/es-modules/themes/grid.js +1 -1
  161. package/es-modules/themes/sand-signika.js +1 -1
  162. package/es-modules/themes/skies.js +1 -1
  163. package/highcharts-3d.js +1 -1
  164. package/highcharts-3d.src.js +10 -10
  165. package/highcharts-gantt.js +503 -0
  166. package/highcharts-gantt.js.map +1 -0
  167. package/highcharts-gantt.src.js +49289 -0
  168. package/highcharts-more.js +65 -64
  169. package/highcharts-more.js.map +1 -1
  170. package/highcharts-more.src.js +97 -53
  171. package/highcharts.js +415 -410
  172. package/highcharts.js.map +1 -1
  173. package/highcharts.src.js +2170 -1128
  174. package/highmaps.js +443 -438
  175. package/highmaps.js.map +1 -1
  176. package/highmaps.src.js +1647 -849
  177. package/highstock.js +553 -548
  178. package/highstock.js.map +1 -1
  179. package/highstock.src.js +2398 -1283
  180. package/indicators/accumulation-distribution.js +1 -1
  181. package/indicators/accumulation-distribution.src.js +1 -1
  182. package/indicators/atr.js +1 -1
  183. package/indicators/atr.src.js +1 -1
  184. package/indicators/bollinger-bands.js +1 -1
  185. package/indicators/bollinger-bands.src.js +1 -1
  186. package/indicators/cci.js +1 -1
  187. package/indicators/cci.src.js +1 -1
  188. package/indicators/cmf.js +1 -1
  189. package/indicators/cmf.src.js +1 -1
  190. package/indicators/ema.js +1 -1
  191. package/indicators/ema.src.js +1 -1
  192. package/indicators/ichimoku-kinko-hyo.js +1 -1
  193. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  194. package/indicators/indicators.js +1 -1
  195. package/indicators/indicators.src.js +1 -1
  196. package/indicators/macd.js +1 -1
  197. package/indicators/macd.src.js +1 -1
  198. package/indicators/mfi.js +1 -1
  199. package/indicators/mfi.src.js +1 -1
  200. package/indicators/momentum.js +1 -1
  201. package/indicators/momentum.src.js +2 -2
  202. package/indicators/pivot-points.js +4 -4
  203. package/indicators/pivot-points.js.map +1 -1
  204. package/indicators/pivot-points.src.js +7 -2
  205. package/indicators/price-envelopes.js +1 -1
  206. package/indicators/price-envelopes.src.js +1 -1
  207. package/indicators/psar.js +1 -1
  208. package/indicators/psar.src.js +1 -1
  209. package/indicators/roc.js +1 -1
  210. package/indicators/roc.src.js +1 -1
  211. package/indicators/rsi.js +1 -1
  212. package/indicators/rsi.src.js +1 -1
  213. package/indicators/stochastic.js +1 -1
  214. package/indicators/stochastic.src.js +1 -1
  215. package/indicators/volume-by-price.js +1 -1
  216. package/indicators/volume-by-price.src.js +1 -1
  217. package/indicators/vwap.js +1 -1
  218. package/indicators/vwap.src.js +1 -1
  219. package/indicators/wma.js +1 -1
  220. package/indicators/wma.src.js +1 -1
  221. package/indicators/zigzag.js +1 -1
  222. package/indicators/zigzag.src.js +1 -1
  223. package/js/es-modules/indicators/momentum.src.js +1 -1
  224. package/js/es-modules/indicators/pivot-points.src.js +6 -1
  225. package/js/es-modules/masters/highcharts-gantt.src.js +11 -0
  226. package/js/es-modules/masters/modules/annotations.src.js +1 -1
  227. package/js/es-modules/masters/modules/arrow-symbols.src.js +12 -0
  228. package/js/es-modules/masters/modules/broken-axis.src.js +1 -1
  229. package/js/es-modules/masters/modules/current-date-indicator.src.js +12 -0
  230. package/js/es-modules/masters/modules/data.src.js +1 -1
  231. package/js/es-modules/masters/modules/draggable-points.src.js +9 -0
  232. package/js/es-modules/masters/modules/export-data.src.js +1 -1
  233. package/js/es-modules/masters/modules/exporting.src.js +1 -1
  234. package/js/es-modules/masters/modules/funnel.src.js +1 -1
  235. package/js/es-modules/masters/modules/gantt.src.js +2 -1
  236. package/js/es-modules/masters/modules/grid-axis.src.js +1 -1
  237. package/js/es-modules/masters/modules/heatmap.src.js +1 -1
  238. package/js/es-modules/masters/modules/item-series.src.js +1 -1
  239. package/js/es-modules/masters/modules/map.src.js +1 -1
  240. package/js/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  241. package/js/es-modules/masters/modules/pathfinder.src.js +12 -0
  242. package/js/es-modules/masters/modules/sankey.src.js +1 -1
  243. package/js/es-modules/masters/modules/series-label.src.js +1 -1
  244. package/js/es-modules/masters/modules/solid-gauge.src.js +1 -1
  245. package/js/es-modules/masters/modules/stock.src.js +1 -1
  246. package/js/es-modules/masters/modules/streamgraph.src.js +1 -1
  247. package/js/es-modules/masters/modules/treegrid.src.js +12 -0
  248. package/js/es-modules/masters/modules/variwide.src.js +1 -1
  249. package/js/es-modules/masters/modules/vector.src.js +1 -1
  250. package/js/es-modules/masters/modules/windbarb.src.js +1 -1
  251. package/js/es-modules/masters/modules/xrange.src.js +1 -1
  252. package/js/es-modules/masters/themes/dark-blue.src.js +1 -1
  253. package/js/es-modules/masters/themes/dark-green.src.js +1 -1
  254. package/js/es-modules/masters/themes/dark-unica.src.js +1 -1
  255. package/js/es-modules/masters/themes/gray.src.js +1 -1
  256. package/js/es-modules/masters/themes/grid-light.src.js +1 -1
  257. package/js/es-modules/masters/themes/grid.src.js +1 -1
  258. package/js/es-modules/masters/themes/sand-signika.src.js +1 -1
  259. package/js/es-modules/masters/themes/skies.src.js +1 -1
  260. package/js/es-modules/mixins/centered-series.js +1 -1
  261. package/js/es-modules/mixins/on-series.js +1 -1
  262. package/js/es-modules/modules/boost.src.js +22 -14
  263. package/js/es-modules/modules/broken-axis.src.js +169 -134
  264. package/js/es-modules/modules/data.src.js +2 -2
  265. package/js/es-modules/modules/draggable-points.src.js +2257 -0
  266. package/js/es-modules/modules/drilldown.src.js +1 -0
  267. package/js/es-modules/modules/export-data.src.js +1 -1
  268. package/js/es-modules/modules/exporting.src.js +1 -1
  269. package/js/es-modules/modules/funnel.src.js +1 -1
  270. package/js/es-modules/modules/item-series.src.js +1 -1
  271. package/js/es-modules/modules/no-data-to-display.src.js +5 -5
  272. package/js/es-modules/modules/oldie.src.js +1 -1
  273. package/js/es-modules/modules/overlapping-datalabels.src.js +38 -22
  274. package/js/es-modules/modules/parallel-coordinates.src.js +3 -2
  275. package/js/es-modules/modules/sankey.src.js +1 -1
  276. package/js/es-modules/modules/series-label.src.js +2 -2
  277. package/js/es-modules/modules/solid-gauge.src.js +1 -1
  278. package/js/es-modules/modules/static-scale.src.js +67 -28
  279. package/js/es-modules/modules/streamgraph.src.js +1 -1
  280. package/js/es-modules/modules/tilemap.src.js +231 -134
  281. package/js/es-modules/modules/variwide.src.js +1 -1
  282. package/js/es-modules/modules/vector.src.js +92 -22
  283. package/js/es-modules/modules/windbarb.src.js +1 -1
  284. package/js/es-modules/modules/xrange.src.js +255 -68
  285. package/js/es-modules/parts/AreaSeries.js +77 -77
  286. package/js/es-modules/parts/AreaSplineSeries.js +64 -27
  287. package/js/es-modules/parts/Axis.js +160 -67
  288. package/js/es-modules/parts/BarSeries.js +68 -51
  289. package/js/es-modules/parts/CandlestickSeries.js +1 -1
  290. package/js/es-modules/parts/Chart.js +31 -55
  291. package/js/es-modules/parts/Color.js +29 -18
  292. package/js/es-modules/parts/ColumnSeries.js +231 -123
  293. package/js/es-modules/parts/DataGrouping.js +9 -6
  294. package/js/es-modules/parts/DataLabels.js +230 -182
  295. package/js/es-modules/parts/DateTimeAxis.js +26 -7
  296. package/js/es-modules/parts/Dynamics.js +5 -2
  297. package/js/es-modules/parts/FlagsSeries.js +1 -1
  298. package/js/es-modules/parts/Globals.js +1 -1
  299. package/js/es-modules/parts/Html.js +64 -12
  300. package/js/es-modules/parts/Interaction.js +178 -61
  301. package/js/es-modules/parts/Legend.js +7 -3
  302. package/js/es-modules/parts/LogarithmicAxis.js +35 -4
  303. package/js/es-modules/parts/MSPointer.js +1 -1
  304. package/js/es-modules/parts/Navigator.js +27 -5
  305. package/js/es-modules/parts/OHLCSeries.js +1 -1
  306. package/js/es-modules/parts/Options.js +13 -12
  307. package/js/es-modules/parts/OrdinalAxis.js +1 -1
  308. package/js/es-modules/parts/PieSeries.js +245 -132
  309. package/js/es-modules/parts/PlotBandSeries.experimental.js +1 -1
  310. package/js/es-modules/parts/PlotLineOrBand.js +7 -40
  311. package/js/es-modules/parts/Point.js +28 -4
  312. package/js/es-modules/parts/Pointer.js +8 -6
  313. package/js/es-modules/parts/RangeSelector.js +1 -1
  314. package/js/es-modules/parts/Responsive.js +82 -36
  315. package/js/es-modules/parts/ScatterSeries.js +56 -25
  316. package/js/es-modules/parts/ScrollablePlotArea.js +17 -7
  317. package/js/es-modules/parts/Scrollbar.js +9 -2
  318. package/js/es-modules/parts/Series.js +22 -9
  319. package/js/es-modules/parts/SplineSeries.js +51 -29
  320. package/js/es-modules/parts/Stacking.js +100 -6
  321. package/js/es-modules/parts/StockChart.js +9 -3
  322. package/js/es-modules/parts/SvgRenderer.js +15 -10
  323. package/js/es-modules/parts/Tick.js +150 -30
  324. package/js/es-modules/parts/Time.js +23 -5
  325. package/js/es-modules/parts/Tooltip.js +2 -2
  326. package/js/es-modules/parts/TouchPointer.js +1 -1
  327. package/js/es-modules/parts/Utilities.js +16 -1
  328. package/js/es-modules/parts-3d/Axis.js +1 -1
  329. package/js/es-modules/parts-3d/Chart.js +1 -1
  330. package/js/es-modules/parts-3d/Column.js +1 -1
  331. package/js/es-modules/parts-3d/Math.js +1 -1
  332. package/js/es-modules/parts-3d/Pie.js +1 -1
  333. package/js/es-modules/parts-3d/SVGRenderer.js +1 -1
  334. package/js/es-modules/parts-3d/Scatter.js +1 -1
  335. package/js/es-modules/parts-3d/Series.js +1 -1
  336. package/js/es-modules/parts-3d/VMLRenderer.js +1 -1
  337. package/js/es-modules/parts-gantt/ArrowSymbols.js +110 -0
  338. package/js/es-modules/parts-gantt/CurrentDateIndicator.js +92 -0
  339. package/js/es-modules/parts-gantt/GanttChart.js +111 -0
  340. package/js/es-modules/parts-gantt/GanttSeries.js +371 -0
  341. package/js/es-modules/parts-gantt/GridAxis.js +962 -0
  342. package/js/es-modules/parts-gantt/Pathfinder.js +1225 -0
  343. package/js/es-modules/parts-gantt/PathfinderAlgorithms.js +746 -0
  344. package/js/es-modules/parts-gantt/Tree.js +146 -0
  345. package/js/es-modules/parts-gantt/TreeGrid.js +891 -0
  346. package/js/es-modules/parts-map/ColorAxis.js +1 -1
  347. package/js/es-modules/parts-map/ColorSeriesMixin.js +1 -1
  348. package/js/es-modules/parts-map/GeoJSON.js +1 -1
  349. package/js/es-modules/parts-map/HeatmapSeries.js +122 -52
  350. package/js/es-modules/parts-map/Map.js +1 -1
  351. package/js/es-modules/parts-map/MapAxis.js +1 -1
  352. package/js/es-modules/parts-map/MapBubbleSeries.js +1 -1
  353. package/js/es-modules/parts-map/MapLineSeries.js +1 -1
  354. package/js/es-modules/parts-map/MapNavigation.js +1 -1
  355. package/js/es-modules/parts-map/MapPointSeries.js +1 -1
  356. package/js/es-modules/parts-map/MapPointer.js +1 -1
  357. package/js/es-modules/parts-map/MapSeries.js +2 -2
  358. package/js/es-modules/parts-more/AreaRangeSeries.js +80 -38
  359. package/js/es-modules/parts-more/AreaSplineRangeSeries.js +1 -1
  360. package/js/es-modules/parts-more/BoxPlotSeries.js +1 -1
  361. package/js/es-modules/parts-more/BubbleSeries.js +1 -1
  362. package/js/es-modules/parts-more/ColumnRangeSeries.js +1 -1
  363. package/js/es-modules/parts-more/ErrorBarSeries.js +1 -1
  364. package/js/es-modules/parts-more/GaugeSeries.js +1 -1
  365. package/js/es-modules/parts-more/Pane.js +2 -1
  366. package/js/es-modules/parts-more/Polar.js +1 -1
  367. package/js/es-modules/parts-more/PolygonSeries.js +1 -1
  368. package/js/es-modules/parts-more/RadialAxis.js +5 -4
  369. package/js/es-modules/parts-more/WaterfallSeries.js +1 -1
  370. package/js/es-modules/supplemental.docs.js +0 -1955
  371. package/js/es-modules/themes/dark-blue.js +1 -1
  372. package/js/es-modules/themes/dark-green.js +1 -1
  373. package/js/es-modules/themes/dark-unica.js +1 -1
  374. package/js/es-modules/themes/gray.js +1 -1
  375. package/js/es-modules/themes/grid-light.js +1 -1
  376. package/js/es-modules/themes/grid.js +1 -1
  377. package/js/es-modules/themes/sand-signika.js +1 -1
  378. package/js/es-modules/themes/skies.js +1 -1
  379. package/js/highcharts-3d.js +1 -1
  380. package/js/highcharts-3d.src.js +10 -10
  381. package/js/highcharts-gantt.js +480 -0
  382. package/js/highcharts-gantt.js.map +1 -0
  383. package/js/highcharts-gantt.src.js +47011 -0
  384. package/js/highcharts-more.js +62 -61
  385. package/js/highcharts-more.js.map +1 -1
  386. package/js/highcharts-more.src.js +97 -53
  387. package/js/highcharts.js +394 -390
  388. package/js/highcharts.js.map +1 -1
  389. package/js/highcharts.src.js +2083 -1070
  390. package/js/highmaps.js +420 -416
  391. package/js/highmaps.js.map +1 -1
  392. package/js/highmaps.src.js +1569 -798
  393. package/js/highstock.js +526 -520
  394. package/js/highstock.js.map +1 -1
  395. package/js/highstock.src.js +2311 -1225
  396. package/js/indicators/accumulation-distribution.js +1 -1
  397. package/js/indicators/accumulation-distribution.src.js +1 -1
  398. package/js/indicators/atr.js +1 -1
  399. package/js/indicators/atr.src.js +1 -1
  400. package/js/indicators/bollinger-bands.js +1 -1
  401. package/js/indicators/bollinger-bands.src.js +1 -1
  402. package/js/indicators/cci.js +1 -1
  403. package/js/indicators/cci.src.js +1 -1
  404. package/js/indicators/cmf.js +1 -1
  405. package/js/indicators/cmf.src.js +1 -1
  406. package/js/indicators/ema.js +1 -1
  407. package/js/indicators/ema.src.js +1 -1
  408. package/js/indicators/ichimoku-kinko-hyo.js +1 -1
  409. package/js/indicators/ichimoku-kinko-hyo.src.js +1 -1
  410. package/js/indicators/indicators.js +1 -1
  411. package/js/indicators/indicators.src.js +1 -1
  412. package/js/indicators/macd.js +1 -1
  413. package/js/indicators/macd.src.js +1 -1
  414. package/js/indicators/mfi.js +1 -1
  415. package/js/indicators/mfi.src.js +1 -1
  416. package/js/indicators/momentum.js +1 -1
  417. package/js/indicators/momentum.src.js +2 -2
  418. package/js/indicators/pivot-points.js +4 -4
  419. package/js/indicators/pivot-points.js.map +1 -1
  420. package/js/indicators/pivot-points.src.js +7 -2
  421. package/js/indicators/price-envelopes.js +1 -1
  422. package/js/indicators/price-envelopes.src.js +1 -1
  423. package/js/indicators/psar.js +1 -1
  424. package/js/indicators/psar.src.js +1 -1
  425. package/js/indicators/roc.js +1 -1
  426. package/js/indicators/roc.src.js +1 -1
  427. package/js/indicators/rsi.js +1 -1
  428. package/js/indicators/rsi.src.js +1 -1
  429. package/js/indicators/stochastic.js +1 -1
  430. package/js/indicators/stochastic.src.js +1 -1
  431. package/js/indicators/volume-by-price.js +1 -1
  432. package/js/indicators/volume-by-price.src.js +1 -1
  433. package/js/indicators/vwap.js +1 -1
  434. package/js/indicators/vwap.src.js +1 -1
  435. package/js/indicators/wma.js +1 -1
  436. package/js/indicators/wma.src.js +1 -1
  437. package/js/indicators/zigzag.js +1 -1
  438. package/js/indicators/zigzag.src.js +1 -1
  439. package/js/modules/accessibility.js +1 -1
  440. package/js/modules/accessibility.src.js +1 -1
  441. package/js/modules/annotations.js +2 -2
  442. package/js/modules/annotations.src.js +2 -2
  443. package/js/modules/arrow-symbols.js +13 -0
  444. package/js/modules/arrow-symbols.js.map +1 -0
  445. package/js/modules/arrow-symbols.src.js +138 -0
  446. package/js/modules/boost-canvas.js +1 -1
  447. package/js/modules/boost-canvas.src.js +1 -1
  448. package/js/modules/boost.js +43 -43
  449. package/js/modules/boost.js.map +1 -1
  450. package/js/modules/boost.src.js +23 -15
  451. package/js/modules/broken-axis.js +11 -10
  452. package/js/modules/broken-axis.js.map +1 -1
  453. package/js/modules/broken-axis.src.js +171 -136
  454. package/js/modules/bullet.js +1 -1
  455. package/js/modules/bullet.src.js +1 -1
  456. package/js/modules/current-date-indicator.js +13 -0
  457. package/js/modules/current-date-indicator.js.map +1 -0
  458. package/js/modules/current-date-indicator.src.js +120 -0
  459. package/js/modules/data.js +2 -2
  460. package/js/modules/data.src.js +4 -4
  461. package/js/modules/drag-panes.js +1 -1
  462. package/js/modules/drag-panes.src.js +1 -1
  463. package/js/modules/draggable-points.js +38 -0
  464. package/js/modules/draggable-points.js.map +1 -0
  465. package/js/modules/draggable-points.src.js +2281 -0
  466. package/js/modules/drilldown.js +1 -1
  467. package/js/modules/drilldown.js.map +1 -1
  468. package/js/modules/drilldown.src.js +2 -1
  469. package/js/modules/export-data.js +2 -2
  470. package/js/modules/export-data.src.js +3 -3
  471. package/js/modules/exporting.js +2 -2
  472. package/js/modules/exporting.src.js +3 -3
  473. package/js/modules/funnel.js +2 -2
  474. package/js/modules/funnel.src.js +3 -3
  475. package/js/modules/gantt.js +80 -18
  476. package/js/modules/gantt.js.map +1 -1
  477. package/js/modules/gantt.src.js +5490 -372
  478. package/js/modules/grid-axis.js +15 -11
  479. package/js/modules/grid-axis.js.map +1 -1
  480. package/js/modules/grid-axis.src.js +731 -293
  481. package/js/modules/heatmap.js +2 -2
  482. package/js/modules/heatmap.js.map +1 -1
  483. package/js/modules/heatmap.src.js +126 -56
  484. package/js/modules/histogram-bellcurve.js +1 -1
  485. package/js/modules/histogram-bellcurve.src.js +1 -1
  486. package/js/modules/item-series.js +2 -2
  487. package/js/modules/item-series.src.js +3 -3
  488. package/js/modules/map.js +2 -2
  489. package/js/modules/map.js.map +1 -1
  490. package/js/modules/map.src.js +137 -67
  491. package/js/modules/no-data-to-display.js +1 -1
  492. package/js/modules/no-data-to-display.src.js +6 -6
  493. package/js/modules/offline-exporting.js +2 -2
  494. package/js/modules/offline-exporting.src.js +2 -2
  495. package/js/modules/oldie.js +2 -2
  496. package/js/modules/oldie.src.js +3 -3
  497. package/js/modules/overlapping-datalabels.js +2 -2
  498. package/js/modules/overlapping-datalabels.src.js +2 -2
  499. package/js/modules/parallel-coordinates.js +9 -9
  500. package/js/modules/parallel-coordinates.js.map +1 -1
  501. package/js/modules/parallel-coordinates.src.js +4 -3
  502. package/js/modules/pareto.js +1 -1
  503. package/js/modules/pareto.src.js +1 -1
  504. package/js/modules/pathfinder.js +34 -0
  505. package/js/modules/pathfinder.js.map +1 -0
  506. package/js/modules/pathfinder.src.js +2106 -0
  507. package/js/modules/pattern-fill.js +1 -1
  508. package/js/modules/pattern-fill.src.js +1 -1
  509. package/js/modules/sankey.js +2 -2
  510. package/js/modules/sankey.src.js +3 -3
  511. package/js/modules/series-label.js +2 -2
  512. package/js/modules/series-label.src.js +4 -4
  513. package/js/modules/solid-gauge.js +2 -2
  514. package/js/modules/solid-gauge.src.js +3 -3
  515. package/js/modules/static-scale.js +3 -3
  516. package/js/modules/static-scale.js.map +1 -1
  517. package/js/modules/static-scale.src.js +65 -26
  518. package/js/modules/stock.js +135 -134
  519. package/js/modules/stock.js.map +1 -1
  520. package/js/modules/stock.src.js +230 -157
  521. package/js/modules/streamgraph.js +2 -2
  522. package/js/modules/streamgraph.src.js +3 -3
  523. package/js/modules/sunburst.js +1 -1
  524. package/js/modules/sunburst.src.js +1 -1
  525. package/js/modules/tilemap.js +1 -1
  526. package/js/modules/tilemap.js.map +1 -1
  527. package/js/modules/tilemap.src.js +355 -188
  528. package/js/modules/treegrid.js +51 -0
  529. package/js/modules/treegrid.js.map +1 -0
  530. package/js/modules/treegrid.src.js +2759 -0
  531. package/js/modules/treemap.js +1 -1
  532. package/js/modules/treemap.src.js +1 -1
  533. package/js/modules/variable-pie.js +1 -1
  534. package/js/modules/variable-pie.src.js +1 -1
  535. package/js/modules/variwide.js +2 -2
  536. package/js/modules/variwide.src.js +3 -3
  537. package/js/modules/vector.js +2 -2
  538. package/js/modules/vector.js.map +1 -1
  539. package/js/modules/vector.src.js +94 -24
  540. package/js/modules/windbarb.js +2 -2
  541. package/js/modules/windbarb.src.js +4 -4
  542. package/js/modules/wordcloud.js +1 -1
  543. package/js/modules/wordcloud.src.js +1 -1
  544. package/js/modules/xrange.js +11 -10
  545. package/js/modules/xrange.js.map +1 -1
  546. package/js/modules/xrange.src.js +257 -70
  547. package/js/themes/avocado.js +1 -1
  548. package/js/themes/avocado.src.js +1 -1
  549. package/js/themes/dark-blue.js +2 -2
  550. package/js/themes/dark-blue.src.js +3 -3
  551. package/js/themes/dark-green.js +2 -2
  552. package/js/themes/dark-green.src.js +3 -3
  553. package/js/themes/dark-unica.js +2 -2
  554. package/js/themes/dark-unica.src.js +3 -3
  555. package/js/themes/gray.js +2 -2
  556. package/js/themes/gray.src.js +3 -3
  557. package/js/themes/grid-light.js +2 -2
  558. package/js/themes/grid-light.src.js +3 -3
  559. package/js/themes/grid.js +2 -2
  560. package/js/themes/grid.src.js +3 -3
  561. package/js/themes/sand-signika.js +2 -2
  562. package/js/themes/sand-signika.src.js +3 -3
  563. package/js/themes/skies.js +2 -2
  564. package/js/themes/skies.src.js +3 -3
  565. package/js/themes/sunset.js +1 -1
  566. package/js/themes/sunset.src.js +1 -1
  567. package/modules/accessibility.js +1 -1
  568. package/modules/accessibility.src.js +1 -1
  569. package/modules/annotations.js +2 -2
  570. package/modules/annotations.src.js +2 -2
  571. package/modules/arrow-symbols.js +13 -0
  572. package/modules/arrow-symbols.js.map +1 -0
  573. package/modules/arrow-symbols.src.js +138 -0
  574. package/modules/boost-canvas.js +1 -1
  575. package/modules/boost-canvas.src.js +1 -1
  576. package/modules/boost.js +36 -36
  577. package/modules/boost.js.map +1 -1
  578. package/modules/boost.src.js +23 -15
  579. package/modules/broken-axis.js +11 -10
  580. package/modules/broken-axis.js.map +1 -1
  581. package/modules/broken-axis.src.js +171 -136
  582. package/modules/bullet.js +1 -1
  583. package/modules/bullet.src.js +1 -1
  584. package/modules/current-date-indicator.js +13 -0
  585. package/modules/current-date-indicator.js.map +1 -0
  586. package/modules/current-date-indicator.src.js +120 -0
  587. package/modules/data.js +2 -2
  588. package/modules/data.src.js +4 -4
  589. package/modules/drag-panes.js +1 -1
  590. package/modules/drag-panes.src.js +1 -1
  591. package/modules/draggable-points.js +38 -0
  592. package/modules/draggable-points.js.map +1 -0
  593. package/modules/draggable-points.src.js +2281 -0
  594. package/modules/drilldown.js +1 -1
  595. package/modules/drilldown.js.map +1 -1
  596. package/modules/drilldown.src.js +2 -1
  597. package/modules/export-data.js +2 -2
  598. package/modules/export-data.src.js +3 -3
  599. package/modules/exporting.js +2 -2
  600. package/modules/exporting.src.js +3 -3
  601. package/modules/funnel.js +2 -2
  602. package/modules/funnel.src.js +3 -3
  603. package/modules/gantt.js +83 -19
  604. package/modules/gantt.js.map +1 -1
  605. package/modules/gantt.src.js +5553 -379
  606. package/modules/grid-axis.js +16 -11
  607. package/modules/grid-axis.js.map +1 -1
  608. package/modules/grid-axis.src.js +732 -293
  609. package/modules/heatmap.js +2 -2
  610. package/modules/heatmap.js.map +1 -1
  611. package/modules/heatmap.src.js +128 -57
  612. package/modules/histogram-bellcurve.js +1 -1
  613. package/modules/histogram-bellcurve.src.js +1 -1
  614. package/modules/item-series.js +2 -2
  615. package/modules/item-series.src.js +3 -3
  616. package/modules/map.js +2 -2
  617. package/modules/map.js.map +1 -1
  618. package/modules/map.src.js +139 -68
  619. package/modules/no-data-to-display.js +1 -1
  620. package/modules/no-data-to-display.src.js +6 -6
  621. package/modules/offline-exporting.js +2 -2
  622. package/modules/offline-exporting.src.js +2 -2
  623. package/modules/oldie.js +2 -2
  624. package/modules/oldie.src.js +3 -3
  625. package/modules/overlapping-datalabels.js +2 -2
  626. package/modules/overlapping-datalabels.src.js +2 -2
  627. package/modules/parallel-coordinates.js +8 -8
  628. package/modules/parallel-coordinates.js.map +1 -1
  629. package/modules/parallel-coordinates.src.js +4 -3
  630. package/modules/pareto.js +1 -1
  631. package/modules/pareto.src.js +1 -1
  632. package/modules/pathfinder.js +35 -0
  633. package/modules/pathfinder.js.map +1 -0
  634. package/modules/pathfinder.src.js +2128 -0
  635. package/modules/pattern-fill.js +1 -1
  636. package/modules/pattern-fill.src.js +1 -1
  637. package/modules/sankey.js +2 -2
  638. package/modules/sankey.src.js +3 -3
  639. package/modules/series-label.js +2 -2
  640. package/modules/series-label.src.js +4 -4
  641. package/modules/solid-gauge.js +2 -2
  642. package/modules/solid-gauge.src.js +3 -3
  643. package/modules/static-scale.js +3 -3
  644. package/modules/static-scale.js.map +1 -1
  645. package/modules/static-scale.src.js +65 -26
  646. package/modules/stock.js +142 -142
  647. package/modules/stock.js.map +1 -1
  648. package/modules/stock.src.js +230 -157
  649. package/modules/streamgraph.js +2 -2
  650. package/modules/streamgraph.src.js +3 -3
  651. package/modules/sunburst.js +1 -1
  652. package/modules/sunburst.src.js +1 -1
  653. package/modules/tilemap.js +1 -1
  654. package/modules/tilemap.js.map +1 -1
  655. package/modules/tilemap.src.js +357 -189
  656. package/modules/treegrid.js +52 -0
  657. package/modules/treegrid.js.map +1 -0
  658. package/modules/treegrid.src.js +2797 -0
  659. package/modules/treemap.js +1 -1
  660. package/modules/treemap.src.js +1 -1
  661. package/modules/variable-pie.js +1 -1
  662. package/modules/variable-pie.src.js +1 -1
  663. package/modules/variwide.js +2 -2
  664. package/modules/variwide.src.js +3 -3
  665. package/modules/vector.js +2 -2
  666. package/modules/vector.js.map +1 -1
  667. package/modules/vector.src.js +94 -24
  668. package/modules/windbarb.js +2 -2
  669. package/modules/windbarb.src.js +4 -4
  670. package/modules/wordcloud.js +1 -1
  671. package/modules/wordcloud.src.js +1 -1
  672. package/modules/xrange.js +12 -11
  673. package/modules/xrange.js.map +1 -1
  674. package/modules/xrange.src.js +259 -79
  675. package/package.json +1 -1
  676. package/themes/avocado.js +1 -1
  677. package/themes/avocado.src.js +1 -1
  678. package/themes/dark-blue.js +2 -2
  679. package/themes/dark-blue.src.js +3 -3
  680. package/themes/dark-green.js +2 -2
  681. package/themes/dark-green.src.js +3 -3
  682. package/themes/dark-unica.js +2 -2
  683. package/themes/dark-unica.src.js +3 -3
  684. package/themes/gray.js +2 -2
  685. package/themes/gray.src.js +3 -3
  686. package/themes/grid-light.js +2 -2
  687. package/themes/grid-light.src.js +3 -3
  688. package/themes/grid.js +2 -2
  689. package/themes/grid.src.js +3 -3
  690. package/themes/sand-signika.js +2 -2
  691. package/themes/sand-signika.src.js +3 -3
  692. package/themes/skies.js +2 -2
  693. package/themes/skies.src.js +3 -3
  694. package/themes/sunset.js +1 -1
  695. package/themes/sunset.src.js +1 -1
@@ -1,49 +1,15 @@
1
1
  /**
2
- * (c) 2010-2017 Torstein Honsi
2
+ * (c) 2010-2018 Torstein Honsi
3
3
  *
4
4
  * License: www.highcharts.com/license
5
5
  */
6
6
 
7
- /**
8
- * A label box.
9
- *
10
- * @typedef {object} Highcharts.DataLabelBoxObject
11
- *
12
- * @property {number} align
13
- *
14
- * @property {number} pos
15
- *
16
- * @property {number} rank
17
- *
18
- * @property {number} size
19
- *
20
- * @property {number} target
21
- */
22
-
23
- /**
24
- * Alignment offset for a label.
25
- *
26
- * @typedef {object} Highcharts.DataLabelAlignObject
27
- *
28
- * @property {number} x
29
- *
30
- * @property {number} y
31
- */
32
-
33
- /**
34
- * Label position for a pie slice.
35
- *
36
- * @typedef {Array<number|string>} Highcharts.DataLabelPiePosObject
37
- *
38
- * @property {number} x
39
- *
40
- * @property {number} y
41
- */
42
-
43
7
  'use strict';
8
+
44
9
  import H from './Globals.js';
45
10
  import './Utilities.js';
46
11
  import './Series.js';
12
+
47
13
  var addEvent = H.addEvent,
48
14
  arrayMax = H.arrayMax,
49
15
  defined = H.defined,
@@ -58,8 +24,9 @@ var addEvent = H.addEvent,
58
24
  Series = H.Series,
59
25
  seriesTypes = H.seriesTypes,
60
26
  some = H.some,
61
- stableSort = H.stableSort;
62
-
27
+ stableSort = H.stableSort,
28
+ isArray = H.isArray,
29
+ splat = H.splat;
63
30
 
64
31
  /**
65
32
  * General distribution algorithm for distributing labels of differing size
@@ -68,15 +35,14 @@ var addEvent = H.addEvent,
68
35
  * close as possible to their targets, skipping the lowest ranked labels if
69
36
  * necessary.
70
37
  *
38
+ * @private
71
39
  * @function Highcharts.distribute
72
40
  *
73
- * @param {Array<Highcharts.DataLabelBoxObject>} boxes
41
+ * @param {Array<object>} boxes
74
42
  *
75
- * @param {number} len
43
+ * @param {number} len
76
44
  *
77
- * @param {number} maxDistance
78
- *
79
- * @return {void}
45
+ * @param {number} maxDistance
80
46
  */
81
47
  H.distribute = function (boxes, len, maxDistance) {
82
48
 
@@ -222,25 +188,21 @@ H.distribute = function (boxes, len, maxDistance) {
222
188
  /**
223
189
  * Draw the data labels
224
190
  *
191
+ * @private
225
192
  * @function Highcharts.Series#drawDataLabels
226
193
  *
227
- * @return {void}
228
- *
229
- * @todo
230
- * Make events official: Fires the event `afterDrawDataLabels`.
194
+ * @fires Highcharts.Series#event:afterDrawDataLabels
231
195
  */
232
196
  Series.prototype.drawDataLabels = function () {
233
197
  var series = this,
234
198
  chart = series.chart,
235
199
  seriesOptions = series.options,
236
- options = seriesOptions.dataLabels,
200
+ seriesDlOptions = seriesOptions.dataLabels,
237
201
  points = series.points,
238
202
  pointOptions,
239
- generalOptions,
240
203
  hasRendered = series.hasRendered || 0,
241
- str,
242
204
  dataLabelsGroup,
243
- defer = pick(options.defer, !!seriesOptions.animation),
205
+ defer = pick(seriesDlOptions.defer, !!seriesOptions.animation),
244
206
  renderer = chart.renderer;
245
207
 
246
208
  /*
@@ -270,19 +232,59 @@ Series.prototype.drawDataLabels = function () {
270
232
  return true;
271
233
  }
272
234
 
273
- if (options.enabled || series._hasPointLabels) {
274
-
275
- // Process default alignment of data labels for columns
276
- if (series.dlProcessOptions) {
277
- series.dlProcessOptions(options);
235
+ /*
236
+ * Merge two objects that can be arrays. If one of them is an array, the
237
+ * other is merged into each element. If both are arrays, each element is
238
+ * merged by index. If neither are arrays, we use normal merge.
239
+ */
240
+ function mergeArrays(one, two) {
241
+ var res = [],
242
+ i;
243
+ if (isArray(one) && !isArray(two)) {
244
+ res = map(one, function (el) {
245
+ return merge(el, two);
246
+ });
247
+ } else if (isArray(two) && !isArray(one)) {
248
+ res = map(two, function (el) {
249
+ return merge(one, el);
250
+ });
251
+ } else if (!isArray(one) && !isArray(two)) {
252
+ res = merge(one, two);
253
+ } else {
254
+ i = Math.max(one.length, two.length);
255
+ while (i--) {
256
+ res[i] = merge(one[i], two[i]);
257
+ }
278
258
  }
259
+ return res;
260
+ }
261
+
262
+
263
+ // Merge in plotOptions.dataLabels for series
264
+ seriesDlOptions = mergeArrays(
265
+ mergeArrays(
266
+ chart.options.plotOptions &&
267
+ chart.options.plotOptions.series &&
268
+ chart.options.plotOptions.series.dataLabels,
269
+ chart.options.plotOptions &&
270
+ chart.options.plotOptions[series.type] &&
271
+ chart.options.plotOptions[series.type].dataLabels
272
+ ),
273
+ seriesDlOptions
274
+ );
275
+
276
+ if (
277
+ isArray(seriesDlOptions) ||
278
+ seriesDlOptions.enabled ||
279
+ series._hasPointLabels
280
+ ) {
279
281
 
280
282
  // Create a separate group for the data labels to avoid rotation
281
283
  dataLabelsGroup = series.plotGroup(
282
284
  'dataLabelsGroup',
283
285
  'data-labels',
284
286
  defer && !hasRendered ? 'hidden' : 'visible', // #5133
285
- options.zIndex || 6
287
+ seriesDlOptions.zIndex || 6
286
288
  );
287
289
 
288
290
  if (defer) {
@@ -300,120 +302,161 @@ Series.prototype.drawDataLabels = function () {
300
302
  }
301
303
 
302
304
  // Make the labels for each point
303
- generalOptions = options;
304
305
  each(points, function (point) {
305
- var enabled,
306
- dataLabel = point.dataLabel,
307
- labelConfig,
308
- attr,
309
- rotation,
310
- connector = point.connector,
311
- isNew = !dataLabel,
312
- style,
313
- formatString;
314
-
315
- // Determine if each data label is enabled
306
+
307
+ // Merge in series options for the point.
316
308
  // @note dataLabelAttribs (like pointAttribs) would eradicate
317
309
  // the need for dlOptions, and simplify the section below.
318
- pointOptions = point.dlOptions || // dlOptions is used in treemaps
319
- (point.options && point.options.dataLabels);
320
- enabled = pick(
321
- pointOptions && pointOptions.enabled,
322
- generalOptions.enabled
323
- ) && !point.isNull; // #2282, #4641, #7112
324
-
325
- if (enabled) {
326
- enabled = applyFilter(point, pointOptions || options) === true;
327
- }
328
-
329
- if (enabled) {
330
- // Create individual options structure that can be extended
331
- // without affecting others
332
- options = merge(generalOptions, pointOptions);
333
- labelConfig = point.getLabelConfig();
334
- formatString = (
335
- options[point.formatPrefix + 'Format'] ||
336
- options.format
337
- );
310
+ pointOptions = splat(
311
+ mergeArrays(
312
+ seriesDlOptions,
313
+ point.dlOptions || // dlOptions is used in treemaps
314
+ (point.options && point.options.dataLabels)
315
+ )
316
+ );
338
317
 
339
- str = defined(formatString) ?
340
- format(formatString, labelConfig, chart.time) :
341
- (
342
- options[point.formatPrefix + 'Formatter'] ||
343
- options.formatter
344
- ).call(labelConfig, options);
318
+ // Handle each individual data label for this point
319
+ each(pointOptions, function (labelOptions, i) {
320
+ // Options for one datalabel
321
+ var labelEnabled = labelOptions.enabled &&
322
+ !point.isNull && // #2282, #4641, #7112
323
+ applyFilter(point, labelOptions),
324
+ labelConfig,
325
+ formatString,
326
+ labelText,
327
+ style,
328
+ rotation,
329
+ attr,
330
+ dataLabel = point.dataLabels ? point.dataLabels[i] :
331
+ point.dataLabel,
332
+ connector = point.connectors ? point.connectors[i] :
333
+ point.connector,
334
+ isNew = !dataLabel;
335
+
336
+ if (labelEnabled) {
337
+ // Create individual options structure that can be extended
338
+ // without affecting others
339
+ labelConfig = point.getLabelConfig();
340
+ formatString = (
341
+ labelOptions[point.formatPrefix + 'Format'] ||
342
+ labelOptions.format
343
+ );
345
344
 
346
- style = options.style;
347
- rotation = options.rotation;
348
-
345
+ labelText = defined(formatString) ?
346
+ format(formatString, labelConfig, chart.time) :
347
+ (
348
+ labelOptions[point.formatPrefix + 'Formatter'] ||
349
+ labelOptions.formatter
350
+ ).call(labelConfig, labelOptions);
349
351
 
350
- attr = {
352
+ style = labelOptions.style;
353
+ rotation = labelOptions.rotation;
351
354
 
352
- r: options.borderRadius || 0,
353
- rotation: rotation,
354
- padding: options.padding,
355
- zIndex: 1
356
- };
357
355
 
358
- // Remove unused attributes (#947)
359
- H.objectEach(attr, function (val, name) {
360
- if (val === undefined) {
361
- delete attr[name];
362
- }
363
- });
364
- }
365
- // If the point is outside the plot area, destroy it. #678, #820
366
- if (dataLabel && (!enabled || !defined(str))) {
367
- point.dataLabel = dataLabel = dataLabel.destroy();
368
- if (connector) {
369
- point.connector = connector.destroy();
356
+ attr = {
357
+
358
+ r: labelOptions.borderRadius || 0,
359
+ rotation: rotation,
360
+ padding: labelOptions.padding,
361
+ zIndex: 1
362
+ };
363
+
364
+ // Remove unused attributes (#947)
365
+ H.objectEach(attr, function (val, name) {
366
+ if (val === undefined) {
367
+ delete attr[name];
368
+ }
369
+ });
370
370
  }
371
- // Individual labels are disabled if the are explicitly disabled
372
- // in the point options, or if they fall outside the plot area.
373
- } else if (enabled && defined(str)) {
374
- // create new label
375
- if (!dataLabel) {
376
- dataLabel = point.dataLabel = rotation ?
377
-
378
- renderer
379
- .text( // labels don't rotate
380
- str,
371
+
372
+ // If the point is outside the plot area, destroy it. #678, #820
373
+ if (dataLabel && (!labelEnabled || !defined(labelText))) {
374
+ point.dataLabel = point.dataLabel.destroy();
375
+ if (point.dataLabels) {
376
+ // Remove point.dataLabels if this was the last one
377
+ if (point.dataLabels.length === 1) {
378
+ delete point.dataLabels;
379
+ } else {
380
+ delete point.dataLabels[i];
381
+ }
382
+ }
383
+ if (!i) {
384
+ delete point.dataLabel;
385
+ }
386
+ if (connector) {
387
+ point.connector = point.connector.destroy();
388
+ if (point.connectors) {
389
+ // Remove point.connectors if this was the last one
390
+ if (point.connectors.length === 1) {
391
+ delete point.connectors;
392
+ } else {
393
+ delete point.connectors[i];
394
+ }
395
+ }
396
+ }
397
+
398
+ // Individual labels are disabled if the are explicitly disabled
399
+ // in the point options, or if they fall outside the plot area.
400
+ } else if (labelEnabled && defined(labelText)) {
401
+
402
+ if (!dataLabel) {
403
+ // Create new label element
404
+ point.dataLabels = point.dataLabels || [];
405
+ dataLabel = point.dataLabels[i] = rotation ?
406
+
407
+ // Labels don't rotate, use text element
408
+ renderer.text(labelText, 0, -9999)
409
+ .addClass('highcharts-data-label') :
410
+
411
+ // We can use label
412
+ renderer.label(
413
+ labelText,
381
414
  0,
382
415
  -9999,
383
- options.useHTML
384
- )
385
- .addClass('highcharts-data-label') :
416
+ labelOptions.shape,
417
+ null,
418
+ null,
419
+ labelOptions.useHTML,
420
+ null,
421
+ 'data-label'
422
+ );
423
+
424
+ // Store for backwards compatibility
425
+ if (!i) {
426
+ point.dataLabel = dataLabel;
427
+ }
386
428
 
387
- renderer.label(
388
- str,
389
- 0,
390
- -9999,
391
- options.shape,
392
- null,
393
- null,
394
- options.useHTML,
395
- null,
396
- 'data-label'
429
+ dataLabel.addClass(
430
+ ' highcharts-data-label-color-' + point.colorIndex +
431
+ ' ' + (labelOptions.className || '') +
432
+ ( // #3398
433
+ labelOptions.useHTML ?
434
+ ' highcharts-tracker' :
435
+ ''
436
+ )
397
437
  );
438
+ } else {
439
+ // Use old element and just update text
440
+ attr.text = labelText;
441
+ }
398
442
 
399
- dataLabel.addClass(
400
- ' highcharts-data-label-color-' + point.colorIndex +
401
- ' ' + (options.className || '') +
402
- (options.useHTML ? ' highcharts-tracker' : '') // #3398
403
- );
404
- } else {
405
- attr.text = str;
406
- }
407
- dataLabel.attr(attr);
408
-
443
+ // Store data label options for later access
444
+ dataLabel.options = labelOptions;
445
+
446
+ dataLabel.attr(attr);
447
+
409
448
 
410
- if (!dataLabel.added) {
411
- dataLabel.add(dataLabelsGroup);
449
+ if (!dataLabel.added) {
450
+ dataLabel.add(dataLabelsGroup);
451
+ }
452
+
453
+ // Now the data label is created and placed at 0,0, so we
454
+ // need to align it
455
+ series.alignDataLabel(
456
+ point, dataLabel, labelOptions, null, isNew
457
+ );
412
458
  }
413
- // Now the data label is created and placed at 0,0, so we need
414
- // to align it
415
- series.alignDataLabel(point, dataLabel, options, null, isNew);
416
- }
459
+ });
417
460
  });
418
461
  }
419
462
 
@@ -423,19 +466,18 @@ Series.prototype.drawDataLabels = function () {
423
466
  /**
424
467
  * Align each individual data label.
425
468
  *
469
+ * @private
426
470
  * @function Highcharts.Series#alignDataLabel
427
471
  *
428
- * @param {Highcharts.Point} point
472
+ * @param {Highcharts.Point} point
429
473
  *
430
- * @param {Highcharts.SVGElement} dataLabel
474
+ * @param {Highcharts.SVGElement} dataLabel
431
475
  *
432
- * @param {Highcharts.PlotSeriesDataLabelsOptions} options
476
+ * @param {Highcharts.PlotSeriesDataLabelsOptions} options
433
477
  *
434
- * @param {Highcharts.BBoxObject} alignTo
478
+ * @param {Highcharts.BBoxObject} alignTo
435
479
  *
436
- * @param {boolean} isNew
437
- *
438
- * @return {void}
480
+ * @param {boolean} isNew
439
481
  */
440
482
  Series.prototype.alignDataLabel = function (
441
483
  point,
@@ -582,17 +624,18 @@ Series.prototype.alignDataLabel = function (
582
624
  * If data labels fall partly outside the plot area, align them back in, in a
583
625
  * way that doesn't hide the point.
584
626
  *
627
+ * @private
585
628
  * @function Highcharts.Series#justifyDataLabel
586
629
  *
587
- * @param {Highcharts.SVGElement} dataLabel
630
+ * @param {Highcharts.SVGElement} dataLabel
588
631
  *
589
- * @param {Highcharts.PlotSeriesDataLabelsOptions} options
632
+ * @param {Highcharts.PlotSeriesDataLabelsOptions} options
590
633
  *
591
- * @param {Highcharts.DataLabelAlignObject} alignAttr
634
+ * @param {*} alignAttr
592
635
  *
593
- * @param {Highcharts.BBoxObject} bBox
636
+ * @param {Highcharts.BBoxObject} bBox
594
637
  *
595
- * @param {boolean} isNew
638
+ * @param {boolean} isNew
596
639
  *
597
640
  * @return {boolean}
598
641
  */
@@ -667,9 +710,8 @@ if (seriesTypes.pie) {
667
710
  /**
668
711
  * Override the base drawDataLabels method by pie specific functionality
669
712
  *
713
+ * @private
670
714
  * @function Highcharts.seriesTypes.pie#drawDataLabels
671
- *
672
- * @return {void}
673
715
  */
674
716
  seriesTypes.pie.prototype.drawDataLabels = function () {
675
717
  var series = this,
@@ -748,6 +790,12 @@ if (seriesTypes.pie) {
748
790
 
749
791
  } else {
750
792
  point.dataLabel = point.dataLabel.destroy();
793
+ // Workaround to make pies destroy multiple datalabels
794
+ // correctly. This logic needs rewriting to support multiple
795
+ // datalabels fully.
796
+ if (point.dataLabels && point.dataLabels.length === 1) {
797
+ delete point.dataLabels;
798
+ }
751
799
  }
752
800
  }
753
801
  });
@@ -984,9 +1032,10 @@ if (seriesTypes.pie) {
984
1032
  * Extendable method for getting the path of the connector between the data
985
1033
  * label and the pie slice.
986
1034
  *
1035
+ * @private
987
1036
  * @function Highcharts.seriesTypes.pie#connectorPath
988
1037
  *
989
- * @param {Highcharts.DataLabelPiePosObject} labelPos
1038
+ * @param {*} labelPos
990
1039
  *
991
1040
  * @return {Highcharts.PathObject}
992
1041
  */
@@ -1018,9 +1067,8 @@ if (seriesTypes.pie) {
1018
1067
  * Perform the final placement of the data labels after we have verified
1019
1068
  * that they fall within the plot area.
1020
1069
  *
1070
+ * @private
1021
1071
  * @function Highcharts.seriesTypes.pie#placeDataLabels
1022
- *
1023
- * @return {void}
1024
1072
  */
1025
1073
  seriesTypes.pie.prototype.placeDataLabels = function () {
1026
1074
  each(this.points, function (point) {
@@ -1064,9 +1112,10 @@ if (seriesTypes.pie) {
1064
1112
  * translation and data label positioning to keep them inside the plot area.
1065
1113
  * Returns true when data labels are ready to draw.
1066
1114
  *
1115
+ * @private
1067
1116
  * @function Highcharts.seriesTypes.pie#verifyDataLabelOverflow
1068
1117
  *
1069
- * @param {boolean} overflow
1118
+ * @param {boolean} overflow
1070
1119
  *
1071
1120
  * @return {boolean}
1072
1121
  */
@@ -1144,19 +1193,18 @@ if (seriesTypes.column) {
1144
1193
  * Override the basic data label alignment by adjusting for the position of
1145
1194
  * the column.
1146
1195
  *
1196
+ * @private
1147
1197
  * @function Highcharts.seriesTypes.column#alignDataLabel
1148
1198
  *
1149
- * @param {Highcharts.Point} point
1150
- *
1151
- * @param {Highcharts.SVGElement} dataLabel
1199
+ * @param {Highcharts.Point} point
1152
1200
  *
1153
- * @param {Highcharts.PlotSeriesDataLabelsOptions} options
1201
+ * @param {Highcharts.SVGElement} dataLabel
1154
1202
  *
1155
- * @param {Highcharts.BBoxObject} alignTo
1203
+ * @param {Highcharts.PlotSeriesDataLabelsOptions} options
1156
1204
  *
1157
- * @param {boolean} isNew
1205
+ * @param {Highcharts.BBoxObject} alignTo
1158
1206
  *
1159
- * @return {void}
1207
+ * @param {boolean} isNew
1160
1208
  */
1161
1209
  seriesTypes.column.prototype.alignDataLabel = function (
1162
1210
  point,
@@ -1235,7 +1283,7 @@ if (seriesTypes.column) {
1235
1283
 
1236
1284
  // If label was justified and we have contrast, set it:
1237
1285
  if (point.isLabelJustified && point.contrastColor) {
1238
- point.dataLabel.css({
1286
+ dataLabel.css({
1239
1287
  color: point.contrastColor
1240
1288
  });
1241
1289
  }
@@ -1,28 +1,40 @@
1
1
  /**
2
- * (c) 2010-2017 Torstein Honsi
2
+ * (c) 2010-2018 Torstein Honsi
3
3
  *
4
4
  * License: www.highcharts.com/license
5
5
  */
6
6
 
7
7
  'use strict';
8
+
8
9
  import H from './Globals.js';
9
10
  import './Utilities.js';
11
+
10
12
  var Axis = H.Axis,
11
13
  getMagnitude = H.getMagnitude,
12
14
  normalizeTickInterval = H.normalizeTickInterval,
13
15
  timeUnits = H.timeUnits;
16
+
14
17
  /**
15
18
  * Set the tick positions to a time unit that makes sense, for example
16
19
  * on the first of each month or on every Monday. Return an array
17
20
  * with the time positions. Used in datetime axes as well as for grouping
18
21
  * data on a datetime axis.
19
22
  *
20
- * @param {Object} normalizedInterval
23
+ * @private
24
+ * @function Highcharts.Axis#getTimeTicks
25
+ *
26
+ * @param {*} normalizedInterval
21
27
  * The interval in axis values (ms) and thecount
22
- * @param {Number} min The minimum in axis values
23
- * @param {Number} max The maximum in axis values
24
- * @param {Number} startOfWeek
25
- * @ignore
28
+ *
29
+ * @param {number} min
30
+ * The minimum in axis values
31
+ *
32
+ * @param {number} max
33
+ * The maximum in axis values
34
+ *
35
+ * @param {number} startOfWeek
36
+ *
37
+ * @return {number}
26
38
  */
27
39
  Axis.prototype.getTimeTicks = function () {
28
40
  return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);
@@ -36,7 +48,14 @@ Axis.prototype.getTimeTicks = function () {
36
48
  * prevent it for running over again for each segment having the same interval.
37
49
  * #662, #697.
38
50
  *
39
- * @ignore
51
+ * @private
52
+ * @function Highcharts.Axis#normalizeTimeTickInterval
53
+ *
54
+ * @param {number} tickInterval
55
+ *
56
+ * @param {Array<Array<number|string>>} [unitsOption]
57
+ *
58
+ * @return {*}
40
59
  */
41
60
  Axis.prototype.normalizeTimeTickInterval = function (
42
61
  tickInterval,
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (c) 2010-2017 Torstein Honsi
2
+ * (c) 2010-2018 Torstein Honsi
3
3
  *
4
4
  * License: www.highcharts.com/license
5
5
  */
@@ -492,7 +492,9 @@ extend(Chart.prototype, /** @lends Highcharts.Chart.prototype */ {
492
492
  });
493
493
 
494
494
  each(itemsForRemoval, function (item) {
495
- item.remove(false);
495
+ if (item.remove) {
496
+ item.remove(false);
497
+ }
496
498
  });
497
499
 
498
500
  if (updateAllAxes) {
@@ -904,6 +906,7 @@ extend(Series.prototype, /** @lends Series.prototype */ {
904
906
 
905
907
  // Destroy elements
906
908
  series.destroy();
909
+ series.remove = null; // Prevent from doing again (#9097)
907
910
 
908
911
  // Redraw
909
912
  chart.isDirtyLegend = chart.isDirtyBox = true;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (c) 2010-2017 Torstein Honsi
2
+ * (c) 2010-2018 Torstein Honsi
3
3
  *
4
4
  * License: www.highcharts.com/license
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * (c) 2010-2017 Torstein Honsi
2
+ * (c) 2010-2018 Torstein Honsi
3
3
  *
4
4
  * License: www.highcharts.com/license
5
5
  */