highcharts 9.3.3 → 10.0.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 (670) hide show
  1. package/bower.json +1 -1
  2. package/css/highcharts.css +19 -2
  3. package/css/highcharts.scss +17 -2
  4. package/css/themes/dark-unica.css +19 -2
  5. package/css/themes/grid-light.css +19 -2
  6. package/css/themes/sand-signika.css +19 -2
  7. package/es-modules/Accessibility/Accessibility.js +1 -1
  8. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  9. package/es-modules/Accessibility/Components/MenuComponent.js +4 -5
  10. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  11. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  12. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  13. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -3
  15. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +61 -29
  16. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  17. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  18. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  19. package/es-modules/Accessibility/ProxyElement.js +14 -6
  20. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  21. package/es-modules/Core/Axis/Axis.js +150 -46
  22. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  23. package/es-modules/Core/Axis/GridAxis.js +10 -9
  24. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  25. package/es-modules/Core/Chart/Chart3D.js +1 -11
  26. package/es-modules/Core/Chart/ChartDefaults.js +32 -11
  27. package/es-modules/Core/Chart/MapChart.js +1 -6
  28. package/es-modules/Core/DefaultOptions.js +2 -0
  29. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  30. package/es-modules/Core/Globals.js +4 -18
  31. package/es-modules/Core/HttpUtilities.js +13 -8
  32. package/es-modules/Core/Legend/Legend.js +10 -8
  33. package/es-modules/Core/Navigator.js +9 -6
  34. package/es-modules/Core/Pointer.js +15 -11
  35. package/es-modules/Core/Renderer/HTML/AST.js +62 -5
  36. package/es-modules/Core/Renderer/SVG/SVGElement.js +25 -41
  37. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  38. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -17
  39. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  40. package/es-modules/Core/Series/DataLabel.js +11 -3
  41. package/es-modules/Core/Series/Point.js +2 -2
  42. package/es-modules/Core/Series/Series.js +33 -15
  43. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  44. package/es-modules/Core/Tooltip.js +14 -31
  45. package/es-modules/Core/Utilities.js +28 -28
  46. package/es-modules/Extensions/Annotations/Annotations.js +7 -0
  47. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  48. package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -1
  49. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  50. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  51. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  52. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  53. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  54. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  55. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  56. package/es-modules/Extensions/Breadcrumbs.js +874 -0
  57. package/es-modules/Extensions/Data.js +26 -14
  58. package/es-modules/Extensions/DataGrouping.js +5 -2
  59. package/es-modules/Extensions/DraggablePoints.js +9 -7
  60. package/es-modules/Extensions/Drilldown.js +147 -94
  61. package/es-modules/Extensions/Exporting/Exporting.js +9 -7
  62. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  63. package/es-modules/Extensions/GeoJSON.js +149 -124
  64. package/es-modules/Extensions/MarkerClusters.js +34 -20
  65. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  66. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  67. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  68. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  69. package/es-modules/Extensions/Stacking.js +3 -2
  70. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  71. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  72. package/es-modules/Maps/MapNavigation.js +49 -8
  73. package/es-modules/Maps/MapPointer.js +16 -0
  74. package/es-modules/Maps/MapUtilities.js +56 -0
  75. package/es-modules/Maps/MapView.js +606 -135
  76. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  77. package/es-modules/Maps/MapViewOptionsDefault.js +58 -20
  78. package/es-modules/Maps/Projection.js +169 -77
  79. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  80. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  81. package/es-modules/Maps/Projections/Miller.js +23 -10
  82. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  83. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  84. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  85. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +581 -0
  86. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  87. package/es-modules/Series/DataModifyComposition.js +1 -0
  88. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  89. package/es-modules/Series/DrawPointComposition.js +7 -4
  90. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  91. package/es-modules/Series/Map/MapPoint.js +24 -1
  92. package/es-modules/Series/Map/MapSeries.js +196 -169
  93. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  94. package/es-modules/Series/MapBubble/MapBubbleSeries.js +11 -0
  95. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  96. package/es-modules/Series/MapPoint/MapPointSeries.js +36 -14
  97. package/es-modules/Series/NodesComposition.js +60 -13
  98. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  99. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  100. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  101. package/es-modules/Series/Pie/PiePoint.js +12 -5
  102. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  103. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  104. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  105. package/es-modules/Series/Sankey/SankeySeries.js +10 -127
  106. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  107. package/es-modules/Series/Sunburst/SunburstSeries.js +13 -2
  108. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  109. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  110. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  111. package/es-modules/Stock/StockToolsGui.js +1 -1
  112. package/es-modules/masters/highcharts-3d.src.js +1 -1
  113. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  114. package/es-modules/masters/highcharts-more.src.js +1 -1
  115. package/es-modules/masters/highcharts.src.js +1 -1
  116. package/es-modules/masters/highmaps.src.js +1 -1
  117. package/es-modules/masters/highstock.src.js +1 -1
  118. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  119. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  120. package/es-modules/masters/indicators/ao.src.js +1 -1
  121. package/es-modules/masters/indicators/apo.src.js +1 -1
  122. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  123. package/es-modules/masters/indicators/aroon.src.js +1 -1
  124. package/es-modules/masters/indicators/atr.src.js +1 -1
  125. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  126. package/es-modules/masters/indicators/cci.src.js +1 -1
  127. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  128. package/es-modules/masters/indicators/cmf.src.js +1 -1
  129. package/es-modules/masters/indicators/cmo.src.js +1 -1
  130. package/es-modules/masters/indicators/dema.src.js +1 -1
  131. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  132. package/es-modules/masters/indicators/dmi.src.js +1 -1
  133. package/es-modules/masters/indicators/dpo.src.js +1 -1
  134. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  135. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  136. package/es-modules/masters/indicators/indicators.src.js +1 -1
  137. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  138. package/es-modules/masters/indicators/klinger.src.js +1 -1
  139. package/es-modules/masters/indicators/macd.src.js +1 -1
  140. package/es-modules/masters/indicators/mfi.src.js +1 -1
  141. package/es-modules/masters/indicators/momentum.src.js +1 -1
  142. package/es-modules/masters/indicators/natr.src.js +1 -1
  143. package/es-modules/masters/indicators/obv.src.js +1 -1
  144. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  145. package/es-modules/masters/indicators/ppo.src.js +1 -1
  146. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  147. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  148. package/es-modules/masters/indicators/psar.src.js +1 -1
  149. package/es-modules/masters/indicators/regressions.src.js +1 -1
  150. package/es-modules/masters/indicators/roc.src.js +1 -1
  151. package/es-modules/masters/indicators/rsi.src.js +1 -1
  152. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  153. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  154. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  155. package/es-modules/masters/indicators/tema.src.js +1 -1
  156. package/es-modules/masters/indicators/trendline.src.js +1 -1
  157. package/es-modules/masters/indicators/trix.src.js +1 -1
  158. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  159. package/es-modules/masters/indicators/vwap.src.js +1 -1
  160. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  161. package/es-modules/masters/indicators/wma.src.js +1 -1
  162. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  163. package/es-modules/masters/modules/accessibility.src.js +1 -1
  164. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  165. package/es-modules/masters/modules/annotations.src.js +1 -1
  166. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  167. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  168. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  169. package/es-modules/masters/modules/boost.src.js +1 -1
  170. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  171. package/es-modules/masters/modules/bullet.src.js +1 -1
  172. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  173. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  174. package/es-modules/masters/modules/cylinder.src.js +1 -1
  175. package/es-modules/masters/modules/data.src.js +1 -1
  176. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  177. package/es-modules/masters/modules/debugger.src.js +1 -1
  178. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  179. package/es-modules/masters/modules/dotplot.src.js +1 -1
  180. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  181. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  182. package/es-modules/masters/modules/drilldown.src.js +2 -1
  183. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  184. package/es-modules/masters/modules/export-data.src.js +1 -1
  185. package/es-modules/masters/modules/exporting.src.js +1 -1
  186. package/es-modules/masters/modules/full-screen.src.js +1 -1
  187. package/es-modules/masters/modules/funnel.src.js +1 -1
  188. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  189. package/es-modules/masters/modules/gantt.src.js +1 -1
  190. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  191. package/es-modules/masters/modules/heatmap.src.js +1 -1
  192. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  193. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  194. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  195. package/es-modules/masters/modules/item-series.src.js +1 -1
  196. package/es-modules/masters/modules/lollipop.src.js +1 -1
  197. package/es-modules/masters/modules/map.src.js +5 -1
  198. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  199. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  200. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  201. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  202. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  203. package/es-modules/masters/modules/oldie.src.js +1 -1
  204. package/es-modules/masters/modules/organization.src.js +1 -1
  205. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  206. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  207. package/es-modules/masters/modules/pareto.src.js +1 -1
  208. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  209. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  210. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  211. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  212. package/es-modules/masters/modules/sankey.src.js +1 -1
  213. package/es-modules/masters/modules/series-label.src.js +1 -1
  214. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  215. package/es-modules/masters/modules/sonification.src.js +1 -1
  216. package/es-modules/masters/modules/static-scale.src.js +1 -1
  217. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  218. package/es-modules/masters/modules/stock.src.js +1 -1
  219. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  220. package/es-modules/masters/modules/sunburst.src.js +1 -1
  221. package/es-modules/masters/modules/tilemap.src.js +1 -1
  222. package/es-modules/masters/modules/timeline.src.js +1 -1
  223. package/es-modules/masters/modules/treegrid.src.js +1 -1
  224. package/es-modules/masters/modules/treemap.src.js +5 -1
  225. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  226. package/es-modules/masters/modules/variwide.src.js +1 -1
  227. package/es-modules/masters/modules/vector.src.js +1 -1
  228. package/es-modules/masters/modules/venn.src.js +1 -1
  229. package/es-modules/masters/modules/windbarb.src.js +1 -1
  230. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  231. package/es-modules/masters/modules/xrange.src.js +1 -1
  232. package/es-modules/masters/themes/avocado.src.js +1 -1
  233. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  234. package/es-modules/masters/themes/brand-light.src.js +1 -1
  235. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  236. package/es-modules/masters/themes/dark-green.src.js +1 -1
  237. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  238. package/es-modules/masters/themes/gray.src.js +1 -1
  239. package/es-modules/masters/themes/grid-light.src.js +1 -1
  240. package/es-modules/masters/themes/grid.src.js +1 -1
  241. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  242. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  243. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  244. package/es-modules/masters/themes/skies.src.js +1 -1
  245. package/es-modules/masters/themes/sunset.src.js +1 -1
  246. package/highcharts-3d.js +99 -98
  247. package/highcharts-3d.js.map +1 -1
  248. package/highcharts-3d.src.js +50 -20
  249. package/highcharts-gantt.js +800 -795
  250. package/highcharts-gantt.js.map +1 -1
  251. package/highcharts-gantt.src.js +528 -290
  252. package/highcharts-more.js +195 -194
  253. package/highcharts-more.js.map +1 -1
  254. package/highcharts-more.src.js +13 -2
  255. package/highcharts.d.ts +2162 -504
  256. package/highcharts.js +586 -581
  257. package/highcharts.js.map +1 -1
  258. package/highcharts.src.d.ts +2162 -504
  259. package/highcharts.src.js +494 -272
  260. package/highmaps.js +753 -723
  261. package/highmaps.js.map +1 -1
  262. package/highmaps.src.js +3603 -2117
  263. package/highstock.js +790 -786
  264. package/highstock.js.map +1 -1
  265. package/highstock.src.js +519 -283
  266. package/indicators/acceleration-bands.js +12 -11
  267. package/indicators/acceleration-bands.js.map +1 -1
  268. package/indicators/acceleration-bands.src.js +11 -2
  269. package/indicators/accumulation-distribution.js +5 -5
  270. package/indicators/accumulation-distribution.js.map +1 -1
  271. package/indicators/accumulation-distribution.src.js +11 -2
  272. package/indicators/ao.js +6 -6
  273. package/indicators/ao.js.map +1 -1
  274. package/indicators/ao.src.js +11 -2
  275. package/indicators/apo.js +5 -5
  276. package/indicators/apo.js.map +1 -1
  277. package/indicators/apo.src.js +11 -2
  278. package/indicators/aroon-oscillator.js +10 -10
  279. package/indicators/aroon-oscillator.js.map +1 -1
  280. package/indicators/aroon-oscillator.src.js +11 -2
  281. package/indicators/aroon.js +11 -11
  282. package/indicators/aroon.js.map +1 -1
  283. package/indicators/aroon.src.js +11 -2
  284. package/indicators/atr.js +5 -5
  285. package/indicators/atr.js.map +1 -1
  286. package/indicators/atr.src.js +11 -2
  287. package/indicators/bollinger-bands.js +12 -12
  288. package/indicators/bollinger-bands.js.map +1 -1
  289. package/indicators/bollinger-bands.src.js +11 -2
  290. package/indicators/cci.js +5 -5
  291. package/indicators/cci.js.map +1 -1
  292. package/indicators/cci.src.js +11 -2
  293. package/indicators/chaikin.js +8 -8
  294. package/indicators/chaikin.js.map +1 -1
  295. package/indicators/chaikin.src.js +11 -2
  296. package/indicators/cmf.js +6 -6
  297. package/indicators/cmf.js.map +1 -1
  298. package/indicators/cmf.src.js +11 -2
  299. package/indicators/cmo.js +5 -5
  300. package/indicators/cmo.js.map +1 -1
  301. package/indicators/cmo.src.js +11 -2
  302. package/indicators/dema.js +5 -5
  303. package/indicators/dema.js.map +1 -1
  304. package/indicators/dema.src.js +11 -2
  305. package/indicators/disparity-index.js +6 -6
  306. package/indicators/disparity-index.js.map +1 -1
  307. package/indicators/disparity-index.src.js +11 -2
  308. package/indicators/dmi.js +12 -12
  309. package/indicators/dmi.js.map +1 -1
  310. package/indicators/dmi.src.js +11 -2
  311. package/indicators/dpo.js +5 -5
  312. package/indicators/dpo.js.map +1 -1
  313. package/indicators/dpo.src.js +11 -2
  314. package/indicators/ema.js +2 -1
  315. package/indicators/ema.js.map +1 -1
  316. package/indicators/ema.src.js +10 -1
  317. package/indicators/ichimoku-kinko-hyo.js +16 -16
  318. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  319. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  320. package/indicators/indicators-all.js +195 -194
  321. package/indicators/indicators-all.js.map +1 -1
  322. package/indicators/indicators-all.src.js +21 -5
  323. package/indicators/indicators.js +13 -12
  324. package/indicators/indicators.js.map +1 -1
  325. package/indicators/indicators.src.js +21 -5
  326. package/indicators/keltner-channels.js +12 -11
  327. package/indicators/keltner-channels.js.map +1 -1
  328. package/indicators/keltner-channels.src.js +11 -2
  329. package/indicators/klinger.js +13 -13
  330. package/indicators/klinger.js.map +1 -1
  331. package/indicators/klinger.src.js +11 -2
  332. package/indicators/macd.js +12 -11
  333. package/indicators/macd.js.map +1 -1
  334. package/indicators/macd.src.js +11 -2
  335. package/indicators/mfi.js +6 -6
  336. package/indicators/mfi.js.map +1 -1
  337. package/indicators/mfi.src.js +11 -2
  338. package/indicators/momentum.js +5 -5
  339. package/indicators/momentum.js.map +1 -1
  340. package/indicators/momentum.src.js +11 -2
  341. package/indicators/natr.js +5 -4
  342. package/indicators/natr.js.map +1 -1
  343. package/indicators/natr.src.js +11 -2
  344. package/indicators/obv.js +5 -5
  345. package/indicators/obv.js.map +1 -1
  346. package/indicators/obv.src.js +11 -2
  347. package/indicators/pivot-points.js +11 -11
  348. package/indicators/pivot-points.js.map +1 -1
  349. package/indicators/pivot-points.src.js +11 -2
  350. package/indicators/ppo.js +5 -5
  351. package/indicators/ppo.js.map +1 -1
  352. package/indicators/ppo.src.js +11 -2
  353. package/indicators/price-channel.js +11 -11
  354. package/indicators/price-channel.js.map +1 -1
  355. package/indicators/price-channel.src.js +11 -2
  356. package/indicators/price-envelopes.js +8 -8
  357. package/indicators/price-envelopes.js.map +1 -1
  358. package/indicators/price-envelopes.src.js +11 -2
  359. package/indicators/psar.js +7 -6
  360. package/indicators/psar.js.map +1 -1
  361. package/indicators/psar.src.js +11 -2
  362. package/indicators/regressions.js +12 -12
  363. package/indicators/regressions.js.map +1 -1
  364. package/indicators/regressions.src.js +11 -2
  365. package/indicators/roc.js +5 -5
  366. package/indicators/roc.js.map +1 -1
  367. package/indicators/roc.src.js +11 -2
  368. package/indicators/rsi.js +6 -5
  369. package/indicators/rsi.js.map +1 -1
  370. package/indicators/rsi.src.js +11 -2
  371. package/indicators/slow-stochastic.js +5 -5
  372. package/indicators/slow-stochastic.js.map +1 -1
  373. package/indicators/slow-stochastic.src.js +11 -2
  374. package/indicators/stochastic.js +12 -12
  375. package/indicators/stochastic.js.map +1 -1
  376. package/indicators/stochastic.src.js +11 -2
  377. package/indicators/supertrend.js +10 -10
  378. package/indicators/supertrend.js.map +1 -1
  379. package/indicators/supertrend.src.js +11 -2
  380. package/indicators/tema.js +6 -6
  381. package/indicators/tema.js.map +1 -1
  382. package/indicators/tema.src.js +11 -2
  383. package/indicators/trendline.js +5 -5
  384. package/indicators/trendline.js.map +1 -1
  385. package/indicators/trendline.src.js +11 -2
  386. package/indicators/trix.js +4 -4
  387. package/indicators/trix.js.map +1 -1
  388. package/indicators/trix.src.js +11 -2
  389. package/indicators/volume-by-price.js +17 -17
  390. package/indicators/volume-by-price.js.map +1 -1
  391. package/indicators/volume-by-price.src.js +11 -2
  392. package/indicators/vwap.js +5 -5
  393. package/indicators/vwap.js.map +1 -1
  394. package/indicators/vwap.src.js +11 -2
  395. package/indicators/williams-r.js +6 -5
  396. package/indicators/williams-r.js.map +1 -1
  397. package/indicators/williams-r.src.js +11 -2
  398. package/indicators/wma.js +5 -5
  399. package/indicators/wma.js.map +1 -1
  400. package/indicators/wma.src.js +11 -2
  401. package/indicators/zigzag.js +6 -6
  402. package/indicators/zigzag.js.map +1 -1
  403. package/indicators/zigzag.src.js +11 -2
  404. package/lib/jspdf.js +299 -184
  405. package/lib/jspdf.src.js +25266 -18067
  406. package/lib/svg2pdf.js +35 -31
  407. package/lib/svg2pdf.src.js +5721 -4179
  408. package/modules/accessibility.js +231 -229
  409. package/modules/accessibility.js.map +1 -1
  410. package/modules/accessibility.src.js +278 -197
  411. package/modules/annotations-advanced.js +144 -144
  412. package/modules/annotations-advanced.js.map +1 -1
  413. package/modules/annotations-advanced.src.js +26 -8
  414. package/modules/annotations.js +79 -79
  415. package/modules/annotations.js.map +1 -1
  416. package/modules/annotations.src.js +21 -5
  417. package/modules/arc-diagram.js +25 -0
  418. package/modules/arc-diagram.js.map +1 -0
  419. package/modules/arc-diagram.src.js +770 -0
  420. package/modules/arrow-symbols.js +4 -3
  421. package/modules/arrow-symbols.js.map +1 -1
  422. package/modules/arrow-symbols.src.js +11 -2
  423. package/modules/boost-canvas.js +15 -15
  424. package/modules/boost-canvas.js.map +1 -1
  425. package/modules/boost-canvas.src.js +11 -2
  426. package/modules/boost.js +80 -79
  427. package/modules/boost.js.map +1 -1
  428. package/modules/boost.src.js +71 -43
  429. package/modules/broken-axis.js +13 -13
  430. package/modules/broken-axis.js.map +1 -1
  431. package/modules/broken-axis.src.js +11 -2
  432. package/modules/bullet.js +9 -9
  433. package/modules/bullet.js.map +1 -1
  434. package/modules/bullet.src.js +11 -2
  435. package/modules/coloraxis.js +24 -24
  436. package/modules/coloraxis.js.map +1 -1
  437. package/modules/coloraxis.src.js +33 -7
  438. package/modules/current-date-indicator.js +5 -4
  439. package/modules/current-date-indicator.js.map +1 -1
  440. package/modules/current-date-indicator.src.js +11 -2
  441. package/modules/cylinder.js +11 -11
  442. package/modules/cylinder.js.map +1 -1
  443. package/modules/cylinder.src.js +11 -2
  444. package/modules/data.js +34 -33
  445. package/modules/data.js.map +1 -1
  446. package/modules/data.src.js +59 -32
  447. package/modules/datagrouping.js +21 -20
  448. package/modules/datagrouping.js.map +1 -1
  449. package/modules/datagrouping.src.js +16 -4
  450. package/modules/debugger.js +6 -6
  451. package/modules/debugger.js.map +1 -1
  452. package/modules/debugger.src.js +11 -2
  453. package/modules/dependency-wheel.js +12 -11
  454. package/modules/dependency-wheel.js.map +1 -1
  455. package/modules/dependency-wheel.src.js +14 -5
  456. package/modules/dotplot.js +6 -6
  457. package/modules/dotplot.js.map +1 -1
  458. package/modules/dotplot.src.js +11 -2
  459. package/modules/drag-panes.js +10 -10
  460. package/modules/drag-panes.js.map +1 -1
  461. package/modules/drag-panes.src.js +11 -2
  462. package/modules/draggable-points.js +35 -34
  463. package/modules/draggable-points.js.map +1 -1
  464. package/modules/draggable-points.src.js +20 -9
  465. package/modules/drilldown.d.ts +19 -0
  466. package/modules/drilldown.js +37 -25
  467. package/modules/drilldown.js.map +1 -1
  468. package/modules/drilldown.src.d.ts +19 -0
  469. package/modules/drilldown.src.js +1090 -105
  470. package/modules/dumbbell.js +17 -17
  471. package/modules/dumbbell.js.map +1 -1
  472. package/modules/dumbbell.src.js +11 -2
  473. package/modules/export-data.js +21 -20
  474. package/modules/export-data.js.map +1 -1
  475. package/modules/export-data.src.js +11 -2
  476. package/modules/exporting.js +39 -39
  477. package/modules/exporting.js.map +1 -1
  478. package/modules/exporting.src.js +82 -18
  479. package/modules/full-screen.js +8 -7
  480. package/modules/full-screen.js.map +1 -1
  481. package/modules/full-screen.src.js +11 -2
  482. package/modules/funnel.js +12 -12
  483. package/modules/funnel.js.map +1 -1
  484. package/modules/funnel.src.js +11 -2
  485. package/modules/funnel3d.js +21 -21
  486. package/modules/funnel3d.js.map +1 -1
  487. package/modules/funnel3d.src.js +11 -2
  488. package/modules/gantt.js +217 -217
  489. package/modules/gantt.js.map +1 -1
  490. package/modules/gantt.src.js +45 -20
  491. package/modules/grid-axis.js +23 -23
  492. package/modules/grid-axis.js.map +1 -1
  493. package/modules/grid-axis.src.js +22 -11
  494. package/modules/heatmap.js +40 -39
  495. package/modules/heatmap.js.map +1 -1
  496. package/modules/heatmap.src.js +33 -7
  497. package/modules/heikinashi.js +8 -8
  498. package/modules/heikinashi.js.map +1 -1
  499. package/modules/heikinashi.src.js +11 -2
  500. package/modules/histogram-bellcurve.js +13 -13
  501. package/modules/histogram-bellcurve.js.map +1 -1
  502. package/modules/histogram-bellcurve.src.js +11 -2
  503. package/modules/hollowcandlestick.js +9 -9
  504. package/modules/hollowcandlestick.js.map +1 -1
  505. package/modules/hollowcandlestick.src.js +11 -2
  506. package/modules/item-series.js +12 -12
  507. package/modules/item-series.js.map +1 -1
  508. package/modules/item-series.src.js +11 -2
  509. package/modules/lollipop.js +7 -7
  510. package/modules/lollipop.js.map +1 -1
  511. package/modules/lollipop.src.js +12 -3
  512. package/modules/map.d.ts +80 -43
  513. package/modules/map.js +169 -144
  514. package/modules/map.js.map +1 -1
  515. package/modules/map.src.d.ts +80 -43
  516. package/modules/map.src.js +7960 -6687
  517. package/modules/marker-clusters.js +36 -36
  518. package/modules/marker-clusters.js.map +1 -1
  519. package/modules/marker-clusters.src.js +47 -23
  520. package/modules/networkgraph.d.ts +5 -0
  521. package/modules/networkgraph.js +49 -48
  522. package/modules/networkgraph.js.map +1 -1
  523. package/modules/networkgraph.src.d.ts +5 -0
  524. package/modules/networkgraph.src.js +77 -15
  525. package/modules/no-data-to-display.js +5 -5
  526. package/modules/no-data-to-display.js.map +1 -1
  527. package/modules/no-data-to-display.src.js +11 -2
  528. package/modules/offline-exporting.js +20 -18
  529. package/modules/offline-exporting.js.map +1 -1
  530. package/modules/offline-exporting.src.js +126 -25
  531. package/modules/oldie-polyfills.js +7 -7
  532. package/modules/oldie-polyfills.js.map +1 -1
  533. package/modules/oldie-polyfills.src.js +11 -2
  534. package/modules/oldie.js +30 -30
  535. package/modules/oldie.js.map +1 -1
  536. package/modules/oldie.src.js +12 -3
  537. package/modules/organization.js +16 -14
  538. package/modules/organization.js.map +1 -1
  539. package/modules/organization.src.js +166 -32
  540. package/modules/overlapping-datalabels.js +3 -2
  541. package/modules/overlapping-datalabels.js.map +1 -1
  542. package/modules/overlapping-datalabels.src.js +11 -2
  543. package/modules/parallel-coordinates.js +11 -11
  544. package/modules/parallel-coordinates.js.map +1 -1
  545. package/modules/parallel-coordinates.src.js +11 -2
  546. package/modules/pareto.js +7 -7
  547. package/modules/pareto.js.map +1 -1
  548. package/modules/pareto.src.js +11 -2
  549. package/modules/pathfinder.js +31 -31
  550. package/modules/pathfinder.js.map +1 -1
  551. package/modules/pathfinder.src.js +11 -2
  552. package/modules/pattern-fill.js +14 -14
  553. package/modules/pattern-fill.js.map +1 -1
  554. package/modules/pattern-fill.src.js +11 -2
  555. package/modules/price-indicator.js +5 -5
  556. package/modules/price-indicator.js.map +1 -1
  557. package/modules/price-indicator.src.js +11 -2
  558. package/modules/pyramid3d.js +4 -4
  559. package/modules/pyramid3d.js.map +1 -1
  560. package/modules/pyramid3d.src.js +11 -2
  561. package/modules/sankey.d.ts +5 -0
  562. package/modules/sankey.js +32 -29
  563. package/modules/sankey.js.map +1 -1
  564. package/modules/sankey.src.d.ts +5 -0
  565. package/modules/sankey.src.js +338 -156
  566. package/modules/series-label.js +18 -17
  567. package/modules/series-label.js.map +1 -1
  568. package/modules/series-label.src.js +11 -2
  569. package/modules/solid-gauge.js +10 -10
  570. package/modules/solid-gauge.js.map +1 -1
  571. package/modules/solid-gauge.src.js +11 -2
  572. package/modules/sonification.js +59 -59
  573. package/modules/sonification.js.map +1 -1
  574. package/modules/sonification.src.js +11 -2
  575. package/modules/static-scale.js +5 -4
  576. package/modules/static-scale.js.map +1 -1
  577. package/modules/static-scale.src.js +11 -2
  578. package/modules/stock-tools.js +78 -78
  579. package/modules/stock-tools.js.map +1 -1
  580. package/modules/stock-tools.src.js +21 -5
  581. package/modules/stock.js +162 -162
  582. package/modules/stock.js.map +1 -1
  583. package/modules/stock.src.js +36 -13
  584. package/modules/streamgraph.js +5 -4
  585. package/modules/streamgraph.js.map +1 -1
  586. package/modules/streamgraph.src.js +11 -2
  587. package/modules/sunburst.d.ts +3 -0
  588. package/modules/sunburst.js +73 -60
  589. package/modules/sunburst.js.map +1 -1
  590. package/modules/sunburst.src.d.ts +3 -0
  591. package/modules/sunburst.src.js +1049 -96
  592. package/modules/tilemap.js +17 -17
  593. package/modules/tilemap.js.map +1 -1
  594. package/modules/tilemap.src.js +11 -2
  595. package/modules/timeline.js +18 -18
  596. package/modules/timeline.js.map +1 -1
  597. package/modules/timeline.src.js +11 -2
  598. package/modules/treegrid.js +57 -56
  599. package/modules/treegrid.js.map +1 -1
  600. package/modules/treegrid.src.js +33 -11
  601. package/modules/treemap.d.ts +3 -0
  602. package/modules/treemap.js +53 -41
  603. package/modules/treemap.js.map +1 -1
  604. package/modules/treemap.src.d.ts +3 -0
  605. package/modules/treemap.src.js +1039 -95
  606. package/modules/variable-pie.js +9 -9
  607. package/modules/variable-pie.js.map +1 -1
  608. package/modules/variable-pie.src.js +11 -2
  609. package/modules/variwide.js +12 -12
  610. package/modules/variwide.js.map +1 -1
  611. package/modules/variwide.src.js +11 -2
  612. package/modules/vector.js +8 -7
  613. package/modules/vector.js.map +1 -1
  614. package/modules/vector.src.js +11 -2
  615. package/modules/venn.js +31 -31
  616. package/modules/venn.js.map +1 -1
  617. package/modules/venn.src.js +18 -6
  618. package/modules/windbarb.js +15 -15
  619. package/modules/windbarb.js.map +1 -1
  620. package/modules/windbarb.src.js +11 -2
  621. package/modules/wordcloud.js +23 -23
  622. package/modules/wordcloud.js.map +1 -1
  623. package/modules/wordcloud.src.js +18 -6
  624. package/modules/xrange.js +16 -16
  625. package/modules/xrange.js.map +1 -1
  626. package/modules/xrange.src.js +11 -2
  627. package/package.json +1 -1
  628. package/themes/avocado.js +4 -3
  629. package/themes/avocado.js.map +1 -1
  630. package/themes/avocado.src.js +11 -2
  631. package/themes/brand-dark.js +9 -8
  632. package/themes/brand-dark.js.map +1 -1
  633. package/themes/brand-dark.src.js +11 -2
  634. package/themes/brand-light.js +8 -8
  635. package/themes/brand-light.js.map +1 -1
  636. package/themes/brand-light.src.js +11 -2
  637. package/themes/dark-blue.js +9 -8
  638. package/themes/dark-blue.js.map +1 -1
  639. package/themes/dark-blue.src.js +11 -2
  640. package/themes/dark-green.js +9 -8
  641. package/themes/dark-green.js.map +1 -1
  642. package/themes/dark-green.src.js +11 -2
  643. package/themes/dark-unica.js +8 -7
  644. package/themes/dark-unica.js.map +1 -1
  645. package/themes/dark-unica.src.js +11 -2
  646. package/themes/gray.js +9 -8
  647. package/themes/gray.js.map +1 -1
  648. package/themes/gray.src.js +11 -2
  649. package/themes/grid-light.js +5 -4
  650. package/themes/grid-light.js.map +1 -1
  651. package/themes/grid-light.src.js +11 -2
  652. package/themes/grid.js +5 -5
  653. package/themes/grid.js.map +1 -1
  654. package/themes/grid.src.js +11 -2
  655. package/themes/high-contrast-dark.js +7 -7
  656. package/themes/high-contrast-dark.js.map +1 -1
  657. package/themes/high-contrast-dark.src.js +21 -12
  658. package/themes/high-contrast-light.js +3 -3
  659. package/themes/high-contrast-light.js.map +1 -1
  660. package/themes/high-contrast-light.src.js +21 -12
  661. package/themes/sand-signika.js +5 -5
  662. package/themes/sand-signika.js.map +1 -1
  663. package/themes/sand-signika.src.js +11 -2
  664. package/themes/skies.js +5 -5
  665. package/themes/skies.js.map +1 -1
  666. package/themes/skies.src.js +11 -2
  667. package/themes/sunset.js +3 -3
  668. package/themes/sunset.js.map +1 -1
  669. package/themes/sunset.src.js +11 -2
  670. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -1034,7 +1034,7 @@ var Series = /** @class */ (function () {
1034
1034
  xExtremes = xAxis.getExtremes();
1035
1035
  min = xExtremes.min;
1036
1036
  max = xExtremes.max;
1037
- updatingNames = xAxis.categories && !xAxis.names.length;
1037
+ updatingNames = !!(xAxis.categories && !xAxis.names.length);
1038
1038
  }
1039
1039
  // optionally filter out points outside the plot area
1040
1040
  if (isCartesian &&
@@ -1162,7 +1162,7 @@ var Series = /** @class */ (function () {
1162
1162
  * @function Highcharts.Series#generatePoints
1163
1163
  */
1164
1164
  Series.prototype.generatePoints = function () {
1165
- var series = this, options = series.options, dataOptions = options.data, processedXData = series.processedXData, processedYData = series.processedYData, PointClass = series.pointClass, processedDataLength = processedXData.length, cropStart = series.cropStart || 0, hasGroupedData = series.hasGroupedData, keys = options.keys, points = [], groupCropStartIndex = (options.dataGrouping &&
1165
+ var series = this, options = series.options, dataOptions = (series.processedData || options.data), processedXData = series.processedXData, processedYData = series.processedYData, PointClass = series.pointClass, processedDataLength = processedXData.length, cropStart = series.cropStart || 0, hasGroupedData = series.hasGroupedData, keys = options.keys, points = [], groupCropStartIndex = (options.dataGrouping &&
1166
1166
  options.dataGrouping.groupAll ?
1167
1167
  cropStart :
1168
1168
  0);
@@ -1448,8 +1448,16 @@ var Series = /** @class */ (function () {
1448
1448
  !xAxis.validatePositiveValue(xValue)) {
1449
1449
  point.isNull = true;
1450
1450
  }
1451
- // Get the plotX translation
1451
+ /**
1452
+ * The translated X value for the point in terms of pixels. Relative
1453
+ * to the X axis position if the series has one, otherwise relative
1454
+ * to the plot area. Depending on the series type this value might
1455
+ * not be defined.
1456
+ * @name Highcharts.Point#plotX
1457
+ * @type {number|undefined}
1458
+ */
1452
1459
  point.plotX = plotX = correctFloat(// #5236
1460
+ // Get the plotX translation
1453
1461
  limitedRange(xAxis.translate(// #3923
1454
1462
  xValue, 0, 0, 0, 1, pointPlacement, this.type === 'flags')) // #3923
1455
1463
  );
@@ -1506,6 +1514,14 @@ var Series = /** @class */ (function () {
1506
1514
  if (isNumber(yValue)) {
1507
1515
  var translated = yAxis.translate(yValue, false, true, false, true);
1508
1516
  if (typeof translated !== 'undefined') {
1517
+ /**
1518
+ * The translated Y value for the point in terms of pixels.
1519
+ * Relative to the Y axis position if the series has one,
1520
+ * otherwise relative to the plot area. Depending on the
1521
+ * series type this value might not be defined.
1522
+ * @name Highcharts.Point#plotY
1523
+ * @type {number|undefined}
1524
+ */
1509
1525
  point.plotY = limitedRange(translated);
1510
1526
  }
1511
1527
  }
@@ -1520,10 +1536,7 @@ var Series = /** @class */ (function () {
1520
1536
  threshold ||
1521
1537
  0);
1522
1538
  // some API data
1523
- point.category = (categories &&
1524
- typeof categories[point.x] !== 'undefined' ?
1525
- categories[point.x] :
1526
- point.x);
1539
+ point.category = pick(categories && categories[point.x], point.x);
1527
1540
  // Determine auto enabling of markers (#3635, #5099)
1528
1541
  if (!point.isNull && point.visible !== false) {
1529
1542
  if (typeof lastPlotX !== 'undefined') {
@@ -1842,26 +1855,26 @@ var Series = /** @class */ (function () {
1842
1855
  Series.prototype.markerAttribs = function (point, state) {
1843
1856
  var seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
1844
1857
  seriesMarkerOptions.symbol);
1845
- var seriesStateOptions, pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions.radius);
1858
+ var seriesStateOptions, pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions && seriesMarkerOptions.radius);
1846
1859
  // Handle hover and select states
1847
1860
  if (state) {
1848
1861
  seriesStateOptions = seriesMarkerOptions.states[state];
1849
1862
  pointStateOptions = pointMarkerOptions.states &&
1850
1863
  pointMarkerOptions.states[state];
1851
- radius = pick(pointStateOptions && pointStateOptions.radius, seriesStateOptions && seriesStateOptions.radius, radius + (seriesStateOptions && seriesStateOptions.radiusPlus ||
1864
+ radius = pick(pointStateOptions && pointStateOptions.radius, seriesStateOptions && seriesStateOptions.radius, radius && radius + (seriesStateOptions && seriesStateOptions.radiusPlus ||
1852
1865
  0));
1853
1866
  }
1854
1867
  point.hasImage = symbol && symbol.indexOf('url') === 0;
1855
1868
  if (point.hasImage) {
1856
1869
  radius = 0; // and subsequently width and height is not set
1857
1870
  }
1858
- var attribs = {
1871
+ var attribs = isNumber(radius) ? {
1859
1872
  // Math.floor for #1843:
1860
1873
  x: seriesOptions.crisp ?
1861
1874
  Math.floor(point.plotX - radius) :
1862
1875
  point.plotX - radius,
1863
1876
  y: point.plotY - radius
1864
- };
1877
+ } : {};
1865
1878
  if (radius) {
1866
1879
  attribs.width = attribs.height = 2 * radius;
1867
1880
  }
@@ -1933,7 +1946,7 @@ var Series = /** @class */ (function () {
1933
1946
  var series = this, chart = series.chart, issue134 = /AppleWebKit\/533/.test(win.navigator.userAgent), data = series.data || [];
1934
1947
  var destroy, i, point, axis;
1935
1948
  // add event hook
1936
- fireEvent(series, 'destroy');
1949
+ fireEvent(series, 'destroy', { keepEventsForUpdate: keepEventsForUpdate });
1937
1950
  // remove events
1938
1951
  this.removeEvents(keepEventsForUpdate);
1939
1952
  // erase from axes
@@ -2670,7 +2683,10 @@ var Series = /** @class */ (function () {
2670
2683
  names[x] = point.name;
2671
2684
  }
2672
2685
  dataOptions.splice(i, 0, options);
2673
- if (isInTheMiddle) {
2686
+ if (isInTheMiddle ||
2687
+ // When processedData is present we need to splice an empty slot
2688
+ // into series.data, otherwise generatePoints won't pick it up.
2689
+ series.processedData) {
2674
2690
  series.data.splice(i, 0, null);
2675
2691
  series.processData();
2676
2692
  }
@@ -2860,6 +2876,8 @@ var Series = /** @class */ (function () {
2860
2876
  typeof options.pointStart !== 'undefined' ||
2861
2877
  typeof options.pointInterval !== 'undefined' ||
2862
2878
  typeof options.relativeXValue !== 'undefined' ||
2879
+ options.joinBy ||
2880
+ options.mapData || // #11636
2863
2881
  // Changes to data grouping requires new points in new group
2864
2882
  series.hasOptionChanged('dataGrouping') ||
2865
2883
  series.hasOptionChanged('pointStart') ||
@@ -2871,6 +2889,8 @@ var Series = /** @class */ (function () {
2871
2889
  preserve.push('data', 'isDirtyData', 'points', 'processedXData', 'processedYData', 'xIncrement', 'cropped', '_hasPointMarkers', '_hasPointLabels', 'clips', // #15420
2872
2890
  // Networkgraph (#14397)
2873
2891
  'nodes', 'layout',
2892
+ // Treemap
2893
+ 'level',
2874
2894
  // Map specific, consider moving it to series-specific preserve-
2875
2895
  // properties (#10617)
2876
2896
  'mapMap', 'mapData', 'minY', 'maxY', 'minX', 'maxX');
@@ -2922,8 +2942,6 @@ var Series = /** @class */ (function () {
2922
2942
  series.remove(false, false, false, true);
2923
2943
  if (casting) {
2924
2944
  // Modern browsers including IE11
2925
- // @todo slow, consider alternatives mentioned:
2926
- // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
2927
2945
  if (Object.setPrototypeOf) {
2928
2946
  Object.setPrototypeOf(series, seriesTypes[newType].prototype);
2929
2947
  // Legacy (IE < 11)
@@ -1250,6 +1250,9 @@ var seriesDefaults = {
1250
1250
  * parameter, `event`, is passed to the function, containing common
1251
1251
  * event information.
1252
1252
  *
1253
+ * Returning `false` cancels the default behavior, which is to show a
1254
+ * tooltip for the point.
1255
+ *
1253
1256
  * @sample {highcharts} highcharts/plotoptions/series-point-events-mouseover/
1254
1257
  * Show values in the chart's corner on mouse over
1255
1258
  *
@@ -1972,7 +1975,7 @@ var seriesDefaults = {
1972
1975
  * @deprecated
1973
1976
  *
1974
1977
  * @extends plotOptions.series.marker
1975
- * @excluding states
1978
+ * @excluding states, symbol
1976
1979
  * @product highcharts highstock
1977
1980
  */
1978
1981
  marker: {
@@ -158,6 +158,12 @@ var Tooltip = /** @class */ (function () {
158
158
  * the context here is an object holding point, series, x, y etc.
159
159
  *
160
160
  * @function Highcharts.Tooltip#defaultFormatter
161
+ *
162
+ * @param {Highcharts.Tooltip} tooltip
163
+ *
164
+ * @return {string|Array<string>}
165
+ * Returns a string (single tooltip and shared)
166
+ * or an array of strings (split tooltip)
161
167
  */
162
168
  Tooltip.prototype.defaultFormatter = function (tooltip) {
163
169
  var items = this.points || splat(this);
@@ -710,7 +716,7 @@ var Tooltip = /** @class */ (function () {
710
716
  Tooltip.prototype.refresh = function (pointOrPoints, mouseEvent) {
711
717
  var tooltip = this, chart = this.chart, options = tooltip.options, points = splat(pointOrPoints), point = points[0], pointConfig = [], formatter = options.formatter || tooltip.defaultFormatter, shared = tooltip.shared, styledMode = chart.styledMode;
712
718
  var textConfig = {};
713
- if (!options.enabled) {
719
+ if (!options.enabled || !point.series) { // #16820
714
720
  return;
715
721
  }
716
722
  U.clearTimeout(this.hideTimer);
@@ -1289,46 +1295,23 @@ export default Tooltip;
1289
1295
  * @callback Highcharts.TooltipFormatterCallbackFunction
1290
1296
  *
1291
1297
  * @param {Highcharts.TooltipFormatterContextObject} this
1292
- * Context to format
1298
+ * Context to format
1293
1299
  *
1294
1300
  * @param {Highcharts.Tooltip} tooltip
1295
- * The tooltip instance
1301
+ * The tooltip instance
1296
1302
  *
1297
1303
  * @return {false|string|Array<(string|null|undefined)>|null|undefined}
1298
- * Formatted text or false
1304
+ * Formatted text or false
1299
1305
  */
1300
1306
  /**
1307
+ * Configuration for the tooltip formatters.
1308
+ *
1301
1309
  * @interface Highcharts.TooltipFormatterContextObject
1310
+ * @extends Highcharts.PointLabelObject
1302
1311
  */ /**
1303
- * @name Highcharts.TooltipFormatterContextObject#color
1304
- * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
1305
- */ /**
1306
- * @name Highcharts.TooltipFormatterContextObject#colorIndex
1307
- * @type {number|undefined}
1308
- */ /**
1309
- * @name Highcharts.TooltipFormatterContextObject#key
1310
- * @type {number}
1311
- */ /**
1312
- * @name Highcharts.TooltipFormatterContextObject#percentage
1313
- * @type {number|undefined}
1314
- */ /**
1315
- * @name Highcharts.TooltipFormatterContextObject#point
1316
- * @type {Highcharts.Point}
1317
- */ /**
1312
+ * Array of points in shared tooltips.
1318
1313
  * @name Highcharts.TooltipFormatterContextObject#points
1319
1314
  * @type {Array<Highcharts.TooltipFormatterContextObject>|undefined}
1320
- */ /**
1321
- * @name Highcharts.TooltipFormatterContextObject#series
1322
- * @type {Highcharts.Series}
1323
- */ /**
1324
- * @name Highcharts.TooltipFormatterContextObject#total
1325
- * @type {number|undefined}
1326
- */ /**
1327
- * @name Highcharts.TooltipFormatterContextObject#x
1328
- * @type {number}
1329
- */ /**
1330
- * @name Highcharts.TooltipFormatterContextObject#y
1331
- * @type {number}
1332
1315
  */
1333
1316
  /**
1334
1317
  * A callback function to place the tooltip in a specific position.
@@ -197,7 +197,9 @@ function cleanRecursively(newer, older) {
197
197
  // Arrays, primitives and DOM nodes are copied directly
198
198
  }
199
199
  else if (isObject(newer[key]) ||
200
- newer[key] !== older[key]) {
200
+ newer[key] !== older[key] ||
201
+ // If the newer key is explicitly undefined, keep it (#10525)
202
+ (key in newer && !(key in older))) {
201
203
  result[key] = newer[key];
202
204
  }
203
205
  });
@@ -365,7 +367,7 @@ function defined(obj) {
365
367
  * @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} elem
366
368
  * The DOM element to receive the attribute(s).
367
369
  *
368
- * @param {string|Highcharts.HTMLAttributes|Highcharts.SVGAttributes} [prop]
370
+ * @param {string|Highcharts.HTMLAttributes|Highcharts.SVGAttributes} [keyOrAttribs]
369
371
  * The property or an object of key-value pairs.
370
372
  *
371
373
  * @param {number|string} [value]
@@ -374,33 +376,34 @@ function defined(obj) {
374
376
  * @return {string|null|undefined}
375
377
  * When used as a getter, return the value.
376
378
  */
377
- function attr(elem, prop, value) {
379
+ function attr(elem, keyOrAttribs, value) {
380
+ var isGetter = isString(keyOrAttribs) && !defined(value);
378
381
  var ret;
379
- // if the prop is a string
380
- if (isString(prop)) {
381
- // set the value
382
+ var attrSingle = function (value, key) {
383
+ // Set the value
382
384
  if (defined(value)) {
383
- elem.setAttribute(prop, value);
384
- // get the value
385
+ elem.setAttribute(key, value);
386
+ // Get the value
385
387
  }
386
- else if (elem && elem.getAttribute) {
387
- ret = elem.getAttribute(prop);
388
+ else if (isGetter) {
389
+ ret = elem.getAttribute(key);
388
390
  // IE7 and below cannot get class through getAttribute (#7850)
389
- if (!ret && prop === 'class') {
390
- ret = elem.getAttribute(prop + 'Name');
391
+ if (!ret && key === 'class') {
392
+ ret = elem.getAttribute(key + 'Name');
391
393
  }
394
+ // Remove the value
392
395
  }
393
- // else if prop is defined, it is a hash of key/value pairs
396
+ else {
397
+ elem.removeAttribute(key);
398
+ }
399
+ };
400
+ // If keyOrAttribs is a string
401
+ if (isString(keyOrAttribs)) {
402
+ attrSingle(value, keyOrAttribs);
403
+ // Else if keyOrAttribs is defined, it is a hash of key/value pairs
394
404
  }
395
405
  else {
396
- objectEach(prop, function (val, key) {
397
- if (defined(val)) {
398
- elem.setAttribute(key, val);
399
- }
400
- else {
401
- elem.removeAttribute(key);
402
- }
403
- });
406
+ objectEach(keyOrAttribs, attrSingle);
404
407
  }
405
408
  return ret;
406
409
  }
@@ -451,10 +454,8 @@ function syncTimeout(fn, delay, context) {
451
454
  *
452
455
  * @function Highcharts.clearTimeout
453
456
  *
454
- * @param {number} id
455
- * Id of a timeout.
456
- *
457
- * @return {void}
457
+ * @param {number|undefined} id
458
+ * Id of a timeout.
458
459
  */
459
460
  function internalClearTimeout(id) {
460
461
  if (defined(id)) {
@@ -524,9 +525,8 @@ function pick() {
524
525
  */
525
526
  function css(el, styles) {
526
527
  if (H.isMS && !H.svg) { // #2686
527
- if (styles && typeof styles.opacity !== 'undefined') {
528
- styles.filter =
529
- 'alpha(opacity=' + (styles.opacity * 100) + ')';
528
+ if (styles && defined(styles.opacity)) {
529
+ styles.filter = "alpha(opacity=" + styles.opacity * 100 + ")";
530
530
  }
531
531
  }
532
532
  extend(el.style, styles);
@@ -1140,6 +1140,13 @@ merge(Annotation.prototype,
1140
1140
  * @since 7.1.0
1141
1141
  * @apioption annotations.events.afterUpdate
1142
1142
  */
1143
+ /**
1144
+ * Fires when the annotation is clicked.
1145
+ *
1146
+ * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}
1147
+ * @since 7.1.0
1148
+ * @apioption annotations.events.click
1149
+ */
1143
1150
  /**
1144
1151
  * Event callback when annotation is removed from the chart.
1145
1152
  *
@@ -329,7 +329,7 @@ var MockPoint = /** @class */ (function () {
329
329
  this.plotX = xAxis.toPixels(options.x, true);
330
330
  }
331
331
  else {
332
- this.x = null;
332
+ this.x = void 0;
333
333
  this.plotX = options.x;
334
334
  }
335
335
  if (yAxis) {
@@ -1094,7 +1094,7 @@ setOptions({
1094
1094
  * from a different server.
1095
1095
  *
1096
1096
  * @type {string}
1097
- * @default https://code.highcharts.com/9.3.3/gfx/stock-icons/
1097
+ * @default https://code.highcharts.com/10.0.0/gfx/stock-icons/
1098
1098
  * @since 7.1.3
1099
1099
  * @apioption navigation.iconsURL
1100
1100
  */
@@ -1111,7 +1111,7 @@ addEvent(NavigationBindings, 'showPopup', function (config) {
1111
1111
  this.popup = new H.Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||
1112
1112
  (this.chart.options.stockTools &&
1113
1113
  this.chart.options.stockTools.gui.iconsURL) ||
1114
- 'https://code.highcharts.com/9.3.3/gfx/stock-icons/'), this.chart);
1114
+ 'https://code.highcharts.com/10.0.0/gfx/stock-icons/'), this.chart);
1115
1115
  }
1116
1116
  this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);
1117
1117
  });
@@ -47,11 +47,13 @@ var BasicAnnotation = /** @class */ (function (_super) {
47
47
  var options = this.options;
48
48
  if (options.shapes) {
49
49
  delete options.labelOptions;
50
- if (options.shapes[0].type) {
51
- this.basicType = options.shapes[0].type;
50
+ var type = options.shapes[0].type;
51
+ // The rectangle is rendered as a path, whereas other basic shapes
52
+ // are rendered as their respecitve SVG shapes.
53
+ if (type && type !== 'path') {
54
+ this.basicType = type;
52
55
  }
53
56
  else {
54
- // Defalut shape would be rectangle.
55
57
  this.basicType = 'rectangle';
56
58
  }
57
59
  }
@@ -165,7 +165,7 @@ function init() {
165
165
  }
166
166
  }
167
167
  // Add points and reset
168
- if (clientX !== lastClientX) {
168
+ if (!compareX || clientX !== lastClientX) {
169
169
  // maxI is number too:
170
170
  if (typeof minI !== 'undefined') {
171
171
  plotY =
@@ -242,6 +242,11 @@ function init() {
242
242
  fillOpacity: true,
243
243
  sampling: true
244
244
  });
245
+ extend(seriesTypes.areaspline.prototype, {
246
+ fill: true,
247
+ fillOpacity: true,
248
+ sampling: true
249
+ });
245
250
  extend(seriesTypes.column.prototype, {
246
251
  fill: true,
247
252
  sampling: true
@@ -149,6 +149,32 @@ import '../../Core/Globals.js';
149
149
  * @default false
150
150
  * @apioption boost.debug.timeBufferCopy
151
151
  */
152
+ /**
153
+ * The pixel ratio for the WebGL content. If 0, the `window.devicePixelRatio` is
154
+ * used. This ensures sharp graphics on high DPI displays like Apple's Retina,
155
+ * as well as when a page is zoomed.
156
+ *
157
+ * The default is left at 1 for now, as this is a new feature that has the
158
+ * potential to break existing setups. Over time, when it has been battle
159
+ * tested, the intention is to set it to 0 by default.
160
+ *
161
+ * Another use case for this option is to set it to 2 in order to make exported
162
+ * and upscaled charts render sharp.
163
+ *
164
+ * One limitation when using the `pixelRatio` is that the line width of graphs
165
+ * is scaled down. Since the Boost module currently can only render 1px line
166
+ * widths, it is scaled down to a thin 0.5 pixels on a Retina display.
167
+ *
168
+ * @sample highcharts/boost/line-devicepixelratio
169
+ * Enable the `devicePixelRatio`
170
+ * @sample highcharts/boost/line-export-pixelratio
171
+ * Sharper graphics in export
172
+ *
173
+ * @type {number}
174
+ * @since 10.0.0
175
+ * @default 1
176
+ * @apioption boost.pixelRatio
177
+ */
152
178
  /**
153
179
  * Enable or disable GPU translations. GPU translations are faster than doing
154
180
  * the translation in JavaScript.
@@ -12,6 +12,7 @@
12
12
  // These are the series we allow boosting for.
13
13
  var boostables = [
14
14
  'area',
15
+ 'areaspline',
15
16
  'arearange',
16
17
  'column',
17
18
  'columnrange',
@@ -15,7 +15,7 @@ var color = Color.parse;
15
15
  import GLShader from './WGLShader.js';
16
16
  import GLVertexBuffer from './WGLVBuffer.js';
17
17
  import H from '../../Core/Globals.js';
18
- var doc = H.doc;
18
+ var doc = H.doc, win = H.win;
19
19
  import U from '../../Core/Utilities.js';
20
20
  var isNumber = U.isNumber, isObject = U.isObject, merge = U.merge, objectEach = U.objectEach, pick = U.pick;
21
21
  /* eslint-disable valid-jsdoc */
@@ -59,6 +59,7 @@ function GLRenderer(postRenderCallback) {
59
59
  'columnrange': true,
60
60
  'bar': true,
61
61
  'area': true,
62
+ 'areaspline': true,
62
63
  'arearange': true
63
64
  }, asCircle = {
64
65
  'scatter': true,
@@ -82,10 +83,22 @@ function GLRenderer(postRenderCallback) {
82
83
  }
83
84
  };
84
85
  // /////////////////////////////////////////////////////////////////////////
86
+ /**
87
+ * @private
88
+ */
89
+ function getPixelRatio() {
90
+ return settings.pixelRatio || win.devicePixelRatio || 1;
91
+ }
85
92
  /**
86
93
  * @private
87
94
  */
88
95
  function setOptions(options) {
96
+ // The pixelRatio defaults to 1. This is an antipattern, we should
97
+ // refactor the Boost options to include an object of default options as
98
+ // base for the merge, like other components.
99
+ if (!('pixelRatio' in options)) {
100
+ options.pixelRatio = 1;
101
+ }
89
102
  merge(true, settings, options);
90
103
  }
91
104
  /**
@@ -206,7 +219,7 @@ function GLRenderer(postRenderCallback) {
206
219
  //
207
220
  cullXThreshold = 1, cullYThreshold = 1,
208
221
  // The following are used in the builder while loop
209
- x, y, d, z, i = -1, px = false, nx = false, low, chartDestroyed = typeof chart.index === 'undefined', nextInside = false, prevInside = false, pcolor = false, drawAsBar = asBar[series.type], isXInside = false, isYInside = true, firstPoint = true, zoneAxis = options.zoneAxis || 'y', zones = options.zones || false, zoneColors, zoneDefColor = false, threshold = options.threshold, gapSize = false;
222
+ x, y, d, z, i = -1, px = false, nx = false, low, chartDestroyed = typeof chart.index === 'undefined', nextInside = false, prevInside = false, pcolor = false, drawAsBar = asBar[series.type], isXInside = false, isYInside = true, firstPoint = true, zoneAxis = options.zoneAxis || 'y', zones = options.zones || false, zoneColors, zoneDefColor = false, threshold = options.threshold, gapSize = false, pixelRatio = getPixelRatio();
210
223
  if (options.boostData && options.boostData.length > 0) {
211
224
  return;
212
225
  }
@@ -260,16 +273,24 @@ function GLRenderer(postRenderCallback) {
260
273
  * @private
261
274
  */
262
275
  function vertice(x, y, checkTreshold, pointSize, color) {
276
+ if (pointSize === void 0) { pointSize = 1; }
263
277
  pushColor(color);
278
+ // Correct for pixel ratio
279
+ if (pixelRatio !== 1 && (!settings.useGPUTranslations ||
280
+ inst.skipTranslation)) {
281
+ x *= pixelRatio;
282
+ y *= pixelRatio;
283
+ pointSize *= pixelRatio;
284
+ }
264
285
  if (settings.usePreallocated) {
265
- vbuffer.push(x, y, checkTreshold ? 1 : 0, pointSize || 1);
286
+ vbuffer.push(x, y, checkTreshold ? 1 : 0, pointSize);
266
287
  vlen += 4;
267
288
  }
268
289
  else {
269
290
  data.push(x);
270
291
  data.push(y);
271
- data.push(checkTreshold ? 1 : 0);
272
- data.push(pointSize || 1);
292
+ data.push(checkTreshold ? pixelRatio : 0);
293
+ data.push(pointSize);
273
294
  }
274
295
  }
275
296
  /**
@@ -365,7 +386,7 @@ function GLRenderer(postRenderCallback) {
365
386
  // We could also use one color per. vertice to get
366
387
  // better color interpolation.
367
388
  // If there's stroking, we do an additional rect
368
- if (series.type === 'treemap') {
389
+ if (series.is('treemap')) {
369
390
  swidth = swidth || 1;
370
391
  scolor = color(pointAttr.stroke).rgba;
371
392
  scolor[0] /= 255.0;
@@ -377,12 +398,12 @@ function GLRenderer(postRenderCallback) {
377
398
  // } else {
378
399
  // swidth = 0;
379
400
  // }
380
- // Fixes issues with inverted heatmaps (see #6981)
381
- // The root cause is that the coordinate system is flipped.
382
- // In other words, instead of [0,0] being top-left, it's
401
+ // Fixes issues with inverted heatmaps (see #6981). The root
402
+ // cause is that the coordinate system is flipped. In other
403
+ // words, instead of [0,0] being top-left, it's
383
404
  // bottom-right. This causes a vertical and horizontal flip
384
405
  // in the resulting image, making it rotated 180 degrees.
385
- if (series.type === 'heatmap' && chart.inverted) {
406
+ if (series.is('heatmap') && chart.inverted) {
386
407
  x_1 = xAxis.len - x_1;
387
408
  y_1 = yAxis.len - y_1;
388
409
  width_1 = -width_1;
@@ -723,7 +744,7 @@ function GLRenderer(postRenderCallback) {
723
744
  drawMode: {
724
745
  'area': 'lines',
725
746
  'arearange': 'lines',
726
- 'areaspline': 'line_strip',
747
+ 'areaspline': 'lines',
727
748
  'column': 'lines',
728
749
  'columnrange': 'lines',
729
750
  'bar': 'lines',
@@ -769,12 +790,13 @@ function GLRenderer(postRenderCallback) {
769
790
  if (!shader) {
770
791
  return;
771
792
  }
772
- shader.setUniform('xAxisTrans', axis.transA);
793
+ var pixelRatio = getPixelRatio();
794
+ shader.setUniform('xAxisTrans', axis.transA * pixelRatio);
773
795
  shader.setUniform('xAxisMin', axis.min);
774
- shader.setUniform('xAxisMinPad', axis.minPixelPadding);
796
+ shader.setUniform('xAxisMinPad', axis.minPixelPadding * pixelRatio);
775
797
  shader.setUniform('xAxisPointRange', axis.pointRange);
776
- shader.setUniform('xAxisLen', axis.len);
777
- shader.setUniform('xAxisPos', axis.pos);
798
+ shader.setUniform('xAxisLen', axis.len * pixelRatio);
799
+ shader.setUniform('xAxisPos', axis.pos * pixelRatio);
778
800
  shader.setUniform('xAxisCVSCoord', (!axis.horiz));
779
801
  shader.setUniform('xAxisIsLog', (!!axis.logarithmic));
780
802
  shader.setUniform('xAxisReversed', (!!axis.reversed));
@@ -788,12 +810,13 @@ function GLRenderer(postRenderCallback) {
788
810
  if (!shader) {
789
811
  return;
790
812
  }
791
- shader.setUniform('yAxisTrans', axis.transA);
813
+ var pixelRatio = getPixelRatio();
814
+ shader.setUniform('yAxisTrans', axis.transA * pixelRatio);
792
815
  shader.setUniform('yAxisMin', axis.min);
793
- shader.setUniform('yAxisMinPad', axis.minPixelPadding);
816
+ shader.setUniform('yAxisMinPad', axis.minPixelPadding * pixelRatio);
794
817
  shader.setUniform('yAxisPointRange', axis.pointRange);
795
- shader.setUniform('yAxisLen', axis.len);
796
- shader.setUniform('yAxisPos', axis.pos);
818
+ shader.setUniform('yAxisLen', axis.len * pixelRatio);
819
+ shader.setUniform('yAxisPos', axis.pos * pixelRatio);
797
820
  shader.setUniform('yAxisCVSCoord', (!axis.horiz));
798
821
  shader.setUniform('yAxisIsLog', (!!axis.logarithmic));
799
822
  shader.setUniform('yAxisReversed', (!!axis.reversed));
@@ -814,12 +837,10 @@ function GLRenderer(postRenderCallback) {
814
837
  * @private
815
838
  */
816
839
  function render(chart) {
840
+ var pixelRatio = getPixelRatio();
817
841
  if (chart) {
818
- if (!chart.chartHeight || !chart.chartWidth) {
819
- // chart.setChartSize();
820
- }
821
- width = chart.chartWidth || 800;
822
- height = chart.chartHeight || 400;
842
+ width = chart.chartWidth * pixelRatio;
843
+ height = chart.chartHeight * pixelRatio;
823
844
  }
824
845
  else {
825
846
  return false;
@@ -922,18 +943,13 @@ function GLRenderer(postRenderCallback) {
922
943
  setYAxis(s.series.yAxis);
923
944
  setThreshold(hasThreshold, translatedThreshold);
924
945
  if (s.drawMode === 'points') {
925
- if (options.marker && isNumber(options.marker.radius)) {
926
- shader.setPointSize(options.marker.radius * 2.0);
927
- }
928
- else {
929
- shader.setPointSize(1);
930
- }
946
+ shader.setPointSize(pick(options.marker && options.marker.radius, 0.5) * 2 * pixelRatio);
931
947
  }
932
948
  // If set to true, the toPixels translations in the shader
933
949
  // is skipped, i.e it's assumed that the value is a pixel coord.
934
950
  shader.setSkipTranslation(s.skipTranslation);
935
951
  if (s.series.type === 'bubble') {
936
- shader.setBubbleUniforms(s.series, s.zMin, s.zMax);
952
+ shader.setBubbleUniforms(s.series, s.zMin, s.zMax, pixelRatio);
937
953
  }
938
954
  shader.setDrawAsCircle(asCircle[s.series.type] || false);
939
955
  // Do the actual rendering
@@ -944,12 +960,7 @@ function GLRenderer(postRenderCallback) {
944
960
  }
945
961
  }
946
962
  if (s.hasMarkers && showMarkers) {
947
- if (options.marker && isNumber(options.marker.radius)) {
948
- shader.setPointSize(options.marker.radius * 2.0);
949
- }
950
- else {
951
- shader.setPointSize(10);
952
- }
963
+ shader.setPointSize(pick(options.marker && options.marker.radius, 5) * 2 * pixelRatio);
953
964
  shader.setDrawAsCircle(true);
954
965
  for (sindex = 0; sindex < s.segments.length; sindex++) {
955
966
  vbuffer.render(s.segments[sindex].from, s.segments[sindex].to, 'POINTS');