highcharts 9.3.2 → 10.1.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 (700) 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/A11yI18n.js +4 -4
  8. package/es-modules/Accessibility/Accessibility.js +1 -1
  9. package/es-modules/Accessibility/Components/ContainerComponent.js +8 -9
  10. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +14 -9
  11. package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
  12. package/es-modules/Accessibility/Components/MenuComponent.js +15 -5
  13. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
  14. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
  15. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
  16. package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
  17. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -18
  18. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +84 -33
  19. package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
  20. package/es-modules/Accessibility/FocusBorder.js +6 -5
  21. package/es-modules/Accessibility/HighContrastMode.js +2 -2
  22. package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
  23. package/es-modules/Accessibility/Options/LangOptions.js +36 -31
  24. package/es-modules/Accessibility/Options/Options.js +66 -3
  25. package/es-modules/Accessibility/ProxyElement.js +14 -6
  26. package/es-modules/Accessibility/ProxyProvider.js +10 -2
  27. package/es-modules/Accessibility/Utils/ChartUtilities.js +9 -4
  28. package/es-modules/Core/Axis/Axis.js +180 -73
  29. package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
  30. package/es-modules/Core/Axis/GridAxis.js +15 -11
  31. package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
  32. package/es-modules/Core/Axis/OrdinalAxis.js +3 -2
  33. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +1 -1
  34. package/es-modules/Core/Axis/StackingAxis.js +0 -1
  35. package/es-modules/Core/Axis/Tick.js +2 -2
  36. package/es-modules/Core/Axis/TreeGridTick.js +11 -0
  37. package/es-modules/Core/Chart/Chart.js +21 -3
  38. package/es-modules/Core/Chart/Chart3D.js +1 -11
  39. package/es-modules/Core/Chart/ChartDefaults.js +43 -11
  40. package/es-modules/Core/Chart/MapChart.js +1 -6
  41. package/es-modules/Core/Chart/StockChart.js +1 -1
  42. package/es-modules/Core/DefaultOptions.js +8 -4
  43. package/es-modules/Core/Geometry/PolygonClip.js +84 -0
  44. package/es-modules/Core/Globals.js +4 -18
  45. package/es-modules/Core/HttpUtilities.js +13 -8
  46. package/es-modules/Core/Legend/Legend.js +11 -9
  47. package/es-modules/Core/Navigator.js +10 -7
  48. package/es-modules/Core/Pointer.js +15 -11
  49. package/es-modules/Core/Renderer/HTML/AST.js +68 -8
  50. package/es-modules/Core/Renderer/SVG/SVGElement.js +47 -63
  51. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
  52. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +31 -28
  53. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
  54. package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
  55. package/es-modules/Core/Scrollbar.js +9 -5
  56. package/es-modules/Core/Series/DataLabel.js +65 -36
  57. package/es-modules/Core/Series/Point.js +2 -2
  58. package/es-modules/Core/Series/Series.js +52 -22
  59. package/es-modules/Core/Series/SeriesDefaults.js +4 -1
  60. package/es-modules/Core/Tooltip.js +14 -31
  61. package/es-modules/Core/Utilities.js +29 -29
  62. package/es-modules/Extensions/Annotations/Annotations.js +9 -2
  63. package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
  64. package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
  65. package/es-modules/Extensions/Annotations/NavigationBindings.js +9 -1
  66. package/es-modules/Extensions/Annotations/Popup.js +1 -1
  67. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
  68. package/es-modules/Extensions/Boost/BoostInit.js +6 -1
  69. package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
  70. package/es-modules/Extensions/Boost/Boostables.js +1 -0
  71. package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
  72. package/es-modules/Extensions/Boost/WGLShader.js +4 -3
  73. package/es-modules/Extensions/Breadcrumbs.js +873 -0
  74. package/es-modules/Extensions/Data.js +26 -14
  75. package/es-modules/Extensions/DataGrouping.js +8 -3
  76. package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
  77. package/es-modules/Extensions/DraggablePoints.js +9 -7
  78. package/es-modules/Extensions/Drilldown.js +150 -95
  79. package/es-modules/Extensions/ExportData.js +1 -2
  80. package/es-modules/Extensions/Exporting/Exporting.js +31 -20
  81. package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
  82. package/es-modules/Extensions/FullScreen.js +121 -54
  83. package/es-modules/Extensions/GeoJSON.js +151 -125
  84. package/es-modules/Extensions/MarkerClusters.js +34 -20
  85. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
  86. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  87. package/es-modules/Extensions/Oldie/Oldie.js +1 -1
  88. package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
  89. package/es-modules/Extensions/Polar.js +4 -1
  90. package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
  91. package/es-modules/Extensions/Stacking.js +4 -3
  92. package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
  93. package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
  94. package/es-modules/Maps/MapNavigation.js +50 -13
  95. package/es-modules/Maps/MapPointer.js +16 -0
  96. package/es-modules/Maps/MapUtilities.js +56 -0
  97. package/es-modules/Maps/MapView.js +611 -136
  98. package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
  99. package/es-modules/Maps/MapViewOptionsDefault.js +60 -20
  100. package/es-modules/Maps/Projection.js +169 -77
  101. package/es-modules/Maps/Projections/EqualEarth.js +15 -6
  102. package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
  103. package/es-modules/Maps/Projections/Miller.js +23 -10
  104. package/es-modules/Maps/Projections/Orthographic.js +21 -10
  105. package/es-modules/Maps/Projections/WebMercator.js +25 -13
  106. package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
  107. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +589 -0
  108. package/es-modules/Series/CenteredUtilities.js +6 -1
  109. package/es-modules/Series/Column/ColumnSeries.js +4 -3
  110. package/es-modules/Series/DataModifyComposition.js +1 -0
  111. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
  112. package/es-modules/Series/DrawPointComposition.js +7 -4
  113. package/es-modules/Series/Flags/FlagsSeries.js +7 -12
  114. package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
  115. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -20
  116. package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
  117. package/es-modules/Series/Map/MapPoint.js +24 -1
  118. package/es-modules/Series/Map/MapSeries.js +206 -169
  119. package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
  120. package/es-modules/Series/MapBubble/MapBubbleSeries.js +58 -1
  121. package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
  122. package/es-modules/Series/MapPoint/MapPointSeries.js +40 -14
  123. package/es-modules/Series/NodesComposition.js +60 -13
  124. package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
  125. package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
  126. package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
  127. package/es-modules/Series/Pie/PieDataLabel.js +3 -1
  128. package/es-modules/Series/Pie/PiePoint.js +12 -5
  129. package/es-modules/Series/Pie/PieSeries.js +12 -1
  130. package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
  131. package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
  132. package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
  133. package/es-modules/Series/Sankey/SankeySeries.js +13 -128
  134. package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
  135. package/es-modules/Series/Sunburst/SunburstSeries.js +14 -3
  136. package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
  137. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
  138. package/es-modules/Series/Wordcloud/WordcloudSeries.js +4 -4
  139. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
  140. package/es-modules/Stock/StockToolsBindings.js +31 -24
  141. package/es-modules/Stock/StockToolsGui.js +1 -1
  142. package/es-modules/masters/highcharts-3d.src.js +1 -1
  143. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  144. package/es-modules/masters/highcharts-more.src.js +1 -1
  145. package/es-modules/masters/highcharts.src.js +1 -1
  146. package/es-modules/masters/highmaps.src.js +1 -1
  147. package/es-modules/masters/highstock.src.js +1 -1
  148. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  149. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  150. package/es-modules/masters/indicators/ao.src.js +1 -1
  151. package/es-modules/masters/indicators/apo.src.js +1 -1
  152. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  153. package/es-modules/masters/indicators/aroon.src.js +1 -1
  154. package/es-modules/masters/indicators/atr.src.js +1 -1
  155. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  156. package/es-modules/masters/indicators/cci.src.js +1 -1
  157. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  158. package/es-modules/masters/indicators/cmf.src.js +1 -1
  159. package/es-modules/masters/indicators/cmo.src.js +1 -1
  160. package/es-modules/masters/indicators/dema.src.js +1 -1
  161. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  162. package/es-modules/masters/indicators/dmi.src.js +1 -1
  163. package/es-modules/masters/indicators/dpo.src.js +1 -1
  164. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  165. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  166. package/es-modules/masters/indicators/indicators.src.js +1 -1
  167. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  168. package/es-modules/masters/indicators/klinger.src.js +1 -1
  169. package/es-modules/masters/indicators/macd.src.js +1 -1
  170. package/es-modules/masters/indicators/mfi.src.js +1 -1
  171. package/es-modules/masters/indicators/momentum.src.js +1 -1
  172. package/es-modules/masters/indicators/natr.src.js +1 -1
  173. package/es-modules/masters/indicators/obv.src.js +1 -1
  174. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  175. package/es-modules/masters/indicators/ppo.src.js +1 -1
  176. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  177. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  178. package/es-modules/masters/indicators/psar.src.js +1 -1
  179. package/es-modules/masters/indicators/regressions.src.js +1 -1
  180. package/es-modules/masters/indicators/roc.src.js +1 -1
  181. package/es-modules/masters/indicators/rsi.src.js +1 -1
  182. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  183. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  184. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  185. package/es-modules/masters/indicators/tema.src.js +1 -1
  186. package/es-modules/masters/indicators/trendline.src.js +1 -1
  187. package/es-modules/masters/indicators/trix.src.js +1 -1
  188. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  189. package/es-modules/masters/indicators/vwap.src.js +1 -1
  190. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  191. package/es-modules/masters/indicators/wma.src.js +1 -1
  192. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  193. package/es-modules/masters/modules/accessibility.src.js +1 -1
  194. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  195. package/es-modules/masters/modules/annotations.src.js +1 -1
  196. package/es-modules/masters/modules/arc-diagram.src.js +14 -0
  197. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  198. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  199. package/es-modules/masters/modules/boost.src.js +1 -1
  200. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  201. package/es-modules/masters/modules/bullet.src.js +1 -1
  202. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  203. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  204. package/es-modules/masters/modules/cylinder.src.js +1 -1
  205. package/es-modules/masters/modules/data.src.js +1 -1
  206. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  207. package/es-modules/masters/modules/debugger.src.js +1 -1
  208. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  209. package/es-modules/masters/modules/dotplot.src.js +1 -1
  210. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  211. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  212. package/es-modules/masters/modules/drilldown.src.js +2 -1
  213. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  214. package/es-modules/masters/modules/export-data.src.js +1 -1
  215. package/es-modules/masters/modules/exporting.src.js +1 -1
  216. package/es-modules/masters/modules/full-screen.src.js +1 -1
  217. package/es-modules/masters/modules/funnel.src.js +1 -1
  218. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  219. package/es-modules/masters/modules/gantt.src.js +1 -1
  220. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  221. package/es-modules/masters/modules/heatmap.src.js +1 -1
  222. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  223. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  224. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  225. package/es-modules/masters/modules/item-series.src.js +1 -1
  226. package/es-modules/masters/modules/lollipop.src.js +1 -1
  227. package/es-modules/masters/modules/map.src.js +5 -1
  228. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  229. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  230. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  231. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  232. package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
  233. package/es-modules/masters/modules/oldie.src.js +1 -1
  234. package/es-modules/masters/modules/organization.src.js +1 -1
  235. package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
  236. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  237. package/es-modules/masters/modules/pareto.src.js +1 -1
  238. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  239. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  240. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  241. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  242. package/es-modules/masters/modules/sankey.src.js +1 -1
  243. package/es-modules/masters/modules/series-label.src.js +1 -1
  244. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  245. package/es-modules/masters/modules/sonification.src.js +1 -1
  246. package/es-modules/masters/modules/static-scale.src.js +1 -1
  247. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  248. package/es-modules/masters/modules/stock.src.js +1 -1
  249. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  250. package/es-modules/masters/modules/sunburst.src.js +1 -1
  251. package/es-modules/masters/modules/tilemap.src.js +1 -1
  252. package/es-modules/masters/modules/timeline.src.js +1 -1
  253. package/es-modules/masters/modules/treegrid.src.js +1 -1
  254. package/es-modules/masters/modules/treemap.src.js +5 -1
  255. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  256. package/es-modules/masters/modules/variwide.src.js +1 -1
  257. package/es-modules/masters/modules/vector.src.js +1 -1
  258. package/es-modules/masters/modules/venn.src.js +1 -1
  259. package/es-modules/masters/modules/windbarb.src.js +1 -1
  260. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  261. package/es-modules/masters/modules/xrange.src.js +1 -1
  262. package/es-modules/masters/themes/avocado.src.js +1 -1
  263. package/es-modules/masters/themes/brand-dark.src.js +1 -1
  264. package/es-modules/masters/themes/brand-light.src.js +1 -1
  265. package/es-modules/masters/themes/dark-blue.src.js +1 -1
  266. package/es-modules/masters/themes/dark-green.src.js +1 -1
  267. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  268. package/es-modules/masters/themes/gray.src.js +1 -1
  269. package/es-modules/masters/themes/grid-light.src.js +1 -1
  270. package/es-modules/masters/themes/grid.src.js +1 -1
  271. package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  272. package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  273. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  274. package/es-modules/masters/themes/skies.src.js +1 -1
  275. package/es-modules/masters/themes/sunset.src.js +1 -1
  276. package/highcharts-3d.js +99 -98
  277. package/highcharts-3d.js.map +1 -1
  278. package/highcharts-3d.src.js +51 -21
  279. package/highcharts-gantt.js +808 -800
  280. package/highcharts-gantt.js.map +1 -1
  281. package/highcharts-gantt.src.js +781 -426
  282. package/highcharts-more.js +195 -194
  283. package/highcharts-more.js.map +1 -1
  284. package/highcharts-more.src.js +18 -4
  285. package/highcharts.d.ts +3224 -542
  286. package/highcharts.js +592 -584
  287. package/highcharts.js.map +1 -1
  288. package/highcharts.src.d.ts +3224 -542
  289. package/highcharts.src.js +732 -400
  290. package/highmaps.js +760 -728
  291. package/highmaps.js.map +1 -1
  292. package/highmaps.src.js +3840 -2189
  293. package/highstock.js +793 -786
  294. package/highstock.js.map +1 -1
  295. package/highstock.src.js +783 -432
  296. package/indicators/acceleration-bands.js +12 -11
  297. package/indicators/acceleration-bands.js.map +1 -1
  298. package/indicators/acceleration-bands.src.js +11 -2
  299. package/indicators/accumulation-distribution.js +5 -5
  300. package/indicators/accumulation-distribution.js.map +1 -1
  301. package/indicators/accumulation-distribution.src.js +11 -2
  302. package/indicators/ao.js +6 -6
  303. package/indicators/ao.js.map +1 -1
  304. package/indicators/ao.src.js +11 -2
  305. package/indicators/apo.js +5 -5
  306. package/indicators/apo.js.map +1 -1
  307. package/indicators/apo.src.js +11 -2
  308. package/indicators/aroon-oscillator.js +10 -10
  309. package/indicators/aroon-oscillator.js.map +1 -1
  310. package/indicators/aroon-oscillator.src.js +11 -2
  311. package/indicators/aroon.js +11 -11
  312. package/indicators/aroon.js.map +1 -1
  313. package/indicators/aroon.src.js +11 -2
  314. package/indicators/atr.js +5 -5
  315. package/indicators/atr.js.map +1 -1
  316. package/indicators/atr.src.js +11 -2
  317. package/indicators/bollinger-bands.js +12 -12
  318. package/indicators/bollinger-bands.js.map +1 -1
  319. package/indicators/bollinger-bands.src.js +11 -2
  320. package/indicators/cci.js +5 -5
  321. package/indicators/cci.js.map +1 -1
  322. package/indicators/cci.src.js +11 -2
  323. package/indicators/chaikin.js +8 -8
  324. package/indicators/chaikin.js.map +1 -1
  325. package/indicators/chaikin.src.js +11 -2
  326. package/indicators/cmf.js +6 -6
  327. package/indicators/cmf.js.map +1 -1
  328. package/indicators/cmf.src.js +11 -2
  329. package/indicators/cmo.js +5 -5
  330. package/indicators/cmo.js.map +1 -1
  331. package/indicators/cmo.src.js +11 -2
  332. package/indicators/dema.js +5 -5
  333. package/indicators/dema.js.map +1 -1
  334. package/indicators/dema.src.js +11 -2
  335. package/indicators/disparity-index.js +6 -6
  336. package/indicators/disparity-index.js.map +1 -1
  337. package/indicators/disparity-index.src.js +11 -2
  338. package/indicators/dmi.js +12 -12
  339. package/indicators/dmi.js.map +1 -1
  340. package/indicators/dmi.src.js +11 -2
  341. package/indicators/dpo.js +5 -5
  342. package/indicators/dpo.js.map +1 -1
  343. package/indicators/dpo.src.js +11 -2
  344. package/indicators/ema.js +2 -1
  345. package/indicators/ema.js.map +1 -1
  346. package/indicators/ema.src.js +10 -1
  347. package/indicators/ichimoku-kinko-hyo.js +16 -16
  348. package/indicators/ichimoku-kinko-hyo.js.map +1 -1
  349. package/indicators/ichimoku-kinko-hyo.src.js +11 -2
  350. package/indicators/indicators-all.js +195 -194
  351. package/indicators/indicators-all.js.map +1 -1
  352. package/indicators/indicators-all.src.js +21 -5
  353. package/indicators/indicators.js +13 -12
  354. package/indicators/indicators.js.map +1 -1
  355. package/indicators/indicators.src.js +21 -5
  356. package/indicators/keltner-channels.js +12 -11
  357. package/indicators/keltner-channels.js.map +1 -1
  358. package/indicators/keltner-channels.src.js +11 -2
  359. package/indicators/klinger.js +13 -13
  360. package/indicators/klinger.js.map +1 -1
  361. package/indicators/klinger.src.js +11 -2
  362. package/indicators/macd.js +12 -11
  363. package/indicators/macd.js.map +1 -1
  364. package/indicators/macd.src.js +11 -2
  365. package/indicators/mfi.js +6 -6
  366. package/indicators/mfi.js.map +1 -1
  367. package/indicators/mfi.src.js +11 -2
  368. package/indicators/momentum.js +5 -5
  369. package/indicators/momentum.js.map +1 -1
  370. package/indicators/momentum.src.js +11 -2
  371. package/indicators/natr.js +5 -4
  372. package/indicators/natr.js.map +1 -1
  373. package/indicators/natr.src.js +11 -2
  374. package/indicators/obv.js +5 -5
  375. package/indicators/obv.js.map +1 -1
  376. package/indicators/obv.src.js +11 -2
  377. package/indicators/pivot-points.js +11 -11
  378. package/indicators/pivot-points.js.map +1 -1
  379. package/indicators/pivot-points.src.js +11 -2
  380. package/indicators/ppo.js +5 -5
  381. package/indicators/ppo.js.map +1 -1
  382. package/indicators/ppo.src.js +11 -2
  383. package/indicators/price-channel.js +11 -11
  384. package/indicators/price-channel.js.map +1 -1
  385. package/indicators/price-channel.src.js +11 -2
  386. package/indicators/price-envelopes.js +8 -8
  387. package/indicators/price-envelopes.js.map +1 -1
  388. package/indicators/price-envelopes.src.js +11 -2
  389. package/indicators/psar.js +7 -6
  390. package/indicators/psar.js.map +1 -1
  391. package/indicators/psar.src.js +11 -2
  392. package/indicators/regressions.js +12 -12
  393. package/indicators/regressions.js.map +1 -1
  394. package/indicators/regressions.src.js +11 -2
  395. package/indicators/roc.js +5 -5
  396. package/indicators/roc.js.map +1 -1
  397. package/indicators/roc.src.js +11 -2
  398. package/indicators/rsi.js +6 -5
  399. package/indicators/rsi.js.map +1 -1
  400. package/indicators/rsi.src.js +11 -2
  401. package/indicators/slow-stochastic.js +5 -5
  402. package/indicators/slow-stochastic.js.map +1 -1
  403. package/indicators/slow-stochastic.src.js +11 -2
  404. package/indicators/stochastic.js +12 -12
  405. package/indicators/stochastic.js.map +1 -1
  406. package/indicators/stochastic.src.js +11 -2
  407. package/indicators/supertrend.js +10 -10
  408. package/indicators/supertrend.js.map +1 -1
  409. package/indicators/supertrend.src.js +11 -2
  410. package/indicators/tema.js +6 -6
  411. package/indicators/tema.js.map +1 -1
  412. package/indicators/tema.src.js +11 -2
  413. package/indicators/trendline.js +5 -5
  414. package/indicators/trendline.js.map +1 -1
  415. package/indicators/trendline.src.js +11 -2
  416. package/indicators/trix.js +4 -4
  417. package/indicators/trix.js.map +1 -1
  418. package/indicators/trix.src.js +11 -2
  419. package/indicators/volume-by-price.js +17 -17
  420. package/indicators/volume-by-price.js.map +1 -1
  421. package/indicators/volume-by-price.src.js +11 -2
  422. package/indicators/vwap.js +5 -5
  423. package/indicators/vwap.js.map +1 -1
  424. package/indicators/vwap.src.js +11 -2
  425. package/indicators/williams-r.js +6 -5
  426. package/indicators/williams-r.js.map +1 -1
  427. package/indicators/williams-r.src.js +11 -2
  428. package/indicators/wma.js +5 -5
  429. package/indicators/wma.js.map +1 -1
  430. package/indicators/wma.src.js +11 -2
  431. package/indicators/zigzag.js +6 -6
  432. package/indicators/zigzag.js.map +1 -1
  433. package/indicators/zigzag.src.js +11 -2
  434. package/lib/jspdf.js +299 -184
  435. package/lib/jspdf.src.js +25266 -18067
  436. package/lib/svg2pdf.js +35 -31
  437. package/lib/svg2pdf.src.js +5721 -4179
  438. package/modules/accessibility.js +245 -240
  439. package/modules/accessibility.js.map +1 -1
  440. package/modules/accessibility.src.js +510 -283
  441. package/modules/annotations-advanced.js +144 -144
  442. package/modules/annotations-advanced.js.map +1 -1
  443. package/modules/annotations-advanced.src.js +37 -11
  444. package/modules/annotations.js +79 -79
  445. package/modules/annotations.js.map +1 -1
  446. package/modules/annotations.src.js +32 -8
  447. package/modules/arc-diagram.js +25 -0
  448. package/modules/arc-diagram.js.map +1 -0
  449. package/modules/arc-diagram.src.js +778 -0
  450. package/modules/arrow-symbols.js +4 -3
  451. package/modules/arrow-symbols.js.map +1 -1
  452. package/modules/arrow-symbols.src.js +11 -2
  453. package/modules/boost-canvas.js +15 -15
  454. package/modules/boost-canvas.js.map +1 -1
  455. package/modules/boost-canvas.src.js +11 -2
  456. package/modules/boost.js +80 -79
  457. package/modules/boost.js.map +1 -1
  458. package/modules/boost.src.js +71 -43
  459. package/modules/broken-axis.js +13 -13
  460. package/modules/broken-axis.js.map +1 -1
  461. package/modules/broken-axis.src.js +11 -2
  462. package/modules/bullet.js +9 -9
  463. package/modules/bullet.js.map +1 -1
  464. package/modules/bullet.src.js +11 -2
  465. package/modules/coloraxis.js +24 -24
  466. package/modules/coloraxis.js.map +1 -1
  467. package/modules/coloraxis.src.js +33 -7
  468. package/modules/current-date-indicator.js +5 -4
  469. package/modules/current-date-indicator.js.map +1 -1
  470. package/modules/current-date-indicator.src.js +11 -2
  471. package/modules/cylinder.js +11 -11
  472. package/modules/cylinder.js.map +1 -1
  473. package/modules/cylinder.src.js +11 -2
  474. package/modules/data.js +34 -33
  475. package/modules/data.js.map +1 -1
  476. package/modules/data.src.js +59 -32
  477. package/modules/datagrouping.js +21 -20
  478. package/modules/datagrouping.js.map +1 -1
  479. package/modules/datagrouping.src.js +19 -5
  480. package/modules/debugger.js +8 -7
  481. package/modules/debugger.js.map +1 -1
  482. package/modules/debugger.src.js +15 -2
  483. package/modules/dependency-wheel.js +12 -11
  484. package/modules/dependency-wheel.js.map +1 -1
  485. package/modules/dependency-wheel.src.js +14 -5
  486. package/modules/dotplot.js +6 -6
  487. package/modules/dotplot.js.map +1 -1
  488. package/modules/dotplot.src.js +11 -2
  489. package/modules/drag-panes.js +10 -10
  490. package/modules/drag-panes.js.map +1 -1
  491. package/modules/drag-panes.src.js +11 -2
  492. package/modules/draggable-points.js +35 -34
  493. package/modules/draggable-points.js.map +1 -1
  494. package/modules/draggable-points.src.js +20 -9
  495. package/modules/drilldown.d.ts +19 -0
  496. package/modules/drilldown.js +36 -25
  497. package/modules/drilldown.js.map +1 -1
  498. package/modules/drilldown.src.d.ts +19 -0
  499. package/modules/drilldown.src.js +1091 -106
  500. package/modules/dumbbell.js +17 -17
  501. package/modules/dumbbell.js.map +1 -1
  502. package/modules/dumbbell.src.js +11 -2
  503. package/modules/export-data.js +21 -20
  504. package/modules/export-data.js.map +1 -1
  505. package/modules/export-data.src.js +12 -4
  506. package/modules/exporting.js +39 -39
  507. package/modules/exporting.js.map +1 -1
  508. package/modules/exporting.src.js +227 -92
  509. package/modules/full-screen.js +8 -7
  510. package/modules/full-screen.js.map +1 -1
  511. package/modules/full-screen.src.js +135 -58
  512. package/modules/funnel.js +12 -12
  513. package/modules/funnel.js.map +1 -1
  514. package/modules/funnel.src.js +11 -2
  515. package/modules/funnel3d.js +21 -21
  516. package/modules/funnel3d.js.map +1 -1
  517. package/modules/funnel3d.src.js +11 -2
  518. package/modules/gantt.js +216 -215
  519. package/modules/gantt.js.map +1 -1
  520. package/modules/gantt.src.js +60 -28
  521. package/modules/grid-axis.js +23 -23
  522. package/modules/grid-axis.js.map +1 -1
  523. package/modules/grid-axis.src.js +27 -13
  524. package/modules/heatmap.js +40 -39
  525. package/modules/heatmap.js.map +1 -1
  526. package/modules/heatmap.src.js +46 -27
  527. package/modules/heikinashi.js +8 -8
  528. package/modules/heikinashi.js.map +1 -1
  529. package/modules/heikinashi.src.js +11 -2
  530. package/modules/histogram-bellcurve.js +13 -13
  531. package/modules/histogram-bellcurve.js.map +1 -1
  532. package/modules/histogram-bellcurve.src.js +11 -2
  533. package/modules/hollowcandlestick.js +9 -9
  534. package/modules/hollowcandlestick.js.map +1 -1
  535. package/modules/hollowcandlestick.src.js +11 -2
  536. package/modules/item-series.js +12 -12
  537. package/modules/item-series.js.map +1 -1
  538. package/modules/item-series.src.js +11 -2
  539. package/modules/lollipop.js +7 -7
  540. package/modules/lollipop.js.map +1 -1
  541. package/modules/lollipop.src.js +12 -3
  542. package/modules/map.d.ts +80 -43
  543. package/modules/map.js +169 -144
  544. package/modules/map.js.map +1 -1
  545. package/modules/map.src.d.ts +80 -43
  546. package/modules/map.src.js +8024 -6696
  547. package/modules/marker-clusters.js +36 -36
  548. package/modules/marker-clusters.js.map +1 -1
  549. package/modules/marker-clusters.src.js +47 -23
  550. package/modules/networkgraph.d.ts +5 -0
  551. package/modules/networkgraph.js +49 -48
  552. package/modules/networkgraph.js.map +1 -1
  553. package/modules/networkgraph.src.d.ts +5 -0
  554. package/modules/networkgraph.src.js +77 -15
  555. package/modules/no-data-to-display.js +5 -5
  556. package/modules/no-data-to-display.js.map +1 -1
  557. package/modules/no-data-to-display.src.js +11 -2
  558. package/modules/offline-exporting.js +20 -18
  559. package/modules/offline-exporting.js.map +1 -1
  560. package/modules/offline-exporting.src.js +126 -25
  561. package/modules/oldie-polyfills.js +7 -7
  562. package/modules/oldie-polyfills.js.map +1 -1
  563. package/modules/oldie-polyfills.src.js +11 -2
  564. package/modules/oldie.js +30 -30
  565. package/modules/oldie.js.map +1 -1
  566. package/modules/oldie.src.js +12 -3
  567. package/modules/organization.js +16 -14
  568. package/modules/organization.js.map +1 -1
  569. package/modules/organization.src.js +166 -32
  570. package/modules/overlapping-datalabels.js +3 -2
  571. package/modules/overlapping-datalabels.js.map +1 -1
  572. package/modules/overlapping-datalabels.src.js +11 -2
  573. package/modules/parallel-coordinates.js +11 -11
  574. package/modules/parallel-coordinates.js.map +1 -1
  575. package/modules/parallel-coordinates.src.js +11 -2
  576. package/modules/pareto.js +7 -7
  577. package/modules/pareto.js.map +1 -1
  578. package/modules/pareto.src.js +11 -2
  579. package/modules/pathfinder.js +31 -31
  580. package/modules/pathfinder.js.map +1 -1
  581. package/modules/pathfinder.src.js +11 -2
  582. package/modules/pattern-fill.js +14 -14
  583. package/modules/pattern-fill.js.map +1 -1
  584. package/modules/pattern-fill.src.js +11 -2
  585. package/modules/price-indicator.js +5 -5
  586. package/modules/price-indicator.js.map +1 -1
  587. package/modules/price-indicator.src.js +11 -2
  588. package/modules/pyramid3d.js +4 -4
  589. package/modules/pyramid3d.js.map +1 -1
  590. package/modules/pyramid3d.src.js +11 -2
  591. package/modules/sankey.d.ts +5 -0
  592. package/modules/sankey.js +32 -29
  593. package/modules/sankey.js.map +1 -1
  594. package/modules/sankey.src.d.ts +5 -0
  595. package/modules/sankey.src.js +341 -157
  596. package/modules/series-label.js +18 -17
  597. package/modules/series-label.js.map +1 -1
  598. package/modules/series-label.src.js +11 -2
  599. package/modules/solid-gauge.js +10 -10
  600. package/modules/solid-gauge.js.map +1 -1
  601. package/modules/solid-gauge.src.js +11 -2
  602. package/modules/sonification.js +59 -59
  603. package/modules/sonification.js.map +1 -1
  604. package/modules/sonification.src.js +11 -2
  605. package/modules/static-scale.js +5 -4
  606. package/modules/static-scale.js.map +1 -1
  607. package/modules/static-scale.src.js +11 -2
  608. package/modules/stock-tools.js +145 -145
  609. package/modules/stock-tools.js.map +1 -1
  610. package/modules/stock-tools.src.js +64 -32
  611. package/modules/stock.js +204 -204
  612. package/modules/stock.js.map +1 -1
  613. package/modules/stock.src.js +62 -34
  614. package/modules/streamgraph.js +5 -4
  615. package/modules/streamgraph.js.map +1 -1
  616. package/modules/streamgraph.src.js +11 -2
  617. package/modules/sunburst.d.ts +3 -0
  618. package/modules/sunburst.js +73 -60
  619. package/modules/sunburst.js.map +1 -1
  620. package/modules/sunburst.src.d.ts +3 -0
  621. package/modules/sunburst.src.js +1048 -97
  622. package/modules/tilemap.js +17 -17
  623. package/modules/tilemap.js.map +1 -1
  624. package/modules/tilemap.src.js +11 -2
  625. package/modules/timeline.js +18 -18
  626. package/modules/timeline.js.map +1 -1
  627. package/modules/timeline.src.js +11 -2
  628. package/modules/treegrid.js +57 -56
  629. package/modules/treegrid.js.map +1 -1
  630. package/modules/treegrid.src.js +38 -13
  631. package/modules/treemap.d.ts +3 -0
  632. package/modules/treemap.js +53 -41
  633. package/modules/treemap.js.map +1 -1
  634. package/modules/treemap.src.d.ts +3 -0
  635. package/modules/treemap.src.js +1037 -95
  636. package/modules/variable-pie.js +9 -9
  637. package/modules/variable-pie.js.map +1 -1
  638. package/modules/variable-pie.src.js +11 -2
  639. package/modules/variwide.js +12 -12
  640. package/modules/variwide.js.map +1 -1
  641. package/modules/variwide.src.js +11 -2
  642. package/modules/vector.js +8 -7
  643. package/modules/vector.js.map +1 -1
  644. package/modules/vector.src.js +11 -2
  645. package/modules/venn.js +31 -31
  646. package/modules/venn.js.map +1 -1
  647. package/modules/venn.src.js +18 -6
  648. package/modules/windbarb.js +15 -15
  649. package/modules/windbarb.js.map +1 -1
  650. package/modules/windbarb.src.js +11 -2
  651. package/modules/wordcloud.js +24 -23
  652. package/modules/wordcloud.js.map +1 -1
  653. package/modules/wordcloud.src.js +22 -10
  654. package/modules/xrange.js +16 -16
  655. package/modules/xrange.js.map +1 -1
  656. package/modules/xrange.src.js +11 -2
  657. package/package.json +1 -1
  658. package/themes/avocado.js +4 -3
  659. package/themes/avocado.js.map +1 -1
  660. package/themes/avocado.src.js +11 -2
  661. package/themes/brand-dark.js +9 -8
  662. package/themes/brand-dark.js.map +1 -1
  663. package/themes/brand-dark.src.js +11 -2
  664. package/themes/brand-light.js +8 -8
  665. package/themes/brand-light.js.map +1 -1
  666. package/themes/brand-light.src.js +11 -2
  667. package/themes/dark-blue.js +9 -8
  668. package/themes/dark-blue.js.map +1 -1
  669. package/themes/dark-blue.src.js +11 -2
  670. package/themes/dark-green.js +9 -8
  671. package/themes/dark-green.js.map +1 -1
  672. package/themes/dark-green.src.js +11 -2
  673. package/themes/dark-unica.js +8 -7
  674. package/themes/dark-unica.js.map +1 -1
  675. package/themes/dark-unica.src.js +11 -2
  676. package/themes/gray.js +9 -8
  677. package/themes/gray.js.map +1 -1
  678. package/themes/gray.src.js +11 -2
  679. package/themes/grid-light.js +5 -4
  680. package/themes/grid-light.js.map +1 -1
  681. package/themes/grid-light.src.js +11 -2
  682. package/themes/grid.js +5 -5
  683. package/themes/grid.js.map +1 -1
  684. package/themes/grid.src.js +11 -2
  685. package/themes/high-contrast-dark.js +7 -7
  686. package/themes/high-contrast-dark.js.map +1 -1
  687. package/themes/high-contrast-dark.src.js +21 -12
  688. package/themes/high-contrast-light.js +3 -3
  689. package/themes/high-contrast-light.js.map +1 -1
  690. package/themes/high-contrast-light.src.js +21 -12
  691. package/themes/sand-signika.js +5 -5
  692. package/themes/sand-signika.js.map +1 -1
  693. package/themes/sand-signika.src.js +11 -2
  694. package/themes/skies.js +5 -5
  695. package/themes/skies.js.map +1 -1
  696. package/themes/skies.src.js +11 -2
  697. package/themes/sunset.js +3 -3
  698. package/themes/sunset.js.map +1 -1
  699. package/themes/sunset.src.js +11 -2
  700. package/es-modules/Maps/ProjectionDefinition.js +0 -9
@@ -29,7 +29,7 @@ import H from '../../Core/Globals.js';
29
29
  var noop = H.noop;
30
30
  import LegendSymbol from '../../Core/Legend/LegendSymbol.js';
31
31
  import MapChart from '../../Core/Chart/MapChart.js';
32
- var maps = MapChart.maps, splitPath = MapChart.splitPath;
32
+ var splitPath = MapChart.splitPath;
33
33
  import MapPoint from './MapPoint.js';
34
34
  import MapView from '../../Maps/MapView.js';
35
35
  import Series from '../../Core/Series/Series.js';
@@ -39,7 +39,7 @@ var
39
39
  _a = SeriesRegistry.seriesTypes, ColumnSeries = _a.column, ScatterSeries = _a.scatter;
40
40
  import SVGRenderer from '../../Core/Renderer/SVG/SVGRenderer.js';
41
41
  import U from '../../Core/Utilities.js';
42
- var extend = U.extend, fireEvent = U.fireEvent, getNestedProperty = U.getNestedProperty, isArray = U.isArray, isNumber = U.isNumber, merge = U.merge, objectEach = U.objectEach, pick = U.pick, splat = U.splat;
42
+ var extend = U.extend, find = U.find, fireEvent = U.fireEvent, getNestedProperty = U.getNestedProperty, isArray = U.isArray, isNumber = U.isNumber, isObject = U.isObject, merge = U.merge, objectEach = U.objectEach, pick = U.pick, splat = U.splat;
43
43
  /* *
44
44
  *
45
45
  * Class
@@ -67,7 +67,7 @@ var MapSeries = /** @class */ (function (_super) {
67
67
  _this.joinBy = void 0;
68
68
  _this.options = void 0;
69
69
  _this.points = void 0;
70
- _this.transformGroup = void 0;
70
+ _this.processedData = [];
71
71
  return _this;
72
72
  /* eslint-enable valid-jsdoc */
73
73
  }
@@ -134,7 +134,10 @@ var MapSeries = /** @class */ (function (_super) {
134
134
  scaleX: 1,
135
135
  scaleY: 1,
136
136
  opacity: 1
137
- });
137
+ }, this.chart.options.drilldown.animation);
138
+ if (chart.drilldown) {
139
+ chart.drilldown.fadeInGroup(this.dataLabelsGroup);
140
+ }
138
141
  }
139
142
  }
140
143
  };
@@ -166,6 +169,7 @@ var MapSeries = /** @class */ (function (_super) {
166
169
  MapSeries.prototype.clearBounds = function () {
167
170
  this.points.forEach(function (point) {
168
171
  delete point.bounds;
172
+ delete point.insetIndex;
169
173
  delete point.projectedPath;
170
174
  });
171
175
  delete this.bounds;
@@ -199,29 +203,43 @@ var MapSeries = /** @class */ (function (_super) {
199
203
  */
200
204
  MapSeries.prototype.drawPoints = function () {
201
205
  var _this = this;
202
- var _a = this, chart = _a.chart, group = _a.group, svgTransform = _a.svgTransform;
206
+ var _a = this, chart = _a.chart, group = _a.group, _b = _a.transformGroups, transformGroups = _b === void 0 ? [] : _b;
203
207
  var mapView = chart.mapView, renderer = chart.renderer;
204
- // Set a group that handles transform during zooming and panning in
205
- // order to preserve clipping on series.group
206
- if (!this.transformGroup) {
207
- this.transformGroup = renderer.g().add(group);
208
- this.transformGroup.survive = true;
208
+ if (!mapView) {
209
+ return;
210
+ }
211
+ // Set groups that handle transform during zooming and panning in order
212
+ // to preserve clipping on series.group
213
+ this.transformGroups = transformGroups;
214
+ if (!transformGroups[0]) {
215
+ transformGroups[0] = renderer.g().add(group);
209
216
  }
217
+ mapView.insets.forEach(function (inset, i) {
218
+ if (!transformGroups[i + 1]) {
219
+ transformGroups.push(renderer.g().add(group));
220
+ }
221
+ });
210
222
  // Draw the shapes again
211
223
  if (this.doFullTranslate()) {
212
224
  // Individual point actions.
213
- if (chart.hasRendered && !chart.styledMode) {
214
- this.points.forEach(function (point) {
215
- // Restore state color on update/redraw (#3529)
216
- if (point.shapeArgs) {
217
- point.shapeArgs.fill = _this.pointAttribs(point, point.state).fill;
218
- }
219
- });
220
- }
221
- // Draw them in transformGroup
222
- this.group = this.transformGroup;
225
+ this.points.forEach(function (point) {
226
+ var graphic = point.graphic, shapeArgs = point.shapeArgs;
227
+ // Points should be added in the corresponding transform group
228
+ point.group = transformGroups[typeof point.insetIndex === 'number' ?
229
+ point.insetIndex + 1 :
230
+ 0];
231
+ // When the point has been moved between insets after
232
+ // MapView.update
233
+ if (graphic && graphic.parentGroup !== point.group) {
234
+ graphic.add(point.group);
235
+ }
236
+ // Restore state color on update/redraw (#3529)
237
+ if (shapeArgs && chart.hasRendered && !chart.styledMode) {
238
+ shapeArgs.fill = _this.pointAttribs(point, point.state).fill;
239
+ }
240
+ });
241
+ // Draw the points
223
242
  ColumnSeries.prototype.drawPoints.apply(this);
224
- this.group = group; // Reset
225
243
  // Add class names
226
244
  this.points.forEach(function (point) {
227
245
  if (point.graphic) {
@@ -231,11 +249,10 @@ var MapSeries = /** @class */ (function (_super) {
231
249
  'highcharts-name-' +
232
250
  point.name.replace(/ /g, '-').toLowerCase();
233
251
  }
234
- if (point.properties &&
235
- point.properties['hc-key']) {
252
+ if (point.properties && point.properties['hc-key']) {
236
253
  className +=
237
254
  ' highcharts-key-' +
238
- point.properties['hc-key'].toLowerCase();
255
+ point.properties['hc-key'].toString().toLowerCase();
239
256
  }
240
257
  if (className) {
241
258
  point.graphic.addClass(className);
@@ -248,9 +265,9 @@ var MapSeries = /** @class */ (function (_super) {
248
265
  });
249
266
  }
250
267
  // Apply the SVG transform
251
- if (mapView && svgTransform) {
252
- var strokeWidth_1 = pick(this.options[(this.pointAttrToOptions &&
253
- this.pointAttrToOptions['stroke-width']) || 'borderWidth'], 1 // Styled mode
268
+ transformGroups.forEach(function (transformGroup, i) {
269
+ var view = i === 0 ? mapView : mapView.insets[i - 1], svgTransform = view.getSVGTransform(), strokeWidth = pick(_this.options[(_this.pointAttrToOptions &&
270
+ _this.pointAttrToOptions['stroke-width']) || 'borderWidth'], 1 // Styled mode
254
271
  );
255
272
  /*
256
273
  Animate or move to the new zoom level. In order to prevent
@@ -265,38 +282,37 @@ var MapSeries = /** @class */ (function (_super) {
265
282
  transform properties, it should induce a single updateTransform and
266
283
  symbolAttr call.
267
284
  */
268
- var scale_1 = svgTransform.scaleX;
269
- var flipFactor_1 = svgTransform.scaleY > 0 ? 1 : -1;
270
- var transformGroup_1 = this.transformGroup;
285
+ var scale = svgTransform.scaleX;
286
+ var flipFactor = svgTransform.scaleY > 0 ? 1 : -1;
271
287
  if (renderer.globalAnimation && chart.hasRendered) {
272
- var startTranslateX_1 = Number(transformGroup_1.attr('translateX')), startTranslateY_1 = Number(transformGroup_1.attr('translateY')), startScale_1 = Number(transformGroup_1.attr('scaleX'));
288
+ var startTranslateX_1 = Number(transformGroup.attr('translateX'));
289
+ var startTranslateY_1 = Number(transformGroup.attr('translateY'));
290
+ var startScale_1 = Number(transformGroup.attr('scaleX'));
273
291
  var step = function (now, fx) {
274
292
  var scaleStep = startScale_1 +
275
- (scale_1 - startScale_1) * fx.pos;
276
- transformGroup_1.attr({
277
- translateX: (startTranslateX_1 +
278
- (svgTransform.translateX - startTranslateX_1) * fx.pos),
279
- translateY: (startTranslateY_1 +
280
- (svgTransform.translateY - startTranslateY_1) * fx.pos),
293
+ (scale - startScale_1) * fx.pos;
294
+ transformGroup.attr({
295
+ translateX: (startTranslateX_1 + (svgTransform.translateX - startTranslateX_1) * fx.pos),
296
+ translateY: (startTranslateY_1 + (svgTransform.translateY - startTranslateY_1) * fx.pos),
281
297
  scaleX: scaleStep,
282
- scaleY: scaleStep * flipFactor_1
298
+ scaleY: scaleStep * flipFactor
283
299
  });
284
- group.element.setAttribute('stroke-width', strokeWidth_1 / scaleStep);
300
+ transformGroup.element.setAttribute('stroke-width', strokeWidth / scaleStep);
285
301
  };
286
- transformGroup_1
302
+ transformGroup
287
303
  .attr({ animator: 0 })
288
304
  .animate({ animator: 1 }, { step: step });
289
305
  // When dragging or first rendering, animation is off
290
306
  }
291
307
  else {
292
- transformGroup_1.attr(svgTransform);
308
+ transformGroup.attr(svgTransform);
293
309
  // Set the stroke-width directly on the group element so the
294
310
  // children inherit it. We need to use setAttribute directly,
295
311
  // because the stroke-widthSetter method expects a stroke color
296
312
  // also to be set.
297
- group.element.setAttribute('stroke-width', strokeWidth_1 / scale_1);
313
+ transformGroup.element.setAttribute('stroke-width', strokeWidth / scale);
298
314
  }
299
- }
315
+ });
300
316
  this.drawMapDataLabels();
301
317
  };
302
318
  /**
@@ -304,9 +320,8 @@ var MapSeries = /** @class */ (function (_super) {
304
320
  *
305
321
  */
306
322
  MapSeries.prototype.getProjectedBounds = function () {
307
- if (!this.bounds) {
308
- var MAX_VALUE_1 = Number.MAX_VALUE, projection_1 = this.chart.mapView &&
309
- this.chart.mapView.projection, allBounds_1 = [];
323
+ if (!this.bounds && this.chart.mapView) {
324
+ var _a = this.chart.mapView, insets_1 = _a.insets, projection_1 = _a.projection, allBounds_1 = [];
310
325
  // Find the bounding box of each point
311
326
  (this.points || []).forEach(function (point) {
312
327
  if (point.path || point.geometry) {
@@ -322,38 +337,32 @@ var MapSeries = /** @class */ (function (_super) {
322
337
  }
323
338
  // The first time a map point is used, analyze its box
324
339
  if (!point.bounds) {
325
- var path = MapPoint.getProjectedPath(point, projection_1), properties = point.properties;
326
- var x2_1 = -MAX_VALUE_1, x1_1 = MAX_VALUE_1, y2_1 = -MAX_VALUE_1, y1_1 = MAX_VALUE_1, validBounds_1;
327
- path.forEach(function (seg) {
328
- var x = seg[seg.length - 2];
329
- var y = seg[seg.length - 1];
330
- if (typeof x === 'number' &&
331
- typeof y === 'number') {
332
- x1_1 = Math.min(x1_1, x);
333
- x2_1 = Math.max(x2_1, x);
334
- y1_1 = Math.min(y1_1, y);
335
- y2_1 = Math.max(y2_1, y);
336
- validBounds_1 = true;
337
- }
338
- });
339
- if (validBounds_1) {
340
- // Cache point bounding box for use to position data
341
- // labels, bubbles etc
342
- var propMiddleX = (properties && properties['hc-middle-x']), midX = (x1_1 + (x2_1 - x1_1) * pick(point.middleX, isNumber(propMiddleX) ?
343
- propMiddleX : 0.5)), propMiddleY = (properties && properties['hc-middle-y']);
344
- var middleYFraction = pick(point.middleY, isNumber(propMiddleY) ? propMiddleY : 0.5);
345
- // No geographic geometry, only path given => flip
346
- if (!point.geometry) {
347
- middleYFraction = 1 - middleYFraction;
348
- }
349
- var midY = y2_1 - (y2_1 - y1_1) * middleYFraction;
350
- point.bounds = { midX: midX, midY: midY, x1: x1_1, y1: y1_1, x2: x2_1, y2: y2_1 };
340
+ var bounds = point.getProjectedBounds(projection_1);
341
+ if (bounds) {
351
342
  point.labelrank = pick(point.labelrank,
352
343
  // Bigger shape, higher rank
353
- (x2_1 - x1_1) * (y2_1 - y1_1));
344
+ ((bounds.x2 - bounds.x1) *
345
+ (bounds.y2 - bounds.y1)));
346
+ var midX_1 = bounds.midX, midY_1 = bounds.midY;
347
+ if (insets_1 && isNumber(midX_1) && isNumber(midY_1)) {
348
+ var inset = find(insets_1, function (inset) { return inset.isInside({
349
+ x: midX_1, y: midY_1
350
+ }); });
351
+ if (inset) {
352
+ // Project again, but with the inset
353
+ // projection
354
+ delete point.projectedPath;
355
+ bounds = point.getProjectedBounds(inset.projection);
356
+ if (bounds) {
357
+ inset.allBounds.push(bounds);
358
+ }
359
+ point.insetIndex = insets_1.indexOf(inset);
360
+ }
361
+ }
362
+ point.bounds = bounds;
354
363
  }
355
364
  }
356
- if (point.bounds) {
365
+ if (point.bounds && point.insetIndex === void 0) {
357
366
  allBounds_1.push(point.bounds);
358
367
  }
359
368
  }
@@ -400,37 +409,80 @@ var MapSeries = /** @class */ (function (_super) {
400
409
  return attr;
401
410
  };
402
411
  /**
403
- * Extend setData to join in mapData. If the allAreas option is true, all
404
- * areas from the mapData are used, and those that don't correspond to a
405
- * data value are given null values.
406
412
  * @private
407
413
  */
408
- MapSeries.prototype.setData = function (data, redraw, animation, updatePoints) {
409
- var options = this.options, chartOptions = this.chart.options.chart, globalMapData = chartOptions && chartOptions.map, mapData = options.mapData, joinBy = this.joinBy, pointArrayMap = options.keys || this.pointArrayMap, dataUsed = [], mapMap = {}, mapPoint, mapTransforms = this.chart.mapTransforms, props, i;
410
- // Collect mapData from chart options if not defined on series
411
- if (!mapData && globalMapData) {
412
- mapData = typeof globalMapData === 'string' ?
413
- maps[globalMapData] :
414
- globalMapData;
414
+ MapSeries.prototype.updateData = function () {
415
+ // #16782
416
+ if (this.processedData) {
417
+ return false;
418
+ }
419
+ return _super.prototype.updateData.apply(this, arguments);
420
+ };
421
+ /**
422
+ * Extend setData to call processData and generatePoints immediately.
423
+ * @private
424
+ */
425
+ MapSeries.prototype.setData = function () {
426
+ _super.prototype.setData.apply(this, arguments);
427
+ this.processData();
428
+ this.generatePoints();
429
+ };
430
+ /**
431
+ * Extend processData to join in mapData. If the allAreas option is true,
432
+ * all areas from the mapData are used, and those that don't correspond to a
433
+ * data value are given null values. The results are stored in
434
+ * `processedData` in order to avoid mutating `data`.
435
+ * @private
436
+ */
437
+ MapSeries.prototype.processData = function () {
438
+ var options = this.options, data = options.data, chartOptions = this.chart.options.chart, joinBy = this.joinBy, pointArrayMap = options.keys || this.pointArrayMap, dataUsed = [], mapMap = {};
439
+ var mapView = this.chart.mapView, mapDataObject = mapView && (
440
+ // Get map either from series or global
441
+ isObject(options.mapData, true) ?
442
+ mapView.getGeoMap(options.mapData) : mapView.geoMap), mapTransforms = this.chart.mapTransforms, mapPoint, props, i;
443
+ // Pick up transform definitions for chart
444
+ this.chart.mapTransforms = mapTransforms =
445
+ chartOptions.mapTransforms ||
446
+ mapDataObject && mapDataObject['hc-transform'] ||
447
+ mapTransforms;
448
+ // Cache cos/sin of transform rotation angle
449
+ if (mapTransforms) {
450
+ objectEach(mapTransforms, function (transform) {
451
+ if (transform.rotation) {
452
+ transform.cosAngle = Math.cos(transform.rotation);
453
+ transform.sinAngle = Math.sin(transform.rotation);
454
+ }
455
+ });
456
+ }
457
+ var mapData;
458
+ if (isArray(options.mapData)) {
459
+ mapData = options.mapData;
415
460
  }
416
- // Pick up numeric values, add index
417
- // Convert Array point definitions to objects using pointArrayMap
461
+ else if (mapDataObject && mapDataObject.type === 'FeatureCollection') {
462
+ this.mapTitle = mapDataObject.title;
463
+ mapData = H.geojson(mapDataObject, this.type, this);
464
+ }
465
+ // Reset processedData
466
+ this.processedData = [];
467
+ var processedData = this.processedData;
468
+ // Pick up numeric values, add index. Convert Array point definitions to
469
+ // objects using pointArrayMap.
418
470
  if (data) {
419
471
  data.forEach(function (val, i) {
420
472
  var ix = 0;
421
473
  if (isNumber(val)) {
422
- data[i] = {
474
+ processedData[i] = {
423
475
  value: val
424
476
  };
425
477
  }
426
478
  else if (isArray(val)) {
427
- data[i] = {};
479
+ processedData[i] = {};
428
480
  // Automatically copy first item to hc-key if there is
429
481
  // an extra leading string
430
482
  if (!options.keys &&
431
483
  val.length > pointArrayMap.length &&
432
484
  typeof val[0] === 'string') {
433
- data[i]['hc-key'] = val[0];
485
+ processedData[i]['hc-key'] = val[0];
434
486
  ++ix;
435
487
  }
436
488
  // Run through pointArrayMap and what's left of the
@@ -439,40 +491,24 @@ var MapSeries = /** @class */ (function (_super) {
439
491
  if (pointArrayMap[j] &&
440
492
  typeof val[ix] !== 'undefined') {
441
493
  if (pointArrayMap[j].indexOf('.') > 0) {
442
- MapPoint.prototype.setNestedProperty(data[i], val[ix], pointArrayMap[j]);
494
+ MapPoint.prototype.setNestedProperty(processedData[i], val[ix], pointArrayMap[j]);
443
495
  }
444
496
  else {
445
- data[i][pointArrayMap[j]] =
497
+ processedData[i][pointArrayMap[j]] =
446
498
  val[ix];
447
499
  }
448
500
  }
449
501
  }
450
502
  }
451
- if (joinBy && joinBy[0] === '_i') {
452
- data[i]._i = i;
503
+ else {
504
+ processedData[i] = data[i];
453
505
  }
454
- });
455
- }
456
- // this.getBox(data as any);
457
- // Pick up transform definitions for chart
458
- this.chart.mapTransforms = mapTransforms =
459
- chartOptions.mapTransforms ||
460
- mapData && mapData['hc-transform'] ||
461
- mapTransforms;
462
- // Cache cos/sin of transform rotation angle
463
- if (mapTransforms) {
464
- objectEach(mapTransforms, function (transform) {
465
- if (transform.rotation) {
466
- transform.cosAngle = Math.cos(transform.rotation);
467
- transform.sinAngle = Math.sin(transform.rotation);
506
+ if (joinBy && joinBy[0] === '_i') {
507
+ processedData[i]._i = i;
468
508
  }
469
509
  });
470
510
  }
471
511
  if (mapData) {
472
- if (mapData.type === 'FeatureCollection') {
473
- this.mapTitle = mapData.title;
474
- mapData = H.geojson(mapData, this.type, this);
475
- }
476
512
  this.mapData = mapData;
477
513
  this.mapMap = {};
478
514
  for (i = 0; i < mapData.length; i++) {
@@ -487,9 +523,9 @@ var MapSeries = /** @class */ (function (_super) {
487
523
  }
488
524
  this.mapMap = mapMap;
489
525
  // Registered the point codes that actually hold data
490
- if (data && joinBy[1]) {
526
+ if (joinBy[1]) {
491
527
  var joinKey_1 = joinBy[1];
492
- data.forEach(function (pointOptions) {
528
+ processedData.forEach(function (pointOptions) {
493
529
  var mapKey = getNestedProperty(joinKey_1, pointOptions);
494
530
  if (mapMap[mapKey]) {
495
531
  dataUsed.push(mapMap[mapKey]);
@@ -497,37 +533,35 @@ var MapSeries = /** @class */ (function (_super) {
497
533
  });
498
534
  }
499
535
  if (options.allAreas) {
500
- // this.getBox(mapData);
501
- data = data || [];
502
- // Registered the point codes that actually hold data
536
+ // Register the point codes that actually hold data
503
537
  if (joinBy[1]) {
504
538
  var joinKey_2 = joinBy[1];
505
- data.forEach(function (pointOptions) {
539
+ processedData.forEach(function (pointOptions) {
506
540
  dataUsed.push(getNestedProperty(joinKey_2, pointOptions));
507
541
  });
508
542
  }
509
543
  // Add those map points that don't correspond to data, which
510
- // will be drawn as null points
511
- dataUsed = ('|' + dataUsed.map(function (point) {
512
- return point && point[joinBy[0]];
513
- }).join('|') + '|'); // Faster than array.indexOf
544
+ // will be drawn as null points. Searching a string is faster
545
+ // than Array.indexOf
546
+ var dataUsedString_1 = ('|' +
547
+ dataUsed
548
+ .map(function (point) {
549
+ return point && point[joinBy[0]];
550
+ })
551
+ .join('|') +
552
+ '|');
514
553
  mapData.forEach(function (mapPoint) {
515
554
  if (!joinBy[0] ||
516
- dataUsed.indexOf('|' + mapPoint[joinBy[0]] + '|') === -1) {
517
- data.push(merge(mapPoint, { value: null }));
518
- // #5050 - adding all areas causes the update
519
- // optimization of setData to kick in, even though
520
- // the point order has changed
521
- updatePoints = false;
555
+ dataUsedString_1.indexOf('|' + mapPoint[joinBy[0]] + '|') === -1) {
556
+ processedData.push(merge(mapPoint, { value: null }));
522
557
  }
523
558
  });
524
- } /* else {
525
- this.getBox(dataUsed); // Issue #4784
526
- } */
559
+ }
527
560
  }
528
- Series.prototype.setData.call(this, data, redraw, animation, updatePoints);
529
- this.processData();
530
- this.generatePoints();
561
+ // The processedXData array is used by general chart logic for checking
562
+ // data length in various scanarios
563
+ this.processedXData = new Array(processedData.length);
564
+ return void 0;
531
565
  };
532
566
  /**
533
567
  * Extend setOptions by picking up the joinBy option and applying it to a
@@ -559,41 +593,30 @@ var MapSeries = /** @class */ (function (_super) {
559
593
  delete this.bounds;
560
594
  this.getProjectedBounds();
561
595
  }
562
- // Calculate the SVG transform
563
- var svgTransform;
564
596
  if (mapView) {
565
- var scale = mapView.getScale();
566
- var _a = mapView.projection.forward(mapView.center), x = _a[0], y = _a[1];
567
- // When dealing with unprojected coordinates, y axis is flipped.
568
- var flipFactor = mapView.projection.hasCoordinates ? -1 : 1;
569
- var translateX = this.chart.plotWidth / 2 - x * scale, translateY = this.chart.plotHeight / 2 - y * scale * flipFactor;
570
- svgTransform = {
571
- scaleX: scale,
572
- scaleY: scale * flipFactor,
573
- translateX: translateX,
574
- translateY: translateY
575
- };
576
- this.svgTransform = svgTransform;
597
+ var mainSvgTransform_1 = mapView.getSVGTransform();
598
+ series.points.forEach(function (point) {
599
+ var svgTransform = (isNumber(point.insetIndex) &&
600
+ mapView.insets[point.insetIndex].getSVGTransform()) || mainSvgTransform_1;
601
+ // Record the middle point (loosely based on centroid),
602
+ // determined by the middleX and middleY options.
603
+ if (svgTransform &&
604
+ point.bounds &&
605
+ isNumber(point.bounds.midX) &&
606
+ isNumber(point.bounds.midY)) {
607
+ point.plotX = point.bounds.midX * svgTransform.scaleX +
608
+ svgTransform.translateX;
609
+ point.plotY = point.bounds.midY * svgTransform.scaleY +
610
+ svgTransform.translateY;
611
+ }
612
+ if (doFullTranslate) {
613
+ point.shapeType = 'path';
614
+ point.shapeArgs = {
615
+ d: MapPoint.getProjectedPath(point, projection)
616
+ };
617
+ }
618
+ });
577
619
  }
578
- series.points.forEach(function (point) {
579
- // Record the middle point (loosely based on centroid),
580
- // determined by the middleX and middleY options.
581
- if (svgTransform &&
582
- point.bounds &&
583
- isNumber(point.bounds.midX) &&
584
- isNumber(point.bounds.midY)) {
585
- point.plotX = point.bounds.midX * svgTransform.scaleX +
586
- svgTransform.translateX;
587
- point.plotY = point.bounds.midY * svgTransform.scaleY +
588
- svgTransform.translateY;
589
- }
590
- if (doFullTranslate) {
591
- point.shapeType = 'path';
592
- point.shapeArgs = {
593
- d: MapPoint.getProjectedPath(point, projection)
594
- };
595
- }
596
- });
597
620
  fireEvent(series, 'afterTranslate');
598
621
  };
599
622
  /**
@@ -609,6 +632,16 @@ var MapSeries = /** @class */ (function (_super) {
609
632
  * @optionparent plotOptions.map
610
633
  */
611
634
  MapSeries.defaultOptions = merge(ScatterSeries.defaultOptions, {
635
+ /**
636
+ * Whether the MapView takes this series into account when computing the
637
+ * default zoom and center of the map.
638
+ *
639
+ * @sample maps/series/affectsmapview/
640
+ * US map with world map backdrop
641
+ *
642
+ * @since 10.0.0
643
+ */
644
+ affectsMapView: true,
612
645
  animation: false,
613
646
  dataLabels: {
614
647
  crop: false,
@@ -881,13 +914,17 @@ export default MapSeries;
881
914
  *
882
915
  * */
883
916
  /**
884
- * A map data object containing a `geometry` or `path` definition and optionally
885
- * additional properties to join in the `data` as per the `joinBy` option.
917
+ * An array of objects containing a `geometry` or `path` definition and
918
+ * optionally additional properties to join in the `data` as per the `joinBy`
919
+ * option. GeoJSON and TopoJSON structures can also be passed directly into
920
+ * `mapData`.
886
921
  *
887
922
  * @sample maps/demo/category-map/
888
923
  * Map data and joinBy
924
+ * @sample maps/series/mapdata-multiple/
925
+ * Multiple map sources
889
926
  *
890
- * @type {Array<Highcharts.SeriesMapDataOptions>|*}
927
+ * @type {Array<Highcharts.SeriesMapDataOptions>|Highcharts.GeoJSON|Highcharts.TopoJSON}
891
928
  * @product highmaps
892
929
  * @apioption series.mapData
893
930
  */
@@ -21,10 +21,14 @@ var __extends = (this && this.__extends) || (function () {
21
21
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
22
22
  };
23
23
  })();
24
+ /* *
25
+ *
26
+ * Imports
27
+ *
28
+ * */
29
+ import MapPoint from '../Map/MapPoint.js';
24
30
  import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
25
31
  var _a = SeriesRegistry.seriesTypes, BubbleSeries = _a.bubble, MapSeries = _a.map;
26
- import U from '../../Core/Utilities.js';
27
- var extend = U.extend, merge = U.merge;
28
32
  /* *
29
33
  *
30
34
  * Class
@@ -33,30 +37,18 @@ var extend = U.extend, merge = U.merge;
33
37
  var MapBubblePoint = /** @class */ (function (_super) {
34
38
  __extends(MapBubblePoint, _super);
35
39
  function MapBubblePoint() {
36
- return _super !== null && _super.apply(this, arguments) || this;
40
+ /* *
41
+ *
42
+ * Functions
43
+ *
44
+ * */
45
+ var _this = _super !== null && _super.apply(this, arguments) || this;
46
+ _this.applyOptions = MapSeries.prototype.pointClass.prototype.applyOptions;
47
+ _this.getProjectedBounds = MapPoint.prototype.getProjectedBounds;
48
+ return _this;
49
+ /* eslint-enable valid-jsdoc */
37
50
  }
38
- /* *
39
- *
40
- * Functions
41
- *
42
- * */
43
51
  /* eslint-disable valid-jsdoc */
44
- /**
45
- * @private
46
- */
47
- MapBubblePoint.prototype.applyOptions = function (options, x) {
48
- var point;
49
- if (options &&
50
- typeof options.lat !== 'undefined' &&
51
- typeof options.lon !== 'undefined') {
52
- point = _super.prototype.applyOptions.call(this, merge(options, this.series.chart.fromLatLonToPoint(options)), x);
53
- }
54
- else {
55
- point = MapSeries.prototype.pointClass.prototype
56
- .applyOptions.call(this, options, x);
57
- }
58
- return point;
59
- };
60
52
  /**
61
53
  * @private
62
54
  */