highcharts 13.0.1 → 13.0.2

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 (915) hide show
  1. package/bower.json +2 -3
  2. package/es-modules/Accessibility/A11yI18n.js +4 -4
  3. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
  4. package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
  5. package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
  6. package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
  7. package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
  8. package/es-modules/Accessibility/FocusBorder.js +2 -2
  9. package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
  10. package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
  11. package/es-modules/Core/Axis/Axis.js +48 -57
  12. package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
  13. package/es-modules/Core/Axis/BrokenAxis.js +6 -5
  14. package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
  15. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
  16. package/es-modules/Core/Axis/GridAxis.js +4 -4
  17. package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
  18. package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
  19. package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
  20. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
  21. package/es-modules/Core/Axis/RadialAxis.js +15 -9
  22. package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
  23. package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
  24. package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
  25. package/es-modules/Core/Axis/Tick.js +10 -11
  26. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
  27. package/es-modules/Core/Chart/Chart.js +14 -14
  28. package/es-modules/Core/Chart/Chart3D.js +3 -3
  29. package/es-modules/Core/Chart/ChartDefaults.js +23 -0
  30. package/es-modules/Core/Chart/MapChart.js +7 -5
  31. package/es-modules/Core/Chart/StockChart.js +15 -11
  32. package/es-modules/Core/Color/Color.js +3 -1
  33. package/es-modules/Core/Defaults.js +35 -0
  34. package/es-modules/Core/Globals.js +1 -1
  35. package/es-modules/Core/Legend/Legend.js +16 -12
  36. package/es-modules/Core/Legend/LegendSymbol.js +2 -2
  37. package/es-modules/Core/MSPointer.js +2 -2
  38. package/es-modules/Core/Math3D.js +6 -7
  39. package/es-modules/Core/Pointer.js +9 -9
  40. package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
  41. package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
  42. package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
  43. package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
  44. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
  45. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
  46. package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
  47. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  48. package/es-modules/Core/Responsive.js +7 -5
  49. package/es-modules/Core/Series/DataLabel.js +8 -6
  50. package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
  51. package/es-modules/Core/Series/Point.js +3 -3
  52. package/es-modules/Core/Series/Series.js +37 -21
  53. package/es-modules/Core/Series/Series3D.js +2 -2
  54. package/es-modules/Core/Templating.js +2 -2
  55. package/es-modules/Core/Tooltip.js +11 -7
  56. package/es-modules/Core/Utilities.js +4 -3
  57. package/es-modules/Data/Connectors/DataConnector.js +2 -2
  58. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
  59. package/es-modules/Data/DataTable.js +17 -0
  60. package/es-modules/Extensions/Annotations/Annotation.js +4 -4
  61. package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
  62. package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
  63. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
  64. package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
  65. package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
  66. package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
  67. package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
  68. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
  69. package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
  70. package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
  71. package/es-modules/Extensions/Boost/BoostChart.js +11 -4
  72. package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
  73. package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
  74. package/es-modules/Extensions/Boost/WGLShader.js +3 -3
  75. package/es-modules/Extensions/BoostCanvas.js +2 -2
  76. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
  77. package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
  78. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
  79. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
  80. package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
  81. package/es-modules/Extensions/ExportData/ExportData.js +17 -16
  82. package/es-modules/Extensions/Exporting/Exporting.js +7 -7
  83. package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
  84. package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
  85. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
  86. package/es-modules/Extensions/PatternFill.js +7 -5
  87. package/es-modules/Extensions/PriceIndication.js +5 -4
  88. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
  89. package/es-modules/Extensions/Sonification/MIDI.js +2 -3
  90. package/es-modules/Extensions/Sonification/Sonification.js +2 -2
  91. package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
  92. package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
  93. package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
  94. package/es-modules/Gantt/Legacy.js +2 -2
  95. package/es-modules/Gantt/Pathfinder.js +3 -3
  96. package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
  97. package/es-modules/Gantt/Tree.js +1 -1
  98. package/es-modules/Maps/MapNavigation.js +4 -4
  99. package/es-modules/Maps/MapPointer.js +2 -2
  100. package/es-modules/Maps/MapView.js +2 -2
  101. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
  102. package/es-modules/Series/Area/AreaSeries.js +4 -5
  103. package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
  104. package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
  105. package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
  106. package/es-modules/Series/Bullet/BulletSeries.js +17 -10
  107. package/es-modules/Series/CenteredUtilities.js +7 -5
  108. package/es-modules/Series/Column/ColumnSeries.js +2 -2
  109. package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
  110. package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
  111. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
  112. package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
  113. package/es-modules/Series/DataModifyComposition.js +9 -7
  114. package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
  115. package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
  116. package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
  117. package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
  118. package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
  119. package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
  120. package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
  121. package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
  122. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
  123. package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
  124. package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
  125. package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
  126. package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
  127. package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
  128. package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
  129. package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
  130. package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
  131. package/es-modules/Series/InterpolationUtilities.js +5 -5
  132. package/es-modules/Series/Item/ItemPointOptions.js +14 -0
  133. package/es-modules/Series/Item/ItemSeries.js +18 -6
  134. package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
  135. package/es-modules/Series/Map/MapPoint.js +5 -3
  136. package/es-modules/Series/Map/MapSeries.js +5 -8
  137. package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
  138. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
  139. package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
  140. package/es-modules/Series/NodesComposition.js +9 -10
  141. package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
  142. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
  143. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
  144. package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
  145. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  146. package/es-modules/Series/Pie/PiePoint.js +2 -2
  147. package/es-modules/Series/Pie/PieSeries.js +3 -2
  148. package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
  149. package/es-modules/Series/PolarComposition.js +8 -7
  150. package/es-modules/Series/Sankey/SankeySeries.js +11 -5
  151. package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
  152. package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
  153. package/es-modules/Series/Spline/SplineSeries.js +5 -5
  154. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
  155. package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
  156. package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
  157. package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
  158. package/es-modules/Series/TreeUtilities.js +16 -7
  159. package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
  160. package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
  161. package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
  162. package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
  163. package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
  164. package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
  165. package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
  166. package/es-modules/Shared/TimeBase.js +8 -2
  167. package/es-modules/Shared/Utilities.js +9 -7
  168. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
  169. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
  170. package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
  171. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
  172. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
  173. package/es-modules/Stock/Navigator/Navigator.js +26 -26
  174. package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
  175. package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
  176. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
  177. package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
  178. package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
  179. package/es-modules/Stock/StockTools/StockTools.js +2 -2
  180. package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
  181. package/es-modules/masters/highcharts-3d.src.js +1 -1
  182. package/es-modules/masters/highcharts-autoload.src.js +1 -1
  183. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  184. package/es-modules/masters/highcharts-more.src.js +1 -1
  185. package/es-modules/masters/highcharts.src.js +7 -2
  186. package/es-modules/masters/highmaps.src.js +1 -1
  187. package/es-modules/masters/highstock.src.js +1 -1
  188. package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
  189. package/es-modules/masters/i18n/fr-FR.src.js +1 -1
  190. package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
  191. package/es-modules/masters/i18n/nb-NO.src.js +1 -1
  192. package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
  193. package/es-modules/masters/i18n/zh-CN.src.js +1 -1
  194. package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  195. package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  196. package/es-modules/masters/indicators/ao.src.js +1 -1
  197. package/es-modules/masters/indicators/apo.src.js +1 -1
  198. package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  199. package/es-modules/masters/indicators/aroon.src.js +1 -1
  200. package/es-modules/masters/indicators/atr.src.js +1 -1
  201. package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  202. package/es-modules/masters/indicators/cci.src.js +1 -1
  203. package/es-modules/masters/indicators/chaikin.src.js +1 -1
  204. package/es-modules/masters/indicators/cmf.src.js +1 -1
  205. package/es-modules/masters/indicators/cmo.src.js +1 -1
  206. package/es-modules/masters/indicators/dema.src.js +1 -1
  207. package/es-modules/masters/indicators/disparity-index.src.js +1 -1
  208. package/es-modules/masters/indicators/dmi.src.js +1 -1
  209. package/es-modules/masters/indicators/dpo.src.js +1 -1
  210. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  211. package/es-modules/masters/indicators/indicators-all.src.js +1 -1
  212. package/es-modules/masters/indicators/indicators.src.js +1 -1
  213. package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  214. package/es-modules/masters/indicators/klinger.src.js +1 -1
  215. package/es-modules/masters/indicators/macd.src.js +1 -1
  216. package/es-modules/masters/indicators/mfi.src.js +1 -1
  217. package/es-modules/masters/indicators/momentum.src.js +1 -1
  218. package/es-modules/masters/indicators/natr.src.js +1 -1
  219. package/es-modules/masters/indicators/obv.src.js +1 -1
  220. package/es-modules/masters/indicators/pivot-points.src.js +1 -1
  221. package/es-modules/masters/indicators/ppo.src.js +1 -1
  222. package/es-modules/masters/indicators/price-channel.src.js +1 -1
  223. package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  224. package/es-modules/masters/indicators/psar.src.js +1 -1
  225. package/es-modules/masters/indicators/regressions.src.js +1 -1
  226. package/es-modules/masters/indicators/roc.src.js +1 -1
  227. package/es-modules/masters/indicators/rsi.src.js +1 -1
  228. package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  229. package/es-modules/masters/indicators/stochastic.src.js +1 -1
  230. package/es-modules/masters/indicators/supertrend.src.js +1 -1
  231. package/es-modules/masters/indicators/tema.src.js +1 -1
  232. package/es-modules/masters/indicators/trendline.src.js +1 -1
  233. package/es-modules/masters/indicators/trix.src.js +1 -1
  234. package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  235. package/es-modules/masters/indicators/vwap.src.js +1 -1
  236. package/es-modules/masters/indicators/williams-r.src.js +1 -1
  237. package/es-modules/masters/indicators/wma.src.js +1 -1
  238. package/es-modules/masters/indicators/zigzag.src.js +1 -1
  239. package/es-modules/masters/modules/accessibility.src.js +1 -1
  240. package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  241. package/es-modules/masters/modules/annotations.src.js +1 -1
  242. package/es-modules/masters/modules/arc-diagram.src.js +1 -1
  243. package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  244. package/es-modules/masters/modules/boost-canvas.src.js +1 -1
  245. package/es-modules/masters/modules/boost.src.js +1 -1
  246. package/es-modules/masters/modules/broken-axis.src.js +1 -1
  247. package/es-modules/masters/modules/bullet.src.js +1 -1
  248. package/es-modules/masters/modules/coloraxis.src.js +1 -1
  249. package/es-modules/masters/modules/contour.src.js +1 -1
  250. package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  251. package/es-modules/masters/modules/cylinder.src.js +1 -1
  252. package/es-modules/masters/modules/data-sorting.src.js +1 -1
  253. package/es-modules/masters/modules/data-tools.src.js +1 -1
  254. package/es-modules/masters/modules/data.src.js +1 -1
  255. package/es-modules/masters/modules/datagrouping.src.js +1 -1
  256. package/es-modules/masters/modules/debugger.src.js +1 -1
  257. package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  258. package/es-modules/masters/modules/dotplot.src.js +1 -1
  259. package/es-modules/masters/modules/drag-panes.src.js +1 -1
  260. package/es-modules/masters/modules/draggable-points.src.js +1 -1
  261. package/es-modules/masters/modules/drilldown.src.js +1 -1
  262. package/es-modules/masters/modules/dumbbell.src.js +1 -1
  263. package/es-modules/masters/modules/export-data.src.js +1 -1
  264. package/es-modules/masters/modules/exporting.src.js +1 -1
  265. package/es-modules/masters/modules/flowmap.src.js +1 -1
  266. package/es-modules/masters/modules/full-screen.src.js +1 -1
  267. package/es-modules/masters/modules/funnel.src.js +1 -1
  268. package/es-modules/masters/modules/funnel3d.src.js +1 -1
  269. package/es-modules/masters/modules/gantt.src.js +1 -1
  270. package/es-modules/masters/modules/geoheatmap.src.js +1 -1
  271. package/es-modules/masters/modules/grid-axis.src.js +1 -1
  272. package/es-modules/masters/modules/heatmap.src.js +1 -1
  273. package/es-modules/masters/modules/heikinashi.src.js +1 -1
  274. package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  275. package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  276. package/es-modules/masters/modules/item-series.src.js +1 -1
  277. package/es-modules/masters/modules/lollipop.src.js +1 -1
  278. package/es-modules/masters/modules/map.src.js +1 -1
  279. package/es-modules/masters/modules/marker-clusters.src.js +1 -1
  280. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  281. package/es-modules/masters/modules/navigator.src.js +1 -1
  282. package/es-modules/masters/modules/networkgraph.src.js +1 -1
  283. package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  284. package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
  285. package/es-modules/masters/modules/offline-exporting.src.js +1 -1
  286. package/es-modules/masters/modules/organization.src.js +1 -1
  287. package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  288. package/es-modules/masters/modules/pareto.src.js +1 -1
  289. package/es-modules/masters/modules/pathfinder.src.js +1 -1
  290. package/es-modules/masters/modules/pattern-fill.src.js +1 -1
  291. package/es-modules/masters/modules/pictorial.src.js +1 -1
  292. package/es-modules/masters/modules/pointandfigure.src.js +1 -1
  293. package/es-modules/masters/modules/price-indicator.src.js +1 -1
  294. package/es-modules/masters/modules/pyramid3d.src.js +1 -1
  295. package/es-modules/masters/modules/renko.src.js +1 -1
  296. package/es-modules/masters/modules/sankey.src.js +1 -1
  297. package/es-modules/masters/modules/series-label.src.js +1 -1
  298. package/es-modules/masters/modules/series-on-point.src.js +1 -1
  299. package/es-modules/masters/modules/solid-gauge.src.js +1 -1
  300. package/es-modules/masters/modules/sonification.src.js +1 -1
  301. package/es-modules/masters/modules/static-scale.src.js +1 -1
  302. package/es-modules/masters/modules/stock-tools.src.js +1 -1
  303. package/es-modules/masters/modules/stock.src.js +1 -1
  304. package/es-modules/masters/modules/streamgraph.src.js +1 -1
  305. package/es-modules/masters/modules/sunburst.src.js +1 -1
  306. package/es-modules/masters/modules/textpath.src.js +1 -1
  307. package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  308. package/es-modules/masters/modules/tilemap.src.js +1 -1
  309. package/es-modules/masters/modules/timeline.src.js +1 -1
  310. package/es-modules/masters/modules/treegraph.src.js +1 -1
  311. package/es-modules/masters/modules/treegrid.src.js +1 -1
  312. package/es-modules/masters/modules/treemap.src.js +1 -1
  313. package/es-modules/masters/modules/variable-pie.src.js +1 -1
  314. package/es-modules/masters/modules/variwide.src.js +1 -1
  315. package/es-modules/masters/modules/vector.src.js +1 -1
  316. package/es-modules/masters/modules/venn.src.js +1 -1
  317. package/es-modules/masters/modules/windbarb.src.js +1 -1
  318. package/es-modules/masters/modules/wordcloud.src.js +1 -1
  319. package/es-modules/masters/modules/xrange.src.js +1 -1
  320. package/es-modules/masters/standalone-navigator.src.js +1 -1
  321. package/es-modules/masters/themes/adaptive.src.js +1 -1
  322. package/es-modules/masters/themes/avocado.src.js +1 -1
  323. package/es-modules/masters/themes/dark-unica.src.js +1 -1
  324. package/es-modules/masters/themes/grid-light.src.js +1 -1
  325. package/es-modules/masters/themes/high-contrast.src.js +1 -1
  326. package/es-modules/masters/themes/sand-signika.src.js +1 -1
  327. package/es-modules/masters/themes/sunset.src.js +1 -1
  328. package/es-modules/tsconfig.tsbuildinfo +1 -1
  329. package/esm/highcharts-3d.js +2 -2
  330. package/esm/highcharts-3d.src.js +40 -32
  331. package/esm/highcharts-autoload.js +1 -1
  332. package/esm/highcharts-autoload.src.js +1 -1
  333. package/esm/highcharts-gantt.js +1 -1
  334. package/esm/highcharts-gantt.src.js +1 -1
  335. package/esm/highcharts-more.js +2 -2
  336. package/esm/highcharts-more.src.js +90 -56
  337. package/esm/highcharts.js +4 -4
  338. package/esm/highcharts.src.js +312 -207
  339. package/esm/highmaps.js +1 -1
  340. package/esm/highmaps.src.js +1 -1
  341. package/esm/highstock.js +1 -1
  342. package/esm/highstock.src.js +1 -1
  343. package/esm/i18n/fr-FR.js +1 -1
  344. package/esm/i18n/fr-FR.src.js +1 -1
  345. package/esm/i18n/nb-NO.js +1 -1
  346. package/esm/i18n/nb-NO.src.js +1 -1
  347. package/esm/i18n/zh-CN.js +1 -1
  348. package/esm/i18n/zh-CN.src.js +1 -1
  349. package/esm/indicators/acceleration-bands.js +1 -1
  350. package/esm/indicators/acceleration-bands.src.js +1 -1
  351. package/esm/indicators/accumulation-distribution.js +1 -1
  352. package/esm/indicators/accumulation-distribution.src.js +1 -1
  353. package/esm/indicators/ao.js +1 -1
  354. package/esm/indicators/ao.src.js +1 -1
  355. package/esm/indicators/apo.js +1 -1
  356. package/esm/indicators/apo.src.js +1 -1
  357. package/esm/indicators/aroon-oscillator.js +1 -1
  358. package/esm/indicators/aroon-oscillator.src.js +1 -1
  359. package/esm/indicators/aroon.js +2 -2
  360. package/esm/indicators/aroon.src.js +3 -3
  361. package/esm/indicators/atr.js +1 -1
  362. package/esm/indicators/atr.src.js +1 -1
  363. package/esm/indicators/bollinger-bands.js +1 -1
  364. package/esm/indicators/bollinger-bands.src.js +1 -1
  365. package/esm/indicators/cci.js +1 -1
  366. package/esm/indicators/cci.src.js +1 -1
  367. package/esm/indicators/chaikin.js +1 -1
  368. package/esm/indicators/chaikin.src.js +1 -1
  369. package/esm/indicators/cmf.js +1 -1
  370. package/esm/indicators/cmf.src.js +1 -1
  371. package/esm/indicators/cmo.js +1 -1
  372. package/esm/indicators/cmo.src.js +1 -1
  373. package/esm/indicators/dema.js +1 -1
  374. package/esm/indicators/dema.src.js +1 -1
  375. package/esm/indicators/disparity-index.js +1 -1
  376. package/esm/indicators/disparity-index.src.js +1 -1
  377. package/esm/indicators/dmi.js +1 -1
  378. package/esm/indicators/dmi.src.js +1 -1
  379. package/esm/indicators/dpo.js +2 -2
  380. package/esm/indicators/dpo.src.js +4 -3
  381. package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
  382. package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
  383. package/esm/indicators/indicators-all.js +2 -2
  384. package/esm/indicators/indicators-all.src.js +8 -7
  385. package/esm/indicators/indicators.js +2 -2
  386. package/esm/indicators/indicators.src.js +2 -2
  387. package/esm/indicators/keltner-channels.js +1 -1
  388. package/esm/indicators/keltner-channels.src.js +1 -1
  389. package/esm/indicators/klinger.js +1 -1
  390. package/esm/indicators/klinger.src.js +1 -1
  391. package/esm/indicators/macd.js +1 -1
  392. package/esm/indicators/macd.src.js +1 -1
  393. package/esm/indicators/mfi.js +1 -1
  394. package/esm/indicators/mfi.src.js +1 -1
  395. package/esm/indicators/momentum.js +1 -1
  396. package/esm/indicators/momentum.src.js +1 -1
  397. package/esm/indicators/natr.js +1 -1
  398. package/esm/indicators/natr.src.js +1 -1
  399. package/esm/indicators/obv.js +1 -1
  400. package/esm/indicators/obv.src.js +1 -1
  401. package/esm/indicators/pivot-points.js +1 -1
  402. package/esm/indicators/pivot-points.src.js +1 -1
  403. package/esm/indicators/ppo.js +1 -1
  404. package/esm/indicators/ppo.src.js +1 -1
  405. package/esm/indicators/price-channel.js +1 -1
  406. package/esm/indicators/price-channel.src.js +1 -1
  407. package/esm/indicators/price-envelopes.js +1 -1
  408. package/esm/indicators/price-envelopes.src.js +1 -1
  409. package/esm/indicators/psar.js +1 -1
  410. package/esm/indicators/psar.src.js +1 -1
  411. package/esm/indicators/regressions.js +1 -1
  412. package/esm/indicators/regressions.src.js +1 -1
  413. package/esm/indicators/roc.js +1 -1
  414. package/esm/indicators/roc.src.js +1 -1
  415. package/esm/indicators/rsi.js +1 -1
  416. package/esm/indicators/rsi.src.js +2 -2
  417. package/esm/indicators/slow-stochastic.js +1 -1
  418. package/esm/indicators/slow-stochastic.src.js +1 -1
  419. package/esm/indicators/stochastic.js +1 -1
  420. package/esm/indicators/stochastic.src.js +1 -1
  421. package/esm/indicators/supertrend.js +1 -1
  422. package/esm/indicators/supertrend.src.js +1 -1
  423. package/esm/indicators/tema.js +1 -1
  424. package/esm/indicators/tema.src.js +1 -1
  425. package/esm/indicators/trendline.js +1 -1
  426. package/esm/indicators/trendline.src.js +1 -1
  427. package/esm/indicators/trix.js +1 -1
  428. package/esm/indicators/trix.src.js +1 -1
  429. package/esm/indicators/volume-by-price.js +1 -1
  430. package/esm/indicators/volume-by-price.src.js +1 -1
  431. package/esm/indicators/vwap.js +1 -1
  432. package/esm/indicators/vwap.src.js +1 -1
  433. package/esm/indicators/williams-r.js +1 -1
  434. package/esm/indicators/williams-r.src.js +1 -1
  435. package/esm/indicators/wma.js +1 -1
  436. package/esm/indicators/wma.src.js +1 -1
  437. package/esm/indicators/zigzag.js +1 -1
  438. package/esm/indicators/zigzag.src.js +1 -1
  439. package/esm/modules/accessibility.js +2 -2
  440. package/esm/modules/accessibility.src.js +69 -63
  441. package/esm/modules/annotations-advanced.js +3 -3
  442. package/esm/modules/annotations-advanced.src.js +25 -23
  443. package/esm/modules/annotations.js +3 -3
  444. package/esm/modules/annotations.src.js +21 -19
  445. package/esm/modules/arc-diagram.js +2 -2
  446. package/esm/modules/arc-diagram.src.js +16 -15
  447. package/esm/modules/arrow-symbols.js +1 -1
  448. package/esm/modules/arrow-symbols.src.js +1 -1
  449. package/esm/modules/boost-canvas.js +2 -2
  450. package/esm/modules/boost-canvas.src.js +29 -20
  451. package/esm/modules/boost.js +2 -2
  452. package/esm/modules/boost.src.js +28 -19
  453. package/esm/modules/broken-axis.js +2 -2
  454. package/esm/modules/broken-axis.src.js +6 -5
  455. package/esm/modules/bullet.js +2 -2
  456. package/esm/modules/bullet.src.js +17 -10
  457. package/esm/modules/coloraxis.js +2 -2
  458. package/esm/modules/coloraxis.src.js +18 -11
  459. package/esm/modules/contour.js +1 -1
  460. package/esm/modules/contour.src.js +1 -1
  461. package/esm/modules/current-date-indicator.js +1 -1
  462. package/esm/modules/current-date-indicator.src.js +1 -1
  463. package/esm/modules/cylinder.js +2 -2
  464. package/esm/modules/cylinder.src.js +9 -10
  465. package/esm/modules/data-sorting.js +1 -1
  466. package/esm/modules/data-sorting.src.js +1 -1
  467. package/esm/modules/data-tools.js +2 -2
  468. package/esm/modules/data-tools.src.js +20 -3
  469. package/esm/modules/data.js +1 -1
  470. package/esm/modules/data.src.js +1 -1
  471. package/esm/modules/datagrouping.js +2 -2
  472. package/esm/modules/datagrouping.src.js +6 -5
  473. package/esm/modules/debugger.js +1 -1
  474. package/esm/modules/debugger.src.js +1 -1
  475. package/esm/modules/dependency-wheel.js +1 -1
  476. package/esm/modules/dependency-wheel.src.js +1 -1
  477. package/esm/modules/dotplot.js +2 -2
  478. package/esm/modules/dotplot.src.js +3 -2
  479. package/esm/modules/drag-panes.js +1 -1
  480. package/esm/modules/drag-panes.src.js +1 -1
  481. package/esm/modules/draggable-points.js +2 -2
  482. package/esm/modules/draggable-points.src.js +2 -3
  483. package/esm/modules/drilldown.js +2 -2
  484. package/esm/modules/drilldown.src.js +5 -4
  485. package/esm/modules/dumbbell.js +2 -2
  486. package/esm/modules/dumbbell.src.js +37 -9
  487. package/esm/modules/export-data.js +2 -2
  488. package/esm/modules/export-data.src.js +17 -16
  489. package/esm/modules/exporting.js +2 -2
  490. package/esm/modules/exporting.src.js +7 -7
  491. package/esm/modules/flowmap.js +2 -2
  492. package/esm/modules/flowmap.src.js +21 -11
  493. package/esm/modules/full-screen.js +1 -1
  494. package/esm/modules/full-screen.src.js +1 -1
  495. package/esm/modules/funnel.js +2 -2
  496. package/esm/modules/funnel.src.js +2 -2
  497. package/esm/modules/funnel3d.js +2 -2
  498. package/esm/modules/funnel3d.src.js +14 -13
  499. package/esm/modules/gantt.js +2 -2
  500. package/esm/modules/gantt.src.js +93 -76
  501. package/esm/modules/geoheatmap.js +2 -2
  502. package/esm/modules/geoheatmap.src.js +8 -8
  503. package/esm/modules/grid-axis.js +2 -2
  504. package/esm/modules/grid-axis.src.js +4 -4
  505. package/esm/modules/heatmap.js +2 -2
  506. package/esm/modules/heatmap.src.js +22 -22
  507. package/esm/modules/heikinashi.js +1 -1
  508. package/esm/modules/heikinashi.src.js +1 -1
  509. package/esm/modules/histogram-bellcurve.js +1 -1
  510. package/esm/modules/histogram-bellcurve.src.js +15 -3
  511. package/esm/modules/hollowcandlestick.js +1 -1
  512. package/esm/modules/hollowcandlestick.src.js +1 -1
  513. package/esm/modules/item-series.js +2 -2
  514. package/esm/modules/item-series.src.js +18 -6
  515. package/esm/modules/lollipop.js +1 -1
  516. package/esm/modules/lollipop.src.js +1 -1
  517. package/esm/modules/map.js +2 -2
  518. package/esm/modules/map.src.js +65 -57
  519. package/esm/modules/marker-clusters.js +1 -1
  520. package/esm/modules/marker-clusters.src.js +1 -1
  521. package/esm/modules/mouse-wheel-zoom.js +2 -2
  522. package/esm/modules/mouse-wheel-zoom.src.js +3 -3
  523. package/esm/modules/navigator.js +2 -2
  524. package/esm/modules/navigator.src.js +47 -45
  525. package/esm/modules/networkgraph.js +2 -2
  526. package/esm/modules/networkgraph.src.js +31 -21
  527. package/esm/modules/no-data-to-display.js +1 -1
  528. package/esm/modules/no-data-to-display.src.js +1 -1
  529. package/esm/modules/non-cartesian-zoom.js +1 -1
  530. package/esm/modules/non-cartesian-zoom.src.js +1 -1
  531. package/esm/modules/offline-exporting.js +1 -1
  532. package/esm/modules/offline-exporting.src.js +1 -1
  533. package/esm/modules/organization.js +2 -2
  534. package/esm/modules/organization.src.js +3 -2
  535. package/esm/modules/parallel-coordinates.js +2 -2
  536. package/esm/modules/parallel-coordinates.src.js +2 -2
  537. package/esm/modules/pareto.js +1 -1
  538. package/esm/modules/pareto.src.js +1 -1
  539. package/esm/modules/pathfinder.js +2 -2
  540. package/esm/modules/pathfinder.src.js +7 -6
  541. package/esm/modules/pattern-fill.js +2 -2
  542. package/esm/modules/pattern-fill.src.js +7 -5
  543. package/esm/modules/pictorial.js +2 -2
  544. package/esm/modules/pictorial.src.js +10 -6
  545. package/esm/modules/pointandfigure.js +1 -1
  546. package/esm/modules/pointandfigure.src.js +1 -1
  547. package/esm/modules/price-indicator.js +2 -2
  548. package/esm/modules/price-indicator.src.js +5 -4
  549. package/esm/modules/pyramid3d.js +1 -1
  550. package/esm/modules/pyramid3d.src.js +1 -1
  551. package/esm/modules/renko.js +1 -1
  552. package/esm/modules/renko.src.js +1 -1
  553. package/esm/modules/sankey.js +2 -2
  554. package/esm/modules/sankey.src.js +34 -20
  555. package/esm/modules/series-label.js +2 -2
  556. package/esm/modules/series-label.src.js +7 -7
  557. package/esm/modules/series-on-point.js +1 -1
  558. package/esm/modules/series-on-point.src.js +1 -1
  559. package/esm/modules/solid-gauge.js +2 -2
  560. package/esm/modules/solid-gauge.src.js +2 -2
  561. package/esm/modules/sonification.js +2 -2
  562. package/esm/modules/sonification.src.js +19 -19
  563. package/esm/modules/static-scale.js +1 -1
  564. package/esm/modules/static-scale.src.js +1 -1
  565. package/esm/modules/stock-tools.js +3 -3
  566. package/esm/modules/stock-tools.src.js +15 -10
  567. package/esm/modules/stock.js +2 -2
  568. package/esm/modules/stock.src.js +90 -76
  569. package/esm/modules/streamgraph.js +1 -1
  570. package/esm/modules/streamgraph.src.js +1 -1
  571. package/esm/modules/sunburst.js +2 -2
  572. package/esm/modules/sunburst.src.js +41 -26
  573. package/esm/modules/textpath.js +1 -1
  574. package/esm/modules/textpath.src.js +1 -1
  575. package/esm/modules/tiledwebmap.js +2 -2
  576. package/esm/modules/tiledwebmap.src.js +8 -6
  577. package/esm/modules/tilemap.js +2 -2
  578. package/esm/modules/tilemap.src.js +3 -3
  579. package/esm/modules/timeline.js +2 -2
  580. package/esm/modules/timeline.src.js +5 -4
  581. package/esm/modules/treegraph.js +2 -2
  582. package/esm/modules/treegraph.src.js +17 -8
  583. package/esm/modules/treegrid.js +2 -2
  584. package/esm/modules/treegrid.src.js +28 -18
  585. package/esm/modules/treemap.js +2 -2
  586. package/esm/modules/treemap.src.js +35 -22
  587. package/esm/modules/variable-pie.js +2 -2
  588. package/esm/modules/variable-pie.src.js +6 -4
  589. package/esm/modules/variwide.js +2 -2
  590. package/esm/modules/variwide.src.js +2 -2
  591. package/esm/modules/vector.js +1 -1
  592. package/esm/modules/vector.src.js +1 -1
  593. package/esm/modules/venn.js +1 -1
  594. package/esm/modules/venn.src.js +1 -1
  595. package/esm/modules/windbarb.js +2 -2
  596. package/esm/modules/windbarb.src.js +2 -2
  597. package/esm/modules/wordcloud.js +1 -1
  598. package/esm/modules/wordcloud.src.js +1 -1
  599. package/esm/modules/xrange.js +1 -1
  600. package/esm/modules/xrange.src.js +1 -1
  601. package/esm/standalone-navigator.js +4 -4
  602. package/esm/standalone-navigator.src.js +355 -249
  603. package/esm/themes/adaptive.js +1 -1
  604. package/esm/themes/adaptive.src.js +1 -1
  605. package/esm/themes/avocado.js +1 -1
  606. package/esm/themes/avocado.src.js +1 -1
  607. package/esm/themes/dark-unica.js +1 -1
  608. package/esm/themes/dark-unica.src.js +1 -1
  609. package/esm/themes/grid-light.js +1 -1
  610. package/esm/themes/grid-light.src.js +1 -1
  611. package/esm/themes/high-contrast.js +1 -1
  612. package/esm/themes/high-contrast.src.js +1 -1
  613. package/esm/themes/sand-signika.js +1 -1
  614. package/esm/themes/sand-signika.src.js +1 -1
  615. package/esm/themes/sunset.js +1 -1
  616. package/esm/themes/sunset.src.js +1 -1
  617. package/highcharts-3d.js +2 -2
  618. package/highcharts-3d.src.js +40 -32
  619. package/highcharts-autoload.d.ts +8 -2
  620. package/highcharts-autoload.js +4 -4
  621. package/highcharts-autoload.src.d.ts +8 -2
  622. package/highcharts-autoload.src.js +313 -208
  623. package/highcharts-gantt.js +4 -4
  624. package/highcharts-gantt.src.js +404 -283
  625. package/highcharts-more.js +2 -2
  626. package/highcharts-more.src.js +90 -56
  627. package/highcharts.d.ts +61 -4
  628. package/highcharts.js +4 -4
  629. package/highcharts.src.d.ts +61 -4
  630. package/highcharts.src.js +312 -207
  631. package/highmaps.js +4 -4
  632. package/highmaps.src.js +390 -272
  633. package/highstock.js +4 -4
  634. package/highstock.src.js +413 -293
  635. package/i18n/fr-FR.js +1 -1
  636. package/i18n/fr-FR.src.js +1 -1
  637. package/i18n/nb-NO.js +1 -1
  638. package/i18n/nb-NO.src.js +1 -1
  639. package/i18n/zh-CN.js +1 -1
  640. package/i18n/zh-CN.src.js +1 -1
  641. package/indicators/acceleration-bands.js +1 -1
  642. package/indicators/acceleration-bands.src.js +1 -1
  643. package/indicators/accumulation-distribution.js +1 -1
  644. package/indicators/accumulation-distribution.src.js +1 -1
  645. package/indicators/ao.js +1 -1
  646. package/indicators/ao.src.js +1 -1
  647. package/indicators/apo.js +1 -1
  648. package/indicators/apo.src.js +1 -1
  649. package/indicators/aroon-oscillator.js +1 -1
  650. package/indicators/aroon-oscillator.src.js +1 -1
  651. package/indicators/aroon.js +2 -2
  652. package/indicators/aroon.src.js +3 -3
  653. package/indicators/atr.js +1 -1
  654. package/indicators/atr.src.js +1 -1
  655. package/indicators/bollinger-bands.js +1 -1
  656. package/indicators/bollinger-bands.src.js +1 -1
  657. package/indicators/cci.js +1 -1
  658. package/indicators/cci.src.js +1 -1
  659. package/indicators/chaikin.js +1 -1
  660. package/indicators/chaikin.src.js +1 -1
  661. package/indicators/cmf.js +1 -1
  662. package/indicators/cmf.src.js +1 -1
  663. package/indicators/cmo.js +1 -1
  664. package/indicators/cmo.src.js +1 -1
  665. package/indicators/dema.js +1 -1
  666. package/indicators/dema.src.js +1 -1
  667. package/indicators/disparity-index.js +1 -1
  668. package/indicators/disparity-index.src.js +1 -1
  669. package/indicators/dmi.js +1 -1
  670. package/indicators/dmi.src.js +1 -1
  671. package/indicators/dpo.js +2 -2
  672. package/indicators/dpo.src.js +4 -3
  673. package/indicators/ichimoku-kinko-hyo.js +1 -1
  674. package/indicators/ichimoku-kinko-hyo.src.js +1 -1
  675. package/indicators/indicators-all.js +2 -2
  676. package/indicators/indicators-all.src.js +8 -7
  677. package/indicators/indicators.js +2 -2
  678. package/indicators/indicators.src.js +2 -2
  679. package/indicators/keltner-channels.js +1 -1
  680. package/indicators/keltner-channels.src.js +1 -1
  681. package/indicators/klinger.js +1 -1
  682. package/indicators/klinger.src.js +1 -1
  683. package/indicators/macd.js +1 -1
  684. package/indicators/macd.src.js +1 -1
  685. package/indicators/mfi.js +1 -1
  686. package/indicators/mfi.src.js +1 -1
  687. package/indicators/momentum.js +1 -1
  688. package/indicators/momentum.src.js +1 -1
  689. package/indicators/natr.js +1 -1
  690. package/indicators/natr.src.js +1 -1
  691. package/indicators/obv.js +1 -1
  692. package/indicators/obv.src.js +1 -1
  693. package/indicators/pivot-points.js +1 -1
  694. package/indicators/pivot-points.src.js +1 -1
  695. package/indicators/ppo.js +1 -1
  696. package/indicators/ppo.src.js +1 -1
  697. package/indicators/price-channel.js +1 -1
  698. package/indicators/price-channel.src.js +1 -1
  699. package/indicators/price-envelopes.js +1 -1
  700. package/indicators/price-envelopes.src.js +1 -1
  701. package/indicators/psar.js +1 -1
  702. package/indicators/psar.src.js +1 -1
  703. package/indicators/regressions.js +1 -1
  704. package/indicators/regressions.src.js +1 -1
  705. package/indicators/roc.js +1 -1
  706. package/indicators/roc.src.js +1 -1
  707. package/indicators/rsi.js +1 -1
  708. package/indicators/rsi.src.js +2 -2
  709. package/indicators/slow-stochastic.js +1 -1
  710. package/indicators/slow-stochastic.src.js +1 -1
  711. package/indicators/stochastic.js +1 -1
  712. package/indicators/stochastic.src.js +1 -1
  713. package/indicators/supertrend.js +1 -1
  714. package/indicators/supertrend.src.js +1 -1
  715. package/indicators/tema.js +1 -1
  716. package/indicators/tema.src.js +1 -1
  717. package/indicators/trendline.js +1 -1
  718. package/indicators/trendline.src.js +1 -1
  719. package/indicators/trix.js +1 -1
  720. package/indicators/trix.src.js +1 -1
  721. package/indicators/volume-by-price.js +1 -1
  722. package/indicators/volume-by-price.src.js +1 -1
  723. package/indicators/vwap.js +1 -1
  724. package/indicators/vwap.src.js +1 -1
  725. package/indicators/williams-r.js +1 -1
  726. package/indicators/williams-r.src.js +1 -1
  727. package/indicators/wma.js +1 -1
  728. package/indicators/wma.src.js +1 -1
  729. package/indicators/zigzag.js +1 -1
  730. package/indicators/zigzag.src.js +1 -1
  731. package/modules/accessibility.js +2 -2
  732. package/modules/accessibility.src.js +69 -63
  733. package/modules/annotations-advanced.js +3 -3
  734. package/modules/annotations-advanced.src.js +25 -23
  735. package/modules/annotations.js +3 -3
  736. package/modules/annotations.src.js +21 -19
  737. package/modules/arc-diagram.js +2 -2
  738. package/modules/arc-diagram.src.js +16 -15
  739. package/modules/arrow-symbols.js +1 -1
  740. package/modules/arrow-symbols.src.js +1 -1
  741. package/modules/boost-canvas.js +2 -2
  742. package/modules/boost-canvas.src.js +29 -20
  743. package/modules/boost.js +2 -2
  744. package/modules/boost.src.js +28 -19
  745. package/modules/broken-axis.js +2 -2
  746. package/modules/broken-axis.src.js +6 -5
  747. package/modules/bullet.js +2 -2
  748. package/modules/bullet.src.js +17 -10
  749. package/modules/coloraxis.js +2 -2
  750. package/modules/coloraxis.src.js +18 -11
  751. package/modules/contour.js +4 -4
  752. package/modules/contour.src.js +19 -12
  753. package/modules/current-date-indicator.js +1 -1
  754. package/modules/current-date-indicator.src.js +1 -1
  755. package/modules/cylinder.js +2 -2
  756. package/modules/cylinder.src.js +9 -10
  757. package/modules/data-sorting.js +1 -1
  758. package/modules/data-sorting.src.js +1 -1
  759. package/modules/data-tools.js +2 -2
  760. package/modules/data-tools.src.js +20 -3
  761. package/modules/data.js +1 -1
  762. package/modules/data.src.js +1 -1
  763. package/modules/datagrouping.js +2 -2
  764. package/modules/datagrouping.src.js +6 -5
  765. package/modules/debugger.js +1 -1
  766. package/modules/debugger.src.js +1 -1
  767. package/modules/dependency-wheel.js +1 -1
  768. package/modules/dependency-wheel.src.js +1 -1
  769. package/modules/dotplot.js +2 -2
  770. package/modules/dotplot.src.js +3 -2
  771. package/modules/drag-panes.js +1 -1
  772. package/modules/drag-panes.src.js +1 -1
  773. package/modules/draggable-points.js +2 -2
  774. package/modules/draggable-points.src.js +2 -3
  775. package/modules/drilldown.js +2 -2
  776. package/modules/drilldown.src.js +5 -4
  777. package/modules/dumbbell.js +2 -2
  778. package/modules/dumbbell.src.js +37 -9
  779. package/modules/export-data.js +2 -2
  780. package/modules/export-data.src.js +17 -16
  781. package/modules/exporting.js +2 -2
  782. package/modules/exporting.src.js +7 -7
  783. package/modules/flowmap.js +2 -2
  784. package/modules/flowmap.src.js +21 -11
  785. package/modules/full-screen.js +1 -1
  786. package/modules/full-screen.src.js +1 -1
  787. package/modules/funnel.js +2 -2
  788. package/modules/funnel.src.js +2 -2
  789. package/modules/funnel3d.js +2 -2
  790. package/modules/funnel3d.src.js +14 -13
  791. package/modules/gantt.js +6 -6
  792. package/modules/gantt.src.js +96 -79
  793. package/modules/geoheatmap.d.ts +0 -12
  794. package/modules/geoheatmap.js +2 -2
  795. package/modules/geoheatmap.src.d.ts +0 -12
  796. package/modules/geoheatmap.src.js +8 -8
  797. package/modules/grid-axis.js +2 -2
  798. package/modules/grid-axis.src.js +4 -4
  799. package/modules/heatmap.d.ts +0 -12
  800. package/modules/heatmap.js +4 -4
  801. package/modules/heatmap.src.d.ts +0 -12
  802. package/modules/heatmap.src.js +40 -33
  803. package/modules/heikinashi.js +1 -1
  804. package/modules/heikinashi.src.js +1 -1
  805. package/modules/histogram-bellcurve.js +1 -1
  806. package/modules/histogram-bellcurve.src.js +15 -3
  807. package/modules/hollowcandlestick.js +1 -1
  808. package/modules/hollowcandlestick.src.js +1 -1
  809. package/modules/item-series.js +2 -2
  810. package/modules/item-series.src.js +18 -6
  811. package/modules/lollipop.js +1 -1
  812. package/modules/lollipop.src.js +1 -1
  813. package/modules/map.d.ts +0 -12
  814. package/modules/map.js +4 -4
  815. package/modules/map.src.d.ts +0 -12
  816. package/modules/map.src.js +83 -68
  817. package/modules/marker-clusters.js +1 -1
  818. package/modules/marker-clusters.src.js +1 -1
  819. package/modules/mouse-wheel-zoom.js +2 -2
  820. package/modules/mouse-wheel-zoom.src.js +3 -3
  821. package/modules/navigator.js +2 -2
  822. package/modules/navigator.src.js +47 -45
  823. package/modules/networkgraph.js +2 -2
  824. package/modules/networkgraph.src.js +31 -21
  825. package/modules/no-data-to-display.js +1 -1
  826. package/modules/no-data-to-display.src.js +1 -1
  827. package/modules/non-cartesian-zoom.js +1 -1
  828. package/modules/non-cartesian-zoom.src.js +1 -1
  829. package/modules/offline-exporting.js +1 -1
  830. package/modules/offline-exporting.src.js +1 -1
  831. package/modules/organization.js +2 -2
  832. package/modules/organization.src.js +3 -2
  833. package/modules/parallel-coordinates.js +2 -2
  834. package/modules/parallel-coordinates.src.js +2 -2
  835. package/modules/pareto.js +1 -1
  836. package/modules/pareto.src.js +1 -1
  837. package/modules/pathfinder.js +2 -2
  838. package/modules/pathfinder.src.js +7 -6
  839. package/modules/pattern-fill.js +2 -2
  840. package/modules/pattern-fill.src.js +7 -5
  841. package/modules/pictorial.js +2 -2
  842. package/modules/pictorial.src.js +10 -6
  843. package/modules/pointandfigure.js +1 -1
  844. package/modules/pointandfigure.src.js +1 -1
  845. package/modules/price-indicator.js +2 -2
  846. package/modules/price-indicator.src.js +5 -4
  847. package/modules/pyramid3d.js +1 -1
  848. package/modules/pyramid3d.src.js +1 -1
  849. package/modules/renko.js +1 -1
  850. package/modules/renko.src.js +1 -1
  851. package/modules/sankey.js +2 -2
  852. package/modules/sankey.src.js +34 -20
  853. package/modules/series-label.js +2 -2
  854. package/modules/series-label.src.js +7 -7
  855. package/modules/series-on-point.js +1 -1
  856. package/modules/series-on-point.src.js +1 -1
  857. package/modules/solid-gauge.js +2 -2
  858. package/modules/solid-gauge.src.js +2 -2
  859. package/modules/sonification.js +2 -2
  860. package/modules/sonification.src.js +19 -19
  861. package/modules/static-scale.js +1 -1
  862. package/modules/static-scale.src.js +1 -1
  863. package/modules/stock-tools.js +3 -3
  864. package/modules/stock-tools.src.js +15 -10
  865. package/modules/stock.js +6 -6
  866. package/modules/stock.src.js +105 -89
  867. package/modules/streamgraph.js +1 -1
  868. package/modules/streamgraph.src.js +1 -1
  869. package/modules/sunburst.js +2 -2
  870. package/modules/sunburst.src.js +41 -26
  871. package/modules/textpath.js +1 -1
  872. package/modules/textpath.src.js +1 -1
  873. package/modules/tiledwebmap.js +2 -2
  874. package/modules/tiledwebmap.src.js +8 -6
  875. package/modules/tilemap.js +2 -2
  876. package/modules/tilemap.src.js +3 -3
  877. package/modules/timeline.js +2 -2
  878. package/modules/timeline.src.js +5 -4
  879. package/modules/treegraph.js +2 -2
  880. package/modules/treegraph.src.js +17 -8
  881. package/modules/treegrid.js +2 -2
  882. package/modules/treegrid.src.js +28 -18
  883. package/modules/treemap.js +2 -2
  884. package/modules/treemap.src.js +35 -22
  885. package/modules/variable-pie.js +2 -2
  886. package/modules/variable-pie.src.js +6 -4
  887. package/modules/variwide.js +2 -2
  888. package/modules/variwide.src.js +2 -2
  889. package/modules/vector.js +1 -1
  890. package/modules/vector.src.js +1 -1
  891. package/modules/venn.js +1 -1
  892. package/modules/venn.src.js +1 -1
  893. package/modules/windbarb.js +2 -2
  894. package/modules/windbarb.src.js +2 -2
  895. package/modules/wordcloud.js +1 -1
  896. package/modules/wordcloud.src.js +1 -1
  897. package/modules/xrange.js +1 -1
  898. package/modules/xrange.src.js +1 -1
  899. package/package.json +2 -3
  900. package/standalone-navigator.js +4 -4
  901. package/standalone-navigator.src.js +355 -249
  902. package/themes/adaptive.js +1 -1
  903. package/themes/adaptive.src.js +1 -1
  904. package/themes/avocado.js +1 -1
  905. package/themes/avocado.src.js +1 -1
  906. package/themes/dark-unica.js +1 -1
  907. package/themes/dark-unica.src.js +1 -1
  908. package/themes/grid-light.js +1 -1
  909. package/themes/grid-light.src.js +1 -1
  910. package/themes/high-contrast.js +1 -1
  911. package/themes/high-contrast.src.js +1 -1
  912. package/themes/sand-signika.js +1 -1
  913. package/themes/sand-signika.src.js +1 -1
  914. package/themes/sunset.js +1 -1
  915. package/themes/sunset.src.js +1 -1
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: LicenseRef-Highcharts
2
2
  /**
3
- * @license Highcharts JS v13.0.1 (2026-08-17)
3
+ * @license Highcharts JS v13.0.2 (2026-08-27)
4
4
  * @module highcharts/highcharts
5
5
  *
6
6
  * (c) 2009-2026 Highsoft AS
@@ -38,7 +38,7 @@ var Globals;
38
38
  * Constants
39
39
  *
40
40
  * */
41
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.1', Globals.win = (typeof window !== 'undefined' ?
41
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
42
42
  window :
43
43
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
44
44
  Globals.doc = Globals.win.document, Globals.svg = !!Globals.doc?.createElementNS?.(Globals.SVG_NS, 'svg')?.createSVGRect, Globals.pageLang = Globals.doc?.documentElement?.closest('[lang]')?.lang, Globals.userAgent = Globals.win.navigator?.userAgent || '', Globals.isChrome = Globals.win.chrome, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.marginNames = [
@@ -365,6 +365,29 @@ const ChartDefaults = {
365
365
  * @context Highcharts.Chart
366
366
  * @apioption chart.events.load
367
367
  */
368
+ /**
369
+ * Fires while the chart is panned by mouse drag. Panning must be
370
+ * enabled through [chart.panning](#chart.panning). One parameter,
371
+ * `event`, is passed to the function, containing common event
372
+ * information as well as `event.originalEvent`, the underlying pointer
373
+ * event. Note that the event fires for every mouse move during the
374
+ * drag, not once per gesture.
375
+ *
376
+ * Calling `event.preventDefault()` or returning false prevents the
377
+ * default panning of the axes. In Highcharts Maps, and on ordinal axes
378
+ * in Highcharts Stock, the panning is applied outside the default
379
+ * action and is not prevented.
380
+ *
381
+ * Panning by touch does not fire this event, unless
382
+ * [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
383
+ * no zoom type is set. Single-finger drags are then handled as mouse
384
+ * drags and fire this event.
385
+ *
386
+ * @type {Highcharts.ChartPanCallbackFunction}
387
+ * @since 7.0.2
388
+ * @context Highcharts.Chart
389
+ * @apioption chart.events.pan
390
+ */
368
391
  /**
369
392
  * Fires when the chart is redrawn, either after a call to
370
393
  * `chart.redraw()` or after an axis, series or point is modified with
@@ -2379,7 +2402,7 @@ function getStyle(el, prop, toInt) {
2379
2402
  const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
2380
2403
  if (css) {
2381
2404
  style = css.getPropertyValue(prop);
2382
- if (pick(toInt, prop !== 'opacity')) {
2405
+ if (toInt ?? prop !== 'opacity') {
2383
2406
  style = pInt(style);
2384
2407
  }
2385
2408
  }
@@ -2629,7 +2652,7 @@ function merge(extendOrSource, ...sources) {
2629
2652
  function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
2630
2653
  let i, retInterval = interval;
2631
2654
  // Round to a tenfold of 1, 2, 2.5 or 5
2632
- magnitude = pick(magnitude, getMagnitude(interval));
2655
+ magnitude = (magnitude ?? getMagnitude(interval));
2633
2656
  const normalized = interval / magnitude;
2634
2657
  // Multiples for a linear scale
2635
2658
  if (!multiples) {
@@ -2742,20 +2765,22 @@ function pad(number, length, padder) {
2742
2765
  .replace('-', '')
2743
2766
  .length).join(padder || '0') + number;
2744
2767
  }
2745
- /* eslint-disable jsdoc/check-param-names */
2768
+ /* eslint-disable valid-jsdoc */
2746
2769
  /**
2747
2770
  * Return the first value that is not null or undefined.
2748
2771
  *
2772
+ * @deprecated 13.0.2
2773
+ * Use nullish coalescing (`??`) or explicit fallback logic instead.
2774
+ *
2749
2775
  * @function Highcharts.pick<T>
2750
2776
  *
2751
- * @param {...Array<T|null|undefined>} items
2777
+ * @param {...(T|null|undefined)} args
2752
2778
  * Variable number of arguments to inspect.
2753
2779
  *
2754
2780
  * @return {T}
2755
2781
  * The value of the first argument that is not null or undefined.
2756
2782
  */
2757
- function pick() {
2758
- const args = arguments;
2783
+ function pick(...args) {
2759
2784
  const length = args.length;
2760
2785
  for (let i = 0; i < length; i++) {
2761
2786
  const arg = args[i];
@@ -2764,7 +2789,7 @@ function pick() {
2764
2789
  }
2765
2790
  }
2766
2791
  }
2767
- /* eslint-enable jsdoc/check-param-names */
2792
+ /* eslint-enable valid-jsdoc */
2768
2793
  /**
2769
2794
  * Shortcut for parseInt
2770
2795
  *
@@ -3147,7 +3172,8 @@ function insertItem(item, collection) {
3147
3172
  !collection[i] ||
3148
3173
  // Handle index option, the element to insert has lower index
3149
3174
  (isNumber(indexOption) &&
3150
- indexOption < pick(collection[i].options.index, collection[i]._i)) ||
3175
+ indexOption < (collection[i].options.index ??
3176
+ collection[i]._i)) ||
3151
3177
  // Insert the new item before other internal items
3152
3178
  // (navigator)
3153
3179
  collection[i].options.isInternal) {
@@ -3233,7 +3259,7 @@ const uniqueKey = (function () {
3233
3259
  * State of the serial mode.
3234
3260
  */
3235
3261
  function useSerialIds(mode) {
3236
- return (serialMode = pick(mode, serialMode));
3262
+ return (serialMode = (mode ?? serialMode));
3237
3263
  }
3238
3264
  /* *
3239
3265
  *
@@ -3699,6 +3725,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
3699
3725
  *
3700
3726
  * @param {Highcharts.TimeOptions} [options] Time options as defined in
3701
3727
  * [chart.options.time](/highcharts/time).
3728
+ *
3729
+ * @param {Highcharts.LangOptions} [lang]
3730
+ * Language options. When `options.locale` is not set, `lang.locale` is used as
3731
+ * the locale fallback for locale-aware date formatting.
3702
3732
  */
3703
3733
  class TimeBase {
3704
3734
  /* *
@@ -3717,8 +3747,8 @@ class TimeBase {
3717
3747
  };
3718
3748
  this.variableTimezone = false;
3719
3749
  this.Date = TimeBase_win.Date;
3720
- this.update(options);
3721
3750
  this.lang = lang;
3751
+ this.update(options);
3722
3752
  }
3723
3753
  /* *
3724
3754
  *
@@ -3830,7 +3860,9 @@ class TimeBase {
3830
3860
  /**
3831
3861
  * Shorthand to get a cached `Intl.DateTimeFormat` instance.
3832
3862
  */
3833
- dateTimeFormat(options, timestamp, locale = this.options.locale || pageLang) {
3863
+ dateTimeFormat(options, timestamp, locale = (this.options.locale ||
3864
+ this.lang?.locale ||
3865
+ pageLang)) {
3834
3866
  const cacheKey = JSON.stringify(options) + locale;
3835
3867
  if (isString(options)) {
3836
3868
  options = this.str2dtf(options);
@@ -7770,6 +7802,41 @@ const DefaultOptions = {
7770
7802
  * @param {global.Event} event
7771
7803
  * The event that occurred.
7772
7804
  */
7805
+ /**
7806
+ * Gets fired while the chart is panned by mouse drag. Calling
7807
+ * `event.preventDefault()` or returning `false` prevents the default panning
7808
+ * of the axes.
7809
+ *
7810
+ * @callback Highcharts.ChartPanCallbackFunction
7811
+ *
7812
+ * @param {Highcharts.Chart} this
7813
+ * The chart on which the event occurred.
7814
+ *
7815
+ * @param {Highcharts.ChartPanEventObject} event
7816
+ * The event that occurred.
7817
+ */
7818
+ /**
7819
+ * Contains common event information. Through the `originalEvent` property you
7820
+ * can access the pointer event that triggered the panning.
7821
+ *
7822
+ * @interface Highcharts.ChartPanEventObject
7823
+ */ /**
7824
+ * The pointer event that triggered the panning.
7825
+ * @name Highcharts.ChartPanEventObject#originalEvent
7826
+ * @type {Highcharts.PointerEventObject}
7827
+ */ /**
7828
+ * Prevents the default behavior of the event.
7829
+ * @name Highcharts.ChartPanEventObject#preventDefault
7830
+ * @type {Function}
7831
+ */ /**
7832
+ * The event target.
7833
+ * @name Highcharts.ChartPanEventObject#target
7834
+ * @type {Highcharts.Chart}
7835
+ */ /**
7836
+ * The event type.
7837
+ * @name Highcharts.ChartPanEventObject#type
7838
+ * @type {"pan"}
7839
+ */
7773
7840
  /**
7774
7841
  * Fires when the chart is redrawn, either after a call to `chart.redraw()` or
7775
7842
  * after an axis, series or point is modified with the `redraw` option set to
@@ -8145,7 +8212,9 @@ Color.None = new Color(''); // Must be last static for init
8145
8212
  */
8146
8213
  /**
8147
8214
  * A valid color type than can be parsed and handled by Highcharts. It can be a
8148
- * color string, a gradient object, or a pattern object.
8215
+ * color string (including CSS expressions), a gradient object, or a pattern
8216
+ * object. Read more about colors in the [Highcharts
8217
+ * documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
8149
8218
  *
8150
8219
  * @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
8151
8220
  */
@@ -8688,7 +8757,8 @@ Fx.timers = [];
8688
8757
  * so it should be moved to the SVGRenderer.
8689
8758
  */
8690
8759
  function setAnimation(animation, chart) {
8691
- chart.renderer.globalAnimation = pick(animation, chart.options.chart.animation, true);
8760
+ chart.renderer.globalAnimation =
8761
+ animation ?? chart.options.chart.animation ?? true;
8692
8762
  }
8693
8763
  /**
8694
8764
  * Get the animation in object form, where a disabled animation is always
@@ -9751,7 +9821,7 @@ function format(str = '', ctx, owner) {
9751
9821
  replacement = `"${replacement}"`;
9752
9822
  }
9753
9823
  }
9754
- str = str.replace(match.find, pick(replacement, ''));
9824
+ str = str.replace(match.find, (replacement ?? ''));
9755
9825
  });
9756
9826
  return hasSub ? format(str, ctx, owner) : str;
9757
9827
  }
@@ -10000,7 +10070,7 @@ var RendererUtilities;
10000
10070
  boxes = boxes.map((box) => ({
10001
10071
  size: box.size,
10002
10072
  targets: [box.target],
10003
- align: pick(box.align, 0.5)
10073
+ align: (box.align ?? 0.5)
10004
10074
  }));
10005
10075
  while (overlapping) {
10006
10076
  // Initial positions: target centered in box
@@ -10158,8 +10228,10 @@ class SVGElement {
10158
10228
  * Property value.
10159
10229
  */
10160
10230
  _defaultGetter(key) {
10161
- let ret = pick(this[key + 'Value'], // Align getter
10162
- this[key], this.element ? this.element.getAttribute(key) : null, 0);
10231
+ let ret = (this[key + 'Value'] ??
10232
+ this[key] ??
10233
+ (this.element ? this.element.getAttribute(key) : null) ??
10234
+ 0);
10163
10235
  if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
10164
10236
  ret = parseFloat(ret);
10165
10237
  }
@@ -10322,7 +10394,7 @@ class SVGElement {
10322
10394
  }
10323
10395
  alignTo = void 0; // Do not use the box
10324
10396
  }
10325
- const alignToBox = pick(alignTo, renderer[alignToKey], renderer),
10397
+ const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
10326
10398
  // Default: left align
10327
10399
  x = (alignToBox.x || 0) + (alignOptions.x || 0) +
10328
10400
  ((alignToBox.width || 0) - (alignOptions.width || 0)) *
@@ -10382,7 +10454,7 @@ class SVGElement {
10382
10454
  * Returns the SVGElement for chaining.
10383
10455
  */
10384
10456
  animate(params, options, complete) {
10385
- const animOptions = animObject(pick(options, this.renderer.globalAnimation, true)), deferTime = animOptions.defer;
10457
+ const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
10386
10458
  // When the page is hidden save resources in the background by not
10387
10459
  // running animation at all (#9749).
10388
10460
  if (SVGElement_doc.hidden) {
@@ -10874,7 +10946,7 @@ class SVGElement {
10874
10946
  .split(','); // Ending comma
10875
10947
  i = v.length;
10876
10948
  while (i--) {
10877
- v[i] = '' + (pInt(v[i]) * pick(strokeWidth, NaN));
10949
+ v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
10878
10950
  }
10879
10951
  value = v.join(',').replace(/NaN/g, 'none'); // #3226
10880
10952
  this.element.setAttribute('stroke-dasharray', value);
@@ -11014,7 +11086,7 @@ class SVGElement {
11014
11086
  * The bounding box with `x`, `y`, `width` and `height` properties.
11015
11087
  */
11016
11088
  getBBox(reload, rot) {
11017
- const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation = pick(rot, wrapper.rotation, 0), fontSize = renderer.styledMode ? (element &&
11089
+ const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation = (rot ?? wrapper.rotation ?? 0), fontSize = renderer.styledMode ? (element &&
11018
11090
  SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
11019
11091
  renderer.rootFontSize,
11020
11092
  this.textWidth, // #7874, also useHTML
@@ -11540,7 +11612,7 @@ class SVGElement {
11540
11612
  symbolAttr(hash) {
11541
11613
  const wrapper = this;
11542
11614
  SVGElement.symbolCustomAttribs.forEach(function (key) {
11543
- wrapper[key] = pick(hash[key], wrapper[key]);
11615
+ wrapper[key] = (hash[key] ?? wrapper[key]);
11544
11616
  });
11545
11617
  wrapper.attr({
11546
11618
  d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
@@ -11580,7 +11652,7 @@ class SVGElement {
11580
11652
  }
11581
11653
  // Replace text content and escape markup
11582
11654
  titleNode.textContent = replaceNested(// Scan #[73]
11583
- pick(value, ''), // #3276, #3895
11655
+ (value ?? ''), // #3276, #3895
11584
11656
  [/<[^>]*>/g, '']).replace(/&lt;/g, '<').replace(/&gt;/g, '>');
11585
11657
  }
11586
11658
  /**
@@ -12358,7 +12430,7 @@ class SVGLabel extends SVG_SVGElement {
12358
12430
  if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
12359
12431
  this.updateBoxSize();
12360
12432
  }
12361
- const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = pick(this.paddingLeft, padding), rotation = rot ?? (this.rotation || 0);
12433
+ const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
12362
12434
  let bBox = {
12363
12435
  width,
12364
12436
  height,
@@ -12411,7 +12483,7 @@ class SVGLabel extends SVG_SVGElement {
12411
12483
  this.attr({
12412
12484
  // Alignment is available now (#3295, 0 not rendered if given
12413
12485
  // as a value)
12414
- text: pick(this.textStr, ''),
12486
+ text: (this.textStr ?? ''),
12415
12487
  x: this.x || 0,
12416
12488
  y: this.y || 0
12417
12489
  });
@@ -12567,8 +12639,8 @@ class SVGLabel extends SVG_SVGElement {
12567
12639
  /** @internal */
12568
12640
  getPaddedWidth() {
12569
12641
  const padding = this.padding;
12570
- const paddingLeft = pick(this.paddingLeft, padding);
12571
- const paddingRight = pick(this.paddingRight, padding);
12642
+ const paddingLeft = (this.paddingLeft ?? padding);
12643
+ const paddingRight = (this.paddingRight ?? padding);
12572
12644
  return ((this.widthSetting || this.bBox.width || 0) +
12573
12645
  paddingLeft +
12574
12646
  paddingRight);
@@ -12669,7 +12741,7 @@ function arc(cx, cy, w, h, options) {
12669
12741
  const arc = [];
12670
12742
  if (options) {
12671
12743
  let start = options.start || 0, end = options.end || 0;
12672
- const rx = pick(options.r, w), ry = pick(options.r, h || w),
12744
+ const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
12673
12745
  // Subtract a small number to prevent cos and sin of start and end
12674
12746
  // from becoming equal on 360 arcs (#1561). See "Arc proximity"
12675
12747
  // tests at samples/unit-tests/svgrenderer/symbol/demo.js
@@ -12679,16 +12751,17 @@ function arc(cx, cy, w, h, options) {
12679
12751
  start = Math.PI / 2;
12680
12752
  end = Math.PI * 2.5 - proximity;
12681
12753
  }
12682
- const innerRadius = options.innerR, open = pick(options.open, fullCircle), cosStart = fullCircle ? 0 : Math.cos(start), sinStart = fullCircle ? 1 : Math.sin(start), cosEnd = fullCircle ? 0 : Math.cos(end), sinEnd = fullCircle ? 1 : Math.sin(end),
12754
+ const innerRadius = options.innerR, open = (options.open ?? fullCircle), cosStart = fullCircle ? 0 : Math.cos(start), sinStart = fullCircle ? 1 : Math.sin(start), cosEnd = fullCircle ? 0 : Math.cos(end), sinEnd = fullCircle ? 1 : Math.sin(end),
12683
12755
  // Proximity takes care of rounding errors around PI (#6971)
12684
- longArc = pick(options.longArc, end - start - Math.PI < proximity ? 0 : 1);
12756
+ longArc = options.longArc ??
12757
+ (end - start - Math.PI < proximity ? 0 : 1);
12685
12758
  let arcSegment = [
12686
12759
  'A', // ArcTo
12687
12760
  rx, // X radius
12688
12761
  ry, // Y radius
12689
12762
  0, // Slanting
12690
12763
  longArc, // Long or short arc
12691
- pick(options.clockwise, 1), // Clockwise
12764
+ (options.clockwise ?? 1), // Clockwise
12692
12765
  // Use a static pixel offset for full circle (#21701)
12693
12766
  cx + (fullCircle ? 0.001 : rx * cosEnd),
12694
12767
  cy + ry * sinEnd
@@ -13219,7 +13292,7 @@ class TextBuilder {
13219
13292
  * @internal
13220
13293
  */
13221
13294
  buildSVG() {
13222
- const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr = pick(wrapper.textStr, '').toString(), hasMarkup = textStr.indexOf('<') !== -1, childNodes = textNode.childNodes, tempParent = !wrapper.added && renderer.box, regexMatchBreaks = /<br.*?>/g,
13295
+ const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr = (wrapper.textStr ?? '').toString(), hasMarkup = textStr.indexOf('<') !== -1, childNodes = textNode.childNodes, tempParent = !wrapper.added && renderer.box, regexMatchBreaks = /<br.*?>/g,
13223
13296
  // The buildText code is quite heavy, so if we're not changing
13224
13297
  // something that affects the text, skip it (#6113).
13225
13298
  textCache = [
@@ -13803,7 +13876,7 @@ class SVGRenderer {
13803
13876
  this.url = this.getReferenceURL();
13804
13877
  // Add description
13805
13878
  const desc = this.createElement('desc').add();
13806
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.1'));
13879
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
13807
13880
  this.defs = this.createElement('defs').add();
13808
13881
  this.allowHTML = allowHTML;
13809
13882
  this.forExport = forExport;
@@ -14589,7 +14662,7 @@ class SVGRenderer {
14589
14662
  this.attr('height')
14590
14663
  });
14591
14664
  },
14592
- duration: pick(animate, true) ? void 0 : 0
14665
+ duration: (animate ?? true) ? void 0 : 0
14593
14666
  });
14594
14667
  renderer.alignElements();
14595
14668
  }
@@ -14747,8 +14820,8 @@ class SVGRenderer {
14747
14820
  // The image width is not always the same as the symbol width. The
14748
14821
  // image may be centered within the symbol, as is the case when
14749
14822
  // image shapes are used as label backgrounds, for example in flags.
14750
- img.imgwidth = pick(options?.width, symbolSizes[imageSrc]?.width);
14751
- img.imgheight = pick(options?.height, symbolSizes[imageSrc]?.height);
14823
+ img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
14824
+ img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
14752
14825
  /**
14753
14826
  * Set the size and position
14754
14827
  */
@@ -19227,11 +19300,11 @@ class Tick {
19227
19300
  * @function Highcharts.Tick#addLabel
19228
19301
  */
19229
19302
  addLabel() {
19230
- const tick = this, axis = tick.axis, options = axis.options, chart = axis.chart, categories = axis.categories, log = axis.logarithmic, names = axis.names, pos = tick.pos, labelOptions = pick(tick.options?.labels, options.labels), tickPositions = axis.tickPositions, isFirst = pos === tickPositions[0], isLast = pos === tickPositions[tickPositions.length - 1], tickPositionInfo = tickPositions.info, boundary = tickPositionInfo?.boundaryTicks[pos], DTLFormats = options.dateTimeLabelFormats;
19303
+ const tick = this, axis = tick.axis, options = axis.options, chart = axis.chart, categories = axis.categories, log = axis.logarithmic, names = axis.names, pos = tick.pos, labelOptions = (tick.options?.labels ?? options.labels), tickPositions = axis.tickPositions, isFirst = pos === tickPositions[0], isLast = pos === tickPositions[tickPositions.length - 1], tickPositionInfo = tickPositions.info, boundary = tickPositionInfo?.boundaryTicks[pos], DTLFormats = options.dateTimeLabelFormats;
19231
19304
  let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
19232
19305
  // The context value
19233
19306
  let value = this.parameters.category || (categories ?
19234
- pick(categories[pos], names[pos], pos) :
19307
+ (categories[pos] ?? names[pos] ?? pos) :
19235
19308
  pos);
19236
19309
  if (log && isNumber(value)) {
19237
19310
  value = correctFloat(log.lin2log(value));
@@ -19478,7 +19551,7 @@ class Tick {
19478
19551
  labelOptions.y;
19479
19552
  }
19480
19553
  x = x +
19481
- pick(labelOptions.x, [0, 1, 0, -1][axis.side] * distance) +
19554
+ (labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
19482
19555
  labelOffsetCorrection +
19483
19556
  rotCorr.x -
19484
19557
  (tickmarkOffset && horiz ?
@@ -19533,7 +19606,7 @@ class Tick {
19533
19606
  * @function Highcharts.Tick#handleOverflow
19534
19607
  */
19535
19608
  handleOverflow(xy) {
19536
- const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound = pick(axis.labelLeft, Math.min(axis.pos, spacing[3])), rightBound = pick(axis.labelRight, Math.max(!axis.isRadial ? axis.pos + axis.len : 0, chartWidth - spacing[1])), label = this.label, rotation = this.rotation, factor = getAlignFactor(axis.labelAlign || label.attr('align')), labelWidth = label.getBBox().width, slotWidth = axis.getSlotWidth(tick), xCorrection = factor, css = {};
19609
+ const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound = axis.labelLeft ?? Math.min(axis.pos, spacing[3]), rightBound = (axis.labelRight ?? Math.max(!axis.isRadial ? axis.pos + axis.len : 0, chartWidth - spacing[1])), label = this.label, rotation = this.rotation, factor = getAlignFactor(axis.labelAlign || label.attr('align')), labelWidth = label.getBBox().width, slotWidth = axis.getSlotWidth(tick), xCorrection = factor, css = {};
19537
19610
  let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
19538
19611
  // Check if the label overshoots the chart spacing box. If it does, move
19539
19612
  // it. If it now overshoots the slotWidth, add ellipsis.
@@ -19600,9 +19673,8 @@ class Tick {
19600
19673
  * @param {number} [opacity]
19601
19674
  */
19602
19675
  render(index, old, opacity) {
19603
- const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), xy = tick.getPosition(horiz, pos, tickmarkOffset, old), x = xy.x, y = xy.y, axisStart = axis.pos, axisEnd = axisStart + axis.len, pxPos = horiz ? x : y;
19604
- const labelOpacity = pick(opacity, tick.label?.newOpacity, // #15528
19605
- 1);
19676
+ const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset = (tick.tickmarkOffset ?? axis.tickmarkOffset), xy = tick.getPosition(horiz, pos, tickmarkOffset, old), x = xy.x, y = xy.y, axisStart = axis.pos, axisEnd = axisStart + axis.len, pxPos = horiz ? x : y;
19677
+ const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
19606
19678
  // Anything that is not between `axis.pos` and `axis.pos + axis.length`
19607
19679
  // should not be visible (#20166). The `correctFloat` is for reversed
19608
19680
  // axes in Safari.
@@ -19630,7 +19702,7 @@ class Tick {
19630
19702
  * @param {number} opacity The opacity of the grid line
19631
19703
  */
19632
19704
  renderGridLine(old, opacity) {
19633
- const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), renderer = axis.chart.renderer;
19705
+ const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset = (tick.tickmarkOffset ?? axis.tickmarkOffset), renderer = axis.chart.renderer;
19634
19706
  let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
19635
19707
  if (tick.type === 'minor') {
19636
19708
  gridLineWidth = options.minorGridLineWidth;
@@ -19686,7 +19758,7 @@ class Tick {
19686
19758
  * @param {number} opacity The opacity of the mark
19687
19759
  */
19688
19760
  renderMark(xy, opacity) {
19689
- const tick = this, axis = tick.axis, options = axis.options, renderer = axis.chart.renderer, type = tick.type, tickSize = axis.tickSize(type ? type + 'Tick' : 'tick'), x = xy.x, y = xy.y, tickWidth = pick(options[type !== 'minor' ? 'tickWidth' : 'minorTickWidth'], !type && axis.isXAxis ? 1 : 0), // X axis defaults to 1
19761
+ const tick = this, axis = tick.axis, options = axis.options, renderer = axis.chart.renderer, type = tick.type, tickSize = axis.tickSize(type ? type + 'Tick' : 'tick'), x = xy.x, y = xy.y, tickWidth = options[type !== 'minor' ? 'tickWidth' : 'minorTickWidth'] ?? (!type && axis.isXAxis ? 1 : 0), // X axis defaults to 1
19690
19762
  tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
19691
19763
  let mark = tick.mark;
19692
19764
  const isNewMark = !mark;
@@ -19731,7 +19803,7 @@ class Tick {
19731
19803
  * @param {number} index The index of the tick
19732
19804
  */
19733
19805
  renderLabel(xy, old, opacity, index) {
19734
- const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset = pick(tick.tickmarkOffset, axis.tickmarkOffset), x = xy.x, y = xy.y;
19806
+ const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset = (tick.tickmarkOffset ?? axis.tickmarkOffset), x = xy.x, y = xy.y;
19735
19807
  let show = true;
19736
19808
  if (label && isNumber(x)) {
19737
19809
  label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
@@ -19836,12 +19908,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
19836
19908
 
19837
19909
 
19838
19910
 
19839
- const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, pick(axis.options.allowDecimals,
19840
- // If the tick interval is greater than 0.5, avoid decimals, as
19841
- // linear axes are often used to render discrete values (#3363). If
19842
- // a tick amount is set, allow decimals by default, as it increases
19843
- // the chances for a good fit.
19844
- tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
19911
+ const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
19845
19912
  extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
19846
19913
  /* *
19847
19914
  *
@@ -19949,7 +20016,7 @@ class Axis {
19949
20016
  axis.coll = coll;
19950
20017
  fireEvent(this, 'init', { userOptions: userOptions });
19951
20018
  // Needed in setOptions
19952
- axis.opposite = pick(userOptions.opposite, axis.opposite);
20019
+ axis.opposite = (userOptions.opposite ?? axis.opposite);
19953
20020
  /**
19954
20021
  * The side on which the axis is rendered. 0 is top, 1 is right, 2
19955
20022
  * is bottom and 3 is left.
@@ -19957,10 +20024,9 @@ class Axis {
19957
20024
  * @name Highcharts.Axis#side
19958
20025
  * @type {number}
19959
20026
  */
19960
- axis.side = pick(userOptions.side, axis.side, (horiz ?
20027
+ axis.side = (userOptions.side ?? axis.side ?? (horiz ?
19961
20028
  (axis.opposite ? 0 : 2) : // Top : bottom
19962
- (axis.opposite ? 1 : 3)) // Right : left
19963
- );
20029
+ (axis.opposite ? 1 : 3)));
19964
20030
  /**
19965
20031
  * Current options for the axis after merge of defaults and user's
19966
20032
  * options.
@@ -19989,7 +20055,7 @@ class Axis {
19989
20055
  * @name Highcharts.Axis#reversed
19990
20056
  * @type {boolean}
19991
20057
  */
19992
- axis.reversed = pick(options.reversed, axis.reversed);
20058
+ axis.reversed = (options.reversed ?? axis.reversed);
19993
20059
  axis.visible = options.visible;
19994
20060
  axis.zoomEnabled = options.zoomEnabled;
19995
20061
  // Initial categories
@@ -20077,7 +20143,7 @@ class Axis {
20077
20143
  * @name Highcharts.Axis#crosshair
20078
20144
  * @type {boolean|Highcharts.AxisCrosshairOptions}
20079
20145
  */
20080
- const crosshair = pick(options.crosshair, splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1]);
20146
+ const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
20081
20147
  axis.crosshair = crosshair === true ? {} : crosshair;
20082
20148
  // Register. Don't add it again on Axis.update().
20083
20149
  if (chart.axes.indexOf(axis) === -1) { //
@@ -20261,8 +20327,8 @@ class Axis {
20261
20327
  seriesDataMax = xExtremes.max;
20262
20328
  }
20263
20329
  if (xData.length) {
20264
- axis.dataMin = Math.min(pick(axis.dataMin, seriesDataMin), seriesDataMin);
20265
- axis.dataMax = Math.max(pick(axis.dataMax, seriesDataMax), seriesDataMax);
20330
+ axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
20331
+ axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
20266
20332
  }
20267
20333
  }
20268
20334
  // Get dataMin and dataMax for Y axes, as well as handle
@@ -20277,11 +20343,11 @@ class Axis {
20277
20343
  // doesn't have active y data, we continue with nulls
20278
20344
  if (isNumber(dataExtremes.dataMin)) {
20279
20345
  seriesDataMin = dataExtremes.dataMin;
20280
- axis.dataMin = Math.min(pick(axis.dataMin, seriesDataMin), seriesDataMin);
20346
+ axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
20281
20347
  }
20282
20348
  if (isNumber(dataExtremes.dataMax)) {
20283
20349
  seriesDataMax = dataExtremes.dataMax;
20284
- axis.dataMax = Math.max(pick(axis.dataMax, seriesDataMax), seriesDataMax);
20350
+ axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
20285
20351
  }
20286
20352
  // Adjust to threshold
20287
20353
  if (defined(threshold)) {
@@ -20436,7 +20502,7 @@ class Axis {
20436
20502
  translatedValue
20437
20503
  };
20438
20504
  fireEvent(this, 'getPlotLinePath', evt, function (e) {
20439
- translatedValue = pick(translatedValue, axis.translate(value, void 0, void 0, old));
20505
+ translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
20440
20506
  // Keep the translated value within sane bounds, and avoid Infinity
20441
20507
  // to fail the isNumber test (#7709).
20442
20508
  translatedValue = clamp(translatedValue, -1e9, 1e9);
@@ -20525,7 +20591,7 @@ class Axis {
20525
20591
  getMinorTickInterval() {
20526
20592
  const { minorTicks, minorTickInterval } = this.options;
20527
20593
  if (minorTicks === true) {
20528
- return pick(minorTickInterval, 'auto');
20594
+ return (minorTickInterval ?? 'auto');
20529
20595
  }
20530
20596
  if (minorTicks === false) {
20531
20597
  return;
@@ -20808,7 +20874,9 @@ class Axis {
20808
20874
  const seriesPointRange = hasCategories ?
20809
20875
  1 :
20810
20876
  (isXAxis ?
20811
- pick(series.options.pointRange, closestPointRange, 0) :
20877
+ (series.options.pointRange ??
20878
+ closestPointRange ??
20879
+ 0) :
20812
20880
  (axis.axisPointRange || 0)), // #2806
20813
20881
  pointPlacement = series.options.pointPlacement;
20814
20882
  pointRange = Math.max(pointRange, seriesPointRange);
@@ -20892,14 +20960,16 @@ class Axis {
20892
20960
  this.getTickAmount();
20893
20961
  }
20894
20962
  // Min or max set either by zooming/setExtremes or initial options
20895
- hardMin = pick(axis.userMin, time.parse(options.min));
20896
- hardMax = pick(axis.userMax, time.parse(options.max));
20963
+ hardMin = (axis.userMin ?? time.parse(options.min));
20964
+ hardMax = (axis.userMax ?? time.parse(options.max));
20897
20965
  // Linked axis gets the extremes from the parent axis
20898
20966
  if (linkedParent) {
20899
20967
  axis.linkedParent = linkedParent;
20900
20968
  linkedParentExtremes = linkedParent.getExtremes();
20901
- axis.min = pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);
20902
- axis.max = pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);
20969
+ axis.min =
20970
+ linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
20971
+ axis.max =
20972
+ linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
20903
20973
  if (this.type !== linkedParent.type) {
20904
20974
  // Can't link axes of different type
20905
20975
  error(11, true, chart);
@@ -20921,14 +20991,14 @@ class Axis {
20921
20991
  maxPadding = 0;
20922
20992
  }
20923
20993
  }
20924
- axis.min = pick(hardMin, thresholdMin, dataMin);
20925
- axis.max = pick(hardMax, thresholdMax, dataMax);
20994
+ axis.min = (hardMin ?? thresholdMin ?? dataMin);
20995
+ axis.max = (hardMax ?? thresholdMax ?? dataMax);
20926
20996
  }
20927
20997
  if (isNumber(axis.max) && isNumber(axis.min)) {
20928
20998
  if (logarithmic) {
20929
20999
  if (axis.positiveValuesOnly &&
20930
21000
  !secondPass &&
20931
- Math.min(axis.min, pick(dataMin, axis.min)) <= 0) { // #978
21001
+ Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
20932
21002
  // Can't plot negative values on log axis
20933
21003
  error(10, true, chart);
20934
21004
  }
@@ -21034,16 +21104,13 @@ class Axis {
21034
21104
  axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
21035
21105
  }
21036
21106
  else {
21037
- axis.tickInterval = pick(tickIntervalOption, this.tickAmount ?
21107
+ axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
21038
21108
  range / Math.max(this.tickAmount - 1, 1) :
21039
- void 0,
21040
- // For categorized axis, 1 is default, for linear axis use
21041
- // tickPix
21042
- categories ?
21043
- 1 :
21044
- // Don't let it be more than the data range
21045
- range * tickPixelIntervalOption /
21046
- Math.max(axis.len, tickPixelIntervalOption));
21109
+ categories ?
21110
+ 1 :
21111
+ // Don't let it be more than the data range
21112
+ range * tickPixelIntervalOption /
21113
+ Math.max(axis.len, tickPixelIntervalOption));
21047
21114
  }
21048
21115
  // Now we're finished detecting min and max, crop and group series data.
21049
21116
  // This is in turn needed in order to find tick positions in ordinal
@@ -21073,12 +21140,9 @@ class Axis {
21073
21140
  }
21074
21141
  // Before normalizing the tick interval, handle minimum tick interval.
21075
21142
  // This applies only if tickInterval is not defined.
21076
- const minTickInterval = pick(options.minTickInterval,
21077
- // In datetime axes, don't go below the data interval, except when
21078
- // there are scatter-like series involved (#13369).
21079
- dateTime &&
21080
- !axis.series.some((s) => !s.sorted) ?
21081
- axis.closestPointRange : 0);
21143
+ const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
21144
+ axis.closestPointRange :
21145
+ 0);
21082
21146
  if (!tickIntervalOption &&
21083
21147
  minTickInterval &&
21084
21148
  axis.tickInterval < minTickInterval) {
@@ -21408,7 +21472,7 @@ class Axis {
21408
21472
  * @function Highcharts.Axis#adjustTickAmount
21409
21473
  */
21410
21474
  adjustTickAmount() {
21411
- const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = pick(axis.threshold, axis.softThreshold ? 0 : null);
21475
+ const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
21412
21476
  let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
21413
21477
  const
21414
21478
  // Extend the tickPositions by appending a position
@@ -21644,7 +21708,8 @@ class Axis {
21644
21708
  offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
21645
21709
  // Check for percentage based input values. Rounding fixes problems
21646
21710
  // with column overflow and plot line filtering (#4898, #4899)
21647
- width = this.width = Math.round(relativeLength(pick(options.width, chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength(pick(options.height, chart.plotHeight - offsets[0] + offsets[2]), chart.plotHeight)), top = this.top = Math.round(relativeLength(pick(options.top, chart.plotTop + offsets[0]), chart.plotHeight, chart.plotTop)), left = this.left = Math.round(relativeLength(pick(options.left, chart.plotLeft + offsets[3]), chart.plotWidth, chart.plotLeft));
21711
+ width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
21712
+ chart.plotHeight - offsets[0] + offsets[2]), chart.plotHeight)), top = this.top = Math.round(relativeLength((options.top ?? chart.plotTop + offsets[0]), chart.plotHeight, chart.plotTop)), left = this.left = Math.round(relativeLength((options.left ?? chart.plotLeft + offsets[3]), chart.plotWidth, chart.plotLeft));
21648
21713
  // Expose basic values to use in Series object and navigator
21649
21714
  this.bottom = chart.chartHeight - height - top;
21650
21715
  this.right = chart.chartWidth - width - left;
@@ -21755,9 +21820,7 @@ class Axis {
21755
21820
  * An array of tickLength and tickWidth
21756
21821
  */
21757
21822
  tickSize(prefix) {
21758
- const options = this.options, tickWidth = pick(options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'],
21759
- // Default to 1 on linear and datetime X axes
21760
- prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
21823
+ const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
21761
21824
  let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
21762
21825
  if (tickWidth && tickLength) {
21763
21826
  // Negate the length
@@ -21844,7 +21907,7 @@ class Axis {
21844
21907
  newTickInterval = getStep(lineHeight * 0.75);
21845
21908
  }
21846
21909
  this.autoRotation = autoRotation;
21847
- this.labelRotation = pick(rotation, isNumber(rotationOption) ? rotationOption : 0);
21910
+ this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
21848
21911
  return labelOptions.step ? tickInterval : newTickInterval;
21849
21912
  }
21850
21913
  /**
@@ -22196,7 +22259,7 @@ class Axis {
22196
22259
  titleOffsetOption = axisTitleOptions.offset;
22197
22260
  titleMargin = defined(titleOffsetOption) ?
22198
22261
  0 :
22199
- pick(axisTitleOptions.margin, horiz ? 5 : 10);
22262
+ axisTitleOptions.margin ?? (horiz ? 5 : 10);
22200
22263
  }
22201
22264
  }
22202
22265
  // Render the axis line
@@ -22707,9 +22770,9 @@ class Axis {
22707
22770
  }
22708
22771
  else if (defined(point)) {
22709
22772
  // #3834
22710
- pos = pick(this.coll !== 'colorAxis' ?
22711
- point.crosshairPos : // 3D axis extension
22712
- null, this.isXAxis ?
22773
+ pos = (this.coll !== 'colorAxis' ?
22774
+ point.crosshairPos :
22775
+ null) ?? (this.isXAxis ?
22713
22776
  point.plotX :
22714
22777
  this.len - point.plotY);
22715
22778
  }
@@ -22718,7 +22781,7 @@ class Axis {
22718
22781
  // Value, only used on radial
22719
22782
  value: point && (this.isXAxis ?
22720
22783
  point.x :
22721
- pick(point.stackY, point.y)),
22784
+ (point.stackY ?? point.y ?? void 0)),
22722
22785
  translatedValue: pos
22723
22786
  };
22724
22787
  if (chart.polar) {
@@ -22751,7 +22814,7 @@ class Axis {
22751
22814
  (categorized ? 'category ' : 'thin ') +
22752
22815
  (options.className || ''))
22753
22816
  .attr({
22754
- zIndex: pick(options.zIndex, 2)
22817
+ zIndex: (options.zIndex ?? 2)
22755
22818
  })
22756
22819
  .clip(options.clip === false ?
22757
22820
  void 0 :
@@ -22766,7 +22829,7 @@ class Axis {
22766
22829
  // eslint-disable-next-line max-len
22767
22830
  'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
22768
22831
  'var(--highcharts-neutral-color-20)'),
22769
- 'stroke-width': pick(options.width, 1)
22832
+ 'stroke-width': (options.width ?? 1)
22770
22833
  }).css({
22771
22834
  'pointer-events': 'none'
22772
22835
  });
@@ -22832,7 +22895,7 @@ class Axis {
22832
22895
  this.destroy(true);
22833
22896
  this.init(chart, options);
22834
22897
  chart.isDirtyBox = true;
22835
- if (pick(redraw, true)) {
22898
+ if (redraw ?? true) {
22836
22899
  chart.redraw();
22837
22900
  }
22838
22901
  }
@@ -22862,7 +22925,7 @@ class Axis {
22862
22925
  chart.orderItems(coll);
22863
22926
  this.destroy();
22864
22927
  chart.isDirtyBox = true;
22865
- if (pick(redraw, true)) {
22928
+ if (redraw ?? true) {
22866
22929
  chart.redraw();
22867
22930
  }
22868
22931
  }
@@ -23518,8 +23581,10 @@ var LogarithmicAxis;
23518
23581
  tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
23519
23582
  axisLength / axis.tickPositions.length :
23520
23583
  axisLength;
23521
- interval = pick(filteredTickIntervalOption, log.minorAutoInterval, (realMax - realMin) *
23522
- tickPixelIntervalOption / (totalPixelLength || 1));
23584
+ interval = filteredTickIntervalOption ??
23585
+ log.minorAutoInterval ??
23586
+ (realMax - realMin) * tickPixelIntervalOption /
23587
+ (totalPixelLength || 1);
23523
23588
  interval = normalizeTickInterval(interval);
23524
23589
  positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
23525
23590
  if (!minor) {
@@ -23948,7 +24013,8 @@ class PlotLineOrBand {
23948
24013
  if (!chart.styledMode) {
23949
24014
  if (isLine) {
23950
24015
  attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
23951
- attribs['stroke-width'] = pick(options.width, 1);
24016
+ attribs['stroke-width'] =
24017
+ options.width ?? 1;
23952
24018
  if (options.dashStyle) {
23953
24019
  attribs.dashstyle = options.dashStyle;
23954
24020
  }
@@ -25080,7 +25146,8 @@ class Tooltip {
25080
25146
  'highcharts-label',
25081
25147
  isHeader && 'highcharts-tooltip-header',
25082
25148
  isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
25083
- !isHeader && 'highcharts-color-' + pick(point.colorIndex, series.colorIndex),
25149
+ !isHeader &&
25150
+ 'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
25084
25151
  seriesOptions?.className
25085
25152
  ].filter(isString).join(' ');
25086
25153
  }
@@ -25265,7 +25332,8 @@ class Tooltip {
25265
25332
  }
25266
25333
  // The far side is right or bottom
25267
25334
  const preferFarSide = !this.followPointer &&
25268
- pick(point.ttBelow, polar ? false : !inverted === flipped), // #4984
25335
+ (point.ttBelow ??
25336
+ (polar ? false : !inverted === flipped)), // #4984
25269
25337
  /*
25270
25338
  * Handle the preferred dimension. When the preferred dimension is
25271
25339
  * tooltip on top or bottom of the point, it will look for space
@@ -25392,7 +25460,7 @@ class Tooltip {
25392
25460
  const tooltip = this;
25393
25461
  // Disallow duplicate timers (#1728, #1766)
25394
25462
  clearTimeouts(this);
25395
- delay = pick(delay, this.options.hideDelay);
25463
+ delay = (delay ?? this.options.hideDelay);
25396
25464
  if (!this.isHidden) {
25397
25465
  this.hideTimer = syncTimeout(function () {
25398
25466
  const label = tooltip.getLabel();
@@ -25495,7 +25563,9 @@ class Tooltip {
25495
25563
  * Split tooltip does not support outside in the first iteration. Should
25496
25564
  * not be too complicated to implement.
25497
25565
  */
25498
- this.outside = pick(options.outside, Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY));
25566
+ this.outside =
25567
+ options.outside ??
25568
+ Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
25499
25569
  }
25500
25570
  shouldStickOnContact(pointerEvent) {
25501
25571
  return !!(!this.followPointer &&
@@ -25575,7 +25645,7 @@ class Tooltip {
25575
25645
  point.points = void 0;
25576
25646
  // Register the current series
25577
25647
  const currentSeries = point.series;
25578
- this.distance = pick(currentSeries.tooltipOptions.distance, 16);
25648
+ this.distance = (currentSeries.tooltipOptions.distance ?? 16);
25579
25649
  // Update the inner HTML
25580
25650
  if (text === false) {
25581
25651
  this.hide();
@@ -25848,7 +25918,7 @@ class Tooltip {
25848
25918
  anchorY,
25849
25919
  boxWidth,
25850
25920
  point,
25851
- rank: pick(boxPosition.rank, isHeader ? 1 : 0),
25921
+ rank: boxPosition.rank ?? (isHeader ? 1 : 0),
25852
25922
  size,
25853
25923
  target: boxPosition.y,
25854
25924
  tt,
@@ -27193,7 +27263,7 @@ class Point {
27193
27263
  */
27194
27264
  select(selected, accumulate) {
27195
27265
  const point = this, series = point.series, chart = series.chart;
27196
- selected = pick(selected, !point.selected);
27266
+ selected = (selected ?? !point.selected);
27197
27267
  this.selectedStaging = selected;
27198
27268
  // Fire the event with the default handler
27199
27269
  point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
@@ -27444,7 +27514,7 @@ class Point {
27444
27514
  });
27445
27515
  halo.attr({
27446
27516
  'class': 'highcharts-halo highcharts-color-' +
27447
- pick(point.colorIndex, series.colorIndex) +
27517
+ (point.colorIndex ?? series.colorIndex) +
27448
27518
  (point.className ? ' ' + point.className : ''),
27449
27519
  'visibility': markerVisibility,
27450
27520
  'zIndex': -1 // #4929, #8276
@@ -28177,7 +28247,7 @@ class Pointer {
28177
28247
  const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
28178
28248
  return (s.visible &&
28179
28249
  !(!shared && s.directTouch) && // #3821
28180
- pick(s.options.enableMouseTracking, true));
28250
+ (s.options.enableMouseTracking ?? true));
28181
28251
  };
28182
28252
  let hoverSeries = existingHoverSeries,
28183
28253
  // Which series to look in for the hover point
@@ -28363,8 +28433,8 @@ class Pointer {
28363
28433
  const ePos = (touches ?
28364
28434
  touches.length ?
28365
28435
  touches.item(0) :
28366
- (pick(// #13534
28367
- touches.changedTouches, e.changedTouches))[0] :
28436
+ (touches.changedTouches ??
28437
+ e.changedTouches)[0] :
28368
28438
  e);
28369
28439
  // Get mouse position
28370
28440
  if (!chartPosition) {
@@ -28438,7 +28508,7 @@ class Pointer {
28438
28508
  * @function Highcharts.Pointer#onContainerMouseLeave
28439
28509
  */
28440
28510
  onContainerMouseLeave(e) {
28441
- const { pointer } = Pointer_charts[pick(Pointer.hoverChartIndex, -1)] || {};
28511
+ const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
28442
28512
  e = this.normalize(e);
28443
28513
  this.onContainerMouseMove(e);
28444
28514
  // #4886, MS Touch end fires mouseleave but with no related target
@@ -28538,7 +28608,7 @@ class Pointer {
28538
28608
  if (e?.touches && this.hasPinchMoved) {
28539
28609
  e?.preventDefault?.();
28540
28610
  }
28541
- Pointer_charts[pick(Pointer.hoverChartIndex, -1)]
28611
+ Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
28542
28612
  ?.pointer
28543
28613
  ?.drop(e);
28544
28614
  }
@@ -29045,7 +29115,7 @@ class Pointer {
29045
29115
  */
29046
29116
  setHoverChartIndex(e) {
29047
29117
  const chart = this.chart;
29048
- const hoverChart = Core_Globals.charts[pick(Pointer.hoverChartIndex, -1)];
29118
+ const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
29049
29119
  if (hoverChart &&
29050
29120
  hoverChart !== chart) {
29051
29121
  const relatedTargetObj = { relatedTarget: chart.container };
@@ -29091,7 +29161,7 @@ class Pointer {
29091
29161
  Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
29092
29162
  false;
29093
29163
  }
29094
- if (pick(hasMoved, true)) {
29164
+ if (hasMoved ?? true) {
29095
29165
  this.pinch(e);
29096
29166
  }
29097
29167
  }
@@ -29134,7 +29204,7 @@ class Pointer {
29134
29204
  let zoomType = chart.zooming.type || '', zoomX, zoomY;
29135
29205
  // Look for the pinchType option
29136
29206
  if (/touch/.test(e.type)) {
29137
- zoomType = pick(chart.zooming.pinchType, zoomType);
29207
+ zoomType = (chart.zooming.pinchType ?? zoomType);
29138
29208
  }
29139
29209
  this.zoomX = zoomX = /x/.test(zoomType);
29140
29210
  this.zoomY = zoomY = /y/.test(zoomType);
@@ -29908,7 +29978,7 @@ var LegendSymbol;
29908
29978
  // Draw the marker
29909
29979
  if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
29910
29980
  // Do not allow the marker to be larger than the symbolHeight
29911
- let radius = Math.min(pick(markerOptions.radius, generalRadius), generalRadius);
29981
+ let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
29912
29982
  // Restrict symbol markers size
29913
29983
  if (symbol.indexOf('url') === 0) {
29914
29984
  markerOptions = merge(markerOptions, {
@@ -32929,7 +32999,7 @@ class Series {
32929
32999
  if (chartSeries.length) {
32930
33000
  lastSeries = chartSeries[chartSeries.length - 1];
32931
33001
  }
32932
- series._i = pick(lastSeries?._i, -1) + 1;
33002
+ series._i = (lastSeries?._i ?? -1) + 1;
32933
33003
  series.opacity = series.options.opacity;
32934
33004
  // Insert the series and re-order all series above the insertion
32935
33005
  // point.
@@ -32976,7 +33046,7 @@ class Series {
32976
33046
  // Apply if the series xAxis or yAxis option matches
32977
33047
  // the number of the axis, or if undefined, use the
32978
33048
  // first axis
32979
- if (pick(seriesOptions[coll], 0) === axis.index ||
33049
+ if ((seriesOptions[coll] ?? 0) === axis.index ||
32980
33050
  (typeof seriesOptions[coll] !==
32981
33051
  'undefined' &&
32982
33052
  seriesOptions[coll] === axisOptions.id)) {
@@ -33019,8 +33089,12 @@ class Series {
33019
33089
  * @function Highcharts.Series#hasMarkerChanged
33020
33090
  */
33021
33091
  hasMarkerChanged(options, oldOptions) {
33022
- const marker = options.marker, oldMarker = oldOptions.marker || {};
33023
- return marker && ((oldMarker.enabled && !marker.enabled) ||
33092
+ const marker = options.marker, oldMarker = oldOptions.marker;
33093
+ // Note that `marker` holds the full, merged object including
33094
+ // `plotOptions`, while `oldMarker` is the user-defined series-level
33095
+ // options only. We may need to refactor that in the future if more
33096
+ // issues like #24057 arise.
33097
+ return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
33024
33098
  oldMarker.symbol !== marker.symbol || // #10870, #15946
33025
33099
  oldMarker.height !== marker.height || // #16274
33026
33100
  oldMarker.width !== marker.width // #16274
@@ -33039,7 +33113,8 @@ class Series {
33039
33113
  time.parse(options.pointStart) ??
33040
33114
  0;
33041
33115
  let pointInterval;
33042
- this.pointInterval = pointInterval = pick(this.pointInterval, options.pointInterval, 1);
33116
+ this.pointInterval = pointInterval =
33117
+ this.pointInterval ?? options.pointInterval ?? 1;
33043
33118
  if (relativeXValue && isNumber(x)) {
33044
33119
  pointInterval *= x;
33045
33120
  }
@@ -33111,9 +33186,13 @@ class Series {
33111
33186
  );
33112
33187
  // When shared tooltip, stickyTracking is true by default,
33113
33188
  // unless user says otherwise.
33114
- this.stickyTracking = pick(seriesUserOptions.stickyTracking, userPlotOptionsType.stickyTracking, userPlotOptionsSeries.stickyTracking, (this.tooltipOptions.shared && !this.noSharedTooltip ?
33115
- true :
33116
- options.stickyTracking));
33189
+ this.stickyTracking =
33190
+ seriesUserOptions.stickyTracking ??
33191
+ userPlotOptionsType.stickyTracking ??
33192
+ userPlotOptionsSeries.stickyTracking ??
33193
+ (this.tooltipOptions.shared && !this.noSharedTooltip ?
33194
+ true :
33195
+ options.stickyTracking);
33117
33196
  // Delete marker object if not allowed (#1125)
33118
33197
  if (typeOptions.marker === null) {
33119
33198
  delete options.marker;
@@ -33191,7 +33270,9 @@ class Series {
33191
33270
  if (!value) {
33192
33271
  // Pick up either the colorIndex option, or the series.colorIndex
33193
33272
  // after Series.update()
33194
- setting = pick(prop === 'color' ? this.options.colorIndex : void 0, this[indexName]);
33273
+ setting = prop === 'color' ?
33274
+ (this.options.colorIndex ?? this[indexName]) :
33275
+ this[indexName];
33195
33276
  if (defined(setting)) { // After Series.update()
33196
33277
  i = setting;
33197
33278
  }
@@ -34218,7 +34299,9 @@ class Series {
34218
34299
  yValue = stackValues[1];
34219
34300
  if (lowValue === stackThreshold &&
34220
34301
  stackIndicator.key === stacks[xValue].base) {
34221
- lowValue = pick(isNumber(threshold) ? threshold : yAxis.min);
34302
+ lowValue = isNumber(threshold) ?
34303
+ threshold :
34304
+ yAxis.min;
34222
34305
  }
34223
34306
  // #1200, #1232
34224
34307
  if (yAxis.positiveValuesOnly &&
@@ -34226,7 +34309,7 @@ class Series {
34226
34309
  lowValue <= 0) {
34227
34310
  lowValue = void 0;
34228
34311
  }
34229
- point.total = point.stackTotal = pick(stackItem.total);
34312
+ point.total = point.stackTotal = stackItem.total ?? void 0;
34230
34313
  point.percentage = defined(point.y) && stackItem.total ?
34231
34314
  (point.y / stackItem.total * 100) : void 0;
34232
34315
  point.stackY = yValue;
@@ -34476,7 +34559,9 @@ class Series {
34476
34559
  // Only draw the point if y is defined
34477
34560
  if (shouldDrawMarker) {
34478
34561
  // Shortcuts
34479
- const symbol = pick(pointMarkerOptions.symbol, series.symbol, 'rect');
34562
+ const symbol = pointMarkerOptions.symbol ??
34563
+ series.symbol ??
34564
+ 'rect';
34480
34565
  markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
34481
34566
  const isInside = point.isInside !== false;
34482
34567
  if (!graphic &&
@@ -34744,7 +34829,7 @@ class Series {
34744
34829
  // Reset
34745
34830
  zones.forEach((zone) => {
34746
34831
  zone.lineClip = [];
34747
- zone.translated = clamp(axis.toPixels(pick(zone.value, axisMax), true) || 0, 0, len);
34832
+ zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
34748
34833
  });
34749
34834
  // The use of the Color Threshold assumes there are no gaps so it is
34750
34835
  // safe to hide the original graph and area unless it is not
@@ -35400,7 +35485,7 @@ class Series {
35400
35485
  const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
35401
35486
  let isInTheMiddle, i;
35402
35487
  // Optional redraw, defaults to true
35403
- redraw = pick(redraw, true);
35488
+ redraw = (redraw ?? true);
35404
35489
  // Get options and push the point to xData, yData and series.options. In
35405
35490
  // series.generatePoints the Point instance will be created on demand
35406
35491
  // and pushed to the series.data array.
@@ -35511,7 +35596,7 @@ class Series {
35511
35596
  }
35512
35597
  };
35513
35598
  setAnimation(animation, chart);
35514
- redraw = pick(redraw, true);
35599
+ redraw = (redraw ?? true);
35515
35600
  // Fire the event with a default handler of removing the point
35516
35601
  if (point) {
35517
35602
  point.firePointEvent('remove', null, remove);
@@ -35554,7 +35639,7 @@ class Series {
35554
35639
  // Redraw
35555
35640
  chart.isDirtyLegend = chart.isDirtyBox = true;
35556
35641
  chart.linkSeries(keepEvents);
35557
- if (pick(redraw, true)) {
35642
+ if (redraw ?? true) {
35558
35643
  chart.redraw(animation);
35559
35644
  }
35560
35645
  }
@@ -35771,7 +35856,7 @@ class Series {
35771
35856
  series.isDirtyData = true;
35772
35857
  }
35773
35858
  fireEvent(this, 'afterUpdate');
35774
- if (pick(redraw, true)) {
35859
+ if (redraw ?? true) {
35775
35860
  chart.redraw(keepPoints ? void 0 : false);
35776
35861
  }
35777
35862
  }
@@ -35788,12 +35873,12 @@ class Series {
35788
35873
  * @internal
35789
35874
  */
35790
35875
  hasOptionChanged(optionName) {
35791
- const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = pick(plotOptions?.[this.type]?.[optionName], plotOptions?.series?.[optionName]);
35876
+ const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
35792
35877
  // Check if `plotOptions` are defined already, #19203
35793
35878
  if (oldOption && !defined(plotOptionsOption)) {
35794
35879
  return option !== oldOption;
35795
35880
  }
35796
- return option !== pick(plotOptionsOption, option);
35881
+ return option !== (plotOptionsOption ?? option);
35797
35882
  }
35798
35883
  /**
35799
35884
  * Runs on mouse over the series graphical items.
@@ -35867,7 +35952,8 @@ class Series {
35867
35952
  const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
35868
35953
  // By default a quick animation to hover/inactive,
35869
35954
  // slower to un-hover
35870
- stateAnimation = pick(stateOptions[state || 'normal']?.animation, series.chart.options.chart.animation);
35955
+ stateAnimation = stateOptions[state || 'normal']?.animation ??
35956
+ series.chart.options.chart.animation;
35871
35957
  let { lineWidth, opacity } = options;
35872
35958
  state = state || '';
35873
35959
  if (series.state !== state) {
@@ -36753,7 +36839,7 @@ class Legend {
36753
36839
  * @param {Highcharts.LegendOptions} options
36754
36840
  */
36755
36841
  setOptions(options) {
36756
- const padding = pick(options.padding, 8);
36842
+ const padding = (options.padding ?? 8);
36757
36843
  /**
36758
36844
  * Legend options.
36759
36845
  *
@@ -36770,7 +36856,7 @@ class Legend {
36770
36856
  this.itemMarginBottom = options.itemMarginBottom;
36771
36857
  this.padding = padding;
36772
36858
  this.initialItemY = padding - 5; // 5 is pixels above the text
36773
- this.symbolWidth = pick(options.symbolWidth, 16);
36859
+ this.symbolWidth = (options.symbolWidth ?? 16);
36774
36860
  this.pages = [];
36775
36861
  this.proximate = options.layout === 'proximate' && !this.chart.inverted;
36776
36862
  // #12705: baseline has to be reset on every update
@@ -36804,7 +36890,7 @@ class Legend {
36804
36890
  }
36805
36891
  this.destroy();
36806
36892
  chart.isDirtyLegend = chart.isDirtyBox = true;
36807
- if (pick(redraw, true)) {
36893
+ if (redraw ?? true) {
36808
36894
  chart.redraw();
36809
36895
  }
36810
36896
  fireEvent(this, 'afterUpdate', { redraw });
@@ -37042,7 +37128,7 @@ class Legend {
37042
37128
  * The item to render.
37043
37129
  */
37044
37130
  renderItem(item) {
37045
- const legend = this, legendItem = item.legendItem = item.legendItem || {}, chart = legend.chart, renderer = chart.renderer, options = legend.options, horizontal = options.layout === 'horizontal', symbolWidth = legend.symbolWidth, symbolPadding = options.symbolPadding || 0, itemStyle = legend.itemStyle, itemHiddenStyle = legend.itemHiddenStyle, itemDistance = horizontal ? pick(options.itemDistance, 20) : 0, ltr = !options.rtl, isSeries = !item.series, series = !isSeries && item.series.drawLegendSymbol ?
37131
+ const legend = this, legendItem = item.legendItem = item.legendItem || {}, chart = legend.chart, renderer = chart.renderer, options = legend.options, horizontal = options.layout === 'horizontal', symbolWidth = legend.symbolWidth, symbolPadding = options.symbolPadding || 0, itemStyle = legend.itemStyle, itemHiddenStyle = legend.itemHiddenStyle, itemDistance = horizontal ? (options.itemDistance ?? 20) : 0, ltr = !options.rtl, isSeries = !item.series, series = !isSeries && item.series.drawLegendSymbol ?
37046
37132
  item.series :
37047
37133
  item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
37048
37134
  seriesOptions &&
@@ -37088,9 +37174,11 @@ class Legend {
37088
37174
  legend.fontMetrics.f + 3 + legend.itemMarginTop;
37089
37175
  label.attr('y', legend.baseline);
37090
37176
  legend.symbolHeight =
37091
- pick(options.symbolHeight, legend.fontMetrics.f);
37177
+ (options.symbolHeight ?? legend.fontMetrics.f);
37092
37178
  if (options.squareSymbol) {
37093
- legend.symbolWidth = pick(options.symbolWidth, Math.max(legend.symbolHeight, 16));
37179
+ legend.symbolWidth =
37180
+ options.symbolWidth ??
37181
+ Math.max(legend.symbolHeight, 16);
37094
37182
  itemExtraWidth = legend.symbolWidth + symbolPadding +
37095
37183
  itemDistance + (showCheckbox ? 20 : 0);
37096
37184
  if (ltr) {
@@ -37142,7 +37230,7 @@ class Legend {
37142
37230
  * @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
37143
37231
  */
37144
37232
  layoutItem(item) {
37145
- const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ? pick(options.itemDistance, 20) : 0, maxLegendWidth = this.maxLegendWidth, itemWidth = (options.alignColumns &&
37233
+ const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ? (options.itemDistance ?? 20) : 0, maxLegendWidth = this.maxLegendWidth, itemWidth = (options.alignColumns &&
37146
37234
  this.totalItemWidth > maxLegendWidth) ?
37147
37235
  this.maxItemWidth :
37148
37236
  item.itemWidth, legendItem = item.legendItem || {};
@@ -37196,7 +37284,9 @@ class Legend {
37196
37284
  const seriesOptions = series?.options;
37197
37285
  // Handle showInLegend. If the series is linked to another series,
37198
37286
  // defaults to false.
37199
- if (series && pick(seriesOptions.showInLegend, !defined(seriesOptions.linkedTo) ? void 0 : false, true)) {
37287
+ if (series &&
37288
+ (seriesOptions.showInLegend ??
37289
+ (!defined(seriesOptions.linkedTo)))) {
37200
37290
  // Use points or series for the legend item depending on
37201
37291
  // legendType
37202
37292
  allItems = allItems.concat(series.legendItem?.labels ||
@@ -37478,7 +37568,7 @@ class Legend {
37478
37568
  * @function Highcharts.Legend#handleOverflow
37479
37569
  */
37480
37570
  handleOverflow(legendHeight) {
37481
- const legend = this, chart = this.chart, renderer = chart.renderer, options = this.options, optionsY = options.y, alignTop = options.verticalAlign === 'top', padding = this.padding, maxHeight = options.maxHeight, navOptions = options.navigation, animation = pick(navOptions.animation, true), arrowSize = navOptions.arrowSize || 12, pages = this.pages, allItems = this.allItems, clipToHeight = function (height) {
37571
+ const legend = this, chart = this.chart, renderer = chart.renderer, options = this.options, optionsY = options.y, alignTop = options.verticalAlign === 'top', padding = this.padding, maxHeight = options.maxHeight, navOptions = options.navigation, animation = (navOptions.animation ?? true), arrowSize = navOptions.arrowSize || 12, pages = this.pages, allItems = this.allItems, clipToHeight = function (height) {
37482
37572
  if (typeof height === 'number') {
37483
37573
  clipRect.attr({
37484
37574
  height: height
@@ -37524,7 +37614,7 @@ class Legend {
37524
37614
  navOptions.enabled !== false) {
37525
37615
  this.clipHeight = clipHeight =
37526
37616
  Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
37527
- this.currentPage = pick(this.currentPage, 1);
37617
+ this.currentPage = (this.currentPage ?? 1);
37528
37618
  this.fullHeight = legendHeight;
37529
37619
  // Fill pages with Y positions so that the top of each a legend item
37530
37620
  // defines the scroll top for each page (#2098)
@@ -37684,7 +37774,7 @@ class Legend {
37684
37774
  this.currentPage = currentPage;
37685
37775
  this.positionCheckboxes();
37686
37776
  // Fire event after scroll animation is complete
37687
- const animOptions = animObject(pick(animation, chart.renderer.globalAnimation, true));
37777
+ const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
37688
37778
  syncTimeout(() => {
37689
37779
  fireEvent(this, 'afterScroll', { currentPage });
37690
37780
  }, animOptions.duration);
@@ -38125,7 +38215,7 @@ class Chart {
38125
38215
  */
38126
38216
  static chart(a, b, c) {
38127
38217
  const chart = new Chart(a, b, c);
38128
- return chart.promise || chart;
38218
+ return chart.promise ?? chart;
38129
38219
  }
38130
38220
  // Implementation
38131
38221
  constructor(a,
@@ -38166,10 +38256,10 @@ class Chart {
38166
38256
  const chart = this, options = chart.options.chart, zooming = options.zooming;
38167
38257
  chart.zooming = {
38168
38258
  ...zooming,
38169
- type: pick(options.zoomType, zooming.type),
38170
- key: pick(options.zoomKey, zooming.key),
38171
- pinchType: pick(options.pinchType, zooming.pinchType),
38172
- singleTouch: pick(options.zoomBySingleTouch, zooming.singleTouch, false),
38259
+ type: (options.zoomType ?? zooming.type),
38260
+ key: (options.zoomKey ?? zooming.key),
38261
+ pinchType: (options.pinchType ?? zooming.pinchType),
38262
+ singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
38173
38263
  resetButton: merge(zooming.resetButton, options.resetZoomButton)
38174
38264
  };
38175
38265
  }
@@ -38721,7 +38811,7 @@ class Chart {
38721
38811
  // inspect the generated series.points.
38722
38812
  series.getPointsCollection()
38723
38813
  .forEach((point) => {
38724
- if (pick(point.selectedStaging, point.selected)) {
38814
+ if (point.selectedStaging ?? point.selected) {
38725
38815
  acc.push(point);
38726
38816
  }
38727
38817
  });
@@ -39159,7 +39249,7 @@ class Chart {
39159
39249
  chartWidth = chart.chartWidth;
39160
39250
  if (!chart.styledMode) {
39161
39251
  css(container, {
39162
- width: pick(optionsChart.style?.width, chartWidth + 'px')
39252
+ width: (optionsChart.style?.width ?? chartWidth + 'px')
39163
39253
  });
39164
39254
  }
39165
39255
  }
@@ -39802,7 +39892,7 @@ class Chart {
39802
39892
  const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
39803
39893
  mockTick.destroy();
39804
39894
  if (label &&
39805
- pick(labels.reserveSpace, !isNumber(options.crossing))) {
39895
+ (labels.reserveSpace ?? !isNumber(options.crossing))) {
39806
39896
  expectedSpace = label.getBBox().height +
39807
39897
  labels.distance +
39808
39898
  Math.max(isNumber(offset) ? offset : 0, 0);
@@ -40137,7 +40227,7 @@ class Chart {
40137
40227
  const chart = this;
40138
40228
  let series;
40139
40229
  if (options) { // <- not necessary
40140
- redraw = pick(redraw, true); // Defaults to true
40230
+ redraw = (redraw ?? true); // Defaults to true
40141
40231
  fireEvent(chart, 'addSeries', { options: options }, function () {
40142
40232
  series = chart.initSeries(options);
40143
40233
  chart.isDirtyLegend = true;
@@ -40228,7 +40318,7 @@ class Chart {
40228
40318
  */
40229
40319
  createAxis(coll, options) {
40230
40320
  const axis = new Axis_Axis(this, options.axis, coll);
40231
- if (pick(options.redraw, true)) {
40321
+ if (options.redraw ?? true) {
40232
40322
  this.redraw(options.animation);
40233
40323
  }
40234
40324
  return axis;
@@ -40276,7 +40366,7 @@ class Chart {
40276
40366
  }
40277
40367
  loadingDiv.className = 'highcharts-loading';
40278
40368
  // Update text
40279
- HTML_AST.setElementHTML(loadingSpan, pick(str, options.lang.loading, ''));
40369
+ HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
40280
40370
  if (!chart.styledMode) {
40281
40371
  // Update visuals
40282
40372
  css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
@@ -40514,7 +40604,7 @@ class Chart {
40514
40604
  }
40515
40605
  // No match by id found, match by index instead
40516
40606
  if (!item && chart[coll]) {
40517
- item = chart[coll][pick(newOptions.index, i)];
40607
+ item = chart[coll][(newOptions.index ?? i)];
40518
40608
  // Check if we grabbed an item with an existing but
40519
40609
  // different id (#13541). Check that the item in this
40520
40610
  // position is not internal (navigator).
@@ -40727,7 +40817,7 @@ class Chart {
40727
40817
  fireEvent(this, 'transform', params);
40728
40818
  let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
40729
40819
  for (const axis of axes) {
40730
- const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength = pick(to[wh], axis.len), fromLength = pick(from[wh], axis.len),
40820
+ const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength = (to[wh] ?? axis.len), fromLength = (from[wh] ?? axis.len),
40731
40821
  // If fingers pinched very close on this axis, treat as pan
40732
40822
  scale = Math.abs(toLength) < 10 ?
40733
40823
  1 :
@@ -41591,7 +41681,7 @@ class StackItem {
41591
41681
  r: options.borderRadius || 0,
41592
41682
  text: str,
41593
41683
  // Set default padding to 5 as it is in dataLabels #12308
41594
- padding: pick(options.padding, 5),
41684
+ padding: (options.padding ?? 5),
41595
41685
  visibility: 'hidden' // Hidden until setOffset is called
41596
41686
  };
41597
41687
  if (!chart.styledMode) {
@@ -41625,7 +41715,7 @@ class StackItem {
41625
41715
  }), { verticalAlign } = alignOptions;
41626
41716
  if (label && stackBox) {
41627
41717
  const labelBox = label.getBBox(void 0, 0), padding = label.padding;
41628
- let isJustify = pick(options.overflow, 'justify') === 'justify', visible;
41718
+ let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
41629
41719
  // Reset alignOptions property after justify #12337
41630
41720
  alignOptions.x = options.x || 0;
41631
41721
  alignOptions.y = options.y || 0;
@@ -41662,7 +41752,7 @@ class StackItem {
41662
41752
  rotationOriginY: labelBox.height / 2
41663
41753
  });
41664
41754
  // Check if the dataLabel should be visible.
41665
- if (pick(!isJustify && options.crop, true)) {
41755
+ if (((!isJustify && options.crop) ?? true)) {
41666
41756
  visible =
41667
41757
  isNumber(label.x) &&
41668
41758
  isNumber(label.y) &&
@@ -41696,7 +41786,7 @@ class StackItem {
41696
41786
  getStackBox(stackBoxProps) {
41697
41787
  const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
41698
41788
  100 :
41699
- pick(boxTop, this.total, 0), y = axis.toPixels(totalStackValue), xAxis = stackBoxProps.xAxis || chart.xAxis[0], x = pick(defaultX, xAxis.translate(this.x)) + xOffset, yZero = axis.toPixels(boxBottom ||
41789
+ (boxTop ?? this.total ?? 0), y = axis.toPixels(totalStackValue), xAxis = stackBoxProps.xAxis || chart.xAxis[0], x = (defaultX ?? xAxis.translate(this.x)) + xOffset, yZero = axis.toPixels(boxBottom ||
41700
41790
  (isNumber(axis.min) &&
41701
41791
  axis.logarithmic &&
41702
41792
  axis.logarithmic.lin2log(axis.min)) ||
@@ -41809,7 +41899,7 @@ function chartGetStacks() {
41809
41899
  if (series.options.stacking && series.reserveSpace()) {
41810
41900
  series.stackKey = [
41811
41901
  series.type,
41812
- pick(series.options.stack, ''),
41902
+ (series.options.stack ?? ''),
41813
41903
  inverted ? xAxisOptions.top : xAxisOptions.left,
41814
41904
  inverted ? xAxisOptions.height : xAxisOptions.width
41815
41905
  ].join(',');
@@ -41972,7 +42062,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
41972
42062
  stack = stacks[key][x];
41973
42063
  if (y !== null) {
41974
42064
  stack.points[pointKey] = stack.points[series.index] = [
41975
- pick(stack.cumulative, stackThreshold)
42065
+ (stack.cumulative ?? stackThreshold)
41976
42066
  ];
41977
42067
  // Record the base of the stack
41978
42068
  if (!defined(stack.cumulative)) {
@@ -42020,7 +42110,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
42020
42110
  stack.cumulative = (total || 1) - 1;
42021
42111
  }
42022
42112
  else {
42023
- stack.cumulative = correctFloat(pick(stack.cumulative, stackThreshold) + yNumber);
42113
+ stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
42024
42114
  }
42025
42115
  stack.total = total;
42026
42116
  if (y !== null) {
@@ -43035,8 +43125,7 @@ class AreaSeries extends AreaSeries_LineSeries {
43035
43125
  */
43036
43126
  getGraphPath(points) {
43037
43127
  const getGraphPath = AreaSeries_LineSeries.prototype.getGraphPath, options = this.options, stacking = options.stacking, yAxis = this.yAxis, bottomPoints = [], graphPoints = [], seriesIndex = this.index, stacks = yAxis.stacking.stacks[this.stackKey], threshold = options.threshold, translatedThreshold = Math.round(// #10909
43038
- yAxis.getThreshold(options.threshold)), connectNulls = pick(// #10574
43039
- options.connectNulls, stacking === 'percent'),
43128
+ yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
43040
43129
  // To display null points in underlying stacked series, this
43041
43130
  // series graph must be broken, and the area also fall down to
43042
43131
  // fill the gap left by the null point. #2069
@@ -43089,9 +43178,9 @@ class AreaSeries extends AreaSeries_LineSeries {
43089
43178
  // Treat points with undefined plotY as null (e.g. non-positive
43090
43179
  // values on logarithmic axis, #18422)
43091
43180
  isNull = points[i].isNull || !defined(points[i].plotY);
43092
- plotX = pick(points[i].rectPlotX, points[i].plotX);
43181
+ plotX = (points[i].rectPlotX ?? points[i].plotX);
43093
43182
  yBottom = stacking ?
43094
- pick(points[i].yBottom, translatedThreshold) :
43183
+ (points[i].yBottom ?? translatedThreshold) :
43095
43184
  translatedThreshold;
43096
43185
  if (!isNull || connectNulls) {
43097
43186
  if (!connectNulls) {
@@ -43429,10 +43518,10 @@ class SplineSeries extends SplineSeries_LineSeries {
43429
43518
  }
43430
43519
  const ret = [
43431
43520
  'C',
43432
- pick(lastPoint.rightContX, lastPoint.plotX, 0),
43433
- pick(lastPoint.rightContY, lastPoint.plotY, 0),
43434
- pick(leftContX, plotX, 0),
43435
- pick(leftContY, plotY, 0),
43521
+ (lastPoint.rightContX ?? lastPoint.plotX ?? 0),
43522
+ (lastPoint.rightContY ?? lastPoint.plotY ?? 0),
43523
+ (leftContX ?? plotX ?? 0),
43524
+ (leftContY ?? plotY ?? 0),
43436
43525
  plotX,
43437
43526
  plotY
43438
43527
  ];
@@ -44401,7 +44490,7 @@ class ColumnSeries extends Series_Series {
44401
44490
  xAxis.tickInterval ||
44402
44491
  1), // #2610
44403
44492
  xAxis.len // #1535
44404
- ), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len, pick(options.pointWidth, pointOffsetWidth * (1 - 2 * options.pointPadding))), pointPadding = (pointOffsetWidth - pointWidth) / 2,
44493
+ ), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len, (options.pointWidth ?? pointOffsetWidth * (1 - 2 * options.pointPadding))), pointPadding = (pointOffsetWidth - pointWidth) / 2,
44405
44494
  // #1251, #3737
44406
44495
  colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
44407
44496
  (groupPadding +
@@ -44965,7 +45054,7 @@ var DataLabel;
44965
45054
  // that parts of the align box is inside the plot area
44966
45055
  // (#12370). When stacking, it is always inside regardless
44967
45056
  // of the option (#15148).
44968
- pick(options.inside, !!this.options.stacking) &&
45057
+ (options.inside ?? !!this.options.stacking) &&
44969
45058
  alignTo &&
44970
45059
  chart.isInsidePlot(plotX, inverted ?
44971
45060
  alignTo.x + 1 :
@@ -45068,8 +45157,8 @@ var DataLabel;
45068
45157
  // zIndex: 20
45069
45158
  // }).add();
45070
45159
  // chart.renderer.circle(
45071
- // chart.plotLeft + pick(dataLabel.alignAttr.x, 0),
45072
- // chart.plotTop + pick(dataLabel.alignAttr.y, 0),
45160
+ // chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
45161
+ // chart.plotTop + (dataLabel.alignAttr.y ?? 0),
45073
45162
  // 2
45074
45163
  // ).attr({
45075
45164
  // fill: 'red',
@@ -45252,7 +45341,7 @@ var DataLabel;
45252
45341
  if (labelEnabled) {
45253
45342
  // Create individual options structure that can be
45254
45343
  // extended without affecting others
45255
- formatString = pick(labelOptions[point.formatPrefix + 'Format'], labelOptions.format);
45344
+ formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
45256
45345
  labelText = defined(formatString) ?
45257
45346
  DataLabel_format(formatString, point, chart) :
45258
45347
  (labelOptions[point.formatPrefix + 'Formatter'] ||
@@ -45260,7 +45349,9 @@ var DataLabel;
45260
45349
  rotation = labelOptions.rotation;
45261
45350
  if (!chart.styledMode) {
45262
45351
  // Determine the color
45263
- style.color = pick(labelOptions.color, style.color, isString(series.color) ? series.color : void 0, 'var(--highcharts-neutral-color-100)');
45352
+ style.color = (isString(labelOptions.color) ?
45353
+ labelOptions.color :
45354
+ void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
45264
45355
  // Get automated contrast color
45265
45356
  if (style.color === 'contrast') {
45266
45357
  if (backgroundColor !== 'none') {
@@ -46061,14 +46152,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
46061
46152
  return rand - Math.floor(rand);
46062
46153
  }
46063
46154
  if (jitter) {
46064
- this.points.forEach(function (point, i) {
46065
- ['x', 'y'].forEach(function (dim, j) {
46155
+ this.points.forEach((point, i) => {
46156
+ ['x', 'y'].forEach((dim, j) => {
46066
46157
  if (jitter[dim] && !point.isNull) {
46067
- const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`], translatedJitter = jitter[dim] *
46068
- axis.transA;
46158
+ const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
46069
46159
  if (axis && !axis.logarithmic) {
46070
46160
  // Identify the outer bounds of the jitter range
46071
- const min = Math.max(0, (point[plotProp] || 0) - translatedJitter), max = Math.min(axis.len, (point[plotProp] || 0) + translatedJitter);
46161
+ // (#25054)
46162
+ const translatedJitter = jitter[dim] * axis.transA *
46163
+ (axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
46072
46164
  // Find a random position within this range
46073
46165
  point[plotProp] = min +
46074
46166
  (max - min) * unrandom(i + j * len);
@@ -46173,11 +46265,13 @@ var CenteredUtilities;
46173
46265
  innerSize = parseFloat(innerSize);
46174
46266
  }
46175
46267
  const positions = [
46176
- pick(centerOption?.[0], '50%'),
46177
- pick(centerOption?.[1], '50%'),
46268
+ (centerOption?.[0] ?? '50%'),
46269
+ (centerOption?.[1] ?? '50%'),
46178
46270
  // Prevent from negative values
46179
- pick(size && size < 0 ? void 0 : options.size, '100%'),
46180
- pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')
46271
+ ((size && size < 0 ? void 0 : options.size) ?? '100%'),
46272
+ ((innerSize && innerSize < 0 ?
46273
+ void 0 :
46274
+ options.innerSize || 0) ?? '0%')
46181
46275
  ];
46182
46276
  for (i = 0; i < 4; ++i) {
46183
46277
  value = positions[i];
@@ -46379,7 +46473,7 @@ class PiePoint extends Series_Point {
46379
46473
  const series = this.series, chart = series.chart;
46380
46474
  setAnimation(animation, chart);
46381
46475
  // Redraw is true by default
46382
- redraw = pick(redraw, true);
46476
+ redraw = (redraw ?? true);
46383
46477
  this.sliced = this.options.sliced = sliced ?? !this.sliced;
46384
46478
  // Update options.data
46385
46479
  if (series.options.data) {
@@ -47184,7 +47278,8 @@ class PieSeries extends Series_Series {
47184
47278
  // Start values
47185
47279
  graphic.attr({
47186
47280
  // Animate from inner radius (#779)
47187
- r: pick(point.startR, (series.center && series.center[3] / 2)),
47281
+ r: point.startR ??
47282
+ (series.center && series.center[3] / 2),
47188
47283
  start: startAngleRad,
47189
47284
  end: startAngleRad
47190
47285
  });
@@ -47825,7 +47920,7 @@ var PieDataLabel_ColumnDataLabel;
47825
47920
  labelPosition.computed.x = x;
47826
47921
  labelPosition.computed.y = y - topOffset;
47827
47922
  // Detect overflowing data labels
47828
- if (pick(dataLabelOptions.crop, true)) {
47923
+ if (dataLabelOptions.crop ?? true) {
47829
47924
  dataLabelWidth = dataLabel.getBBox().width;
47830
47925
  let sideOverflow;
47831
47926
  // Overflow left
@@ -48341,7 +48436,10 @@ function OverlappingDataLabels_onChartRender() {
48341
48436
  if (point.visible) {
48342
48437
  (point.dataLabels || []).forEach((label) => {
48343
48438
  const options = label.options || {};
48344
- label.labelrank = pick(options.labelrank, point.labelrank, point.shapeArgs?.height); // #4118
48439
+ label.labelrank =
48440
+ options.labelrank ??
48441
+ point.labelrank ??
48442
+ point.shapeArgs?.height; // #4118
48345
48443
  // #21725: Sync target positions for generic overlap
48346
48444
  // checking. During animations (e.g., toggling a
48347
48445
  // point), DOM positions may overlap. We force
@@ -48830,10 +48928,12 @@ var Responsive;
48830
48928
  */
48831
48929
  function matchResponsiveRule(rule, matches) {
48832
48930
  const condition = rule.condition, fn = condition.callback || function () {
48833
- return (this.chartWidth <= pick(condition.maxWidth, Number.MAX_VALUE) &&
48834
- this.chartHeight <= pick(condition.maxHeight, Number.MAX_VALUE) &&
48835
- this.chartWidth >= pick(condition.minWidth, 0) &&
48836
- this.chartHeight >= pick(condition.minHeight, 0));
48931
+ return (this.chartWidth <=
48932
+ (condition.maxWidth ?? Number.MAX_VALUE) &&
48933
+ this.chartHeight <=
48934
+ (condition.maxHeight ?? Number.MAX_VALUE) &&
48935
+ this.chartWidth >= (condition.minWidth ?? 0) &&
48936
+ this.chartHeight >= (condition.minHeight ?? 0));
48837
48937
  };
48838
48938
  if (fn.call(this, this)) {
48839
48939
  matches.push(rule._id);
@@ -49115,7 +49215,12 @@ G.SVGElement = SVG_SVGElement;
49115
49215
  G.SVGRenderer = SVG_SVGRenderer;
49116
49216
  G.Templating = Core_Templating;
49117
49217
  G.Tick = Axis_Tick;
49118
- G.Time = Core_Time;
49218
+ G.Time = class extends Core_Time {
49219
+ constructor(options, lang) {
49220
+ const defaultOptions = Defaults.getOptions();
49221
+ super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
49222
+ }
49223
+ };
49119
49224
  G.Tooltip = Core_Tooltip;
49120
49225
  // Utilities
49121
49226
  G.addEvent = addEvent;