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
@@ -13,6 +13,8 @@ import F from '../Core/FormatUtilities.js';
13
13
  var format = F.format;
14
14
  import H from '../Core/Globals.js';
15
15
  var win = H.win;
16
+ import MU from '../Maps/MapUtilities.js';
17
+ var pointInPolygon = MU.pointInPolygon;
16
18
  import U from '../Core/Utilities.js';
17
19
  var error = U.error, extend = U.extend, merge = U.merge, wrap = U.wrap;
18
20
  /**
@@ -122,27 +124,27 @@ var error = U.error, extend = U.extend, merge = U.merge, wrap = U.wrap;
122
124
  /**
123
125
  * Result object of a map transformation.
124
126
  *
125
- * @interface Highcharts.MapCoordinateObject
127
+ * @interface Highcharts.ProjectedXY
126
128
  */ /**
127
- * X coordinate on the map.
128
- * @name Highcharts.MapCoordinateObject#x
129
+ * X coordinate in projected units.
130
+ * @name Highcharts.ProjectedXY#x
129
131
  * @type {number}
130
132
  */ /**
131
- * Y coordinate on the map.
132
- * @name Highcharts.MapCoordinateObject#y
133
- * @type {number|null}
133
+ * Y coordinate in projected units
134
+ * @name Highcharts.ProjectedXY#y
135
+ * @type {number}
134
136
  */
135
137
  /**
136
138
  * A latitude/longitude object.
137
139
  *
138
- * @interface Highcharts.MapLatLonObject
140
+ * @interface Highcharts.MapLonLatObject
139
141
  */ /**
140
142
  * The latitude.
141
- * @name Highcharts.MapLatLonObject#lat
143
+ * @name Highcharts.MapLonLatObject#lat
142
144
  * @type {number}
143
145
  */ /**
144
146
  * The longitude.
145
- * @name Highcharts.MapLatLonObject#lon
147
+ * @name Highcharts.MapLonLatObject#lon
146
148
  * @type {number}
147
149
  */
148
150
  /**
@@ -150,29 +152,16 @@ var error = U.error, extend = U.extend, merge = U.merge, wrap = U.wrap;
150
152
  *
151
153
  * @typedef {Array<number>} Highcharts.LonLatArray
152
154
  */
153
- ''; // detach doclets above
154
- /* eslint-disable no-invalid-this, valid-jsdoc */
155
155
  /**
156
- * Test for point in polygon. Polygon defined as array of [x,y] points.
157
- * @private
156
+ * A TopoJSON object, see description on the
157
+ * [project's GitHub page](https://github.com/topojson/topojson).
158
+ *
159
+ * @typedef {Object} Highcharts.TopoJSON
158
160
  */
159
- function pointInPolygon(point, polygon) {
160
- var i, j, rel1, rel2, c = false, x = point.x, y = point.y;
161
- for (i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
162
- rel1 = polygon[i][1] > y;
163
- rel2 = polygon[j][1] > y;
164
- if (rel1 !== rel2 &&
165
- (x < (polygon[j][0] -
166
- polygon[i][0]) * (y - polygon[i][1]) /
167
- (polygon[j][1] - polygon[i][1]) +
168
- polygon[i][0])) {
169
- c = !c;
170
- }
171
- }
172
- return c;
173
- }
161
+ ''; // detach doclets above
162
+ /* eslint-disable no-invalid-this, valid-jsdoc */
174
163
  /**
175
- * Highmaps only. Get point from latitude and longitude using specified
164
+ * Highcharts Maps only. Get point from latitude and longitude using specified
176
165
  * transform definition.
177
166
  *
178
167
  * @requires modules/map
@@ -182,14 +171,14 @@ function pointInPolygon(point, polygon) {
182
171
  *
183
172
  * @function Highcharts.Chart#transformFromLatLon
184
173
  *
185
- * @param {Highcharts.MapLatLonObject} latLon
174
+ * @param {Highcharts.MapLonLatObject} latLon
186
175
  * A latitude/longitude object.
187
176
  *
188
177
  * @param {*} transform
189
178
  * The transform definition to use as explained in the
190
179
  * {@link https://www.highcharts.com/docs/maps/latlon|documentation}.
191
180
  *
192
- * @return {Highcharts.MapCoordinateObject}
181
+ * @return {ProjectedXY}
193
182
  * An object with `x` and `y` properties.
194
183
  */
195
184
  Chart.prototype.transformFromLatLon = function (latLon, transform) {
@@ -206,10 +195,7 @@ Chart.prototype.transformFromLatLon = function (latLon, transform) {
206
195
  var proj4 = this.options.chart.proj4 || win.proj4;
207
196
  if (!proj4) {
208
197
  error(21, false, this);
209
- return {
210
- x: 0,
211
- y: null
212
- };
198
+ return;
213
199
  }
214
200
  var _a = transform.jsonmarginX, jsonmarginX = _a === void 0 ? 0 : _a, _b = transform.jsonmarginY, jsonmarginY = _b === void 0 ? 0 : _b, _c = transform.jsonres, jsonres = _c === void 0 ? 1 : _c, _d = transform.scale, scale = _d === void 0 ? 1 : _d, _e = transform.xoffset, xoffset = _e === void 0 ? 0 : _e, _f = transform.xpan, xpan = _f === void 0 ? 0 : _f, _g = transform.yoffset, yoffset = _g === void 0 ? 0 : _g, _h = transform.ypan, ypan = _h === void 0 ? 0 : _h;
215
201
  var projected = proj4(transform.crs, [latLon.lon, latLon.lat]), cosAngle = transform.cosAngle ||
@@ -224,26 +210,24 @@ Chart.prototype.transformFromLatLon = function (latLon, transform) {
224
210
  };
225
211
  };
226
212
  /**
227
- * Highmaps only. Get latLon from point using specified transform definition.
228
- * The method returns an object with the numeric properties `lat` and `lon`.
213
+ * Highcharts Maps only. Get latLon from point using specified transform
214
+ * definition. The method returns an object with the numeric properties `lat`
215
+ * and `lon`.
229
216
  *
230
217
  * @requires modules/map
231
218
  *
232
- * @sample maps/series/latlon-transform/
233
- * Use specific transformation for lat/lon
219
+ * @sample maps/series/latlon-transform/ Use specific transformation for lat/lon
234
220
  *
235
221
  * @function Highcharts.Chart#transformToLatLon
236
222
  *
237
- * @param {Highcharts.Point|Highcharts.MapCoordinateObject} point
238
- * A `Point` instance, or any object containing the properties `x` and
239
- * `y` with numeric values.
223
+ * @param {Highcharts.Point|Highcharts.ProjectedXY} point A `Point` instance, or
224
+ * any object containing the properties `x` and `y` with numeric values.
240
225
  *
241
- * @param {*} transform
242
- * The transform definition to use as explained in the
226
+ * @param {*} transform The transform definition to use as explained in the
243
227
  * {@link https://www.highcharts.com/docs/maps/latlon|documentation}.
244
228
  *
245
- * @return {Highcharts.MapLatLonObject|undefined}
246
- * An object with `lat` and `lon` properties.
229
+ * @return {Highcharts.MapLonLatObject|undefined} An object with `lat` and `lon`
230
+ * properties.
247
231
  */
248
232
  Chart.prototype.transformToLatLon = function (point, transform) {
249
233
  var proj4 = this.options.chart.proj4 || win.proj4;
@@ -269,114 +253,148 @@ Chart.prototype.transformToLatLon = function (point, transform) {
269
253
  return { lat: projected.y, lon: projected.x };
270
254
  };
271
255
  /**
272
- * Highmaps only. Calculate latitude/longitude values for a point. Returns an
273
- * object with the numeric properties `lat` and `lon`.
256
+ * Deprecated. Use `MapView.projectedUnitsToLonLat` instead.
274
257
  *
275
- * @requires modules/map
258
+ * @deprecated
276
259
  *
277
- * @sample maps/demo/latlon-advanced/
278
- * Advanced lat/lon demo
260
+ * @requires modules/map
279
261
  *
280
262
  * @function Highcharts.Chart#fromPointToLatLon
281
263
  *
282
- * @param {Highcharts.Point|Highcharts.MapCoordinateObject} point
283
- * A `Point` instance or anything containing `x` and `y` properties with
284
- * numeric values.
264
+ * @param {Highcharts.Point|Highcharts.ProjectedXY} point A `Point`
265
+ * instance or anything containing `x` and `y` properties with numeric
266
+ * values.
285
267
  *
286
- * @return {Highcharts.MapLatLonObject|undefined}
287
- * An object with `lat` and `lon` properties.
268
+ * @return {Highcharts.MapLonLatObject|undefined} An object with `lat` and `lon`
269
+ * properties.
288
270
  */
289
271
  Chart.prototype.fromPointToLatLon = function (point) {
290
- var transforms = this.mapTransforms;
291
- if (!transforms) {
292
- error(22, false, this);
293
- return;
294
- }
295
- for (var transform in transforms) {
296
- if (Object.hasOwnProperty.call(transforms, transform) &&
297
- transforms[transform].hitZone &&
298
- pointInPolygon(point, transforms[transform].hitZone.coordinates[0])) {
299
- return this.transformToLatLon(point, transforms[transform]);
300
- }
301
- }
302
- return this.transformToLatLon(point, transforms['default'] // eslint-disable-line dot-notation
303
- );
272
+ return this.mapView && this.mapView.projectedUnitsToLonLat(point);
304
273
  };
305
274
  /**
306
- * Highmaps only. Get chart coordinates from latitude/longitude. Returns an
307
- * object with x and y values corresponding to the `xAxis` and `yAxis`.
275
+ * Deprecated. Use `MapView.lonLatToProjectedUnits` instead.
308
276
  *
309
- * @requires modules/map
277
+ * @deprecated
310
278
  *
311
- * @sample maps/series/latlon-to-point/
312
- * Find a point from lat/lon
279
+ * @requires modules/map
313
280
  *
314
281
  * @function Highcharts.Chart#fromLatLonToPoint
315
282
  *
316
- * @param {Highcharts.MapLatLonObject} latLon
317
- * Coordinates.
283
+ * @param {Highcharts.MapLonLatObject} lonLat Coordinates.
318
284
  *
319
- * @return {Highcharts.MapCoordinateObject}
320
- * X and Y coordinates in terms of chart axis values.
285
+ * @return {Highcharts.ProjectedXY}
286
+ * X and Y coordinates in terms of projected values
321
287
  */
322
- Chart.prototype.fromLatLonToPoint = function (latLon) {
323
- var transforms = this.mapTransforms, transform, coords;
324
- if (!transforms) {
325
- error(22, false, this);
326
- return {
327
- x: 0,
328
- y: null
329
- };
288
+ Chart.prototype.fromLatLonToPoint = function (lonLat) {
289
+ return this.mapView && this.mapView.lonLatToProjectedUnits(lonLat);
290
+ };
291
+ /*
292
+ * Convert a TopoJSON topology to GeoJSON. By default the first object is
293
+ * handled.
294
+ * Based on https://github.com/topojson/topojson-specification
295
+ */
296
+ function topo2geo(topology, objectName) {
297
+ // Decode first object/feature as default
298
+ if (!objectName) {
299
+ objectName = Object.keys(topology.objects)[0];
330
300
  }
331
- for (transform in transforms) {
332
- if (Object.hasOwnProperty.call(transforms, transform) &&
333
- transforms[transform].hitZone) {
334
- coords = this.transformFromLatLon(latLon, transforms[transform]);
335
- if (pointInPolygon(coords, transforms[transform].hitZone.coordinates[0])) {
336
- return coords;
337
- }
338
- }
301
+ var object = topology.objects[objectName];
302
+ // Already decoded => return cache
303
+ if (object['hc-decoded-geojson']) {
304
+ return object['hc-decoded-geojson'];
339
305
  }
340
- return this.transformFromLatLon(latLon, transforms['default'] // eslint-disable-line dot-notation
341
- );
342
- };
306
+ // Do the initial transform
307
+ var arcsArray = topology.arcs;
308
+ if (topology.transform) {
309
+ var _a = topology.transform, scale_1 = _a.scale, translate_1 = _a.translate;
310
+ arcsArray = topology.arcs.map(function (arc) {
311
+ var x = 0, y = 0;
312
+ return arc.map(function (position) {
313
+ position = position.slice();
314
+ position[0] = (x += position[0]) * scale_1[0] + translate_1[0];
315
+ position[1] = (y += position[1]) * scale_1[1] + translate_1[1];
316
+ return position;
317
+ });
318
+ });
319
+ }
320
+ // Recurse down any depth of multi-dimentional arrays of arcs and insert
321
+ // the coordinates
322
+ var arcsToCoordinates = function (arcs) {
323
+ if (typeof arcs[0] === 'number') {
324
+ return arcs.reduce(function (coordinates, arcNo, i) {
325
+ var arc = arcNo < 0 ? arcsArray[~arcNo] : arcsArray[arcNo];
326
+ // The first point of an arc is always identical to the last
327
+ // point of the previes arc, so slice it off to save further
328
+ // processing.
329
+ if (arcNo < 0) {
330
+ arc = arc.slice(0, i === 0 ? arc.length : arc.length - 1);
331
+ arc.reverse();
332
+ }
333
+ else if (i) {
334
+ arc = arc.slice(1);
335
+ }
336
+ return coordinates.concat(arc);
337
+ }, []);
338
+ }
339
+ return arcs.map(arcsToCoordinates);
340
+ };
341
+ var features = object.geometries
342
+ .map(function (geometry) { return ({
343
+ type: 'Feature',
344
+ properties: geometry.properties,
345
+ geometry: {
346
+ type: geometry.type,
347
+ coordinates: geometry.coordinates ||
348
+ arcsToCoordinates(geometry.arcs)
349
+ }
350
+ }); });
351
+ var geojson = {
352
+ type: 'FeatureCollection',
353
+ copyright: topology.copyright,
354
+ copyrightShort: topology.copyrightShort,
355
+ copyrightUrl: topology.copyrightUrl,
356
+ features: features,
357
+ 'hc-recommended-mapview': object['hc-recommended-mapview'],
358
+ bbox: topology.bbox
359
+ };
360
+ object['hc-decoded-geojson'] = geojson;
361
+ return geojson;
362
+ }
343
363
  /**
344
- * Highmaps only. Restructure a GeoJSON object in preparation to be read
345
- * directly by the
364
+ * Highcharts Maps only. Restructure a GeoJSON or TopoJSON object in preparation
365
+ * to be read directly by the
346
366
  * {@link https://api.highcharts.com/highmaps/plotOptions.series.mapData|series.mapData}
347
- * option. The GeoJSON will be broken down to fit a specific Highcharts type,
367
+ * option. The object will be broken down to fit a specific Highcharts type,
348
368
  * either `map`, `mapline` or `mappoint`. Meta data in GeoJSON's properties
349
- * object will be copied directly over to {@link Point.properties} in Highmaps.
369
+ * object will be copied directly over to {@link Point.properties} in Highcharts
370
+ * Maps.
350
371
  *
351
372
  * @requires modules/map
352
373
  *
353
- * @sample maps/demo/geojson/
354
- * Simple areas
355
- * @sample maps/demo/geojson-multiple-types/
356
- * Multiple types
374
+ * @sample maps/demo/geojson/ Simple areas
375
+ * @sample maps/demo/mapline-mappoint/ Multiple types
376
+ * @sample maps/series/mapdata-multiple/ Multiple map sources
357
377
  *
358
378
  * @function Highcharts.geojson
359
379
  *
360
- * @param {Highcharts.GeoJSON} geojson
361
- * The GeoJSON structure to parse, represented as a JavaScript object
362
- * rather than a JSON string.
380
+ * @param {Highcharts.GeoJSON|Highcharts.TopoJSON} json The GeoJSON or TopoJSON
381
+ * structure to parse, represented as a JavaScript object.
363
382
  *
364
- * @param {string} [hType=map]
365
- * The Highmaps series type to prepare for. Setting "map" will return
366
- * GeoJSON polygons and multipolygons. Setting "mapline" will return
367
- * GeoJSON linestrings and multilinestrings. Setting "mappoint" will
368
- * return GeoJSON points and multipoints.
383
+ * @param {string} [hType=map] The Highcharts Maps series type to prepare for.
384
+ * Setting "map" will return GeoJSON polygons and multipolygons. Setting
385
+ * "mapline" will return GeoJSON linestrings and multilinestrings.
386
+ * Setting "mappoint" will return GeoJSON points and multipoints.
369
387
  *
370
- * @return {Array<*>}
371
- * An object ready for the `mapData` option.
388
+ *
389
+ * @return {Array<*>} An object ready for the `mapData` option.
372
390
  */
373
- H.geojson = function (geojson, hType, series) {
391
+ function geojson(json, hType, series) {
374
392
  if (hType === void 0) { hType = 'map'; }
375
393
  var mapData = [];
376
- var path = [];
394
+ var geojson = json.type === 'Topology' ? topo2geo(json) : json;
377
395
  geojson.features.forEach(function (feature) {
378
- var geometry = feature.geometry || {}, type = geometry.type, coordinates = geometry.coordinates, properties = feature.properties, pointOptions;
379
- path = [];
396
+ var geometry = feature.geometry || {}, type = geometry.type, coordinates = geometry.coordinates, properties = feature.properties;
397
+ var pointOptions;
380
398
  if ((hType === 'map' || hType === 'mapbubble') &&
381
399
  (type === 'Polygon' || type === 'MultiPolygon')) {
382
400
  if (coordinates.length) {
@@ -396,11 +414,12 @@ H.geojson = function (geojson, hType, series) {
396
414
  }
397
415
  }
398
416
  if (pointOptions) {
417
+ var name_1 = properties && (properties.name || properties.NAME);
399
418
  mapData.push(extend(pointOptions, {
400
- name: properties.name || properties.NAME,
419
+ name: typeof name_1 === 'string' ? name_1 : void 0,
401
420
  /**
402
- * In Highmaps, when data is loaded from GeoJSON, the GeoJSON
403
- * item's properies are copied over here.
421
+ * In Highcharts Maps, when data is loaded from GeoJSON, the
422
+ * GeoJSON item's properies are copied over here.
404
423
  *
405
424
  * @requires modules/map
406
425
  * @name Highcharts.Point#properties
@@ -417,7 +436,7 @@ H.geojson = function (geojson, hType, series) {
417
436
  series.chart.mapCreditsFull = format(series.chart.options.credits.mapTextFull, { geojson: geojson });
418
437
  }
419
438
  return mapData;
420
- };
439
+ }
421
440
  // Override addCredits to include map source by default
422
441
  wrap(Chart.prototype, 'addCredits', function (proceed, credits) {
423
442
  credits = merge(true, this.options.credits, credits);
@@ -434,3 +453,9 @@ wrap(Chart.prototype, 'addCredits', function (proceed, credits) {
434
453
  });
435
454
  }
436
455
  });
456
+ H.geojson = geojson;
457
+ var GeoJSONModule = {
458
+ geojson: geojson,
459
+ topo2geo: topo2geo
460
+ };
461
+ export default GeoJSONModule;
@@ -1209,13 +1209,27 @@ Scatter.prototype.hideClusteredData = function () {
1209
1209
  };
1210
1210
  // Override the generatePoints method by adding a reference to grouped data.
1211
1211
  Scatter.prototype.generatePoints = function () {
1212
- var series = this, chart = series.chart, mapView = chart.mapView, xAxis = series.xAxis, yAxis = series.yAxis, clusterOptions = series.options.cluster, realExtremes = series.getRealExtremes(), visibleXData = [], visibleYData = [], visibleDataIndexes = [], oldPointsState, oldDataLen, oldMarkerClusterInfo, kmeansThreshold, cropDataOffsetX, cropDataOffsetY, seriesMinX, seriesMaxX, seriesMinY, seriesMaxY, type, algorithm, clusteredData, groupedData, layoutAlgOptions, point, i;
1212
+ var series = this, chart = series.chart, mapView = chart.mapView, xAxis = series.xAxis, yAxis = series.yAxis, xData = series.xData, yData = series.yData, clusterOptions = series.options.cluster, realExtremes = series.getRealExtremes(), visibleXData = [], visibleYData = [], visibleDataIndexes = [];
1213
+ var oldPointsState, oldDataLen, oldMarkerClusterInfo, kmeansThreshold, cropDataOffsetX, cropDataOffsetY, seriesMinX, seriesMaxX, seriesMinY, seriesMaxY, type, algorithm, clusteredData, groupedData, layoutAlgOptions, point, i;
1214
+ // For map point series, we need to resolve lon, lat and geometry options
1215
+ // and project them on the plane in order to get x and y. In the regular
1216
+ // series flow, this is not done until the `translate` method because the
1217
+ // resulting [x, y] position depends on inset positions in the MapView.
1218
+ if (mapView && series.is('mappoint') && xData && yData) {
1219
+ (series.options.data || []).forEach(function (p, i) {
1220
+ var xy = series.projectPoint(p);
1221
+ if (xy) {
1222
+ xData[i] = xy.x;
1223
+ yData[i] = xy.y;
1224
+ }
1225
+ });
1226
+ }
1213
1227
  if (clusterOptions &&
1214
1228
  clusterOptions.enabled &&
1215
- series.xData &&
1216
- series.xData.length &&
1217
- series.yData &&
1218
- series.yData.length &&
1229
+ xData &&
1230
+ xData.length &&
1231
+ yData &&
1232
+ yData.length &&
1219
1233
  !chart.polar) {
1220
1234
  type = clusterOptions.layoutAlgorithm.type;
1221
1235
  layoutAlgOptions = clusterOptions.layoutAlgorithm;
@@ -1231,34 +1245,34 @@ Scatter.prototype.generatePoints = function () {
1231
1245
  cropDataOffsetX = Math.abs(p1.x - p2.x);
1232
1246
  cropDataOffsetY = Math.abs(p1.y - p2.y);
1233
1247
  // Get only visible data.
1234
- for (i = 0; i < series.xData.length; i++) {
1248
+ for (i = 0; i < xData.length; i++) {
1235
1249
  if (!series.dataMaxX) {
1236
1250
  if (!defined(seriesMaxX) ||
1237
1251
  !defined(seriesMinX) ||
1238
1252
  !defined(seriesMaxY) ||
1239
1253
  !defined(seriesMinY)) {
1240
- seriesMaxX = seriesMinX = series.xData[i];
1241
- seriesMaxY = seriesMinY = series.yData[i];
1254
+ seriesMaxX = seriesMinX = xData[i];
1255
+ seriesMaxY = seriesMinY = yData[i];
1242
1256
  }
1243
- else if (isNumber(series.yData[i]) &&
1257
+ else if (isNumber(yData[i]) &&
1244
1258
  isNumber(seriesMaxY) &&
1245
1259
  isNumber(seriesMinY)) {
1246
- seriesMaxX = Math.max(series.xData[i], seriesMaxX);
1247
- seriesMinX = Math.min(series.xData[i], seriesMinX);
1248
- seriesMaxY = Math.max(series.yData[i] || seriesMaxY, seriesMaxY);
1249
- seriesMinY = Math.min(series.yData[i] || seriesMinY, seriesMinY);
1260
+ seriesMaxX = Math.max(xData[i], seriesMaxX);
1261
+ seriesMinX = Math.min(xData[i], seriesMinX);
1262
+ seriesMaxY = Math.max(yData[i] || seriesMaxY, seriesMaxY);
1263
+ seriesMinY = Math.min(yData[i] || seriesMinY, seriesMinY);
1250
1264
  }
1251
1265
  }
1252
1266
  // Crop data to visible ones with appropriate offset to prevent
1253
1267
  // cluster size changes on the edge of the plot area.
1254
- if (series.xData[i] >= (realExtremes.minX - cropDataOffsetX) &&
1255
- series.xData[i] <= (realExtremes.maxX + cropDataOffsetX) &&
1256
- (series.yData[i] || realExtremes.minY) >=
1268
+ if (xData[i] >= (realExtremes.minX - cropDataOffsetX) &&
1269
+ xData[i] <= (realExtremes.maxX + cropDataOffsetX) &&
1270
+ (yData[i] || realExtremes.minY) >=
1257
1271
  (realExtremes.minY - cropDataOffsetY) &&
1258
- (series.yData[i] || realExtremes.maxY) <=
1272
+ (yData[i] || realExtremes.maxY) <=
1259
1273
  (realExtremes.maxY + cropDataOffsetY)) {
1260
- visibleXData.push(series.xData[i]);
1261
- visibleYData.push(series.yData[i]);
1274
+ visibleXData.push(xData[i]);
1275
+ visibleYData.push(yData[i]);
1262
1276
  visibleDataIndexes.push(i);
1263
1277
  }
1264
1278
  }
@@ -1303,7 +1317,7 @@ Scatter.prototype.generatePoints = function () {
1303
1317
  oldPointsState = {};
1304
1318
  }
1305
1319
  // Save points old state info.
1306
- oldDataLen = series.xData.length;
1320
+ oldDataLen = xData.length;
1307
1321
  oldMarkerClusterInfo = series.markerClusterInfo;
1308
1322
  if (clusteredData) {
1309
1323
  series.processedXData = clusteredData.groupedXData;