highcharts 13.0.0 → 13.0.1

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 (1148) hide show
  1. package/bower.json +3 -2
  2. package/css/highcharts.css +2 -1
  3. package/es-modules/Accessibility/Accessibility.js +38 -1
  4. package/es-modules/Accessibility/Components/LegendComponent.js +1 -2
  5. package/es-modules/Accessibility/Components/NavigatorComponent.js +1 -2
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +8 -4
  7. package/es-modules/Accessibility/Options/A11yDefaults.js +12 -3
  8. package/es-modules/Accessibility/ProxyElement.js +1 -0
  9. package/es-modules/Core/Animation/AnimationUtilities.js +31 -41
  10. package/es-modules/Core/Animation/Fx.js +16 -19
  11. package/es-modules/Core/Axis/Axis.js +1 -2
  12. package/es-modules/Core/Axis/AxisDefaults.js +12 -2
  13. package/es-modules/Core/Axis/Color/ColorAxis.js +7 -2
  14. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +1 -1
  15. package/es-modules/Core/Axis/GridAxis.js +8 -1
  16. package/es-modules/Core/Axis/OrdinalAxis.js +12 -4
  17. package/es-modules/Core/Axis/RadialAxis.js +9 -14
  18. package/es-modules/Core/Axis/Stacking/StackingAxis.js +1 -2
  19. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +1 -1
  20. package/es-modules/Core/Chart/Chart.js +44 -39
  21. package/es-modules/Core/Chart/ChartDefaults.js +1 -1
  22. package/es-modules/Core/Chart/MapChart.js +0 -5
  23. package/es-modules/Core/Defaults.js +9 -2
  24. package/es-modules/Core/Globals.js +1 -1
  25. package/es-modules/Core/Legend/Legend.js +4 -5
  26. package/es-modules/Core/Pointer.js +11 -1
  27. package/es-modules/Core/Renderer/HTML/AST.js +5 -1
  28. package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -16
  29. package/es-modules/Core/Renderer/SVG/SVGElement.js +1 -2
  30. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +2 -2
  31. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +2 -3
  32. package/es-modules/Core/Series/DataLabel.js +1 -2
  33. package/es-modules/Core/Series/Point.js +28 -21
  34. package/es-modules/Core/Series/Series.js +89 -62
  35. package/es-modules/Core/Series/SeriesDefaults.js +33 -0
  36. package/es-modules/Core/Templating.js +16 -13
  37. package/es-modules/Core/Tooltip.js +1 -2
  38. package/es-modules/Data/DataTableCore.js +1 -1
  39. package/es-modules/Extensions/Annotations/Annotation.js +1 -2
  40. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +4 -4
  41. package/es-modules/Extensions/Annotations/MockPoint.js +7 -9
  42. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +30 -3
  43. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +2 -2
  44. package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -4
  45. package/es-modules/Extensions/Annotations/Types/Measure.js +25 -7
  46. package/es-modules/Extensions/Annotations/Types/TimeCycles.js +4 -2
  47. package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -1
  48. package/es-modules/Extensions/Boost/Boost.js +13 -0
  49. package/es-modules/Extensions/Boost/BoostSeries.js +9 -2
  50. package/es-modules/Extensions/BorderRadius.js +12 -10
  51. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +1 -1
  52. package/es-modules/Extensions/DraggablePoints/DraggableChart.js +1 -2
  53. package/es-modules/Extensions/Drilldown/Drilldown.js +1 -2
  54. package/es-modules/Extensions/Drilldown/DrilldownSeries.js +1 -2
  55. package/es-modules/Extensions/ExportData/ExportData.js +5 -1
  56. package/es-modules/Extensions/Exporting/Exporting.js +21 -21
  57. package/es-modules/Extensions/Exporting/ExportingDefaults.js +32 -0
  58. package/es-modules/Extensions/MarkerClusters/MarkerClusterScatter.js +1 -2
  59. package/es-modules/Extensions/MarkerClusters/MarkerClusters.js +1 -2
  60. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +31 -4
  61. package/es-modules/Extensions/Pane/PaneDefaults.js +1 -1
  62. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +3 -0
  63. package/es-modules/Extensions/ScrollablePlotArea.js +8 -2
  64. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +1 -2
  65. package/es-modules/Extensions/Sonification/SynthPatch.js +1 -1
  66. package/es-modules/Maps/GeoJSONComposition.js +14 -1
  67. package/es-modules/Maps/MapView.js +1 -1
  68. package/es-modules/Series/AreaRange/AreaRangeSeries.js +87 -147
  69. package/es-modules/Series/AreaRange/AreaRangeSeriesDefaults.js +42 -4
  70. package/es-modules/Series/Bellcurve/BellcurveSeries.js +10 -6
  71. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +27 -28
  72. package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +33 -1
  73. package/es-modules/Series/Bubble/BubbleSeries.js +15 -0
  74. package/es-modules/Series/Bullet/BulletSeries.js +1 -1
  75. package/es-modules/Series/Candlestick/CandlestickSeries.js +3 -3
  76. package/es-modules/Series/CenteredUtilities.js +5 -4
  77. package/es-modules/Series/ColorMapComposition.js +7 -4
  78. package/es-modules/Series/Column/ColumnPoint.js +2 -0
  79. package/es-modules/Series/Column/ColumnSeries.js +12 -12
  80. package/es-modules/Series/Column/ColumnSeriesDefaults.js +4 -2
  81. package/es-modules/Series/Column3D/Column3DComposition.js +16 -14
  82. package/es-modules/Series/ColumnPyramid/ColumnPyramidPoint.js +18 -0
  83. package/es-modules/Series/ColumnPyramid/ColumnPyramidPointOptions.js +12 -0
  84. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +3 -2
  85. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeriesOptions.js +12 -0
  86. package/es-modules/Series/ColumnRange/ColumnRangePoint.js +2 -0
  87. package/es-modules/Series/ColumnRange/ColumnRangePointOptions.js +12 -0
  88. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +9 -142
  89. package/es-modules/Series/ColumnRange/ColumnRangeSeriesDefaults.js +148 -0
  90. package/es-modules/Series/ColumnRange/ColumnRangeSeriesOptions.js +12 -0
  91. package/es-modules/Series/Contour/ContourPoint.js +2 -0
  92. package/es-modules/Series/Contour/ContourSeries.js +1 -0
  93. package/es-modules/Series/Contour/ContourSeriesDefaults.js +7 -0
  94. package/es-modules/Series/Contour/ContourShader.js +9 -1
  95. package/es-modules/Series/CrossSymbol.js +3 -2
  96. package/es-modules/Series/Cylinder/CylinderComposition.js +10 -10
  97. package/es-modules/Series/Cylinder/CylinderPoint.js +2 -0
  98. package/es-modules/Series/Cylinder/CylinderPointOptions.js +15 -0
  99. package/es-modules/Series/Cylinder/CylinderSeries.js +2 -1
  100. package/es-modules/Series/Cylinder/CylinderSeriesOptions.js +15 -0
  101. package/es-modules/Series/Cylinder/SVGElement3DCylinder.js +2 -0
  102. package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +3 -1
  103. package/es-modules/Series/DependencyWheel/DependencyWheelPointOptions.js +14 -0
  104. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +8 -8
  105. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesOptions.js +14 -0
  106. package/es-modules/Series/DerivedComposition.js +9 -8
  107. package/es-modules/Series/DotPlot/DotPlotPoint.js +18 -0
  108. package/es-modules/Series/DotPlot/DotPlotPointOptions.js +12 -0
  109. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
  110. package/es-modules/Series/DotPlot/DotPlotSeriesOptions.js +12 -0
  111. package/es-modules/Series/DragNodesComposition.js +11 -8
  112. package/es-modules/Series/DrawPointUtilities.js +3 -1
  113. package/es-modules/Series/Dumbbell/DumbbellPoint.js +5 -3
  114. package/es-modules/Series/Dumbbell/DumbbellPointOptions.js +12 -0
  115. package/es-modules/Series/Dumbbell/DumbbellSeries.js +9 -8
  116. package/es-modules/Series/Dumbbell/DumbbellSeriesOptions.js +12 -0
  117. package/es-modules/Series/ErrorBar/ErrorBarPoint.js +18 -0
  118. package/es-modules/Series/ErrorBar/ErrorBarPointOptions.js +12 -0
  119. package/es-modules/Series/ErrorBar/ErrorBarSeries.js +6 -9
  120. package/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js +15 -1
  121. package/es-modules/Series/ErrorBar/ErrorBarSeriesOptions.js +12 -0
  122. package/es-modules/Series/Flags/FlagsSeries.js +5 -14
  123. package/es-modules/Series/Flags/FlagsSeriesDefaults.js +2 -1
  124. package/es-modules/Series/Funnel/FunnelSeries.js +23 -24
  125. package/es-modules/Series/Funnel/FunnelSeriesDefaults.js +12 -0
  126. package/es-modules/Series/Gantt/GanttSeries.js +2 -1
  127. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +5 -5
  128. package/es-modules/Series/GraphLayoutComposition.js +3 -3
  129. package/es-modules/Series/Histogram/HistogramSeries.js +1 -1
  130. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +9 -9
  131. package/es-modules/Series/Map/MapSeries.js +1 -2
  132. package/es-modules/Series/Map/MapSeriesDefaults.js +11 -1
  133. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +10 -7
  134. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +12 -0
  135. package/es-modules/Series/OHLC/OHLCPoint.js +2 -2
  136. package/es-modules/Series/OHLC/OHLCSeries.js +1 -0
  137. package/es-modules/Series/Organization/OrganizationSeries.js +29 -7
  138. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +11 -4
  139. package/es-modules/Series/Pie/PiePoint.js +1 -2
  140. package/es-modules/Series/PolarComposition.js +5 -7
  141. package/es-modules/Series/Polygon/PolygonSeries.js +2 -2
  142. package/es-modules/Series/Polygon/PolygonSeriesDefaults.js +20 -0
  143. package/es-modules/Series/RangeDataLabel.js +128 -0
  144. package/es-modules/Series/Sankey/SankeySeries.js +2 -2
  145. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +2 -2
  146. package/es-modules/Series/Scatter/ScatterSeriesDefaults.js +2 -0
  147. package/es-modules/Series/SimulationSeriesUtilities.js +1 -2
  148. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
  149. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +8 -0
  150. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +12 -6
  151. package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -1
  152. package/es-modules/Series/Timeline/TimelineSeries.js +9 -3
  153. package/es-modules/Series/Treegraph/TreegraphSeries.js +22 -13
  154. package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +22 -1
  155. package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +3 -2
  156. package/es-modules/Series/Vector/VectorSeries.js +7 -9
  157. package/es-modules/Series/Venn/VennSeries.js +3 -4
  158. package/es-modules/Series/Waterfall/WaterfallSeries.js +1 -1
  159. package/es-modules/Series/Windbarb/WindbarbSeries.js +6 -8
  160. package/es-modules/Series/XRange/XRangeSeries.js +8 -8
  161. package/es-modules/Shared/TimeBase.js +5 -6
  162. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +1 -2
  163. package/es-modules/Stock/Navigator/NavigatorDefaults.js +9 -2
  164. package/es-modules/Stock/Navigator/NavigatorSymbols.js +2 -1
  165. package/es-modules/Stock/Navigator/StandaloneNavigator.js +51 -10
  166. package/es-modules/Stock/StockTools/StockToolbar.js +1 -1
  167. package/es-modules/Stock/StockTools/StockToolsBindings.js +7 -7
  168. package/es-modules/Stock/StockTools/StockToolsGui.js +2 -2
  169. package/es-modules/masters/highcharts-3d.src.js +1 -1
  170. package/es-modules/masters/highcharts-autoload.src.js +1 -1
  171. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  172. package/es-modules/masters/highcharts-more.src.js +1 -1
  173. package/es-modules/masters/highcharts.src.js +7 -7
  174. package/es-modules/masters/highmaps.src.js +1 -1
  175. package/es-modules/masters/highstock.src.js +1 -1
  176. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  177. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  178. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  179. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  180. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  181. package/es-modules/masters/i18n/zh-CN.src.js +1 -1
  182. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  183. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  184. package/es-modules/masters/indicators/ao.src.js +1 -1
  185. package/es-modules/masters/indicators/apo.src.js +1 -1
  186. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  187. package/es-modules/masters/indicators/aroon.src.js +1 -1
  188. package/es-modules/masters/indicators/atr.src.js +1 -1
  189. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  190. package/es-modules/masters/indicators/cci.src.js +1 -1
  191. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  192. package/es-modules/masters/indicators/cmf.src.js +1 -1
  193. package/es-modules/masters/indicators/cmo.src.js +1 -1
  194. package/es-modules/masters/indicators/dema.src.js +1 -1
  195. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  196. package/es-modules/masters/indicators/dmi.src.js +1 -1
  197. package/es-modules/masters/indicators/dpo.src.js +1 -1
  198. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  199. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  200. package/es-modules/masters/indicators/indicators.src.js +1 -1
  201. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  202. package/es-modules/masters/indicators/klinger.src.js +1 -1
  203. package/es-modules/masters/indicators/macd.src.js +1 -1
  204. package/es-modules/masters/indicators/mfi.src.js +1 -1
  205. package/es-modules/masters/indicators/momentum.src.js +1 -1
  206. package/es-modules/masters/indicators/natr.src.js +1 -1
  207. package/es-modules/masters/indicators/obv.src.js +1 -1
  208. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  209. package/es-modules/masters/indicators/ppo.src.js +1 -1
  210. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  211. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  212. package/es-modules/masters/indicators/psar.src.js +1 -1
  213. package/es-modules/masters/indicators/regressions.src.js +1 -1
  214. package/es-modules/masters/indicators/roc.src.js +1 -1
  215. package/es-modules/masters/indicators/rsi.src.js +1 -1
  216. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  217. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  218. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  219. package/es-modules/masters/indicators/tema.src.js +1 -1
  220. package/es-modules/masters/indicators/trendline.src.js +1 -1
  221. package/es-modules/masters/indicators/trix.src.js +1 -1
  222. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  223. package/es-modules/masters/indicators/vwap.src.js +1 -1
  224. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  225. package/es-modules/masters/indicators/wma.src.js +1 -1
  226. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  227. package/es-modules/masters/modules/accessibility.src.js +1 -1
  228. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  229. package/es-modules/masters/modules/annotations.src.js +1 -1
  230. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  231. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  232. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  233. package/es-modules/masters/modules/boost.src.js +1 -1
  234. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  235. package/es-modules/masters/modules/bullet.src.js +1 -1
  236. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  237. package/es-modules/masters/modules/contour.src.js +1 -1
  238. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  239. package/es-modules/masters/modules/cylinder.src.js +1 -1
  240. package/es-modules/masters/modules/data-sorting.src.js +1 -1
  241. package/es-modules/masters/modules/data-tools.src.js +1 -1
  242. package/es-modules/masters/modules/data.src.js +1 -1
  243. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  244. package/es-modules/masters/modules/debugger.src.js +1 -1
  245. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  246. package/es-modules/masters/modules/dotplot.src.js +1 -1
  247. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  248. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  249. package/es-modules/masters/modules/drilldown.src.js +1 -1
  250. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  251. package/es-modules/masters/modules/export-data.src.js +1 -1
  252. package/es-modules/masters/modules/exporting.src.js +1 -1
  253. package/es-modules/masters/modules/flowmap.src.js +2 -1
  254. package/es-modules/masters/modules/full-screen.src.js +1 -1
  255. package/es-modules/masters/modules/funnel.src.js +1 -1
  256. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  257. package/es-modules/masters/modules/gantt.src.js +1 -1
  258. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  259. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  260. package/es-modules/masters/modules/heatmap.src.js +1 -1
  261. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  262. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  263. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  264. package/es-modules/masters/modules/item-series.src.js +1 -1
  265. package/es-modules/masters/modules/lollipop.src.js +1 -1
  266. package/es-modules/masters/modules/map.src.js +1 -1
  267. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  268. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  269. package/es-modules/masters/modules/navigator.src.js +1 -1
  270. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  271. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  272. package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
  273. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  274. package/es-modules/masters/modules/organization.src.js +1 -1
  275. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  276. package/es-modules/masters/modules/pareto.src.js +1 -1
  277. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  278. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  279. package/es-modules/masters/modules/pictorial.src.js +1 -1
  280. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  281. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  282. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  283. package/es-modules/masters/modules/renko.src.js +1 -1
  284. package/es-modules/masters/modules/sankey.src.js +1 -1
  285. package/es-modules/masters/modules/series-label.src.js +1 -1
  286. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  287. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  288. package/es-modules/masters/modules/sonification.src.js +1 -1
  289. package/es-modules/masters/modules/static-scale.src.js +1 -1
  290. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  291. package/es-modules/masters/modules/stock.src.js +1 -1
  292. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  293. package/es-modules/masters/modules/sunburst.src.js +3 -2
  294. package/es-modules/masters/modules/textpath.src.js +1 -1
  295. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  296. package/es-modules/masters/modules/tilemap.src.js +1 -1
  297. package/es-modules/masters/modules/timeline.src.js +1 -1
  298. package/es-modules/masters/modules/treegraph.src.js +1 -1
  299. package/es-modules/masters/modules/treegrid.src.js +1 -1
  300. package/es-modules/masters/modules/treemap.src.js +1 -1
  301. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  302. package/es-modules/masters/modules/variwide.src.js +1 -1
  303. package/es-modules/masters/modules/vector.src.js +1 -1
  304. package/es-modules/masters/modules/venn.src.js +1 -1
  305. package/es-modules/masters/modules/windbarb.src.js +1 -1
  306. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  307. package/es-modules/masters/modules/xrange.src.js +1 -1
  308. package/es-modules/masters/standalone-navigator.src.js +1 -1
  309. package/es-modules/masters/themes/adaptive.src.js +1 -1
  310. package/es-modules/masters/themes/avocado.src.js +1 -1
  311. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  312. package/es-modules/masters/themes/grid-light.src.js +1 -1
  313. package/es-modules/masters/themes/high-contrast.src.js +1 -1
  314. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  315. package/es-modules/masters/themes/sunset.src.js +1 -1
  316. package/es-modules/tsconfig.tsbuildinfo +1 -1
  317. package/esm/highcharts-3d.js +2 -2
  318. package/esm/highcharts-3d.src.js +40 -25
  319. package/esm/highcharts-autoload.js +2 -2
  320. package/esm/highcharts-autoload.src.js +22 -8
  321. package/esm/highcharts-gantt.js +2 -2
  322. package/esm/highcharts-gantt.src.js +1 -24
  323. package/esm/highcharts-more.js +2 -2
  324. package/esm/highcharts-more.src.js +1109 -926
  325. package/esm/highcharts.js +5 -5
  326. package/esm/highcharts.src.js +396 -314
  327. package/esm/highmaps.js +2 -2
  328. package/esm/highmaps.src.js +1 -24
  329. package/esm/highstock.js +2 -2
  330. package/esm/highstock.src.js +1 -24
  331. package/esm/i18n/fr-FR.js +2 -2
  332. package/esm/i18n/fr-FR.src.js +22 -8
  333. package/esm/i18n/nb-NO.js +2 -2
  334. package/esm/i18n/nb-NO.src.js +22 -8
  335. package/esm/i18n/zh-CN.js +2 -2
  336. package/esm/i18n/zh-CN.src.js +22 -8
  337. package/esm/indicators/acceleration-bands.js +2 -2
  338. package/esm/indicators/acceleration-bands.src.js +22 -8
  339. package/esm/indicators/accumulation-distribution.js +2 -2
  340. package/esm/indicators/accumulation-distribution.src.js +22 -8
  341. package/esm/indicators/ao.js +2 -2
  342. package/esm/indicators/ao.src.js +22 -8
  343. package/esm/indicators/apo.js +2 -2
  344. package/esm/indicators/apo.src.js +22 -8
  345. package/esm/indicators/aroon-oscillator.js +2 -2
  346. package/esm/indicators/aroon-oscillator.src.js +22 -8
  347. package/esm/indicators/aroon.js +2 -2
  348. package/esm/indicators/aroon.src.js +22 -8
  349. package/esm/indicators/atr.js +2 -2
  350. package/esm/indicators/atr.src.js +22 -8
  351. package/esm/indicators/bollinger-bands.js +2 -2
  352. package/esm/indicators/bollinger-bands.src.js +22 -8
  353. package/esm/indicators/cci.js +2 -2
  354. package/esm/indicators/cci.src.js +22 -8
  355. package/esm/indicators/chaikin.js +2 -2
  356. package/esm/indicators/chaikin.src.js +22 -8
  357. package/esm/indicators/cmf.js +2 -2
  358. package/esm/indicators/cmf.src.js +22 -8
  359. package/esm/indicators/cmo.js +2 -2
  360. package/esm/indicators/cmo.src.js +22 -8
  361. package/esm/indicators/dema.js +2 -2
  362. package/esm/indicators/dema.src.js +22 -8
  363. package/esm/indicators/disparity-index.js +2 -2
  364. package/esm/indicators/disparity-index.src.js +22 -8
  365. package/esm/indicators/dmi.js +2 -2
  366. package/esm/indicators/dmi.src.js +22 -8
  367. package/esm/indicators/dpo.js +2 -2
  368. package/esm/indicators/dpo.src.js +22 -8
  369. package/esm/indicators/ichimoku-kinko-hyo.js +2 -2
  370. package/esm/indicators/ichimoku-kinko-hyo.src.js +22 -8
  371. package/esm/indicators/indicators-all.js +2 -2
  372. package/esm/indicators/indicators-all.src.js +24 -11
  373. package/esm/indicators/indicators.js +2 -2
  374. package/esm/indicators/indicators.src.js +23 -9
  375. package/esm/indicators/keltner-channels.js +2 -2
  376. package/esm/indicators/keltner-channels.src.js +22 -8
  377. package/esm/indicators/klinger.js +2 -2
  378. package/esm/indicators/klinger.src.js +22 -8
  379. package/esm/indicators/macd.js +2 -2
  380. package/esm/indicators/macd.src.js +22 -8
  381. package/esm/indicators/mfi.js +2 -2
  382. package/esm/indicators/mfi.src.js +22 -8
  383. package/esm/indicators/momentum.js +2 -2
  384. package/esm/indicators/momentum.src.js +22 -8
  385. package/esm/indicators/natr.js +2 -2
  386. package/esm/indicators/natr.src.js +22 -8
  387. package/esm/indicators/obv.js +2 -2
  388. package/esm/indicators/obv.src.js +22 -8
  389. package/esm/indicators/pivot-points.js +2 -2
  390. package/esm/indicators/pivot-points.src.js +22 -8
  391. package/esm/indicators/ppo.js +2 -2
  392. package/esm/indicators/ppo.src.js +22 -8
  393. package/esm/indicators/price-channel.js +2 -2
  394. package/esm/indicators/price-channel.src.js +22 -8
  395. package/esm/indicators/price-envelopes.js +2 -2
  396. package/esm/indicators/price-envelopes.src.js +22 -8
  397. package/esm/indicators/psar.js +2 -2
  398. package/esm/indicators/psar.src.js +22 -8
  399. package/esm/indicators/regressions.js +2 -2
  400. package/esm/indicators/regressions.src.js +22 -8
  401. package/esm/indicators/roc.js +2 -2
  402. package/esm/indicators/roc.src.js +22 -8
  403. package/esm/indicators/rsi.js +2 -2
  404. package/esm/indicators/rsi.src.js +22 -8
  405. package/esm/indicators/slow-stochastic.js +2 -2
  406. package/esm/indicators/slow-stochastic.src.js +22 -8
  407. package/esm/indicators/stochastic.js +2 -2
  408. package/esm/indicators/stochastic.src.js +22 -8
  409. package/esm/indicators/supertrend.js +2 -2
  410. package/esm/indicators/supertrend.src.js +22 -8
  411. package/esm/indicators/tema.js +2 -2
  412. package/esm/indicators/tema.src.js +22 -8
  413. package/esm/indicators/trendline.js +2 -2
  414. package/esm/indicators/trendline.src.js +22 -8
  415. package/esm/indicators/trix.js +2 -2
  416. package/esm/indicators/trix.src.js +22 -8
  417. package/esm/indicators/volume-by-price.js +2 -2
  418. package/esm/indicators/volume-by-price.src.js +23 -10
  419. package/esm/indicators/vwap.js +2 -2
  420. package/esm/indicators/vwap.src.js +22 -8
  421. package/esm/indicators/williams-r.js +2 -2
  422. package/esm/indicators/williams-r.src.js +22 -8
  423. package/esm/indicators/wma.js +2 -2
  424. package/esm/indicators/wma.src.js +22 -8
  425. package/esm/indicators/zigzag.js +2 -2
  426. package/esm/indicators/zigzag.src.js +22 -8
  427. package/esm/modules/accessibility.js +2 -2
  428. package/esm/modules/accessibility.src.js +498 -32
  429. package/esm/modules/annotations-advanced.js +11 -11
  430. package/esm/modules/annotations-advanced.src.js +201 -141
  431. package/esm/modules/annotations.js +11 -11
  432. package/esm/modules/annotations.src.js +165 -127
  433. package/esm/modules/arc-diagram.js +2 -2
  434. package/esm/modules/arc-diagram.src.js +22 -8
  435. package/esm/modules/arrow-symbols.js +3 -3
  436. package/esm/modules/arrow-symbols.src.js +22 -8
  437. package/esm/modules/boost-canvas.js +2 -2
  438. package/esm/modules/boost-canvas.src.js +32 -11
  439. package/esm/modules/boost.js +2 -2
  440. package/esm/modules/boost.src.js +45 -11
  441. package/esm/modules/broken-axis.js +2 -2
  442. package/esm/modules/broken-axis.src.js +22 -8
  443. package/esm/modules/bullet.js +2 -2
  444. package/esm/modules/bullet.src.js +23 -9
  445. package/esm/modules/coloraxis.js +2 -2
  446. package/esm/modules/coloraxis.src.js +30 -11
  447. package/esm/modules/contour.js +3 -3
  448. package/esm/modules/contour.src.js +46 -13
  449. package/esm/modules/current-date-indicator.js +2 -2
  450. package/esm/modules/current-date-indicator.src.js +22 -8
  451. package/esm/modules/cylinder.js +2 -2
  452. package/esm/modules/cylinder.src.js +38 -19
  453. package/esm/modules/data-sorting.js +2 -2
  454. package/esm/modules/data-sorting.src.js +22 -8
  455. package/esm/modules/data-tools.js +2 -2
  456. package/esm/modules/data-tools.src.js +25 -11
  457. package/esm/modules/data.js +4 -4
  458. package/esm/modules/data.src.js +23 -9
  459. package/esm/modules/datagrouping.js +2 -2
  460. package/esm/modules/datagrouping.src.js +23 -9
  461. package/esm/modules/debugger.js +2 -2
  462. package/esm/modules/debugger.src.js +22 -8
  463. package/esm/modules/dependency-wheel.js +2 -2
  464. package/esm/modules/dependency-wheel.src.js +428 -17
  465. package/esm/modules/dotplot.js +2 -2
  466. package/esm/modules/dotplot.src.js +25 -10
  467. package/esm/modules/drag-panes.js +2 -2
  468. package/esm/modules/drag-panes.src.js +22 -8
  469. package/esm/modules/draggable-points.js +2 -2
  470. package/esm/modules/draggable-points.src.js +23 -10
  471. package/esm/modules/drilldown.js +2 -2
  472. package/esm/modules/drilldown.src.js +34 -22
  473. package/esm/modules/dumbbell.js +2 -2
  474. package/esm/modules/dumbbell.src.js +36 -19
  475. package/esm/modules/export-data.js +2 -2
  476. package/esm/modules/export-data.src.js +27 -9
  477. package/esm/modules/exporting.js +2 -2
  478. package/esm/modules/exporting.src.js +77 -31
  479. package/esm/modules/flowmap.js +3 -2
  480. package/esm/modules/flowmap.src.js +23 -8
  481. package/esm/modules/full-screen.js +2 -2
  482. package/esm/modules/full-screen.src.js +22 -8
  483. package/esm/modules/funnel.js +2 -2
  484. package/esm/modules/funnel.src.js +72 -41
  485. package/esm/modules/funnel3d.js +2 -2
  486. package/esm/modules/funnel3d.src.js +22 -8
  487. package/esm/modules/gantt.js +2 -2
  488. package/esm/modules/gantt.src.js +450 -25
  489. package/esm/modules/geoheatmap.js +2 -2
  490. package/esm/modules/geoheatmap.src.js +28 -14
  491. package/esm/modules/grid-axis.js +2 -2
  492. package/esm/modules/grid-axis.src.js +30 -9
  493. package/esm/modules/heatmap.js +2 -2
  494. package/esm/modules/heatmap.src.js +29 -12
  495. package/esm/modules/heikinashi.js +2 -2
  496. package/esm/modules/heikinashi.src.js +22 -8
  497. package/esm/modules/histogram-bellcurve.js +2 -2
  498. package/esm/modules/histogram-bellcurve.src.js +42 -23
  499. package/esm/modules/hollowcandlestick.js +2 -2
  500. package/esm/modules/hollowcandlestick.src.js +31 -17
  501. package/esm/modules/item-series.js +2 -2
  502. package/esm/modules/item-series.src.js +55 -8
  503. package/esm/modules/lollipop.js +2 -2
  504. package/esm/modules/lollipop.src.js +22 -8
  505. package/esm/modules/map.js +2 -2
  506. package/esm/modules/map.src.js +84 -35
  507. package/esm/modules/marker-clusters.js +2 -2
  508. package/esm/modules/marker-clusters.src.js +25 -13
  509. package/esm/modules/mouse-wheel-zoom.js +2 -2
  510. package/esm/modules/mouse-wheel-zoom.src.js +52 -11
  511. package/esm/modules/navigator.js +2 -2
  512. package/esm/modules/navigator.src.js +488 -30
  513. package/esm/modules/networkgraph.js +2 -2
  514. package/esm/modules/networkgraph.src.js +57 -26
  515. package/esm/modules/no-data-to-display.js +2 -2
  516. package/esm/modules/no-data-to-display.src.js +22 -8
  517. package/esm/modules/non-cartesian-zoom.js +2 -2
  518. package/esm/modules/non-cartesian-zoom.src.js +22 -8
  519. package/esm/modules/offline-exporting.js +2 -2
  520. package/esm/modules/offline-exporting.src.js +53 -12
  521. package/esm/modules/organization.js +4 -2
  522. package/esm/modules/organization.src.js +61 -18
  523. package/esm/modules/parallel-coordinates.js +2 -2
  524. package/esm/modules/parallel-coordinates.src.js +25 -8
  525. package/esm/modules/pareto.js +2 -2
  526. package/esm/modules/pareto.src.js +31 -16
  527. package/esm/modules/pathfinder.js +2 -2
  528. package/esm/modules/pathfinder.src.js +22 -8
  529. package/esm/modules/pattern-fill.js +2 -2
  530. package/esm/modules/pattern-fill.src.js +22 -8
  531. package/esm/modules/pictorial.js +2 -2
  532. package/esm/modules/pictorial.src.js +27 -14
  533. package/esm/modules/pointandfigure.js +2 -2
  534. package/esm/modules/pointandfigure.src.js +26 -11
  535. package/esm/modules/price-indicator.js +2 -2
  536. package/esm/modules/price-indicator.src.js +22 -8
  537. package/esm/modules/pyramid3d.js +2 -2
  538. package/esm/modules/pyramid3d.src.js +22 -8
  539. package/esm/modules/renko.js +2 -2
  540. package/esm/modules/renko.src.js +22 -8
  541. package/esm/modules/sankey.js +2 -2
  542. package/esm/modules/sankey.src.js +26 -12
  543. package/esm/modules/series-label.js +2 -2
  544. package/esm/modules/series-label.src.js +25 -12
  545. package/esm/modules/series-on-point.js +2 -2
  546. package/esm/modules/series-on-point.src.js +23 -9
  547. package/esm/modules/solid-gauge.js +2 -2
  548. package/esm/modules/solid-gauge.src.js +39 -19
  549. package/esm/modules/sonification.js +2 -2
  550. package/esm/modules/sonification.src.js +27 -12
  551. package/esm/modules/static-scale.js +2 -2
  552. package/esm/modules/static-scale.src.js +22 -8
  553. package/esm/modules/stock-tools.js +3 -3
  554. package/esm/modules/stock-tools.src.js +59 -18
  555. package/esm/modules/stock.js +2 -2
  556. package/esm/modules/stock.src.js +465 -47
  557. package/esm/modules/streamgraph.js +2 -2
  558. package/esm/modules/streamgraph.src.js +22 -8
  559. package/esm/modules/sunburst.js +2 -2
  560. package/esm/modules/sunburst.src.js +70 -20
  561. package/esm/modules/textpath.js +2 -2
  562. package/esm/modules/textpath.src.js +22 -8
  563. package/esm/modules/tiledwebmap.js +3 -3
  564. package/esm/modules/tiledwebmap.src.js +37 -14
  565. package/esm/modules/tilemap.js +2 -2
  566. package/esm/modules/tilemap.src.js +25 -10
  567. package/esm/modules/timeline.js +2 -2
  568. package/esm/modules/timeline.src.js +31 -11
  569. package/esm/modules/treegraph.js +2 -2
  570. package/esm/modules/treegraph.src.js +43 -20
  571. package/esm/modules/treegrid.js +2 -2
  572. package/esm/modules/treegrid.src.js +31 -10
  573. package/esm/modules/treemap.js +2 -2
  574. package/esm/modules/treemap.src.js +55 -15
  575. package/esm/modules/variable-pie.js +2 -2
  576. package/esm/modules/variable-pie.src.js +25 -10
  577. package/esm/modules/variwide.js +2 -2
  578. package/esm/modules/variwide.src.js +22 -8
  579. package/esm/modules/vector.js +2 -2
  580. package/esm/modules/vector.src.js +28 -16
  581. package/esm/modules/venn.js +2 -2
  582. package/esm/modules/venn.src.js +28 -13
  583. package/esm/modules/windbarb.js +2 -2
  584. package/esm/modules/windbarb.src.js +28 -16
  585. package/esm/modules/wordcloud.js +2 -2
  586. package/esm/modules/wordcloud.src.js +25 -9
  587. package/esm/modules/xrange.js +2 -2
  588. package/esm/modules/xrange.src.js +29 -15
  589. package/esm/standalone-navigator.js +5 -5
  590. package/esm/standalone-navigator.src.js +461 -329
  591. package/esm/themes/adaptive.js +3 -3
  592. package/esm/themes/adaptive.src.js +22 -8
  593. package/esm/themes/avocado.js +2 -2
  594. package/esm/themes/avocado.src.js +22 -8
  595. package/esm/themes/dark-unica.js +2 -2
  596. package/esm/themes/dark-unica.src.js +22 -8
  597. package/esm/themes/grid-light.js +2 -2
  598. package/esm/themes/grid-light.src.js +22 -8
  599. package/esm/themes/high-contrast.js +2 -2
  600. package/esm/themes/high-contrast.src.js +22 -8
  601. package/esm/themes/sand-signika.js +2 -2
  602. package/esm/themes/sand-signika.src.js +22 -8
  603. package/esm/themes/sunset.js +2 -2
  604. package/esm/themes/sunset.src.js +22 -8
  605. package/highcharts-3d.js +2 -2
  606. package/highcharts-3d.src.js +78 -62
  607. package/highcharts-autoload.d.ts +7 -3
  608. package/highcharts-autoload.js +4 -4
  609. package/highcharts-autoload.src.d.ts +7 -3
  610. package/highcharts-autoload.src.js +418 -298
  611. package/highcharts-gantt.js +4 -4
  612. package/highcharts-gantt.src.js +458 -318
  613. package/highcharts-more.d.ts +7 -3
  614. package/highcharts-more.js +2 -2
  615. package/highcharts-more.src.d.ts +7 -3
  616. package/highcharts-more.src.js +1224 -1040
  617. package/highcharts.d.ts +34734 -25643
  618. package/highcharts.js +4 -4
  619. package/highcharts.src.d.ts +34734 -25643
  620. package/highcharts.src.js +417 -297
  621. package/highmaps.js +4 -4
  622. package/highmaps.src.js +482 -320
  623. package/highstock.js +4 -4
  624. package/highstock.src.js +497 -337
  625. package/i18n/fr-FR.js +2 -2
  626. package/i18n/fr-FR.src.js +32 -16
  627. package/i18n/nb-NO.js +2 -2
  628. package/i18n/nb-NO.src.js +32 -16
  629. package/i18n/zh-CN.js +2 -2
  630. package/i18n/zh-CN.src.js +32 -16
  631. package/indicators/acceleration-bands.js +2 -2
  632. package/indicators/acceleration-bands.src.js +31 -16
  633. package/indicators/accumulation-distribution.js +2 -2
  634. package/indicators/accumulation-distribution.src.js +31 -16
  635. package/indicators/ao.js +2 -2
  636. package/indicators/ao.src.js +31 -16
  637. package/indicators/apo.js +2 -2
  638. package/indicators/apo.src.js +31 -16
  639. package/indicators/aroon-oscillator.js +2 -2
  640. package/indicators/aroon-oscillator.src.js +31 -16
  641. package/indicators/aroon.js +2 -2
  642. package/indicators/aroon.src.js +31 -16
  643. package/indicators/atr.js +2 -2
  644. package/indicators/atr.src.js +31 -16
  645. package/indicators/bollinger-bands.js +2 -2
  646. package/indicators/bollinger-bands.src.js +31 -16
  647. package/indicators/cci.js +2 -2
  648. package/indicators/cci.src.js +31 -16
  649. package/indicators/chaikin.js +2 -2
  650. package/indicators/chaikin.src.js +31 -16
  651. package/indicators/cmf.js +2 -2
  652. package/indicators/cmf.src.js +31 -16
  653. package/indicators/cmo.js +2 -2
  654. package/indicators/cmo.src.js +31 -16
  655. package/indicators/dema.js +2 -2
  656. package/indicators/dema.src.js +31 -16
  657. package/indicators/disparity-index.js +2 -2
  658. package/indicators/disparity-index.src.js +31 -16
  659. package/indicators/dmi.js +2 -2
  660. package/indicators/dmi.src.js +31 -16
  661. package/indicators/dpo.js +2 -2
  662. package/indicators/dpo.src.js +31 -16
  663. package/indicators/ichimoku-kinko-hyo.js +2 -2
  664. package/indicators/ichimoku-kinko-hyo.src.js +41 -26
  665. package/indicators/indicators-all.js +2 -2
  666. package/indicators/indicators-all.src.js +45 -31
  667. package/indicators/indicators.js +2 -2
  668. package/indicators/indicators.src.js +38 -23
  669. package/indicators/keltner-channels.js +2 -2
  670. package/indicators/keltner-channels.src.js +31 -16
  671. package/indicators/klinger.js +2 -2
  672. package/indicators/klinger.src.js +31 -16
  673. package/indicators/macd.js +2 -2
  674. package/indicators/macd.src.js +31 -16
  675. package/indicators/mfi.js +2 -2
  676. package/indicators/mfi.src.js +31 -16
  677. package/indicators/momentum.js +2 -2
  678. package/indicators/momentum.src.js +31 -16
  679. package/indicators/natr.js +2 -2
  680. package/indicators/natr.src.js +31 -16
  681. package/indicators/obv.js +2 -2
  682. package/indicators/obv.src.js +31 -16
  683. package/indicators/pivot-points.js +2 -2
  684. package/indicators/pivot-points.src.js +31 -16
  685. package/indicators/ppo.js +2 -2
  686. package/indicators/ppo.src.js +31 -16
  687. package/indicators/price-channel.js +2 -2
  688. package/indicators/price-channel.src.js +31 -16
  689. package/indicators/price-envelopes.js +2 -2
  690. package/indicators/price-envelopes.src.js +31 -16
  691. package/indicators/psar.js +2 -2
  692. package/indicators/psar.src.js +31 -16
  693. package/indicators/regressions.js +2 -2
  694. package/indicators/regressions.src.js +31 -16
  695. package/indicators/roc.js +2 -2
  696. package/indicators/roc.src.js +31 -16
  697. package/indicators/rsi.js +2 -2
  698. package/indicators/rsi.src.js +31 -16
  699. package/indicators/slow-stochastic.js +2 -2
  700. package/indicators/slow-stochastic.src.js +31 -16
  701. package/indicators/stochastic.js +2 -2
  702. package/indicators/stochastic.src.js +31 -16
  703. package/indicators/supertrend.js +2 -2
  704. package/indicators/supertrend.src.js +31 -16
  705. package/indicators/tema.js +2 -2
  706. package/indicators/tema.src.js +31 -16
  707. package/indicators/trendline.js +2 -2
  708. package/indicators/trendline.src.js +31 -16
  709. package/indicators/trix.js +2 -2
  710. package/indicators/trix.src.js +31 -16
  711. package/indicators/volume-by-price.js +2 -2
  712. package/indicators/volume-by-price.src.js +32 -18
  713. package/indicators/vwap.js +2 -2
  714. package/indicators/vwap.src.js +31 -16
  715. package/indicators/williams-r.js +2 -2
  716. package/indicators/williams-r.src.js +31 -16
  717. package/indicators/wma.js +2 -2
  718. package/indicators/wma.src.js +31 -16
  719. package/indicators/zigzag.js +2 -2
  720. package/indicators/zigzag.src.js +31 -16
  721. package/modules/accessibility.d.ts +47 -0
  722. package/modules/accessibility.js +2 -2
  723. package/modules/accessibility.src.d.ts +47 -0
  724. package/modules/accessibility.src.js +537 -70
  725. package/modules/annotations-advanced.js +11 -11
  726. package/modules/annotations-advanced.src.js +223 -162
  727. package/modules/annotations.js +11 -11
  728. package/modules/annotations.src.js +187 -148
  729. package/modules/arc-diagram.js +2 -2
  730. package/modules/arc-diagram.src.js +43 -28
  731. package/modules/arrow-symbols.js +2 -2
  732. package/modules/arrow-symbols.src.js +28 -13
  733. package/modules/boost-canvas.js +2 -2
  734. package/modules/boost-canvas.src.js +41 -19
  735. package/modules/boost.js +2 -2
  736. package/modules/boost.src.js +54 -19
  737. package/modules/broken-axis.js +2 -2
  738. package/modules/broken-axis.src.js +31 -16
  739. package/modules/bullet.js +2 -2
  740. package/modules/bullet.src.js +35 -20
  741. package/modules/coloraxis.js +2 -2
  742. package/modules/coloraxis.src.js +48 -28
  743. package/modules/contour.js +5 -5
  744. package/modules/contour.src.js +74 -34
  745. package/modules/current-date-indicator.js +2 -2
  746. package/modules/current-date-indicator.src.js +28 -13
  747. package/modules/cylinder.js +2 -2
  748. package/modules/cylinder.src.js +59 -39
  749. package/modules/data-sorting.js +2 -2
  750. package/modules/data-sorting.src.js +28 -13
  751. package/modules/data-tools.js +2 -2
  752. package/modules/data-tools.src.js +31 -16
  753. package/modules/data.js +2 -2
  754. package/modules/data.src.js +50 -35
  755. package/modules/datagrouping.js +2 -2
  756. package/modules/datagrouping.src.js +37 -22
  757. package/modules/debugger.js +2 -2
  758. package/modules/debugger.src.js +28 -13
  759. package/modules/dependency-wheel.d.ts +7 -1
  760. package/modules/dependency-wheel.js +2 -2
  761. package/modules/dependency-wheel.src.d.ts +7 -1
  762. package/modules/dependency-wheel.src.js +440 -28
  763. package/modules/dotplot.js +2 -2
  764. package/modules/dotplot.src.js +34 -18
  765. package/modules/drag-panes.js +2 -2
  766. package/modules/drag-panes.src.js +28 -13
  767. package/modules/draggable-points.js +2 -2
  768. package/modules/draggable-points.src.js +29 -15
  769. package/modules/drilldown.js +2 -2
  770. package/modules/drilldown.src.js +45 -32
  771. package/modules/dumbbell.js +2 -2
  772. package/modules/dumbbell.src.js +50 -32
  773. package/modules/export-data.d.ts +66 -1
  774. package/modules/export-data.js +2 -2
  775. package/modules/export-data.src.d.ts +66 -1
  776. package/modules/export-data.src.js +41 -22
  777. package/modules/exporting.d.ts +0 -103
  778. package/modules/exporting.js +2 -2
  779. package/modules/exporting.src.d.ts +0 -103
  780. package/modules/exporting.src.js +91 -44
  781. package/modules/flowmap.js +3 -2
  782. package/modules/flowmap.src.js +32 -16
  783. package/modules/full-screen.js +2 -2
  784. package/modules/full-screen.src.js +31 -16
  785. package/modules/funnel.d.ts +3 -3
  786. package/modules/funnel.js +2 -2
  787. package/modules/funnel.src.d.ts +3 -3
  788. package/modules/funnel.src.js +81 -49
  789. package/modules/funnel3d.js +2 -2
  790. package/modules/funnel3d.src.js +43 -28
  791. package/modules/gantt.d.ts +47 -0
  792. package/modules/gantt.js +8 -8
  793. package/modules/gantt.src.d.ts +47 -0
  794. package/modules/gantt.src.js +510 -81
  795. package/modules/geoheatmap.d.ts +13 -0
  796. package/modules/geoheatmap.js +2 -2
  797. package/modules/geoheatmap.src.d.ts +13 -0
  798. package/modules/geoheatmap.src.js +37 -22
  799. package/modules/grid-axis.js +2 -2
  800. package/modules/grid-axis.src.js +39 -17
  801. package/modules/heatmap.js +4 -4
  802. package/modules/heatmap.src.js +64 -40
  803. package/modules/heikinashi.js +2 -2
  804. package/modules/heikinashi.src.js +31 -16
  805. package/modules/histogram-bellcurve.js +2 -2
  806. package/modules/histogram-bellcurve.src.js +56 -36
  807. package/modules/hollowcandlestick.js +2 -2
  808. package/modules/hollowcandlestick.src.js +45 -30
  809. package/modules/item-series.js +2 -2
  810. package/modules/item-series.src.js +64 -16
  811. package/modules/lollipop.js +2 -2
  812. package/modules/lollipop.src.js +36 -21
  813. package/modules/map.d.ts +0 -8
  814. package/modules/map.js +4 -4
  815. package/modules/map.src.d.ts +0 -8
  816. package/modules/map.src.js +131 -74
  817. package/modules/marker-clusters.js +2 -2
  818. package/modules/marker-clusters.src.js +31 -18
  819. package/modules/mouse-wheel-zoom.js +2 -2
  820. package/modules/mouse-wheel-zoom.src.js +58 -16
  821. package/modules/navigator.d.ts +47 -0
  822. package/modules/navigator.js +2 -2
  823. package/modules/navigator.src.d.ts +47 -0
  824. package/modules/navigator.src.js +510 -51
  825. package/modules/networkgraph.js +2 -2
  826. package/modules/networkgraph.src.js +69 -37
  827. package/modules/no-data-to-display.js +2 -2
  828. package/modules/no-data-to-display.src.js +31 -16
  829. package/modules/non-cartesian-zoom.js +2 -2
  830. package/modules/non-cartesian-zoom.src.js +28 -13
  831. package/modules/offline-exporting.js +2 -2
  832. package/modules/offline-exporting.src.js +67 -25
  833. package/modules/organization.js +4 -2
  834. package/modules/organization.src.js +73 -29
  835. package/modules/parallel-coordinates.js +2 -2
  836. package/modules/parallel-coordinates.src.js +36 -18
  837. package/modules/pareto.js +2 -2
  838. package/modules/pareto.src.js +45 -29
  839. package/modules/pathfinder.js +2 -2
  840. package/modules/pathfinder.src.js +31 -16
  841. package/modules/pattern-fill.js +2 -2
  842. package/modules/pattern-fill.src.js +28 -13
  843. package/modules/pictorial.js +2 -2
  844. package/modules/pictorial.src.js +53 -38
  845. package/modules/pointandfigure.js +2 -2
  846. package/modules/pointandfigure.src.js +35 -19
  847. package/modules/price-indicator.js +2 -2
  848. package/modules/price-indicator.src.js +28 -13
  849. package/modules/pyramid3d.js +2 -2
  850. package/modules/pyramid3d.src.js +31 -16
  851. package/modules/renko.js +2 -2
  852. package/modules/renko.src.js +34 -19
  853. package/modules/sankey.js +2 -2
  854. package/modules/sankey.src.js +47 -32
  855. package/modules/series-label.js +2 -2
  856. package/modules/series-label.src.js +36 -22
  857. package/modules/series-on-point.js +2 -2
  858. package/modules/series-on-point.src.js +40 -25
  859. package/modules/solid-gauge.d.ts +3 -3
  860. package/modules/solid-gauge.js +2 -2
  861. package/modules/solid-gauge.src.d.ts +3 -3
  862. package/modules/solid-gauge.src.js +53 -32
  863. package/modules/sonification.js +2 -2
  864. package/modules/sonification.src.js +38 -22
  865. package/modules/static-scale.js +2 -2
  866. package/modules/static-scale.src.js +28 -13
  867. package/modules/stock-tools.js +3 -3
  868. package/modules/stock-tools.src.js +76 -34
  869. package/modules/stock.d.ts +47 -0
  870. package/modules/stock.js +6 -6
  871. package/modules/stock.src.d.ts +47 -0
  872. package/modules/stock.src.js +549 -100
  873. package/modules/streamgraph.js +2 -2
  874. package/modules/streamgraph.src.js +31 -16
  875. package/modules/sunburst.js +2 -2
  876. package/modules/sunburst.src.js +97 -46
  877. package/modules/textpath.js +2 -2
  878. package/modules/textpath.src.js +28 -13
  879. package/modules/tiledwebmap.js +3 -3
  880. package/modules/tiledwebmap.src.js +58 -27
  881. package/modules/tilemap.js +2 -2
  882. package/modules/tilemap.src.js +39 -23
  883. package/modules/timeline.js +2 -2
  884. package/modules/timeline.src.js +43 -22
  885. package/modules/treegraph.js +2 -2
  886. package/modules/treegraph.src.js +67 -43
  887. package/modules/treegrid.js +2 -2
  888. package/modules/treegrid.src.js +49 -27
  889. package/modules/treemap.js +2 -2
  890. package/modules/treemap.src.js +82 -41
  891. package/modules/variable-pie.js +2 -2
  892. package/modules/variable-pie.src.js +34 -18
  893. package/modules/variwide.js +2 -2
  894. package/modules/variwide.src.js +31 -16
  895. package/modules/vector.js +2 -2
  896. package/modules/vector.src.js +37 -24
  897. package/modules/venn.js +2 -2
  898. package/modules/venn.src.js +42 -26
  899. package/modules/windbarb.js +2 -2
  900. package/modules/windbarb.src.js +50 -37
  901. package/modules/wordcloud.js +2 -2
  902. package/modules/wordcloud.src.js +34 -17
  903. package/modules/xrange.js +2 -2
  904. package/modules/xrange.src.js +43 -28
  905. package/options/abands.d.ts +722 -83
  906. package/options/abands.src.d.ts +722 -83
  907. package/options/ad.d.ts +381 -26
  908. package/options/ad.src.d.ts +381 -26
  909. package/options/ao.d.ts +744 -70
  910. package/options/ao.src.d.ts +744 -70
  911. package/options/apo.d.ts +381 -26
  912. package/options/apo.src.d.ts +381 -26
  913. package/options/arcdiagram.d.ts +80 -534
  914. package/options/arcdiagram.src.d.ts +80 -534
  915. package/options/area.d.ts +432 -129
  916. package/options/area.src.d.ts +432 -129
  917. package/options/arearange.d.ts +46 -4
  918. package/options/arearange.src.d.ts +46 -4
  919. package/options/areaspline.d.ts +141 -866
  920. package/options/areaspline.src.d.ts +141 -866
  921. package/options/areasplinerange.d.ts +221 -871
  922. package/options/areasplinerange.src.d.ts +221 -871
  923. package/options/aroon.d.ts +432 -124
  924. package/options/aroon.src.d.ts +432 -124
  925. package/options/aroonoscillator.d.ts +127 -689
  926. package/options/aroonoscillator.src.d.ts +127 -689
  927. package/options/atr.d.ts +381 -71
  928. package/options/atr.src.d.ts +381 -71
  929. package/options/bar.d.ts +103 -12
  930. package/options/bar.src.d.ts +103 -12
  931. package/options/bb.d.ts +87 -762
  932. package/options/bb.src.d.ts +87 -762
  933. package/options/bellcurve.d.ts +87 -364
  934. package/options/bellcurve.src.d.ts +87 -364
  935. package/options/boxplot.d.ts +82 -13
  936. package/options/boxplot.src.d.ts +82 -13
  937. package/options/bubble.d.ts +83 -874
  938. package/options/bubble.src.d.ts +83 -874
  939. package/options/bullet.d.ts +354 -717
  940. package/options/bullet.src.d.ts +354 -717
  941. package/options/candlestick.d.ts +99 -1214
  942. package/options/candlestick.src.d.ts +99 -1214
  943. package/options/cci.d.ts +381 -26
  944. package/options/cci.src.d.ts +381 -26
  945. package/options/chaikin.d.ts +728 -83
  946. package/options/chaikin.src.d.ts +728 -83
  947. package/options/cmf.d.ts +381 -26
  948. package/options/cmf.src.d.ts +381 -26
  949. package/options/cmo.d.ts +730 -79
  950. package/options/cmo.src.d.ts +730 -79
  951. package/options/column.d.ts +1265 -99
  952. package/options/column.src.d.ts +1265 -99
  953. package/options/columnpyramid.d.ts +102 -1158
  954. package/options/columnpyramid.src.d.ts +102 -1158
  955. package/options/columnrange.d.ts +952 -95
  956. package/options/columnrange.src.d.ts +952 -95
  957. package/options/contour.d.ts +31 -443
  958. package/options/contour.src.d.ts +31 -443
  959. package/options/cylinder.d.ts +100 -12
  960. package/options/cylinder.src.d.ts +100 -12
  961. package/options/dema.d.ts +80 -736
  962. package/options/dema.src.d.ts +80 -736
  963. package/options/dependencywheel.d.ts +599 -218
  964. package/options/dependencywheel.src.d.ts +599 -218
  965. package/options/disparityindex.d.ts +84 -365
  966. package/options/disparityindex.src.d.ts +84 -365
  967. package/options/dmi.d.ts +86 -775
  968. package/options/dmi.src.d.ts +86 -775
  969. package/options/dpo.d.ts +83 -365
  970. package/options/dpo.src.d.ts +83 -365
  971. package/options/dumbbell.d.ts +27 -4
  972. package/options/dumbbell.src.d.ts +27 -4
  973. package/options/ema.d.ts +81 -703
  974. package/options/ema.src.d.ts +81 -703
  975. package/options/errorbar.d.ts +91 -1161
  976. package/options/errorbar.src.d.ts +91 -1161
  977. package/options/flags.d.ts +98 -1192
  978. package/options/flags.src.d.ts +98 -1192
  979. package/options/flowmap.d.ts +48 -373
  980. package/options/flowmap.src.d.ts +48 -373
  981. package/options/funnel.d.ts +40 -3
  982. package/options/funnel.src.d.ts +40 -3
  983. package/options/gantt.d.ts +37 -40
  984. package/options/gantt.src.d.ts +37 -40
  985. package/options/gauge.d.ts +398 -472
  986. package/options/gauge.src.d.ts +398 -472
  987. package/options/geoheatmap.d.ts +462 -63
  988. package/options/geoheatmap.src.d.ts +462 -63
  989. package/options/heatmap.d.ts +31 -380
  990. package/options/heatmap.src.d.ts +31 -380
  991. package/options/heikinashi.d.ts +20 -2
  992. package/options/heikinashi.src.d.ts +20 -2
  993. package/options/hlc.d.ts +20 -2
  994. package/options/hlc.src.d.ts +20 -2
  995. package/options/ikh.d.ts +750 -103
  996. package/options/ikh.src.d.ts +750 -103
  997. package/options/item.d.ts +34 -74
  998. package/options/item.src.d.ts +34 -74
  999. package/options/keltnerchannels.d.ts +87 -708
  1000. package/options/keltnerchannels.src.d.ts +87 -708
  1001. package/options/klinger.d.ts +34 -365
  1002. package/options/klinger.src.d.ts +34 -365
  1003. package/options/line.d.ts +151 -851
  1004. package/options/line.src.d.ts +151 -851
  1005. package/options/linearregression.d.ts +960 -85
  1006. package/options/linearregression.src.d.ts +960 -85
  1007. package/options/linearregressionangle.d.ts +96 -699
  1008. package/options/linearregressionangle.src.d.ts +96 -699
  1009. package/options/linearregressionintercept.d.ts +381 -26
  1010. package/options/linearregressionintercept.src.d.ts +381 -26
  1011. package/options/linearregressionslope.d.ts +381 -26
  1012. package/options/linearregressionslope.src.d.ts +381 -26
  1013. package/options/lollipop.d.ts +214 -851
  1014. package/options/lollipop.src.d.ts +214 -851
  1015. package/options/macd.d.ts +386 -83
  1016. package/options/macd.src.d.ts +386 -83
  1017. package/options/map.d.ts +470 -36
  1018. package/options/map.src.d.ts +470 -36
  1019. package/options/mapbubble.d.ts +43 -532
  1020. package/options/mapbubble.src.d.ts +43 -532
  1021. package/options/mapline.d.ts +135 -58
  1022. package/options/mapline.src.d.ts +135 -58
  1023. package/options/mappoint.d.ts +205 -283
  1024. package/options/mappoint.src.d.ts +205 -283
  1025. package/options/mfi.d.ts +772 -82
  1026. package/options/mfi.src.d.ts +772 -82
  1027. package/options/momentum.d.ts +381 -71
  1028. package/options/momentum.src.d.ts +381 -71
  1029. package/options/natr.d.ts +776 -75
  1030. package/options/natr.src.d.ts +776 -75
  1031. package/options/networkgraph.d.ts +184 -207
  1032. package/options/networkgraph.src.d.ts +184 -207
  1033. package/options/obv.d.ts +426 -26
  1034. package/options/obv.src.d.ts +426 -26
  1035. package/options/ohlc.d.ts +77 -14
  1036. package/options/ohlc.src.d.ts +77 -14
  1037. package/options/packedbubble.d.ts +76 -696
  1038. package/options/packedbubble.src.d.ts +76 -696
  1039. package/options/pareto.d.ts +28 -364
  1040. package/options/pareto.src.d.ts +28 -364
  1041. package/options/pc.d.ts +724 -85
  1042. package/options/pc.src.d.ts +724 -85
  1043. package/options/pictorial.d.ts +1093 -58
  1044. package/options/pictorial.src.d.ts +1093 -58
  1045. package/options/pie.d.ts +595 -129
  1046. package/options/pie.src.d.ts +595 -129
  1047. package/options/pivotpoints.d.ts +34 -365
  1048. package/options/pivotpoints.src.d.ts +34 -365
  1049. package/options/pointandfigure.d.ts +10 -50
  1050. package/options/pointandfigure.src.d.ts +10 -50
  1051. package/options/polygon.d.ts +803 -74
  1052. package/options/polygon.src.d.ts +803 -74
  1053. package/options/ppo.d.ts +34 -365
  1054. package/options/ppo.src.d.ts +34 -365
  1055. package/options/priceenvelopes.d.ts +93 -719
  1056. package/options/priceenvelopes.src.d.ts +93 -719
  1057. package/options/psar.d.ts +34 -365
  1058. package/options/psar.src.d.ts +34 -365
  1059. package/options/pyramid.d.ts +35 -3
  1060. package/options/pyramid.src.d.ts +35 -3
  1061. package/options/renko.d.ts +25 -2
  1062. package/options/renko.src.d.ts +25 -2
  1063. package/options/roc.d.ts +78 -712
  1064. package/options/roc.src.d.ts +78 -712
  1065. package/options/rsi.d.ts +34 -365
  1066. package/options/rsi.src.d.ts +34 -365
  1067. package/options/sankey.d.ts +27 -5
  1068. package/options/sankey.src.d.ts +27 -5
  1069. package/options/scatter.d.ts +896 -290
  1070. package/options/scatter.src.d.ts +896 -290
  1071. package/options/series.d.ts +938 -83
  1072. package/options/series.src.d.ts +938 -83
  1073. package/options/slowstochastic.d.ts +381 -26
  1074. package/options/slowstochastic.src.d.ts +381 -26
  1075. package/options/sma.d.ts +729 -79
  1076. package/options/sma.src.d.ts +729 -79
  1077. package/options/solidgauge.d.ts +882 -105
  1078. package/options/solidgauge.src.d.ts +882 -105
  1079. package/options/spline.d.ts +389 -90
  1080. package/options/spline.src.d.ts +389 -90
  1081. package/options/stochastic.d.ts +83 -716
  1082. package/options/stochastic.src.d.ts +83 -716
  1083. package/options/streamgraph.d.ts +97 -364
  1084. package/options/streamgraph.src.d.ts +97 -364
  1085. package/options/sunburst.d.ts +87 -19
  1086. package/options/sunburst.src.d.ts +87 -19
  1087. package/options/supertrend.d.ts +77 -749
  1088. package/options/supertrend.src.d.ts +77 -749
  1089. package/options/tema.d.ts +83 -365
  1090. package/options/tema.src.d.ts +83 -365
  1091. package/options/tiledwebmap.d.ts +13 -72
  1092. package/options/tiledwebmap.src.d.ts +13 -72
  1093. package/options/tilemap.d.ts +372 -533
  1094. package/options/tilemap.src.d.ts +372 -533
  1095. package/options/timeline.d.ts +49 -154
  1096. package/options/timeline.src.d.ts +49 -154
  1097. package/options/treegraph.d.ts +174 -696
  1098. package/options/treegraph.src.d.ts +174 -696
  1099. package/options/treemap.d.ts +468 -1079
  1100. package/options/treemap.src.d.ts +468 -1079
  1101. package/options/trendline.d.ts +381 -26
  1102. package/options/trendline.src.d.ts +381 -26
  1103. package/options/trix.d.ts +712 -82
  1104. package/options/trix.src.d.ts +712 -82
  1105. package/options/variablepie.d.ts +130 -587
  1106. package/options/variablepie.src.d.ts +130 -587
  1107. package/options/variwide.d.ts +1123 -94
  1108. package/options/variwide.src.d.ts +1123 -94
  1109. package/options/vbp.d.ts +57 -383
  1110. package/options/vbp.src.d.ts +57 -383
  1111. package/options/vector.d.ts +22 -58
  1112. package/options/vector.src.d.ts +22 -58
  1113. package/options/venn.d.ts +32 -78
  1114. package/options/venn.src.d.ts +32 -78
  1115. package/options/vwap.d.ts +122 -703
  1116. package/options/vwap.src.d.ts +122 -703
  1117. package/options/waterfall.d.ts +139 -1150
  1118. package/options/waterfall.src.d.ts +139 -1150
  1119. package/options/williamsr.d.ts +381 -76
  1120. package/options/williamsr.src.d.ts +381 -76
  1121. package/options/windbarb.d.ts +39 -2
  1122. package/options/windbarb.src.d.ts +39 -2
  1123. package/options/wma.d.ts +78 -704
  1124. package/options/wma.src.d.ts +78 -704
  1125. package/options/wordcloud.d.ts +98 -595
  1126. package/options/wordcloud.src.d.ts +98 -595
  1127. package/options/xrange.d.ts +166 -1056
  1128. package/options/xrange.src.d.ts +166 -1056
  1129. package/options/zigzag.d.ts +34 -410
  1130. package/options/zigzag.src.d.ts +34 -410
  1131. package/package.json +3 -2
  1132. package/standalone-navigator.js +4 -4
  1133. package/standalone-navigator.src.js +482 -312
  1134. package/themes/adaptive.js +2 -2
  1135. package/themes/adaptive.src.js +33 -18
  1136. package/themes/avocado.js +2 -2
  1137. package/themes/avocado.src.js +28 -13
  1138. package/themes/dark-unica.js +2 -2
  1139. package/themes/dark-unica.src.js +28 -13
  1140. package/themes/grid-light.js +2 -2
  1141. package/themes/grid-light.src.js +28 -13
  1142. package/themes/high-contrast.js +2 -2
  1143. package/themes/high-contrast.src.js +28 -13
  1144. package/themes/sand-signika.js +2 -2
  1145. package/themes/sand-signika.src.js +28 -13
  1146. package/themes/sunset.js +2 -2
  1147. package/themes/sunset.src.js +28 -13
  1148. package/css/.stylelintrc.json +0 -8
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LicenseRef-Highcharts
2
2
  /**
3
- * @license Highcharts JS v13.0.0 (2026-06-11)
3
+ * @license Highcharts JS v13.0.1 (2026-08-17)
4
4
  * @module highcharts/highcharts
5
5
  *
6
6
  * (c) 2009-2026 Highsoft AS
@@ -8,29 +8,6 @@
8
8
  * A commercial license may be required depending on use,
9
9
  * see www.highcharts.com/license
10
10
  */
11
- /******/ // The require scope
12
- /******/ var __webpack_require__ = {};
13
- /******/
14
- /************************************************************************/
15
- /******/ /* webpack/runtime/define property getters */
16
- /******/ (() => {
17
- /******/ // define getter functions for harmony exports
18
- /******/ __webpack_require__.d = (exports, definition) => {
19
- /******/ for(var key in definition) {
20
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
21
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
22
- /******/ }
23
- /******/ }
24
- /******/ };
25
- /******/ })();
26
- /******/
27
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
28
- /******/ (() => {
29
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
30
- /******/ })();
31
- /******/
32
- /************************************************************************/
33
- var __webpack_exports__ = {};
34
11
 
35
12
  ;// ./code/es-modules/Core/Globals.js
36
13
  /* *
@@ -61,7 +38,7 @@ var Globals;
61
38
  * Constants
62
39
  *
63
40
  * */
64
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.0', Globals.win = (typeof window !== 'undefined' ?
41
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.1', Globals.win = (typeof window !== 'undefined' ?
65
42
  window :
66
43
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
67
44
  Globals.doc = Globals.win.document, Globals.svg = !!Globals.doc?.createElementNS?.(Globals.SVG_NS, 'svg')?.createSVGRect, Globals.pageLang = Globals.doc?.documentElement?.closest('[lang]')?.lang, Globals.userAgent = Globals.win.navigator?.userAgent || '', Globals.isChrome = Globals.win.chrome, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.marginNames = [
@@ -976,7 +953,7 @@ const ChartDefaults = {
976
953
  * @type {Highcharts.ColorType}
977
954
  * @since 2.1.7
978
955
  */
979
- selectionMarkerFill: 'color-mix(var(--highcharts-highlight-color-80) 25%, transparent)', // eslint-disable-line max-len
956
+ selectionMarkerFill: 'color-mix(in srgb, var(--highcharts-highlight-color-80) 25%, transparent)', // eslint-disable-line max-len
980
957
  /**
981
958
  * Whether to apply a drop shadow to the global series group. This causes
982
959
  * all the series to have the same shadow. Contrary to the `series.shadow`
@@ -3939,17 +3916,16 @@ class TimeBase {
3939
3916
  // eslint-disable-next-line new-cap
3940
3917
  let d = this.Date.UTC(year, month, date, hours, minutes || 0, seconds || 0, milliseconds || 0);
3941
3918
  if (this.timezone !== 'UTC') {
3942
- const offset = this.getTimezoneOffset(d);
3919
+ const offset = this.getTimezoneOffset(d), localHours = (hours - offset / timeUnits.hour + 24) % 24;
3943
3920
  d += offset;
3944
- // Adjustments close to DST transitions
3945
3921
  if (
3946
- // Optimize for speed by limiting the number of calls to
3947
- // `getTimezoneOffset`. According to
3922
+ // Limit the number of calls to `getTimezoneOffset` to months
3923
+ // where DST changes may occur. According to
3948
3924
  // https://en.wikipedia.org/wiki/Daylight_saving_time_by_country,
3949
3925
  // DST change may only occur in these months.
3950
3926
  [2, 3, 8, 9, 10, 11].indexOf(month) !== -1 &&
3951
- // DST transitions occur only in the night-time
3952
- (hours < 5 || hours > 20)) {
3927
+ // DST changes only occur at night (#24420)
3928
+ (localHours < 5 || localHours > 20)) {
3953
3929
  const newOffset = this.getTimezoneOffset(d);
3954
3930
  if (offset !== newOffset) {
3955
3931
  d += newOffset - offset;
@@ -6686,6 +6662,9 @@ const defaultOptions = {
6686
6662
  * below the column, but as `followTouchMove` is true, the tooltip will
6687
6663
  * jump from column to column as the user swipes across the plot area.
6688
6664
  *
6665
+ * @sample {highcharts} highcharts/tooltip/followtouchmove/
6666
+ * Tooltip follows touch move
6667
+ *
6689
6668
  * @type {boolean}
6690
6669
  * @default {highcharts} true
6691
6670
  * @default {highstock} true
@@ -7468,10 +7447,14 @@ const defaultOptions = {
7468
7447
  * @type {Highcharts.CSSObject}
7469
7448
  */
7470
7449
  style: {
7471
- /** @type {Highcharts.ColorType} */
7450
+ /**
7451
+ * @type {Highcharts.ColorType}
7452
+ */
7472
7453
  color: 'var(--highcharts-neutral-color-80)',
7473
7454
  cursor: 'default',
7474
- /** @type {number|string} */
7455
+ /**
7456
+ * @type {number|string}
7457
+ */
7475
7458
  fontSize: '0.8em'
7476
7459
  },
7477
7460
  /**
@@ -8394,24 +8377,22 @@ class Fx {
8394
8377
  */
8395
8378
  update() {
8396
8379
  const elem = this.elem, prop = this.prop, // If destroyed, it is null
8397
- now = this.now, step = this.options.step;
8380
+ now = this.now ?? 1, step = this.options.step;
8398
8381
  // Animation setter defined from outside
8399
8382
  if (this[prop + 'Setter']) {
8400
8383
  this[prop + 'Setter']();
8401
8384
  // Other animations on SVGElement
8402
8385
  }
8403
- else if (elem.attr) {
8386
+ else if (elem && elem.attr) {
8404
8387
  if (elem.element) {
8405
- elem.attr(prop, now, null, true);
8388
+ elem.attr(prop, now, void 0, true);
8406
8389
  }
8407
8390
  // HTML styles, raw HTML content like container size
8408
8391
  }
8409
- else {
8410
- elem.style[prop] = now + this.unit;
8411
- }
8412
- if (step) {
8413
- step.call(elem, now, this);
8392
+ else if (elem) {
8393
+ elem.style[prop] = now + (this.unit || '');
8414
8394
  }
8395
+ step?.call(elem, now, this);
8415
8396
  }
8416
8397
  /**
8417
8398
  * Run an animation.
@@ -8429,12 +8410,10 @@ class Fx {
8429
8410
  *
8430
8411
  */
8431
8412
  run(from, to, unit) {
8432
- const self = this, options = self.options, timer = function (gotoEnd) {
8433
- return timer.stopped ? false : self.step(gotoEnd);
8434
- }, requestAnimationFrame = Fx_win.requestAnimationFrame ||
8413
+ const { elem, options } = this, { complete, curAnim = {} } = options, timer = (gotoEnd) => (timer.stopped ? false : this.step(gotoEnd)), requestAnimationFrame = Fx_win.requestAnimationFrame ||
8435
8414
  function (step) {
8436
8415
  setTimeout(step, 13);
8437
- }, step = function () {
8416
+ }, step = () => {
8438
8417
  for (let i = 0; i < Fx.timers.length; i++) {
8439
8418
  if (!Fx.timers[i]()) {
8440
8419
  Fx.timers.splice(i--, 1);
@@ -8444,11 +8423,11 @@ class Fx {
8444
8423
  requestAnimationFrame(step);
8445
8424
  }
8446
8425
  };
8447
- if (from === to && !this.elem['forceAnimate:' + this.prop]) {
8448
- delete options.curAnim[this.prop];
8449
- if (options.complete &&
8450
- Object.keys(options.curAnim).length === 0) {
8451
- options.complete.call(this.elem);
8426
+ if (from === to && !elem['forceAnimate:' + this.prop]) {
8427
+ delete curAnim[this.prop];
8428
+ if (complete &&
8429
+ Object.keys(curAnim).length === 0) {
8430
+ complete.call(elem);
8452
8431
  }
8453
8432
  }
8454
8433
  else { // #7166
@@ -8458,7 +8437,7 @@ class Fx {
8458
8437
  this.unit = unit;
8459
8438
  this.now = this.start;
8460
8439
  this.pos = 0;
8461
- timer.elem = this.elem;
8440
+ timer.elem = elem;
8462
8441
  timer.prop = this.prop;
8463
8442
  if (timer() && Fx.timers.push(timer) === 1) {
8464
8443
  requestAnimationFrame(step);
@@ -8479,7 +8458,8 @@ class Fx {
8479
8458
  step(gotoEnd) {
8480
8459
  const t = +new Date(), options = this.options, elem = this.elem, complete = options.complete, duration = options.duration, curAnim = options.curAnim;
8481
8460
  let ret, done;
8482
- if (!!elem.attr && !elem.element) { // #2616, element is destroyed
8461
+ // #2616, element is destroyed
8462
+ if (elem?.attr && !elem.element) {
8483
8463
  ret = false;
8484
8464
  }
8485
8465
  else if (gotoEnd || t >= duration + this.startTime) {
@@ -8769,6 +8749,11 @@ function getDeferredAnimation(chart, animation, series) {
8769
8749
  /**
8770
8750
  * The global animate method, which uses Fx to create individual animators.
8771
8751
  *
8752
+ * @sample highcharts/members/renderer-basic
8753
+ * SVG elements with animation
8754
+ * @sample highcharts/members/animate
8755
+ * Animation without an owner element
8756
+ *
8772
8757
  * @function Highcharts.animate
8773
8758
  *
8774
8759
  * @param {Highcharts.HTMLDOMElement|Highcharts.SVGElement} el
@@ -8784,14 +8769,12 @@ function getDeferredAnimation(chart, animation, series) {
8784
8769
  *
8785
8770
  * @return {void}
8786
8771
  */
8787
- function animate(el, params, opt) {
8788
- let start, unit = '', end, fx, args;
8772
+ function animate(el, params = { pos: 1 }, opt) {
8789
8773
  if (!isObject(opt)) { // Number or undefined/null
8790
- args = arguments;
8791
8774
  opt = {
8792
- duration: args[2],
8793
- easing: args[3],
8794
- complete: args[4]
8775
+ duration: arguments[2],
8776
+ easing: arguments[3],
8777
+ complete: arguments[4]
8795
8778
  };
8796
8779
  }
8797
8780
  if (!isNumber(opt.duration)) {
@@ -8801,22 +8784,23 @@ function animate(el, params, opt) {
8801
8784
  opt.easing :
8802
8785
  (Math[opt.easing] || Math.easeInOutSine);
8803
8786
  opt.curAnim = merge(params);
8804
- objectEach(params, function (val, prop) {
8787
+ objectEach(params, (val, prop) => {
8805
8788
  // Stop current running animation of this property
8806
- stop(el, prop);
8807
- fx = new Animation_Fx(el, opt, prop);
8808
- end = void 0;
8809
- if (prop === 'd' && isArray(params.d)) {
8810
- fx.paths = fx.initPath(el, el.pathArray, params.d);
8811
- fx.toD = params.d;
8812
- start = 0;
8789
+ if (el) {
8790
+ stop(el, prop);
8791
+ }
8792
+ const fx = new Animation_Fx(el, opt, prop), d = params.d;
8793
+ let start = 0, end = void 0, unit = '';
8794
+ if (prop === 'd' && isArray(d)) {
8795
+ fx.paths = fx.initPath(el, el.pathArray, d);
8796
+ fx.toD = d;
8813
8797
  end = 1;
8814
8798
  }
8815
- else if (el.attr) {
8799
+ else if (el?.attr) {
8816
8800
  start = el.attr(prop);
8817
8801
  }
8818
- else {
8819
- start = parseFloat(getStyle(el, prop)) || 0;
8802
+ else if (el) {
8803
+ start = +(getStyle(el, prop) || 0);
8820
8804
  if (prop !== 'opacity') {
8821
8805
  unit = 'px';
8822
8806
  }
@@ -8827,7 +8811,10 @@ function animate(el, params, opt) {
8827
8811
  if (typeof end === 'string' && end.match('px')) {
8828
8812
  end = end.replace(/px/g, ''); // #4351
8829
8813
  }
8830
- fx.run(start, end, unit);
8814
+ // Empty dashstyle animation crashes treemap on hover
8815
+ if (defined(end)) {
8816
+ fx.run(start, end, unit);
8817
+ }
8831
8818
  });
8832
8819
  }
8833
8820
  /**
@@ -8851,28 +8838,11 @@ function animate(el, params, opt) {
8851
8838
  * improvement in all cases where we stop the animation from .attr. Instead of
8852
8839
  * stopping everything, we can just stop the actual attributes we're setting.
8853
8840
  */
8854
- function stop(el, prop) {
8855
- let i = Animation_Fx.timers.length;
8856
- // Remove timers related to this element (#4519)
8857
- while (i--) {
8858
- if (Animation_Fx.timers[i].elem === el && (!prop || prop === Animation_Fx.timers[i].prop)) {
8859
- Animation_Fx.timers[i].stopped = true; // #4667
8860
- }
8841
+ const stop = (el, prop) => Animation_Fx.timers.forEach((timer) => {
8842
+ if (timer.elem === el && (!prop || prop === timer.prop)) {
8843
+ timer.stopped = true; // #4667
8861
8844
  }
8862
- }
8863
- const animationExports = {
8864
- animate,
8865
- animObject,
8866
- getDeferredAnimation,
8867
- setAnimation,
8868
- stop
8869
- };
8870
- /* *
8871
- *
8872
- * Default Export
8873
- *
8874
- * */
8875
- /* harmony default export */ const AnimationUtilities = (animationExports);
8845
+ });
8876
8846
  /* *
8877
8847
  *
8878
8848
  * API Options
@@ -9177,7 +9147,9 @@ class AST {
9177
9147
  doc = { body };
9178
9148
  }
9179
9149
  const appendChildNodes = (node, addTo) => {
9180
- const tagName = node.nodeName.toLowerCase();
9150
+ // Preserve the camelCase of SVG tags via localName (#24702).
9151
+ const tagName = node.localName ||
9152
+ node.nodeName.toLowerCase();
9181
9153
  // Add allowed tags
9182
9154
  const astNode = {
9183
9155
  tagName
@@ -9291,6 +9263,8 @@ AST.allowedAttributes = [
9291
9263
  'src',
9292
9264
  'startOffset',
9293
9265
  'stdDeviation',
9266
+ 'stop-color',
9267
+ 'stop-opacity',
9294
9268
  'stroke-linecap',
9295
9269
  'stroke-width',
9296
9270
  'stroke',
@@ -9894,9 +9868,7 @@ const Templating = {
9894
9868
  * API Declarations
9895
9869
  * */
9896
9870
  /**
9897
- * @interface Highcharts.Templating
9898
- *
9899
- * The Highcharts.Templating interface provides a structure for defining
9871
+ * The Highcharts.TemplatingObject interface provides a structure for defining
9900
9872
  * helpers. Helpers can be used as conditional blocks or functions within
9901
9873
  * expressions. Highcharts includes several built-in helpers and supports
9902
9874
  * the addition of custom helpers.
@@ -9904,16 +9876,21 @@ const Templating = {
9904
9876
  * @see [More information](
9905
9877
  * https://www.highcharts.com/docs/chart-concepts/templating#helpers)
9906
9878
  *
9907
- * @example
9908
- * // Define a custom helper to return the absolute value of a number
9909
- * Highcharts.Templating.helpers.abs = value => Math.abs(value);
9910
- *
9911
- * // Usage in a format string
9912
- * format: 'Absolute value: {abs point.y}'
9913
- *
9914
- * @name Highcharts.Templating#helpers
9915
- * @type {Record<string, Function>}
9916
- */
9879
+ * @interface Highcharts.TemplatingObject
9880
+ */ /**
9881
+ * @example
9882
+ * // Define a custom helper to return the absolute value of a number
9883
+ * Highcharts.Templating.helpers.abs = value => Math.abs(value);
9884
+ *
9885
+ * // Usage in a format string
9886
+ * format: 'Absolute value: {abs point.y}'
9887
+ *
9888
+ * @name Highcharts.TemplatingObject#helpers
9889
+ * @type {Record<string, Function>}
9890
+ */ /**
9891
+ * @name Highcharts.Templating
9892
+ * @type {Highcharts.TemplatingObject}
9893
+ */
9917
9894
  (''); // Keeps doclets above in file
9918
9895
 
9919
9896
  ;// ./code/es-modules/Core/Renderer/RendererUtilities.js
@@ -10122,7 +10099,6 @@ var RendererUtilities;
10122
10099
  * */
10123
10100
 
10124
10101
 
10125
- const { animate: SVGElement_animate, animObject: SVGElement_animObject, stop: SVGElement_stop } = AnimationUtilities;
10126
10102
 
10127
10103
 
10128
10104
  const { deg2rad, doc: SVGElement_doc, svg, SVG_NS: SVGElement_SVG_NS, win: SVGElement_win, isFirefox } = Core_Globals;
@@ -10406,7 +10382,7 @@ class SVGElement {
10406
10382
  * Returns the SVGElement for chaining.
10407
10383
  */
10408
10384
  animate(params, options, complete) {
10409
- const animOptions = SVGElement_animObject(pick(options, this.renderer.globalAnimation, true)), deferTime = animOptions.defer;
10385
+ const animOptions = animObject(pick(options, this.renderer.globalAnimation, true)), deferTime = animOptions.defer;
10410
10386
  // When the page is hidden save resources in the background by not
10411
10387
  // running animation at all (#9749).
10412
10388
  if (SVGElement_doc.hidden) {
@@ -10421,7 +10397,7 @@ class SVGElement {
10421
10397
  // If defer option is defined delay the animation #12901
10422
10398
  syncTimeout(() => {
10423
10399
  if (this.element) {
10424
- SVGElement_animate(this, params, animOptions);
10400
+ animate(this, params, animOptions);
10425
10401
  }
10426
10402
  }, deferTime);
10427
10403
  }
@@ -10595,7 +10571,7 @@ class SVGElement {
10595
10571
  // Unless .attr is from the animator update, stop current
10596
10572
  // running animation of this property
10597
10573
  if (!continueAnimation) {
10598
- SVGElement_stop(this, key);
10574
+ stop(this, key);
10599
10575
  }
10600
10576
  // Special handling of symbol attributes
10601
10577
  if (this.symbolName &&
@@ -10915,7 +10891,7 @@ class SVGElement {
10915
10891
  // Remove events
10916
10892
  element.onclick = element.onmouseout = element.onmouseover =
10917
10893
  element.onmousemove = element.point = null;
10918
- SVGElement_stop(wrapper); // Stop running animations
10894
+ stop(wrapper); // Stop running animations
10919
10895
  if (wrapper.clipPath && ownerSVGElement) {
10920
10896
  const clipPath = wrapper.clipPath;
10921
10897
  // Look for existing references to this clipPath and remove them
@@ -13827,7 +13803,7 @@ class SVGRenderer {
13827
13803
  this.url = this.getReferenceURL();
13828
13804
  // Add description
13829
13805
  const desc = this.createElement('desc').add();
13830
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.0'));
13806
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.1'));
13831
13807
  this.defs = this.createElement('defs').add();
13832
13808
  this.allowHTML = allowHTML;
13833
13809
  this.forExport = forExport;
@@ -15618,7 +15594,11 @@ class HTMLElement extends SVG_SVGElement {
15618
15594
  .attr({
15619
15595
  text: str,
15620
15596
  x: Math.round(x),
15621
- y: Math.round(y)
15597
+ y: Math.round(y),
15598
+ // The namespace attribute is required for serialization
15599
+ // (export and side-by-side comparison), otherwise it
15600
+ // inherits the SVG namespace from foreignObject.
15601
+ xmlns: 'http://www.w3.org/1999/xhtml'
15622
15602
  });
15623
15603
  };
15624
15604
  }
@@ -15798,8 +15778,10 @@ class HTMLElement extends SVG_SVGElement {
15798
15778
  foreignObject.attr({
15799
15779
  x: x + (this.xCorr || 0),
15800
15780
  y: y + (this.yCorr || 0),
15801
- // Add 4px to avoid ellipsis, since the body adds 3 px right
15802
- // margin. We need one more because of rounding.
15781
+ // Add 4px to avoid ellipsis. In v13.0.0 we had a body inside
15782
+ // the foreignObject with a 3px right margin. This was later
15783
+ // removed, but we still need to add a few pixels to avoid
15784
+ // ellipsis.
15803
15785
  width: element.offsetWidth + 4,
15804
15786
  // Add 1px to account for subpixel bounding boxes
15805
15787
  height: element.offsetHeight + 1,
@@ -15819,25 +15801,16 @@ class HTMLElement extends SVG_SVGElement {
15819
15801
  this.cTT = currentTextTransform;
15820
15802
  }
15821
15803
  /**
15822
- * Add the element to a group wrapper. For HTML elements, a parallel div
15823
- * will be created for each ancestor SVG `g` element.
15804
+ * Add the element to the foreign object
15824
15805
  *
15825
15806
  * @internal
15826
15807
  */
15827
15808
  add(parentGroup) {
15828
- const { foreignObject, renderer } = this;
15809
+ const { foreignObject } = this;
15829
15810
  // Foreign object
15830
15811
  foreignObject.add(parentGroup);
15831
- super.add(
15832
- // Create a body inside the foreignObject
15833
- renderer.createElement('body')
15834
- .attr({ xmlns: 'http://www.w3.org/1999/xhtml' })
15835
- .css({
15836
- background: 'transparent',
15837
- // 3px is to avoid clipping on the right
15838
- margin: '0 3px 0 0'
15839
- })
15840
- .add(foreignObject));
15812
+ // Add this.element to the foreign objct
15813
+ super.add(foreignObject);
15841
15814
  if (this.alignOnAdd) {
15842
15815
  this.updateTransform();
15843
15816
  }
@@ -15872,10 +15845,20 @@ class HTMLElement extends SVG_SVGElement {
15872
15845
  this[key] = value;
15873
15846
  this.doTransform = true;
15874
15847
  }
15848
+ /**
15849
+ * Apply visibility/opacity to the foreignObject; the HTML element
15850
+ * ignores them.
15851
+ * @internal
15852
+ */
15853
+ visibilitySetter(value, key) {
15854
+ this.foreignObject.attr({ [key]: value });
15855
+ this[key] = value;
15856
+ }
15875
15857
  }
15876
15858
  // Some shared setters
15877
15859
  const proto = HTMLElement.prototype;
15878
15860
  proto.ySetter = proto.xSetter;
15861
+ proto.opacitySetter = proto.visibilitySetter;
15879
15862
  /* *
15880
15863
  *
15881
15864
  * Default Export
@@ -16416,6 +16399,7 @@ var AxisDefaults;
16416
16399
  */
16417
16400
  dateTimeLabelFormats: {
16418
16401
  /**
16402
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16419
16403
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16420
16404
  */
16421
16405
  millisecond: {
@@ -16441,6 +16425,7 @@ var AxisDefaults;
16441
16425
  range: false
16442
16426
  },
16443
16427
  /**
16428
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16444
16429
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16445
16430
  */
16446
16431
  second: {
@@ -16466,6 +16451,7 @@ var AxisDefaults;
16466
16451
  range: false
16467
16452
  },
16468
16453
  /**
16454
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16469
16455
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16470
16456
  */
16471
16457
  minute: {
@@ -16491,6 +16477,7 @@ var AxisDefaults;
16491
16477
  range: false
16492
16478
  },
16493
16479
  /**
16480
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16494
16481
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16495
16482
  */
16496
16483
  hour: {
@@ -16523,6 +16510,7 @@ var AxisDefaults;
16523
16510
  range: false
16524
16511
  },
16525
16512
  /**
16513
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16526
16514
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16527
16515
  */
16528
16516
  day: {
@@ -16545,6 +16533,7 @@ var AxisDefaults;
16545
16533
  boundary: '%[eb]'
16546
16534
  },
16547
16535
  /**
16536
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16548
16537
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16549
16538
  */
16550
16539
  week: {
@@ -16560,6 +16549,7 @@ var AxisDefaults;
16560
16549
  main: '%[eb]'
16561
16550
  },
16562
16551
  /**
16552
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16563
16553
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16564
16554
  */
16565
16555
  month: {
@@ -16582,6 +16572,7 @@ var AxisDefaults;
16582
16572
  boundary: void 0
16583
16573
  },
16584
16574
  /**
16575
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16585
16576
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16586
16577
  */
16587
16578
  year: {
@@ -17397,7 +17388,7 @@ var AxisDefaults;
17397
17388
  * @sample {highstock} stock/xaxis/offset/
17398
17389
  * Y axis offset by 70 px
17399
17390
  *
17400
- * @type {number}
17391
+ * @type {number|string}
17401
17392
  */
17402
17393
  offset: void 0,
17403
17394
  /**
@@ -19047,7 +19038,9 @@ var AxisDefaults;
19047
19038
  * @product highcharts
19048
19039
  */
19049
19040
  style: {
19050
- /** @type {Highcharts.ColorType} */
19041
+ /**
19042
+ * @type {Highcharts.ColorType}
19043
+ */
19051
19044
  color: 'var(--highcharts-neutral-color-100)',
19052
19045
  /**
19053
19046
  * @type {number|string}
@@ -19830,7 +19823,6 @@ class Tick {
19830
19823
  * */
19831
19824
 
19832
19825
 
19833
- const { animObject: Axis_animObject } = AnimationUtilities;
19834
19826
 
19835
19827
  const { xAxis, yAxis } = Axis_AxisDefaults;
19836
19828
 
@@ -22436,7 +22428,7 @@ class Axis {
22436
22428
  * @emits Highcharts.Axis#event:afterRender
22437
22429
  */
22438
22430
  render() {
22439
- const axis = this, chart = axis.chart, log = axis.logarithmic, renderer = chart.renderer, options = axis.options, isLinked = axis.isLinked, tickPositions = axis.tickPositions, axisTitle = axis.axisTitle, ticks = axis.ticks, minorTicks = axis.minorTicks, alternateBands = axis.alternateBands, stackLabelOptions = options.stackLabels, alternateGridColor = options.alternateGridColor, crossing = options.crossing, tickmarkOffset = axis.tickmarkOffset, axisLine = axis.axisLine, showAxis = axis.showAxis, animation = Axis_animObject(renderer.globalAnimation);
22431
+ const axis = this, chart = axis.chart, log = axis.logarithmic, renderer = chart.renderer, options = axis.options, isLinked = axis.isLinked, tickPositions = axis.tickPositions, axisTitle = axis.axisTitle, ticks = axis.ticks, minorTicks = axis.minorTicks, alternateBands = axis.alternateBands, stackLabelOptions = options.stackLabels, alternateGridColor = options.alternateGridColor, crossing = options.crossing, tickmarkOffset = axis.tickmarkOffset, axisLine = axis.axisLine, showAxis = axis.showAxis, animation = animObject(renderer.globalAnimation);
22440
22432
  let from, to;
22441
22433
  // Reset
22442
22434
  axis.labelEdge.length = 0;
@@ -22787,7 +22779,7 @@ class Axis {
22787
22779
  }
22788
22780
  cross
22789
22781
  .show()
22790
- .animate({ d: path }, Axis_animObject(options?.animation));
22782
+ .animate({ d: path }, animObject(options?.animation));
22791
22783
  if (categorized && !options.width) {
22792
22784
  cross.attr({
22793
22785
  'stroke-width': this.transA
@@ -24825,7 +24817,6 @@ class PlotLineOrBand {
24825
24817
  * */
24826
24818
 
24827
24819
 
24828
- const { animObject: Tooltip_animObject } = AnimationUtilities;
24829
24820
 
24830
24821
  const { format: Tooltip_format } = Core_Templating;
24831
24822
 
@@ -25526,7 +25517,7 @@ class Tooltip {
25526
25517
  * @param {number} anchorY
25527
25518
  */
25528
25519
  move(x, y, anchorX, anchorY) {
25529
- const { followPointer, options } = this, animation = Tooltip_animObject(!followPointer &&
25520
+ const { followPointer, options } = this, animation = animObject(!followPointer &&
25530
25521
  !this.isHidden &&
25531
25522
  !options.fixed &&
25532
25523
  options.animation), skipAnchor = followPointer || (this.len || 0) > 1, attr = { x, y };
@@ -26274,7 +26265,6 @@ class Tooltip {
26274
26265
 
26275
26266
 
26276
26267
 
26277
- const { animObject: Point_animObject } = AnimationUtilities;
26278
26268
 
26279
26269
  const { defaultOptions: Point_defaultOptions } = Defaults;
26280
26270
 
@@ -26614,10 +26604,15 @@ class Point {
26614
26604
  *
26615
26605
  * @internal
26616
26606
  * @function Highcharts.Point#destroy
26607
+ *
26608
+ * @param {boolean} [sync]
26609
+ * Whether to destroy the point synchronously. Used internally from
26610
+ * series.destroy, where condemned points may cause animation errors
26611
+ * (#24976).
26617
26612
  */
26618
- destroy() {
26619
- if (!this.condemned) {
26620
- const point = this, series = point.series, chart = series.chart, hoverPoints = chart.hoverPoints, globalAnimation = point.series.chart.renderer.globalAnimation, { duration } = Point_animObject(globalAnimation);
26613
+ destroy(sync) {
26614
+ if (!this.destroyed && !this.condemned) {
26615
+ const point = this, series = point.series, chart = series.chart, hoverPoints = chart.hoverPoints, globalAnimation = point.series.chart.renderer.globalAnimation, { duration } = animObject(globalAnimation);
26621
26616
  /**
26622
26617
  * Allow to call after animation.
26623
26618
  * @internal
@@ -26634,6 +26629,7 @@ class Point {
26634
26629
  for (const prop in point) { // eslint-disable-line guard-for-in
26635
26630
  delete point[prop];
26636
26631
  }
26632
+ this.destroyed = true;
26637
26633
  };
26638
26634
  if (point.legendItem) {
26639
26635
  // Pies have legend items
@@ -26650,7 +26646,7 @@ class Point {
26650
26646
  point.onMouseOut();
26651
26647
  }
26652
26648
  // Remove properties after animation
26653
- if (duration && series.condemnedPoints) {
26649
+ if (duration && !sync && series.condemnedPoints) {
26654
26650
  series.condemnedPoints.push(this);
26655
26651
  this.graphic?.addClass('highcharts-point-condemned');
26656
26652
  setTimeout(destroyPoint, duration);
@@ -26773,14 +26769,15 @@ class Point {
26773
26769
  *
26774
26770
  * @function Highcharts.Point#getZone
26775
26771
  *
26776
- * @return {Highcharts.SeriesZonesOptionsObject}
26777
- * The zone item.
26772
+ * @return {Highcharts.SeriesZonesOptionsObject|undefined}
26773
+ * The zone item, or `undefined` if the series has no zones.
26778
26774
  */
26779
26775
  getZone() {
26780
26776
  const series = this.series, zones = series.zones, zoneAxis = series.zoneAxis || 'y';
26781
26777
  let zone, i = 0;
26782
26778
  zone = zones[i];
26783
- while (this[zoneAxis] >= zone.value) {
26779
+ while (i < zones.length &&
26780
+ this[zoneAxis] >= zone.value) {
26784
26781
  zone = zones[++i];
26785
26782
  }
26786
26783
  // For resetting or reusing the point (#8100)
@@ -27320,9 +27317,8 @@ class Point {
27320
27317
  * @emits Highcharts.Point#event:afterSetState
27321
27318
  */
27322
27319
  setState(state, move) {
27323
- const point = this, series = point.series, previousState = point.state, stateOptions = (series.options.states[state || 'normal'] ||
27324
- {}), markerOptions = (Point_defaultOptions.plotOptions[series.type].marker &&
27325
- series.options.marker), normalDisabled = (markerOptions && markerOptions.enabled === false), markerStateOptions = markerOptions?.states?.[state || 'normal'] ||
27320
+ const point = this, series = point.series, previousState = point.state, stateOptions = series.options.states?.[state || 'normal'] || {}, markerOptions = (Point_defaultOptions.plotOptions?.[series.type]?.marker &&
27321
+ series.options.marker), normalDisabled = markerOptions?.enabled === false, markerStateOptions = markerOptions?.states?.[state || 'normal'] ||
27326
27322
  {}, stateDisabled = markerStateOptions.enabled === false, pointMarker = point.marker || {}, chart = series.chart, hasMarkers = (markerOptions && series.markerAttribs);
27327
27323
  let halo = series.halo, markerAttribs, pointAttribs, pointAttribsAnimation, stateMarkerGraphic = series.stateMarkerGraphic, newSymbol;
27328
27324
  state = state || ''; // Empty string
@@ -27335,13 +27331,10 @@ class Point {
27335
27331
  (stateOptions.enabled === false) ||
27336
27332
  // General point marker's state options is disabled
27337
27333
  (state && (stateDisabled ||
27338
- (normalDisabled &&
27339
- markerStateOptions.enabled === false))) ||
27334
+ (normalDisabled && markerStateOptions.enabled === false))) ||
27340
27335
  // Individual point marker's state options is disabled
27341
27336
  (state &&
27342
- pointMarker.states &&
27343
- pointMarker.states[state] &&
27344
- pointMarker.states[state].enabled === false) // #1610
27337
+ pointMarker.states?.[state]?.enabled === false) // #1610
27345
27338
  ) {
27346
27339
  return;
27347
27340
  }
@@ -27360,7 +27353,8 @@ class Point {
27360
27353
  }
27361
27354
  if (!chart.styledMode) {
27362
27355
  pointAttribs = series.pointAttribs(point, state);
27363
- pointAttribsAnimation = pick(chart.options.chart.animation, stateOptions.animation);
27356
+ pointAttribsAnimation = (chart.options.chart.animation ??
27357
+ stateOptions.animation);
27364
27358
  const opacity = pointAttribs.opacity;
27365
27359
  // Some inactive points (e.g. slices in pie) should apply
27366
27360
  // opacity also for their labels
@@ -27378,9 +27372,11 @@ class Point {
27378
27372
  point.graphic.animate(pointAttribs, pointAttribsAnimation);
27379
27373
  }
27380
27374
  if (markerAttribs) {
27381
- point.graphic.animate(markerAttribs, pick(
27375
+ point.graphic.animate(markerAttribs, (
27382
27376
  // Turn off globally:
27383
- chart.options.chart.animation, markerStateOptions.animation, markerOptions.animation));
27377
+ chart.options.chart.animation ??
27378
+ markerStateOptions.animation ??
27379
+ markerOptions.animation));
27384
27380
  }
27385
27381
  // Zooming in from a range with no markers to a range with markers
27386
27382
  if (stateMarkerGraphic) {
@@ -27429,10 +27425,12 @@ class Point {
27429
27425
  }
27430
27426
  }
27431
27427
  // Show me your halo
27432
- const haloOptions = stateOptions.halo;
27428
+ const haloOptions = isObject(stateOptions.halo) ?
27429
+ stateOptions.halo :
27430
+ {};
27433
27431
  const markerGraphic = (point.graphic || stateMarkerGraphic);
27434
27432
  const markerVisibility = markerGraphic?.visibility || 'inherit';
27435
- if (haloOptions?.size &&
27433
+ if (haloOptions.size &&
27436
27434
  markerGraphic &&
27437
27435
  markerVisibility !== 'hidden' &&
27438
27436
  !point.isCluster) {
@@ -27962,6 +27960,11 @@ class Pointer {
27962
27960
  }
27963
27961
  }
27964
27962
  }
27963
+ // Run a final transform with a drop trigger to display the reset
27964
+ // zoom button after a pinch gesture (#22128)
27965
+ if (e?.type === 'touchend' && this.hasDragged) {
27966
+ chart.transform({ trigger: 'drop' });
27967
+ }
27965
27968
  if (redraw) {
27966
27969
  chart.redraw();
27967
27970
  }
@@ -28605,6 +28608,9 @@ class Pointer {
28605
28608
  from: boxFromTouches(lastTouches),
28606
28609
  trigger: e.type
28607
28610
  });
28611
+ // Record a truthy value in order to trigger the final transform
28612
+ // in the drop function
28613
+ pointer.hasDragged = 1;
28608
28614
  });
28609
28615
  if (pointer.res) {
28610
28616
  pointer.res = false;
@@ -29096,7 +29102,9 @@ class Pointer {
29096
29102
  // If inside, capture touch-drag and display tooltip. If not inside,
29097
29103
  // allow dragging the finger to scroll the page
29098
29104
  if ((chart.tooltip?.options.followTouchMove ?? true) &&
29099
- isInside) {
29105
+ isInside &&
29106
+ e.type === 'touchmove' &&
29107
+ !(chart.scrollablePixelsX || chart.scrollablePixelsY)) {
29100
29108
  e.preventDefault();
29101
29109
  }
29102
29110
  }
@@ -29568,7 +29576,7 @@ class DataTableCore {
29568
29576
  * Fetches the given column by the canonical column ID. Simplified version
29569
29577
  * of the full `DataTable.getRow` method, always returning by reference.
29570
29578
  *
29571
- * @function Highcharts.DataTable#setColumn
29579
+ * @function Highcharts.DataTable#getColumn
29572
29580
  *
29573
29581
  * @param {string} columnId
29574
29582
  * ID of the column to get.
@@ -30304,6 +30312,10 @@ const seriesDefaults = {
30304
30312
  * ```
30305
30313
  *
30306
30314
  * @type {Highcharts.DataMappingOptionsObject}
30315
+ * @sample highcharts/datatable/datamapping
30316
+ * Basic data mapping
30317
+ * @sample highcharts/datatable/datamapping-dynamic
30318
+ * Data mapping with dynamic updates
30307
30319
  * @sample {highcharts} highcharts/datatable/series-datatable-multiple
30308
30320
  * Series with two data tables
30309
30321
  * @sample {highcharts} highcharts/datatable/nested-keys
@@ -30314,6 +30326,29 @@ const seriesDefaults = {
30314
30326
  * @since 13.0.0
30315
30327
  * @apioption plotOptions.series.dataMapping
30316
30328
  */
30329
+ /**
30330
+ * Options for a specific series-level data table or an array of data
30331
+ * tables. The `dataTable` option can be either a configuration object or an
30332
+ * instance of the `DataTable` class. If a `DataTable` instance is passed,
30333
+ * it will be used directly. If a configuration object or an array is
30334
+ * passed, a new `DataTable` instance will be created based on the provided
30335
+ * configuration.
30336
+ *
30337
+ * @type {Highcharts.DataTable|Highcharts.DataTableOptionsObject|Array<Highcharts.DataTable|Highcharts.DataTableOptionsObject>}
30338
+ * @sample {highcharts} highcharts/datatable/series-datatable/
30339
+ * Series with one data table each
30340
+ * @sample {highcharts} highcharts/datatable/series-datatable-multiple/
30341
+ * Series with two data tables
30342
+ * @sample {highstock} stock/datatable/series-datatable/
30343
+ * Series with one data table each
30344
+ * @sample {highstock} stock/datatable/series-datatable-multiple/
30345
+ * Series with two data tables
30346
+ * @sample {highmaps} maps/datatable/series-datatable
30347
+ * Series-level data table
30348
+ *
30349
+ * @since 13.0.0
30350
+ * @apioption plotOptions.series.dataTable
30351
+ */
30317
30352
  /**
30318
30353
  * Enable or disable the mouse tracking for a specific series. This
30319
30354
  * includes point tooltips and click events on graphs and points. For
@@ -31197,6 +31232,7 @@ const seriesDefaults = {
31197
31232
  * `series.allowPointSelect` option to true.
31198
31233
  *
31199
31234
  * @declare Highcharts.PointStatesSelectOptionsObject
31235
+ * @extends plotOptions.series.marker.states.hover
31200
31236
  */
31201
31237
  select: {
31202
31238
  /**
@@ -31773,6 +31809,7 @@ const seriesDefaults = {
31773
31809
  * @sample {highmaps} maps/plotoptions/series-datalabels-box/
31774
31810
  * Data labels box options
31775
31811
  *
31812
+ * @type {number|Array<number>}
31776
31813
  * @since 2.2.1
31777
31814
  */
31778
31815
  padding: [1, 3],
@@ -31974,6 +32011,9 @@ const seriesDefaults = {
31974
32011
  /**
31975
32012
  * A collection of options for different series states.
31976
32013
  *
32014
+ * In addition to the options documented under each state, any option from
32015
+ * the parent series type can be set, with exception of `data` and `states`.
32016
+ *
31977
32017
  * @declare Highcharts.SeriesStatesOptionsObject
31978
32018
  */
31979
32019
  states: {
@@ -32147,6 +32187,7 @@ const seriesDefaults = {
32147
32187
  * Disabled inactive state
32148
32188
  *
32149
32189
  * @declare Highcharts.SeriesStatesInactiveOptionsObject
32190
+ * @extends plotOptions.series.states.hover
32150
32191
  */
32151
32192
  inactive: {
32152
32193
  /**
@@ -32547,7 +32588,6 @@ var SeriesRegistry;
32547
32588
  * */
32548
32589
 
32549
32590
 
32550
- const { animObject: Series_animObject, setAnimation: Series_setAnimation } = AnimationUtilities;
32551
32591
 
32552
32592
 
32553
32593
  const { defaultOptions: Series_defaultOptions } = Defaults;
@@ -32685,6 +32725,13 @@ class Series {
32685
32725
  * @type {number|undefined}
32686
32726
  * @readonly
32687
32727
  */
32728
+ /**
32729
+ * The main group for the series' graphics.
32730
+ *
32731
+ * @name Highcharts.Series#group
32732
+ * @type {Highcharts.SVGElement}
32733
+ * @readonly
32734
+ */
32688
32735
  /**
32689
32736
  * Contains the series' index in the `Chart.series` array.
32690
32737
  *
@@ -32817,10 +32864,12 @@ class Series {
32817
32864
  */
32818
32865
  series.options = series.setOptions(userOptions);
32819
32866
  const options = series.options, visible = options.visible !== false;
32820
- // Create the data table
32821
- this.dataTable ?? (this.dataTable = options.dataTable?.isDataTable ?
32822
- options.dataTable :
32823
- new Data_DataTableCore(options.dataTable));
32867
+ // Create the data table or use the one passed as option
32868
+ this.dataTable ?? (this.dataTable = isArray(options.dataTable) ?
32869
+ new Data_DataTableCore() :
32870
+ options.dataTable?.isDataTable ?
32871
+ options.dataTable :
32872
+ new Data_DataTableCore(options.dataTable));
32824
32873
  /**
32825
32874
  * All child series that are linked to the current series through the
32826
32875
  * [linkedTo](https://api.highcharts.com/highcharts/series.line.linkedTo)
@@ -33202,7 +33251,7 @@ class Series {
33202
33251
  */
33203
33252
  getSymbol() {
33204
33253
  const seriesMarkerOption = this.options.marker;
33205
- this.getCyclic('symbol', seriesMarkerOption.symbol, this.chart.options.symbols);
33254
+ this.getCyclic('symbol', seriesMarkerOption?.symbol, this.chart.options.symbols);
33206
33255
  }
33207
33256
  /**
33208
33257
  * Shorthand to get one of the series' data columns from `Series.dataTable`.
@@ -33398,9 +33447,10 @@ class Series {
33398
33447
  if (!oldData[i].destroyed && !oldData[i].condemned) {
33399
33448
  const pOptions = dataTable.getRowObject(i);
33400
33449
  if (pOptions) {
33450
+ // Remove undefined properties, but preserve explicit
33451
+ // nulls (#24872)
33401
33452
  Object.keys(pOptions).forEach((key) => {
33402
- if (!defined(pOptions[key]) /* ||
33403
- pOptions[key] === oldData[i].options[key]*/) {
33453
+ if (pOptions[key] === void 0) {
33404
33454
  delete pOptions[key];
33405
33455
  }
33406
33456
  });
@@ -33805,8 +33855,12 @@ class Series {
33805
33855
  }
33806
33856
  }
33807
33857
  }
33808
- // Find the closest distance between processed points
33809
- xData = this.getColumn('x', true);
33858
+ // Find the closest distance between processed points. When the data was
33859
+ // cropped (or set out of range), read x from the freshly cropped local
33860
+ // `modified` table, #24858.
33861
+ if (modified !== table) {
33862
+ xData = modified.getColumn('x', true) || [];
33863
+ }
33810
33864
  const closestPointRange = getClosestDistance([
33811
33865
  logarithmic ?
33812
33866
  xData.map(logarithmic.log2lin) :
@@ -34011,9 +34065,9 @@ class Series {
34011
34065
  * Force getting extremes of a total series data range.
34012
34066
  */
34013
34067
  getExtremes(yData, forceExtremesFromAll) {
34014
- const { xAxis, yAxis } = this, getExtremesFromAll = forceExtremesFromAll ||
34068
+ const { options, xAxis, yAxis } = this, getExtremesFromAll = forceExtremesFromAll ||
34015
34069
  this.getExtremesFromAll ||
34016
- this.options.getExtremesFromAll, // #4599, #21003
34070
+ options.getExtremesFromAll, // #4599, #21003
34017
34071
  table = getExtremesFromAll && this.cropped ?
34018
34072
  this.dataTable :
34019
34073
  this.dataTable.getModified(), rowCount = table.rowCount, customData = yData || this.stackedYData, yAxisData = customData ?
@@ -34023,7 +34077,12 @@ class Series {
34023
34077
  // non-sorted data like scatter (#7639).
34024
34078
  shoulder = this.requireSorting && !this.is('column') ?
34025
34079
  1 : 0,
34026
- // #2117, need to compensate for log X axis
34080
+ // Used only for `cumulativeStart` (#24608)
34081
+ excludeShoulder = options.cumulative &&
34082
+ options.cumulativeStart &&
34083
+ shoulder &&
34084
+ !getExtremesFromAll,
34085
+ // Compensate for log X axis (#2117)
34027
34086
  positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false, doAll = getExtremesFromAll ||
34028
34087
  this.cropped ||
34029
34088
  !xAxis; // For colorAxis support
@@ -34035,10 +34094,10 @@ class Series {
34035
34094
  }
34036
34095
  for (i = 0; i < rowCount; i++) {
34037
34096
  x = xData[i];
34038
- // Check if it is within the selected x axis range
34039
- if (doAll ||
34097
+ // Check if it is within the selected x-axis range
34098
+ if ((doAll ||
34040
34099
  ((xData[i + shoulder] || x) >= xMin &&
34041
- (xData[i - shoulder] || x) <= xMax)) {
34100
+ (xData[i - shoulder] || x) <= xMax)) && (!excludeShoulder || x >= xMin)) {
34042
34101
  for (const values of yAxisData) {
34043
34102
  const val = values[i];
34044
34103
  // For points within the visible range, including the
@@ -34107,7 +34166,7 @@ class Series {
34107
34166
  */
34108
34167
  translate() {
34109
34168
  this.generatePoints();
34110
- const series = this, { options, xAxis, yAxis } = series, { stacking, threshold } = options, { hasRendered, polar } = series.chart, points = series.points.concat(series.condemnedPoints), dataLength = points.length, pointPlacement = series.pointPlacementToXValue(), // #7860
34169
+ const series = this, { hasRendered, options, xAxis, yAxis } = series, { stacking, threshold } = options, { polar } = series.chart, points = series.points.concat(series.condemnedPoints), dataLength = points.length, pointPlacement = series.pointPlacementToXValue(), // #7860
34111
34170
  dynamicallyPlaced = Boolean(pointPlacement), stackThreshold = options.startFromThreshold ? threshold : 0, nullYSubstitute = (options?.nullInteraction &&
34112
34171
  yAxis.len);
34113
34172
  let i, plotX, lastPlotX, stackIndicator, closestPointRangePx = Number.MAX_VALUE;
@@ -34300,7 +34359,7 @@ class Series {
34300
34359
  * Initialize the animation.
34301
34360
  */
34302
34361
  animate(init) {
34303
- const { chart, group, markerGroup } = this, inverted = chart.inverted, animation = Series_animObject(this.options.animation),
34362
+ const { chart, group, markerGroup } = this, inverted = chart.inverted, animation = animObject(this.options.animation),
34304
34363
  // The key for temporary animation clips
34305
34364
  animationClipKey = [
34306
34365
  this.getSharedClipKey(),
@@ -34396,10 +34455,11 @@ class Series {
34396
34455
  */
34397
34456
  drawPoints(points) {
34398
34457
  points || (points = this.points.concat(this.condemnedPoints));
34399
- const series = this, chart = series.chart, styledMode = chart.styledMode, { colorAxis, options } = series, seriesMarkerOptions = options.marker, nullInteraction = options.nullInteraction, markerGroup = series[series.specialGroup || 'markerGroup'], xAxis = series.xAxis, globallyEnabled = pick(seriesMarkerOptions.enabled, !xAxis || xAxis.isRadial ? true : null,
34400
- // Use larger or equal as radius is null in bubbles (#6321)
34401
- series.closestPointRangePx >= (seriesMarkerOptions.enabledThreshold *
34402
- seriesMarkerOptions.radius));
34458
+ const series = this, chart = series.chart, styledMode = chart.styledMode, { colorAxis, options } = series, seriesMarkerOptions = options.marker || {}, nullInteraction = options.nullInteraction, markerGroup = series[series.specialGroup || 'markerGroup'], xAxis = series.xAxis, globallyEnabled = seriesMarkerOptions.enabled ??
34459
+ (!xAxis || xAxis.isRadial ? true : null) ??
34460
+ // Use larger or equal as radius is null in bubbles (#6321)
34461
+ ((series.closestPointRangePx ?? -Infinity) >= ((seriesMarkerOptions.enabledThreshold ?? 2) *
34462
+ seriesMarkerOptions.radius));
34403
34463
  let i, point, graphic, verb, pointMarkerOptions, hasPointMarker, markerAttribs;
34404
34464
  if (seriesMarkerOptions.enabled !== false ||
34405
34465
  series._hasPointMarkers) {
@@ -34417,7 +34477,7 @@ class Series {
34417
34477
  if (shouldDrawMarker) {
34418
34478
  // Shortcuts
34419
34479
  const symbol = pick(pointMarkerOptions.symbol, series.symbol, 'rect');
34420
- markerAttribs = series.markerAttribs(point, (point.selected && 'select'));
34480
+ markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
34421
34481
  const isInside = point.isInside !== false;
34422
34482
  if (!graphic &&
34423
34483
  isInside &&
@@ -34482,15 +34542,17 @@ class Series {
34482
34542
  * A hash containing those attributes that are not settable from CSS.
34483
34543
  */
34484
34544
  markerAttribs(point, state) {
34485
- const seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
34545
+ const seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker ?? {}, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
34486
34546
  seriesMarkerOptions.symbol), attribs = {};
34487
- let seriesStateOptions, pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions?.radius);
34547
+ let seriesStateOptions, pointStateOptions, radius = pointMarkerOptions.radius ??
34548
+ seriesMarkerOptions.radius;
34488
34549
  // Handle hover and select states
34489
34550
  if (state) {
34490
- seriesStateOptions = seriesMarkerOptions?.states?.[state];
34551
+ seriesStateOptions = seriesMarkerOptions.states?.[state];
34491
34552
  pointStateOptions = pointMarkerOptions.states?.[state];
34492
- radius = pick(pointStateOptions?.radius, seriesStateOptions?.radius, radius && radius + (seriesStateOptions?.radiusPlus ||
34493
- 0));
34553
+ radius = pointStateOptions?.radius ??
34554
+ seriesStateOptions?.radius ??
34555
+ (radius && radius + (seriesStateOptions?.radiusPlus || 0));
34494
34556
  }
34495
34557
  point.hasImage = symbol && symbol.indexOf('url') === 0;
34496
34558
  if (point.hasImage) {
@@ -34503,7 +34565,7 @@ class Series {
34503
34565
  0 :
34504
34566
  symbol === 'rect' ?
34505
34567
  // Rectangle symbols need crisp edges, others don't
34506
- seriesMarkerOptions?.lineWidth || 0 :
34568
+ seriesMarkerOptions.lineWidth || 0 :
34507
34569
  1);
34508
34570
  }
34509
34571
  attribs.x = pos[0] - radius;
@@ -34534,8 +34596,9 @@ class Series {
34534
34596
  * The presentational attributes to be set on the point.
34535
34597
  */
34536
34598
  pointAttribs(point, state) {
34537
- const options = this.options, seriesMarkerOptions = options.marker, pointOptions = point?.options, pointMarkerOptions = pointOptions?.marker || {}, pointColorOption = pointOptions?.color, pointColor = point?.color, zoneColor = point?.zone?.color;
34538
- let seriesStateOptions, pointStateOptions, color = this.color, fill, stroke, strokeWidth = pick(pointMarkerOptions.lineWidth, seriesMarkerOptions.lineWidth), opacity = (point?.isNull && options.nullInteraction) ? 0 : 1;
34599
+ const options = this.options, seriesMarkerOptions = options.marker ?? {}, pointOptions = point?.options, pointMarkerOptions = pointOptions?.marker || {}, pointColorOption = pointOptions?.color, pointColor = point?.color, zoneColor = point?.zone?.color;
34600
+ let color = this.color, fill, stroke, strokeWidth = pointMarkerOptions.lineWidth ??
34601
+ seriesMarkerOptions.lineWidth, opacity = (point?.isNull && options.nullInteraction) ? 0 : 1;
34539
34602
  color = (pointColorOption ||
34540
34603
  zoneColor ||
34541
34604
  pointColor ||
@@ -34548,19 +34611,22 @@ class Series {
34548
34611
  color);
34549
34612
  // Handle hover and select states
34550
34613
  state = state || 'normal';
34551
- if (state) {
34552
- seriesStateOptions = (seriesMarkerOptions.states[state] || {});
34553
- pointStateOptions = (pointMarkerOptions.states &&
34554
- pointMarkerOptions.states[state]) || {};
34555
- strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
34556
- fill = (pointStateOptions.fillColor ||
34557
- seriesStateOptions.fillColor ||
34558
- fill);
34559
- stroke = (pointStateOptions.lineColor ||
34560
- seriesStateOptions.lineColor ||
34561
- stroke);
34562
- opacity = pick(pointStateOptions.opacity, seriesStateOptions.opacity, opacity);
34563
- }
34614
+ const seriesStateOptions = seriesMarkerOptions.states?.[state] || {};
34615
+ const pointStateOptions = pointMarkerOptions.states?.[state] || {};
34616
+ strokeWidth = pointStateOptions.lineWidth ??
34617
+ seriesStateOptions.lineWidth ??
34618
+ (strokeWidth || 0) + (pointStateOptions.lineWidthPlus ??
34619
+ seriesStateOptions.lineWidthPlus ??
34620
+ 0);
34621
+ fill = (pointStateOptions.fillColor ||
34622
+ seriesStateOptions.fillColor ||
34623
+ fill);
34624
+ stroke = (pointStateOptions.lineColor ||
34625
+ seriesStateOptions.lineColor ||
34626
+ stroke);
34627
+ opacity = (pointStateOptions.opacity ??
34628
+ seriesStateOptions.opacity ??
34629
+ opacity);
34564
34630
  return {
34565
34631
  'stroke': stroke,
34566
34632
  'stroke-width': strokeWidth,
@@ -34599,7 +34665,7 @@ class Series {
34599
34665
  // Destroy all points with their elements
34600
34666
  i = data.length;
34601
34667
  while (i--) {
34602
- data[i]?.destroy?.();
34668
+ data[i]?.destroy?.(true);
34603
34669
  }
34604
34670
  for (const zone of series.zones || []) {
34605
34671
  // Destroy SVGElement's but preserve primitive props (#20426)
@@ -34626,7 +34692,7 @@ class Series {
34626
34692
  erase(chart.series, series);
34627
34693
  chart.orderItems('series');
34628
34694
  // Clear all members
34629
- objectEach(series, function (val, prop) {
34695
+ objectEach(series, function (_val, prop) {
34630
34696
  if (!keepEventsForUpdate || prop !== 'hcEvents') {
34631
34697
  delete series[prop];
34632
34698
  }
@@ -34902,7 +34968,7 @@ class Series {
34902
34968
  * @emits Highcharts.Series#event:afterRender
34903
34969
  */
34904
34970
  render() {
34905
- const series = this, { chart, options, hasRendered } = series, animOptions = Series_animObject(options.animation), visibility = series.visible ?
34971
+ const series = this, { chart, options, hasRendered } = series, animOptions = animObject(options.animation), visibility = series.visible ?
34906
34972
  'inherit' : 'hidden', // #2597
34907
34973
  zIndex = options.zIndex, chartSeriesGroup = chart.seriesGroup;
34908
34974
  let animDuration = series.finishedAnimating ?
@@ -35004,7 +35070,7 @@ class Series {
35004
35070
  *
35005
35071
  * @function Highcharts.Series#searchPoint
35006
35072
  *
35007
- * @param {Highcharts.PointerEvent} e
35073
+ * @param {PointerEvent} e
35008
35074
  * The normalized pointer event
35009
35075
  * @param {boolean} [compareX=false]
35010
35076
  * Search only by the X value, not Y
@@ -35036,7 +35102,7 @@ class Series {
35036
35102
  // Prevent multiple k-d-trees from being built simultaneously
35037
35103
  // (#6235)
35038
35104
  this.buildingKdTree = true;
35039
- const series = this, seriesOptions = series.options, dimensions = seriesOptions.findNearestPointBy
35105
+ const series = this, seriesOptions = series.options, dimensions = (seriesOptions.findNearestPointBy ?? '')
35040
35106
  .indexOf('y') > -1 ? 2 : 1;
35041
35107
  /**
35042
35108
  * Internal function
@@ -35086,7 +35152,7 @@ class Series {
35086
35152
  * The point to search for.
35087
35153
  * @param {boolean} [compareX=false]
35088
35154
  * Search only by the X value, not Y.
35089
- * @param {Highcharts.PointerEvent} [e]
35155
+ * @param {PointerEvent} [e]
35090
35156
  * The normalized pointer event.
35091
35157
  * @param {Function} [suppliedPointEvaluator]
35092
35158
  * A custom point evaluator function.
@@ -35292,11 +35358,13 @@ class Series {
35292
35358
  * Both X and Y values given
35293
35359
  * @sample highcharts/members/series-addpoint-pie/
35294
35360
  * Append pie slice
35295
- * @sample stock/members/series-addpoint/
35361
+ * @sample highcharts/datatable/datamapping-dynamic
35362
+ * Alternative approach with data table
35363
+ * @sample {highstock} stock/members/series-addpoint/
35296
35364
  * Append 100 points in Highcharts Stock
35297
- * @sample stock/members/series-addpoint-shift/
35365
+ * @sample {highstock} stock/members/series-addpoint-shift/
35298
35366
  * Append and shift in Highcharts Stock
35299
- * @sample maps/members/series-addpoint/
35367
+ * @sample {highmaps} maps/members/series-addpoint/
35300
35368
  * Add a point in Highmaps
35301
35369
  *
35302
35370
  * @function Highcharts.Series#addPoint
@@ -35442,7 +35510,7 @@ class Series {
35442
35510
  chart.redraw();
35443
35511
  }
35444
35512
  };
35445
- Series_setAnimation(animation, chart);
35513
+ setAnimation(animation, chart);
35446
35514
  redraw = pick(redraw, true);
35447
35515
  // Fire the event with a default handler of removing the point
35448
35516
  if (point) {
@@ -35796,10 +35864,10 @@ class Series {
35796
35864
  * Determines if state should be inherited by points too.
35797
35865
  */
35798
35866
  setState(state, inherit) {
35799
- const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions } = options,
35867
+ const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
35800
35868
  // By default a quick animation to hover/inactive,
35801
35869
  // slower to un-hover
35802
- stateAnimation = pick(stateOptions?.[state || 'normal']?.animation, series.chart.options.chart.animation);
35870
+ stateAnimation = pick(stateOptions[state || 'normal']?.animation, series.chart.options.chart.animation);
35803
35871
  let { lineWidth, opacity } = options;
35804
35872
  state = state || '';
35805
35873
  if (series.state !== state) {
@@ -35826,9 +35894,13 @@ class Series {
35826
35894
  return;
35827
35895
  }
35828
35896
  if (state) {
35829
- lineWidth = (stateOptions[state].lineWidth ||
35830
- lineWidth + (stateOptions[state].lineWidthPlus || 0)); // #4035
35831
- opacity = pick(stateOptions[state].opacity, opacity);
35897
+ lineWidth = stateOptions[state]?.lineWidth ?? (!isNumber(lineWidth) ?
35898
+ void 0 :
35899
+ // Increase by lineWidthPlus only when lineWidth
35900
+ // is a number.
35901
+ (lineWidth +
35902
+ (stateOptions?.[state]?.lineWidthPlus || 0))); // #4035
35903
+ opacity = stateOptions[state]?.opacity ?? opacity;
35832
35904
  }
35833
35905
  if (graph && !graph.dashstyle && isNumber(lineWidth)) {
35834
35906
  // Animate the graph stroke-width
@@ -35872,11 +35944,7 @@ class Series {
35872
35944
  * Can be either `hover` or undefined to set to normal state.
35873
35945
  */
35874
35946
  setAllPointsToState(state) {
35875
- this.points.forEach(function (point) {
35876
- if (point.setState) {
35877
- point.setState(state);
35878
- }
35879
- });
35947
+ this.points.forEach((point) => point.setState?.(state));
35880
35948
  }
35881
35949
  /**
35882
35950
  * Show or hide the series.
@@ -36557,7 +36625,6 @@ Series_SeriesRegistry.series = Series;
36557
36625
  * */
36558
36626
 
36559
36627
 
36560
- const { animObject: Legend_animObject, setAnimation: Legend_setAnimation } = AnimationUtilities;
36561
36628
 
36562
36629
  const { registerEventOptions: Legend_registerEventOptions } = Core_Foundation;
36563
36630
 
@@ -37560,7 +37627,7 @@ class Legend {
37560
37627
  }
37561
37628
  if (currentPage > 0) {
37562
37629
  if (typeof animation !== 'undefined') {
37563
- Legend_setAnimation(animation, chart);
37630
+ setAnimation(animation, chart);
37564
37631
  }
37565
37632
  this.nav.attr({
37566
37633
  translateX: padding,
@@ -37617,7 +37684,7 @@ class Legend {
37617
37684
  this.currentPage = currentPage;
37618
37685
  this.positionCheckboxes();
37619
37686
  // Fire event after scroll animation is complete
37620
- const animOptions = Legend_animObject(pick(animation, chart.renderer.globalAnimation, true));
37687
+ const animOptions = animObject(pick(animation, chart.renderer.globalAnimation, true));
37621
37688
  syncTimeout(() => {
37622
37689
  fireEvent(this, 'afterScroll', { currentPage });
37623
37690
  }, animOptions.duration);
@@ -37827,7 +37894,7 @@ class Legend {
37827
37894
  */ /**
37828
37895
  * Related browser event.
37829
37896
  * @name Highcharts.LegendItemClickEventObject#browserEvent
37830
- * @type {Highcharts.PointerEvent}
37897
+ * @type {PointerEvent}
37831
37898
  */ /**
37832
37899
  * Prevent the default action of toggle the visibility of the series or point.
37833
37900
  * @name Highcharts.LegendItemClickEventObject#preventDefault
@@ -37878,7 +37945,7 @@ class Legend {
37878
37945
  */ /**
37879
37946
  * Related browser event.
37880
37947
  * @name Highcharts.PointLegendItemClickEventObject#browserEvent
37881
- * @type {Highcharts.PointerEvent}
37948
+ * @type {PointerEvent}
37882
37949
  */ /**
37883
37950
  * Whether the default action has been prevented (`true`) or not.
37884
37951
  * @name Highcharts.PointLegendItemClickEventObject#defaultPrevented
@@ -37934,7 +38001,7 @@ class Legend {
37934
38001
  */ /**
37935
38002
  * Related browser event.
37936
38003
  * @name Highcharts.SeriesLegendItemClickEventObject#browserEvent
37937
- * @type {Highcharts.PointerEvent}
38004
+ * @type {PointerEvent}
37938
38005
  */ /**
37939
38006
  * Whether the default action has been prevented (`true`) or not.
37940
38007
  * @name Highcharts.SeriesLegendItemClickEventObject#defaultPrevented
@@ -37968,7 +38035,6 @@ class Legend {
37968
38035
  * */
37969
38036
 
37970
38037
 
37971
- const { animate: Chart_animate, animObject: Chart_animObject, setAnimation: Chart_setAnimation } = AnimationUtilities;
37972
38038
 
37973
38039
 
37974
38040
  const { defaultOptions: Chart_defaultOptions } = Defaults;
@@ -38446,7 +38512,7 @@ class Chart {
38446
38512
  redraw(animation) {
38447
38513
  fireEvent(this, 'beforeRedraw');
38448
38514
  const chart = this, axes = chart.hasCartesianSeries ? chart.axes : chart.colorAxis || [], series = chart.series, pointer = chart.pointer, legend = chart.legend, legendUserOptions = chart.userOptions.legend, renderer = chart.renderer, isHiddenChart = renderer.isHidden(), afterRedraw = [];
38449
- let hasDirtyStacks, hasStackedSeries, i, isDirtyBox = chart.isDirtyBox, redrawLegend = chart.isDirtyLegend, serie;
38515
+ let hasDirtyStacks, hasStackedSeries, i, redrawLegend = chart.isDirtyLegend, serie;
38450
38516
  renderer.rootFontSize = renderer.boxWrapper.getStyle('font-size');
38451
38517
  // Handle responsive rules, not only on resize (#6130)
38452
38518
  if (chart.setResponsive) {
@@ -38455,7 +38521,7 @@ class Chart {
38455
38521
  // Set the global animation. When chart.hasRendered is not true, the
38456
38522
  // redraw call comes from a responsive rule and animation should not
38457
38523
  // occur.
38458
- Chart_setAnimation(chart.hasRendered ? animation : false, chart);
38524
+ setAnimation(chart.hasRendered ? animation : false, chart);
38459
38525
  if (isHiddenChart) {
38460
38526
  chart.temporaryDisplay();
38461
38527
  }
@@ -38518,6 +38584,7 @@ class Chart {
38518
38584
  });
38519
38585
  chart.getMargins(); // #3098
38520
38586
  // If one axis is dirty, all axes must be redrawn (#792, #2169)
38587
+ let isDirtyBox = chart.isDirtyBox;
38521
38588
  axes.forEach(function (axis) {
38522
38589
  if (axis.isDirty) {
38523
38590
  isDirtyBox = true;
@@ -39053,11 +39120,8 @@ class Chart {
39053
39120
  const chartHeight = chart.chartHeight;
39054
39121
  let chartWidth = chart.chartWidth;
39055
39122
  // Allow table cells and flex-boxes to shrink without the chart
39056
- // blocking them out (#6427) but skip in styled mode so inline styles
39057
- // don't override user CSS on renderTo
39058
- if (!chart.styledMode) {
39059
- css(renderTo, { overflow: 'hidden' });
39060
- }
39123
+ // blocking them out (#6427)
39124
+ css(renderTo, { overflow: 'hidden' });
39061
39125
  // Create the inner container
39062
39126
  if (!chart.styledMode) {
39063
39127
  containerStyle = extend({
@@ -39114,7 +39178,7 @@ class Chart {
39114
39178
  // first ResizeObserver reflow
39115
39179
  chart.containerBox = chart.getContainerBox();
39116
39180
  // Set the initial animation from the options
39117
- Chart_setAnimation(void 0, chart);
39181
+ setAnimation(void 0, chart);
39118
39182
  chart.setClassName(optionsChart.className);
39119
39183
  if (!chart.styledMode) {
39120
39184
  chart.renderer.setStyle(optionsChart.style);
@@ -39309,7 +39373,7 @@ class Chart {
39309
39373
  // Handle the isResizing counter
39310
39374
  chart.isResizing += 1;
39311
39375
  // Set the animation for the current process
39312
- Chart_setAnimation(animation, chart);
39376
+ setAnimation(animation, chart);
39313
39377
  const globalAnimation = renderer.globalAnimation;
39314
39378
  chart.oldChartHeight = chart.chartHeight;
39315
39379
  chart.oldChartWidth = chart.chartWidth;
@@ -39328,7 +39392,7 @@ class Chart {
39328
39392
  // Resize the container with the global animation applied if enabled
39329
39393
  // (#2503)
39330
39394
  if (!chart.styledMode) {
39331
- (globalAnimation ? Chart_animate : css)(chart.container, {
39395
+ (globalAnimation ? animate : css)(chart.container, {
39332
39396
  width: `${chartWidth + scrollablePixelsX}px`,
39333
39397
  height: `${chartHeight + scrollablePixelsY}px`
39334
39398
  }, globalAnimation);
@@ -39354,7 +39418,7 @@ class Chart {
39354
39418
  if (chart) {
39355
39419
  fireEvent(chart, 'endResize');
39356
39420
  }
39357
- }, Chart_animObject(globalAnimation).duration);
39421
+ }, animObject(globalAnimation).duration);
39358
39422
  }
39359
39423
  // Handle resizing counter even if we've re-rendered or not (#20548).
39360
39424
  chart.isResizing -= 1;
@@ -40223,7 +40287,7 @@ class Chart {
40223
40287
  opacity: 0,
40224
40288
  display: ''
40225
40289
  });
40226
- Chart_animate(loadingDiv, {
40290
+ animate(loadingDiv, {
40227
40291
  opacity: loadingStyle.opacity ?? 0.5
40228
40292
  }, {
40229
40293
  duration: loadingOptions?.showDuration ?? 0
@@ -40251,7 +40315,7 @@ class Chart {
40251
40315
  loadingDiv.className =
40252
40316
  'highcharts-loading highcharts-loading-hidden';
40253
40317
  if (!this.styledMode) {
40254
- Chart_animate(loadingDiv, {
40318
+ animate(loadingDiv, {
40255
40319
  opacity: 0
40256
40320
  }, {
40257
40321
  duration: options.loading?.hideDuration ?? 100,
@@ -40283,6 +40347,9 @@ class Chart {
40283
40347
  * Note that when changing series data, `chart.update` may mutate the passed
40284
40348
  * data options.
40285
40349
  *
40350
+ * If the given options don't differ from the current chart options, the
40351
+ * update is skipped and the `afterUpdate` event is not emitted.
40352
+ *
40286
40353
  * See also the
40287
40354
  * [responsive option set](https://api.highcharts.com/highcharts/responsive).
40288
40355
  * Switching between `responsive.rules` basically runs `chart.update` under
@@ -40327,14 +40394,24 @@ class Chart {
40327
40394
  caption: 'setCaption'
40328
40395
  }, isResponsiveOptions = options.isResponsiveOptions, itemsForRemoval = [];
40329
40396
  let updateAllAxes, updateAllSeries, runSetSize;
40330
- fireEvent(chart, 'update', { options: options });
40397
+ options = diffObjects(options, chart.options);
40398
+ const e = {
40399
+ options,
40400
+ // Event handlers can turn this on or off to control further
40401
+ // processing
40402
+ hasChanged: !!Object.keys(options).length
40403
+ };
40404
+ fireEvent(chart, 'update', e);
40405
+ // If no changes are detected, stop further processing (#24805).
40406
+ if (!e.hasChanged) {
40407
+ return;
40408
+ }
40331
40409
  // If there are responsive rules in action, undo the responsive rules
40332
40410
  // before we apply the updated options and replay the responsive rules
40333
40411
  // on top from the chart.redraw function (#9617).
40334
40412
  if (!isResponsiveOptions) {
40335
40413
  chart.setResponsive(false, true);
40336
40414
  }
40337
- options = diffObjects(options, chart.options);
40338
40415
  chart.userOptions = merge(chart.userOptions, options);
40339
40416
  // If the top-level chart option is present, some special updates are
40340
40417
  // required
@@ -40513,7 +40590,7 @@ class Chart {
40513
40590
  (isNumber(newHeight) && newHeight !== chart.chartHeight)) {
40514
40591
  chart.setSize(newWidth, newHeight, animation);
40515
40592
  }
40516
- else if (pick(redraw, true)) {
40593
+ else if (redraw ?? true) {
40517
40594
  chart.redraw(animation);
40518
40595
  }
40519
40596
  fireEvent(chart, 'afterUpdate', {
@@ -40562,15 +40639,11 @@ class Chart {
40562
40639
  showResetZoom() {
40563
40640
  const chart = this, lang = chart.options.lang, btnOptions = chart.zooming.resetButton, theme = btnOptions.theme, alignTo = (btnOptions.relativeTo === 'chart' ||
40564
40641
  btnOptions.relativeTo === 'spacingBox' ?
40565
- null :
40642
+ void 0 :
40566
40643
  'plotBox');
40567
- /** @internal */
40568
- function zoomOut() {
40569
- chart.zoomOut();
40570
- }
40571
- fireEvent(this, 'beforeShowResetZoom', null, function () {
40644
+ fireEvent(this, 'beforeShowResetZoom', void 0, () => {
40572
40645
  chart.resetZoomButton = chart.renderer
40573
- .button(lang.resetZoom, null, null, zoomOut, theme)
40646
+ .button(lang.resetZoom, 0, 0, () => chart.zoomOut(), theme)
40574
40647
  .attr({
40575
40648
  align: btnOptions.position.align,
40576
40649
  title: lang.resetZoomTitle
@@ -40648,7 +40721,7 @@ class Chart {
40648
40721
  * @function Highcharts.Chart#transform
40649
40722
  */
40650
40723
  transform(params) {
40651
- const { axes = this.axes, event, from = {}, reset, selection, to = {}, trigger, allowResetButton = true } = params, { inverted, time } = this;
40724
+ const { axes = this.axes, event, from = {}, reset, selection, to = {}, trigger, allowResetButton = true } = params, { time } = this;
40652
40725
  // Remove active points for shared tooltip
40653
40726
  this.hoverPoints?.forEach((point) => point.setState());
40654
40727
  fireEvent(this, 'transform', params);
@@ -40659,10 +40732,10 @@ class Chart {
40659
40732
  scale = Math.abs(toLength) < 10 ?
40660
40733
  1 :
40661
40734
  toLength / fromLength, fromCenter = (from[xy] || 0) + fromLength / 2 - axis.pos, toCenter = (to[xy] ?? axis.pos) +
40662
- toLength / 2 - axis.pos, move = fromCenter - toCenter / scale, pointRangeDirection = (reversed && !inverted) ||
40663
- (!reversed && inverted) ?
40664
- -1 :
40665
- 1, minPx = move;
40735
+ toLength / 2 - axis.pos, move = fromCenter - toCenter / scale, pointRangeDirection = ((horiz && !reversed) ||
40736
+ (!horiz && reversed)) ?
40737
+ 1 :
40738
+ -1, minPx = move;
40666
40739
  // Zooming in multiple panes, zoom only in the pane that receives
40667
40740
  // the input
40668
40741
  if (!reset && (fromCenter < 0 || fromCenter > axis.len)) {
@@ -40671,17 +40744,11 @@ class Chart {
40671
40744
  // Adjust offset to ensure selection zoom triggers correctly
40672
40745
  // (#22945)
40673
40746
  // Set offset to 0 for ordinal axis only when zooming out, (#24545).
40674
- const offset = (axis.chart.polar || (axis.isOrdinal && scale <= 1)) ?
40747
+ const offset = (selection || axis.chart.polar ||
40748
+ (axis.isOrdinal && scale <= 1)) ?
40675
40749
  0 :
40676
40750
  (minPointOffset * pointRangeDirection || 0), eventMin = axis.toValue(minPx, true), eventMax = axis.toValue(minPx + len / scale, true);
40677
40751
  let newMin = eventMin + offset, newMax = eventMax - offset, allExtremes = axis.allExtremes;
40678
- if (selection) {
40679
- selection[axis.coll].push({
40680
- axis,
40681
- min: Math.min(eventMin, eventMax),
40682
- max: Math.max(eventMin, eventMax)
40683
- });
40684
- }
40685
40752
  if (newMin > newMax) {
40686
40753
  [newMin, newMax] = [newMax, newMin];
40687
40754
  }
@@ -40738,14 +40805,15 @@ class Chart {
40738
40805
  }
40739
40806
  // Set new extremes if they are actually new
40740
40807
  if (reset || (axis.series.length &&
40741
- (newMin !== min || newMax !== max) &&
40742
- newMin >= floor &&
40743
- newMax <= ceiling)) {
40808
+ (selection ||
40809
+ ((newMin !== min || newMax !== max) &&
40810
+ newMin >= floor &&
40811
+ newMax <= ceiling)))) {
40744
40812
  if (selection) {
40745
40813
  selection[axis.coll].push({
40746
40814
  axis,
40747
- min: newMin,
40748
- max: newMax
40815
+ min: Math.min(eventMin, eventMax),
40816
+ max: Math.max(eventMin, eventMax)
40749
40817
  });
40750
40818
  }
40751
40819
  else {
@@ -40753,11 +40821,14 @@ class Chart {
40753
40821
  // disallow certain axis padding options that would make
40754
40822
  // panning/zooming hard. Reset and redraw after the
40755
40823
  // operation has finished.
40756
- axis.isPanning = trigger !== 'zoom';
40824
+ axis.isPanning = trigger !== 'zoom' &&
40825
+ trigger !== 'drop';
40757
40826
  if (axis.isPanning && trigger !== 'mousewheel') {
40758
40827
  isAnyAxisPanning = true; // #21319
40759
40828
  }
40760
- axis.setExtremes(reset ? void 0 : newMin, reset ? void 0 : newMax, false, false, { move, trigger, scale });
40829
+ if (trigger !== 'drop') {
40830
+ axis.setExtremes(reset ? void 0 : newMin, reset ? void 0 : newMax, false, false, { move, trigger, scale });
40831
+ }
40761
40832
  if (!reset &&
40762
40833
  (newMin > floor || newMax < ceiling)) {
40763
40834
  displayButton = allowResetButton;
@@ -40788,7 +40859,8 @@ class Chart {
40788
40859
  });
40789
40860
  }
40790
40861
  else {
40791
- // Show or hide the Reset zoom button, but not while panning
40862
+ // Show or hide the Reset zoom button, but not while
40863
+ // panning.
40792
40864
  if (displayButton &&
40793
40865
  !isAnyAxisPanning &&
40794
40866
  !this.resetZoomButton) {
@@ -41030,7 +41102,6 @@ extend(Chart.prototype, {
41030
41102
  */
41031
41103
 
41032
41104
 
41033
- const { stop: ScrollablePlotArea_stop } = AnimationUtilities;
41034
41105
 
41035
41106
  const { composed: ScrollablePlotArea_composed } = Core_Globals;
41036
41107
 
@@ -41196,7 +41267,7 @@ class ScrollablePlotArea {
41196
41267
  this.moveFixedElements();
41197
41268
  }
41198
41269
  // Increase the size of the scrollable renderer and background
41199
- ScrollablePlotArea_stop(chart.container);
41270
+ stop(chart.container);
41200
41271
  css(container, {
41201
41272
  width: `${scrollableWidth}px`,
41202
41273
  height: `${scrollableHeight}px`
@@ -41353,6 +41424,13 @@ ScrollablePlotArea.fixedSelectors = [
41353
41424
  * vertical scrolling, depending on whether the `minWidth` or `minHeight`
41354
41425
  * option is set.
41355
41426
  *
41427
+ * **Note:** Because native browser scrollbars are used, they may
41428
+ * overlap with fixed chart elements such as credits or the chart
41429
+ * border. To avoid this collision, it is recommended to manually add
41430
+ * extra space to the corresponding side using `chart.spacingBottom`
41431
+ * (for horizontal scrollbars) or `chart.spacingRight` (for vertical
41432
+ * scrollbars).
41433
+ *
41356
41434
  * @sample highcharts/chart/scrollable-plotarea
41357
41435
  * Scrollable plot area
41358
41436
  * @sample highcharts/chart/scrollable-plotarea-vertical
@@ -41703,7 +41781,6 @@ class StackItem {
41703
41781
  * */
41704
41782
 
41705
41783
 
41706
- const { getDeferredAnimation: StackingAxis_getDeferredAnimation } = AnimationUtilities;
41707
41784
 
41708
41785
  const { series: { prototype: seriesProto } } = Series_SeriesRegistry;
41709
41786
 
@@ -42047,7 +42124,7 @@ class AxisAdditions {
42047
42124
  }
42048
42125
  /** @internal */
42049
42126
  renderStackTotals() {
42050
- const stacking = this, axis = stacking.axis, chart = axis.chart, renderer = chart.renderer, stacks = stacking.stacks, stackLabelsAnim = axis.options.stackLabels?.animation, animationConfig = StackingAxis_getDeferredAnimation(chart, stackLabelsAnim || false), stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
42127
+ const stacking = this, axis = stacking.axis, chart = axis.chart, renderer = chart.renderer, stacks = stacking.stacks, stackLabelsAnim = axis.options.stackLabels?.animation, animationConfig = getDeferredAnimation(chart, stackLabelsAnim || false), stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
42051
42128
  renderer
42052
42129
  .g('stack-labels')
42053
42130
  .attr({
@@ -43800,6 +43877,8 @@ const ColumnSeriesDefaults = {
43800
43877
  * 0.25
43801
43878
  * @sample {highcharts} highcharts/plotoptions/column-pointpadding-none/
43802
43879
  * 0 for tightly packed columns
43880
+ * @sample {highcharts} highcharts/plotoptions/pie-pointpadding/
43881
+ * Pie point padding plugin
43803
43882
  *
43804
43883
  * @product highcharts highstock gantt
43805
43884
  */
@@ -44131,12 +44210,12 @@ const ColumnSeriesDefaults = {
44131
44210
  */
44132
44211
  /**
44133
44212
  * @excluding halo, lineWidth, lineWidthPlus, marker
44134
- * @product highcharts highstock
44213
+ * @product highcharts highstock gantt
44135
44214
  * @apioption series.column.states.hover
44136
44215
  */
44137
44216
  /**
44138
44217
  * @excluding halo, lineWidth, lineWidthPlus, marker
44139
- * @product highcharts highstock
44218
+ * @product highcharts highstock gantt
44140
44219
  * @apioption series.column.states.select
44141
44220
  */
44142
44221
  /**
@@ -44166,7 +44245,6 @@ const ColumnSeriesDefaults = {
44166
44245
  * */
44167
44246
 
44168
44247
 
44169
- const { animObject: ColumnSeries_animObject } = AnimationUtilities;
44170
44248
 
44171
44249
  const { parse: ColumnSeries_color } = Color_Color;
44172
44250
 
@@ -44237,7 +44315,7 @@ class ColumnSeries extends Series_Series {
44237
44315
  }
44238
44316
  else { // Run the animation
44239
44317
  translateStart = Number(series.group.attr(translateProp));
44240
- series.group.animate({ scaleY: 1 }, extend(ColumnSeries_animObject(series.options.animation), {
44318
+ series.group.animate({ scaleY: 1 }, extend(animObject(series.options.animation), {
44241
44319
  // Do the scale synchronously to ensure smooth
44242
44320
  // updating (#5030, #7228)
44243
44321
  step: function (val, fx) {
@@ -44573,11 +44651,11 @@ class ColumnSeries extends Series_Series {
44573
44651
  */
44574
44652
  pointAttribs(point, state) {
44575
44653
  const options = this.options, p2o = this.pointAttrToOptions || {}, strokeOption = p2o.stroke || 'borderColor', strokeWidthOption = p2o['stroke-width'] || 'borderWidth';
44576
- let stateOptions, zone, brightness, fill = (point && point.color) || this.color,
44654
+ let stateOptions, zone, brightness, fill = point?.color || this.color,
44577
44655
  // Set to fill when borderColor null:
44578
- stroke = ((point && point[strokeOption]) ||
44656
+ stroke = (point?.[strokeOption] ||
44579
44657
  options[strokeOption] ||
44580
- fill), dashstyle = (point && point.options.dashStyle) || options.dashStyle, strokeWidth = (point?.[strokeWidthOption]) ??
44658
+ fill), dashstyle = point?.options.dashStyle || options.dashStyle, strokeWidth = point?.[strokeWidthOption] ??
44581
44659
  options[strokeWidthOption] ??
44582
44660
  this[strokeWidthOption] ?? 1, opacity = (point?.isNull && options.nullInteraction) ?
44583
44661
  0 :
@@ -44598,7 +44676,7 @@ class ColumnSeries extends Series_Series {
44598
44676
  }
44599
44677
  // Select or hover states
44600
44678
  if (state && point) {
44601
- stateOptions = merge(options.states[state],
44679
+ stateOptions = merge(options.states?.[state],
44602
44680
  // #6401
44603
44681
  point.options.states?.[state] || {});
44604
44682
  brightness = stateOptions.brightness;
@@ -44608,14 +44686,13 @@ class ColumnSeries extends Series_Series {
44608
44686
  .brighten(stateOptions.brightness)
44609
44687
  .get()) || fill;
44610
44688
  stroke = stateOptions[strokeOption] || stroke;
44611
- strokeWidth =
44612
- stateOptions[strokeWidthOption] || strokeWidth;
44689
+ strokeWidth = stateOptions[strokeWidthOption] || strokeWidth;
44613
44690
  dashstyle = stateOptions.dashStyle || dashstyle;
44614
- opacity = pick(stateOptions.opacity, opacity);
44691
+ opacity = stateOptions.opacity ?? opacity;
44615
44692
  }
44616
44693
  const ret = {
44617
- fill: fill,
44618
- stroke: stroke,
44694
+ fill,
44695
+ stroke,
44619
44696
  'stroke-width': strokeWidth,
44620
44697
  opacity: point?.condemned ? 0 : opacity
44621
44698
  };
@@ -44656,6 +44733,7 @@ class ColumnSeries extends Series_Series {
44656
44733
  initialAttr = merge(shapeArgs, point.getOrigin(point.origin, shapeArgs));
44657
44734
  if (!styledMode) {
44658
44735
  initialAttr.opacity = 0;
44736
+ initialAttr['stroke-width'] = 0;
44659
44737
  }
44660
44738
  shouldUpdate = true;
44661
44739
  verb = 'animate';
@@ -44671,7 +44749,7 @@ class ColumnSeries extends Series_Series {
44671
44749
  }
44672
44750
  // Presentational
44673
44751
  if (!styledMode) {
44674
- graphic[verb](series.pointAttribs(point, (point.selected && 'select')))
44752
+ graphic[verb](series.pointAttribs(point, point.selected ? 'select' : ''))
44675
44753
  .shadow(point.allowShadow !== false && options.shadow);
44676
44754
  }
44677
44755
  graphic
@@ -44795,6 +44873,7 @@ Series_SeriesRegistry.registerSeriesType('column', ColumnSeries);
44795
44873
  * Default Export
44796
44874
  *
44797
44875
  * */
44876
+ /** @internal */
44798
44877
  /* harmony default export */ const Column_ColumnSeries = (ColumnSeries);
44799
44878
  /* *
44800
44879
  *
@@ -44831,7 +44910,6 @@ Series_SeriesRegistry.registerSeriesType('column', ColumnSeries);
44831
44910
  * */
44832
44911
 
44833
44912
 
44834
- const { getDeferredAnimation: DataLabel_getDeferredAnimation } = AnimationUtilities;
44835
44913
 
44836
44914
  const { format: DataLabel_format } = Core_Templating;
44837
44915
 
@@ -45148,7 +45226,7 @@ var DataLabel;
45148
45226
  'var(--highcharts-background-color)'), groupByIndex = [], seriesDlOptions = mergedDataLabelOptions(series);
45149
45227
  // Resolve the animation
45150
45228
  const { animation, defer } = seriesDlOptions[0], animationConfig = defer ?
45151
- DataLabel_getDeferredAnimation(chart, animation, series) :
45229
+ getDeferredAnimation(chart, animation, series) :
45152
45230
  { defer: 0, duration: 0 };
45153
45231
  fireEvent(this, 'drawDataLabels');
45154
45232
  if (series.hasDataLabels?.()) {
@@ -45914,6 +45992,8 @@ const ScatterSeriesDefaults = {
45914
45992
  * Arrays of datetime x and y
45915
45993
  * @sample {highcharts} highcharts/series/data-array-of-name-value/
45916
45994
  * Arrays of point.name and y
45995
+ * @sample {highcharts} highcharts/series-scatter/scatter-cluster/
45996
+ * Computed clusters
45917
45997
  * @sample {highcharts} highcharts/series/data-array-of-objects/
45918
45998
  * Config objects
45919
45999
  *
@@ -46062,7 +46142,7 @@ Series_SeriesRegistry.registerSeriesType('scatter', ScatterSeries);
46062
46142
  const { deg2rad: CenteredUtilities_deg2rad } = Core_Globals;
46063
46143
 
46064
46144
  /**
46065
- * @private
46145
+ * @internal
46066
46146
  */
46067
46147
  var CenteredUtilities;
46068
46148
  (function (CenteredUtilities) {
@@ -46080,7 +46160,7 @@ var CenteredUtilities;
46080
46160
  * Get the center of the pie based on the size and center options relative
46081
46161
  * to the plot area. Borrowed by the polar and gauge series types.
46082
46162
  *
46083
- * @private
46163
+ * @internal
46084
46164
  * @function Highcharts.CenteredSeriesMixin.getCenter
46085
46165
  */
46086
46166
  function getCenter() {
@@ -46125,7 +46205,7 @@ var CenteredUtilities;
46125
46205
  * GetStartAndEndRadians - Calculates start and end angles in radians.
46126
46206
  * Used in series types such as pie and sunburst.
46127
46207
  *
46128
- * @private
46208
+ * @internal
46129
46209
  * @function Highcharts.CenteredSeriesMixin.getStartAndEndRadians
46130
46210
  *
46131
46211
  * @param {number} [start]
@@ -46157,6 +46237,7 @@ var CenteredUtilities;
46157
46237
  * Default Export
46158
46238
  *
46159
46239
  * */
46240
+ /** @internal */
46160
46241
  /* harmony default export */ const Series_CenteredUtilities = (CenteredUtilities);
46161
46242
  /* *
46162
46243
  *
@@ -46164,7 +46245,7 @@ var CenteredUtilities;
46164
46245
  *
46165
46246
  * */
46166
46247
  /**
46167
- * @private
46248
+ * @internal
46168
46249
  * @interface Highcharts.RadianAngles
46169
46250
  */ /**
46170
46251
  * @name Highcharts.RadianAngles#end
@@ -46189,7 +46270,6 @@ var CenteredUtilities;
46189
46270
  * */
46190
46271
 
46191
46272
 
46192
- const { setAnimation: PiePoint_setAnimation } = AnimationUtilities;
46193
46273
 
46194
46274
 
46195
46275
  /* *
@@ -46297,7 +46377,7 @@ class PiePoint extends Series_Point {
46297
46377
  */
46298
46378
  slice(sliced, redraw, animation) {
46299
46379
  const series = this.series, chart = series.chart;
46300
- PiePoint_setAnimation(animation, chart);
46380
+ setAnimation(animation, chart);
46301
46381
  // Redraw is true by default
46302
46382
  redraw = pick(redraw, true);
46303
46383
  this.sliced = this.options.sliced = sliced ?? !this.sliced;
@@ -48435,7 +48515,7 @@ function BorderRadius_arc(x, y, w, h, options = {}) {
48435
48515
  if (options.open || !options.borderRadius) {
48436
48516
  return path;
48437
48517
  }
48438
- const alpha = end - start, sinHalfAlpha = Math.sin(alpha / 2), borderRadius = Math.max(Math.min(relativeLength(options.borderRadius || 0, r - innerR),
48518
+ const alpha = end - start, sinHalfAlpha = Math.sin(alpha / 2), borderRadius = Math.max(Math.min(relativeLength(borderRadiusObject(options.borderRadius).radius, r - innerR),
48439
48519
  // Cap to half the sector radius
48440
48520
  (r - innerR) / 2,
48441
48521
  // For smaller pie slices, cap to the largest small circle that
@@ -48461,7 +48541,7 @@ function seriesOnAfterColumnTranslate() {
48461
48541
  if (this.options.borderRadius &&
48462
48542
  !(this.chart.is3d && this.chart.is3d())) {
48463
48543
  const { options, yAxis } = this, percent = options.stacking === 'percent', seriesDefault = BorderRadius_defaultOptions.plotOptions?.[this.type]
48464
- ?.borderRadius, borderRadius = optionsToObject(options.borderRadius, isObject(seriesDefault) ? seriesDefault : {}), reversed = yAxis.options.reversed;
48544
+ ?.borderRadius, borderRadius = borderRadiusObject(options.borderRadius, isObject(seriesDefault) ? seriesDefault : {}), reversed = yAxis.options.reversed;
48465
48545
  for (const point of this.points) {
48466
48546
  const { shapeArgs } = point;
48467
48547
  if (point.shapeType === 'roundedRect' && shapeArgs) {
@@ -48533,8 +48613,12 @@ function composeBorderRadius(SeriesClass, SVGElementClass, SVGRendererClass) {
48533
48613
  symbols.roundedRect = BorderRadius_roundedRect;
48534
48614
  }
48535
48615
  }
48536
- /** @internal */
48537
- function optionsToObject(options, seriesBROptions) {
48616
+ /**
48617
+ * Utility function to get the full border radius options object, from a simple
48618
+ * number or a partial options object.
48619
+ * @internal
48620
+ */
48621
+ function borderRadiusObject(options, seriesBROptions) {
48538
48622
  if (!isObject(options)) {
48539
48623
  options = { radius: options || 0 };
48540
48624
  }
@@ -48542,7 +48626,7 @@ function optionsToObject(options, seriesBROptions) {
48542
48626
  }
48543
48627
  /** @internal */
48544
48628
  function pieSeriesOnAfterTranslate() {
48545
- const borderRadius = optionsToObject(this.options.borderRadius);
48629
+ const borderRadius = borderRadiusObject(this.options.borderRadius);
48546
48630
  for (const point of this.points) {
48547
48631
  const shapeArgs = point.shapeArgs;
48548
48632
  if (shapeArgs) {
@@ -48661,7 +48745,7 @@ function BorderRadius_roundedRect(x, y, width, height, options = {}) {
48661
48745
  * Column and pie with rounded border
48662
48746
  *
48663
48747
  * @name Highcharts.BorderRadiusOptionsObject#radius
48664
- * @type {string|number}
48748
+ * @type {string|number|undefined}
48665
48749
  */ /**
48666
48750
  * The scope of the rounding for column charts or plot bands. In a stacked
48667
48751
  * column chart, the value `point` means each single point will get rounded
@@ -48676,8 +48760,7 @@ function BorderRadius_roundedRect(x, y, width, height, options = {}) {
48676
48760
  * Rounded columns
48677
48761
  *
48678
48762
  * @name Highcharts.BorderRadiusOptionsObject#scope
48679
- * @validvalue ["individual", "point", "stack"]
48680
- * @type {string}
48763
+ * @type {"individual"|"point"|"stack"|undefined}
48681
48764
  */ /**
48682
48765
  * For column charts, where in the point or stack to apply rounding. The `end`
48683
48766
  * value means only those corners at the point value will be rounded, leaving
@@ -48688,8 +48771,7 @@ function BorderRadius_roundedRect(x, y, width, height, options = {}) {
48688
48771
  * Rounding on all corners
48689
48772
  *
48690
48773
  * @name Highcharts.BorderRadiusOptionsObject#where
48691
- * @validvalue ["all", "end"]
48692
- * @type {string}
48774
+ * @type {"all"|"end"|undefined}
48693
48775
  * @default end
48694
48776
  */
48695
48777
  (''); // Keeps doclets above in JS file
@@ -49037,8 +49119,8 @@ G.Time = Core_Time;
49037
49119
  G.Tooltip = Core_Tooltip;
49038
49120
  // Utilities
49039
49121
  G.addEvent = addEvent;
49040
- G.animObject = AnimationUtilities.animObject;
49041
- G.animate = AnimationUtilities.animate;
49122
+ G.animObject = animObject;
49123
+ G.animate = animate;
49042
49124
  G.arrayMax = arrayMax;
49043
49125
  G.arrayMin = arrayMin;
49044
49126
  G.attr = attr;
@@ -49065,7 +49147,7 @@ G.fireEvent = fireEvent;
49065
49147
  G.format = Core_Templating.format;
49066
49148
  G.getAlignFactor = getAlignFactor;
49067
49149
  G.getClosestDistance = getClosestDistance;
49068
- G.getDeferredAnimation = AnimationUtilities.getDeferredAnimation;
49150
+ G.getDeferredAnimation = getDeferredAnimation;
49069
49151
  G.getMagnitude = getMagnitude;
49070
49152
  G.getNestedProperty = getNestedProperty;
49071
49153
  G.getOptions = Defaults.getOptions;
@@ -49092,11 +49174,11 @@ G.relativeLength = relativeLength;
49092
49174
  G.removeEvent = removeEvent;
49093
49175
  G.replaceNested = replaceNested;
49094
49176
  G.seriesType = Series_SeriesRegistry.seriesType;
49095
- G.setAnimation = AnimationUtilities.setAnimation;
49177
+ G.setAnimation = setAnimation;
49096
49178
  G.setOptions = Defaults.setOptions;
49097
49179
  G.splat = splat;
49098
49180
  G.stableSort = stableSort;
49099
- G.stop = AnimationUtilities.stop;
49181
+ G.stop = stop;
49100
49182
  G.syncTimeout = syncTimeout;
49101
49183
  G.time = Defaults.defaultTime;
49102
49184
  G.ucfirst = ucfirst;