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/standalone-navigator
5
5
  *
6
6
  * Standalone Navigator for Highcharts.
@@ -10,29 +10,6 @@
10
10
  * A commercial license may be required depending on use,
11
11
  * see www.highcharts.com/license
12
12
  */
13
- /******/ // The require scope
14
- /******/ var __webpack_require__ = {};
15
- /******/
16
- /************************************************************************/
17
- /******/ /* webpack/runtime/define property getters */
18
- /******/ (() => {
19
- /******/ // define getter functions for harmony exports
20
- /******/ __webpack_require__.d = (exports, definition) => {
21
- /******/ for(var key in definition) {
22
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
23
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
24
- /******/ }
25
- /******/ }
26
- /******/ };
27
- /******/ })();
28
- /******/
29
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
30
- /******/ (() => {
31
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
32
- /******/ })();
33
- /******/
34
- /************************************************************************/
35
- var __webpack_exports__ = {};
36
13
 
37
14
  ;// ./code/es-modules/Core/Globals.js
38
15
  /* *
@@ -63,7 +40,7 @@ var Globals;
63
40
  * Constants
64
41
  *
65
42
  * */
66
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.0', Globals.win = (typeof window !== 'undefined' ?
43
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.1', Globals.win = (typeof window !== 'undefined' ?
67
44
  window :
68
45
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
69
46
  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 = [
@@ -978,7 +955,7 @@ const ChartDefaults = {
978
955
  * @type {Highcharts.ColorType}
979
956
  * @since 2.1.7
980
957
  */
981
- selectionMarkerFill: 'color-mix(var(--highcharts-highlight-color-80) 25%, transparent)', // eslint-disable-line max-len
958
+ selectionMarkerFill: 'color-mix(in srgb, var(--highcharts-highlight-color-80) 25%, transparent)', // eslint-disable-line max-len
982
959
  /**
983
960
  * Whether to apply a drop shadow to the global series group. This causes
984
961
  * all the series to have the same shadow. Contrary to the `series.shadow`
@@ -3941,17 +3918,16 @@ class TimeBase {
3941
3918
  // eslint-disable-next-line new-cap
3942
3919
  let d = this.Date.UTC(year, month, date, hours, minutes || 0, seconds || 0, milliseconds || 0);
3943
3920
  if (this.timezone !== 'UTC') {
3944
- const offset = this.getTimezoneOffset(d);
3921
+ const offset = this.getTimezoneOffset(d), localHours = (hours - offset / timeUnits.hour + 24) % 24;
3945
3922
  d += offset;
3946
- // Adjustments close to DST transitions
3947
3923
  if (
3948
- // Optimize for speed by limiting the number of calls to
3949
- // `getTimezoneOffset`. According to
3924
+ // Limit the number of calls to `getTimezoneOffset` to months
3925
+ // where DST changes may occur. According to
3950
3926
  // https://en.wikipedia.org/wiki/Daylight_saving_time_by_country,
3951
3927
  // DST change may only occur in these months.
3952
3928
  [2, 3, 8, 9, 10, 11].indexOf(month) !== -1 &&
3953
- // DST transitions occur only in the night-time
3954
- (hours < 5 || hours > 20)) {
3929
+ // DST changes only occur at night (#24420)
3930
+ (localHours < 5 || localHours > 20)) {
3955
3931
  const newOffset = this.getTimezoneOffset(d);
3956
3932
  if (offset !== newOffset) {
3957
3933
  d += newOffset - offset;
@@ -6688,6 +6664,9 @@ const defaultOptions = {
6688
6664
  * below the column, but as `followTouchMove` is true, the tooltip will
6689
6665
  * jump from column to column as the user swipes across the plot area.
6690
6666
  *
6667
+ * @sample {highcharts} highcharts/tooltip/followtouchmove/
6668
+ * Tooltip follows touch move
6669
+ *
6691
6670
  * @type {boolean}
6692
6671
  * @default {highcharts} true
6693
6672
  * @default {highstock} true
@@ -7470,10 +7449,14 @@ const defaultOptions = {
7470
7449
  * @type {Highcharts.CSSObject}
7471
7450
  */
7472
7451
  style: {
7473
- /** @type {Highcharts.ColorType} */
7452
+ /**
7453
+ * @type {Highcharts.ColorType}
7454
+ */
7474
7455
  color: 'var(--highcharts-neutral-color-80)',
7475
7456
  cursor: 'default',
7476
- /** @type {number|string} */
7457
+ /**
7458
+ * @type {number|string}
7459
+ */
7477
7460
  fontSize: '0.8em'
7478
7461
  },
7479
7462
  /**
@@ -8396,24 +8379,22 @@ class Fx {
8396
8379
  */
8397
8380
  update() {
8398
8381
  const elem = this.elem, prop = this.prop, // If destroyed, it is null
8399
- now = this.now, step = this.options.step;
8382
+ now = this.now ?? 1, step = this.options.step;
8400
8383
  // Animation setter defined from outside
8401
8384
  if (this[prop + 'Setter']) {
8402
8385
  this[prop + 'Setter']();
8403
8386
  // Other animations on SVGElement
8404
8387
  }
8405
- else if (elem.attr) {
8388
+ else if (elem && elem.attr) {
8406
8389
  if (elem.element) {
8407
- elem.attr(prop, now, null, true);
8390
+ elem.attr(prop, now, void 0, true);
8408
8391
  }
8409
8392
  // HTML styles, raw HTML content like container size
8410
8393
  }
8411
- else {
8412
- elem.style[prop] = now + this.unit;
8413
- }
8414
- if (step) {
8415
- step.call(elem, now, this);
8394
+ else if (elem) {
8395
+ elem.style[prop] = now + (this.unit || '');
8416
8396
  }
8397
+ step?.call(elem, now, this);
8417
8398
  }
8418
8399
  /**
8419
8400
  * Run an animation.
@@ -8431,12 +8412,10 @@ class Fx {
8431
8412
  *
8432
8413
  */
8433
8414
  run(from, to, unit) {
8434
- const self = this, options = self.options, timer = function (gotoEnd) {
8435
- return timer.stopped ? false : self.step(gotoEnd);
8436
- }, requestAnimationFrame = Fx_win.requestAnimationFrame ||
8415
+ const { elem, options } = this, { complete, curAnim = {} } = options, timer = (gotoEnd) => (timer.stopped ? false : this.step(gotoEnd)), requestAnimationFrame = Fx_win.requestAnimationFrame ||
8437
8416
  function (step) {
8438
8417
  setTimeout(step, 13);
8439
- }, step = function () {
8418
+ }, step = () => {
8440
8419
  for (let i = 0; i < Fx.timers.length; i++) {
8441
8420
  if (!Fx.timers[i]()) {
8442
8421
  Fx.timers.splice(i--, 1);
@@ -8446,11 +8425,11 @@ class Fx {
8446
8425
  requestAnimationFrame(step);
8447
8426
  }
8448
8427
  };
8449
- if (from === to && !this.elem['forceAnimate:' + this.prop]) {
8450
- delete options.curAnim[this.prop];
8451
- if (options.complete &&
8452
- Object.keys(options.curAnim).length === 0) {
8453
- options.complete.call(this.elem);
8428
+ if (from === to && !elem['forceAnimate:' + this.prop]) {
8429
+ delete curAnim[this.prop];
8430
+ if (complete &&
8431
+ Object.keys(curAnim).length === 0) {
8432
+ complete.call(elem);
8454
8433
  }
8455
8434
  }
8456
8435
  else { // #7166
@@ -8460,7 +8439,7 @@ class Fx {
8460
8439
  this.unit = unit;
8461
8440
  this.now = this.start;
8462
8441
  this.pos = 0;
8463
- timer.elem = this.elem;
8442
+ timer.elem = elem;
8464
8443
  timer.prop = this.prop;
8465
8444
  if (timer() && Fx.timers.push(timer) === 1) {
8466
8445
  requestAnimationFrame(step);
@@ -8481,7 +8460,8 @@ class Fx {
8481
8460
  step(gotoEnd) {
8482
8461
  const t = +new Date(), options = this.options, elem = this.elem, complete = options.complete, duration = options.duration, curAnim = options.curAnim;
8483
8462
  let ret, done;
8484
- if (!!elem.attr && !elem.element) { // #2616, element is destroyed
8463
+ // #2616, element is destroyed
8464
+ if (elem?.attr && !elem.element) {
8485
8465
  ret = false;
8486
8466
  }
8487
8467
  else if (gotoEnd || t >= duration + this.startTime) {
@@ -8771,6 +8751,11 @@ function getDeferredAnimation(chart, animation, series) {
8771
8751
  /**
8772
8752
  * The global animate method, which uses Fx to create individual animators.
8773
8753
  *
8754
+ * @sample highcharts/members/renderer-basic
8755
+ * SVG elements with animation
8756
+ * @sample highcharts/members/animate
8757
+ * Animation without an owner element
8758
+ *
8774
8759
  * @function Highcharts.animate
8775
8760
  *
8776
8761
  * @param {Highcharts.HTMLDOMElement|Highcharts.SVGElement} el
@@ -8786,14 +8771,12 @@ function getDeferredAnimation(chart, animation, series) {
8786
8771
  *
8787
8772
  * @return {void}
8788
8773
  */
8789
- function animate(el, params, opt) {
8790
- let start, unit = '', end, fx, args;
8774
+ function animate(el, params = { pos: 1 }, opt) {
8791
8775
  if (!isObject(opt)) { // Number or undefined/null
8792
- args = arguments;
8793
8776
  opt = {
8794
- duration: args[2],
8795
- easing: args[3],
8796
- complete: args[4]
8777
+ duration: arguments[2],
8778
+ easing: arguments[3],
8779
+ complete: arguments[4]
8797
8780
  };
8798
8781
  }
8799
8782
  if (!isNumber(opt.duration)) {
@@ -8803,22 +8786,23 @@ function animate(el, params, opt) {
8803
8786
  opt.easing :
8804
8787
  (Math[opt.easing] || Math.easeInOutSine);
8805
8788
  opt.curAnim = merge(params);
8806
- objectEach(params, function (val, prop) {
8789
+ objectEach(params, (val, prop) => {
8807
8790
  // Stop current running animation of this property
8808
- stop(el, prop);
8809
- fx = new Animation_Fx(el, opt, prop);
8810
- end = void 0;
8811
- if (prop === 'd' && isArray(params.d)) {
8812
- fx.paths = fx.initPath(el, el.pathArray, params.d);
8813
- fx.toD = params.d;
8814
- start = 0;
8791
+ if (el) {
8792
+ stop(el, prop);
8793
+ }
8794
+ const fx = new Animation_Fx(el, opt, prop), d = params.d;
8795
+ let start = 0, end = void 0, unit = '';
8796
+ if (prop === 'd' && isArray(d)) {
8797
+ fx.paths = fx.initPath(el, el.pathArray, d);
8798
+ fx.toD = d;
8815
8799
  end = 1;
8816
8800
  }
8817
- else if (el.attr) {
8801
+ else if (el?.attr) {
8818
8802
  start = el.attr(prop);
8819
8803
  }
8820
- else {
8821
- start = parseFloat(getStyle(el, prop)) || 0;
8804
+ else if (el) {
8805
+ start = +(getStyle(el, prop) || 0);
8822
8806
  if (prop !== 'opacity') {
8823
8807
  unit = 'px';
8824
8808
  }
@@ -8829,7 +8813,10 @@ function animate(el, params, opt) {
8829
8813
  if (typeof end === 'string' && end.match('px')) {
8830
8814
  end = end.replace(/px/g, ''); // #4351
8831
8815
  }
8832
- fx.run(start, end, unit);
8816
+ // Empty dashstyle animation crashes treemap on hover
8817
+ if (defined(end)) {
8818
+ fx.run(start, end, unit);
8819
+ }
8833
8820
  });
8834
8821
  }
8835
8822
  /**
@@ -8853,28 +8840,11 @@ function animate(el, params, opt) {
8853
8840
  * improvement in all cases where we stop the animation from .attr. Instead of
8854
8841
  * stopping everything, we can just stop the actual attributes we're setting.
8855
8842
  */
8856
- function stop(el, prop) {
8857
- let i = Animation_Fx.timers.length;
8858
- // Remove timers related to this element (#4519)
8859
- while (i--) {
8860
- if (Animation_Fx.timers[i].elem === el && (!prop || prop === Animation_Fx.timers[i].prop)) {
8861
- Animation_Fx.timers[i].stopped = true; // #4667
8862
- }
8843
+ const stop = (el, prop) => Animation_Fx.timers.forEach((timer) => {
8844
+ if (timer.elem === el && (!prop || prop === timer.prop)) {
8845
+ timer.stopped = true; // #4667
8863
8846
  }
8864
- }
8865
- const animationExports = {
8866
- animate,
8867
- animObject,
8868
- getDeferredAnimation,
8869
- setAnimation,
8870
- stop
8871
- };
8872
- /* *
8873
- *
8874
- * Default Export
8875
- *
8876
- * */
8877
- /* harmony default export */ const AnimationUtilities = (animationExports);
8847
+ });
8878
8848
  /* *
8879
8849
  *
8880
8850
  * API Options
@@ -9179,7 +9149,9 @@ class AST {
9179
9149
  doc = { body };
9180
9150
  }
9181
9151
  const appendChildNodes = (node, addTo) => {
9182
- const tagName = node.nodeName.toLowerCase();
9152
+ // Preserve the camelCase of SVG tags via localName (#24702).
9153
+ const tagName = node.localName ||
9154
+ node.nodeName.toLowerCase();
9183
9155
  // Add allowed tags
9184
9156
  const astNode = {
9185
9157
  tagName
@@ -9293,6 +9265,8 @@ AST.allowedAttributes = [
9293
9265
  'src',
9294
9266
  'startOffset',
9295
9267
  'stdDeviation',
9268
+ 'stop-color',
9269
+ 'stop-opacity',
9296
9270
  'stroke-linecap',
9297
9271
  'stroke-width',
9298
9272
  'stroke',
@@ -9896,9 +9870,7 @@ const Templating = {
9896
9870
  * API Declarations
9897
9871
  * */
9898
9872
  /**
9899
- * @interface Highcharts.Templating
9900
- *
9901
- * The Highcharts.Templating interface provides a structure for defining
9873
+ * The Highcharts.TemplatingObject interface provides a structure for defining
9902
9874
  * helpers. Helpers can be used as conditional blocks or functions within
9903
9875
  * expressions. Highcharts includes several built-in helpers and supports
9904
9876
  * the addition of custom helpers.
@@ -9906,16 +9878,21 @@ const Templating = {
9906
9878
  * @see [More information](
9907
9879
  * https://www.highcharts.com/docs/chart-concepts/templating#helpers)
9908
9880
  *
9909
- * @example
9910
- * // Define a custom helper to return the absolute value of a number
9911
- * Highcharts.Templating.helpers.abs = value => Math.abs(value);
9912
- *
9913
- * // Usage in a format string
9914
- * format: 'Absolute value: {abs point.y}'
9915
- *
9916
- * @name Highcharts.Templating#helpers
9917
- * @type {Record<string, Function>}
9918
- */
9881
+ * @interface Highcharts.TemplatingObject
9882
+ */ /**
9883
+ * @example
9884
+ * // Define a custom helper to return the absolute value of a number
9885
+ * Highcharts.Templating.helpers.abs = value => Math.abs(value);
9886
+ *
9887
+ * // Usage in a format string
9888
+ * format: 'Absolute value: {abs point.y}'
9889
+ *
9890
+ * @name Highcharts.TemplatingObject#helpers
9891
+ * @type {Record<string, Function>}
9892
+ */ /**
9893
+ * @name Highcharts.Templating
9894
+ * @type {Highcharts.TemplatingObject}
9895
+ */
9919
9896
  (''); // Keeps doclets above in file
9920
9897
 
9921
9898
  ;// ./code/es-modules/Core/Renderer/RendererUtilities.js
@@ -10124,7 +10101,6 @@ var RendererUtilities;
10124
10101
  * */
10125
10102
 
10126
10103
 
10127
- const { animate: SVGElement_animate, animObject: SVGElement_animObject, stop: SVGElement_stop } = AnimationUtilities;
10128
10104
 
10129
10105
 
10130
10106
  const { deg2rad, doc: SVGElement_doc, svg, SVG_NS: SVGElement_SVG_NS, win: SVGElement_win, isFirefox } = Core_Globals;
@@ -10408,7 +10384,7 @@ class SVGElement {
10408
10384
  * Returns the SVGElement for chaining.
10409
10385
  */
10410
10386
  animate(params, options, complete) {
10411
- const animOptions = SVGElement_animObject(pick(options, this.renderer.globalAnimation, true)), deferTime = animOptions.defer;
10387
+ const animOptions = animObject(pick(options, this.renderer.globalAnimation, true)), deferTime = animOptions.defer;
10412
10388
  // When the page is hidden save resources in the background by not
10413
10389
  // running animation at all (#9749).
10414
10390
  if (SVGElement_doc.hidden) {
@@ -10423,7 +10399,7 @@ class SVGElement {
10423
10399
  // If defer option is defined delay the animation #12901
10424
10400
  syncTimeout(() => {
10425
10401
  if (this.element) {
10426
- SVGElement_animate(this, params, animOptions);
10402
+ animate(this, params, animOptions);
10427
10403
  }
10428
10404
  }, deferTime);
10429
10405
  }
@@ -10597,7 +10573,7 @@ class SVGElement {
10597
10573
  // Unless .attr is from the animator update, stop current
10598
10574
  // running animation of this property
10599
10575
  if (!continueAnimation) {
10600
- SVGElement_stop(this, key);
10576
+ stop(this, key);
10601
10577
  }
10602
10578
  // Special handling of symbol attributes
10603
10579
  if (this.symbolName &&
@@ -10917,7 +10893,7 @@ class SVGElement {
10917
10893
  // Remove events
10918
10894
  element.onclick = element.onmouseout = element.onmouseover =
10919
10895
  element.onmousemove = element.point = null;
10920
- SVGElement_stop(wrapper); // Stop running animations
10896
+ stop(wrapper); // Stop running animations
10921
10897
  if (wrapper.clipPath && ownerSVGElement) {
10922
10898
  const clipPath = wrapper.clipPath;
10923
10899
  // Look for existing references to this clipPath and remove them
@@ -13829,7 +13805,7 @@ class SVGRenderer {
13829
13805
  this.url = this.getReferenceURL();
13830
13806
  // Add description
13831
13807
  const desc = this.createElement('desc').add();
13832
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.0'));
13808
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.1'));
13833
13809
  this.defs = this.createElement('defs').add();
13834
13810
  this.allowHTML = allowHTML;
13835
13811
  this.forExport = forExport;
@@ -15620,7 +15596,11 @@ class HTMLElement extends SVG_SVGElement {
15620
15596
  .attr({
15621
15597
  text: str,
15622
15598
  x: Math.round(x),
15623
- y: Math.round(y)
15599
+ y: Math.round(y),
15600
+ // The namespace attribute is required for serialization
15601
+ // (export and side-by-side comparison), otherwise it
15602
+ // inherits the SVG namespace from foreignObject.
15603
+ xmlns: 'http://www.w3.org/1999/xhtml'
15624
15604
  });
15625
15605
  };
15626
15606
  }
@@ -15800,8 +15780,10 @@ class HTMLElement extends SVG_SVGElement {
15800
15780
  foreignObject.attr({
15801
15781
  x: x + (this.xCorr || 0),
15802
15782
  y: y + (this.yCorr || 0),
15803
- // Add 4px to avoid ellipsis, since the body adds 3 px right
15804
- // margin. We need one more because of rounding.
15783
+ // Add 4px to avoid ellipsis. In v13.0.0 we had a body inside
15784
+ // the foreignObject with a 3px right margin. This was later
15785
+ // removed, but we still need to add a few pixels to avoid
15786
+ // ellipsis.
15805
15787
  width: element.offsetWidth + 4,
15806
15788
  // Add 1px to account for subpixel bounding boxes
15807
15789
  height: element.offsetHeight + 1,
@@ -15821,25 +15803,16 @@ class HTMLElement extends SVG_SVGElement {
15821
15803
  this.cTT = currentTextTransform;
15822
15804
  }
15823
15805
  /**
15824
- * Add the element to a group wrapper. For HTML elements, a parallel div
15825
- * will be created for each ancestor SVG `g` element.
15806
+ * Add the element to the foreign object
15826
15807
  *
15827
15808
  * @internal
15828
15809
  */
15829
15810
  add(parentGroup) {
15830
- const { foreignObject, renderer } = this;
15811
+ const { foreignObject } = this;
15831
15812
  // Foreign object
15832
15813
  foreignObject.add(parentGroup);
15833
- super.add(
15834
- // Create a body inside the foreignObject
15835
- renderer.createElement('body')
15836
- .attr({ xmlns: 'http://www.w3.org/1999/xhtml' })
15837
- .css({
15838
- background: 'transparent',
15839
- // 3px is to avoid clipping on the right
15840
- margin: '0 3px 0 0'
15841
- })
15842
- .add(foreignObject));
15814
+ // Add this.element to the foreign objct
15815
+ super.add(foreignObject);
15843
15816
  if (this.alignOnAdd) {
15844
15817
  this.updateTransform();
15845
15818
  }
@@ -15874,10 +15847,20 @@ class HTMLElement extends SVG_SVGElement {
15874
15847
  this[key] = value;
15875
15848
  this.doTransform = true;
15876
15849
  }
15850
+ /**
15851
+ * Apply visibility/opacity to the foreignObject; the HTML element
15852
+ * ignores them.
15853
+ * @internal
15854
+ */
15855
+ visibilitySetter(value, key) {
15856
+ this.foreignObject.attr({ [key]: value });
15857
+ this[key] = value;
15858
+ }
15877
15859
  }
15878
15860
  // Some shared setters
15879
15861
  const proto = HTMLElement.prototype;
15880
15862
  proto.ySetter = proto.xSetter;
15863
+ proto.opacitySetter = proto.visibilitySetter;
15881
15864
  /* *
15882
15865
  *
15883
15866
  * Default Export
@@ -16418,6 +16401,7 @@ var AxisDefaults;
16418
16401
  */
16419
16402
  dateTimeLabelFormats: {
16420
16403
  /**
16404
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16421
16405
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16422
16406
  */
16423
16407
  millisecond: {
@@ -16443,6 +16427,7 @@ var AxisDefaults;
16443
16427
  range: false
16444
16428
  },
16445
16429
  /**
16430
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16446
16431
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16447
16432
  */
16448
16433
  second: {
@@ -16468,6 +16453,7 @@ var AxisDefaults;
16468
16453
  range: false
16469
16454
  },
16470
16455
  /**
16456
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16471
16457
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16472
16458
  */
16473
16459
  minute: {
@@ -16493,6 +16479,7 @@ var AxisDefaults;
16493
16479
  range: false
16494
16480
  },
16495
16481
  /**
16482
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16496
16483
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16497
16484
  */
16498
16485
  hour: {
@@ -16525,6 +16512,7 @@ var AxisDefaults;
16525
16512
  range: false
16526
16513
  },
16527
16514
  /**
16515
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16528
16516
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16529
16517
  */
16530
16518
  day: {
@@ -16547,6 +16535,7 @@ var AxisDefaults;
16547
16535
  boundary: '%[eb]'
16548
16536
  },
16549
16537
  /**
16538
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16550
16539
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16551
16540
  */
16552
16541
  week: {
@@ -16562,6 +16551,7 @@ var AxisDefaults;
16562
16551
  main: '%[eb]'
16563
16552
  },
16564
16553
  /**
16554
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16565
16555
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16566
16556
  */
16567
16557
  month: {
@@ -16584,6 +16574,7 @@ var AxisDefaults;
16584
16574
  boundary: void 0
16585
16575
  },
16586
16576
  /**
16577
+ * @type {Highcharts.AxisDateTimeLabelFormatsOptionsObject|string}
16587
16578
  * @declare Highcharts.AxisDateTimeLabelFormatsOptionsObject
16588
16579
  */
16589
16580
  year: {
@@ -17399,7 +17390,7 @@ var AxisDefaults;
17399
17390
  * @sample {highstock} stock/xaxis/offset/
17400
17391
  * Y axis offset by 70 px
17401
17392
  *
17402
- * @type {number}
17393
+ * @type {number|string}
17403
17394
  */
17404
17395
  offset: void 0,
17405
17396
  /**
@@ -19049,7 +19040,9 @@ var AxisDefaults;
19049
19040
  * @product highcharts
19050
19041
  */
19051
19042
  style: {
19052
- /** @type {Highcharts.ColorType} */
19043
+ /**
19044
+ * @type {Highcharts.ColorType}
19045
+ */
19053
19046
  color: 'var(--highcharts-neutral-color-100)',
19054
19047
  /**
19055
19048
  * @type {number|string}
@@ -19832,7 +19825,6 @@ class Tick {
19832
19825
  * */
19833
19826
 
19834
19827
 
19835
- const { animObject: Axis_animObject } = AnimationUtilities;
19836
19828
 
19837
19829
  const { xAxis, yAxis } = Axis_AxisDefaults;
19838
19830
 
@@ -22438,7 +22430,7 @@ class Axis {
22438
22430
  * @emits Highcharts.Axis#event:afterRender
22439
22431
  */
22440
22432
  render() {
22441
- 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);
22433
+ 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);
22442
22434
  let from, to;
22443
22435
  // Reset
22444
22436
  axis.labelEdge.length = 0;
@@ -22789,7 +22781,7 @@ class Axis {
22789
22781
  }
22790
22782
  cross
22791
22783
  .show()
22792
- .animate({ d: path }, Axis_animObject(options?.animation));
22784
+ .animate({ d: path }, animObject(options?.animation));
22793
22785
  if (categorized && !options.width) {
22794
22786
  cross.attr({
22795
22787
  'stroke-width': this.transA
@@ -24827,7 +24819,6 @@ class PlotLineOrBand {
24827
24819
  * */
24828
24820
 
24829
24821
 
24830
- const { animObject: Tooltip_animObject } = AnimationUtilities;
24831
24822
 
24832
24823
  const { format: Tooltip_format } = Core_Templating;
24833
24824
 
@@ -25528,7 +25519,7 @@ class Tooltip {
25528
25519
  * @param {number} anchorY
25529
25520
  */
25530
25521
  move(x, y, anchorX, anchorY) {
25531
- const { followPointer, options } = this, animation = Tooltip_animObject(!followPointer &&
25522
+ const { followPointer, options } = this, animation = animObject(!followPointer &&
25532
25523
  !this.isHidden &&
25533
25524
  !options.fixed &&
25534
25525
  options.animation), skipAnchor = followPointer || (this.len || 0) > 1, attr = { x, y };
@@ -26276,7 +26267,6 @@ class Tooltip {
26276
26267
 
26277
26268
 
26278
26269
 
26279
- const { animObject: Point_animObject } = AnimationUtilities;
26280
26270
 
26281
26271
  const { defaultOptions: Point_defaultOptions } = Defaults;
26282
26272
 
@@ -26616,10 +26606,15 @@ class Point {
26616
26606
  *
26617
26607
  * @internal
26618
26608
  * @function Highcharts.Point#destroy
26609
+ *
26610
+ * @param {boolean} [sync]
26611
+ * Whether to destroy the point synchronously. Used internally from
26612
+ * series.destroy, where condemned points may cause animation errors
26613
+ * (#24976).
26619
26614
  */
26620
- destroy() {
26621
- if (!this.condemned) {
26622
- const point = this, series = point.series, chart = series.chart, hoverPoints = chart.hoverPoints, globalAnimation = point.series.chart.renderer.globalAnimation, { duration } = Point_animObject(globalAnimation);
26615
+ destroy(sync) {
26616
+ if (!this.destroyed && !this.condemned) {
26617
+ const point = this, series = point.series, chart = series.chart, hoverPoints = chart.hoverPoints, globalAnimation = point.series.chart.renderer.globalAnimation, { duration } = animObject(globalAnimation);
26623
26618
  /**
26624
26619
  * Allow to call after animation.
26625
26620
  * @internal
@@ -26636,6 +26631,7 @@ class Point {
26636
26631
  for (const prop in point) { // eslint-disable-line guard-for-in
26637
26632
  delete point[prop];
26638
26633
  }
26634
+ this.destroyed = true;
26639
26635
  };
26640
26636
  if (point.legendItem) {
26641
26637
  // Pies have legend items
@@ -26652,7 +26648,7 @@ class Point {
26652
26648
  point.onMouseOut();
26653
26649
  }
26654
26650
  // Remove properties after animation
26655
- if (duration && series.condemnedPoints) {
26651
+ if (duration && !sync && series.condemnedPoints) {
26656
26652
  series.condemnedPoints.push(this);
26657
26653
  this.graphic?.addClass('highcharts-point-condemned');
26658
26654
  setTimeout(destroyPoint, duration);
@@ -26775,14 +26771,15 @@ class Point {
26775
26771
  *
26776
26772
  * @function Highcharts.Point#getZone
26777
26773
  *
26778
- * @return {Highcharts.SeriesZonesOptionsObject}
26779
- * The zone item.
26774
+ * @return {Highcharts.SeriesZonesOptionsObject|undefined}
26775
+ * The zone item, or `undefined` if the series has no zones.
26780
26776
  */
26781
26777
  getZone() {
26782
26778
  const series = this.series, zones = series.zones, zoneAxis = series.zoneAxis || 'y';
26783
26779
  let zone, i = 0;
26784
26780
  zone = zones[i];
26785
- while (this[zoneAxis] >= zone.value) {
26781
+ while (i < zones.length &&
26782
+ this[zoneAxis] >= zone.value) {
26786
26783
  zone = zones[++i];
26787
26784
  }
26788
26785
  // For resetting or reusing the point (#8100)
@@ -27322,9 +27319,8 @@ class Point {
27322
27319
  * @emits Highcharts.Point#event:afterSetState
27323
27320
  */
27324
27321
  setState(state, move) {
27325
- const point = this, series = point.series, previousState = point.state, stateOptions = (series.options.states[state || 'normal'] ||
27326
- {}), markerOptions = (Point_defaultOptions.plotOptions[series.type].marker &&
27327
- series.options.marker), normalDisabled = (markerOptions && markerOptions.enabled === false), markerStateOptions = markerOptions?.states?.[state || 'normal'] ||
27322
+ const point = this, series = point.series, previousState = point.state, stateOptions = series.options.states?.[state || 'normal'] || {}, markerOptions = (Point_defaultOptions.plotOptions?.[series.type]?.marker &&
27323
+ series.options.marker), normalDisabled = markerOptions?.enabled === false, markerStateOptions = markerOptions?.states?.[state || 'normal'] ||
27328
27324
  {}, stateDisabled = markerStateOptions.enabled === false, pointMarker = point.marker || {}, chart = series.chart, hasMarkers = (markerOptions && series.markerAttribs);
27329
27325
  let halo = series.halo, markerAttribs, pointAttribs, pointAttribsAnimation, stateMarkerGraphic = series.stateMarkerGraphic, newSymbol;
27330
27326
  state = state || ''; // Empty string
@@ -27337,13 +27333,10 @@ class Point {
27337
27333
  (stateOptions.enabled === false) ||
27338
27334
  // General point marker's state options is disabled
27339
27335
  (state && (stateDisabled ||
27340
- (normalDisabled &&
27341
- markerStateOptions.enabled === false))) ||
27336
+ (normalDisabled && markerStateOptions.enabled === false))) ||
27342
27337
  // Individual point marker's state options is disabled
27343
27338
  (state &&
27344
- pointMarker.states &&
27345
- pointMarker.states[state] &&
27346
- pointMarker.states[state].enabled === false) // #1610
27339
+ pointMarker.states?.[state]?.enabled === false) // #1610
27347
27340
  ) {
27348
27341
  return;
27349
27342
  }
@@ -27362,7 +27355,8 @@ class Point {
27362
27355
  }
27363
27356
  if (!chart.styledMode) {
27364
27357
  pointAttribs = series.pointAttribs(point, state);
27365
- pointAttribsAnimation = pick(chart.options.chart.animation, stateOptions.animation);
27358
+ pointAttribsAnimation = (chart.options.chart.animation ??
27359
+ stateOptions.animation);
27366
27360
  const opacity = pointAttribs.opacity;
27367
27361
  // Some inactive points (e.g. slices in pie) should apply
27368
27362
  // opacity also for their labels
@@ -27380,9 +27374,11 @@ class Point {
27380
27374
  point.graphic.animate(pointAttribs, pointAttribsAnimation);
27381
27375
  }
27382
27376
  if (markerAttribs) {
27383
- point.graphic.animate(markerAttribs, pick(
27377
+ point.graphic.animate(markerAttribs, (
27384
27378
  // Turn off globally:
27385
- chart.options.chart.animation, markerStateOptions.animation, markerOptions.animation));
27379
+ chart.options.chart.animation ??
27380
+ markerStateOptions.animation ??
27381
+ markerOptions.animation));
27386
27382
  }
27387
27383
  // Zooming in from a range with no markers to a range with markers
27388
27384
  if (stateMarkerGraphic) {
@@ -27431,10 +27427,12 @@ class Point {
27431
27427
  }
27432
27428
  }
27433
27429
  // Show me your halo
27434
- const haloOptions = stateOptions.halo;
27430
+ const haloOptions = isObject(stateOptions.halo) ?
27431
+ stateOptions.halo :
27432
+ {};
27435
27433
  const markerGraphic = (point.graphic || stateMarkerGraphic);
27436
27434
  const markerVisibility = markerGraphic?.visibility || 'inherit';
27437
- if (haloOptions?.size &&
27435
+ if (haloOptions.size &&
27438
27436
  markerGraphic &&
27439
27437
  markerVisibility !== 'hidden' &&
27440
27438
  !point.isCluster) {
@@ -27964,6 +27962,11 @@ class Pointer {
27964
27962
  }
27965
27963
  }
27966
27964
  }
27965
+ // Run a final transform with a drop trigger to display the reset
27966
+ // zoom button after a pinch gesture (#22128)
27967
+ if (e?.type === 'touchend' && this.hasDragged) {
27968
+ chart.transform({ trigger: 'drop' });
27969
+ }
27967
27970
  if (redraw) {
27968
27971
  chart.redraw();
27969
27972
  }
@@ -28607,6 +28610,9 @@ class Pointer {
28607
28610
  from: boxFromTouches(lastTouches),
28608
28611
  trigger: e.type
28609
28612
  });
28613
+ // Record a truthy value in order to trigger the final transform
28614
+ // in the drop function
28615
+ pointer.hasDragged = 1;
28610
28616
  });
28611
28617
  if (pointer.res) {
28612
28618
  pointer.res = false;
@@ -29098,7 +29104,9 @@ class Pointer {
29098
29104
  // If inside, capture touch-drag and display tooltip. If not inside,
29099
29105
  // allow dragging the finger to scroll the page
29100
29106
  if ((chart.tooltip?.options.followTouchMove ?? true) &&
29101
- isInside) {
29107
+ isInside &&
29108
+ e.type === 'touchmove' &&
29109
+ !(chart.scrollablePixelsX || chart.scrollablePixelsY)) {
29102
29110
  e.preventDefault();
29103
29111
  }
29104
29112
  }
@@ -29570,7 +29578,7 @@ class DataTableCore {
29570
29578
  * Fetches the given column by the canonical column ID. Simplified version
29571
29579
  * of the full `DataTable.getRow` method, always returning by reference.
29572
29580
  *
29573
- * @function Highcharts.DataTable#setColumn
29581
+ * @function Highcharts.DataTable#getColumn
29574
29582
  *
29575
29583
  * @param {string} columnId
29576
29584
  * ID of the column to get.
@@ -30306,6 +30314,10 @@ const seriesDefaults = {
30306
30314
  * ```
30307
30315
  *
30308
30316
  * @type {Highcharts.DataMappingOptionsObject}
30317
+ * @sample highcharts/datatable/datamapping
30318
+ * Basic data mapping
30319
+ * @sample highcharts/datatable/datamapping-dynamic
30320
+ * Data mapping with dynamic updates
30309
30321
  * @sample {highcharts} highcharts/datatable/series-datatable-multiple
30310
30322
  * Series with two data tables
30311
30323
  * @sample {highcharts} highcharts/datatable/nested-keys
@@ -30316,6 +30328,29 @@ const seriesDefaults = {
30316
30328
  * @since 13.0.0
30317
30329
  * @apioption plotOptions.series.dataMapping
30318
30330
  */
30331
+ /**
30332
+ * Options for a specific series-level data table or an array of data
30333
+ * tables. The `dataTable` option can be either a configuration object or an
30334
+ * instance of the `DataTable` class. If a `DataTable` instance is passed,
30335
+ * it will be used directly. If a configuration object or an array is
30336
+ * passed, a new `DataTable` instance will be created based on the provided
30337
+ * configuration.
30338
+ *
30339
+ * @type {Highcharts.DataTable|Highcharts.DataTableOptionsObject|Array<Highcharts.DataTable|Highcharts.DataTableOptionsObject>}
30340
+ * @sample {highcharts} highcharts/datatable/series-datatable/
30341
+ * Series with one data table each
30342
+ * @sample {highcharts} highcharts/datatable/series-datatable-multiple/
30343
+ * Series with two data tables
30344
+ * @sample {highstock} stock/datatable/series-datatable/
30345
+ * Series with one data table each
30346
+ * @sample {highstock} stock/datatable/series-datatable-multiple/
30347
+ * Series with two data tables
30348
+ * @sample {highmaps} maps/datatable/series-datatable
30349
+ * Series-level data table
30350
+ *
30351
+ * @since 13.0.0
30352
+ * @apioption plotOptions.series.dataTable
30353
+ */
30319
30354
  /**
30320
30355
  * Enable or disable the mouse tracking for a specific series. This
30321
30356
  * includes point tooltips and click events on graphs and points. For
@@ -31199,6 +31234,7 @@ const seriesDefaults = {
31199
31234
  * `series.allowPointSelect` option to true.
31200
31235
  *
31201
31236
  * @declare Highcharts.PointStatesSelectOptionsObject
31237
+ * @extends plotOptions.series.marker.states.hover
31202
31238
  */
31203
31239
  select: {
31204
31240
  /**
@@ -31775,6 +31811,7 @@ const seriesDefaults = {
31775
31811
  * @sample {highmaps} maps/plotoptions/series-datalabels-box/
31776
31812
  * Data labels box options
31777
31813
  *
31814
+ * @type {number|Array<number>}
31778
31815
  * @since 2.2.1
31779
31816
  */
31780
31817
  padding: [1, 3],
@@ -31976,6 +32013,9 @@ const seriesDefaults = {
31976
32013
  /**
31977
32014
  * A collection of options for different series states.
31978
32015
  *
32016
+ * In addition to the options documented under each state, any option from
32017
+ * the parent series type can be set, with exception of `data` and `states`.
32018
+ *
31979
32019
  * @declare Highcharts.SeriesStatesOptionsObject
31980
32020
  */
31981
32021
  states: {
@@ -32149,6 +32189,7 @@ const seriesDefaults = {
32149
32189
  * Disabled inactive state
32150
32190
  *
32151
32191
  * @declare Highcharts.SeriesStatesInactiveOptionsObject
32192
+ * @extends plotOptions.series.states.hover
32152
32193
  */
32153
32194
  inactive: {
32154
32195
  /**
@@ -32549,7 +32590,6 @@ var SeriesRegistry;
32549
32590
  * */
32550
32591
 
32551
32592
 
32552
- const { animObject: Series_animObject, setAnimation: Series_setAnimation } = AnimationUtilities;
32553
32593
 
32554
32594
 
32555
32595
  const { defaultOptions: Series_defaultOptions } = Defaults;
@@ -32687,6 +32727,13 @@ class Series {
32687
32727
  * @type {number|undefined}
32688
32728
  * @readonly
32689
32729
  */
32730
+ /**
32731
+ * The main group for the series' graphics.
32732
+ *
32733
+ * @name Highcharts.Series#group
32734
+ * @type {Highcharts.SVGElement}
32735
+ * @readonly
32736
+ */
32690
32737
  /**
32691
32738
  * Contains the series' index in the `Chart.series` array.
32692
32739
  *
@@ -32819,10 +32866,12 @@ class Series {
32819
32866
  */
32820
32867
  series.options = series.setOptions(userOptions);
32821
32868
  const options = series.options, visible = options.visible !== false;
32822
- // Create the data table
32823
- this.dataTable ?? (this.dataTable = options.dataTable?.isDataTable ?
32824
- options.dataTable :
32825
- new Data_DataTableCore(options.dataTable));
32869
+ // Create the data table or use the one passed as option
32870
+ this.dataTable ?? (this.dataTable = isArray(options.dataTable) ?
32871
+ new Data_DataTableCore() :
32872
+ options.dataTable?.isDataTable ?
32873
+ options.dataTable :
32874
+ new Data_DataTableCore(options.dataTable));
32826
32875
  /**
32827
32876
  * All child series that are linked to the current series through the
32828
32877
  * [linkedTo](https://api.highcharts.com/highcharts/series.line.linkedTo)
@@ -33204,7 +33253,7 @@ class Series {
33204
33253
  */
33205
33254
  getSymbol() {
33206
33255
  const seriesMarkerOption = this.options.marker;
33207
- this.getCyclic('symbol', seriesMarkerOption.symbol, this.chart.options.symbols);
33256
+ this.getCyclic('symbol', seriesMarkerOption?.symbol, this.chart.options.symbols);
33208
33257
  }
33209
33258
  /**
33210
33259
  * Shorthand to get one of the series' data columns from `Series.dataTable`.
@@ -33400,9 +33449,10 @@ class Series {
33400
33449
  if (!oldData[i].destroyed && !oldData[i].condemned) {
33401
33450
  const pOptions = dataTable.getRowObject(i);
33402
33451
  if (pOptions) {
33452
+ // Remove undefined properties, but preserve explicit
33453
+ // nulls (#24872)
33403
33454
  Object.keys(pOptions).forEach((key) => {
33404
- if (!defined(pOptions[key]) /* ||
33405
- pOptions[key] === oldData[i].options[key]*/) {
33455
+ if (pOptions[key] === void 0) {
33406
33456
  delete pOptions[key];
33407
33457
  }
33408
33458
  });
@@ -33807,8 +33857,12 @@ class Series {
33807
33857
  }
33808
33858
  }
33809
33859
  }
33810
- // Find the closest distance between processed points
33811
- xData = this.getColumn('x', true);
33860
+ // Find the closest distance between processed points. When the data was
33861
+ // cropped (or set out of range), read x from the freshly cropped local
33862
+ // `modified` table, #24858.
33863
+ if (modified !== table) {
33864
+ xData = modified.getColumn('x', true) || [];
33865
+ }
33812
33866
  const closestPointRange = getClosestDistance([
33813
33867
  logarithmic ?
33814
33868
  xData.map(logarithmic.log2lin) :
@@ -34013,9 +34067,9 @@ class Series {
34013
34067
  * Force getting extremes of a total series data range.
34014
34068
  */
34015
34069
  getExtremes(yData, forceExtremesFromAll) {
34016
- const { xAxis, yAxis } = this, getExtremesFromAll = forceExtremesFromAll ||
34070
+ const { options, xAxis, yAxis } = this, getExtremesFromAll = forceExtremesFromAll ||
34017
34071
  this.getExtremesFromAll ||
34018
- this.options.getExtremesFromAll, // #4599, #21003
34072
+ options.getExtremesFromAll, // #4599, #21003
34019
34073
  table = getExtremesFromAll && this.cropped ?
34020
34074
  this.dataTable :
34021
34075
  this.dataTable.getModified(), rowCount = table.rowCount, customData = yData || this.stackedYData, yAxisData = customData ?
@@ -34025,7 +34079,12 @@ class Series {
34025
34079
  // non-sorted data like scatter (#7639).
34026
34080
  shoulder = this.requireSorting && !this.is('column') ?
34027
34081
  1 : 0,
34028
- // #2117, need to compensate for log X axis
34082
+ // Used only for `cumulativeStart` (#24608)
34083
+ excludeShoulder = options.cumulative &&
34084
+ options.cumulativeStart &&
34085
+ shoulder &&
34086
+ !getExtremesFromAll,
34087
+ // Compensate for log X axis (#2117)
34029
34088
  positiveValuesOnly = yAxis ? yAxis.positiveValuesOnly : false, doAll = getExtremesFromAll ||
34030
34089
  this.cropped ||
34031
34090
  !xAxis; // For colorAxis support
@@ -34037,10 +34096,10 @@ class Series {
34037
34096
  }
34038
34097
  for (i = 0; i < rowCount; i++) {
34039
34098
  x = xData[i];
34040
- // Check if it is within the selected x axis range
34041
- if (doAll ||
34099
+ // Check if it is within the selected x-axis range
34100
+ if ((doAll ||
34042
34101
  ((xData[i + shoulder] || x) >= xMin &&
34043
- (xData[i - shoulder] || x) <= xMax)) {
34102
+ (xData[i - shoulder] || x) <= xMax)) && (!excludeShoulder || x >= xMin)) {
34044
34103
  for (const values of yAxisData) {
34045
34104
  const val = values[i];
34046
34105
  // For points within the visible range, including the
@@ -34109,7 +34168,7 @@ class Series {
34109
34168
  */
34110
34169
  translate() {
34111
34170
  this.generatePoints();
34112
- 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
34171
+ 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
34113
34172
  dynamicallyPlaced = Boolean(pointPlacement), stackThreshold = options.startFromThreshold ? threshold : 0, nullYSubstitute = (options?.nullInteraction &&
34114
34173
  yAxis.len);
34115
34174
  let i, plotX, lastPlotX, stackIndicator, closestPointRangePx = Number.MAX_VALUE;
@@ -34302,7 +34361,7 @@ class Series {
34302
34361
  * Initialize the animation.
34303
34362
  */
34304
34363
  animate(init) {
34305
- const { chart, group, markerGroup } = this, inverted = chart.inverted, animation = Series_animObject(this.options.animation),
34364
+ const { chart, group, markerGroup } = this, inverted = chart.inverted, animation = animObject(this.options.animation),
34306
34365
  // The key for temporary animation clips
34307
34366
  animationClipKey = [
34308
34367
  this.getSharedClipKey(),
@@ -34398,10 +34457,11 @@ class Series {
34398
34457
  */
34399
34458
  drawPoints(points) {
34400
34459
  points || (points = this.points.concat(this.condemnedPoints));
34401
- 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,
34402
- // Use larger or equal as radius is null in bubbles (#6321)
34403
- series.closestPointRangePx >= (seriesMarkerOptions.enabledThreshold *
34404
- seriesMarkerOptions.radius));
34460
+ 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 ??
34461
+ (!xAxis || xAxis.isRadial ? true : null) ??
34462
+ // Use larger or equal as radius is null in bubbles (#6321)
34463
+ ((series.closestPointRangePx ?? -Infinity) >= ((seriesMarkerOptions.enabledThreshold ?? 2) *
34464
+ seriesMarkerOptions.radius));
34405
34465
  let i, point, graphic, verb, pointMarkerOptions, hasPointMarker, markerAttribs;
34406
34466
  if (seriesMarkerOptions.enabled !== false ||
34407
34467
  series._hasPointMarkers) {
@@ -34419,7 +34479,7 @@ class Series {
34419
34479
  if (shouldDrawMarker) {
34420
34480
  // Shortcuts
34421
34481
  const symbol = pick(pointMarkerOptions.symbol, series.symbol, 'rect');
34422
- markerAttribs = series.markerAttribs(point, (point.selected && 'select'));
34482
+ markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
34423
34483
  const isInside = point.isInside !== false;
34424
34484
  if (!graphic &&
34425
34485
  isInside &&
@@ -34484,15 +34544,17 @@ class Series {
34484
34544
  * A hash containing those attributes that are not settable from CSS.
34485
34545
  */
34486
34546
  markerAttribs(point, state) {
34487
- const seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
34547
+ const seriesOptions = this.options, seriesMarkerOptions = seriesOptions.marker ?? {}, pointMarkerOptions = point.marker || {}, symbol = (pointMarkerOptions.symbol ||
34488
34548
  seriesMarkerOptions.symbol), attribs = {};
34489
- let seriesStateOptions, pointStateOptions, radius = pick(pointMarkerOptions.radius, seriesMarkerOptions?.radius);
34549
+ let seriesStateOptions, pointStateOptions, radius = pointMarkerOptions.radius ??
34550
+ seriesMarkerOptions.radius;
34490
34551
  // Handle hover and select states
34491
34552
  if (state) {
34492
- seriesStateOptions = seriesMarkerOptions?.states?.[state];
34553
+ seriesStateOptions = seriesMarkerOptions.states?.[state];
34493
34554
  pointStateOptions = pointMarkerOptions.states?.[state];
34494
- radius = pick(pointStateOptions?.radius, seriesStateOptions?.radius, radius && radius + (seriesStateOptions?.radiusPlus ||
34495
- 0));
34555
+ radius = pointStateOptions?.radius ??
34556
+ seriesStateOptions?.radius ??
34557
+ (radius && radius + (seriesStateOptions?.radiusPlus || 0));
34496
34558
  }
34497
34559
  point.hasImage = symbol && symbol.indexOf('url') === 0;
34498
34560
  if (point.hasImage) {
@@ -34505,7 +34567,7 @@ class Series {
34505
34567
  0 :
34506
34568
  symbol === 'rect' ?
34507
34569
  // Rectangle symbols need crisp edges, others don't
34508
- seriesMarkerOptions?.lineWidth || 0 :
34570
+ seriesMarkerOptions.lineWidth || 0 :
34509
34571
  1);
34510
34572
  }
34511
34573
  attribs.x = pos[0] - radius;
@@ -34536,8 +34598,9 @@ class Series {
34536
34598
  * The presentational attributes to be set on the point.
34537
34599
  */
34538
34600
  pointAttribs(point, state) {
34539
- const options = this.options, seriesMarkerOptions = options.marker, pointOptions = point?.options, pointMarkerOptions = pointOptions?.marker || {}, pointColorOption = pointOptions?.color, pointColor = point?.color, zoneColor = point?.zone?.color;
34540
- let seriesStateOptions, pointStateOptions, color = this.color, fill, stroke, strokeWidth = pick(pointMarkerOptions.lineWidth, seriesMarkerOptions.lineWidth), opacity = (point?.isNull && options.nullInteraction) ? 0 : 1;
34601
+ const options = this.options, seriesMarkerOptions = options.marker ?? {}, pointOptions = point?.options, pointMarkerOptions = pointOptions?.marker || {}, pointColorOption = pointOptions?.color, pointColor = point?.color, zoneColor = point?.zone?.color;
34602
+ let color = this.color, fill, stroke, strokeWidth = pointMarkerOptions.lineWidth ??
34603
+ seriesMarkerOptions.lineWidth, opacity = (point?.isNull && options.nullInteraction) ? 0 : 1;
34541
34604
  color = (pointColorOption ||
34542
34605
  zoneColor ||
34543
34606
  pointColor ||
@@ -34550,19 +34613,22 @@ class Series {
34550
34613
  color);
34551
34614
  // Handle hover and select states
34552
34615
  state = state || 'normal';
34553
- if (state) {
34554
- seriesStateOptions = (seriesMarkerOptions.states[state] || {});
34555
- pointStateOptions = (pointMarkerOptions.states &&
34556
- pointMarkerOptions.states[state]) || {};
34557
- strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
34558
- fill = (pointStateOptions.fillColor ||
34559
- seriesStateOptions.fillColor ||
34560
- fill);
34561
- stroke = (pointStateOptions.lineColor ||
34562
- seriesStateOptions.lineColor ||
34563
- stroke);
34564
- opacity = pick(pointStateOptions.opacity, seriesStateOptions.opacity, opacity);
34565
- }
34616
+ const seriesStateOptions = seriesMarkerOptions.states?.[state] || {};
34617
+ const pointStateOptions = pointMarkerOptions.states?.[state] || {};
34618
+ strokeWidth = pointStateOptions.lineWidth ??
34619
+ seriesStateOptions.lineWidth ??
34620
+ (strokeWidth || 0) + (pointStateOptions.lineWidthPlus ??
34621
+ seriesStateOptions.lineWidthPlus ??
34622
+ 0);
34623
+ fill = (pointStateOptions.fillColor ||
34624
+ seriesStateOptions.fillColor ||
34625
+ fill);
34626
+ stroke = (pointStateOptions.lineColor ||
34627
+ seriesStateOptions.lineColor ||
34628
+ stroke);
34629
+ opacity = (pointStateOptions.opacity ??
34630
+ seriesStateOptions.opacity ??
34631
+ opacity);
34566
34632
  return {
34567
34633
  'stroke': stroke,
34568
34634
  'stroke-width': strokeWidth,
@@ -34601,7 +34667,7 @@ class Series {
34601
34667
  // Destroy all points with their elements
34602
34668
  i = data.length;
34603
34669
  while (i--) {
34604
- data[i]?.destroy?.();
34670
+ data[i]?.destroy?.(true);
34605
34671
  }
34606
34672
  for (const zone of series.zones || []) {
34607
34673
  // Destroy SVGElement's but preserve primitive props (#20426)
@@ -34628,7 +34694,7 @@ class Series {
34628
34694
  erase(chart.series, series);
34629
34695
  chart.orderItems('series');
34630
34696
  // Clear all members
34631
- objectEach(series, function (val, prop) {
34697
+ objectEach(series, function (_val, prop) {
34632
34698
  if (!keepEventsForUpdate || prop !== 'hcEvents') {
34633
34699
  delete series[prop];
34634
34700
  }
@@ -34904,7 +34970,7 @@ class Series {
34904
34970
  * @emits Highcharts.Series#event:afterRender
34905
34971
  */
34906
34972
  render() {
34907
- const series = this, { chart, options, hasRendered } = series, animOptions = Series_animObject(options.animation), visibility = series.visible ?
34973
+ const series = this, { chart, options, hasRendered } = series, animOptions = animObject(options.animation), visibility = series.visible ?
34908
34974
  'inherit' : 'hidden', // #2597
34909
34975
  zIndex = options.zIndex, chartSeriesGroup = chart.seriesGroup;
34910
34976
  let animDuration = series.finishedAnimating ?
@@ -35006,7 +35072,7 @@ class Series {
35006
35072
  *
35007
35073
  * @function Highcharts.Series#searchPoint
35008
35074
  *
35009
- * @param {Highcharts.PointerEvent} e
35075
+ * @param {PointerEvent} e
35010
35076
  * The normalized pointer event
35011
35077
  * @param {boolean} [compareX=false]
35012
35078
  * Search only by the X value, not Y
@@ -35038,7 +35104,7 @@ class Series {
35038
35104
  // Prevent multiple k-d-trees from being built simultaneously
35039
35105
  // (#6235)
35040
35106
  this.buildingKdTree = true;
35041
- const series = this, seriesOptions = series.options, dimensions = seriesOptions.findNearestPointBy
35107
+ const series = this, seriesOptions = series.options, dimensions = (seriesOptions.findNearestPointBy ?? '')
35042
35108
  .indexOf('y') > -1 ? 2 : 1;
35043
35109
  /**
35044
35110
  * Internal function
@@ -35088,7 +35154,7 @@ class Series {
35088
35154
  * The point to search for.
35089
35155
  * @param {boolean} [compareX=false]
35090
35156
  * Search only by the X value, not Y.
35091
- * @param {Highcharts.PointerEvent} [e]
35157
+ * @param {PointerEvent} [e]
35092
35158
  * The normalized pointer event.
35093
35159
  * @param {Function} [suppliedPointEvaluator]
35094
35160
  * A custom point evaluator function.
@@ -35294,11 +35360,13 @@ class Series {
35294
35360
  * Both X and Y values given
35295
35361
  * @sample highcharts/members/series-addpoint-pie/
35296
35362
  * Append pie slice
35297
- * @sample stock/members/series-addpoint/
35363
+ * @sample highcharts/datatable/datamapping-dynamic
35364
+ * Alternative approach with data table
35365
+ * @sample {highstock} stock/members/series-addpoint/
35298
35366
  * Append 100 points in Highcharts Stock
35299
- * @sample stock/members/series-addpoint-shift/
35367
+ * @sample {highstock} stock/members/series-addpoint-shift/
35300
35368
  * Append and shift in Highcharts Stock
35301
- * @sample maps/members/series-addpoint/
35369
+ * @sample {highmaps} maps/members/series-addpoint/
35302
35370
  * Add a point in Highmaps
35303
35371
  *
35304
35372
  * @function Highcharts.Series#addPoint
@@ -35444,7 +35512,7 @@ class Series {
35444
35512
  chart.redraw();
35445
35513
  }
35446
35514
  };
35447
- Series_setAnimation(animation, chart);
35515
+ setAnimation(animation, chart);
35448
35516
  redraw = pick(redraw, true);
35449
35517
  // Fire the event with a default handler of removing the point
35450
35518
  if (point) {
@@ -35798,10 +35866,10 @@ class Series {
35798
35866
  * Determines if state should be inherited by points too.
35799
35867
  */
35800
35868
  setState(state, inherit) {
35801
- const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions } = options,
35869
+ const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
35802
35870
  // By default a quick animation to hover/inactive,
35803
35871
  // slower to un-hover
35804
- stateAnimation = pick(stateOptions?.[state || 'normal']?.animation, series.chart.options.chart.animation);
35872
+ stateAnimation = pick(stateOptions[state || 'normal']?.animation, series.chart.options.chart.animation);
35805
35873
  let { lineWidth, opacity } = options;
35806
35874
  state = state || '';
35807
35875
  if (series.state !== state) {
@@ -35828,9 +35896,13 @@ class Series {
35828
35896
  return;
35829
35897
  }
35830
35898
  if (state) {
35831
- lineWidth = (stateOptions[state].lineWidth ||
35832
- lineWidth + (stateOptions[state].lineWidthPlus || 0)); // #4035
35833
- opacity = pick(stateOptions[state].opacity, opacity);
35899
+ lineWidth = stateOptions[state]?.lineWidth ?? (!isNumber(lineWidth) ?
35900
+ void 0 :
35901
+ // Increase by lineWidthPlus only when lineWidth
35902
+ // is a number.
35903
+ (lineWidth +
35904
+ (stateOptions?.[state]?.lineWidthPlus || 0))); // #4035
35905
+ opacity = stateOptions[state]?.opacity ?? opacity;
35834
35906
  }
35835
35907
  if (graph && !graph.dashstyle && isNumber(lineWidth)) {
35836
35908
  // Animate the graph stroke-width
@@ -35874,11 +35946,7 @@ class Series {
35874
35946
  * Can be either `hover` or undefined to set to normal state.
35875
35947
  */
35876
35948
  setAllPointsToState(state) {
35877
- this.points.forEach(function (point) {
35878
- if (point.setState) {
35879
- point.setState(state);
35880
- }
35881
- });
35949
+ this.points.forEach((point) => point.setState?.(state));
35882
35950
  }
35883
35951
  /**
35884
35952
  * Show or hide the series.
@@ -36559,7 +36627,6 @@ Series_SeriesRegistry.series = Series;
36559
36627
  * */
36560
36628
 
36561
36629
 
36562
- const { animObject: Legend_animObject, setAnimation: Legend_setAnimation } = AnimationUtilities;
36563
36630
 
36564
36631
  const { registerEventOptions: Legend_registerEventOptions } = Core_Foundation;
36565
36632
 
@@ -37562,7 +37629,7 @@ class Legend {
37562
37629
  }
37563
37630
  if (currentPage > 0) {
37564
37631
  if (typeof animation !== 'undefined') {
37565
- Legend_setAnimation(animation, chart);
37632
+ setAnimation(animation, chart);
37566
37633
  }
37567
37634
  this.nav.attr({
37568
37635
  translateX: padding,
@@ -37619,7 +37686,7 @@ class Legend {
37619
37686
  this.currentPage = currentPage;
37620
37687
  this.positionCheckboxes();
37621
37688
  // Fire event after scroll animation is complete
37622
- const animOptions = Legend_animObject(pick(animation, chart.renderer.globalAnimation, true));
37689
+ const animOptions = animObject(pick(animation, chart.renderer.globalAnimation, true));
37623
37690
  syncTimeout(() => {
37624
37691
  fireEvent(this, 'afterScroll', { currentPage });
37625
37692
  }, animOptions.duration);
@@ -37829,7 +37896,7 @@ class Legend {
37829
37896
  */ /**
37830
37897
  * Related browser event.
37831
37898
  * @name Highcharts.LegendItemClickEventObject#browserEvent
37832
- * @type {Highcharts.PointerEvent}
37899
+ * @type {PointerEvent}
37833
37900
  */ /**
37834
37901
  * Prevent the default action of toggle the visibility of the series or point.
37835
37902
  * @name Highcharts.LegendItemClickEventObject#preventDefault
@@ -37880,7 +37947,7 @@ class Legend {
37880
37947
  */ /**
37881
37948
  * Related browser event.
37882
37949
  * @name Highcharts.PointLegendItemClickEventObject#browserEvent
37883
- * @type {Highcharts.PointerEvent}
37950
+ * @type {PointerEvent}
37884
37951
  */ /**
37885
37952
  * Whether the default action has been prevented (`true`) or not.
37886
37953
  * @name Highcharts.PointLegendItemClickEventObject#defaultPrevented
@@ -37936,7 +38003,7 @@ class Legend {
37936
38003
  */ /**
37937
38004
  * Related browser event.
37938
38005
  * @name Highcharts.SeriesLegendItemClickEventObject#browserEvent
37939
- * @type {Highcharts.PointerEvent}
38006
+ * @type {PointerEvent}
37940
38007
  */ /**
37941
38008
  * Whether the default action has been prevented (`true`) or not.
37942
38009
  * @name Highcharts.SeriesLegendItemClickEventObject#defaultPrevented
@@ -37970,7 +38037,6 @@ class Legend {
37970
38037
  * */
37971
38038
 
37972
38039
 
37973
- const { animate: Chart_animate, animObject: Chart_animObject, setAnimation: Chart_setAnimation } = AnimationUtilities;
37974
38040
 
37975
38041
 
37976
38042
  const { defaultOptions: Chart_defaultOptions } = Defaults;
@@ -38448,7 +38514,7 @@ class Chart {
38448
38514
  redraw(animation) {
38449
38515
  fireEvent(this, 'beforeRedraw');
38450
38516
  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 = [];
38451
- let hasDirtyStacks, hasStackedSeries, i, isDirtyBox = chart.isDirtyBox, redrawLegend = chart.isDirtyLegend, serie;
38517
+ let hasDirtyStacks, hasStackedSeries, i, redrawLegend = chart.isDirtyLegend, serie;
38452
38518
  renderer.rootFontSize = renderer.boxWrapper.getStyle('font-size');
38453
38519
  // Handle responsive rules, not only on resize (#6130)
38454
38520
  if (chart.setResponsive) {
@@ -38457,7 +38523,7 @@ class Chart {
38457
38523
  // Set the global animation. When chart.hasRendered is not true, the
38458
38524
  // redraw call comes from a responsive rule and animation should not
38459
38525
  // occur.
38460
- Chart_setAnimation(chart.hasRendered ? animation : false, chart);
38526
+ setAnimation(chart.hasRendered ? animation : false, chart);
38461
38527
  if (isHiddenChart) {
38462
38528
  chart.temporaryDisplay();
38463
38529
  }
@@ -38520,6 +38586,7 @@ class Chart {
38520
38586
  });
38521
38587
  chart.getMargins(); // #3098
38522
38588
  // If one axis is dirty, all axes must be redrawn (#792, #2169)
38589
+ let isDirtyBox = chart.isDirtyBox;
38523
38590
  axes.forEach(function (axis) {
38524
38591
  if (axis.isDirty) {
38525
38592
  isDirtyBox = true;
@@ -39055,11 +39122,8 @@ class Chart {
39055
39122
  const chartHeight = chart.chartHeight;
39056
39123
  let chartWidth = chart.chartWidth;
39057
39124
  // Allow table cells and flex-boxes to shrink without the chart
39058
- // blocking them out (#6427) but skip in styled mode so inline styles
39059
- // don't override user CSS on renderTo
39060
- if (!chart.styledMode) {
39061
- css(renderTo, { overflow: 'hidden' });
39062
- }
39125
+ // blocking them out (#6427)
39126
+ css(renderTo, { overflow: 'hidden' });
39063
39127
  // Create the inner container
39064
39128
  if (!chart.styledMode) {
39065
39129
  containerStyle = extend({
@@ -39116,7 +39180,7 @@ class Chart {
39116
39180
  // first ResizeObserver reflow
39117
39181
  chart.containerBox = chart.getContainerBox();
39118
39182
  // Set the initial animation from the options
39119
- Chart_setAnimation(void 0, chart);
39183
+ setAnimation(void 0, chart);
39120
39184
  chart.setClassName(optionsChart.className);
39121
39185
  if (!chart.styledMode) {
39122
39186
  chart.renderer.setStyle(optionsChart.style);
@@ -39311,7 +39375,7 @@ class Chart {
39311
39375
  // Handle the isResizing counter
39312
39376
  chart.isResizing += 1;
39313
39377
  // Set the animation for the current process
39314
- Chart_setAnimation(animation, chart);
39378
+ setAnimation(animation, chart);
39315
39379
  const globalAnimation = renderer.globalAnimation;
39316
39380
  chart.oldChartHeight = chart.chartHeight;
39317
39381
  chart.oldChartWidth = chart.chartWidth;
@@ -39330,7 +39394,7 @@ class Chart {
39330
39394
  // Resize the container with the global animation applied if enabled
39331
39395
  // (#2503)
39332
39396
  if (!chart.styledMode) {
39333
- (globalAnimation ? Chart_animate : css)(chart.container, {
39397
+ (globalAnimation ? animate : css)(chart.container, {
39334
39398
  width: `${chartWidth + scrollablePixelsX}px`,
39335
39399
  height: `${chartHeight + scrollablePixelsY}px`
39336
39400
  }, globalAnimation);
@@ -39356,7 +39420,7 @@ class Chart {
39356
39420
  if (chart) {
39357
39421
  fireEvent(chart, 'endResize');
39358
39422
  }
39359
- }, Chart_animObject(globalAnimation).duration);
39423
+ }, animObject(globalAnimation).duration);
39360
39424
  }
39361
39425
  // Handle resizing counter even if we've re-rendered or not (#20548).
39362
39426
  chart.isResizing -= 1;
@@ -40225,7 +40289,7 @@ class Chart {
40225
40289
  opacity: 0,
40226
40290
  display: ''
40227
40291
  });
40228
- Chart_animate(loadingDiv, {
40292
+ animate(loadingDiv, {
40229
40293
  opacity: loadingStyle.opacity ?? 0.5
40230
40294
  }, {
40231
40295
  duration: loadingOptions?.showDuration ?? 0
@@ -40253,7 +40317,7 @@ class Chart {
40253
40317
  loadingDiv.className =
40254
40318
  'highcharts-loading highcharts-loading-hidden';
40255
40319
  if (!this.styledMode) {
40256
- Chart_animate(loadingDiv, {
40320
+ animate(loadingDiv, {
40257
40321
  opacity: 0
40258
40322
  }, {
40259
40323
  duration: options.loading?.hideDuration ?? 100,
@@ -40285,6 +40349,9 @@ class Chart {
40285
40349
  * Note that when changing series data, `chart.update` may mutate the passed
40286
40350
  * data options.
40287
40351
  *
40352
+ * If the given options don't differ from the current chart options, the
40353
+ * update is skipped and the `afterUpdate` event is not emitted.
40354
+ *
40288
40355
  * See also the
40289
40356
  * [responsive option set](https://api.highcharts.com/highcharts/responsive).
40290
40357
  * Switching between `responsive.rules` basically runs `chart.update` under
@@ -40329,14 +40396,24 @@ class Chart {
40329
40396
  caption: 'setCaption'
40330
40397
  }, isResponsiveOptions = options.isResponsiveOptions, itemsForRemoval = [];
40331
40398
  let updateAllAxes, updateAllSeries, runSetSize;
40332
- fireEvent(chart, 'update', { options: options });
40399
+ options = diffObjects(options, chart.options);
40400
+ const e = {
40401
+ options,
40402
+ // Event handlers can turn this on or off to control further
40403
+ // processing
40404
+ hasChanged: !!Object.keys(options).length
40405
+ };
40406
+ fireEvent(chart, 'update', e);
40407
+ // If no changes are detected, stop further processing (#24805).
40408
+ if (!e.hasChanged) {
40409
+ return;
40410
+ }
40333
40411
  // If there are responsive rules in action, undo the responsive rules
40334
40412
  // before we apply the updated options and replay the responsive rules
40335
40413
  // on top from the chart.redraw function (#9617).
40336
40414
  if (!isResponsiveOptions) {
40337
40415
  chart.setResponsive(false, true);
40338
40416
  }
40339
- options = diffObjects(options, chart.options);
40340
40417
  chart.userOptions = merge(chart.userOptions, options);
40341
40418
  // If the top-level chart option is present, some special updates are
40342
40419
  // required
@@ -40515,7 +40592,7 @@ class Chart {
40515
40592
  (isNumber(newHeight) && newHeight !== chart.chartHeight)) {
40516
40593
  chart.setSize(newWidth, newHeight, animation);
40517
40594
  }
40518
- else if (pick(redraw, true)) {
40595
+ else if (redraw ?? true) {
40519
40596
  chart.redraw(animation);
40520
40597
  }
40521
40598
  fireEvent(chart, 'afterUpdate', {
@@ -40564,15 +40641,11 @@ class Chart {
40564
40641
  showResetZoom() {
40565
40642
  const chart = this, lang = chart.options.lang, btnOptions = chart.zooming.resetButton, theme = btnOptions.theme, alignTo = (btnOptions.relativeTo === 'chart' ||
40566
40643
  btnOptions.relativeTo === 'spacingBox' ?
40567
- null :
40644
+ void 0 :
40568
40645
  'plotBox');
40569
- /** @internal */
40570
- function zoomOut() {
40571
- chart.zoomOut();
40572
- }
40573
- fireEvent(this, 'beforeShowResetZoom', null, function () {
40646
+ fireEvent(this, 'beforeShowResetZoom', void 0, () => {
40574
40647
  chart.resetZoomButton = chart.renderer
40575
- .button(lang.resetZoom, null, null, zoomOut, theme)
40648
+ .button(lang.resetZoom, 0, 0, () => chart.zoomOut(), theme)
40576
40649
  .attr({
40577
40650
  align: btnOptions.position.align,
40578
40651
  title: lang.resetZoomTitle
@@ -40650,7 +40723,7 @@ class Chart {
40650
40723
  * @function Highcharts.Chart#transform
40651
40724
  */
40652
40725
  transform(params) {
40653
- const { axes = this.axes, event, from = {}, reset, selection, to = {}, trigger, allowResetButton = true } = params, { inverted, time } = this;
40726
+ const { axes = this.axes, event, from = {}, reset, selection, to = {}, trigger, allowResetButton = true } = params, { time } = this;
40654
40727
  // Remove active points for shared tooltip
40655
40728
  this.hoverPoints?.forEach((point) => point.setState());
40656
40729
  fireEvent(this, 'transform', params);
@@ -40661,10 +40734,10 @@ class Chart {
40661
40734
  scale = Math.abs(toLength) < 10 ?
40662
40735
  1 :
40663
40736
  toLength / fromLength, fromCenter = (from[xy] || 0) + fromLength / 2 - axis.pos, toCenter = (to[xy] ?? axis.pos) +
40664
- toLength / 2 - axis.pos, move = fromCenter - toCenter / scale, pointRangeDirection = (reversed && !inverted) ||
40665
- (!reversed && inverted) ?
40666
- -1 :
40667
- 1, minPx = move;
40737
+ toLength / 2 - axis.pos, move = fromCenter - toCenter / scale, pointRangeDirection = ((horiz && !reversed) ||
40738
+ (!horiz && reversed)) ?
40739
+ 1 :
40740
+ -1, minPx = move;
40668
40741
  // Zooming in multiple panes, zoom only in the pane that receives
40669
40742
  // the input
40670
40743
  if (!reset && (fromCenter < 0 || fromCenter > axis.len)) {
@@ -40673,17 +40746,11 @@ class Chart {
40673
40746
  // Adjust offset to ensure selection zoom triggers correctly
40674
40747
  // (#22945)
40675
40748
  // Set offset to 0 for ordinal axis only when zooming out, (#24545).
40676
- const offset = (axis.chart.polar || (axis.isOrdinal && scale <= 1)) ?
40749
+ const offset = (selection || axis.chart.polar ||
40750
+ (axis.isOrdinal && scale <= 1)) ?
40677
40751
  0 :
40678
40752
  (minPointOffset * pointRangeDirection || 0), eventMin = axis.toValue(minPx, true), eventMax = axis.toValue(minPx + len / scale, true);
40679
40753
  let newMin = eventMin + offset, newMax = eventMax - offset, allExtremes = axis.allExtremes;
40680
- if (selection) {
40681
- selection[axis.coll].push({
40682
- axis,
40683
- min: Math.min(eventMin, eventMax),
40684
- max: Math.max(eventMin, eventMax)
40685
- });
40686
- }
40687
40754
  if (newMin > newMax) {
40688
40755
  [newMin, newMax] = [newMax, newMin];
40689
40756
  }
@@ -40740,14 +40807,15 @@ class Chart {
40740
40807
  }
40741
40808
  // Set new extremes if they are actually new
40742
40809
  if (reset || (axis.series.length &&
40743
- (newMin !== min || newMax !== max) &&
40744
- newMin >= floor &&
40745
- newMax <= ceiling)) {
40810
+ (selection ||
40811
+ ((newMin !== min || newMax !== max) &&
40812
+ newMin >= floor &&
40813
+ newMax <= ceiling)))) {
40746
40814
  if (selection) {
40747
40815
  selection[axis.coll].push({
40748
40816
  axis,
40749
- min: newMin,
40750
- max: newMax
40817
+ min: Math.min(eventMin, eventMax),
40818
+ max: Math.max(eventMin, eventMax)
40751
40819
  });
40752
40820
  }
40753
40821
  else {
@@ -40755,11 +40823,14 @@ class Chart {
40755
40823
  // disallow certain axis padding options that would make
40756
40824
  // panning/zooming hard. Reset and redraw after the
40757
40825
  // operation has finished.
40758
- axis.isPanning = trigger !== 'zoom';
40826
+ axis.isPanning = trigger !== 'zoom' &&
40827
+ trigger !== 'drop';
40759
40828
  if (axis.isPanning && trigger !== 'mousewheel') {
40760
40829
  isAnyAxisPanning = true; // #21319
40761
40830
  }
40762
- axis.setExtremes(reset ? void 0 : newMin, reset ? void 0 : newMax, false, false, { move, trigger, scale });
40831
+ if (trigger !== 'drop') {
40832
+ axis.setExtremes(reset ? void 0 : newMin, reset ? void 0 : newMax, false, false, { move, trigger, scale });
40833
+ }
40763
40834
  if (!reset &&
40764
40835
  (newMin > floor || newMax < ceiling)) {
40765
40836
  displayButton = allowResetButton;
@@ -40790,7 +40861,8 @@ class Chart {
40790
40861
  });
40791
40862
  }
40792
40863
  else {
40793
- // Show or hide the Reset zoom button, but not while panning
40864
+ // Show or hide the Reset zoom button, but not while
40865
+ // panning.
40794
40866
  if (displayButton &&
40795
40867
  !isAnyAxisPanning &&
40796
40868
  !this.resetZoomButton) {
@@ -41032,7 +41104,6 @@ extend(Chart.prototype, {
41032
41104
  */
41033
41105
 
41034
41106
 
41035
- const { stop: ScrollablePlotArea_stop } = AnimationUtilities;
41036
41107
 
41037
41108
  const { composed: ScrollablePlotArea_composed } = Core_Globals;
41038
41109
 
@@ -41198,7 +41269,7 @@ class ScrollablePlotArea {
41198
41269
  this.moveFixedElements();
41199
41270
  }
41200
41271
  // Increase the size of the scrollable renderer and background
41201
- ScrollablePlotArea_stop(chart.container);
41272
+ stop(chart.container);
41202
41273
  css(container, {
41203
41274
  width: `${scrollableWidth}px`,
41204
41275
  height: `${scrollableHeight}px`
@@ -41355,6 +41426,13 @@ ScrollablePlotArea.fixedSelectors = [
41355
41426
  * vertical scrolling, depending on whether the `minWidth` or `minHeight`
41356
41427
  * option is set.
41357
41428
  *
41429
+ * **Note:** Because native browser scrollbars are used, they may
41430
+ * overlap with fixed chart elements such as credits or the chart
41431
+ * border. To avoid this collision, it is recommended to manually add
41432
+ * extra space to the corresponding side using `chart.spacingBottom`
41433
+ * (for horizontal scrollbars) or `chart.spacingRight` (for vertical
41434
+ * scrollbars).
41435
+ *
41358
41436
  * @sample highcharts/chart/scrollable-plotarea
41359
41437
  * Scrollable plot area
41360
41438
  * @sample highcharts/chart/scrollable-plotarea-vertical
@@ -41705,7 +41783,6 @@ class StackItem {
41705
41783
  * */
41706
41784
 
41707
41785
 
41708
- const { getDeferredAnimation: StackingAxis_getDeferredAnimation } = AnimationUtilities;
41709
41786
 
41710
41787
  const { series: { prototype: seriesProto } } = Series_SeriesRegistry;
41711
41788
 
@@ -42049,7 +42126,7 @@ class AxisAdditions {
42049
42126
  }
42050
42127
  /** @internal */
42051
42128
  renderStackTotals() {
42052
- 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 ||
42129
+ 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 ||
42053
42130
  renderer
42054
42131
  .g('stack-labels')
42055
42132
  .attr({
@@ -43802,6 +43879,8 @@ const ColumnSeriesDefaults = {
43802
43879
  * 0.25
43803
43880
  * @sample {highcharts} highcharts/plotoptions/column-pointpadding-none/
43804
43881
  * 0 for tightly packed columns
43882
+ * @sample {highcharts} highcharts/plotoptions/pie-pointpadding/
43883
+ * Pie point padding plugin
43805
43884
  *
43806
43885
  * @product highcharts highstock gantt
43807
43886
  */
@@ -44133,12 +44212,12 @@ const ColumnSeriesDefaults = {
44133
44212
  */
44134
44213
  /**
44135
44214
  * @excluding halo, lineWidth, lineWidthPlus, marker
44136
- * @product highcharts highstock
44215
+ * @product highcharts highstock gantt
44137
44216
  * @apioption series.column.states.hover
44138
44217
  */
44139
44218
  /**
44140
44219
  * @excluding halo, lineWidth, lineWidthPlus, marker
44141
- * @product highcharts highstock
44220
+ * @product highcharts highstock gantt
44142
44221
  * @apioption series.column.states.select
44143
44222
  */
44144
44223
  /**
@@ -44168,7 +44247,6 @@ const ColumnSeriesDefaults = {
44168
44247
  * */
44169
44248
 
44170
44249
 
44171
- const { animObject: ColumnSeries_animObject } = AnimationUtilities;
44172
44250
 
44173
44251
  const { parse: ColumnSeries_color } = Color_Color;
44174
44252
 
@@ -44239,7 +44317,7 @@ class ColumnSeries extends Series_Series {
44239
44317
  }
44240
44318
  else { // Run the animation
44241
44319
  translateStart = Number(series.group.attr(translateProp));
44242
- series.group.animate({ scaleY: 1 }, extend(ColumnSeries_animObject(series.options.animation), {
44320
+ series.group.animate({ scaleY: 1 }, extend(animObject(series.options.animation), {
44243
44321
  // Do the scale synchronously to ensure smooth
44244
44322
  // updating (#5030, #7228)
44245
44323
  step: function (val, fx) {
@@ -44575,11 +44653,11 @@ class ColumnSeries extends Series_Series {
44575
44653
  */
44576
44654
  pointAttribs(point, state) {
44577
44655
  const options = this.options, p2o = this.pointAttrToOptions || {}, strokeOption = p2o.stroke || 'borderColor', strokeWidthOption = p2o['stroke-width'] || 'borderWidth';
44578
- let stateOptions, zone, brightness, fill = (point && point.color) || this.color,
44656
+ let stateOptions, zone, brightness, fill = point?.color || this.color,
44579
44657
  // Set to fill when borderColor null:
44580
- stroke = ((point && point[strokeOption]) ||
44658
+ stroke = (point?.[strokeOption] ||
44581
44659
  options[strokeOption] ||
44582
- fill), dashstyle = (point && point.options.dashStyle) || options.dashStyle, strokeWidth = (point?.[strokeWidthOption]) ??
44660
+ fill), dashstyle = point?.options.dashStyle || options.dashStyle, strokeWidth = point?.[strokeWidthOption] ??
44583
44661
  options[strokeWidthOption] ??
44584
44662
  this[strokeWidthOption] ?? 1, opacity = (point?.isNull && options.nullInteraction) ?
44585
44663
  0 :
@@ -44600,7 +44678,7 @@ class ColumnSeries extends Series_Series {
44600
44678
  }
44601
44679
  // Select or hover states
44602
44680
  if (state && point) {
44603
- stateOptions = merge(options.states[state],
44681
+ stateOptions = merge(options.states?.[state],
44604
44682
  // #6401
44605
44683
  point.options.states?.[state] || {});
44606
44684
  brightness = stateOptions.brightness;
@@ -44610,14 +44688,13 @@ class ColumnSeries extends Series_Series {
44610
44688
  .brighten(stateOptions.brightness)
44611
44689
  .get()) || fill;
44612
44690
  stroke = stateOptions[strokeOption] || stroke;
44613
- strokeWidth =
44614
- stateOptions[strokeWidthOption] || strokeWidth;
44691
+ strokeWidth = stateOptions[strokeWidthOption] || strokeWidth;
44615
44692
  dashstyle = stateOptions.dashStyle || dashstyle;
44616
- opacity = pick(stateOptions.opacity, opacity);
44693
+ opacity = stateOptions.opacity ?? opacity;
44617
44694
  }
44618
44695
  const ret = {
44619
- fill: fill,
44620
- stroke: stroke,
44696
+ fill,
44697
+ stroke,
44621
44698
  'stroke-width': strokeWidth,
44622
44699
  opacity: point?.condemned ? 0 : opacity
44623
44700
  };
@@ -44658,6 +44735,7 @@ class ColumnSeries extends Series_Series {
44658
44735
  initialAttr = merge(shapeArgs, point.getOrigin(point.origin, shapeArgs));
44659
44736
  if (!styledMode) {
44660
44737
  initialAttr.opacity = 0;
44738
+ initialAttr['stroke-width'] = 0;
44661
44739
  }
44662
44740
  shouldUpdate = true;
44663
44741
  verb = 'animate';
@@ -44673,7 +44751,7 @@ class ColumnSeries extends Series_Series {
44673
44751
  }
44674
44752
  // Presentational
44675
44753
  if (!styledMode) {
44676
- graphic[verb](series.pointAttribs(point, (point.selected && 'select')))
44754
+ graphic[verb](series.pointAttribs(point, point.selected ? 'select' : ''))
44677
44755
  .shadow(point.allowShadow !== false && options.shadow);
44678
44756
  }
44679
44757
  graphic
@@ -44797,6 +44875,7 @@ Series_SeriesRegistry.registerSeriesType('column', ColumnSeries);
44797
44875
  * Default Export
44798
44876
  *
44799
44877
  * */
44878
+ /** @internal */
44800
44879
  /* harmony default export */ const Column_ColumnSeries = (ColumnSeries);
44801
44880
  /* *
44802
44881
  *
@@ -44833,7 +44912,6 @@ Series_SeriesRegistry.registerSeriesType('column', ColumnSeries);
44833
44912
  * */
44834
44913
 
44835
44914
 
44836
- const { getDeferredAnimation: DataLabel_getDeferredAnimation } = AnimationUtilities;
44837
44915
 
44838
44916
  const { format: DataLabel_format } = Core_Templating;
44839
44917
 
@@ -45150,7 +45228,7 @@ var DataLabel;
45150
45228
  'var(--highcharts-background-color)'), groupByIndex = [], seriesDlOptions = mergedDataLabelOptions(series);
45151
45229
  // Resolve the animation
45152
45230
  const { animation, defer } = seriesDlOptions[0], animationConfig = defer ?
45153
- DataLabel_getDeferredAnimation(chart, animation, series) :
45231
+ getDeferredAnimation(chart, animation, series) :
45154
45232
  { defer: 0, duration: 0 };
45155
45233
  fireEvent(this, 'drawDataLabels');
45156
45234
  if (series.hasDataLabels?.()) {
@@ -45916,6 +45994,8 @@ const ScatterSeriesDefaults = {
45916
45994
  * Arrays of datetime x and y
45917
45995
  * @sample {highcharts} highcharts/series/data-array-of-name-value/
45918
45996
  * Arrays of point.name and y
45997
+ * @sample {highcharts} highcharts/series-scatter/scatter-cluster/
45998
+ * Computed clusters
45919
45999
  * @sample {highcharts} highcharts/series/data-array-of-objects/
45920
46000
  * Config objects
45921
46001
  *
@@ -46064,7 +46144,7 @@ Series_SeriesRegistry.registerSeriesType('scatter', ScatterSeries);
46064
46144
  const { deg2rad: CenteredUtilities_deg2rad } = Core_Globals;
46065
46145
 
46066
46146
  /**
46067
- * @private
46147
+ * @internal
46068
46148
  */
46069
46149
  var CenteredUtilities;
46070
46150
  (function (CenteredUtilities) {
@@ -46082,7 +46162,7 @@ var CenteredUtilities;
46082
46162
  * Get the center of the pie based on the size and center options relative
46083
46163
  * to the plot area. Borrowed by the polar and gauge series types.
46084
46164
  *
46085
- * @private
46165
+ * @internal
46086
46166
  * @function Highcharts.CenteredSeriesMixin.getCenter
46087
46167
  */
46088
46168
  function getCenter() {
@@ -46127,7 +46207,7 @@ var CenteredUtilities;
46127
46207
  * GetStartAndEndRadians - Calculates start and end angles in radians.
46128
46208
  * Used in series types such as pie and sunburst.
46129
46209
  *
46130
- * @private
46210
+ * @internal
46131
46211
  * @function Highcharts.CenteredSeriesMixin.getStartAndEndRadians
46132
46212
  *
46133
46213
  * @param {number} [start]
@@ -46159,6 +46239,7 @@ var CenteredUtilities;
46159
46239
  * Default Export
46160
46240
  *
46161
46241
  * */
46242
+ /** @internal */
46162
46243
  /* harmony default export */ const Series_CenteredUtilities = (CenteredUtilities);
46163
46244
  /* *
46164
46245
  *
@@ -46166,7 +46247,7 @@ var CenteredUtilities;
46166
46247
  *
46167
46248
  * */
46168
46249
  /**
46169
- * @private
46250
+ * @internal
46170
46251
  * @interface Highcharts.RadianAngles
46171
46252
  */ /**
46172
46253
  * @name Highcharts.RadianAngles#end
@@ -46191,7 +46272,6 @@ var CenteredUtilities;
46191
46272
  * */
46192
46273
 
46193
46274
 
46194
- const { setAnimation: PiePoint_setAnimation } = AnimationUtilities;
46195
46275
 
46196
46276
 
46197
46277
  /* *
@@ -46299,7 +46379,7 @@ class PiePoint extends Series_Point {
46299
46379
  */
46300
46380
  slice(sliced, redraw, animation) {
46301
46381
  const series = this.series, chart = series.chart;
46302
- PiePoint_setAnimation(animation, chart);
46382
+ setAnimation(animation, chart);
46303
46383
  // Redraw is true by default
46304
46384
  redraw = pick(redraw, true);
46305
46385
  this.sliced = this.options.sliced = sliced ?? !this.sliced;
@@ -48437,7 +48517,7 @@ function BorderRadius_arc(x, y, w, h, options = {}) {
48437
48517
  if (options.open || !options.borderRadius) {
48438
48518
  return path;
48439
48519
  }
48440
- const alpha = end - start, sinHalfAlpha = Math.sin(alpha / 2), borderRadius = Math.max(Math.min(relativeLength(options.borderRadius || 0, r - innerR),
48520
+ const alpha = end - start, sinHalfAlpha = Math.sin(alpha / 2), borderRadius = Math.max(Math.min(relativeLength(borderRadiusObject(options.borderRadius).radius, r - innerR),
48441
48521
  // Cap to half the sector radius
48442
48522
  (r - innerR) / 2,
48443
48523
  // For smaller pie slices, cap to the largest small circle that
@@ -48463,7 +48543,7 @@ function seriesOnAfterColumnTranslate() {
48463
48543
  if (this.options.borderRadius &&
48464
48544
  !(this.chart.is3d && this.chart.is3d())) {
48465
48545
  const { options, yAxis } = this, percent = options.stacking === 'percent', seriesDefault = BorderRadius_defaultOptions.plotOptions?.[this.type]
48466
- ?.borderRadius, borderRadius = optionsToObject(options.borderRadius, isObject(seriesDefault) ? seriesDefault : {}), reversed = yAxis.options.reversed;
48546
+ ?.borderRadius, borderRadius = borderRadiusObject(options.borderRadius, isObject(seriesDefault) ? seriesDefault : {}), reversed = yAxis.options.reversed;
48467
48547
  for (const point of this.points) {
48468
48548
  const { shapeArgs } = point;
48469
48549
  if (point.shapeType === 'roundedRect' && shapeArgs) {
@@ -48535,8 +48615,12 @@ function composeBorderRadius(SeriesClass, SVGElementClass, SVGRendererClass) {
48535
48615
  symbols.roundedRect = BorderRadius_roundedRect;
48536
48616
  }
48537
48617
  }
48538
- /** @internal */
48539
- function optionsToObject(options, seriesBROptions) {
48618
+ /**
48619
+ * Utility function to get the full border radius options object, from a simple
48620
+ * number or a partial options object.
48621
+ * @internal
48622
+ */
48623
+ function borderRadiusObject(options, seriesBROptions) {
48540
48624
  if (!isObject(options)) {
48541
48625
  options = { radius: options || 0 };
48542
48626
  }
@@ -48544,7 +48628,7 @@ function optionsToObject(options, seriesBROptions) {
48544
48628
  }
48545
48629
  /** @internal */
48546
48630
  function pieSeriesOnAfterTranslate() {
48547
- const borderRadius = optionsToObject(this.options.borderRadius);
48631
+ const borderRadius = borderRadiusObject(this.options.borderRadius);
48548
48632
  for (const point of this.points) {
48549
48633
  const shapeArgs = point.shapeArgs;
48550
48634
  if (shapeArgs) {
@@ -48663,7 +48747,7 @@ function BorderRadius_roundedRect(x, y, width, height, options = {}) {
48663
48747
  * Column and pie with rounded border
48664
48748
  *
48665
48749
  * @name Highcharts.BorderRadiusOptionsObject#radius
48666
- * @type {string|number}
48750
+ * @type {string|number|undefined}
48667
48751
  */ /**
48668
48752
  * The scope of the rounding for column charts or plot bands. In a stacked
48669
48753
  * column chart, the value `point` means each single point will get rounded
@@ -48678,8 +48762,7 @@ function BorderRadius_roundedRect(x, y, width, height, options = {}) {
48678
48762
  * Rounded columns
48679
48763
  *
48680
48764
  * @name Highcharts.BorderRadiusOptionsObject#scope
48681
- * @validvalue ["individual", "point", "stack"]
48682
- * @type {string}
48765
+ * @type {"individual"|"point"|"stack"|undefined}
48683
48766
  */ /**
48684
48767
  * For column charts, where in the point or stack to apply rounding. The `end`
48685
48768
  * value means only those corners at the point value will be rounded, leaving
@@ -48690,8 +48773,7 @@ function BorderRadius_roundedRect(x, y, width, height, options = {}) {
48690
48773
  * Rounding on all corners
48691
48774
  *
48692
48775
  * @name Highcharts.BorderRadiusOptionsObject#where
48693
- * @validvalue ["all", "end"]
48694
- * @type {string}
48776
+ * @type {"all"|"end"|undefined}
48695
48777
  * @default end
48696
48778
  */
48697
48779
  (''); // Keeps doclets above in JS file
@@ -48967,7 +49049,7 @@ var Responsive;
48967
49049
  ;// ./code/es-modules/masters/highcharts.src.js
48968
49050
  // SPDX-License-Identifier: LicenseRef-Highcharts
48969
49051
  /**
48970
- * @license Highcharts JS v13.0.0 (2026-06-11)
49052
+ * @license Highcharts JS v13.0.1 (2026-08-17)
48971
49053
  * @module highcharts/highcharts
48972
49054
  *
48973
49055
  * (c) 2009-2026 Highsoft AS
@@ -49048,8 +49130,8 @@ G.Time = Core_Time;
49048
49130
  G.Tooltip = Core_Tooltip;
49049
49131
  // Utilities
49050
49132
  G.addEvent = addEvent;
49051
- G.animObject = AnimationUtilities.animObject;
49052
- G.animate = AnimationUtilities.animate;
49133
+ G.animObject = animObject;
49134
+ G.animate = animate;
49053
49135
  G.arrayMax = arrayMax;
49054
49136
  G.arrayMin = arrayMin;
49055
49137
  G.attr = attr;
@@ -49076,7 +49158,7 @@ G.fireEvent = fireEvent;
49076
49158
  G.format = Core_Templating.format;
49077
49159
  G.getAlignFactor = getAlignFactor;
49078
49160
  G.getClosestDistance = getClosestDistance;
49079
- G.getDeferredAnimation = AnimationUtilities.getDeferredAnimation;
49161
+ G.getDeferredAnimation = getDeferredAnimation;
49080
49162
  G.getMagnitude = getMagnitude;
49081
49163
  G.getNestedProperty = getNestedProperty;
49082
49164
  G.getOptions = Defaults.getOptions;
@@ -49103,11 +49185,11 @@ G.relativeLength = relativeLength;
49103
49185
  G.removeEvent = removeEvent;
49104
49186
  G.replaceNested = replaceNested;
49105
49187
  G.seriesType = Series_SeriesRegistry.seriesType;
49106
- G.setAnimation = AnimationUtilities.setAnimation;
49188
+ G.setAnimation = setAnimation;
49107
49189
  G.setOptions = Defaults.setOptions;
49108
49190
  G.splat = splat;
49109
49191
  G.stableSort = stableSort;
49110
- G.stop = AnimationUtilities.stop;
49192
+ G.stop = stop;
49111
49193
  G.syncTimeout = syncTimeout;
49112
49194
  G.time = Defaults.defaultTime;
49113
49195
  G.ucfirst = ucfirst;
@@ -49659,7 +49741,7 @@ const NavigatorDefaults = {
49659
49741
  *
49660
49742
  * @type {Highcharts.ColorType}
49661
49743
  */
49662
- maskFill: 'color-mix(var(--highcharts-highlight-color-60) 30%, transparent)',
49744
+ maskFill: 'color-mix(in srgb, var(--highcharts-highlight-color-60) 30%, transparent)', // eslint-disable-line max-len
49663
49745
  /**
49664
49746
  * The color of the line marking the currently zoomed area in the
49665
49747
  * navigator.
@@ -49798,11 +49880,18 @@ const NavigatorDefaults = {
49798
49880
  id: 'highcharts-navigator-series',
49799
49881
  className: 'highcharts-navigator-series',
49800
49882
  /**
49801
- * Sets the fill color of the navigator series.
49883
+ * Sets the color of the navigator series.
49802
49884
  *
49803
49885
  * @type {Highcharts.ColorType}
49804
49886
  * @apioption navigator.series.color
49805
49887
  */
49888
+ /**
49889
+ * Sets the fill color of the navigator series. Applies to series
49890
+ * types with a filled area, like the default `areaspline`.
49891
+ *
49892
+ * @type {Highcharts.ColorType}
49893
+ * @apioption navigator.series.fillColor
49894
+ */
49806
49895
  /**
49807
49896
  * Line color for the navigator series. Allows setting the color
49808
49897
  * while disallowing the default candlestick setting.
@@ -50002,6 +50091,7 @@ const NavigatorDefaults = {
50002
50091
 
50003
50092
 
50004
50093
 
50094
+
50005
50095
  /* *
50006
50096
  *
50007
50097
  * Constants
@@ -50012,7 +50102,7 @@ const NavigatorDefaults = {
50012
50102
  * @internal
50013
50103
  */
50014
50104
  function navigatorHandle(_x, _y, width, height, options = {}) {
50015
- const halfWidth = options.width ? options.width / 2 : width, markerPosition = 1.5, r = relativeLength(options.borderRadius || 0, Math.min(halfWidth * 2, height));
50105
+ const halfWidth = options.width ? options.width / 2 : width, markerPosition = 1.5, r = relativeLength(borderRadiusObject(options.borderRadius).radius, Math.min(halfWidth * 2, height));
50016
50106
  height = options.height || height;
50017
50107
  return [
50018
50108
  ['M', -markerPosition, height / 2 - 3.5],
@@ -52942,7 +53032,7 @@ class StandaloneNavigator {
52942
53032
  if (!(axis instanceof Axis_Axis)) {
52943
53033
  return;
52944
53034
  }
52945
- const { min, max } = this.navigator.xAxis, removeEventCallbacks = [];
53035
+ const navigator = this.navigator, { min, max } = navigator.xAxis, removeEventCallbacks = [];
52946
53036
  if (twoWay) {
52947
53037
  const removeSetExtremesEvent = addEvent(axis, 'setExtremes', (e) => {
52948
53038
  if (e.trigger === 'pan' ||
@@ -52955,7 +53045,7 @@ class StandaloneNavigator {
52955
53045
  });
52956
53046
  removeEventCallbacks.push(removeSetExtremesEvent);
52957
53047
  }
52958
- const removeSetRangeEvent = addEvent(this.navigator, 'setRange', (e) => {
53048
+ const removeSetRangeEvent = addEvent(navigator, 'setRange', (e) => {
52959
53049
  axis.setExtremes(e.min, e.max, e.redraw, e.animation);
52960
53050
  });
52961
53051
  removeEventCallbacks.push(removeSetRangeEvent);
@@ -52964,6 +53054,13 @@ class StandaloneNavigator {
52964
53054
  })[0];
52965
53055
  if (!boundAxis) {
52966
53056
  boundAxis = { axis, callbacks: [] };
53057
+ // A navigator bound to a yAxis defines the full range the axis
53058
+ // should cover. Stash the axis' own bounds before overriding them,
53059
+ // so `unbind` can restore them, #24716
53060
+ if (axis.coll === 'yAxis') {
53061
+ boundAxis.oldMin = axis.options.min ?? axis.min;
53062
+ boundAxis.oldMax = axis.options.max ?? axis.max;
53063
+ }
52967
53064
  this.boundAxes.push(boundAxis);
52968
53065
  }
52969
53066
  boundAxis.callbacks = removeEventCallbacks;
@@ -52973,6 +53070,12 @@ class StandaloneNavigator {
52973
53070
  nav.addSeries(series.options);
52974
53071
  }
52975
53072
  });
53073
+ // Bind a yAxis to the navigator's full range so vertical panning isn't
53074
+ // capped at the series' data extremes, #24716
53075
+ if (axis.coll === 'yAxis') {
53076
+ const { dataMin, dataMax } = navigator.xAxis.getExtremes();
53077
+ axis.update({ min: dataMin, max: dataMax }, false);
53078
+ }
52976
53079
  // Set extremes to match the navigator's extremes
52977
53080
  axis.setExtremes(min, max);
52978
53081
  // Unbind the axis before it's destroyed
@@ -52994,12 +53097,15 @@ class StandaloneNavigator {
52994
53097
  * Passing a Chart object unbinds the first X axis of the chart,
52995
53098
  * an Axis object unbinds that specific axis,
52996
53099
  * and undefined unbinds all axes bound to the navigator.
53100
+ * @param {boolean} restoreExtremes
53101
+ * Whether to restore the axis' original min/max that were
53102
+ * overridden when binding a yAxis.
52997
53103
  */
52998
- unbind(axisOrChart) {
53104
+ unbind(axisOrChart, restoreExtremes) {
52999
53105
  // If no axis or chart is provided, unbind all bound axes
53000
53106
  if (!axisOrChart) {
53001
- this.boundAxes.forEach(({ callbacks }) => {
53002
- callbacks.forEach((removeCallback) => removeCallback());
53107
+ this.boundAxes.forEach((boundAxis) => {
53108
+ this.releaseAxis(boundAxis, restoreExtremes);
53003
53109
  });
53004
53110
  this.boundAxes.length = 0;
53005
53111
  return;
@@ -53009,20 +53115,45 @@ class StandaloneNavigator {
53009
53115
  axisOrChart.xAxis[0];
53010
53116
  for (let i = this.boundAxes.length - 1; i >= 0; i--) {
53011
53117
  if (this.boundAxes[i].axis === axis) {
53012
- this.boundAxes[i].callbacks.forEach((callback) => callback());
53118
+ this.releaseAxis(this.boundAxes[i], restoreExtremes);
53013
53119
  this.boundAxes.splice(i, 1);
53014
53120
  }
53015
53121
  }
53016
53122
  }
53123
+ /**
53124
+ * Disconnect a bound axis' events and restore the axis' own bounds that
53125
+ * were overridden when binding a yAxis.
53126
+ *
53127
+ * @internal
53128
+ *
53129
+ * @param {BoundAxis} boundAxis
53130
+ * The bound axis entry to release.
53131
+ * @param {boolean} [restoreExtremes=false]
53132
+ * Whether to restore the axis' original min/max that were
53133
+ * overridden when binding a yAxis.
53134
+ */
53135
+ releaseAxis(boundAxis, restoreExtremes = false) {
53136
+ // Disconnect events
53137
+ boundAxis.callbacks.forEach((removeCallback) => removeCallback());
53138
+ // Restore the axis' original min/max that were overridden in `bind`
53139
+ if (boundAxis.axis.coll === 'yAxis' && restoreExtremes) {
53140
+ const min = boundAxis.oldMin ?? void 0, max = boundAxis.oldMax ?? void 0;
53141
+ boundAxis.axis.update({ min, max }, false);
53142
+ boundAxis.axis.setExtremes(min, max);
53143
+ }
53144
+ }
53017
53145
  /**
53018
53146
  * Destroys allocated standalone navigator elements.
53019
53147
  *
53020
53148
  * @function Highcharts.StandaloneNavigator#destroy
53149
+ *
53150
+ * @param {boolean} restoreExtremes
53151
+ * Whether to restore the axis' original min/max that were
53152
+ * overridden when binding a yAxis.
53021
53153
  */
53022
- destroy() {
53023
- // Disconnect events
53024
- this.boundAxes.forEach(({ callbacks }) => {
53025
- callbacks.forEach((removeCallback) => removeCallback());
53154
+ destroy(restoreExtremes) {
53155
+ this.boundAxes.forEach((boundAxis) => {
53156
+ this.releaseAxis(boundAxis, restoreExtremes);
53026
53157
  });
53027
53158
  this.boundAxes.length = 0;
53028
53159
  this.navigator.destroy();
@@ -53169,9 +53300,10 @@ class StandaloneNavigator {
53169
53300
  ''; // Detach doclets above
53170
53301
 
53171
53302
  ;// ./code/es-modules/masters/modules/navigator.src.js
53303
+ /* unused harmony import specifier */ var Highcharts;
53172
53304
  // SPDX-License-Identifier: LicenseRef-Highcharts
53173
53305
  /**
53174
- * @license Highcharts JS v13.0.0 (2026-06-11)
53306
+ * @license Highcharts JS v13.0.1 (2026-08-17)
53175
53307
  * @module highcharts/modules/navigator
53176
53308
  * @requires highcharts
53177
53309
  *