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,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v13.0.1 (2026-08-17)
2
+ * @license Highcharts JS v13.0.2 (2026-08-27)
3
3
  * @module highcharts/highcharts-autoload
4
4
  *
5
5
  * (c) 2009-2024 Torstein Honsi
@@ -91,7 +91,7 @@ var Globals;
91
91
  * Constants
92
92
  *
93
93
  * */
94
- Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.1', Globals.win = (typeof window !== 'undefined' ?
94
+ Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
95
95
  window :
96
96
  {}), // eslint-disable-line node/no-unsupported-features/es-builtins
97
97
  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 = [
@@ -418,6 +418,29 @@ const ChartDefaults = {
418
418
  * @context Highcharts.Chart
419
419
  * @apioption chart.events.load
420
420
  */
421
+ /**
422
+ * Fires while the chart is panned by mouse drag. Panning must be
423
+ * enabled through [chart.panning](#chart.panning). One parameter,
424
+ * `event`, is passed to the function, containing common event
425
+ * information as well as `event.originalEvent`, the underlying pointer
426
+ * event. Note that the event fires for every mouse move during the
427
+ * drag, not once per gesture.
428
+ *
429
+ * Calling `event.preventDefault()` or returning false prevents the
430
+ * default panning of the axes. In Highcharts Maps, and on ordinal axes
431
+ * in Highcharts Stock, the panning is applied outside the default
432
+ * action and is not prevented.
433
+ *
434
+ * Panning by touch does not fire this event, unless
435
+ * [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
436
+ * no zoom type is set. Single-finger drags are then handled as mouse
437
+ * drags and fire this event.
438
+ *
439
+ * @type {Highcharts.ChartPanCallbackFunction}
440
+ * @since 7.0.2
441
+ * @context Highcharts.Chart
442
+ * @apioption chart.events.pan
443
+ */
421
444
  /**
422
445
  * Fires when the chart is redrawn, either after a call to
423
446
  * `chart.redraw()` or after an axis, series or point is modified with
@@ -2432,7 +2455,7 @@ function getStyle(el, prop, toInt) {
2432
2455
  const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
2433
2456
  if (css) {
2434
2457
  style = css.getPropertyValue(prop);
2435
- if (pick(toInt, prop !== 'opacity')) {
2458
+ if (toInt ?? prop !== 'opacity') {
2436
2459
  style = pInt(style);
2437
2460
  }
2438
2461
  }
@@ -2682,7 +2705,7 @@ function merge(extendOrSource, ...sources) {
2682
2705
  function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
2683
2706
  let i, retInterval = interval;
2684
2707
  // Round to a tenfold of 1, 2, 2.5 or 5
2685
- magnitude = pick(magnitude, getMagnitude(interval));
2708
+ magnitude = (magnitude ?? getMagnitude(interval));
2686
2709
  const normalized = interval / magnitude;
2687
2710
  // Multiples for a linear scale
2688
2711
  if (!multiples) {
@@ -2795,20 +2818,22 @@ function pad(number, length, padder) {
2795
2818
  .replace('-', '')
2796
2819
  .length).join(padder || '0') + number;
2797
2820
  }
2798
- /* eslint-disable jsdoc/check-param-names */
2821
+ /* eslint-disable valid-jsdoc */
2799
2822
  /**
2800
2823
  * Return the first value that is not null or undefined.
2801
2824
  *
2825
+ * @deprecated 13.0.2
2826
+ * Use nullish coalescing (`??`) or explicit fallback logic instead.
2827
+ *
2802
2828
  * @function Highcharts.pick<T>
2803
2829
  *
2804
- * @param {...Array<T|null|undefined>} items
2830
+ * @param {...(T|null|undefined)} args
2805
2831
  * Variable number of arguments to inspect.
2806
2832
  *
2807
2833
  * @return {T}
2808
2834
  * The value of the first argument that is not null or undefined.
2809
2835
  */
2810
- function pick() {
2811
- const args = arguments;
2836
+ function pick(...args) {
2812
2837
  const length = args.length;
2813
2838
  for (let i = 0; i < length; i++) {
2814
2839
  const arg = args[i];
@@ -2817,7 +2842,7 @@ function pick() {
2817
2842
  }
2818
2843
  }
2819
2844
  }
2820
- /* eslint-enable jsdoc/check-param-names */
2845
+ /* eslint-enable valid-jsdoc */
2821
2846
  /**
2822
2847
  * Shortcut for parseInt
2823
2848
  *
@@ -3200,7 +3225,8 @@ function insertItem(item, collection) {
3200
3225
  !collection[i] ||
3201
3226
  // Handle index option, the element to insert has lower index
3202
3227
  (isNumber(indexOption) &&
3203
- indexOption < pick(collection[i].options.index, collection[i]._i)) ||
3228
+ indexOption < (collection[i].options.index ??
3229
+ collection[i]._i)) ||
3204
3230
  // Insert the new item before other internal items
3205
3231
  // (navigator)
3206
3232
  collection[i].options.isInternal) {
@@ -3286,7 +3312,7 @@ const uniqueKey = (function () {
3286
3312
  * State of the serial mode.
3287
3313
  */
3288
3314
  function useSerialIds(mode) {
3289
- return (serialMode = pick(mode, serialMode));
3315
+ return (serialMode = (mode ?? serialMode));
3290
3316
  }
3291
3317
  /* *
3292
3318
  *
@@ -3752,6 +3778,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
3752
3778
  *
3753
3779
  * @param {Highcharts.TimeOptions} [options] Time options as defined in
3754
3780
  * [chart.options.time](/highcharts/time).
3781
+ *
3782
+ * @param {Highcharts.LangOptions} [lang]
3783
+ * Language options. When `options.locale` is not set, `lang.locale` is used as
3784
+ * the locale fallback for locale-aware date formatting.
3755
3785
  */
3756
3786
  class TimeBase {
3757
3787
  /* *
@@ -3770,8 +3800,8 @@ class TimeBase {
3770
3800
  };
3771
3801
  this.variableTimezone = false;
3772
3802
  this.Date = TimeBase_win.Date;
3773
- this.update(options);
3774
3803
  this.lang = lang;
3804
+ this.update(options);
3775
3805
  }
3776
3806
  /* *
3777
3807
  *
@@ -3883,7 +3913,9 @@ class TimeBase {
3883
3913
  /**
3884
3914
  * Shorthand to get a cached `Intl.DateTimeFormat` instance.
3885
3915
  */
3886
- dateTimeFormat(options, timestamp, locale = this.options.locale || pageLang) {
3916
+ dateTimeFormat(options, timestamp, locale = (this.options.locale ||
3917
+ this.lang?.locale ||
3918
+ pageLang)) {
3887
3919
  const cacheKey = JSON.stringify(options) + locale;
3888
3920
  if (isString(options)) {
3889
3921
  options = this.str2dtf(options);
@@ -7823,6 +7855,41 @@ const DefaultOptions = {
7823
7855
  * @param {global.Event} event
7824
7856
  * The event that occurred.
7825
7857
  */
7858
+ /**
7859
+ * Gets fired while the chart is panned by mouse drag. Calling
7860
+ * `event.preventDefault()` or returning `false` prevents the default panning
7861
+ * of the axes.
7862
+ *
7863
+ * @callback Highcharts.ChartPanCallbackFunction
7864
+ *
7865
+ * @param {Highcharts.Chart} this
7866
+ * The chart on which the event occurred.
7867
+ *
7868
+ * @param {Highcharts.ChartPanEventObject} event
7869
+ * The event that occurred.
7870
+ */
7871
+ /**
7872
+ * Contains common event information. Through the `originalEvent` property you
7873
+ * can access the pointer event that triggered the panning.
7874
+ *
7875
+ * @interface Highcharts.ChartPanEventObject
7876
+ */ /**
7877
+ * The pointer event that triggered the panning.
7878
+ * @name Highcharts.ChartPanEventObject#originalEvent
7879
+ * @type {Highcharts.PointerEventObject}
7880
+ */ /**
7881
+ * Prevents the default behavior of the event.
7882
+ * @name Highcharts.ChartPanEventObject#preventDefault
7883
+ * @type {Function}
7884
+ */ /**
7885
+ * The event target.
7886
+ * @name Highcharts.ChartPanEventObject#target
7887
+ * @type {Highcharts.Chart}
7888
+ */ /**
7889
+ * The event type.
7890
+ * @name Highcharts.ChartPanEventObject#type
7891
+ * @type {"pan"}
7892
+ */
7826
7893
  /**
7827
7894
  * Fires when the chart is redrawn, either after a call to `chart.redraw()` or
7828
7895
  * after an axis, series or point is modified with the `redraw` option set to
@@ -8198,7 +8265,9 @@ Color.None = new Color(''); // Must be last static for init
8198
8265
  */
8199
8266
  /**
8200
8267
  * A valid color type than can be parsed and handled by Highcharts. It can be a
8201
- * color string, a gradient object, or a pattern object.
8268
+ * color string (including CSS expressions), a gradient object, or a pattern
8269
+ * object. Read more about colors in the [Highcharts
8270
+ * documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
8202
8271
  *
8203
8272
  * @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
8204
8273
  */
@@ -8741,7 +8810,8 @@ Fx.timers = [];
8741
8810
  * so it should be moved to the SVGRenderer.
8742
8811
  */
8743
8812
  function setAnimation(animation, chart) {
8744
- chart.renderer.globalAnimation = pick(animation, chart.options.chart.animation, true);
8813
+ chart.renderer.globalAnimation =
8814
+ animation ?? chart.options.chart.animation ?? true;
8745
8815
  }
8746
8816
  /**
8747
8817
  * Get the animation in object form, where a disabled animation is always
@@ -9804,7 +9874,7 @@ function format(str = '', ctx, owner) {
9804
9874
  replacement = `"${replacement}"`;
9805
9875
  }
9806
9876
  }
9807
- str = str.replace(match.find, pick(replacement, ''));
9877
+ str = str.replace(match.find, (replacement ?? ''));
9808
9878
  });
9809
9879
  return hasSub ? format(str, ctx, owner) : str;
9810
9880
  }
@@ -10053,7 +10123,7 @@ var RendererUtilities;
10053
10123
  boxes = boxes.map((box) => ({
10054
10124
  size: box.size,
10055
10125
  targets: [box.target],
10056
- align: pick(box.align, 0.5)
10126
+ align: (box.align ?? 0.5)
10057
10127
  }));
10058
10128
  while (overlapping) {
10059
10129
  // Initial positions: target centered in box
@@ -10211,8 +10281,10 @@ class SVGElement {
10211
10281
  * Property value.
10212
10282
  */
10213
10283
  _defaultGetter(key) {
10214
- let ret = pick(this[key + 'Value'], // Align getter
10215
- this[key], this.element ? this.element.getAttribute(key) : null, 0);
10284
+ let ret = (this[key + 'Value'] ??
10285
+ this[key] ??
10286
+ (this.element ? this.element.getAttribute(key) : null) ??
10287
+ 0);
10216
10288
  if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
10217
10289
  ret = parseFloat(ret);
10218
10290
  }
@@ -10375,7 +10447,7 @@ class SVGElement {
10375
10447
  }
10376
10448
  alignTo = void 0; // Do not use the box
10377
10449
  }
10378
- const alignToBox = pick(alignTo, renderer[alignToKey], renderer),
10450
+ const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
10379
10451
  // Default: left align
10380
10452
  x = (alignToBox.x || 0) + (alignOptions.x || 0) +
10381
10453
  ((alignToBox.width || 0) - (alignOptions.width || 0)) *
@@ -10435,7 +10507,7 @@ class SVGElement {
10435
10507
  * Returns the SVGElement for chaining.
10436
10508
  */
10437
10509
  animate(params, options, complete) {
10438
- const animOptions = animObject(pick(options, this.renderer.globalAnimation, true)), deferTime = animOptions.defer;
10510
+ const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
10439
10511
  // When the page is hidden save resources in the background by not
10440
10512
  // running animation at all (#9749).
10441
10513
  if (SVGElement_doc.hidden) {
@@ -10927,7 +10999,7 @@ class SVGElement {
10927
10999
  .split(','); // Ending comma
10928
11000
  i = v.length;
10929
11001
  while (i--) {
10930
- v[i] = '' + (pInt(v[i]) * pick(strokeWidth, NaN));
11002
+ v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
10931
11003
  }
10932
11004
  value = v.join(',').replace(/NaN/g, 'none'); // #3226
10933
11005
  this.element.setAttribute('stroke-dasharray', value);
@@ -11067,7 +11139,7 @@ class SVGElement {
11067
11139
  * The bounding box with `x`, `y`, `width` and `height` properties.
11068
11140
  */
11069
11141
  getBBox(reload, rot) {
11070
- 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 &&
11142
+ 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 &&
11071
11143
  SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
11072
11144
  renderer.rootFontSize,
11073
11145
  this.textWidth, // #7874, also useHTML
@@ -11593,7 +11665,7 @@ class SVGElement {
11593
11665
  symbolAttr(hash) {
11594
11666
  const wrapper = this;
11595
11667
  SVGElement.symbolCustomAttribs.forEach(function (key) {
11596
- wrapper[key] = pick(hash[key], wrapper[key]);
11668
+ wrapper[key] = (hash[key] ?? wrapper[key]);
11597
11669
  });
11598
11670
  wrapper.attr({
11599
11671
  d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
@@ -11633,7 +11705,7 @@ class SVGElement {
11633
11705
  }
11634
11706
  // Replace text content and escape markup
11635
11707
  titleNode.textContent = replaceNested(// Scan #[73]
11636
- pick(value, ''), // #3276, #3895
11708
+ (value ?? ''), // #3276, #3895
11637
11709
  [/<[^>]*>/g, '']).replace(/&lt;/g, '<').replace(/&gt;/g, '>');
11638
11710
  }
11639
11711
  /**
@@ -12411,7 +12483,7 @@ class SVGLabel extends SVG_SVGElement {
12411
12483
  if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
12412
12484
  this.updateBoxSize();
12413
12485
  }
12414
- const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = pick(this.paddingLeft, padding), rotation = rot ?? (this.rotation || 0);
12486
+ const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
12415
12487
  let bBox = {
12416
12488
  width,
12417
12489
  height,
@@ -12464,7 +12536,7 @@ class SVGLabel extends SVG_SVGElement {
12464
12536
  this.attr({
12465
12537
  // Alignment is available now (#3295, 0 not rendered if given
12466
12538
  // as a value)
12467
- text: pick(this.textStr, ''),
12539
+ text: (this.textStr ?? ''),
12468
12540
  x: this.x || 0,
12469
12541
  y: this.y || 0
12470
12542
  });
@@ -12620,8 +12692,8 @@ class SVGLabel extends SVG_SVGElement {
12620
12692
  /** @internal */
12621
12693
  getPaddedWidth() {
12622
12694
  const padding = this.padding;
12623
- const paddingLeft = pick(this.paddingLeft, padding);
12624
- const paddingRight = pick(this.paddingRight, padding);
12695
+ const paddingLeft = (this.paddingLeft ?? padding);
12696
+ const paddingRight = (this.paddingRight ?? padding);
12625
12697
  return ((this.widthSetting || this.bBox.width || 0) +
12626
12698
  paddingLeft +
12627
12699
  paddingRight);
@@ -12722,7 +12794,7 @@ function arc(cx, cy, w, h, options) {
12722
12794
  const arc = [];
12723
12795
  if (options) {
12724
12796
  let start = options.start || 0, end = options.end || 0;
12725
- const rx = pick(options.r, w), ry = pick(options.r, h || w),
12797
+ const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
12726
12798
  // Subtract a small number to prevent cos and sin of start and end
12727
12799
  // from becoming equal on 360 arcs (#1561). See "Arc proximity"
12728
12800
  // tests at samples/unit-tests/svgrenderer/symbol/demo.js
@@ -12732,16 +12804,17 @@ function arc(cx, cy, w, h, options) {
12732
12804
  start = Math.PI / 2;
12733
12805
  end = Math.PI * 2.5 - proximity;
12734
12806
  }
12735
- 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),
12807
+ 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),
12736
12808
  // Proximity takes care of rounding errors around PI (#6971)
12737
- longArc = pick(options.longArc, end - start - Math.PI < proximity ? 0 : 1);
12809
+ longArc = options.longArc ??
12810
+ (end - start - Math.PI < proximity ? 0 : 1);
12738
12811
  let arcSegment = [
12739
12812
  'A', // ArcTo
12740
12813
  rx, // X radius
12741
12814
  ry, // Y radius
12742
12815
  0, // Slanting
12743
12816
  longArc, // Long or short arc
12744
- pick(options.clockwise, 1), // Clockwise
12817
+ (options.clockwise ?? 1), // Clockwise
12745
12818
  // Use a static pixel offset for full circle (#21701)
12746
12819
  cx + (fullCircle ? 0.001 : rx * cosEnd),
12747
12820
  cy + ry * sinEnd
@@ -13272,7 +13345,7 @@ class TextBuilder {
13272
13345
  * @internal
13273
13346
  */
13274
13347
  buildSVG() {
13275
- 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,
13348
+ 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,
13276
13349
  // The buildText code is quite heavy, so if we're not changing
13277
13350
  // something that affects the text, skip it (#6113).
13278
13351
  textCache = [
@@ -13856,7 +13929,7 @@ class SVGRenderer {
13856
13929
  this.url = this.getReferenceURL();
13857
13930
  // Add description
13858
13931
  const desc = this.createElement('desc').add();
13859
- desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.1'));
13932
+ desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
13860
13933
  this.defs = this.createElement('defs').add();
13861
13934
  this.allowHTML = allowHTML;
13862
13935
  this.forExport = forExport;
@@ -14642,7 +14715,7 @@ class SVGRenderer {
14642
14715
  this.attr('height')
14643
14716
  });
14644
14717
  },
14645
- duration: pick(animate, true) ? void 0 : 0
14718
+ duration: (animate ?? true) ? void 0 : 0
14646
14719
  });
14647
14720
  renderer.alignElements();
14648
14721
  }
@@ -14800,8 +14873,8 @@ class SVGRenderer {
14800
14873
  // The image width is not always the same as the symbol width. The
14801
14874
  // image may be centered within the symbol, as is the case when
14802
14875
  // image shapes are used as label backgrounds, for example in flags.
14803
- img.imgwidth = pick(options?.width, symbolSizes[imageSrc]?.width);
14804
- img.imgheight = pick(options?.height, symbolSizes[imageSrc]?.height);
14876
+ img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
14877
+ img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
14805
14878
  /**
14806
14879
  * Set the size and position
14807
14880
  */
@@ -19280,11 +19353,11 @@ class Tick {
19280
19353
  * @function Highcharts.Tick#addLabel
19281
19354
  */
19282
19355
  addLabel() {
19283
- 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;
19356
+ 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;
19284
19357
  let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
19285
19358
  // The context value
19286
19359
  let value = this.parameters.category || (categories ?
19287
- pick(categories[pos], names[pos], pos) :
19360
+ (categories[pos] ?? names[pos] ?? pos) :
19288
19361
  pos);
19289
19362
  if (log && isNumber(value)) {
19290
19363
  value = correctFloat(log.lin2log(value));
@@ -19531,7 +19604,7 @@ class Tick {
19531
19604
  labelOptions.y;
19532
19605
  }
19533
19606
  x = x +
19534
- pick(labelOptions.x, [0, 1, 0, -1][axis.side] * distance) +
19607
+ (labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
19535
19608
  labelOffsetCorrection +
19536
19609
  rotCorr.x -
19537
19610
  (tickmarkOffset && horiz ?
@@ -19586,7 +19659,7 @@ class Tick {
19586
19659
  * @function Highcharts.Tick#handleOverflow
19587
19660
  */
19588
19661
  handleOverflow(xy) {
19589
- 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 = {};
19662
+ 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 = {};
19590
19663
  let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
19591
19664
  // Check if the label overshoots the chart spacing box. If it does, move
19592
19665
  // it. If it now overshoots the slotWidth, add ellipsis.
@@ -19653,9 +19726,8 @@ class Tick {
19653
19726
  * @param {number} [opacity]
19654
19727
  */
19655
19728
  render(index, old, opacity) {
19656
- 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;
19657
- const labelOpacity = pick(opacity, tick.label?.newOpacity, // #15528
19658
- 1);
19729
+ 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;
19730
+ const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
19659
19731
  // Anything that is not between `axis.pos` and `axis.pos + axis.length`
19660
19732
  // should not be visible (#20166). The `correctFloat` is for reversed
19661
19733
  // axes in Safari.
@@ -19683,7 +19755,7 @@ class Tick {
19683
19755
  * @param {number} opacity The opacity of the grid line
19684
19756
  */
19685
19757
  renderGridLine(old, opacity) {
19686
- 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;
19758
+ 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;
19687
19759
  let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
19688
19760
  if (tick.type === 'minor') {
19689
19761
  gridLineWidth = options.minorGridLineWidth;
@@ -19739,7 +19811,7 @@ class Tick {
19739
19811
  * @param {number} opacity The opacity of the mark
19740
19812
  */
19741
19813
  renderMark(xy, opacity) {
19742
- 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
19814
+ 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
19743
19815
  tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
19744
19816
  let mark = tick.mark;
19745
19817
  const isNewMark = !mark;
@@ -19784,7 +19856,7 @@ class Tick {
19784
19856
  * @param {number} index The index of the tick
19785
19857
  */
19786
19858
  renderLabel(xy, old, opacity, index) {
19787
- 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;
19859
+ 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;
19788
19860
  let show = true;
19789
19861
  if (label && isNumber(x)) {
19790
19862
  label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
@@ -19889,12 +19961,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
19889
19961
 
19890
19962
 
19891
19963
 
19892
- const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, pick(axis.options.allowDecimals,
19893
- // If the tick interval is greater than 0.5, avoid decimals, as
19894
- // linear axes are often used to render discrete values (#3363). If
19895
- // a tick amount is set, allow decimals by default, as it increases
19896
- // the chances for a good fit.
19897
- tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
19964
+ const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
19898
19965
  extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
19899
19966
  /* *
19900
19967
  *
@@ -20002,7 +20069,7 @@ class Axis {
20002
20069
  axis.coll = coll;
20003
20070
  fireEvent(this, 'init', { userOptions: userOptions });
20004
20071
  // Needed in setOptions
20005
- axis.opposite = pick(userOptions.opposite, axis.opposite);
20072
+ axis.opposite = (userOptions.opposite ?? axis.opposite);
20006
20073
  /**
20007
20074
  * The side on which the axis is rendered. 0 is top, 1 is right, 2
20008
20075
  * is bottom and 3 is left.
@@ -20010,10 +20077,9 @@ class Axis {
20010
20077
  * @name Highcharts.Axis#side
20011
20078
  * @type {number}
20012
20079
  */
20013
- axis.side = pick(userOptions.side, axis.side, (horiz ?
20080
+ axis.side = (userOptions.side ?? axis.side ?? (horiz ?
20014
20081
  (axis.opposite ? 0 : 2) : // Top : bottom
20015
- (axis.opposite ? 1 : 3)) // Right : left
20016
- );
20082
+ (axis.opposite ? 1 : 3)));
20017
20083
  /**
20018
20084
  * Current options for the axis after merge of defaults and user's
20019
20085
  * options.
@@ -20042,7 +20108,7 @@ class Axis {
20042
20108
  * @name Highcharts.Axis#reversed
20043
20109
  * @type {boolean}
20044
20110
  */
20045
- axis.reversed = pick(options.reversed, axis.reversed);
20111
+ axis.reversed = (options.reversed ?? axis.reversed);
20046
20112
  axis.visible = options.visible;
20047
20113
  axis.zoomEnabled = options.zoomEnabled;
20048
20114
  // Initial categories
@@ -20130,7 +20196,7 @@ class Axis {
20130
20196
  * @name Highcharts.Axis#crosshair
20131
20197
  * @type {boolean|Highcharts.AxisCrosshairOptions}
20132
20198
  */
20133
- const crosshair = pick(options.crosshair, splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1]);
20199
+ const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
20134
20200
  axis.crosshair = crosshair === true ? {} : crosshair;
20135
20201
  // Register. Don't add it again on Axis.update().
20136
20202
  if (chart.axes.indexOf(axis) === -1) { //
@@ -20314,8 +20380,8 @@ class Axis {
20314
20380
  seriesDataMax = xExtremes.max;
20315
20381
  }
20316
20382
  if (xData.length) {
20317
- axis.dataMin = Math.min(pick(axis.dataMin, seriesDataMin), seriesDataMin);
20318
- axis.dataMax = Math.max(pick(axis.dataMax, seriesDataMax), seriesDataMax);
20383
+ axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
20384
+ axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
20319
20385
  }
20320
20386
  }
20321
20387
  // Get dataMin and dataMax for Y axes, as well as handle
@@ -20330,11 +20396,11 @@ class Axis {
20330
20396
  // doesn't have active y data, we continue with nulls
20331
20397
  if (isNumber(dataExtremes.dataMin)) {
20332
20398
  seriesDataMin = dataExtremes.dataMin;
20333
- axis.dataMin = Math.min(pick(axis.dataMin, seriesDataMin), seriesDataMin);
20399
+ axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
20334
20400
  }
20335
20401
  if (isNumber(dataExtremes.dataMax)) {
20336
20402
  seriesDataMax = dataExtremes.dataMax;
20337
- axis.dataMax = Math.max(pick(axis.dataMax, seriesDataMax), seriesDataMax);
20403
+ axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
20338
20404
  }
20339
20405
  // Adjust to threshold
20340
20406
  if (defined(threshold)) {
@@ -20489,7 +20555,7 @@ class Axis {
20489
20555
  translatedValue
20490
20556
  };
20491
20557
  fireEvent(this, 'getPlotLinePath', evt, function (e) {
20492
- translatedValue = pick(translatedValue, axis.translate(value, void 0, void 0, old));
20558
+ translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
20493
20559
  // Keep the translated value within sane bounds, and avoid Infinity
20494
20560
  // to fail the isNumber test (#7709).
20495
20561
  translatedValue = clamp(translatedValue, -1e9, 1e9);
@@ -20578,7 +20644,7 @@ class Axis {
20578
20644
  getMinorTickInterval() {
20579
20645
  const { minorTicks, minorTickInterval } = this.options;
20580
20646
  if (minorTicks === true) {
20581
- return pick(minorTickInterval, 'auto');
20647
+ return (minorTickInterval ?? 'auto');
20582
20648
  }
20583
20649
  if (minorTicks === false) {
20584
20650
  return;
@@ -20861,7 +20927,9 @@ class Axis {
20861
20927
  const seriesPointRange = hasCategories ?
20862
20928
  1 :
20863
20929
  (isXAxis ?
20864
- pick(series.options.pointRange, closestPointRange, 0) :
20930
+ (series.options.pointRange ??
20931
+ closestPointRange ??
20932
+ 0) :
20865
20933
  (axis.axisPointRange || 0)), // #2806
20866
20934
  pointPlacement = series.options.pointPlacement;
20867
20935
  pointRange = Math.max(pointRange, seriesPointRange);
@@ -20945,14 +21013,16 @@ class Axis {
20945
21013
  this.getTickAmount();
20946
21014
  }
20947
21015
  // Min or max set either by zooming/setExtremes or initial options
20948
- hardMin = pick(axis.userMin, time.parse(options.min));
20949
- hardMax = pick(axis.userMax, time.parse(options.max));
21016
+ hardMin = (axis.userMin ?? time.parse(options.min));
21017
+ hardMax = (axis.userMax ?? time.parse(options.max));
20950
21018
  // Linked axis gets the extremes from the parent axis
20951
21019
  if (linkedParent) {
20952
21020
  axis.linkedParent = linkedParent;
20953
21021
  linkedParentExtremes = linkedParent.getExtremes();
20954
- axis.min = pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);
20955
- axis.max = pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);
21022
+ axis.min =
21023
+ linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
21024
+ axis.max =
21025
+ linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
20956
21026
  if (this.type !== linkedParent.type) {
20957
21027
  // Can't link axes of different type
20958
21028
  error(11, true, chart);
@@ -20974,14 +21044,14 @@ class Axis {
20974
21044
  maxPadding = 0;
20975
21045
  }
20976
21046
  }
20977
- axis.min = pick(hardMin, thresholdMin, dataMin);
20978
- axis.max = pick(hardMax, thresholdMax, dataMax);
21047
+ axis.min = (hardMin ?? thresholdMin ?? dataMin);
21048
+ axis.max = (hardMax ?? thresholdMax ?? dataMax);
20979
21049
  }
20980
21050
  if (isNumber(axis.max) && isNumber(axis.min)) {
20981
21051
  if (logarithmic) {
20982
21052
  if (axis.positiveValuesOnly &&
20983
21053
  !secondPass &&
20984
- Math.min(axis.min, pick(dataMin, axis.min)) <= 0) { // #978
21054
+ Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
20985
21055
  // Can't plot negative values on log axis
20986
21056
  error(10, true, chart);
20987
21057
  }
@@ -21087,16 +21157,13 @@ class Axis {
21087
21157
  axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
21088
21158
  }
21089
21159
  else {
21090
- axis.tickInterval = pick(tickIntervalOption, this.tickAmount ?
21160
+ axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
21091
21161
  range / Math.max(this.tickAmount - 1, 1) :
21092
- void 0,
21093
- // For categorized axis, 1 is default, for linear axis use
21094
- // tickPix
21095
- categories ?
21096
- 1 :
21097
- // Don't let it be more than the data range
21098
- range * tickPixelIntervalOption /
21099
- Math.max(axis.len, tickPixelIntervalOption));
21162
+ categories ?
21163
+ 1 :
21164
+ // Don't let it be more than the data range
21165
+ range * tickPixelIntervalOption /
21166
+ Math.max(axis.len, tickPixelIntervalOption));
21100
21167
  }
21101
21168
  // Now we're finished detecting min and max, crop and group series data.
21102
21169
  // This is in turn needed in order to find tick positions in ordinal
@@ -21126,12 +21193,9 @@ class Axis {
21126
21193
  }
21127
21194
  // Before normalizing the tick interval, handle minimum tick interval.
21128
21195
  // This applies only if tickInterval is not defined.
21129
- const minTickInterval = pick(options.minTickInterval,
21130
- // In datetime axes, don't go below the data interval, except when
21131
- // there are scatter-like series involved (#13369).
21132
- dateTime &&
21133
- !axis.series.some((s) => !s.sorted) ?
21134
- axis.closestPointRange : 0);
21196
+ const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
21197
+ axis.closestPointRange :
21198
+ 0);
21135
21199
  if (!tickIntervalOption &&
21136
21200
  minTickInterval &&
21137
21201
  axis.tickInterval < minTickInterval) {
@@ -21461,7 +21525,7 @@ class Axis {
21461
21525
  * @function Highcharts.Axis#adjustTickAmount
21462
21526
  */
21463
21527
  adjustTickAmount() {
21464
- const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = pick(axis.threshold, axis.softThreshold ? 0 : null);
21528
+ const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
21465
21529
  let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
21466
21530
  const
21467
21531
  // Extend the tickPositions by appending a position
@@ -21697,7 +21761,8 @@ class Axis {
21697
21761
  offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
21698
21762
  // Check for percentage based input values. Rounding fixes problems
21699
21763
  // with column overflow and plot line filtering (#4898, #4899)
21700
- 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));
21764
+ width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
21765
+ 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));
21701
21766
  // Expose basic values to use in Series object and navigator
21702
21767
  this.bottom = chart.chartHeight - height - top;
21703
21768
  this.right = chart.chartWidth - width - left;
@@ -21808,9 +21873,7 @@ class Axis {
21808
21873
  * An array of tickLength and tickWidth
21809
21874
  */
21810
21875
  tickSize(prefix) {
21811
- const options = this.options, tickWidth = pick(options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'],
21812
- // Default to 1 on linear and datetime X axes
21813
- prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
21876
+ const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
21814
21877
  let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
21815
21878
  if (tickWidth && tickLength) {
21816
21879
  // Negate the length
@@ -21897,7 +21960,7 @@ class Axis {
21897
21960
  newTickInterval = getStep(lineHeight * 0.75);
21898
21961
  }
21899
21962
  this.autoRotation = autoRotation;
21900
- this.labelRotation = pick(rotation, isNumber(rotationOption) ? rotationOption : 0);
21963
+ this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
21901
21964
  return labelOptions.step ? tickInterval : newTickInterval;
21902
21965
  }
21903
21966
  /**
@@ -22249,7 +22312,7 @@ class Axis {
22249
22312
  titleOffsetOption = axisTitleOptions.offset;
22250
22313
  titleMargin = defined(titleOffsetOption) ?
22251
22314
  0 :
22252
- pick(axisTitleOptions.margin, horiz ? 5 : 10);
22315
+ axisTitleOptions.margin ?? (horiz ? 5 : 10);
22253
22316
  }
22254
22317
  }
22255
22318
  // Render the axis line
@@ -22760,9 +22823,9 @@ class Axis {
22760
22823
  }
22761
22824
  else if (defined(point)) {
22762
22825
  // #3834
22763
- pos = pick(this.coll !== 'colorAxis' ?
22764
- point.crosshairPos : // 3D axis extension
22765
- null, this.isXAxis ?
22826
+ pos = (this.coll !== 'colorAxis' ?
22827
+ point.crosshairPos :
22828
+ null) ?? (this.isXAxis ?
22766
22829
  point.plotX :
22767
22830
  this.len - point.plotY);
22768
22831
  }
@@ -22771,7 +22834,7 @@ class Axis {
22771
22834
  // Value, only used on radial
22772
22835
  value: point && (this.isXAxis ?
22773
22836
  point.x :
22774
- pick(point.stackY, point.y)),
22837
+ (point.stackY ?? point.y ?? void 0)),
22775
22838
  translatedValue: pos
22776
22839
  };
22777
22840
  if (chart.polar) {
@@ -22804,7 +22867,7 @@ class Axis {
22804
22867
  (categorized ? 'category ' : 'thin ') +
22805
22868
  (options.className || ''))
22806
22869
  .attr({
22807
- zIndex: pick(options.zIndex, 2)
22870
+ zIndex: (options.zIndex ?? 2)
22808
22871
  })
22809
22872
  .clip(options.clip === false ?
22810
22873
  void 0 :
@@ -22819,7 +22882,7 @@ class Axis {
22819
22882
  // eslint-disable-next-line max-len
22820
22883
  'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
22821
22884
  'var(--highcharts-neutral-color-20)'),
22822
- 'stroke-width': pick(options.width, 1)
22885
+ 'stroke-width': (options.width ?? 1)
22823
22886
  }).css({
22824
22887
  'pointer-events': 'none'
22825
22888
  });
@@ -22885,7 +22948,7 @@ class Axis {
22885
22948
  this.destroy(true);
22886
22949
  this.init(chart, options);
22887
22950
  chart.isDirtyBox = true;
22888
- if (pick(redraw, true)) {
22951
+ if (redraw ?? true) {
22889
22952
  chart.redraw();
22890
22953
  }
22891
22954
  }
@@ -22915,7 +22978,7 @@ class Axis {
22915
22978
  chart.orderItems(coll);
22916
22979
  this.destroy();
22917
22980
  chart.isDirtyBox = true;
22918
- if (pick(redraw, true)) {
22981
+ if (redraw ?? true) {
22919
22982
  chart.redraw();
22920
22983
  }
22921
22984
  }
@@ -23571,8 +23634,10 @@ var LogarithmicAxis;
23571
23634
  tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
23572
23635
  axisLength / axis.tickPositions.length :
23573
23636
  axisLength;
23574
- interval = pick(filteredTickIntervalOption, log.minorAutoInterval, (realMax - realMin) *
23575
- tickPixelIntervalOption / (totalPixelLength || 1));
23637
+ interval = filteredTickIntervalOption ??
23638
+ log.minorAutoInterval ??
23639
+ (realMax - realMin) * tickPixelIntervalOption /
23640
+ (totalPixelLength || 1);
23576
23641
  interval = normalizeTickInterval(interval);
23577
23642
  positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
23578
23643
  if (!minor) {
@@ -24001,7 +24066,8 @@ class PlotLineOrBand {
24001
24066
  if (!chart.styledMode) {
24002
24067
  if (isLine) {
24003
24068
  attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
24004
- attribs['stroke-width'] = pick(options.width, 1);
24069
+ attribs['stroke-width'] =
24070
+ options.width ?? 1;
24005
24071
  if (options.dashStyle) {
24006
24072
  attribs.dashstyle = options.dashStyle;
24007
24073
  }
@@ -25133,7 +25199,8 @@ class Tooltip {
25133
25199
  'highcharts-label',
25134
25200
  isHeader && 'highcharts-tooltip-header',
25135
25201
  isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
25136
- !isHeader && 'highcharts-color-' + pick(point.colorIndex, series.colorIndex),
25202
+ !isHeader &&
25203
+ 'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
25137
25204
  seriesOptions?.className
25138
25205
  ].filter(isString).join(' ');
25139
25206
  }
@@ -25318,7 +25385,8 @@ class Tooltip {
25318
25385
  }
25319
25386
  // The far side is right or bottom
25320
25387
  const preferFarSide = !this.followPointer &&
25321
- pick(point.ttBelow, polar ? false : !inverted === flipped), // #4984
25388
+ (point.ttBelow ??
25389
+ (polar ? false : !inverted === flipped)), // #4984
25322
25390
  /*
25323
25391
  * Handle the preferred dimension. When the preferred dimension is
25324
25392
  * tooltip on top or bottom of the point, it will look for space
@@ -25445,7 +25513,7 @@ class Tooltip {
25445
25513
  const tooltip = this;
25446
25514
  // Disallow duplicate timers (#1728, #1766)
25447
25515
  clearTimeouts(this);
25448
- delay = pick(delay, this.options.hideDelay);
25516
+ delay = (delay ?? this.options.hideDelay);
25449
25517
  if (!this.isHidden) {
25450
25518
  this.hideTimer = syncTimeout(function () {
25451
25519
  const label = tooltip.getLabel();
@@ -25548,7 +25616,9 @@ class Tooltip {
25548
25616
  * Split tooltip does not support outside in the first iteration. Should
25549
25617
  * not be too complicated to implement.
25550
25618
  */
25551
- this.outside = pick(options.outside, Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY));
25619
+ this.outside =
25620
+ options.outside ??
25621
+ Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
25552
25622
  }
25553
25623
  shouldStickOnContact(pointerEvent) {
25554
25624
  return !!(!this.followPointer &&
@@ -25628,7 +25698,7 @@ class Tooltip {
25628
25698
  point.points = void 0;
25629
25699
  // Register the current series
25630
25700
  const currentSeries = point.series;
25631
- this.distance = pick(currentSeries.tooltipOptions.distance, 16);
25701
+ this.distance = (currentSeries.tooltipOptions.distance ?? 16);
25632
25702
  // Update the inner HTML
25633
25703
  if (text === false) {
25634
25704
  this.hide();
@@ -25901,7 +25971,7 @@ class Tooltip {
25901
25971
  anchorY,
25902
25972
  boxWidth,
25903
25973
  point,
25904
- rank: pick(boxPosition.rank, isHeader ? 1 : 0),
25974
+ rank: boxPosition.rank ?? (isHeader ? 1 : 0),
25905
25975
  size,
25906
25976
  target: boxPosition.y,
25907
25977
  tt,
@@ -27246,7 +27316,7 @@ class Point {
27246
27316
  */
27247
27317
  select(selected, accumulate) {
27248
27318
  const point = this, series = point.series, chart = series.chart;
27249
- selected = pick(selected, !point.selected);
27319
+ selected = (selected ?? !point.selected);
27250
27320
  this.selectedStaging = selected;
27251
27321
  // Fire the event with the default handler
27252
27322
  point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
@@ -27497,7 +27567,7 @@ class Point {
27497
27567
  });
27498
27568
  halo.attr({
27499
27569
  'class': 'highcharts-halo highcharts-color-' +
27500
- pick(point.colorIndex, series.colorIndex) +
27570
+ (point.colorIndex ?? series.colorIndex) +
27501
27571
  (point.className ? ' ' + point.className : ''),
27502
27572
  'visibility': markerVisibility,
27503
27573
  'zIndex': -1 // #4929, #8276
@@ -28230,7 +28300,7 @@ class Pointer {
28230
28300
  const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
28231
28301
  return (s.visible &&
28232
28302
  !(!shared && s.directTouch) && // #3821
28233
- pick(s.options.enableMouseTracking, true));
28303
+ (s.options.enableMouseTracking ?? true));
28234
28304
  };
28235
28305
  let hoverSeries = existingHoverSeries,
28236
28306
  // Which series to look in for the hover point
@@ -28416,8 +28486,8 @@ class Pointer {
28416
28486
  const ePos = (touches ?
28417
28487
  touches.length ?
28418
28488
  touches.item(0) :
28419
- (pick(// #13534
28420
- touches.changedTouches, e.changedTouches))[0] :
28489
+ (touches.changedTouches ??
28490
+ e.changedTouches)[0] :
28421
28491
  e);
28422
28492
  // Get mouse position
28423
28493
  if (!chartPosition) {
@@ -28491,7 +28561,7 @@ class Pointer {
28491
28561
  * @function Highcharts.Pointer#onContainerMouseLeave
28492
28562
  */
28493
28563
  onContainerMouseLeave(e) {
28494
- const { pointer } = Pointer_charts[pick(Pointer.hoverChartIndex, -1)] || {};
28564
+ const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
28495
28565
  e = this.normalize(e);
28496
28566
  this.onContainerMouseMove(e);
28497
28567
  // #4886, MS Touch end fires mouseleave but with no related target
@@ -28591,7 +28661,7 @@ class Pointer {
28591
28661
  if (e?.touches && this.hasPinchMoved) {
28592
28662
  e?.preventDefault?.();
28593
28663
  }
28594
- Pointer_charts[pick(Pointer.hoverChartIndex, -1)]
28664
+ Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
28595
28665
  ?.pointer
28596
28666
  ?.drop(e);
28597
28667
  }
@@ -29098,7 +29168,7 @@ class Pointer {
29098
29168
  */
29099
29169
  setHoverChartIndex(e) {
29100
29170
  const chart = this.chart;
29101
- const hoverChart = Core_Globals.charts[pick(Pointer.hoverChartIndex, -1)];
29171
+ const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
29102
29172
  if (hoverChart &&
29103
29173
  hoverChart !== chart) {
29104
29174
  const relatedTargetObj = { relatedTarget: chart.container };
@@ -29144,7 +29214,7 @@ class Pointer {
29144
29214
  Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
29145
29215
  false;
29146
29216
  }
29147
- if (pick(hasMoved, true)) {
29217
+ if (hasMoved ?? true) {
29148
29218
  this.pinch(e);
29149
29219
  }
29150
29220
  }
@@ -29187,7 +29257,7 @@ class Pointer {
29187
29257
  let zoomType = chart.zooming.type || '', zoomX, zoomY;
29188
29258
  // Look for the pinchType option
29189
29259
  if (/touch/.test(e.type)) {
29190
- zoomType = pick(chart.zooming.pinchType, zoomType);
29260
+ zoomType = (chart.zooming.pinchType ?? zoomType);
29191
29261
  }
29192
29262
  this.zoomX = zoomX = /x/.test(zoomType);
29193
29263
  this.zoomY = zoomY = /y/.test(zoomType);
@@ -29961,7 +30031,7 @@ var LegendSymbol;
29961
30031
  // Draw the marker
29962
30032
  if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
29963
30033
  // Do not allow the marker to be larger than the symbolHeight
29964
- let radius = Math.min(pick(markerOptions.radius, generalRadius), generalRadius);
30034
+ let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
29965
30035
  // Restrict symbol markers size
29966
30036
  if (symbol.indexOf('url') === 0) {
29967
30037
  markerOptions = merge(markerOptions, {
@@ -32982,7 +33052,7 @@ class Series {
32982
33052
  if (chartSeries.length) {
32983
33053
  lastSeries = chartSeries[chartSeries.length - 1];
32984
33054
  }
32985
- series._i = pick(lastSeries?._i, -1) + 1;
33055
+ series._i = (lastSeries?._i ?? -1) + 1;
32986
33056
  series.opacity = series.options.opacity;
32987
33057
  // Insert the series and re-order all series above the insertion
32988
33058
  // point.
@@ -33029,7 +33099,7 @@ class Series {
33029
33099
  // Apply if the series xAxis or yAxis option matches
33030
33100
  // the number of the axis, or if undefined, use the
33031
33101
  // first axis
33032
- if (pick(seriesOptions[coll], 0) === axis.index ||
33102
+ if ((seriesOptions[coll] ?? 0) === axis.index ||
33033
33103
  (typeof seriesOptions[coll] !==
33034
33104
  'undefined' &&
33035
33105
  seriesOptions[coll] === axisOptions.id)) {
@@ -33072,8 +33142,12 @@ class Series {
33072
33142
  * @function Highcharts.Series#hasMarkerChanged
33073
33143
  */
33074
33144
  hasMarkerChanged(options, oldOptions) {
33075
- const marker = options.marker, oldMarker = oldOptions.marker || {};
33076
- return marker && ((oldMarker.enabled && !marker.enabled) ||
33145
+ const marker = options.marker, oldMarker = oldOptions.marker;
33146
+ // Note that `marker` holds the full, merged object including
33147
+ // `plotOptions`, while `oldMarker` is the user-defined series-level
33148
+ // options only. We may need to refactor that in the future if more
33149
+ // issues like #24057 arise.
33150
+ return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
33077
33151
  oldMarker.symbol !== marker.symbol || // #10870, #15946
33078
33152
  oldMarker.height !== marker.height || // #16274
33079
33153
  oldMarker.width !== marker.width // #16274
@@ -33092,7 +33166,8 @@ class Series {
33092
33166
  time.parse(options.pointStart) ??
33093
33167
  0;
33094
33168
  let pointInterval;
33095
- this.pointInterval = pointInterval = pick(this.pointInterval, options.pointInterval, 1);
33169
+ this.pointInterval = pointInterval =
33170
+ this.pointInterval ?? options.pointInterval ?? 1;
33096
33171
  if (relativeXValue && isNumber(x)) {
33097
33172
  pointInterval *= x;
33098
33173
  }
@@ -33164,9 +33239,13 @@ class Series {
33164
33239
  );
33165
33240
  // When shared tooltip, stickyTracking is true by default,
33166
33241
  // unless user says otherwise.
33167
- this.stickyTracking = pick(seriesUserOptions.stickyTracking, userPlotOptionsType.stickyTracking, userPlotOptionsSeries.stickyTracking, (this.tooltipOptions.shared && !this.noSharedTooltip ?
33168
- true :
33169
- options.stickyTracking));
33242
+ this.stickyTracking =
33243
+ seriesUserOptions.stickyTracking ??
33244
+ userPlotOptionsType.stickyTracking ??
33245
+ userPlotOptionsSeries.stickyTracking ??
33246
+ (this.tooltipOptions.shared && !this.noSharedTooltip ?
33247
+ true :
33248
+ options.stickyTracking);
33170
33249
  // Delete marker object if not allowed (#1125)
33171
33250
  if (typeOptions.marker === null) {
33172
33251
  delete options.marker;
@@ -33244,7 +33323,9 @@ class Series {
33244
33323
  if (!value) {
33245
33324
  // Pick up either the colorIndex option, or the series.colorIndex
33246
33325
  // after Series.update()
33247
- setting = pick(prop === 'color' ? this.options.colorIndex : void 0, this[indexName]);
33326
+ setting = prop === 'color' ?
33327
+ (this.options.colorIndex ?? this[indexName]) :
33328
+ this[indexName];
33248
33329
  if (defined(setting)) { // After Series.update()
33249
33330
  i = setting;
33250
33331
  }
@@ -34271,7 +34352,9 @@ class Series {
34271
34352
  yValue = stackValues[1];
34272
34353
  if (lowValue === stackThreshold &&
34273
34354
  stackIndicator.key === stacks[xValue].base) {
34274
- lowValue = pick(isNumber(threshold) ? threshold : yAxis.min);
34355
+ lowValue = isNumber(threshold) ?
34356
+ threshold :
34357
+ yAxis.min;
34275
34358
  }
34276
34359
  // #1200, #1232
34277
34360
  if (yAxis.positiveValuesOnly &&
@@ -34279,7 +34362,7 @@ class Series {
34279
34362
  lowValue <= 0) {
34280
34363
  lowValue = void 0;
34281
34364
  }
34282
- point.total = point.stackTotal = pick(stackItem.total);
34365
+ point.total = point.stackTotal = stackItem.total ?? void 0;
34283
34366
  point.percentage = defined(point.y) && stackItem.total ?
34284
34367
  (point.y / stackItem.total * 100) : void 0;
34285
34368
  point.stackY = yValue;
@@ -34529,7 +34612,9 @@ class Series {
34529
34612
  // Only draw the point if y is defined
34530
34613
  if (shouldDrawMarker) {
34531
34614
  // Shortcuts
34532
- const symbol = pick(pointMarkerOptions.symbol, series.symbol, 'rect');
34615
+ const symbol = pointMarkerOptions.symbol ??
34616
+ series.symbol ??
34617
+ 'rect';
34533
34618
  markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
34534
34619
  const isInside = point.isInside !== false;
34535
34620
  if (!graphic &&
@@ -34797,7 +34882,7 @@ class Series {
34797
34882
  // Reset
34798
34883
  zones.forEach((zone) => {
34799
34884
  zone.lineClip = [];
34800
- zone.translated = clamp(axis.toPixels(pick(zone.value, axisMax), true) || 0, 0, len);
34885
+ zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
34801
34886
  });
34802
34887
  // The use of the Color Threshold assumes there are no gaps so it is
34803
34888
  // safe to hide the original graph and area unless it is not
@@ -35453,7 +35538,7 @@ class Series {
35453
35538
  const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
35454
35539
  let isInTheMiddle, i;
35455
35540
  // Optional redraw, defaults to true
35456
- redraw = pick(redraw, true);
35541
+ redraw = (redraw ?? true);
35457
35542
  // Get options and push the point to xData, yData and series.options. In
35458
35543
  // series.generatePoints the Point instance will be created on demand
35459
35544
  // and pushed to the series.data array.
@@ -35564,7 +35649,7 @@ class Series {
35564
35649
  }
35565
35650
  };
35566
35651
  setAnimation(animation, chart);
35567
- redraw = pick(redraw, true);
35652
+ redraw = (redraw ?? true);
35568
35653
  // Fire the event with a default handler of removing the point
35569
35654
  if (point) {
35570
35655
  point.firePointEvent('remove', null, remove);
@@ -35607,7 +35692,7 @@ class Series {
35607
35692
  // Redraw
35608
35693
  chart.isDirtyLegend = chart.isDirtyBox = true;
35609
35694
  chart.linkSeries(keepEvents);
35610
- if (pick(redraw, true)) {
35695
+ if (redraw ?? true) {
35611
35696
  chart.redraw(animation);
35612
35697
  }
35613
35698
  }
@@ -35824,7 +35909,7 @@ class Series {
35824
35909
  series.isDirtyData = true;
35825
35910
  }
35826
35911
  fireEvent(this, 'afterUpdate');
35827
- if (pick(redraw, true)) {
35912
+ if (redraw ?? true) {
35828
35913
  chart.redraw(keepPoints ? void 0 : false);
35829
35914
  }
35830
35915
  }
@@ -35841,12 +35926,12 @@ class Series {
35841
35926
  * @internal
35842
35927
  */
35843
35928
  hasOptionChanged(optionName) {
35844
- 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]);
35929
+ const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
35845
35930
  // Check if `plotOptions` are defined already, #19203
35846
35931
  if (oldOption && !defined(plotOptionsOption)) {
35847
35932
  return option !== oldOption;
35848
35933
  }
35849
- return option !== pick(plotOptionsOption, option);
35934
+ return option !== (plotOptionsOption ?? option);
35850
35935
  }
35851
35936
  /**
35852
35937
  * Runs on mouse over the series graphical items.
@@ -35920,7 +36005,8 @@ class Series {
35920
36005
  const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
35921
36006
  // By default a quick animation to hover/inactive,
35922
36007
  // slower to un-hover
35923
- stateAnimation = pick(stateOptions[state || 'normal']?.animation, series.chart.options.chart.animation);
36008
+ stateAnimation = stateOptions[state || 'normal']?.animation ??
36009
+ series.chart.options.chart.animation;
35924
36010
  let { lineWidth, opacity } = options;
35925
36011
  state = state || '';
35926
36012
  if (series.state !== state) {
@@ -36806,7 +36892,7 @@ class Legend {
36806
36892
  * @param {Highcharts.LegendOptions} options
36807
36893
  */
36808
36894
  setOptions(options) {
36809
- const padding = pick(options.padding, 8);
36895
+ const padding = (options.padding ?? 8);
36810
36896
  /**
36811
36897
  * Legend options.
36812
36898
  *
@@ -36823,7 +36909,7 @@ class Legend {
36823
36909
  this.itemMarginBottom = options.itemMarginBottom;
36824
36910
  this.padding = padding;
36825
36911
  this.initialItemY = padding - 5; // 5 is pixels above the text
36826
- this.symbolWidth = pick(options.symbolWidth, 16);
36912
+ this.symbolWidth = (options.symbolWidth ?? 16);
36827
36913
  this.pages = [];
36828
36914
  this.proximate = options.layout === 'proximate' && !this.chart.inverted;
36829
36915
  // #12705: baseline has to be reset on every update
@@ -36857,7 +36943,7 @@ class Legend {
36857
36943
  }
36858
36944
  this.destroy();
36859
36945
  chart.isDirtyLegend = chart.isDirtyBox = true;
36860
- if (pick(redraw, true)) {
36946
+ if (redraw ?? true) {
36861
36947
  chart.redraw();
36862
36948
  }
36863
36949
  fireEvent(this, 'afterUpdate', { redraw });
@@ -37095,7 +37181,7 @@ class Legend {
37095
37181
  * The item to render.
37096
37182
  */
37097
37183
  renderItem(item) {
37098
- 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 ?
37184
+ 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 ?
37099
37185
  item.series :
37100
37186
  item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
37101
37187
  seriesOptions &&
@@ -37141,9 +37227,11 @@ class Legend {
37141
37227
  legend.fontMetrics.f + 3 + legend.itemMarginTop;
37142
37228
  label.attr('y', legend.baseline);
37143
37229
  legend.symbolHeight =
37144
- pick(options.symbolHeight, legend.fontMetrics.f);
37230
+ (options.symbolHeight ?? legend.fontMetrics.f);
37145
37231
  if (options.squareSymbol) {
37146
- legend.symbolWidth = pick(options.symbolWidth, Math.max(legend.symbolHeight, 16));
37232
+ legend.symbolWidth =
37233
+ options.symbolWidth ??
37234
+ Math.max(legend.symbolHeight, 16);
37147
37235
  itemExtraWidth = legend.symbolWidth + symbolPadding +
37148
37236
  itemDistance + (showCheckbox ? 20 : 0);
37149
37237
  if (ltr) {
@@ -37195,7 +37283,7 @@ class Legend {
37195
37283
  * @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
37196
37284
  */
37197
37285
  layoutItem(item) {
37198
- 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 &&
37286
+ 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 &&
37199
37287
  this.totalItemWidth > maxLegendWidth) ?
37200
37288
  this.maxItemWidth :
37201
37289
  item.itemWidth, legendItem = item.legendItem || {};
@@ -37249,7 +37337,9 @@ class Legend {
37249
37337
  const seriesOptions = series?.options;
37250
37338
  // Handle showInLegend. If the series is linked to another series,
37251
37339
  // defaults to false.
37252
- if (series && pick(seriesOptions.showInLegend, !defined(seriesOptions.linkedTo) ? void 0 : false, true)) {
37340
+ if (series &&
37341
+ (seriesOptions.showInLegend ??
37342
+ (!defined(seriesOptions.linkedTo)))) {
37253
37343
  // Use points or series for the legend item depending on
37254
37344
  // legendType
37255
37345
  allItems = allItems.concat(series.legendItem?.labels ||
@@ -37531,7 +37621,7 @@ class Legend {
37531
37621
  * @function Highcharts.Legend#handleOverflow
37532
37622
  */
37533
37623
  handleOverflow(legendHeight) {
37534
- 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) {
37624
+ 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) {
37535
37625
  if (typeof height === 'number') {
37536
37626
  clipRect.attr({
37537
37627
  height: height
@@ -37577,7 +37667,7 @@ class Legend {
37577
37667
  navOptions.enabled !== false) {
37578
37668
  this.clipHeight = clipHeight =
37579
37669
  Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
37580
- this.currentPage = pick(this.currentPage, 1);
37670
+ this.currentPage = (this.currentPage ?? 1);
37581
37671
  this.fullHeight = legendHeight;
37582
37672
  // Fill pages with Y positions so that the top of each a legend item
37583
37673
  // defines the scroll top for each page (#2098)
@@ -37737,7 +37827,7 @@ class Legend {
37737
37827
  this.currentPage = currentPage;
37738
37828
  this.positionCheckboxes();
37739
37829
  // Fire event after scroll animation is complete
37740
- const animOptions = animObject(pick(animation, chart.renderer.globalAnimation, true));
37830
+ const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
37741
37831
  syncTimeout(() => {
37742
37832
  fireEvent(this, 'afterScroll', { currentPage });
37743
37833
  }, animOptions.duration);
@@ -38178,7 +38268,7 @@ class Chart {
38178
38268
  */
38179
38269
  static chart(a, b, c) {
38180
38270
  const chart = new Chart(a, b, c);
38181
- return chart.promise || chart;
38271
+ return chart.promise ?? chart;
38182
38272
  }
38183
38273
  // Implementation
38184
38274
  constructor(a,
@@ -38219,10 +38309,10 @@ class Chart {
38219
38309
  const chart = this, options = chart.options.chart, zooming = options.zooming;
38220
38310
  chart.zooming = {
38221
38311
  ...zooming,
38222
- type: pick(options.zoomType, zooming.type),
38223
- key: pick(options.zoomKey, zooming.key),
38224
- pinchType: pick(options.pinchType, zooming.pinchType),
38225
- singleTouch: pick(options.zoomBySingleTouch, zooming.singleTouch, false),
38312
+ type: (options.zoomType ?? zooming.type),
38313
+ key: (options.zoomKey ?? zooming.key),
38314
+ pinchType: (options.pinchType ?? zooming.pinchType),
38315
+ singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
38226
38316
  resetButton: merge(zooming.resetButton, options.resetZoomButton)
38227
38317
  };
38228
38318
  }
@@ -38774,7 +38864,7 @@ class Chart {
38774
38864
  // inspect the generated series.points.
38775
38865
  series.getPointsCollection()
38776
38866
  .forEach((point) => {
38777
- if (pick(point.selectedStaging, point.selected)) {
38867
+ if (point.selectedStaging ?? point.selected) {
38778
38868
  acc.push(point);
38779
38869
  }
38780
38870
  });
@@ -39212,7 +39302,7 @@ class Chart {
39212
39302
  chartWidth = chart.chartWidth;
39213
39303
  if (!chart.styledMode) {
39214
39304
  css(container, {
39215
- width: pick(optionsChart.style?.width, chartWidth + 'px')
39305
+ width: (optionsChart.style?.width ?? chartWidth + 'px')
39216
39306
  });
39217
39307
  }
39218
39308
  }
@@ -39855,7 +39945,7 @@ class Chart {
39855
39945
  const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
39856
39946
  mockTick.destroy();
39857
39947
  if (label &&
39858
- pick(labels.reserveSpace, !isNumber(options.crossing))) {
39948
+ (labels.reserveSpace ?? !isNumber(options.crossing))) {
39859
39949
  expectedSpace = label.getBBox().height +
39860
39950
  labels.distance +
39861
39951
  Math.max(isNumber(offset) ? offset : 0, 0);
@@ -40190,7 +40280,7 @@ class Chart {
40190
40280
  const chart = this;
40191
40281
  let series;
40192
40282
  if (options) { // <- not necessary
40193
- redraw = pick(redraw, true); // Defaults to true
40283
+ redraw = (redraw ?? true); // Defaults to true
40194
40284
  fireEvent(chart, 'addSeries', { options: options }, function () {
40195
40285
  series = chart.initSeries(options);
40196
40286
  chart.isDirtyLegend = true;
@@ -40281,7 +40371,7 @@ class Chart {
40281
40371
  */
40282
40372
  createAxis(coll, options) {
40283
40373
  const axis = new Axis_Axis(this, options.axis, coll);
40284
- if (pick(options.redraw, true)) {
40374
+ if (options.redraw ?? true) {
40285
40375
  this.redraw(options.animation);
40286
40376
  }
40287
40377
  return axis;
@@ -40329,7 +40419,7 @@ class Chart {
40329
40419
  }
40330
40420
  loadingDiv.className = 'highcharts-loading';
40331
40421
  // Update text
40332
- HTML_AST.setElementHTML(loadingSpan, pick(str, options.lang.loading, ''));
40422
+ HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
40333
40423
  if (!chart.styledMode) {
40334
40424
  // Update visuals
40335
40425
  css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
@@ -40567,7 +40657,7 @@ class Chart {
40567
40657
  }
40568
40658
  // No match by id found, match by index instead
40569
40659
  if (!item && chart[coll]) {
40570
- item = chart[coll][pick(newOptions.index, i)];
40660
+ item = chart[coll][(newOptions.index ?? i)];
40571
40661
  // Check if we grabbed an item with an existing but
40572
40662
  // different id (#13541). Check that the item in this
40573
40663
  // position is not internal (navigator).
@@ -40780,7 +40870,7 @@ class Chart {
40780
40870
  fireEvent(this, 'transform', params);
40781
40871
  let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
40782
40872
  for (const axis of axes) {
40783
- 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),
40873
+ 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),
40784
40874
  // If fingers pinched very close on this axis, treat as pan
40785
40875
  scale = Math.abs(toLength) < 10 ?
40786
40876
  1 :
@@ -41644,7 +41734,7 @@ class StackItem {
41644
41734
  r: options.borderRadius || 0,
41645
41735
  text: str,
41646
41736
  // Set default padding to 5 as it is in dataLabels #12308
41647
- padding: pick(options.padding, 5),
41737
+ padding: (options.padding ?? 5),
41648
41738
  visibility: 'hidden' // Hidden until setOffset is called
41649
41739
  };
41650
41740
  if (!chart.styledMode) {
@@ -41678,7 +41768,7 @@ class StackItem {
41678
41768
  }), { verticalAlign } = alignOptions;
41679
41769
  if (label && stackBox) {
41680
41770
  const labelBox = label.getBBox(void 0, 0), padding = label.padding;
41681
- let isJustify = pick(options.overflow, 'justify') === 'justify', visible;
41771
+ let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
41682
41772
  // Reset alignOptions property after justify #12337
41683
41773
  alignOptions.x = options.x || 0;
41684
41774
  alignOptions.y = options.y || 0;
@@ -41715,7 +41805,7 @@ class StackItem {
41715
41805
  rotationOriginY: labelBox.height / 2
41716
41806
  });
41717
41807
  // Check if the dataLabel should be visible.
41718
- if (pick(!isJustify && options.crop, true)) {
41808
+ if (((!isJustify && options.crop) ?? true)) {
41719
41809
  visible =
41720
41810
  isNumber(label.x) &&
41721
41811
  isNumber(label.y) &&
@@ -41749,7 +41839,7 @@ class StackItem {
41749
41839
  getStackBox(stackBoxProps) {
41750
41840
  const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
41751
41841
  100 :
41752
- 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 ||
41842
+ (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 ||
41753
41843
  (isNumber(axis.min) &&
41754
41844
  axis.logarithmic &&
41755
41845
  axis.logarithmic.lin2log(axis.min)) ||
@@ -41862,7 +41952,7 @@ function chartGetStacks() {
41862
41952
  if (series.options.stacking && series.reserveSpace()) {
41863
41953
  series.stackKey = [
41864
41954
  series.type,
41865
- pick(series.options.stack, ''),
41955
+ (series.options.stack ?? ''),
41866
41956
  inverted ? xAxisOptions.top : xAxisOptions.left,
41867
41957
  inverted ? xAxisOptions.height : xAxisOptions.width
41868
41958
  ].join(',');
@@ -42025,7 +42115,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
42025
42115
  stack = stacks[key][x];
42026
42116
  if (y !== null) {
42027
42117
  stack.points[pointKey] = stack.points[series.index] = [
42028
- pick(stack.cumulative, stackThreshold)
42118
+ (stack.cumulative ?? stackThreshold)
42029
42119
  ];
42030
42120
  // Record the base of the stack
42031
42121
  if (!defined(stack.cumulative)) {
@@ -42073,7 +42163,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
42073
42163
  stack.cumulative = (total || 1) - 1;
42074
42164
  }
42075
42165
  else {
42076
- stack.cumulative = correctFloat(pick(stack.cumulative, stackThreshold) + yNumber);
42166
+ stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
42077
42167
  }
42078
42168
  stack.total = total;
42079
42169
  if (y !== null) {
@@ -43088,8 +43178,7 @@ class AreaSeries extends AreaSeries_LineSeries {
43088
43178
  */
43089
43179
  getGraphPath(points) {
43090
43180
  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
43091
- yAxis.getThreshold(options.threshold)), connectNulls = pick(// #10574
43092
- options.connectNulls, stacking === 'percent'),
43181
+ yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
43093
43182
  // To display null points in underlying stacked series, this
43094
43183
  // series graph must be broken, and the area also fall down to
43095
43184
  // fill the gap left by the null point. #2069
@@ -43142,9 +43231,9 @@ class AreaSeries extends AreaSeries_LineSeries {
43142
43231
  // Treat points with undefined plotY as null (e.g. non-positive
43143
43232
  // values on logarithmic axis, #18422)
43144
43233
  isNull = points[i].isNull || !defined(points[i].plotY);
43145
- plotX = pick(points[i].rectPlotX, points[i].plotX);
43234
+ plotX = (points[i].rectPlotX ?? points[i].plotX);
43146
43235
  yBottom = stacking ?
43147
- pick(points[i].yBottom, translatedThreshold) :
43236
+ (points[i].yBottom ?? translatedThreshold) :
43148
43237
  translatedThreshold;
43149
43238
  if (!isNull || connectNulls) {
43150
43239
  if (!connectNulls) {
@@ -43482,10 +43571,10 @@ class SplineSeries extends SplineSeries_LineSeries {
43482
43571
  }
43483
43572
  const ret = [
43484
43573
  'C',
43485
- pick(lastPoint.rightContX, lastPoint.plotX, 0),
43486
- pick(lastPoint.rightContY, lastPoint.plotY, 0),
43487
- pick(leftContX, plotX, 0),
43488
- pick(leftContY, plotY, 0),
43574
+ (lastPoint.rightContX ?? lastPoint.plotX ?? 0),
43575
+ (lastPoint.rightContY ?? lastPoint.plotY ?? 0),
43576
+ (leftContX ?? plotX ?? 0),
43577
+ (leftContY ?? plotY ?? 0),
43489
43578
  plotX,
43490
43579
  plotY
43491
43580
  ];
@@ -44454,7 +44543,7 @@ class ColumnSeries extends Series_Series {
44454
44543
  xAxis.tickInterval ||
44455
44544
  1), // #2610
44456
44545
  xAxis.len // #1535
44457
- ), 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,
44546
+ ), 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,
44458
44547
  // #1251, #3737
44459
44548
  colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
44460
44549
  (groupPadding +
@@ -45018,7 +45107,7 @@ var DataLabel;
45018
45107
  // that parts of the align box is inside the plot area
45019
45108
  // (#12370). When stacking, it is always inside regardless
45020
45109
  // of the option (#15148).
45021
- pick(options.inside, !!this.options.stacking) &&
45110
+ (options.inside ?? !!this.options.stacking) &&
45022
45111
  alignTo &&
45023
45112
  chart.isInsidePlot(plotX, inverted ?
45024
45113
  alignTo.x + 1 :
@@ -45121,8 +45210,8 @@ var DataLabel;
45121
45210
  // zIndex: 20
45122
45211
  // }).add();
45123
45212
  // chart.renderer.circle(
45124
- // chart.plotLeft + pick(dataLabel.alignAttr.x, 0),
45125
- // chart.plotTop + pick(dataLabel.alignAttr.y, 0),
45213
+ // chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
45214
+ // chart.plotTop + (dataLabel.alignAttr.y ?? 0),
45126
45215
  // 2
45127
45216
  // ).attr({
45128
45217
  // fill: 'red',
@@ -45305,7 +45394,7 @@ var DataLabel;
45305
45394
  if (labelEnabled) {
45306
45395
  // Create individual options structure that can be
45307
45396
  // extended without affecting others
45308
- formatString = pick(labelOptions[point.formatPrefix + 'Format'], labelOptions.format);
45397
+ formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
45309
45398
  labelText = defined(formatString) ?
45310
45399
  DataLabel_format(formatString, point, chart) :
45311
45400
  (labelOptions[point.formatPrefix + 'Formatter'] ||
@@ -45313,7 +45402,9 @@ var DataLabel;
45313
45402
  rotation = labelOptions.rotation;
45314
45403
  if (!chart.styledMode) {
45315
45404
  // Determine the color
45316
- style.color = pick(labelOptions.color, style.color, isString(series.color) ? series.color : void 0, 'var(--highcharts-neutral-color-100)');
45405
+ style.color = (isString(labelOptions.color) ?
45406
+ labelOptions.color :
45407
+ void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
45317
45408
  // Get automated contrast color
45318
45409
  if (style.color === 'contrast') {
45319
45410
  if (backgroundColor !== 'none') {
@@ -46114,14 +46205,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
46114
46205
  return rand - Math.floor(rand);
46115
46206
  }
46116
46207
  if (jitter) {
46117
- this.points.forEach(function (point, i) {
46118
- ['x', 'y'].forEach(function (dim, j) {
46208
+ this.points.forEach((point, i) => {
46209
+ ['x', 'y'].forEach((dim, j) => {
46119
46210
  if (jitter[dim] && !point.isNull) {
46120
- const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`], translatedJitter = jitter[dim] *
46121
- axis.transA;
46211
+ const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
46122
46212
  if (axis && !axis.logarithmic) {
46123
46213
  // Identify the outer bounds of the jitter range
46124
- const min = Math.max(0, (point[plotProp] || 0) - translatedJitter), max = Math.min(axis.len, (point[plotProp] || 0) + translatedJitter);
46214
+ // (#25054)
46215
+ const translatedJitter = jitter[dim] * axis.transA *
46216
+ (axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
46125
46217
  // Find a random position within this range
46126
46218
  point[plotProp] = min +
46127
46219
  (max - min) * unrandom(i + j * len);
@@ -46226,11 +46318,13 @@ var CenteredUtilities;
46226
46318
  innerSize = parseFloat(innerSize);
46227
46319
  }
46228
46320
  const positions = [
46229
- pick(centerOption?.[0], '50%'),
46230
- pick(centerOption?.[1], '50%'),
46321
+ (centerOption?.[0] ?? '50%'),
46322
+ (centerOption?.[1] ?? '50%'),
46231
46323
  // Prevent from negative values
46232
- pick(size && size < 0 ? void 0 : options.size, '100%'),
46233
- pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')
46324
+ ((size && size < 0 ? void 0 : options.size) ?? '100%'),
46325
+ ((innerSize && innerSize < 0 ?
46326
+ void 0 :
46327
+ options.innerSize || 0) ?? '0%')
46234
46328
  ];
46235
46329
  for (i = 0; i < 4; ++i) {
46236
46330
  value = positions[i];
@@ -46432,7 +46526,7 @@ class PiePoint extends Series_Point {
46432
46526
  const series = this.series, chart = series.chart;
46433
46527
  setAnimation(animation, chart);
46434
46528
  // Redraw is true by default
46435
- redraw = pick(redraw, true);
46529
+ redraw = (redraw ?? true);
46436
46530
  this.sliced = this.options.sliced = sliced ?? !this.sliced;
46437
46531
  // Update options.data
46438
46532
  if (series.options.data) {
@@ -47237,7 +47331,8 @@ class PieSeries extends Series_Series {
47237
47331
  // Start values
47238
47332
  graphic.attr({
47239
47333
  // Animate from inner radius (#779)
47240
- r: pick(point.startR, (series.center && series.center[3] / 2)),
47334
+ r: point.startR ??
47335
+ (series.center && series.center[3] / 2),
47241
47336
  start: startAngleRad,
47242
47337
  end: startAngleRad
47243
47338
  });
@@ -47878,7 +47973,7 @@ var PieDataLabel_ColumnDataLabel;
47878
47973
  labelPosition.computed.x = x;
47879
47974
  labelPosition.computed.y = y - topOffset;
47880
47975
  // Detect overflowing data labels
47881
- if (pick(dataLabelOptions.crop, true)) {
47976
+ if (dataLabelOptions.crop ?? true) {
47882
47977
  dataLabelWidth = dataLabel.getBBox().width;
47883
47978
  let sideOverflow;
47884
47979
  // Overflow left
@@ -48394,7 +48489,10 @@ function OverlappingDataLabels_onChartRender() {
48394
48489
  if (point.visible) {
48395
48490
  (point.dataLabels || []).forEach((label) => {
48396
48491
  const options = label.options || {};
48397
- label.labelrank = pick(options.labelrank, point.labelrank, point.shapeArgs?.height); // #4118
48492
+ label.labelrank =
48493
+ options.labelrank ??
48494
+ point.labelrank ??
48495
+ point.shapeArgs?.height; // #4118
48398
48496
  // #21725: Sync target positions for generic overlap
48399
48497
  // checking. During animations (e.g., toggling a
48400
48498
  // point), DOM positions may overlap. We force
@@ -48883,10 +48981,12 @@ var Responsive;
48883
48981
  */
48884
48982
  function matchResponsiveRule(rule, matches) {
48885
48983
  const condition = rule.condition, fn = condition.callback || function () {
48886
- return (this.chartWidth <= pick(condition.maxWidth, Number.MAX_VALUE) &&
48887
- this.chartHeight <= pick(condition.maxHeight, Number.MAX_VALUE) &&
48888
- this.chartWidth >= pick(condition.minWidth, 0) &&
48889
- this.chartHeight >= pick(condition.minHeight, 0));
48984
+ return (this.chartWidth <=
48985
+ (condition.maxWidth ?? Number.MAX_VALUE) &&
48986
+ this.chartHeight <=
48987
+ (condition.maxHeight ?? Number.MAX_VALUE) &&
48988
+ this.chartWidth >= (condition.minWidth ?? 0) &&
48989
+ this.chartHeight >= (condition.minHeight ?? 0));
48890
48990
  };
48891
48991
  if (fn.call(this, this)) {
48892
48992
  matches.push(rule._id);
@@ -49100,7 +49200,7 @@ var Responsive;
49100
49200
  ;// ./code/es-modules/masters/highcharts.src.js
49101
49201
  // SPDX-License-Identifier: LicenseRef-Highcharts
49102
49202
  /**
49103
- * @license Highcharts JS v13.0.1 (2026-08-17)
49203
+ * @license Highcharts JS v13.0.2 (2026-08-27)
49104
49204
  * @module highcharts/highcharts
49105
49205
  *
49106
49206
  * (c) 2009-2026 Highsoft AS
@@ -49177,7 +49277,12 @@ G.SVGElement = SVG_SVGElement;
49177
49277
  G.SVGRenderer = SVG_SVGRenderer;
49178
49278
  G.Templating = Core_Templating;
49179
49279
  G.Tick = Axis_Tick;
49180
- G.Time = Core_Time;
49280
+ G.Time = class extends Core_Time {
49281
+ constructor(options, lang) {
49282
+ const defaultOptions = Defaults.getOptions();
49283
+ super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
49284
+ }
49285
+ };
49181
49286
  G.Tooltip = Core_Tooltip;
49182
49287
  // Utilities
49183
49288
  G.addEvent = addEvent;