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
@@ -271,6 +271,7 @@ var win = H.win,
271
271
  Series = H.Series,
272
272
  seriesTypes = H.seriesTypes,
273
273
  each = H.each,
274
+ objEach = H.objectEach,
274
275
  extend = H.extend,
275
276
  addEvent = H.addEvent,
276
277
  fireEvent = H.fireEvent,
@@ -502,6 +503,12 @@ function shouldForceChartSeriesBoosting(chart) {
502
503
 
503
504
  series = chart.series[i];
504
505
 
506
+ // Don't count series with boostThreshold set to 0
507
+ // See #8950
508
+ if (series.options.boostThreshold === 0) {
509
+ continue;
510
+ }
511
+
505
512
  if (boostableMap[series.type]) {
506
513
  ++canBoostCount;
507
514
  }
@@ -517,20 +524,37 @@ function shouldForceChartSeriesBoosting(chart) {
517
524
  }
518
525
  }
519
526
 
520
- chart.boostForceChartBoost =
527
+ chart.boostForceChartBoost = allowBoostForce && (
521
528
  (
522
- allowBoostForce &&
523
529
  canBoostCount === chart.series.length &&
524
530
  sboostCount > 0
525
531
  ) ||
526
- sboostCount > 5;
532
+ sboostCount > 5
533
+ );
527
534
 
528
535
  return chart.boostForceChartBoost;
529
536
  }
530
537
 
538
+ /**
539
+ * Return true if ths boost.enabled option is true
540
+ * @param {Highcharts.Chart} chart The chart
541
+ * @return {boolean}
542
+ */
543
+ function boostEnabled(chart) {
544
+ return pick(
545
+ (
546
+ chart &&
547
+ chart.options &&
548
+ chart.options.boost &&
549
+ chart.options.boost.enabled
550
+ ),
551
+ true
552
+ );
553
+ }
554
+
531
555
  /*
532
556
  * Returns true if the chart is in series boost mode
533
- * @param chart {Highchart.Chart} - the chart to check
557
+ * @param chart {Highcharts.Chart} - the chart to check
534
558
  * @returns {Boolean} - true if the chart is in series boost mode
535
559
  */
536
560
  Chart.prototype.isChartSeriesBoosting = function () {
@@ -801,9 +825,20 @@ function GLShader(gl) {
801
825
  // Uniform for invertion
802
826
  isInverted,
803
827
  plotHeightUniform,
828
+ // Error stack
829
+ errors = [],
804
830
  // Texture uniform
805
831
  uSamplerUniform;
806
832
 
833
+ /*
834
+ * Handle errors accumulated in errors stack
835
+ */
836
+ function handleErrors() {
837
+ if (errors.length) {
838
+ H.error('[highcharts boost] shader error - ' + errors.join('\n'));
839
+ }
840
+ }
841
+
807
842
  /* String to shader program
808
843
  * @param {string} str - the program source
809
844
  * @param {string} type - the program type: either `vertex` or `fragment`
@@ -818,7 +853,13 @@ function GLShader(gl) {
818
853
  gl.compileShader(shader);
819
854
 
820
855
  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
821
- // console.error('shader error:', gl.getShaderInfoLog(shader));
856
+ errors.push(
857
+ 'when compiling ' +
858
+ type +
859
+ ' shader:\n' +
860
+ gl.getShaderInfoLog(shader)
861
+ );
862
+
822
863
  return false;
823
864
  }
824
865
  return shader;
@@ -835,7 +876,7 @@ function GLShader(gl) {
835
876
 
836
877
  if (!v || !f) {
837
878
  shaderProgram = false;
838
- // console.error('error creating shader program');
879
+ handleErrors();
839
880
  return false;
840
881
  }
841
882
 
@@ -847,8 +888,16 @@ function GLShader(gl) {
847
888
 
848
889
  gl.attachShader(shaderProgram, v);
849
890
  gl.attachShader(shaderProgram, f);
891
+
850
892
  gl.linkProgram(shaderProgram);
851
893
 
894
+ if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
895
+ errors.push(gl.getProgramInfoLog(shaderProgram));
896
+ handleErrors();
897
+ shaderProgram = false;
898
+ return false;
899
+ }
900
+
852
901
  gl.useProgram(shaderProgram);
853
902
 
854
903
  gl.bindAttribLocation(shaderProgram, 0, 'aVertexPosition');
@@ -864,6 +913,7 @@ function GLShader(gl) {
864
913
  isCircleUniform = uloc('isCircle');
865
914
  isInverted = uloc('isInverted');
866
915
  plotHeightUniform = uloc('plotHeight');
916
+
867
917
  return true;
868
918
  }
869
919
 
@@ -871,11 +921,9 @@ function GLShader(gl) {
871
921
  * Destroy the shader
872
922
  */
873
923
  function destroy() {
874
- if (gl) {
875
- if (shaderProgram) {
876
- gl.deleteProgram(shaderProgram);
877
- shaderProgram = false;
878
- }
924
+ if (gl && shaderProgram) {
925
+ gl.deleteProgram(shaderProgram);
926
+ shaderProgram = false;
879
927
  }
880
928
  }
881
929
 
@@ -885,7 +933,9 @@ function GLShader(gl) {
885
933
  * or until 0 is bound.
886
934
  */
887
935
  function bind() {
888
- gl.useProgram(shaderProgram);
936
+ if (gl && shaderProgram) {
937
+ gl.useProgram(shaderProgram);
938
+ }
889
939
  }
890
940
 
891
941
  /*
@@ -895,17 +945,24 @@ function GLShader(gl) {
895
945
  * @param val {float} - the value to set
896
946
  */
897
947
  function setUniform(name, val) {
898
- var u = uLocations[name] = uLocations[name] ||
899
- gl.getUniformLocation(shaderProgram, name);
900
- gl.uniform1f(u, val);
948
+ if (gl && shaderProgram) {
949
+ var u = uLocations[name] = uLocations[name] ||
950
+ gl.getUniformLocation(
951
+ shaderProgram,
952
+ name
953
+ );
954
+ gl.uniform1f(u, val);
955
+ }
901
956
  }
902
957
 
903
958
  /*
904
959
  * Set the active texture
905
960
  * @param texture - the texture
906
961
  */
907
- function setTexture() {
908
- gl.uniform1i(uSamplerUniform, 0);
962
+ function setTexture(texture) {
963
+ if (gl && shaderProgram) {
964
+ gl.uniform1i(uSamplerUniform, texture);
965
+ }
909
966
  }
910
967
 
911
968
  /*
@@ -913,26 +970,34 @@ function GLShader(gl) {
913
970
  * @flag is the state
914
971
  */
915
972
  function setInverted(flag) {
916
- gl.uniform1i(isInverted, flag);
973
+ if (gl && shaderProgram) {
974
+ gl.uniform1i(isInverted, flag);
975
+ }
917
976
  }
918
977
 
919
978
  /*
920
979
  * Enable/disable circle drawing
921
980
  */
922
981
  function setDrawAsCircle(flag) {
923
- gl.uniform1i(isCircleUniform, flag ? 1 : 0);
982
+ if (gl && shaderProgram) {
983
+ gl.uniform1i(isCircleUniform, flag ? 1 : 0);
984
+ }
924
985
  }
925
986
 
926
987
  function setPlotHeight(n) {
927
- gl.uniform1f(plotHeightUniform, n);
988
+ if (gl && shaderProgram) {
989
+ gl.uniform1f(plotHeightUniform, n);
990
+ }
928
991
  }
929
992
 
930
993
  /*
931
994
  * Flush
932
995
  */
933
996
  function reset() {
934
- gl.uniform1i(isBubbleUniform, 0);
935
- gl.uniform1i(isCircleUniform, 0);
997
+ if (gl && shaderProgram) {
998
+ gl.uniform1i(isBubbleUniform, 0);
999
+ gl.uniform1i(isCircleUniform, 0);
1000
+ }
936
1001
  }
937
1002
 
938
1003
  /*
@@ -944,7 +1009,7 @@ function GLShader(gl) {
944
1009
  zMin = Number.MAX_VALUE,
945
1010
  zMax = -Number.MAX_VALUE;
946
1011
 
947
- if (series.type === 'bubble') {
1012
+ if (gl && shaderProgram && series.type === 'bubble') {
948
1013
  zMin = pick(seriesOptions.zMin, Math.min(
949
1014
  zMin,
950
1015
  Math.max(
@@ -980,20 +1045,24 @@ function GLShader(gl) {
980
1045
  * @param color {Array<float>} - an array with RGBA values
981
1046
  */
982
1047
  function setColor(color) {
983
- gl.uniform4f(
984
- fillColorUniform,
985
- color[0] / 255.0,
986
- color[1] / 255.0,
987
- color[2] / 255.0,
988
- color[3]
989
- );
1048
+ if (gl && shaderProgram) {
1049
+ gl.uniform4f(
1050
+ fillColorUniform,
1051
+ color[0] / 255.0,
1052
+ color[1] / 255.0,
1053
+ color[2] / 255.0,
1054
+ color[3]
1055
+ );
1056
+ }
990
1057
  }
991
1058
 
992
1059
  /*
993
1060
  * Set skip translation
994
1061
  */
995
1062
  function setSkipTranslation(flag) {
996
- gl.uniform1i(skipTranslationUniform, flag === true ? 1 : 0);
1063
+ if (gl && shaderProgram) {
1064
+ gl.uniform1i(skipTranslationUniform, flag === true ? 1 : 0);
1065
+ }
997
1066
  }
998
1067
 
999
1068
  /*
@@ -1001,7 +1070,9 @@ function GLShader(gl) {
1001
1070
  * @param m {Matrix4x4} - the matrix
1002
1071
  */
1003
1072
  function setPMatrix(m) {
1004
- gl.uniformMatrix4fv(pUniform, false, m);
1073
+ if (gl && shaderProgram) {
1074
+ gl.uniformMatrix4fv(pUniform, false, m);
1075
+ }
1005
1076
  }
1006
1077
 
1007
1078
  /*
@@ -1009,7 +1080,9 @@ function GLShader(gl) {
1009
1080
  * @param p {float} - point size
1010
1081
  */
1011
1082
  function setPointSize(p) {
1012
- gl.uniform1f(psUniform, p);
1083
+ if (gl && shaderProgram) {
1084
+ gl.uniform1f(psUniform, p);
1085
+ }
1013
1086
  }
1014
1087
 
1015
1088
  /*
@@ -1021,7 +1094,9 @@ function GLShader(gl) {
1021
1094
  }
1022
1095
 
1023
1096
  if (gl) {
1024
- createShader();
1097
+ if (!createShader()) {
1098
+ return false;
1099
+ }
1025
1100
  }
1026
1101
 
1027
1102
  return {
@@ -1233,20 +1308,16 @@ function GLRenderer(postRenderCallback) {
1233
1308
  data = false,
1234
1309
  // The marker data
1235
1310
  markerData = false,
1236
- // Is the texture ready?
1237
- textureIsReady = false,
1238
1311
  // Exports
1239
1312
  exports = {},
1240
1313
  // Is it inited?
1241
1314
  isInited = false,
1242
1315
  // The series stack
1243
1316
  series = [],
1244
- // Texture for circles
1245
- circleTexture = doc.createElement('canvas'),
1246
- // Context for circle texture
1247
- circleCtx = circleTexture.getContext('2d'),
1248
- // Handle for the circle texture
1249
- circleTextureHandle,
1317
+
1318
+ // Texture handles
1319
+ textureHandles = {},
1320
+
1250
1321
  // Things to draw as "rectangles" (i.e lines)
1251
1322
  asBar = {
1252
1323
  'column': true,
@@ -1420,10 +1491,11 @@ function GLRenderer(postRenderCallback) {
1420
1491
  color,
1421
1492
  scolor,
1422
1493
  sdata = isStacked ? series.data : (xData || rawData),
1423
- closestLeft = { x: -Number.MAX_VALUE, y: 0 },
1424
- closestRight = { x: Number.MIN_VALUE, y: 0 },
1494
+ closestLeft = { x: Number.MAX_VALUE, y: 0 },
1495
+ closestRight = { x: -Number.MAX_VALUE, y: 0 },
1425
1496
 
1426
1497
  skipped = 0,
1498
+ hadPoints = false,
1427
1499
 
1428
1500
  cullXThreshold = 1,
1429
1501
  cullYThreshold = 1,
@@ -1444,7 +1516,8 @@ function GLRenderer(postRenderCallback) {
1444
1516
  pcolor = false,
1445
1517
  drawAsBar = asBar[series.type],
1446
1518
  isXInside = false,
1447
- isYInside = true;
1519
+ isYInside = true,
1520
+ threshold = options.threshold;
1448
1521
 
1449
1522
  if (options.boostData && options.boostData.length > 0) {
1450
1523
  return;
@@ -1752,7 +1825,7 @@ function GLRenderer(postRenderCallback) {
1752
1825
  closestRight.y = y;
1753
1826
  }
1754
1827
 
1755
- if (x < xMin && closestLeft.x < xMin) {
1828
+ if (x < xMin && closestLeft.x > xMin) {
1756
1829
  closestLeft.x = x;
1757
1830
  closestLeft.y = y;
1758
1831
  }
@@ -1762,7 +1835,7 @@ function GLRenderer(postRenderCallback) {
1762
1835
  }
1763
1836
 
1764
1837
  // Cull points outside the extremes
1765
- if (y === null || !isYInside) {
1838
+ if (y === null || (!isYInside && !nextInside && !prevInside)) {
1766
1839
  beginSegment();
1767
1840
  continue;
1768
1841
  }
@@ -1788,6 +1861,13 @@ function GLRenderer(postRenderCallback) {
1788
1861
  }
1789
1862
 
1790
1863
  if (x > plotWidth) {
1864
+ // If this is rendered as a point, just skip drawing it
1865
+ // entirely, as we're not dependandt on lineTo'ing to it.
1866
+ // See #8197
1867
+ if (inst.drawMode === 'points') {
1868
+ continue;
1869
+ }
1870
+
1791
1871
  x = plotWidth;
1792
1872
  }
1793
1873
 
@@ -1806,6 +1886,9 @@ function GLRenderer(postRenderCallback) {
1806
1886
  }
1807
1887
  }
1808
1888
 
1889
+ if (!isRange && !isStacked) {
1890
+ minVal = Math.max(threshold, yMin); // #8731
1891
+ }
1809
1892
  if (!settings.useGPUTranslations) {
1810
1893
  minVal = yAxis.toPixels(minVal, true);
1811
1894
  }
@@ -1843,7 +1926,7 @@ function GLRenderer(postRenderCallback) {
1843
1926
 
1844
1927
  if (!settings.useGPUTranslations &&
1845
1928
  !settings.usePreallocated &&
1846
- (lastX && x - lastX < cullXThreshold) &&
1929
+ (lastX && Math.abs(x - lastX) < cullXThreshold) &&
1847
1930
  (lastY && Math.abs(y - lastY) < cullYThreshold)
1848
1931
  ) {
1849
1932
  if (settings.debug.showSkipSummary) {
@@ -1887,13 +1970,15 @@ function GLRenderer(postRenderCallback) {
1887
1970
 
1888
1971
  lastX = x;
1889
1972
  lastY = y;
1973
+
1974
+ hadPoints = true;
1890
1975
  }
1891
1976
 
1892
1977
  if (settings.debug.showSkipSummary) {
1893
1978
  console.log('skipped points:', skipped); // eslint-disable-line no-console
1894
1979
  }
1895
1980
 
1896
- function pushSupplementPoint(point) {
1981
+ function pushSupplementPoint(point, atStart) {
1897
1982
  if (!settings.useGPUTranslations) {
1898
1983
  inst.skipTranslation = true;
1899
1984
  point.x = xAxis.toPixels(point.x, true);
@@ -1903,6 +1988,11 @@ function GLRenderer(postRenderCallback) {
1903
1988
  // We should only do this for lines, and we should ignore markers
1904
1989
  // since there's no point here that would have a marker.
1905
1990
 
1991
+ if (atStart) {
1992
+ data = [point.x, point.y, 0, 2].concat(data);
1993
+ return;
1994
+ }
1995
+
1906
1996
  vertice(
1907
1997
  point.x,
1908
1998
  point.y,
@@ -1911,13 +2001,19 @@ function GLRenderer(postRenderCallback) {
1911
2001
  );
1912
2002
  }
1913
2003
 
1914
- if (!lastX &&
2004
+ if (
2005
+ !hadPoints &&
1915
2006
  connectNulls !== false &&
1916
- closestLeft > -Number.MAX_VALUE &&
1917
- closestRight < Number.MAX_VALUE) {
1918
- // There are no points within the selected range
1919
- pushSupplementPoint(closestLeft);
1920
- pushSupplementPoint(closestRight);
2007
+ series.drawMode === 'line_strip'
2008
+ ) {
2009
+ if (closestLeft.x < Number.MAX_VALUE) {
2010
+ // We actually need to push this *before* the complete buffer.
2011
+ pushSupplementPoint(closestLeft, true);
2012
+ }
2013
+
2014
+ if (closestRight.x > -Number.MAX_VALUE) {
2015
+ pushSupplementPoint(closestRight);
2016
+ }
1921
2017
  }
1922
2018
 
1923
2019
  closeSegment();
@@ -2056,7 +2152,7 @@ function GLRenderer(postRenderCallback) {
2056
2152
  return false;
2057
2153
  }
2058
2154
 
2059
- if (!gl || !width || !height) {
2155
+ if (!gl || !width || !height || !shader) {
2060
2156
  return false;
2061
2157
  }
2062
2158
 
@@ -2069,7 +2165,6 @@ function GLRenderer(postRenderCallback) {
2069
2165
 
2070
2166
  shader.bind();
2071
2167
 
2072
-
2073
2168
  gl.viewport(0, 0, width, height);
2074
2169
  shader.setPMatrix(orthoMatrix(width, height));
2075
2170
  shader.setPlotHeight(chart.plotHeight);
@@ -2081,17 +2176,12 @@ function GLRenderer(postRenderCallback) {
2081
2176
  vbuffer.build(exports.data, 'aVertexPosition', 4);
2082
2177
  vbuffer.bind();
2083
2178
 
2084
- if (textureIsReady) {
2085
- gl.bindTexture(gl.TEXTURE_2D, circleTextureHandle);
2086
- shader.setTexture(circleTextureHandle);
2087
- }
2088
-
2089
2179
  shader.setInverted(chart.inverted);
2090
2180
 
2091
-
2092
2181
  // Render the series
2093
2182
  each(series, function (s, si) {
2094
2183
  var options = s.series.options,
2184
+ shapeOptions = options.marker,
2095
2185
  sindex,
2096
2186
  lineWidth = typeof options.lineWidth !== 'undefined' ?
2097
2187
  options.lineWidth :
@@ -2112,8 +2202,23 @@ function GLRenderer(postRenderCallback) {
2112
2202
  ) || 10)
2113
2203
  ),
2114
2204
  fillColor,
2205
+ shapeTexture = textureHandles[
2206
+ (shapeOptions && shapeOptions.symbol) || s.series.symbol
2207
+ ] || textureHandles.circle,
2115
2208
  color;
2116
2209
 
2210
+ if (
2211
+ s.segments.length === 0 ||
2212
+ (s.segmentslength && s.segments[0].from === s.segments[0].to)
2213
+ ) {
2214
+ return;
2215
+ }
2216
+
2217
+ if (shapeTexture.isReady) {
2218
+ gl.bindTexture(gl.TEXTURE_2D, shapeTexture.handle);
2219
+ shader.setTexture(shapeTexture.handle);
2220
+ }
2221
+
2117
2222
 
2118
2223
  fillColor =
2119
2224
  (s.series.pointAttribs && s.series.pointAttribs().fill) ||
@@ -2197,7 +2302,7 @@ function GLRenderer(postRenderCallback) {
2197
2302
  }
2198
2303
 
2199
2304
  shader.setDrawAsCircle(
2200
- (asCircle[s.series.type] && textureIsReady) || false
2305
+ asCircle[s.series.type] || false
2201
2306
  );
2202
2307
 
2203
2308
  // Do the actual rendering
@@ -2270,8 +2375,8 @@ function GLRenderer(postRenderCallback) {
2270
2375
  * @param h {Integer} - the height of the viewport
2271
2376
  */
2272
2377
  function setSize(w, h) {
2273
- // Skip if there's no change
2274
- if (width === w && h === h) {
2378
+ // Skip if there's no change, or if we have no valid shader
2379
+ if ((width === w && h === h) || !shader) {
2275
2380
  return;
2276
2381
  }
2277
2382
 
@@ -2330,71 +2435,127 @@ function GLRenderer(postRenderCallback) {
2330
2435
  gl.depthFunc(gl.LESS);
2331
2436
 
2332
2437
  shader = GLShader(gl); // eslint-disable-line new-cap
2438
+
2439
+ if (!shader) {
2440
+ // We need to abort, there's no shader context
2441
+ return false;
2442
+ }
2443
+
2333
2444
  vbuffer = GLVertexBuffer(gl, shader); // eslint-disable-line new-cap
2334
2445
 
2335
- textureIsReady = false;
2446
+ function createTexture(name, fn) {
2447
+ var props = {
2448
+ isReady: false,
2449
+ texture: doc.createElement('canvas'),
2450
+ handle: gl.createTexture()
2451
+ },
2452
+ ctx = props.texture.getContext('2d');
2336
2453
 
2337
- // Set up the circle texture used for bubbles
2338
- circleTextureHandle = gl.createTexture();
2454
+ textureHandles[name] = props;
2339
2455
 
2340
- // Draw the circle
2341
- circleTexture.width = 512;
2342
- circleTexture.height = 512;
2456
+ props.texture.width = 512;
2457
+ props.texture.height = 512;
2343
2458
 
2344
- circleCtx.mozImageSmoothingEnabled = false;
2345
- circleCtx.webkitImageSmoothingEnabled = false;
2346
- circleCtx.msImageSmoothingEnabled = false;
2347
- circleCtx.imageSmoothingEnabled = false;
2459
+ ctx.mozImageSmoothingEnabled = false;
2460
+ ctx.webkitImageSmoothingEnabled = false;
2461
+ ctx.msImageSmoothingEnabled = false;
2462
+ ctx.imageSmoothingEnabled = false;
2348
2463
 
2349
- circleCtx.strokeStyle = 'rgba(255, 255, 255, 0)';
2350
- circleCtx.fillStyle = '#FFF';
2464
+ ctx.strokeStyle = 'rgba(255, 255, 255, 0)';
2465
+ ctx.fillStyle = '#FFF';
2351
2466
 
2352
- circleCtx.beginPath();
2353
- circleCtx.arc(256, 256, 256, 0, 2 * Math.PI);
2354
- circleCtx.stroke();
2355
- circleCtx.fill();
2467
+ fn(ctx);
2356
2468
 
2357
- try {
2469
+ try {
2358
2470
 
2359
- gl.bindTexture(gl.TEXTURE_2D, circleTextureHandle);
2360
- // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);
2471
+ gl.activeTexture(gl.TEXTURE0);
2472
+ gl.bindTexture(gl.TEXTURE_2D, props.handle);
2473
+ // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);
2361
2474
 
2362
- gl.texImage2D(
2363
- gl.TEXTURE_2D,
2364
- 0,
2365
- gl.RGBA,
2366
- gl.RGBA,
2367
- gl.UNSIGNED_BYTE,
2368
- circleTexture
2369
- );
2475
+ gl.texImage2D(
2476
+ gl.TEXTURE_2D,
2477
+ 0,
2478
+ gl.RGBA,
2479
+ gl.RGBA,
2480
+ gl.UNSIGNED_BYTE,
2481
+ props.texture
2482
+ );
2370
2483
 
2371
- gl.texParameteri(
2372
- gl.TEXTURE_2D,
2373
- gl.TEXTURE_WRAP_S,
2374
- gl.CLAMP_TO_EDGE
2375
- );
2376
- gl.texParameteri(
2377
- gl.TEXTURE_2D,
2378
- gl.TEXTURE_WRAP_T,
2379
- gl.CLAMP_TO_EDGE
2380
- );
2381
- gl.texParameteri(
2382
- gl.TEXTURE_2D,
2383
- gl.TEXTURE_MAG_FILTER,
2384
- gl.LINEAR
2385
- );
2386
- gl.texParameteri(
2387
- gl.TEXTURE_2D,
2388
- gl.TEXTURE_MIN_FILTER,
2389
- gl.LINEAR
2390
- );
2484
+ gl.texParameteri(
2485
+ gl.TEXTURE_2D,
2486
+ gl.TEXTURE_WRAP_S,
2487
+ gl.CLAMP_TO_EDGE
2488
+ );
2489
+
2490
+ gl.texParameteri(
2491
+ gl.TEXTURE_2D,
2492
+ gl.TEXTURE_WRAP_T,
2493
+ gl.CLAMP_TO_EDGE
2494
+ );
2495
+
2496
+ gl.texParameteri(
2497
+ gl.TEXTURE_2D,
2498
+ gl.TEXTURE_MAG_FILTER,
2499
+ gl.LINEAR
2500
+ );
2501
+
2502
+ gl.texParameteri(
2503
+ gl.TEXTURE_2D,
2504
+ gl.TEXTURE_MIN_FILTER,
2505
+ gl.LINEAR
2506
+ );
2391
2507
 
2392
- // gl.generateMipmap(gl.TEXTURE_2D);
2508
+ // gl.generateMipmap(gl.TEXTURE_2D);
2393
2509
 
2394
- gl.bindTexture(gl.TEXTURE_2D, null);
2510
+ gl.bindTexture(gl.TEXTURE_2D, null);
2395
2511
 
2396
- textureIsReady = true;
2397
- } catch (e) {}
2512
+ props.isReady = true;
2513
+ } catch (e) {}
2514
+ }
2515
+
2516
+ // Circle shape
2517
+ createTexture('circle', function (ctx) {
2518
+ ctx.beginPath();
2519
+ ctx.arc(256, 256, 256, 0, 2 * Math.PI);
2520
+ ctx.stroke();
2521
+ ctx.fill();
2522
+ });
2523
+
2524
+ // Square shape
2525
+ createTexture('square', function (ctx) {
2526
+ ctx.fillRect(0, 0, 512, 512);
2527
+ });
2528
+
2529
+ // Diamond shape
2530
+ createTexture('diamond', function (ctx) {
2531
+ ctx.beginPath();
2532
+ ctx.moveTo(256, 0);
2533
+ ctx.lineTo(512, 256);
2534
+ ctx.lineTo(256, 512);
2535
+ ctx.lineTo(0, 256);
2536
+ ctx.lineTo(256, 0);
2537
+ ctx.fill();
2538
+ });
2539
+
2540
+ // Triangle shape
2541
+ createTexture('triangle', function (ctx) {
2542
+ ctx.beginPath();
2543
+ ctx.moveTo(0, 512);
2544
+ ctx.lineTo(256, 0);
2545
+ ctx.lineTo(512, 512);
2546
+ ctx.lineTo(0, 512);
2547
+ ctx.fill();
2548
+ });
2549
+
2550
+ // Triangle shape (rotated)
2551
+ createTexture('triangle-down', function (ctx) {
2552
+ ctx.beginPath();
2553
+ ctx.moveTo(0, 0);
2554
+ ctx.lineTo(256, 512);
2555
+ ctx.lineTo(512, 0);
2556
+ ctx.lineTo(0, 0);
2557
+ ctx.fill();
2558
+ });
2398
2559
 
2399
2560
  isInited = true;
2400
2561
 
@@ -2426,9 +2587,13 @@ function GLRenderer(postRenderCallback) {
2426
2587
  vbuffer.destroy();
2427
2588
  shader.destroy();
2428
2589
  if (gl) {
2429
- if (circleTextureHandle) {
2430
- gl.deleteTexture(circleTextureHandle);
2431
- }
2590
+
2591
+ objEach(textureHandles, function (key) {
2592
+ if (textureHandles[key].handle) {
2593
+ gl.deleteTexture(textureHandles[key].handle);
2594
+ }
2595
+ });
2596
+
2432
2597
  gl.canvas.width = 1;
2433
2598
  gl.canvas.height = 1;
2434
2599
  }
@@ -2600,7 +2765,13 @@ function createAndAttachRenderer(chart, series) {
2600
2765
 
2601
2766
  }); // eslint-disable-line new-cap
2602
2767
 
2603
- target.ogl.init(target.canvas);
2768
+ if (!target.ogl.init(target.canvas)) {
2769
+ // The OGL renderer couldn't be inited.
2770
+ // This likely means a shader error as we wouldn't get to this point
2771
+ // if there was no WebGL support.
2772
+ H.error('[highcharts boost] - unable to init WebGL renderer');
2773
+ }
2774
+
2604
2775
  // target.ogl.clear();
2605
2776
  target.ogl.setOptions(chart.options.boost || {});
2606
2777
 
@@ -2790,24 +2961,16 @@ each([
2790
2961
  ], function (method) {
2791
2962
  function branch(proceed) {
2792
2963
  var letItPass = this.options.stacking &&
2793
- (method === 'translate' || method === 'generatePoints'),
2794
- enabled = pick(
2795
- (
2796
- this.chart &&
2797
- this.chart.options &&
2798
- this.chart.options.boost &&
2799
- this.chart.options.boost.enabled
2800
- ),
2801
- true
2802
- );
2964
+ (method === 'translate' || method === 'generatePoints');
2803
2965
 
2804
2966
  if (
2805
2967
  !this.isSeriesBoosting ||
2806
2968
  letItPass ||
2807
- !enabled ||
2969
+ !boostEnabled(this.chart) ||
2808
2970
  this.type === 'heatmap' ||
2809
2971
  this.type === 'treemap' ||
2810
- !boostableMap[this.type]
2972
+ !boostableMap[this.type] ||
2973
+ this.options.boostThreshold === 0
2811
2974
  ) {
2812
2975
 
2813
2976
  proceed.call(this);
@@ -2852,7 +3015,7 @@ wrap(Series.prototype, 'processData', function (proceed) {
2852
3015
  );
2853
3016
  }
2854
3017
 
2855
- if (boostableMap[this.type]) {
3018
+ if (boostEnabled(this.chart) && boostableMap[this.type]) {
2856
3019
 
2857
3020
  // If there are no extremes given in the options, we also need to
2858
3021
  // process the data to read the data extremes. If this is a heatmap, do
@@ -3096,6 +3259,7 @@ if (!H.hasWebGLSupport()) {
3096
3259
  minI,
3097
3260
  maxI,
3098
3261
  boostOptions,
3262
+ compareX = options.findNearestPointBy === 'x',
3099
3263
 
3100
3264
  xDataFull = (
3101
3265
  this.xData ||
@@ -3105,8 +3269,8 @@ if (!H.hasWebGLSupport()) {
3105
3269
  ),
3106
3270
 
3107
3271
  addKDPoint = function (clientX, plotY, i) {
3108
- // Shaves off about 60ms compared to repeated concatination
3109
- index = clientX + ',' + plotY;
3272
+ // Shaves off about 60ms compared to repeated concatenation
3273
+ index = compareX ? clientX : clientX + ',' + plotY;
3110
3274
 
3111
3275
  // The k-d tree requires series points.
3112
3276
  // Reduce the amount of points, since the time to build the
@@ -3178,7 +3342,6 @@ if (!H.hasWebGLSupport()) {
3178
3342
  renderer.pushSeries(series);
3179
3343
  // Perform the actual renderer if we're on series level
3180
3344
  renderIfNotSeriesBoosting(renderer, this, chart);
3181
- // console.log(series, chart);
3182
3345
  }
3183
3346
 
3184
3347
  /* This builds the KD-tree */