highcharts 11.3.0 → 11.4.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 (773) hide show
  1. package/README.md +1 -1
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +27 -19
  4. package/css/stocktools/gui.css +19 -7
  5. package/es-modules/Accessibility/A11yI18n.js +4 -6
  6. package/es-modules/Accessibility/Accessibility.js +8 -6
  7. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +11 -6
  8. package/es-modules/Accessibility/Components/LegendComponent.js +4 -4
  9. package/es-modules/Accessibility/Components/MenuComponent.js +3 -6
  10. package/es-modules/Accessibility/Components/NavigatorComponent.js +6 -3
  11. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +4 -7
  12. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +18 -3
  13. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +5 -3
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +4 -4
  15. package/es-modules/Accessibility/FocusBorder.js +5 -5
  16. package/es-modules/Accessibility/HighContrastMode.js +22 -13
  17. package/es-modules/Accessibility/HighContrastTheme.js +2 -6
  18. package/es-modules/Accessibility/KeyboardNavigation.js +17 -8
  19. package/es-modules/Accessibility/Options/A11yDefaults.js +11 -1
  20. package/es-modules/Accessibility/ProxyElement.js +4 -4
  21. package/es-modules/Accessibility/ProxyProvider.js +8 -2
  22. package/es-modules/Accessibility/Utils/DOMElementProvider.js +8 -0
  23. package/es-modules/Accessibility/Utils/EventProvider.js +9 -0
  24. package/es-modules/Core/Animation/Fx.js +3 -3
  25. package/es-modules/Core/Axis/Axis.js +43 -97
  26. package/es-modules/Core/Axis/Axis3DComposition.js +5 -5
  27. package/es-modules/Core/Axis/Axis3DDefaults.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +18 -7
  29. package/es-modules/Core/Axis/BrokenAxis.js +4 -6
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +2 -1
  31. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -5
  32. package/es-modules/Core/Axis/DateTimeAxis.js +3 -5
  33. package/es-modules/Core/Axis/GridAxis.js +7 -7
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +2 -4
  35. package/es-modules/Core/Axis/NavigatorAxisComposition.js +26 -22
  36. package/es-modules/Core/Axis/OrdinalAxis.js +97 -53
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +4 -5
  39. package/es-modules/Core/Axis/RadialAxis.js +5 -5
  40. package/es-modules/Core/Axis/ScrollbarAxis.js +2 -2
  41. package/es-modules/Core/Axis/Stacking/StackItem.js +8 -4
  42. package/es-modules/Core/Axis/Stacking/StackingAxis.js +3 -5
  43. package/es-modules/Core/Axis/Tick.js +16 -7
  44. package/es-modules/Core/Axis/Tick3DComposition.js +2 -2
  45. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +4 -8
  46. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -6
  47. package/es-modules/Core/Axis/WaterfallAxis.js +3 -3
  48. package/es-modules/Core/Axis/ZAxis.js +6 -11
  49. package/es-modules/Core/Chart/Chart.js +201 -176
  50. package/es-modules/Core/Chart/Chart3D.js +1 -1
  51. package/es-modules/Core/Chart/ChartDefaults.js +7 -0
  52. package/es-modules/Core/Chart/GanttChart.js +2 -2
  53. package/es-modules/Core/Chart/MapChart.js +12 -2
  54. package/es-modules/Core/Chart/StockChart.js +12 -11
  55. package/es-modules/Core/Color/Color.js +3 -3
  56. package/es-modules/Core/Color/Palettes.js +2 -2
  57. package/es-modules/Core/Defaults.js +18 -15
  58. package/es-modules/Core/Geometry/CircleUtilities.js +3 -3
  59. package/es-modules/Core/Globals.js +2 -2
  60. package/es-modules/Core/HttpUtilities.js +4 -4
  61. package/es-modules/Core/Legend/Legend.js +6 -6
  62. package/es-modules/Core/MSPointer.js +7 -7
  63. package/es-modules/Core/Pointer.js +230 -245
  64. package/es-modules/Core/Renderer/HTML/AST.js +1 -1
  65. package/es-modules/Core/Renderer/HTML/HTMLElement.js +213 -26
  66. package/es-modules/Core/Renderer/RendererUtilities.js +1 -1
  67. package/es-modules/Core/Renderer/SVG/SVGElement.js +85 -52
  68. package/es-modules/Core/Renderer/SVG/SVGLabel.js +14 -11
  69. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -14
  70. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +8 -7
  71. package/es-modules/Core/Renderer/SVG/Symbols.js +1 -1
  72. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  73. package/es-modules/Core/Responsive.js +5 -6
  74. package/es-modules/Core/Series/DataLabel.js +70 -90
  75. package/es-modules/Core/Series/DataSeriesComposition.js +1 -1
  76. package/es-modules/Core/Series/DataSeriesConverter.js +2 -2
  77. package/es-modules/Core/Series/Point.js +48 -40
  78. package/es-modules/Core/Series/Series.js +61 -51
  79. package/es-modules/Core/Series/Series3D.js +2 -2
  80. package/es-modules/Core/Series/SeriesRegistry.js +10 -2
  81. package/es-modules/Core/Templating.js +1 -1
  82. package/es-modules/Core/Time.js +12 -7
  83. package/es-modules/Core/Tooltip.js +19 -17
  84. package/es-modules/Core/Utilities.js +54 -26
  85. package/es-modules/Data/Connectors/CSVConnector.js +2 -2
  86. package/es-modules/Data/Connectors/DataConnector.js +4 -2
  87. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
  88. package/es-modules/Data/Connectors/HTMLTableConnector.js +2 -2
  89. package/es-modules/Data/Connectors/JSONConnector.js +3 -5
  90. package/es-modules/Data/Converters/CSVConverter.js +1 -3
  91. package/es-modules/Data/Converters/DataConverter.js +8 -2
  92. package/es-modules/Data/Converters/HTMLTableConverter.js +1 -3
  93. package/es-modules/Data/Converters/JSONConverter.js +1 -0
  94. package/es-modules/Data/DataTable.js +1 -2
  95. package/es-modules/Data/Formula/FormulaProcessor.js +4 -2
  96. package/es-modules/Data/Modifiers/DataModifier.js +15 -3
  97. package/es-modules/Extensions/Annotations/Annotation.js +6 -7
  98. package/es-modules/Extensions/Annotations/AnnotationChart.js +4 -5
  99. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +4 -4
  100. package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
  101. package/es-modules/Extensions/Annotations/ControlTarget.js +1 -1
  102. package/es-modules/Extensions/Annotations/Controllables/Controllable.js +7 -3
  103. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +3 -3
  104. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +8 -9
  105. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -4
  106. package/es-modules/Extensions/Annotations/EventEmitter.js +6 -6
  107. package/es-modules/Extensions/Annotations/NavigationBindings.js +29 -18
  108. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +6 -6
  109. package/es-modules/Extensions/Annotations/Popup/Popup.js +1 -1
  110. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -6
  111. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +2 -2
  112. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +31 -31
  113. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +1 -1
  114. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +14 -11
  115. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +1 -1
  116. package/es-modules/Extensions/Annotations/Types/Measure.js +1 -1
  117. package/es-modules/Extensions/ArrowSymbols.js +7 -13
  118. package/es-modules/Extensions/Boost/Boost.js +39 -7
  119. package/es-modules/Extensions/Boost/BoostChart.js +4 -4
  120. package/es-modules/Extensions/Boost/BoostSeries.js +58 -13
  121. package/es-modules/Extensions/Boost/WGLRenderer.js +3 -3
  122. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +1 -1
  123. package/es-modules/Extensions/BoostCanvas.js +5 -4
  124. package/es-modules/Extensions/BorderRadius.js +5 -4
  125. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +9 -9
  126. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  127. package/es-modules/Extensions/Data.js +11 -11
  128. package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -1
  129. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +8 -9
  130. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
  131. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +6 -7
  132. package/es-modules/Extensions/Debugger/Debugger.js +1 -1
  133. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  134. package/es-modules/Extensions/DragPanes/AxisResizer.js +13 -16
  135. package/es-modules/Extensions/DragPanes/DragPanes.js +2 -4
  136. package/es-modules/Extensions/DraggablePoints/DragDropDefaults.js +2 -1
  137. package/es-modules/Extensions/DraggablePoints/DragDropUtilities.js +1 -1
  138. package/es-modules/Extensions/DraggablePoints/DraggableChart.js +4 -4
  139. package/es-modules/Extensions/DraggablePoints/DraggablePoints.js +8 -9
  140. package/es-modules/Extensions/Drilldown/Drilldown.js +11 -9
  141. package/es-modules/Extensions/Drilldown/DrilldownSeries.js +5 -6
  142. package/es-modules/Extensions/ExportData/ExportData.js +27 -18
  143. package/es-modules/Extensions/Exporting/Exporting.js +25 -20
  144. package/es-modules/Extensions/Exporting/ExportingDefaults.js +1 -1
  145. package/es-modules/Extensions/Exporting/Fullscreen.js +5 -10
  146. package/es-modules/Extensions/MarkerClusters/MarkerClusterScatter.js +26 -21
  147. package/es-modules/Extensions/MarkerClusters/MarkerClusterSymbols.js +2 -12
  148. package/es-modules/Extensions/MarkerClusters/MarkerClusters.js +3 -3
  149. package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +51 -161
  150. package/es-modules/Extensions/NoDataToDisplay/NoDataToDisplay.js +3 -5
  151. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +5 -6
  152. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  153. package/es-modules/Extensions/OverlappingDataLabels.js +21 -49
  154. package/es-modules/Extensions/Pane/PaneComposition.js +3 -5
  155. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -4
  156. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +5 -6
  157. package/es-modules/Extensions/ParallelCoordinates/ParallelSeries.js +1 -1
  158. package/es-modules/Extensions/PatternFill.js +19 -22
  159. package/es-modules/Extensions/PriceIndication.js +1 -1
  160. package/es-modules/Extensions/ScrollablePlotArea.js +218 -292
  161. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +26 -18
  162. package/es-modules/Extensions/Sonification/Options.js +1 -0
  163. package/es-modules/Extensions/Sonification/SonificationSpeaker.js +2 -2
  164. package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
  165. package/es-modules/Extensions/StaticScale.js +3 -5
  166. package/es-modules/Gantt/Legacy.js +1 -1
  167. package/es-modules/Gantt/Pathfinder.js +2 -2
  168. package/es-modules/Gantt/PathfinderComposition.js +3 -5
  169. package/es-modules/Gantt/Tree.js +3 -3
  170. package/es-modules/Maps/GeoJSONComposition.js +20 -13
  171. package/es-modules/Maps/MapNavigation.js +2 -2
  172. package/es-modules/Maps/MapPointer.js +3 -19
  173. package/es-modules/Maps/MapSymbols.js +3 -9
  174. package/es-modules/Maps/MapView.js +134 -74
  175. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +5 -4
  176. package/es-modules/Series/Area/AreaSeries.js +2 -4
  177. package/es-modules/Series/Area3D/Area3DSeries.js +1 -1
  178. package/es-modules/Series/AreaRange/AreaRangePoint.js +2 -2
  179. package/es-modules/Series/AreaRange/AreaRangeSeries.js +2 -3
  180. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +1 -1
  181. package/es-modules/Series/Bar/BarSeries.js +1 -1
  182. package/es-modules/Series/Bellcurve/BellcurveSeries.js +1 -1
  183. package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +4 -0
  184. package/es-modules/Series/Bubble/BubbleLegendComposition.js +1 -1
  185. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +2 -2
  186. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  187. package/es-modules/Series/Bubble/BubbleSeries.js +1 -1
  188. package/es-modules/Series/Bullet/BulletSeriesDefaults.js +2 -2
  189. package/es-modules/Series/Candlestick/CandlestickSeries.js +2 -2
  190. package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +1 -5
  191. package/es-modules/Series/ColorMapComposition.js +1 -1
  192. package/es-modules/Series/Column/ColumnDataLabel.js +2 -2
  193. package/es-modules/Series/Column/ColumnSeries.js +20 -22
  194. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
  195. package/es-modules/Series/Column3D/Column3DComposition.js +1 -1
  196. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  197. package/es-modules/Series/Cylinder/CylinderComposition.js +9 -9
  198. package/es-modules/Series/DataModifyComposition.js +5 -5
  199. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -2
  200. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesDefaults.js +1 -1
  201. package/es-modules/Series/DragNodesComposition.js +7 -7
  202. package/es-modules/Series/DrawPointUtilities.js +0 -2
  203. package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +1 -1
  204. package/es-modules/Series/Funnel/FunnelSeries.js +1 -1
  205. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +6 -6
  206. package/es-modules/Series/Funnel3D/Funnel3DSeriesDefaults.js +2 -2
  207. package/es-modules/Series/Funnel3D/SVGElement3DFunnel.js +1 -1
  208. package/es-modules/Series/Gantt/GanttSeries.js +0 -1
  209. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +5 -5
  210. package/es-modules/Series/GraphLayoutComposition.js +1 -1
  211. package/es-modules/Series/Heatmap/HeatmapSeries.js +2 -2
  212. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -1
  213. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  214. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -3
  215. package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +1 -1
  216. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +2 -2
  217. package/es-modules/Series/Item/ItemSeries.js +1 -1
  218. package/es-modules/Series/Line/LineSeries.js +1 -1
  219. package/es-modules/Series/Lollipop/LollipopSeries.js +3 -1
  220. package/es-modules/Series/Map/MapPoint.js +5 -1
  221. package/es-modules/Series/Map/MapSeries.js +32 -7
  222. package/es-modules/Series/Map/MapSeriesDefaults.js +5 -3
  223. package/es-modules/Series/Networkgraph/EulerIntegration.js +5 -5
  224. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -4
  225. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +5 -5
  226. package/es-modules/Series/Networkgraph/QuadTree.js +1 -1
  227. package/es-modules/Series/Networkgraph/QuadTreeNode.js +1 -1
  228. package/es-modules/Series/Networkgraph/VerletIntegration.js +9 -9
  229. package/es-modules/Series/NodesComposition.js +1 -1
  230. package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
  231. package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +1 -1
  232. package/es-modules/Series/OnSeriesComposition.js +1 -1
  233. package/es-modules/Series/Organization/OrganizationPoint.js +1 -1
  234. package/es-modules/Series/Organization/OrganizationSeries.js +22 -10
  235. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +15 -2
  236. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -5
  237. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  238. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +6 -10
  239. package/es-modules/Series/Pictorial/PictorialSeries.js +2 -2
  240. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  241. package/es-modules/Series/Pie/PiePoint.js +1 -1
  242. package/es-modules/Series/Pie/PieSeries.js +10 -1
  243. package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -1
  244. package/es-modules/Series/Pie3D/Pie3DSeries.js +2 -2
  245. package/es-modules/Series/PolarComposition.js +22 -20
  246. package/es-modules/Series/Sankey/SankeyColumnComposition.js +1 -1
  247. package/es-modules/Series/Sankey/SankeySeries.js +8 -8
  248. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +57 -13
  249. package/es-modules/Series/SeriesOnPointComposition.js +3 -3
  250. package/es-modules/Series/Spline/SplineSeries.js +1 -1
  251. package/es-modules/Series/Sunburst/SunburstPoint.js +1 -1
  252. package/es-modules/Series/Sunburst/SunburstSeries.js +2 -7
  253. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +3 -3
  254. package/es-modules/Series/Sunburst/SunburstUtilities.js +1 -1
  255. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +23 -25
  256. package/es-modules/Series/Tilemap/TilemapSeries.js +2 -2
  257. package/es-modules/Series/Timeline/TimelineSeries.js +2 -2
  258. package/es-modules/Series/TreeUtilities.js +23 -1
  259. package/es-modules/Series/Treegraph/TreegraphLayout.js +7 -11
  260. package/es-modules/Series/Treegraph/TreegraphPoint.js +1 -0
  261. package/es-modules/Series/Treegraph/TreegraphSeries.js +8 -8
  262. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +39 -2
  263. package/es-modules/Series/Treemap/TreemapSeries.js +4 -2
  264. package/es-modules/Series/Treemap/TreemapUtilities.js +0 -7
  265. package/es-modules/Series/Variwide/VariwideComposition.js +6 -2
  266. package/es-modules/Series/Variwide/VariwideSeries.js +1 -1
  267. package/es-modules/Series/Venn/VennSeries.js +4 -4
  268. package/es-modules/Series/Venn/VennUtils.js +5 -6
  269. package/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js +1 -1
  270. package/es-modules/Series/Windbarb/WindbarbSeries.js +1 -1
  271. package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -4
  272. package/es-modules/Series/XRange/XRangePoint.js +2 -2
  273. package/es-modules/Series/XRange/XRangeSeries.js +1 -1
  274. package/es-modules/Shared/BaseForm.js +1 -1
  275. package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
  276. package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  277. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  278. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
  279. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +2 -2
  280. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  281. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +1 -1
  282. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +1 -1
  283. package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +7 -7
  284. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +9 -9
  285. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +1 -1
  286. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  287. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -2
  288. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  289. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +16 -17
  290. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +4 -5
  291. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  292. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +5 -5
  293. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +188 -0
  294. package/es-modules/Stock/Navigator/Navigator.js +42 -27
  295. package/es-modules/Stock/Navigator/NavigatorComposition.js +10 -149
  296. package/es-modules/Stock/Navigator/NavigatorDefaults.js +16 -2
  297. package/es-modules/Stock/Navigator/StandaloneNavigator.js +334 -0
  298. package/es-modules/Stock/Navigator/StandaloneNavigatorDefaults.js +64 -0
  299. package/es-modules/Stock/RangeSelector/RangeSelector.js +28 -16
  300. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +2 -2
  301. package/es-modules/Stock/Scrollbar/Scrollbar.js +10 -10
  302. package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -3
  303. package/es-modules/Stock/StockTools/StockToolbar.js +6 -5
  304. package/es-modules/Stock/StockTools/StockTools.js +10 -13
  305. package/es-modules/Stock/StockTools/StockToolsBindings.js +35 -35
  306. package/es-modules/Stock/StockTools/StockToolsDefaults.js +2 -1
  307. package/es-modules/Stock/StockTools/StockToolsGui.js +7 -8
  308. package/es-modules/Stock/StockTools/StockToolsUtilities.js +8 -9
  309. package/es-modules/Stock/Utilities/StockUtilities.js +41 -0
  310. package/es-modules/masters/highcharts-3d.src.js +2 -1
  311. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  312. package/es-modules/masters/highcharts-more.src.js +2 -1
  313. package/es-modules/masters/highcharts.src.js +41 -40
  314. package/es-modules/masters/highmaps.src.js +1 -1
  315. package/es-modules/masters/highstock.src.js +1 -1
  316. package/es-modules/masters/indicators/acceleration-bands.src.js +3 -1
  317. package/es-modules/masters/indicators/accumulation-distribution.src.js +3 -1
  318. package/es-modules/masters/indicators/ao.src.js +3 -1
  319. package/es-modules/masters/indicators/apo.src.js +3 -1
  320. package/es-modules/masters/indicators/aroon-oscillator.src.js +3 -1
  321. package/es-modules/masters/indicators/aroon.src.js +3 -1
  322. package/es-modules/masters/indicators/atr.src.js +3 -1
  323. package/es-modules/masters/indicators/bollinger-bands.src.js +3 -1
  324. package/es-modules/masters/indicators/cci.src.js +3 -1
  325. package/es-modules/masters/indicators/chaikin.src.js +3 -1
  326. package/es-modules/masters/indicators/cmf.src.js +3 -1
  327. package/es-modules/masters/indicators/cmo.src.js +3 -1
  328. package/es-modules/masters/indicators/dema.src.js +3 -1
  329. package/es-modules/masters/indicators/disparity-index.src.js +3 -1
  330. package/es-modules/masters/indicators/dmi.src.js +3 -1
  331. package/es-modules/masters/indicators/dpo.src.js +3 -1
  332. package/es-modules/masters/indicators/ema.src.js +2 -0
  333. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +3 -1
  334. package/es-modules/masters/indicators/indicators-all.src.js +3 -1
  335. package/es-modules/masters/indicators/indicators.src.js +7 -1
  336. package/es-modules/masters/indicators/keltner-channels.src.js +3 -1
  337. package/es-modules/masters/indicators/klinger.src.js +3 -1
  338. package/es-modules/masters/indicators/macd.src.js +3 -1
  339. package/es-modules/masters/indicators/mfi.src.js +3 -1
  340. package/es-modules/masters/indicators/momentum.src.js +3 -1
  341. package/es-modules/masters/indicators/natr.src.js +3 -1
  342. package/es-modules/masters/indicators/obv.src.js +3 -1
  343. package/es-modules/masters/indicators/pivot-points.src.js +3 -1
  344. package/es-modules/masters/indicators/ppo.src.js +3 -1
  345. package/es-modules/masters/indicators/price-channel.src.js +3 -1
  346. package/es-modules/masters/indicators/price-envelopes.src.js +3 -1
  347. package/es-modules/masters/indicators/psar.src.js +3 -1
  348. package/es-modules/masters/indicators/regressions.src.js +3 -1
  349. package/es-modules/masters/indicators/roc.src.js +3 -1
  350. package/es-modules/masters/indicators/rsi.src.js +3 -1
  351. package/es-modules/masters/indicators/slow-stochastic.src.js +3 -1
  352. package/es-modules/masters/indicators/stochastic.src.js +3 -1
  353. package/es-modules/masters/indicators/supertrend.src.js +3 -1
  354. package/es-modules/masters/indicators/tema.src.js +3 -1
  355. package/es-modules/masters/indicators/trendline.src.js +3 -1
  356. package/es-modules/masters/indicators/trix.src.js +3 -1
  357. package/es-modules/masters/indicators/volume-by-price.src.js +3 -1
  358. package/es-modules/masters/indicators/vwap.src.js +3 -1
  359. package/es-modules/masters/indicators/williams-r.src.js +3 -1
  360. package/es-modules/masters/indicators/wma.src.js +3 -1
  361. package/es-modules/masters/indicators/zigzag.src.js +3 -1
  362. package/es-modules/masters/modules/accessibility.src.js +4 -1
  363. package/es-modules/masters/modules/annotations-advanced.src.js +3 -5
  364. package/es-modules/masters/modules/annotations.src.js +6 -3
  365. package/es-modules/masters/modules/arc-diagram.src.js +3 -1
  366. package/es-modules/masters/modules/arrow-symbols.src.js +2 -1
  367. package/es-modules/masters/modules/boost-canvas.src.js +2 -1
  368. package/es-modules/masters/modules/boost.src.js +3 -2
  369. package/es-modules/masters/modules/broken-axis.src.js +4 -3
  370. package/es-modules/masters/modules/bullet.src.js +3 -1
  371. package/es-modules/masters/modules/coloraxis.src.js +4 -3
  372. package/es-modules/masters/modules/current-date-indicator.src.js +2 -1
  373. package/es-modules/masters/modules/cylinder.src.js +3 -1
  374. package/es-modules/masters/modules/data-tools.src.js +9 -8
  375. package/es-modules/masters/modules/data.src.js +9 -8
  376. package/es-modules/masters/modules/datagrouping.src.js +7 -5
  377. package/es-modules/masters/modules/debugger.src.js +3 -2
  378. package/es-modules/masters/modules/dependency-wheel.src.js +3 -1
  379. package/es-modules/masters/modules/dotplot.src.js +3 -1
  380. package/es-modules/masters/modules/drag-panes.src.js +2 -1
  381. package/es-modules/masters/modules/draggable-points.src.js +2 -1
  382. package/es-modules/masters/modules/drilldown.src.js +3 -2
  383. package/es-modules/masters/modules/dumbbell.src.js +3 -1
  384. package/es-modules/masters/modules/export-data.src.js +5 -4
  385. package/es-modules/masters/modules/exporting.src.js +6 -5
  386. package/es-modules/masters/modules/flowmap.src.js +3 -1
  387. package/es-modules/masters/modules/full-screen.src.js +4 -3
  388. package/es-modules/masters/modules/funnel.src.js +2 -1
  389. package/es-modules/masters/modules/funnel3d.src.js +4 -3
  390. package/es-modules/masters/modules/gantt.src.js +15 -17
  391. package/es-modules/masters/modules/geoheatmap.src.js +3 -1
  392. package/es-modules/masters/modules/grid-axis.src.js +2 -1
  393. package/es-modules/masters/modules/heatmap.src.js +3 -5
  394. package/es-modules/masters/modules/heikinashi.src.js +2 -1
  395. package/es-modules/masters/modules/histogram-bellcurve.src.js +3 -1
  396. package/es-modules/masters/modules/hollowcandlestick.src.js +3 -1
  397. package/es-modules/masters/modules/item-series.src.js +3 -1
  398. package/es-modules/masters/modules/lollipop.src.js +3 -1
  399. package/es-modules/masters/modules/map.src.js +15 -10
  400. package/es-modules/masters/modules/marker-clusters.src.js +2 -1
  401. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +4 -2
  402. package/es-modules/masters/modules/navigator.src.d.ts +1 -0
  403. package/es-modules/masters/modules/navigator.src.js +19 -0
  404. package/es-modules/masters/modules/networkgraph.src.js +2 -1
  405. package/es-modules/masters/modules/no-data-to-display.src.js +2 -1
  406. package/es-modules/masters/modules/offline-exporting.src.js +4 -3
  407. package/es-modules/masters/modules/organization.src.js +3 -1
  408. package/es-modules/masters/modules/overlapping-datalabels.src.js +4 -2
  409. package/es-modules/masters/modules/parallel-coordinates.src.js +2 -1
  410. package/es-modules/masters/modules/pareto.src.js +3 -1
  411. package/es-modules/masters/modules/pathfinder.src.js +4 -3
  412. package/es-modules/masters/modules/pattern-fill.src.js +2 -1
  413. package/es-modules/masters/modules/pictorial.src.js +3 -1
  414. package/es-modules/masters/modules/price-indicator.src.js +2 -1
  415. package/es-modules/masters/modules/pyramid3d.src.js +3 -1
  416. package/es-modules/masters/modules/sankey.src.js +3 -1
  417. package/es-modules/masters/modules/series-label.src.js +2 -1
  418. package/es-modules/masters/modules/series-on-point.src.js +2 -1
  419. package/es-modules/masters/modules/solid-gauge.src.js +3 -1
  420. package/es-modules/masters/modules/sonification.src.js +2 -1
  421. package/es-modules/masters/modules/static-scale.src.js +2 -1
  422. package/es-modules/masters/modules/stock-tools.src.js +5 -3
  423. package/es-modules/masters/modules/stock.src.js +20 -15
  424. package/es-modules/masters/modules/streamgraph.src.js +3 -1
  425. package/es-modules/masters/modules/sunburst.src.js +4 -3
  426. package/es-modules/masters/modules/tiledwebmap.src.js +5 -4
  427. package/es-modules/masters/modules/tilemap.src.js +2 -1
  428. package/es-modules/masters/modules/timeline.src.js +3 -1
  429. package/es-modules/masters/modules/treegraph.src.js +3 -1
  430. package/es-modules/masters/modules/treegrid.src.js +2 -2
  431. package/es-modules/masters/modules/treemap.src.js +5 -4
  432. package/es-modules/masters/modules/variable-pie.src.js +3 -1
  433. package/es-modules/masters/modules/variwide.src.js +2 -1
  434. package/es-modules/masters/modules/vector.src.js +3 -1
  435. package/es-modules/masters/modules/venn.src.js +3 -1
  436. package/es-modules/masters/modules/windbarb.src.js +3 -1
  437. package/es-modules/masters/modules/wordcloud.src.js +3 -1
  438. package/es-modules/masters/modules/xrange.src.js +2 -1
  439. package/es-modules/masters/standalone-navigator.src.js +13 -0
  440. package/es-modules/masters/themes/avocado.src.js +2 -1
  441. package/es-modules/masters/themes/brand-dark.src.js +2 -1
  442. package/es-modules/masters/themes/brand-light.src.js +2 -1
  443. package/es-modules/masters/themes/dark-blue.src.js +2 -1
  444. package/es-modules/masters/themes/dark-green.src.js +2 -1
  445. package/es-modules/masters/themes/dark-unica.src.js +2 -1
  446. package/es-modules/masters/themes/gray.src.js +2 -1
  447. package/es-modules/masters/themes/grid-light.src.js +2 -1
  448. package/es-modules/masters/themes/grid.src.js +2 -1
  449. package/es-modules/masters/themes/high-contrast-dark.src.js +2 -1
  450. package/es-modules/masters/themes/high-contrast-light.src.js +2 -1
  451. package/es-modules/masters/themes/sand-signika.src.js +2 -1
  452. package/es-modules/masters/themes/skies.src.js +2 -1
  453. package/es-modules/masters/themes/sunset.src.js +2 -1
  454. package/es-modules/tsconfig.tsbuildinfo +1 -0
  455. package/globals.d.ts +9 -0
  456. package/globals.src.d.ts +9 -0
  457. package/highcharts-3d.js +3 -3
  458. package/highcharts-3d.src.js +32 -33
  459. package/highcharts-gantt.js +4 -4
  460. package/highcharts-gantt.src.js +5703 -5639
  461. package/highcharts-more.d.ts +4 -0
  462. package/highcharts-more.js +3 -3
  463. package/highcharts-more.src.d.ts +4 -0
  464. package/highcharts-more.src.js +88 -87
  465. package/highcharts.d.ts +834 -5365
  466. package/highcharts.js +4 -4
  467. package/highcharts.src.d.ts +834 -5365
  468. package/highcharts.src.js +1583 -1682
  469. package/highmaps.js +4 -4
  470. package/highmaps.src.js +1837 -1835
  471. package/highstock.js +4 -4
  472. package/highstock.src.js +12488 -12510
  473. package/indicators/acceleration-bands.js +3 -3
  474. package/indicators/acceleration-bands.src.js +12 -11
  475. package/indicators/accumulation-distribution.js +3 -3
  476. package/indicators/accumulation-distribution.src.js +6 -3
  477. package/indicators/ao.js +3 -3
  478. package/indicators/ao.src.js +3 -2
  479. package/indicators/apo.js +3 -3
  480. package/indicators/apo.src.js +4 -3
  481. package/indicators/aroon-oscillator.js +3 -3
  482. package/indicators/aroon-oscillator.src.js +12 -11
  483. package/indicators/aroon.js +3 -3
  484. package/indicators/aroon.src.js +13 -12
  485. package/indicators/atr.js +3 -3
  486. package/indicators/atr.src.js +3 -2
  487. package/indicators/bollinger-bands.js +3 -3
  488. package/indicators/bollinger-bands.src.js +12 -11
  489. package/indicators/cci.js +3 -3
  490. package/indicators/cci.src.js +3 -2
  491. package/indicators/chaikin.js +3 -3
  492. package/indicators/chaikin.src.js +7 -4
  493. package/indicators/cmf.js +3 -3
  494. package/indicators/cmf.src.js +4 -3
  495. package/indicators/cmo.js +3 -3
  496. package/indicators/cmo.src.js +5 -4
  497. package/indicators/dema.js +3 -3
  498. package/indicators/dema.src.js +3 -2
  499. package/indicators/disparity-index.js +3 -3
  500. package/indicators/disparity-index.src.js +3 -2
  501. package/indicators/dmi.js +3 -3
  502. package/indicators/dmi.src.js +12 -11
  503. package/indicators/dpo.js +3 -3
  504. package/indicators/dpo.src.js +4 -3
  505. package/indicators/ema.js +1 -1
  506. package/indicators/ema.src.js +2 -1
  507. package/indicators/ichimoku-kinko-hyo.js +3 -3
  508. package/indicators/ichimoku-kinko-hyo.src.js +3 -2
  509. package/indicators/indicators-all.js +3 -3
  510. package/indicators/indicators-all.src.js +63 -60
  511. package/indicators/indicators.js +3 -3
  512. package/indicators/indicators.src.js +286 -3
  513. package/indicators/keltner-channels.js +3 -3
  514. package/indicators/keltner-channels.src.js +12 -11
  515. package/indicators/klinger.js +3 -3
  516. package/indicators/klinger.src.js +13 -12
  517. package/indicators/macd.js +3 -3
  518. package/indicators/macd.src.js +3 -2
  519. package/indicators/mfi.js +3 -3
  520. package/indicators/mfi.src.js +3 -2
  521. package/indicators/momentum.js +3 -3
  522. package/indicators/momentum.src.js +3 -2
  523. package/indicators/natr.js +3 -3
  524. package/indicators/natr.src.js +3 -2
  525. package/indicators/obv.js +3 -3
  526. package/indicators/obv.src.js +4 -3
  527. package/indicators/pivot-points.js +3 -3
  528. package/indicators/pivot-points.src.js +5 -4
  529. package/indicators/ppo.js +3 -3
  530. package/indicators/ppo.src.js +4 -3
  531. package/indicators/price-channel.js +3 -3
  532. package/indicators/price-channel.src.js +12 -11
  533. package/indicators/price-envelopes.js +3 -3
  534. package/indicators/price-envelopes.src.js +12 -11
  535. package/indicators/psar.js +3 -3
  536. package/indicators/psar.src.js +3 -2
  537. package/indicators/regressions.js +3 -3
  538. package/indicators/regressions.src.js +10 -9
  539. package/indicators/roc.js +3 -3
  540. package/indicators/roc.src.js +3 -2
  541. package/indicators/rsi.js +3 -3
  542. package/indicators/rsi.src.js +3 -2
  543. package/indicators/slow-stochastic.js +3 -3
  544. package/indicators/slow-stochastic.src.js +3 -2
  545. package/indicators/stochastic.js +3 -3
  546. package/indicators/stochastic.src.js +12 -11
  547. package/indicators/supertrend.js +3 -3
  548. package/indicators/supertrend.src.js +20 -19
  549. package/indicators/tema.js +3 -3
  550. package/indicators/tema.src.js +3 -2
  551. package/indicators/trendline.js +3 -3
  552. package/indicators/trendline.src.js +3 -2
  553. package/indicators/trix.js +3 -3
  554. package/indicators/trix.src.js +3 -2
  555. package/indicators/volume-by-price.js +3 -3
  556. package/indicators/volume-by-price.src.js +8 -7
  557. package/indicators/vwap.js +3 -3
  558. package/indicators/vwap.src.js +3 -2
  559. package/indicators/williams-r.js +3 -3
  560. package/indicators/williams-r.src.js +4 -3
  561. package/indicators/wma.js +3 -3
  562. package/indicators/wma.src.js +3 -2
  563. package/indicators/zigzag.js +3 -3
  564. package/indicators/zigzag.src.js +8 -7
  565. package/lib/svg2pdf.js +7 -7
  566. package/lib/svg2pdf.src.js +185 -150
  567. package/modules/accessibility.js +3 -3
  568. package/modules/accessibility.src.js +664 -2793
  569. package/modules/annotations-advanced.d.ts +3 -0
  570. package/modules/annotations-advanced.js +3 -3
  571. package/modules/annotations-advanced.src.d.ts +3 -0
  572. package/modules/annotations-advanced.src.js +2949 -2920
  573. package/modules/annotations.d.ts +0 -3
  574. package/modules/annotations.js +3 -3
  575. package/modules/annotations.src.d.ts +0 -3
  576. package/modules/annotations.src.js +2926 -2905
  577. package/modules/arc-diagram.js +3 -3
  578. package/modules/arc-diagram.src.js +8 -6
  579. package/modules/arrow-symbols.js +3 -3
  580. package/modules/arrow-symbols.src.js +10 -13
  581. package/modules/boost-canvas.js +3 -3
  582. package/modules/boost-canvas.src.js +73 -26
  583. package/modules/boost.js +3 -3
  584. package/modules/boost.src.js +108 -30
  585. package/modules/broken-axis.js +3 -3
  586. package/modules/broken-axis.src.js +9 -9
  587. package/modules/bullet.js +3 -3
  588. package/modules/bullet.src.js +5 -4
  589. package/modules/coloraxis.js +3 -3
  590. package/modules/coloraxis.src.js +10 -9
  591. package/modules/current-date-indicator.js +3 -3
  592. package/modules/current-date-indicator.src.js +3 -2
  593. package/modules/cylinder.js +3 -3
  594. package/modules/cylinder.src.js +12 -11
  595. package/modules/data-tools.js +3 -3
  596. package/modules/data-tools.src.js +53 -36
  597. package/modules/data.d.ts +2 -2
  598. package/modules/data.js +3 -3
  599. package/modules/data.src.d.ts +2 -2
  600. package/modules/data.src.js +24 -23
  601. package/modules/datagrouping.js +3 -3
  602. package/modules/datagrouping.src.js +25 -23
  603. package/modules/debugger.js +3 -3
  604. package/modules/debugger.src.js +6 -5
  605. package/modules/dependency-wheel.js +3 -3
  606. package/modules/dependency-wheel.src.js +7 -5
  607. package/modules/dotplot.js +3 -3
  608. package/modules/dotplot.src.js +3 -2
  609. package/modules/drag-panes.js +3 -3
  610. package/modules/drag-panes.src.js +19 -21
  611. package/modules/draggable-points.js +3 -3
  612. package/modules/draggable-points.src.js +18 -16
  613. package/modules/drilldown.js +3 -3
  614. package/modules/drilldown.src.js +29 -26
  615. package/modules/dumbbell.js +3 -3
  616. package/modules/dumbbell.src.js +5 -4
  617. package/modules/export-data.js +3 -3
  618. package/modules/export-data.src.js +33 -22
  619. package/modules/exporting.d.ts +1 -1
  620. package/modules/exporting.js +3 -3
  621. package/modules/exporting.src.d.ts +1 -1
  622. package/modules/exporting.src.js +40 -39
  623. package/modules/flowmap.js +3 -3
  624. package/modules/flowmap.src.js +3 -2
  625. package/modules/full-screen.js +3 -3
  626. package/modules/full-screen.src.js +9 -13
  627. package/modules/funnel.js +3 -3
  628. package/modules/funnel.src.js +3 -2
  629. package/modules/funnel3d.js +3 -3
  630. package/modules/funnel3d.src.js +12 -12
  631. package/modules/gantt.d.ts +3 -4
  632. package/modules/gantt.js +3 -3
  633. package/modules/gantt.src.d.ts +3 -4
  634. package/modules/gantt.src.js +4165 -4002
  635. package/modules/geoheatmap.js +3 -3
  636. package/modules/geoheatmap.src.js +8 -7
  637. package/modules/grid-axis.js +3 -3
  638. package/modules/grid-axis.src.js +9 -8
  639. package/modules/heatmap.d.ts +2 -2
  640. package/modules/heatmap.js +3 -3
  641. package/modules/heatmap.src.d.ts +2 -2
  642. package/modules/heatmap.src.js +21 -15
  643. package/modules/heikinashi.js +3 -3
  644. package/modules/heikinashi.src.js +9 -6
  645. package/modules/histogram-bellcurve.js +3 -3
  646. package/modules/histogram-bellcurve.src.js +4 -3
  647. package/modules/hollowcandlestick.js +3 -3
  648. package/modules/hollowcandlestick.src.js +5 -4
  649. package/modules/item-series.js +3 -3
  650. package/modules/item-series.src.js +4 -3
  651. package/modules/lollipop.js +3 -3
  652. package/modules/lollipop.src.js +6 -3
  653. package/modules/map.d.ts +22 -1
  654. package/modules/map.js +3 -3
  655. package/modules/map.src.d.ts +22 -1
  656. package/modules/map.src.js +256 -155
  657. package/modules/marker-clusters.js +3 -3
  658. package/modules/marker-clusters.src.js +35 -37
  659. package/modules/mouse-wheel-zoom.js +3 -3
  660. package/modules/mouse-wheel-zoom.src.js +55 -163
  661. package/modules/navigator.d.ts +148 -0
  662. package/modules/navigator.js +9 -0
  663. package/modules/navigator.src.d.ts +148 -0
  664. package/modules/navigator.src.js +3921 -0
  665. package/modules/networkgraph.d.ts +2 -2
  666. package/modules/networkgraph.js +3 -3
  667. package/modules/networkgraph.src.d.ts +2 -2
  668. package/modules/networkgraph.src.js +36 -35
  669. package/modules/no-data-to-display.js +3 -3
  670. package/modules/no-data-to-display.src.js +6 -6
  671. package/modules/offline-exporting.js +3 -3
  672. package/modules/offline-exporting.src.js +10 -10
  673. package/modules/organization.js +3 -3
  674. package/modules/organization.src.js +41 -15
  675. package/modules/overlapping-datalabels.js +3 -3
  676. package/modules/overlapping-datalabels.src.js +4 -2
  677. package/modules/parallel-coordinates.js +3 -3
  678. package/modules/parallel-coordinates.src.js +12 -12
  679. package/modules/pareto.js +3 -3
  680. package/modules/pareto.src.js +3 -2
  681. package/modules/pathfinder.js +3 -3
  682. package/modules/pathfinder.src.js +18 -22
  683. package/modules/pattern-fill.js +3 -3
  684. package/modules/pattern-fill.src.js +22 -23
  685. package/modules/pictorial.js +3 -3
  686. package/modules/pictorial.src.js +25 -26
  687. package/modules/price-indicator.js +3 -3
  688. package/modules/price-indicator.src.js +3 -2
  689. package/modules/pyramid3d.js +3 -3
  690. package/modules/pyramid3d.src.js +3 -2
  691. package/modules/sankey.js +3 -3
  692. package/modules/sankey.src.js +93 -26
  693. package/modules/series-label.js +3 -3
  694. package/modules/series-label.src.js +28 -19
  695. package/modules/series-on-point.js +3 -3
  696. package/modules/series-on-point.src.js +5 -4
  697. package/modules/solid-gauge.js +3 -3
  698. package/modules/solid-gauge.src.js +3 -2
  699. package/modules/sonification.d.ts +2 -2
  700. package/modules/sonification.js +3 -3
  701. package/modules/sonification.src.d.ts +2 -2
  702. package/modules/sonification.src.js +8 -6
  703. package/modules/static-scale.js +3 -3
  704. package/modules/static-scale.src.js +6 -6
  705. package/modules/stock-tools.js +3 -3
  706. package/modules/stock-tools.src.js +109 -96
  707. package/modules/stock.d.ts +1 -1
  708. package/modules/stock.js +3 -3
  709. package/modules/stock.src.d.ts +1 -1
  710. package/modules/stock.src.js +10762 -10685
  711. package/modules/streamgraph.js +3 -3
  712. package/modules/streamgraph.src.js +3 -2
  713. package/modules/sunburst.js +3 -3
  714. package/modules/sunburst.src.js +50 -37
  715. package/modules/tiledwebmap.js +4 -4
  716. package/modules/tiledwebmap.src.js +28 -29
  717. package/modules/tilemap.js +3 -3
  718. package/modules/tilemap.src.js +4 -3
  719. package/modules/timeline.js +3 -3
  720. package/modules/timeline.src.js +5 -4
  721. package/modules/treegraph.js +3 -3
  722. package/modules/treegraph.src.js +58 -23
  723. package/modules/treegrid.js +3 -3
  724. package/modules/treegrid.src.js +49 -33
  725. package/modules/treemap.js +3 -3
  726. package/modules/treemap.src.js +44 -26
  727. package/modules/variable-pie.js +3 -3
  728. package/modules/variable-pie.src.js +3 -2
  729. package/modules/variwide.js +3 -3
  730. package/modules/variwide.src.js +9 -4
  731. package/modules/vector.js +3 -3
  732. package/modules/vector.src.js +3 -2
  733. package/modules/venn.js +3 -3
  734. package/modules/venn.src.js +16 -17
  735. package/modules/windbarb.js +3 -3
  736. package/modules/windbarb.src.js +5 -4
  737. package/modules/wordcloud.js +3 -3
  738. package/modules/wordcloud.src.js +10 -8
  739. package/modules/xrange.js +3 -3
  740. package/modules/xrange.src.js +5 -4
  741. package/package.json +1 -1
  742. package/standalone-navigator.js +2 -0
  743. package/standalone-navigator.src.js +49402 -0
  744. package/themes/avocado.js +3 -3
  745. package/themes/avocado.src.js +2 -1
  746. package/themes/brand-dark.js +3 -3
  747. package/themes/brand-dark.src.js +2 -1
  748. package/themes/brand-light.js +3 -3
  749. package/themes/brand-light.src.js +2 -1
  750. package/themes/dark-blue.js +3 -3
  751. package/themes/dark-blue.src.js +2 -1
  752. package/themes/dark-green.js +3 -3
  753. package/themes/dark-green.src.js +2 -1
  754. package/themes/dark-unica.js +3 -3
  755. package/themes/dark-unica.src.js +2 -1
  756. package/themes/gray.js +3 -3
  757. package/themes/gray.src.js +2 -1
  758. package/themes/grid-light.js +3 -3
  759. package/themes/grid-light.src.js +2 -1
  760. package/themes/grid.js +3 -3
  761. package/themes/grid.src.js +2 -1
  762. package/themes/high-contrast-dark.js +3 -3
  763. package/themes/high-contrast-dark.src.js +2 -1
  764. package/themes/high-contrast-light.js +3 -3
  765. package/themes/high-contrast-light.src.js +2 -1
  766. package/themes/sand-signika.js +3 -3
  767. package/themes/sand-signika.src.js +2 -1
  768. package/themes/skies.js +3 -3
  769. package/themes/skies.src.js +2 -1
  770. package/themes/sunset.js +3 -3
  771. package/themes/sunset.src.js +2 -1
  772. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +0 -259
  773. package/lib/canvg.js +0 -8
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highmaps JS v11.3.0 (2024-01-10)
2
+ * @license Highmaps JS v11.4.0 (2024-03-05)
3
3
  *
4
4
  * Highmaps as a plugin for Highcharts or Highcharts Stock.
5
5
  *
@@ -35,7 +35,7 @@
35
35
  }
36
36
  }
37
37
  }
38
- _registerModule(_modules, 'Core/Axis/Color/ColorAxisComposition.js', [_modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (Color, H, U) {
38
+ _registerModule(_modules, 'Core/Axis/Color/ColorAxisComposition.js', [_modules['Core/Color/Color.js'], _modules['Core/Utilities.js']], function (Color, U) {
39
39
  /* *
40
40
  *
41
41
  * (c) 2010-2024 Torstein Honsi
@@ -46,8 +46,7 @@
46
46
  *
47
47
  * */
48
48
  const { parse: color } = Color;
49
- const { composed } = H;
50
- const { addEvent, extend, merge, pick, pushUnique, splat } = U;
49
+ const { addEvent, extend, merge, pick, splat } = U;
51
50
  /* *
52
51
  *
53
52
  * Composition
@@ -75,9 +74,9 @@
75
74
  * @private
76
75
  */
77
76
  function compose(ColorAxisClass, ChartClass, FxClass, LegendClass, SeriesClass) {
78
- if (pushUnique(composed, compose)) {
77
+ const chartProto = ChartClass.prototype, fxProto = FxClass.prototype, seriesProto = SeriesClass.prototype;
78
+ if (!chartProto.collectionsWithUpdate.includes('colorAxis')) {
79
79
  ColorAxisConstructor = ColorAxisClass;
80
- const chartProto = ChartClass.prototype, fxProto = FxClass.prototype, seriesProto = SeriesClass.prototype;
81
80
  chartProto.collectionsWithUpdate.push('colorAxis');
82
81
  chartProto.collectionsWithInit.colorAxis = [
83
82
  chartProto.addColorAxis
@@ -1151,7 +1150,7 @@
1151
1150
  (horiz ?
1152
1151
  itemDistance :
1153
1152
  pick(labelOptions.x, labelOptions.distance) +
1154
- this.maxLabelLength));
1153
+ (this.maxLabelLength || 0)));
1155
1154
  legendItem.labelHeight = height + padding + (horiz ? labelPadding : 0);
1156
1155
  }
1157
1156
  /**
@@ -1414,6 +1413,7 @@
1414
1413
  const affectedSeries = [];
1415
1414
  for (const point of getPointsInDataClass(i)) {
1416
1415
  point.setVisible(vis);
1416
+ point.hiddenInDataClass = !vis; // #20441
1417
1417
  if (affectedSeries.indexOf(point.series) === -1) {
1418
1418
  affectedSeries.push(point.series);
1419
1419
  }
@@ -1481,6 +1481,14 @@
1481
1481
 
1482
1482
  return ColorAxis;
1483
1483
  });
1484
+ _registerModule(_modules, 'masters/modules/coloraxis.src.js', [_modules['Core/Globals.js'], _modules['Core/Axis/Color/ColorAxis.js']], function (Highcharts, ColorAxis) {
1485
+
1486
+ const G = Highcharts;
1487
+ G.ColorAxis = G.ColorAxis || ColorAxis;
1488
+ G.ColorAxis.compose(G.Chart, G.Fx, G.Legend, G.Series);
1489
+
1490
+ return Highcharts;
1491
+ });
1484
1492
  _registerModule(_modules, 'Maps/MapNavigationDefaults.js', [], function () {
1485
1493
  /* *
1486
1494
  *
@@ -1746,7 +1754,7 @@
1746
1754
 
1747
1755
  return mapNavigationDefaults;
1748
1756
  });
1749
- _registerModule(_modules, 'Maps/MapPointer.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
1757
+ _registerModule(_modules, 'Maps/MapPointer.js', [_modules['Core/Utilities.js']], function (U) {
1750
1758
  /* *
1751
1759
  *
1752
1760
  * (c) 2010-2024 Torstein Honsi
@@ -1756,8 +1764,7 @@
1756
1764
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1757
1765
  *
1758
1766
  * */
1759
- const { composed } = H;
1760
- const { defined, extend, pick, pushUnique, wrap } = U;
1767
+ const { defined, extend, pick, wrap } = U;
1761
1768
  /* *
1762
1769
  *
1763
1770
  * Composition
@@ -1782,14 +1789,13 @@
1782
1789
  * @private
1783
1790
  */
1784
1791
  function compose(PointerClass) {
1785
- if (pushUnique(composed, compose)) {
1786
- const pointerProto = PointerClass.prototype;
1792
+ const pointerProto = PointerClass.prototype;
1793
+ if (!pointerProto.onContainerDblClick) {
1787
1794
  extend(pointerProto, {
1788
1795
  onContainerDblClick,
1789
1796
  onContainerMouseWheel
1790
1797
  });
1791
1798
  wrap(pointerProto, 'normalize', wrapNormalize);
1792
- wrap(pointerProto, 'pinchTranslate', wrapPinchTranslate);
1793
1799
  wrap(pointerProto, 'zoomOption', wrapZoomOption);
1794
1800
  }
1795
1801
  }
@@ -1863,19 +1869,6 @@
1863
1869
  }
1864
1870
  return e;
1865
1871
  }
1866
- /**
1867
- * Extend the pinchTranslate method to preserve fixed ratio when zooming.
1868
- * @private
1869
- */
1870
- function wrapPinchTranslate(proceed, pinchDown, touches, transform, selectionMarker, clip, lastValidTouch) {
1871
- let xBigger;
1872
- proceed.call(this, pinchDown, touches, transform, selectionMarker, clip, lastValidTouch);
1873
- // Keep ratio
1874
- if (this.chart.options.chart.type === 'map' && this.hasZoom) {
1875
- xBigger = transform.scaleX > transform.scaleY;
1876
- this.pinchTranslateDirection(!xBigger, pinchDown, touches, transform, selectionMarker, clip, lastValidTouch, xBigger ? transform.scaleX : transform.scaleY);
1877
- }
1878
- }
1879
1872
  /**
1880
1873
  * The pinchType is inferred from mapNavigation options.
1881
1874
  * @private
@@ -1898,7 +1891,7 @@
1898
1891
 
1899
1892
  return MapPointer;
1900
1893
  });
1901
- _registerModule(_modules, 'Maps/MapSymbols.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
1894
+ _registerModule(_modules, 'Maps/MapSymbols.js', [], function () {
1902
1895
  /* *
1903
1896
  *
1904
1897
  * (c) 2010-2024 Torstein Honsi
@@ -1908,8 +1901,6 @@
1908
1901
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1909
1902
  *
1910
1903
  * */
1911
- const { composed } = H;
1912
- const { pushUnique } = U;
1913
1904
  /* *
1914
1905
  *
1915
1906
  * Variables
@@ -1930,11 +1921,9 @@
1930
1921
  return symbols.roundedRect(x, y, w, h, options);
1931
1922
  }
1932
1923
  function compose(SVGRendererClass) {
1933
- if (pushUnique(composed, compose)) {
1934
- symbols = SVGRendererClass.prototype.symbols;
1935
- symbols.bottombutton = bottomButton;
1936
- symbols.topbutton = topButton;
1937
- }
1924
+ symbols = SVGRendererClass.prototype.symbols;
1925
+ symbols.bottombutton = bottomButton;
1926
+ symbols.topbutton = topButton;
1938
1927
  }
1939
1928
  function topButton(x, y, w, h, options) {
1940
1929
  if (options) {
@@ -2011,7 +2000,7 @@
2011
2000
  static compose(MapChartClass, PointerClass, SVGRendererClass) {
2012
2001
  MapPointer.compose(PointerClass);
2013
2002
  MapSymbols.compose(SVGRendererClass);
2014
- if (pushUnique(composed, this.compose)) {
2003
+ if (pushUnique(composed, 'Map.Navigation')) {
2015
2004
  // Extend the Chart.render method to add zooming and panning
2016
2005
  addEvent(MapChartClass, 'beforeRender', function () {
2017
2006
  // Render the plus and minus buttons. Doing this before the
@@ -2066,7 +2055,7 @@
2066
2055
  if (!mapNav.navButtonsGroup) {
2067
2056
  mapNav.navButtonsGroup = chart.renderer.g()
2068
2057
  .attr({
2069
- zIndex: 4 // #4955, // #8392
2058
+ zIndex: 7 // #4955, #8392, #20476
2070
2059
  })
2071
2060
  .add();
2072
2061
  }
@@ -2306,7 +2295,7 @@
2306
2295
  (this.value === void 0 || !isNaN(this.value)));
2307
2296
  }
2308
2297
  /**
2309
- * Get the color attibutes to apply on the graphic
2298
+ * Get the color attributes to apply on the graphic
2310
2299
  * @private
2311
2300
  * @function Highcharts.colorMapSeriesMixin.colorAttribs
2312
2301
  * @param {Highcharts.Point} point
@@ -2373,7 +2362,7 @@
2373
2362
  * Custom options.
2374
2363
  *
2375
2364
  * @param {Function} [callback]
2376
- * Function to run when the chart has loaded and and all external
2365
+ * Function to run when the chart has loaded and all external
2377
2366
  * images are loaded.
2378
2367
  *
2379
2368
  *
@@ -2447,6 +2436,16 @@
2447
2436
  void 0);
2448
2437
  }
2449
2438
  }
2439
+ update(options) {
2440
+ // Calculate and set the recommended map view if map option is set
2441
+ if (options.chart && 'map' in options.chart) {
2442
+ this.mapView?.recommendMapView(this, [
2443
+ options.chart.map,
2444
+ ...(this.options.series || []).map((s) => s.mapData)
2445
+ ], true);
2446
+ }
2447
+ super.update.apply(this, arguments);
2448
+ }
2450
2449
  }
2451
2450
  /* *
2452
2451
  *
@@ -2529,7 +2528,7 @@
2529
2528
  // specific styled mode files.
2530
2529
  const split = path.split(/[ ,;]+/);
2531
2530
  arr = split.map((item) => {
2532
- if (!/[A-za-z]/.test(item)) {
2531
+ if (!/[A-Za-z]/.test(item)) {
2533
2532
  return parseFloat(item);
2534
2533
  }
2535
2534
  return item;
@@ -2666,7 +2665,11 @@
2666
2665
  const joinKey = joinBy[1], mapKey = super.getNestedProperty(joinKey), mapPoint = typeof mapKey !== 'undefined' &&
2667
2666
  series.mapMap[mapKey];
2668
2667
  if (mapPoint) {
2669
- extend(point, mapPoint); // copy over properties
2668
+ // Copy over properties; #20231 prioritize point.name
2669
+ extend(point, {
2670
+ ...mapPoint,
2671
+ name: point.name ?? mapPoint.name
2672
+ });
2670
2673
  }
2671
2674
  else if (series.pointArrayMap.indexOf('value') !== -1) {
2672
2675
  point.value = point.value || null;
@@ -2843,7 +2846,9 @@
2843
2846
  formatter: function () {
2844
2847
  const { numberFormatter } = this.series.chart;
2845
2848
  const { value } = this.point;
2846
- return isNumber(value) ? numberFormatter(value, -1) : '';
2849
+ return isNumber(value) ?
2850
+ numberFormatter(value, -1) :
2851
+ this.point.name; // #20231
2847
2852
  },
2848
2853
  inside: true,
2849
2854
  overflow: false,
@@ -3311,7 +3316,7 @@
3311
3316
  */
3312
3317
  /**
3313
3318
  * For map and mapline series types, the SVG path for the shape. For
3314
- * compatibily with old IE, not all SVG path definitions are supported,
3319
+ * compatibility with old IE, not all SVG path definitions are supported,
3315
3320
  * but M, L and C operators are safe.
3316
3321
  *
3317
3322
  * To achieve a better separation between the structure and the data,
@@ -3665,9 +3670,9 @@
3665
3670
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3666
3671
  *
3667
3672
  * */
3668
- const { composed, win } = H;
3673
+ const { win } = H;
3669
3674
  const { format } = T;
3670
- const { error, extend, merge, pushUnique, wrap } = U;
3675
+ const { error, extend, merge, wrap } = U;
3671
3676
  /* *
3672
3677
  *
3673
3678
  * Composition
@@ -3814,13 +3819,13 @@
3814
3819
  }
3815
3820
  /** @private */
3816
3821
  function compose(ChartClass) {
3817
- if (pushUnique(composed, compose)) {
3818
- const proto = ChartClass.prototype;
3819
- proto.fromLatLonToPoint = chartFromLatLonToPoint;
3820
- proto.fromPointToLatLon = chartFromPointToLatLon;
3821
- proto.transformFromLatLon = chartTransformFromLatLon;
3822
- proto.transformToLatLon = chartTransformToLatLon;
3823
- wrap(proto, 'addCredits', wrapChartAddCredit);
3822
+ const chartProto = ChartClass.prototype;
3823
+ if (!chartProto.transformFromLatLon) {
3824
+ chartProto.fromLatLonToPoint = chartFromLatLonToPoint;
3825
+ chartProto.fromPointToLatLon = chartFromPointToLatLon;
3826
+ chartProto.transformFromLatLon = chartTransformFromLatLon;
3827
+ chartProto.transformToLatLon = chartTransformToLatLon;
3828
+ wrap(chartProto, 'addCredits', wrapChartAddCredit);
3824
3829
  }
3825
3830
  }
3826
3831
  GeoJSONComposition.compose = compose;
@@ -3916,8 +3921,9 @@
3916
3921
  objectName = Object.keys(topology.objects)[0];
3917
3922
  }
3918
3923
  const obj = topology.objects[objectName];
3919
- // Already decoded => return cache
3920
- if (obj['hc-decoded-geojson']) {
3924
+ // Already decoded with the same title => return cache
3925
+ if (obj['hc-decoded-geojson'] &&
3926
+ obj['hc-decoded-geojson'].title === topology.title) {
3921
3927
  return obj['hc-decoded-geojson'];
3922
3928
  }
3923
3929
  // Do the initial transform
@@ -3939,7 +3945,7 @@
3939
3945
  }
3940
3946
  }
3941
3947
  }
3942
- // Recurse down any depth of multi-dimentional arrays of arcs and insert
3948
+ // Recurse down any depth of multi-dimensional arrays of arcs and insert
3943
3949
  // the coordinates
3944
3950
  const arcsToCoordinates = (arcs) => {
3945
3951
  if (typeof arcs[0] === 'number') {
@@ -4077,7 +4083,7 @@
4077
4083
  * @name Highcharts.GeoJSONTranslation#crs
4078
4084
  * @type {string}
4079
4085
  */ /**
4080
- * Define the portion of the map that this defintion applies to. Defined as a
4086
+ * Define the portion of the map that this definition applies to. Defined as a
4081
4087
  * GeoJSON polygon feature object, with `type` and `coordinates` properties.
4082
4088
  * @name Highcharts.GeoJSONTranslation#hitZone
4083
4089
  * @type {Highcharts.Dictionary<*>|undefined}
@@ -4151,6 +4157,12 @@
4151
4157
  *
4152
4158
  * @typedef {Array<number>} Highcharts.LonLatArray
4153
4159
  */
4160
+ /**
4161
+ * An array of GeoJSON or TopoJSON objects or strings used as map data for
4162
+ * series.
4163
+ *
4164
+ * @typedef {Array<*>|GeoJSON|TopoJSON|string} Highcharts.MapDataType
4165
+ */
4154
4166
  /**
4155
4167
  * A TopoJSON object, see description on the
4156
4168
  * [project's GitHub page](https://github.com/topojson/topojson).
@@ -5233,6 +5245,19 @@
5233
5245
  const { width, height } = playingField, scaleToField = Math.max((b.x2 - b.x1) / (width / tileSize), (b.y2 - b.y1) / (height / tileSize));
5234
5246
  return Math.log(worldSize / scaleToField) / Math.log(2);
5235
5247
  }
5248
+ /**
5249
+ * Calculate and set the recommended map view drilldown or drillup if mapData
5250
+ * is set for the series.
5251
+ * @private
5252
+ */
5253
+ function recommendedMapViewAfterDrill(e) {
5254
+ if (e.seriesOptions.mapData) {
5255
+ this.mapView?.recommendMapView(this, [
5256
+ this.options.chart.map,
5257
+ e.seriesOptions.mapData
5258
+ ], this.options.drilldown?.mapZooming);
5259
+ }
5260
+ }
5236
5261
  /*
5237
5262
  const mergeCollections = <
5238
5263
  T extends Array<AnyRecord|undefined>
@@ -5282,7 +5307,7 @@
5282
5307
  *
5283
5308
  * */
5284
5309
  static compose(MapChartClass) {
5285
- if (pushUnique(composed, this.compose)) {
5310
+ if (pushUnique(composed, 'MapView')) {
5286
5311
  maps = MapChartClass.maps;
5287
5312
  // Initialize MapView after initialization, but before firstRender
5288
5313
  addEvent(MapChartClass, 'afterInit', function () {
@@ -5295,6 +5320,8 @@
5295
5320
  */
5296
5321
  this.mapView = new MapView(this, this.options.mapView);
5297
5322
  }, { order: 0 });
5323
+ addEvent(MapChartClass, 'addSeriesAsDrilldown', recommendedMapViewAfterDrill);
5324
+ addEvent(MapChartClass, 'afterDrillUp', recommendedMapViewAfterDrill);
5298
5325
  }
5299
5326
  }
5300
5327
  /**
@@ -5347,66 +5374,17 @@
5347
5374
  this.eventsToUnbind = [];
5348
5375
  this.insets = [];
5349
5376
  this.padding = [0, 0, 0, 0];
5350
- let recommendedMapView;
5351
- let recommendedProjection;
5377
+ this.recommendedMapView = {};
5352
5378
  if (!(this instanceof MapViewInset)) {
5353
- // Handle the global map and series-level mapData
5354
- const geoMaps = [
5379
+ this.recommendMapView(chart, [
5355
5380
  chart.options.chart.map,
5356
5381
  ...(chart.options.series || []).map((s) => s.mapData)
5357
- ]
5358
- .map((mapData) => this.getGeoMap(mapData));
5359
- const allGeoBounds = [];
5360
- geoMaps.forEach((geoMap) => {
5361
- if (geoMap) {
5362
- // Use the first geo map as main
5363
- if (!recommendedMapView) {
5364
- recommendedMapView =
5365
- geoMap['hc-recommended-mapview'];
5366
- }
5367
- // Combine the bounding boxes of all loaded maps
5368
- if (geoMap.bbox) {
5369
- const [x1, y1, x2, y2] = geoMap.bbox;
5370
- allGeoBounds.push({ x1, y1, x2, y2 });
5371
- }
5372
- }
5373
- });
5374
- // Get the composite bounds
5375
- const geoBounds = (allGeoBounds.length &&
5376
- MapView.compositeBounds(allGeoBounds));
5377
- // Provide a best-guess recommended projection if not set in
5378
- // the map or in user options
5379
- fireEvent(chart, 'beforeMapViewInit', {
5380
- geoBounds
5381
- }, function () {
5382
- if (geoBounds) {
5383
- const { x1, y1, x2, y2 } = geoBounds;
5384
- recommendedProjection =
5385
- (x2 - x1 > 180 && y2 - y1 > 90) ?
5386
- // Wide angle, go for the world view
5387
- {
5388
- name: 'EqualEarth'
5389
- } :
5390
- // Narrower angle, use a projection better
5391
- // suited for local view
5392
- {
5393
- name: 'LambertConformalConic',
5394
- parallels: [y1, y2],
5395
- rotation: [-(x1 + x2) / 2]
5396
- };
5397
- }
5398
- });
5399
- // Register the main geo map (from options.chart.map) if set
5400
- this.geoMap = geoMaps[0];
5382
+ ]);
5401
5383
  }
5402
5384
  this.userOptions = options || {};
5403
- if (chart.options.mapView &&
5404
- chart.options.mapView.recommendedMapView) {
5405
- recommendedMapView = chart.options.mapView.recommendedMapView;
5406
- }
5407
- const o = merge(MapViewDefaults, { projection: recommendedProjection }, recommendedMapView, options);
5385
+ const o = merge(MapViewDefaults, this.recommendedMapView, options);
5408
5386
  // Merge the inset collections by id, or index if id missing
5409
- const recInsets = recommendedMapView && recommendedMapView.insets, optInsets = options && options.insets;
5387
+ const recInsets = this.recommendedMapView?.insets, optInsets = options && options.insets;
5410
5388
  if (recInsets && optInsets) {
5411
5389
  o.insets = MapView.mergeInsets(recInsets, optInsets);
5412
5390
  }
@@ -5703,6 +5681,90 @@
5703
5681
  const coordinates = this.projection.inverse([point.x, point.y]);
5704
5682
  return { lon: coordinates[0], lat: coordinates[1] };
5705
5683
  }
5684
+ /**
5685
+ * Calculate and set the recommended map view based on provided map data
5686
+ * from series.
5687
+ *
5688
+ * @requires modules/map
5689
+ *
5690
+ * @function Highcharts.MapView#recommendMapView
5691
+ *
5692
+ * @since @next
5693
+ *
5694
+ * @param {Highcharts.Chart} chart
5695
+ * Chart object
5696
+ *
5697
+ * @param {Array<MapDataType | undefined>} mapDataArray
5698
+ * Array of map data from all series.
5699
+ *
5700
+ * @param {boolean} [update=false]
5701
+ * Whether to update the chart with recommended map view.
5702
+ *
5703
+ * @return {Highcharts.MapViewOptions|undefined} Best suitable map view.
5704
+ */
5705
+ recommendMapView(chart, mapDataArray, update = false) {
5706
+ // Reset recommended map view
5707
+ this.recommendedMapView = {};
5708
+ // Handle the global map and series-level mapData
5709
+ const geoMaps = mapDataArray.map((mapData) => this.getGeoMap(mapData));
5710
+ const allGeoBounds = [];
5711
+ geoMaps.forEach((geoMap) => {
5712
+ if (geoMap) {
5713
+ // Use the first geo map as main
5714
+ if (!Object.keys(this.recommendedMapView).length) {
5715
+ this.recommendedMapView =
5716
+ geoMap['hc-recommended-mapview'] || {};
5717
+ }
5718
+ // Combine the bounding boxes of all loaded maps
5719
+ if (geoMap.bbox) {
5720
+ const [x1, y1, x2, y2] = geoMap.bbox;
5721
+ allGeoBounds.push({ x1, y1, x2, y2 });
5722
+ }
5723
+ }
5724
+ });
5725
+ // Get the composite bounds
5726
+ const geoBounds = (allGeoBounds.length &&
5727
+ MapView.compositeBounds(allGeoBounds));
5728
+ // Provide a best-guess recommended projection if not set in
5729
+ // the map or in user options
5730
+ fireEvent(this, 'onRecommendMapView', {
5731
+ geoBounds,
5732
+ chart
5733
+ }, function () {
5734
+ if (geoBounds &&
5735
+ this.recommendedMapView) {
5736
+ if (!this.recommendedMapView.projection) {
5737
+ const { x1, y1, x2, y2 } = geoBounds;
5738
+ this.recommendedMapView.projection =
5739
+ (x2 - x1 > 180 && y2 - y1 > 90) ?
5740
+ // Wide angle, go for the world view
5741
+ {
5742
+ name: 'EqualEarth',
5743
+ parallels: [0, 0],
5744
+ rotation: [0]
5745
+ } :
5746
+ // Narrower angle, use a projection better
5747
+ // suited for local view
5748
+ {
5749
+ name: 'LambertConformalConic',
5750
+ parallels: [y1, y2],
5751
+ rotation: [-(x1 + x2) / 2]
5752
+ };
5753
+ }
5754
+ if (!this.recommendedMapView.insets) {
5755
+ this.recommendedMapView.insets = void 0; // Reset insets
5756
+ }
5757
+ }
5758
+ });
5759
+ // Register the main geo map (from options.chart.map) if set
5760
+ this.geoMap = geoMaps[0];
5761
+ if (update &&
5762
+ chart.hasRendered &&
5763
+ !chart.userOptions.mapView?.projection &&
5764
+ this.recommendedMapView) {
5765
+ this.update(this.recommendedMapView);
5766
+ }
5767
+ }
5706
5768
  redraw(animation) {
5707
5769
  this.chart.series.forEach((s) => {
5708
5770
  if (s.useMapGeometry) {
@@ -5848,21 +5910,34 @@
5848
5910
  }
5849
5911
  setUpEvents() {
5850
5912
  const { chart } = this;
5851
- // Set up panning for maps. In orthographic projections the globe will
5852
- // rotate, otherwise adjust the map center.
5853
- let mouseDownCenterProjected;
5854
- let mouseDownKey;
5855
- let mouseDownRotation;
5913
+ // Set up panning and touch zoom for maps. In orthographic projections
5914
+ // the globe will rotate, otherwise adjust the map center and zoom.
5915
+ let mouseDownCenterProjected, mouseDownKey, mouseDownRotation;
5856
5916
  const onPan = (e) => {
5857
- const pinchDown = chart.pointer.pinchDown, projection = this.projection;
5858
- let { mouseDownX, mouseDownY } = chart;
5859
- if (pinchDown.length === 1) {
5917
+ const { lastTouches, pinchDown } = chart.pointer, projection = this.projection, touches = e.touches;
5918
+ let { mouseDownX, mouseDownY } = chart, howMuch = 0;
5919
+ if (pinchDown?.length === 1) {
5860
5920
  mouseDownX = pinchDown[0].chartX;
5861
5921
  mouseDownY = pinchDown[0].chartY;
5862
5922
  }
5863
- if (typeof mouseDownX === 'number' &&
5864
- typeof mouseDownY === 'number') {
5865
- const key = `${mouseDownX},${mouseDownY}`, { chartX, chartY } = e.originalEvent;
5923
+ else if (pinchDown?.length === 2) {
5924
+ mouseDownX = (pinchDown[0].chartX + pinchDown[1].chartX) / 2;
5925
+ mouseDownY = (pinchDown[0].chartY + pinchDown[1].chartY) / 2;
5926
+ }
5927
+ // How much has the distance between the fingers changed?
5928
+ if (touches?.length === 2 && lastTouches) {
5929
+ const startDistance = Math.sqrt(Math.pow(lastTouches[0].chartX - lastTouches[1].chartX, 2) +
5930
+ Math.pow(lastTouches[0].chartY - lastTouches[1].chartY, 2)), endDistance = Math.sqrt(Math.pow(touches[0].chartX - touches[1].chartX, 2) +
5931
+ Math.pow(touches[0].chartY - touches[1].chartY, 2));
5932
+ howMuch = Math.log(startDistance / endDistance) / Math.log(0.5);
5933
+ }
5934
+ if (isNumber(mouseDownX) && isNumber(mouseDownY)) {
5935
+ const key = `${mouseDownX},${mouseDownY}`;
5936
+ let { chartX, chartY } = e.originalEvent;
5937
+ if (touches?.length === 2) {
5938
+ chartX = (touches[0].chartX + touches[1].chartX) / 2;
5939
+ chartY = (touches[0].chartY + touches[1].chartY) / 2;
5940
+ }
5866
5941
  // Reset starting position
5867
5942
  if (key !== mouseDownKey) {
5868
5943
  mouseDownKey = key;
@@ -5876,6 +5951,7 @@
5876
5951
  zoomFromBounds(worldBounds, this.playingField)) || -Infinity;
5877
5952
  // Panning rotates the globe
5878
5953
  if (projection.options.name === 'Orthographic' &&
5954
+ (touches?.length || 0) < 2 &&
5879
5955
  // ... but don't rotate if we're loading only a part of the
5880
5956
  // world
5881
5957
  (this.minZoom || Infinity) < worldZoom * 1.3) {
@@ -5909,7 +5985,7 @@
5909
5985
  ]);
5910
5986
  // #19190 Skip NaN coords
5911
5987
  if (!isNaN(newCenter[0] + newCenter[1])) {
5912
- this.setView(newCenter, void 0, true, false);
5988
+ this.zoomBy(howMuch, newCenter, void 0, false);
5913
5989
  }
5914
5990
  }
5915
5991
  e.preventDefault();
@@ -6039,13 +6115,10 @@
6039
6115
  * The animation to apply to a the redraw
6040
6116
  */
6041
6117
  zoomBy(howMuch, coords, chartCoords, animation) {
6042
- const chart = this.chart;
6043
- const projectedCenter = this.projection.forward(this.center);
6044
- // let { x, y } = coords || {};
6045
- let [x, y] = coords ? this.projection.forward(coords) : [];
6118
+ const chart = this.chart, projectedCenter = this.projection.forward(this.center);
6046
6119
  if (typeof howMuch === 'number') {
6047
6120
  const zoom = this.zoom + howMuch;
6048
- let center;
6121
+ let center, x, y;
6049
6122
  // Keep chartX and chartY stationary - convert to lat and lng
6050
6123
  if (chartCoords) {
6051
6124
  const [chartX, chartY] = chartCoords;
@@ -6058,14 +6131,13 @@
6058
6131
  // Keep lon and lat stationary by adjusting the center
6059
6132
  if (typeof x === 'number' && typeof y === 'number') {
6060
6133
  const scale = 1 - Math.pow(2, this.zoom) / Math.pow(2, zoom);
6061
- // const projectedCenter = this.projection.forward(this.center);
6062
6134
  const offsetX = projectedCenter[0] - x;
6063
6135
  const offsetY = projectedCenter[1] - y;
6064
6136
  projectedCenter[0] -= offsetX * scale;
6065
6137
  projectedCenter[1] += offsetY * scale;
6066
6138
  center = this.projection.inverse(projectedCenter);
6067
6139
  }
6068
- this.setView(center, zoom, void 0, animation);
6140
+ this.setView(coords || center, zoom, void 0, animation);
6069
6141
  // Undefined howMuch => reset zoom
6070
6142
  }
6071
6143
  else {
@@ -6352,7 +6424,7 @@
6352
6424
  if (this.doFullTranslate()) {
6353
6425
  // Individual point actions.
6354
6426
  this.points.forEach((point) => {
6355
- const { graphic, shapeArgs } = point;
6427
+ const { graphic } = point;
6356
6428
  // Points should be added in the corresponding transform group
6357
6429
  point.group = transformGroups[typeof point.insetIndex === 'number' ?
6358
6430
  point.insetIndex + 1 :
@@ -6388,6 +6460,13 @@
6388
6460
  if (chart.styledMode) {
6389
6461
  graphic.css(this.pointAttribs(point, point.selected && 'select' || void 0));
6390
6462
  }
6463
+ // If the map point is not visible and is not null (e.g.
6464
+ // hidden by data classes), then the point should be
6465
+ // visible, but without value
6466
+ graphic.attr({
6467
+ visibility: (point.visible ||
6468
+ (!point.visible && !point.isNull)) ? 'inherit' : 'hidden'
6469
+ });
6391
6470
  graphic.animate = function (params, options, complete) {
6392
6471
  const animateIn = (isNumber(params['stroke-width']) &&
6393
6472
  !isNumber(graphic['stroke-width'])), animateOut = (isNumber(graphic['stroke-width']) &&
@@ -6513,7 +6592,7 @@
6513
6592
  // Find the bounding box of each point
6514
6593
  (this.points || []).forEach((point) => {
6515
6594
  if (point.path || point.geometry) {
6516
- // @todo Try to puth these two conversions in
6595
+ // @todo Try to put these two conversions in
6517
6596
  // MapPoint.applyOptions
6518
6597
  if (typeof point.path === 'string') {
6519
6598
  point.path = splitPath(point.path);
@@ -6857,16 +6936,34 @@
6857
6936
  d: MapPoint.getProjectedPath(point, projection)
6858
6937
  };
6859
6938
  }
6860
- if (point.projectedPath && !point.projectedPath.length) {
6861
- point.setVisible(false);
6862
- }
6863
- else if (!point.visible) {
6864
- point.setVisible(true);
6939
+ if (!point.hiddenInDataClass) { // #20441
6940
+ if (point.projectedPath && !point.projectedPath.length) {
6941
+ point.setVisible(false);
6942
+ }
6943
+ else if (!point.visible) {
6944
+ point.setVisible(true);
6945
+ }
6865
6946
  }
6866
6947
  });
6867
6948
  }
6868
6949
  fireEvent(series, 'afterTranslate');
6869
6950
  }
6951
+ update(options) {
6952
+ // Calculate and set the recommended map view after every series update
6953
+ // if new mapData is set
6954
+ if (options.mapData) {
6955
+ this.chart.mapView?.recommendMapView(this.chart, [
6956
+ this.chart.options.chart.map,
6957
+ ...(this.chart.options.series || []).map((s, i) => {
6958
+ if (i === this._i) {
6959
+ return options.mapData;
6960
+ }
6961
+ return s.mapData;
6962
+ })
6963
+ ], true);
6964
+ }
6965
+ super.update.apply(this, arguments);
6966
+ }
6870
6967
  }
6871
6968
  MapSeries.defaultOptions = merge(ScatterSeries.defaultOptions, MapSeriesDefaults);
6872
6969
  extend(MapSeries.prototype, {
@@ -7721,7 +7818,7 @@
7721
7818
  y: 0
7722
7819
  },
7723
7820
  /**
7724
- * Miximum bubble legend range size. If values for ranges are
7821
+ * Maximum bubble legend range size. If values for ranges are
7725
7822
  * not specified, the `minSize` and the `maxSize` are calculated
7726
7823
  * from bubble series.
7727
7824
  */
@@ -7796,7 +7893,7 @@
7796
7893
  */
7797
7894
  zIndex: 1,
7798
7895
  /**
7799
- * Ranges with with lower value than zThreshold, are skipped.
7896
+ * Ranges with lower value than zThreshold are skipped.
7800
7897
  */
7801
7898
  zThreshold: 0
7802
7899
  };
@@ -7887,9 +7984,9 @@
7887
7984
  * Legend instance
7888
7985
  */
7889
7986
  drawLegendSymbol(legend) {
7890
- const chart = this.chart, itemDistance = pick(legend.options.itemDistance, 20), legendItem = this.legendItem || {}, options = this.options, ranges = options.ranges, connectorDistance = options.connectorDistance;
7987
+ const itemDistance = pick(legend.options.itemDistance, 20), legendItem = this.legendItem || {}, options = this.options, ranges = options.ranges, connectorDistance = options.connectorDistance;
7891
7988
  let connectorSpace;
7892
- // Do not create bubbleLegend now if ranges or ranges valeus are not
7989
+ // Do not create bubbleLegend now if ranges or ranges values are not
7893
7990
  // specified or if are empty array.
7894
7991
  if (!ranges || !ranges.length || !isNumber(ranges[0].value)) {
7895
7992
  legend.options.bubbleLegend.autoRanges = true;
@@ -8177,7 +8274,7 @@
8177
8274
  predictBubbleSizes() {
8178
8275
  const chart = this.chart, legendOptions = chart.legend.options, floating = legendOptions.floating, horizontal = legendOptions.layout === 'horizontal', lastLineHeight = horizontal ? chart.legend.lastLineHeight : 0, plotSizeX = chart.plotSizeX, plotSizeY = chart.plotSizeY, bubbleSeries = chart.series[this.options.seriesIndex], pxSizes = bubbleSeries.getPxExtremes(), minSize = Math.ceil(pxSizes.minPxSize), maxPxSize = Math.ceil(pxSizes.maxPxSize), plotSize = Math.min(plotSizeY, plotSizeX);
8179
8276
  let calculatedSize, maxSize = bubbleSeries.options.maxSize;
8180
- // Calculate prediceted max size of bubble
8277
+ // Calculate predicted max size of bubble
8181
8278
  if (floating || !(/%$/.test(maxSize))) {
8182
8279
  calculatedSize = maxPxSize;
8183
8280
  }
@@ -8341,7 +8438,7 @@
8341
8438
  * Core series class to use with Bubble series.
8342
8439
  */
8343
8440
  function compose(ChartClass, LegendClass, SeriesClass) {
8344
- if (pushUnique(composed, compose)) {
8441
+ if (pushUnique(composed, 'Series.BubbleLegend')) {
8345
8442
  setOptions({
8346
8443
  // Set default bubble legend options
8347
8444
  legend: {
@@ -8650,7 +8747,7 @@
8650
8747
  * */
8651
8748
  static compose(AxisClass, ChartClass, LegendClass, SeriesClass) {
8652
8749
  BubbleLegendComposition.compose(ChartClass, LegendClass, SeriesClass);
8653
- if (pushUnique(composed, this.compose)) {
8750
+ if (pushUnique(composed, 'Series.Bubble')) {
8654
8751
  addEvent(AxisClass, 'foundExtremes', onAxisFoundExtremes);
8655
8752
  }
8656
8753
  }
@@ -10089,7 +10186,7 @@
10089
10186
  * @apioption series.heatmap.data.color
10090
10187
  */
10091
10188
  /**
10092
- * The value of the point, resulting in a color controled by options
10189
+ * The value of the point, resulting in a color controlled by options
10093
10190
  * as set in the [colorAxis](#colorAxis) configuration.
10094
10191
  *
10095
10192
  * @type {number}
@@ -10723,7 +10820,7 @@
10723
10820
  */
10724
10821
  /**
10725
10822
  * Heatmap series only. The value of the point, resulting in a color
10726
- * controled by options as set in the colorAxis configuration.
10823
+ * controlled by options as set in the colorAxis configuration.
10727
10824
  * @name Highcharts.Point#value
10728
10825
  * @type {number|null|undefined}
10729
10826
  */
@@ -10734,7 +10831,7 @@
10734
10831
  * @name Highcharts.PointOptionsObject#pointPadding
10735
10832
  * @type {number|undefined}
10736
10833
  */ /**
10737
- * Heatmap series only. The value of the point, resulting in a color controled
10834
+ * Heatmap series only. The value of the point, resulting in a color controlled
10738
10835
  * by options as set in the colorAxis configuration.
10739
10836
  * @name Highcharts.PointOptionsObject#value
10740
10837
  * @type {number|null|undefined}
@@ -10743,23 +10840,27 @@
10743
10840
 
10744
10841
  return HeatmapSeries;
10745
10842
  });
10746
- _registerModule(_modules, 'masters/modules/map.src.js', [_modules['Core/Globals.js'], _modules['Core/Axis/Color/ColorAxis.js'], _modules['Maps/MapNavigation.js'], _modules['Series/MapBubble/MapBubbleSeries.js'], _modules['Maps/GeoJSONComposition.js'], _modules['Core/Chart/MapChart.js'], _modules['Maps/MapView.js'], _modules['Maps/Projection.js']], function (Highcharts, ColorAxis, MapNavigation, MapBubbleSeries, GeoJSONComposition, MapChart, MapView, Projection) {
10843
+ _registerModule(_modules, 'masters/modules/map.src.js', [_modules['Core/Globals.js'], _modules['Maps/MapNavigation.js'], _modules['Series/ColorMapComposition.js'], _modules['Series/MapBubble/MapBubbleSeries.js'], _modules['Maps/GeoJSONComposition.js'], _modules['Core/Chart/MapChart.js'], _modules['Maps/MapView.js'], _modules['Maps/Projection.js']], function (Highcharts, MapNavigation, ColorMapComposition, MapBubbleSeries, GeoJSONComposition, MapChart, MapView, Projection) {
10747
10844
 
10748
10845
  const G = Highcharts;
10749
- G.ColorAxis = ColorAxis;
10750
- G.MapChart = MapChart;
10751
- G.mapChart = G.Map = MapChart.mapChart;
10752
- G.MapNavigation = MapNavigation;
10753
- G.MapView = MapView;
10754
- G.maps = MapChart.maps;
10755
- G.Projection = Projection;
10846
+ // Classes
10847
+ G.ColorMapComposition = ColorMapComposition;
10848
+ G.MapChart = G.MapChart || MapChart;
10849
+ G.MapNavigation = G.MapNavigation || MapNavigation;
10850
+ G.MapView = G.MapView || MapView;
10851
+ G.Projection = G.Projection || Projection;
10852
+ // Functions
10853
+ G.mapChart = G.Map = G.MapChart.mapChart;
10854
+ G.maps = G.MapChart.maps;
10756
10855
  G.geojson = GeoJSONComposition.geojson;
10757
10856
  G.topo2geo = GeoJSONComposition.topo2geo;
10758
- ColorAxis.compose(G.Chart, G.Fx, G.Legend, G.Series);
10857
+ // Compositions
10759
10858
  GeoJSONComposition.compose(G.Chart);
10760
10859
  MapBubbleSeries.compose(G.Axis, G.Chart, G.Legend, G.Series);
10761
10860
  MapNavigation.compose(MapChart, G.Pointer, G.SVGRenderer);
10762
10861
  MapView.compose(MapChart);
10862
+ // Default Export
10763
10863
 
10864
+ return Highcharts;
10764
10865
  });
10765
10866
  }));